Fix statix warnings

This commit is contained in:
Erwin Boskma 2023-09-13 14:50:03 +02:00
parent 0cc41287d4
commit 5480e4be81
Signed by: erwin
SSH key fingerprint: SHA256:9LmFDe1C6jSrEyqxxvX8NtJBmcbB105XoqyUZF092bg
16 changed files with 826 additions and 715 deletions

View file

@ -19,8 +19,10 @@
pre-commit-hooks = { pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix"; url = "github:cachix/pre-commit-hooks.nix";
inputs.flake-utils.follows = "flake-utils"; inputs = {
inputs.nixpkgs.follows = "nixpkgs"; flake-utils.follows = "flake-utils";
nixpkgs.follows = "nixpkgs";
};
}; };
nixinate = { nixinate = {
@ -35,14 +37,18 @@
rust-overlay = { rust-overlay = {
url = "github:oxalica/rust-overlay"; url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
}; };
microvm = { microvm = {
url = "github:astro/microvm.nix"; url = "github:astro/microvm.nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
}; };
sops = { sops = {
@ -52,15 +58,19 @@
emacs-overlay = { emacs-overlay = {
url = "github:nix-community/emacs-overlay"; url = "github:nix-community/emacs-overlay";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
}; };
nil = { nil = {
url = "github:oxalica/nil"; url = "github:oxalica/nil";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay"; flake-utils.follows = "flake-utils";
rust-overlay.follows = "rust-overlay";
};
}; };
disko = { disko = {
@ -74,35 +84,45 @@
eww = { eww = {
url = "github:elkowar/eww"; url = "github:elkowar/eww";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.rust-overlay.follows = "rust-overlay"; nixpkgs.follows = "nixpkgs";
rust-overlay.follows = "rust-overlay";
};
}; };
caddy-with-plugins = { caddy-with-plugins = {
url = "github:eboskma/caddy-with-plugins"; url = "github:eboskma/caddy-with-plugins";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-parts.follows = "flake-parts"; nixpkgs.follows = "nixpkgs";
flake-parts.follows = "flake-parts";
};
}; };
ha-now-playing = { ha-now-playing = {
url = "git+https://git.datarift.nl/erwin/ha-now-playing.git?ref=main"; url = "git+https://git.datarift.nl/erwin/ha-now-playing.git?ref=main";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
inputs.rust-overlay.follows = "rust-overlay"; flake-utils.follows = "flake-utils";
inputs.pre-commit-hooks.follows = "pre-commit-hooks"; rust-overlay.follows = "rust-overlay";
pre-commit-hooks.follows = "pre-commit-hooks";
};
}; };
pamedia = { pamedia = {
url = "git+https://git.datarift.nl/erwin/pamedia-rs.git?ref=main"; url = "git+https://git.datarift.nl/erwin/pamedia-rs.git?ref=main";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
inputs.naersk.follows = "naersk"; flake-utils.follows = "flake-utils";
naersk.follows = "naersk";
};
}; };
sunshine = { sunshine = {
url = "git+https://git@git.datarift.nl/erwin/sunshine.git?ref=main"; url = "git+https://git@git.datarift.nl/erwin/sunshine.git?ref=main";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
inputs.flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
}; };
}; };

View file

@ -12,58 +12,60 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.fish = { programs = {
enable = true; fish = {
functions = import ./functions.nix { inherit (pkgs) git coreutils; }; enable = true;
functions = import ./functions.nix { inherit (pkgs) git coreutils; };
plugins = [ plugins = [
{ {
name = "dracula"; name = "dracula";
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "dracula"; owner = "dracula";
repo = "fish"; repo = "fish";
rev = "62b109f12faab5604f341e8b83460881f94b1550"; rev = "62b109f12faab5604f341e8b83460881f94b1550";
sha256 = "0TlKq2ur2I6Bv7pu7JObrJxV0NbQhydmCuUs6ZdDU1I="; sha256 = "0TlKq2ur2I6Bv7pu7JObrJxV0NbQhydmCuUs6ZdDU1I=";
}; };
} }
]; ];
shellAliases = { shellAliases = {
# code = "${pkgs.vscode}/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland"; # code = "${pkgs.vscode}/bin/code --enable-features=UseOzonePlatform --ozone-platform=wayland";
ls = "${pkgs.eza}/bin/eza -Fb --git"; ls = "${pkgs.eza}/bin/eza -Fb --git";
vimdiff = mkIf config.eboskma.programs.neovim.enable "nvim -d"; vimdiff = mkIf config.eboskma.programs.neovim.enable "nvim -d";
vim = mkIf config.eboskma.programs.neovim.enable "nvim"; vim = mkIf config.eboskma.programs.neovim.enable "nvim";
vi = mkIf config.eboskma.programs.neovim.enable "nvim"; vi = mkIf config.eboskma.programs.neovim.enable "nvim";
}; };
interactiveShellInit = '' interactiveShellInit = ''
''; '';
}; };
programs.fzf = { fzf = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
changeDirWidgetCommand = "${pkgs.fd}/bin/fd -type d"; changeDirWidgetCommand = "${pkgs.fd}/bin/fd -type d";
defaultCommand = "${pkgs.fd}/bin/fd -type f"; defaultCommand = "${pkgs.fd}/bin/fd -type f";
defaultOptions = [ defaultOptions = [
"--cycle" "--cycle"
"--layout=reverse" "--layout=reverse"
"--border" "--border"
"--height=90%" "--height=90%"
"--preview-window=wrap" "--preview-window=wrap"
"--marker='*'" "--marker='*'"
]; ];
fileWidgetCommand = "${pkgs.fd}/bin/fd -type f"; fileWidgetCommand = "${pkgs.fd}/bin/fd -type f";
}; };
programs.direnv = { direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;
}; };
programs.zoxide = { zoxide = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
};
}; };
}; };
} }

View file

@ -176,32 +176,46 @@ in
format = "<label-state> <label-mode>"; format = "<label-state> <label-mode>";
label.mode.text = "󰁌 %mode%"; # Icon: arrow_expand_all label = {
label.mode.padding = 1; mode = {
text = "󰁌 %mode%"; # Icon: arrow_expand_all
padding = 1;
};
label.focused.text = " %index%"; # Icon: fa-circle focused = {
label.focused.padding = 1; text = " %index%"; # Icon: fa-circle
label.focused.background = "#333333"; padding = 1;
label.focused.underline = "#ffffff"; background = "#333333";
underline = "#ffffff";
};
label.unfocused.text = " %index%"; # Icon: fa-circle_o unfocused = {
label.unfocused.padding = 1; text = " %index%"; # Icon: fa-circle_o
padding = 1;
};
label.visible.text = " %index%"; # Icon: fa-dot_circle_o visible = {
label.visible.padding = 1; text = " %index%"; # Icon: fa-dot_circle_o
padding = 1;
};
label.urgent.text = " %index%"; # Icon: fa-exclamation_circle urgent = {
label.urgent.background = "${colors.urgent}"; text = " %index%"; # Icon: fa-exclamation_circle
label.urgent.padding = 1; background = "${colors.urgent}";
padding = 1;
};
};
}; };
"module/playerctl" = { "module/playerctl" = {
type = "custom/script"; type = "custom/script";
exec = "${polybar-playerctl}/bin/polybar-playerctl"; exec = "${polybar-playerctl}/bin/polybar-playerctl";
interval = 1; interval = 1;
click.left = "${polybar-playerctl}/bin/polybar-playerctl play-pause"; click = {
click.middle = "${polybar-playerctl}/bin/polybar-playerctl next"; left = "${polybar-playerctl}/bin/polybar-playerctl play-pause";
click.right = "${polybar-playerctl}/bin/polybar-playerctl prevous"; middle = "${polybar-playerctl}/bin/polybar-playerctl next";
right = "${polybar-playerctl}/bin/polybar-playerctl prevous";
};
format.padding = 2; format.padding = 2;
scroll.up = "${polybar-playerctl}/bin/polybar-playerctl next-player"; scroll.up = "${polybar-playerctl}/bin/polybar-playerctl next-player";
@ -210,11 +224,15 @@ in
"module/date" = { "module/date" = {
type = "internal/date"; type = "internal/date";
interval = 1.0; interval = 1.0;
time.text = " %H:%M:%S"; time = {
time.alt = " %a, %d %b %Y"; text = " %H:%M:%S";
alt = " %a, %d %b %Y";
};
format.text = "<label>"; format = {
format.padding = 2; text = "<label>";
padding = 2;
};
label.text = "%time%"; label.text = "%time%";
}; };
@ -224,22 +242,28 @@ in
exec = "${headset-battery}"; exec = "${headset-battery}";
interval = 1; interval = 1;
format.prefix = " "; format = {
format.padding = 2; prefix = " ";
padding = 2;
};
label.text = "%output%"; label.text = "%output%";
click.left = "${pkgs.headsetcontrol}/bin/headsetcontrol -s 128"; click = {
click.right = "${pkgs.headsetcontrol}/bin/headsetcontrol -s 0"; left = "${pkgs.headsetcontrol}/bin/headsetcontrol -s 128";
right = "${pkgs.headsetcontrol}/bin/headsetcontrol -s 0";
};
}; };
"module/memory" = { "module/memory" = {
type = "internal/memory"; type = "internal/memory";
interval = 1; interval = 1;
format.text = "<label>"; format = {
format.prefix = "󰍛 "; # Icon: memory text = "<label>";
format.padding = 2; prefix = "󰍛 "; # Icon: memory
padding = 2;
};
label.text = "%mb_used% (%percentage_used%%)"; label.text = "%mb_used% (%percentage_used%%)";
}; };
@ -248,9 +272,11 @@ in
type = "internal/cpu"; type = "internal/cpu";
interval = 1; interval = 1;
format.text = "<label>"; format = {
format.prefix = "󰻠 "; # Icon: cpu_64_bit text = "<label>";
format.padding = 2; prefix = "󰻠 "; # Icon: cpu_64_bit
padding = 2;
};
label = "%percentage:3%%"; label = "%percentage:3%%";
}; };
@ -261,17 +287,25 @@ in
use.ui.max = false; use.ui.max = false;
format.volume.text = "<ramp-volume> <label-volume>"; format = {
format.volume.padding = 2; volume = {
text = "<ramp-volume> <label-volume>";
padding = 2;
};
format.muted.text = "<label-muted>"; muted = {
format.muted.prefix = "󰖁"; # Icon: volume_off text = "<label-muted>";
format.muted.background = "${colors.urgent}"; prefix = "󰖁"; # Icon: volume_off
format.muted.padding = 2; background = "${colors.urgent}";
padding = 2;
};
};
label.volume.text = "%percentage%%"; label = {
volume.text = "%percentage%%";
label.muted.text = " Muted"; muted.text = " Muted";
};
ramp.volume = [ "󰕿" "󰖀" "󰕾" ]; # Icons: volume_low volume_medium volume_high ramp.volume = [ "󰕿" "󰖀" "󰕾" ]; # Icons: volume_low volume_medium volume_high
@ -289,28 +323,38 @@ in
accumulate.stats = true; accumulate.stats = true;
unknown.as.up = true; unknown.as.up = true;
format.connected.text = "<label-connected>"; format = {
format.connected.padding = 2; connected = {
text = "<label-connected>";
padding = 2;
};
format.disconnected.text = "<label-disconnected>"; disconnected = {
format.disconnected.padding = 2; text = "<label-disconnected>";
padding = 2;
};
format.packetloss.text = "<animation-packetloss> <label-connected>"; packetloss.text = "<animation-packetloss> <label-connected>";
};
label.connected.text = "󰈀 %local_ip% %upspeed:9% %downspeed:9%"; # Icon: ethernet label = {
label.disconnected.text = "󰲜 %{A1:networkmanager_dmenu &:} Offline%{A}"; # Icon: network_off_outline connected.text = "󰈀 %local_ip% %upspeed:9% %downspeed:9%"; # Icon: ethernet
disconnected.text = "󰲜 %{A1:networkmanager_dmenu &:} Offline%{A}"; # Icon: network_off_outline
};
animation.packetloss.text = [ animation = {
{ packetloss.text = [
text = ""; {
foreground = "${colors.urgent}"; text = "";
} foreground = "${colors.urgent}";
{ }
text = ""; {
foreground = "${colors.foreground}"; text = "";
} foreground = "${colors.foreground}";
]; }
animation.packetloss.framerate = 500; ];
packetloss.framerate = 500;
};
}; };
}; };
}; };

View file

@ -54,9 +54,6 @@
}; };
}; };
services.udev.extraRules = ''
ATTR{address}=="96:00:02:12:a2:eb", NAME="eth0"
'';
### Hetzner stuff ### Hetzner stuff
boot = { boot = {
@ -77,27 +74,34 @@
system.configurationRevision = self.inputs.nixpkgs.lib.mkIf (self ? rev) self.rev; system.configurationRevision = self.inputs.nixpkgs.lib.mkIf (self ? rev) self.rev;
services.openssh = { services = {
enable = true; udev.extraRules = ''
settings = { ATTR{address}=="96:00:02:12:a2:eb", NAME="eth0"
PasswordAuthentication = false; '';
};
};
services.tailscale.enable = true;
services.caddy = {
virtualHosts = { openssh = {
"datarift.nl" = { enable = true;
extraConfig = '' settings = {
@webfinger-erwin { PasswordAuthentication = false;
path /.well-known/webfinger };
query resource=acct:erwin@datarift.nl };
} tailscale.enable = true;
respond @webfinger-erwin 200 {
body `{"subject":"acct:erwin@datarift.nl","links":[{"rel":"http://openid.net/specs/connect/1.0/issuer","href":"https://id.datarift.nl/realms/datarift"}]}` caddy = {
close virtualHosts = {
} "datarift.nl" = {
''; extraConfig = ''
@webfinger-erwin {
path /.well-known/webfinger
query resource=acct:erwin@datarift.nl
}
respond @webfinger-erwin 200 {
body `{"subject":"acct:erwin@datarift.nl","links":[{"rel":"http://openid.net/specs/connect/1.0/issuer","href":"https://id.datarift.nl/realms/datarift"}]}`
close
}
'';
};
}; };
}; };
}; };

View file

@ -65,19 +65,21 @@
}; };
fileSystems."/" = { fileSystems = {
device = "/dev/disk/by-uuid/42065c7e-d0aa-4de8-a913-014cf59d48ac"; "/" = {
fsType = "ext4"; device = "/dev/disk/by-uuid/42065c7e-d0aa-4de8-a913-014cf59d48ac";
}; fsType = "ext4";
};
fileSystems."/boot" = { "/boot" = {
device = "/dev/disk/by-uuid/4064-A1BE"; device = "/dev/disk/by-uuid/4064-A1BE";
fsType = "vfat"; fsType = "vfat";
}; };
fileSystems."/home" = { "/home" = {
device = "/dev/disk/by-uuid/082ec5d2-238e-4713-9c37-31b1cb0fb8c3"; device = "/dev/disk/by-uuid/082ec5d2-238e-4713-9c37-31b1cb0fb8c3";
fsType = "ext4"; fsType = "ext4";
};
}; };
swapDevices = [{ device = "/dev/disk/by-uuid/d93788f7-1b94-4687-8313-055d17f42b7e"; }]; swapDevices = [{ device = "/dev/disk/by-uuid/d93788f7-1b94-4687-8313-055d17f42b7e"; }];
@ -98,8 +100,7 @@
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
kernelModules = [ "kvm-amd" "apple-mfi-fastcharge" "zenpower" "nf_nat_ftp" ]; kernelModules = [ "kvm-amd" "apple-mfi-fastcharge" "zenpower" "nf_nat_ftp" ];
kernelParams = [ "amd_pstate.shared_mem=1" ]; kernelParams = [ "amd_pstate.shared_mem=1" ];
extraModulePackages = [ ] ++ extraModulePackages = with config.boot.kernelPackages; [ zenpower cpupower ];
(with config.boot.kernelPackages; [ zenpower cpupower ]);
loader = { loader = {
systemd-boot = { systemd-boot = {
@ -110,20 +111,6 @@
}; };
}; };
services.udev = {
extraHwdb = ''
evdev:name:ELECOM TrackBall Mouse HUGE TrackBall:*
ID_INPUT_KEY=1
KEYBOARD_KEY_90008=red
KEYBOARD_KEY_90007=copy
KEYBOARD_KEY_90006=paste
'';
extraRules = ''
ACTION=="add", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1666", NAME=keys
'';
};
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
networking = { networking = {
@ -308,38 +295,56 @@
}; };
}; };
services.openssh.enable = true; services = {
# programs.ssh.startAgent = true; udev = {
extraHwdb = ''
evdev:name:ELECOM TrackBall Mouse HUGE TrackBall:*
ID_INPUT_KEY=1
KEYBOARD_KEY_90008=red
KEYBOARD_KEY_90007=copy
KEYBOARD_KEY_90006=paste
'';
programs.gnome-disks.enable = true; extraRules = ''
ACTION=="add", ATTRS{idVendor}=="0951", ATTRS{idProduct}=="1666", NAME=keys
'';
};
openssh.enable = true;
udisks2 = {
enable = true;
};
envfs.enable = true;
cpupower-gui.enable = true;
tailscale.enable = true;
sunshine = {
enable = true;
user = "erwin";
openFirewall = true;
};
services.udisks2 = {
enable = true;
}; };
services.envfs.enable = true; programs = {
services.cpupower-gui.enable = true; gnome-disks.enable = true;
services.tailscale.enable = true; # ssh.startAgent = true;
programs.gamemode = { gamemode = {
enable = true; enable = true;
settings = { settings = {
general = { general = {
renice = 5; renice = 5;
}; };
custom = { custom = {
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
};
}; };
}; };
}; };
services.sunshine = {
enable = true;
user = "erwin";
openFirewall = true;
};
powerManagement = { powerManagement = {
cpuFreqGovernor = "ondemand"; cpuFreqGovernor = "ondemand";
}; };

View file

@ -62,24 +62,26 @@
systemd.enable = true; systemd.enable = true;
}; };
fileSystems."/" = { fileSystems = {
device = "/dev/disk/by-label/nixos"; "/" = {
fsType = "ext4"; device = "/dev/disk/by-label/nixos";
}; fsType = "ext4";
};
fileSystems."/boot" = { "/boot" = {
device = "/dev/disk/by-label/boot"; device = "/dev/disk/by-label/boot";
fsType = "vfat"; fsType = "vfat";
}; };
fileSystems."/home" = { "/home" = {
device = "/dev/disk/by-label/home"; device = "/dev/disk/by-label/home";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/yocto" = { "/yocto" = {
device = "/dev/disk/by-label/yocto"; device = "/dev/disk/by-label/yocto";
fsType = "ext4"; fsType = "ext4";
};
}; };
swapDevices = swapDevices =
@ -112,8 +114,7 @@
}; };
kernelModules = [ "kvm-amd" "apple-mfi-fastcharge" "zenpower" ]; kernelModules = [ "kvm-amd" "apple-mfi-fastcharge" "zenpower" ];
# boot.kernelParams = [ "amd_pstate.shared_mem=1" ]; # boot.kernelParams = [ "amd_pstate.shared_mem=1" ];
extraModulePackages = [ ] ++ extraModulePackages = with config.boot.kernelPackages; [ rtl88x2bu zenpower cpupower ];
(with config.boot.kernelPackages; [ rtl88x2bu zenpower cpupower ]);
loader = { loader = {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
@ -237,48 +238,51 @@
}; };
}; };
services.openssh.enable = true;
# programs.ssh.startAgent = true; # programs.ssh.startAgent = true;
services.envfs.enable = true; services = {
services.cpupower-gui.enable = true; openssh.enable = true;
services.flatpak.enable = true;
services.tailscale.enable = true; envfs.enable = true;
cpupower-gui.enable = true;
flatpak.enable = true;
tailscale.enable = true;
services.xserver = { xserver = {
videoDrivers = [ "nvidia" ]; videoDrivers = [ "nvidia" ];
screenSection = '' screenSection = ''
Option "metamodes" "DP-0: nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On, AllowGSYNCCompatible=On}, DP-4: nvidia-auto-select +3840+0 {ForceFullCompositionPipeline=On, AllowGSYNCCompatible=On}" Option "metamodes" "DP-0: nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On, AllowGSYNCCompatible=On}, DP-4: nvidia-auto-select +3840+0 {ForceFullCompositionPipeline=On, AllowGSYNCCompatible=On}"
Option "TripleBuffer" "On" Option "TripleBuffer" "On"
''; '';
libinput = { libinput = {
enable = true; enable = true;
mouse = { mouse = {
naturalScrolling = true; naturalScrolling = true;
accelSpeed = "1.0"; accelSpeed = "1.0";
}; };
touchpad = { touchpad = {
naturalScrolling = true; naturalScrolling = true;
};
}; };
}; };
};
services.nxserver = { nxserver = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
}; };
services.icecream.daemon = { icecream.daemon = {
enable = true; enable = true;
schedulerHost = "icecream.internal.horus.nu"; schedulerHost = "icecream.internal.horus.nu";
noRemote = true; noRemote = true;
openFirewall = false; openFirewall = false;
openBroadcast = true; openBroadcast = true;
};
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [

View file

@ -8,14 +8,6 @@ in
home-manager.users.erwin = { home-manager.users.erwin = {
_module.args.flake-inputs = inputs; _module.args.flake-inputs = inputs;
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
home.username = "erwin";
home.homeDirectory = "/home/erwin";
home.stateVersion = "23.05";
eboskma = { eboskma = {
programs = { programs = {
bat.enable = true; bat.enable = true;
@ -32,16 +24,26 @@ in
}; };
}; };
home.packages = with pkgs; [ programs.home-manager.enable = true;
atool programs.command-not-found.enable = true;
bottom
btop home = {
fd username = "erwin";
iotop homeDirectory = "/home/erwin";
procs
ripgrep stateVersion = "23.05";
units
]; packages = with pkgs; [
atool
bottom
btop
fd
iotop
procs
ripgrep
units
];
};
xdg = { xdg = {
enable = true; enable = true;

View file

@ -70,58 +70,60 @@
}; };
}; };
services.openssh.enable = true; services = {
services.tailscale.enable = true; openssh.enable = true;
tailscale.enable = true;
services.kanata = { kanata = {
enable = true; enable = true;
keyboards = { keyboards = {
code = { code = {
devices = [ devices = [
"/dev/input/by-id/usb-04d9_USB_Keyboard-event-kbd" "/dev/input/by-id/usb-04d9_USB_Keyboard-event-kbd"
]; ];
config = '' config = ''
(defsrc (defsrc
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc scrlck pp esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc scrlck pp
grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup
tab q w e r t y u i o p [ ] \ del end pgdn tab q w e r t y u i o p [ ] \ del end pgdn
caps a s d f g h j k l ; ' ret caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft up lsft z x c v b n m , . / rsft up
lctl lmet lalt spc ralt rmet rctl lft down rght) lctl lmet lalt spc ralt rmet rctl lft down rght)
(deflayer colemak (deflayer colemak
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc @qwe pp esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc @qwe pp
grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup
tab q w f p g j l u y ; [ ] \ del end pgdn tab q w f p g j l u y ; [ ] \ del end pgdn
@cap a r s t d h n e i o ' ret @cap a r s t d h n e i o ' ret
lsft z x c v b k m , . / rsft up lsft z x c v b k m , . / rsft up
lctl lmet lalt spc ralt rmet rctl lft down rght) lctl lmet lalt spc ralt rmet rctl lft down rght)
(deflayer qwerty (deflayer qwerty
esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc @col pp esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtsc @col pp
grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup grv 1 2 3 4 5 6 7 8 9 0 - = bspc ins home pgup
tab q w e r t y u i o p [ ] \ del end pgdn tab q w e r t y u i o p [ ] \ del end pgdn
@cap a s d f g h j k l ; ' ret @cap a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft up lsft z x c v b n m , . / rsft up
lctl lmet lalt spc ralt rmet rctl lft down rght) lctl lmet lalt spc ralt rmet rctl lft down rght)
(defalias (defalias
cap (tap-hold 100 100 bspc lctl) cap (tap-hold 100 100 bspc lctl)
col (layer-switch colemak) col (layer-switch colemak)
qwe (layer-switch qwerty) qwe (layer-switch qwerty)
) )
''; '';
};
}; };
}; };
};
services.xserver = { xserver = {
enable = true;
windowManager.i3 = {
enable = true; enable = true;
extraPackages = with pkgs; [ i3lock-color ]; windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [ i3lock-color ];
};
}; };
}; };

View file

@ -6,17 +6,6 @@ in
home-manager.users.erwin = { home-manager.users.erwin = {
_module.args.flake-inputs = inputs; _module.args.flake-inputs = inputs;
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
home.username = "erwin";
home.homeDirectory = "/home/erwin";
home.sessionVariables = {
EDITOR = "${pkgs.neovim}/bin/neovim";
};
home.stateVersion = "23.05";
eboskma = { eboskma = {
programs = { programs = {
alacritty.enable = true; alacritty.enable = true;
@ -48,28 +37,38 @@ in
}; };
}; };
home.packages = with pkgs; home = {
[ username = "erwin";
atool homeDirectory = "/home/erwin";
bottom sessionVariables = {
falkon EDITOR = "${pkgs.neovim}/bin/neovim";
fd };
gnome.nautilus
imagemagick stateVersion = "23.05";
imv
iotop packages = with pkgs;
libnotify [
mpv atool
nordzy-cursor-theme bottom
quintom-cursor-theme falkon
procs fd
ripgrep gnome.nautilus
units imagemagick
unzip imv
xdg-utils iotop
wl-clipboard libnotify
zeal mpv
]; nordzy-cursor-theme
quintom-cursor-theme
procs
ripgrep
units
unzip
xdg-utils
wl-clipboard
zeal
];
};
xdg = { xdg = {
enable = true; enable = true;
@ -138,6 +137,11 @@ in
}; };
}; };
programs = {
home-manager.enable = true;
command-not-found.enable = true;
};
imports = [ imports = [
../../modules/options ../../modules/options
] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules))); ] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules)));

View file

@ -12,19 +12,20 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; boot = {
# Register a v4l2loopback device at boot extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
boot.kernelModules = [ # Register a v4l2loopback device at boot
"v4l2loopback" kernelModules = [
]; "v4l2loopback"
];
boot.extraModprobeConfig = ''
options v4l2loopback max_buffers=2
options v4l2loopback exclusive_caps=1
options v4l2loopback video_nr=10
options v4l2loopback card_label="VirtualCam"
'';
extraModprobeConfig = ''
options v4l2loopback max_buffers=2
options v4l2loopback exclusive_caps=1
options v4l2loopback video_nr=10
options v4l2loopback card_label="VirtualCam"
'';
};
environment.systemPackages = with pkgs; [ backscrub ]; environment.systemPackages = with pkgs; [ backscrub ];
}; };
} }

View file

@ -93,7 +93,7 @@ in
}; };
services.udev = { services.udev = {
packages = [ ] ++ (optional cfg.udev-rules.qmk qmkUdevRules) packages = (optional cfg.udev-rules.qmk qmkUdevRules)
++ (optional cfg.udev-rules.probe-rs probersRules) ++ (optional cfg.udev-rules.probe-rs probersRules)
++ (optional cfg.udev-rules.blink1 blink1Rules) ++ (optional cfg.udev-rules.blink1 blink1Rules)
++ (optional cfg.udev-rules.picotool picotoolRules) ++ (optional cfg.udev-rules.picotool picotoolRules)

View file

@ -45,8 +45,7 @@ in
group = "greeter"; group = "greeter";
}; };
"greetd/environments" = { "greetd/environments" = {
text = concatStringsSep "\n" ([ ] text = concatStringsSep "\n" ((optional cfg.sway "${pkgs.sway}/bin/sway")
++ (optional cfg.sway "${pkgs.sway}/bin/sway")
++ [ "${pkgs.bash}/bin/bash" ]); ++ [ "${pkgs.bash}/bin/bash" ]);
user = "greeter"; user = "greeter";
group = "greeter"; group = "greeter";

View file

@ -7,166 +7,168 @@ in
options.eboskma.klipper = { enable = mkEnableOption "klipper"; }; options.eboskma.klipper = { enable = mkEnableOption "klipper"; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.klipper = { services = {
enable = true; klipper = {
firmwares = { enable = true;
mcu = { firmwares = {
enable = true; mcu = {
configFile = ./firmware-config; enable = true;
serial = "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A600KWST-if00-port0"; configFile = ./firmware-config;
serial = "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A600KWST-if00-port0";
};
};
settings = {
stepper_x = {
step_pin = "PA3";
dir_pin = "!PA1";
enabe_pin = "!PA5";
rotation_distance = 40;
microsteps = 16;
endstop_pin = "^PA0";
position_min = -10;
position_endstop = -10;
position_max = 195;
homing_speed = 50;
homing_retract_dist = 5;
};
stepper_y = {
step_pin = "PC6";
dir_pin = "!PC4";
enabe_pin = "!PA7";
rotation_distance = 40;
microsteps = 16;
endstop_pin = "^PA4";
position_min = 0;
position_endstop = 0;
position_max = 200;
homing_speed = 50;
homing_retract_dist = 5;
};
stepper_z = {
step_pin = "PC0";
dir_pin = "PG2";
enabe_pin = "!PC2";
rotation_distance = 2;
microsteps = 16;
endstop_pin = "^PC7";
position_min = 0;
position_endstop = 0;
position_max = 180;
homing_speed = 5;
homing_retract_dist = 5;
};
extruder = {
step_pin = "PL6";
dir_pin = "!PL4";
enable_pin = "!PG0";
rotation_distance = 34.043;
microsteps = 16;
nozzle_diameter = 0.400;
filament_diameter = 1.75;
max_extrude_only_distance = 150;
heater_pin = "PE4";
sensor_type = "EPCOS 100K B57560G104F";
sensor_pin = "PK0";
control = "pid";
pid_Kp = 12.33;
pid_Ki = 0.51;
pid_Kd = 74.50;
min_temp = 0;
max_temp = 250;
max_extrude_cross_section = 5;
};
heater_bed = {
heater_pin = "PG5";
sensor_type = "ATC Semitec 104GT-2";
sensor_pin = "PK2";
control = "pid";
pid_Kp = 234.88;
pid_Ki = 42.79;
pid_Kd = 322.28;
min_temp = 0;
max_temp = 120;
};
bed_screws = {
screw1 = "20,7";
screw2 = "190,7";
screw3 = "190,180";
screw4 = "20,180";
};
fan.pin = "PH4";
mcu.serial = config.services.klipper.firmwares.mcu.serial;
printer = {
kinematics = "cartesian";
max_velocity = 400;
max_accel = 5000;
max_z_velocity = 5;
max_z_accel = 75;
};
display = {
lcd_type = "hd44780";
rs_pin = "PD1";
e_pin = "PH0";
d4_pin = "PH1";
d5_pin = "PD0";
d6_pin = "PE3";
d7_pin = "PH3";
encoder_pins = "PL7,PG1";
click_pin = "^!PD2";
};
# These are necessary for Fluidd
virtual_sdcard = {
path = "/var/lib/klipper/gcode_files";
};
display_status = { };
pause_resume = { };
} // (import ./klipper-macros.nix);
};
moonraker = {
enable = true;
allowSystemControl = true;
settings = {
authorization = {
cors_domains = [
"*.local"
"*://my.mainsail.xyz"
];
trusted_clients = [
"10.0.0.0/24"
"10.1.0.0/24"
"100.64.0.0/16"
"127.0.0.0/8"
"fe80::/10"
"::1/128"
];
};
history = { };
octoprint_compat = {
enable_ufp = false;
};
zeroconf = { };
}; };
}; };
settings = { mainsail = {
stepper_x = { enable = true;
step_pin = "PA3"; hostName = config.networking.hostName;
dir_pin = "!PA1";
enabe_pin = "!PA5";
rotation_distance = 40;
microsteps = 16;
endstop_pin = "^PA0";
position_min = -10;
position_endstop = -10;
position_max = 195;
homing_speed = 50;
homing_retract_dist = 5;
};
stepper_y = {
step_pin = "PC6";
dir_pin = "!PC4";
enabe_pin = "!PA7";
rotation_distance = 40;
microsteps = 16;
endstop_pin = "^PA4";
position_min = 0;
position_endstop = 0;
position_max = 200;
homing_speed = 50;
homing_retract_dist = 5;
};
stepper_z = {
step_pin = "PC0";
dir_pin = "PG2";
enabe_pin = "!PC2";
rotation_distance = 2;
microsteps = 16;
endstop_pin = "^PC7";
position_min = 0;
position_endstop = 0;
position_max = 180;
homing_speed = 5;
homing_retract_dist = 5;
};
extruder = {
step_pin = "PL6";
dir_pin = "!PL4";
enable_pin = "!PG0";
rotation_distance = 34.043;
microsteps = 16;
nozzle_diameter = 0.400;
filament_diameter = 1.75;
max_extrude_only_distance = 150;
heater_pin = "PE4";
sensor_type = "EPCOS 100K B57560G104F";
sensor_pin = "PK0";
control = "pid";
pid_Kp = 12.33;
pid_Ki = 0.51;
pid_Kd = 74.50;
min_temp = 0;
max_temp = 250;
max_extrude_cross_section = 5;
};
heater_bed = {
heater_pin = "PG5";
sensor_type = "ATC Semitec 104GT-2";
sensor_pin = "PK2";
control = "pid";
pid_Kp = 234.88;
pid_Ki = 42.79;
pid_Kd = 322.28;
min_temp = 0;
max_temp = 120;
};
bed_screws = {
screw1 = "20,7";
screw2 = "190,7";
screw3 = "190,180";
screw4 = "20,180";
};
fan.pin = "PH4";
mcu.serial = config.services.klipper.firmwares.mcu.serial;
printer = {
kinematics = "cartesian";
max_velocity = 400;
max_accel = 5000;
max_z_velocity = 5;
max_z_accel = 75;
};
display = {
lcd_type = "hd44780";
rs_pin = "PD1";
e_pin = "PH0";
d4_pin = "PH1";
d5_pin = "PD0";
d6_pin = "PE3";
d7_pin = "PH3";
encoder_pins = "PL7,PG1";
click_pin = "^!PD2";
};
# These are necessary for Fluidd
virtual_sdcard = {
path = "/var/lib/klipper/gcode_files";
};
display_status = { };
pause_resume = { };
} // (import ./klipper-macros.nix);
};
services.moonraker = {
enable = true;
allowSystemControl = true;
settings = {
authorization = {
cors_domains = [
"*.local"
"*://my.mainsail.xyz"
];
trusted_clients = [
"10.0.0.0/24"
"10.1.0.0/24"
"100.64.0.0/16"
"127.0.0.0/8"
"fe80::/10"
"::1/128"
];
};
history = { };
octoprint_compat = {
enable_ufp = false;
};
zeroconf = { };
}; };
}; };
services.mainsail = {
enable = true;
hostName = config.networking.hostName;
};
}; };
} }

View file

@ -9,22 +9,6 @@ in
home-manager.users.erwin = { home-manager.users.erwin = {
_module.args.flake-inputs = inputs; _module.args.flake-inputs = inputs;
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
services.blueman-applet.enable = bt.enable;
services.gnome-keyring = {
enable = true;
components = [ "pkcs11" "ssh" "secrets" ];
};
home.username = "erwin";
home.homeDirectory = "/home/erwin";
home.sessionVariables = { };
home.stateVersion = "21.11";
eboskma = { eboskma = {
programs = { programs = {
alacritty.enable = false; alacritty.enable = false;
@ -132,57 +116,65 @@ in
}; };
}; };
home.packages = with pkgs; home = {
[ username = "erwin";
ardour homeDirectory = "/home/erwin";
atool sessionVariables = { };
bitwarden
blink1-tool stateVersion = "21.11";
bottom
dbeaver packages = with pkgs;
easyeffects [
fd ardour
ffmpeg_5-full atool
freecad bitwarden
gnome.nautilus blink1-tool
helvum bottom
horizon-eda dbeaver
imagemagick easyeffects
imv fd
iotop ffmpeg_5-full
(jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; }) freecad
kicad gnome.nautilus
larynx helvum
libnotify horizon-eda
libreoffice-fresh imagemagick
minio-client imv
mpv iotop
nomachine-client (jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; })
nordzy-cursor-theme kicad
(noson.overrideAttrs (_: { qtWrapperArgs = ''--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.libpulseaudio ]}''; })) larynx
pamedia libnotify
pass libreoffice-fresh
pavucontrol minio-client
povray mpv
quintom-cursor-theme nomachine-client
procs nordzy-cursor-theme
prusa-slicer (noson.overrideAttrs (_: { qtWrapperArgs = ''--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ pkgs.libpulseaudio ]}''; }))
qgis pamedia
ripgrep pass
scid-vs-pc pavucontrol
signal-desktop povray
solo2-cli quintom-cursor-theme
steam procs
steamcmd prusa-slicer
steam-tui qgis
# super-slicer-latest ripgrep
units scid-vs-pc
unzip signal-desktop
xdg-utils solo2-cli
wl-clipboard steam
zeal steamcmd
] steam-tui
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]); # super-slicer-latest
units
unzip
xdg-utils
wl-clipboard
zeal
]
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
};
xdg = { xdg = {
enable = true; enable = true;
@ -251,20 +243,34 @@ in
}; };
}; };
services.udiskie = { programs = {
enable = true; home-manager.enable = true;
tray = "auto"; command-not-found.enable = true;
notify = true; };
settings = {
program_options = { services = {
menu = "nested"; blueman-applet.enable = bt.enable;
gnome-keyring = {
enable = true;
components = [ "pkcs11" "ssh" "secrets" ];
};
udiskie = {
enable = true;
tray = "auto";
notify = true;
settings = {
program_options = {
menu = "nested";
};
device_config = [
{
device_file = "/dev/loop*";
ignore = true;
}
];
}; };
device_config = [
{
device_file = "/dev/loop*";
ignore = true;
}
];
}; };
}; };
@ -277,28 +283,31 @@ in
# OBS control websocket # OBS control websocket
networking.firewall.allowedTCPPorts = [ 4455 ]; networking.firewall.allowedTCPPorts = [ 4455 ];
programs.steam = { programs = {
enable = true; steam = {
package = pkgs.steam.override { enable = true;
extraPkgs = sp: with sp; [ gamescope ]; package = pkgs.steam.override {
extraPkgs = sp: with sp; [ gamescope ];
};
};
gamescope = {
enable = true;
args = [
"--rt"
"--fullscreen"
];
};
bandwhich.enable = true;
noisetorch.enable = true;
wireshark = {
enable = true;
package = pkgs.wireshark;
}; };
}; };
programs.gamescope = {
enable = true;
args = [
"--rt"
"--fullscreen"
];
};
programs.bandwhich.enable = true;
programs.noisetorch.enable = true;
services.ddccontrol.enable = true; services.ddccontrol.enable = true;
programs.wireshark = {
enable = true;
package = pkgs.wireshark;
};
users.groups.wireshark.members = [ "erwin" ]; users.groups.wireshark.members = [ "erwin" ];
}; };
} }

View file

@ -8,16 +8,8 @@ in
home-manager.users.erwin = { home-manager.users.erwin = {
_module.args.flake-inputs = inputs; _module.args.flake-inputs = inputs;
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
home.username = "erwin";
home.homeDirectory = "/home/erwin";
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
home.stateVersion = "23.05";
eboskma = { eboskma = {
programs = { programs = {
bat.enable = true; bat.enable = true;
@ -33,16 +25,30 @@ in
}; };
}; };
home.packages = with pkgs; [
atool programs = {
bottom home-manager.enable = true;
btop command-not-found.enable = true;
fd };
iotop
procs home = {
ripgrep username = "erwin";
units homeDirectory = "/home/erwin";
];
stateVersion = "23.05";
packages = with pkgs; [
atool
bottom
btop
fd
iotop
procs
ripgrep
units
];
};
xdg = { xdg = {
enable = true; enable = true;

View file

@ -24,20 +24,6 @@ in
home-manager.users.erwin = { home-manager.users.erwin = {
_module.args.flake-inputs = inputs; _module.args.flake-inputs = inputs;
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
services.gnome-keyring = {
enable = true;
components = [ "pkcs11" "ssh" "secrets" ];
};
home.username = "erwin";
home.homeDirectory = "/home/erwin";
home.sessionVariables = {
# EDITOR = "${config.home-manager.users.erwin.eboskma.programs.emacs.package}/bin/emacsclient -c";
};
eboskma = { eboskma = {
var.workSystem = true; var.workSystem = true;
programs = { programs = {
@ -130,50 +116,75 @@ in
xbanish.enable = true; xbanish.enable = true;
}; };
}; };
programs.home-manager.enable = true;
programs.command-not-found.enable = true;
home.packages = with pkgs; [ services.gnome-keyring = {
atool enable = true;
bitwarden components = [ "pkcs11" "ssh" "secrets" ];
blink1-tool };
bottom
cider home = {
dbeaver username = "erwin";
dconf homeDirectory = "/home/erwin";
fd sessionVariables = {
ffmpeg_5-full # EDITOR = "${config.home-manager.users.erwin.eboskma.programs.emacs.package}/bin/emacsclient -c";
gnome.nautilus };
icemon stateVersion = "22.11";
imagemagick
imv
iotop packages = with pkgs; [
(jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; }) atool
libnotify bitwarden
libreoffice-fresh blink1-tool
minio-client bottom
mpv cider
nordzy-cursor-theme dbeaver
pamedia dconf
pass fd
quintom-cursor-theme ffmpeg_5-full
procs gnome.nautilus
qgis icemon
recursive imagemagick
ripgrep imv
s-tui iotop
solo2-cli (jetbrains.clion.override { jdk = pkgs.jetbrains.jdk; })
stress libnotify
units libreoffice-fresh
unzip minio-client
xdg-utils mpv
xkb-switch nordzy-cursor-theme
wine pamedia
zathura pass
zeal quintom-cursor-theme
procs
qgis
recursive
ripgrep
s-tui
solo2-cli
stress
units
unzip
xdg-utils
xkb-switch
wine
zathura
zeal
localSessionScript
remoteSessionScript
]
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
pointerCursor = {
name = "elementary";
package = pkgs.pantheon.elementary-gtk-theme;
gtk.enable = true;
x11.enable = true;
};
};
localSessionScript
remoteSessionScript
]
++ (with gst_all_1; [ gstreamer gstreamer.dev gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav gst-vaapi ]);
xdg = { xdg = {
enable = true; enable = true;
@ -244,51 +255,47 @@ in
}; };
}; };
home.pointerCursor = {
name = "elementary";
package = pkgs.pantheon.elementary-gtk-theme;
gtk.enable = true;
x11.enable = true;
};
imports = [ imports = [
../../modules/options ../../modules/options
] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules))); ] ++ (map (mod: (../../home-manager/modules + "/${mod}")) (builtins.attrNames (builtins.readDir ../../home-manager/modules)));
home.stateVersion = "22.11";
}; };
services.teamviewer.enable = true; services = {
teamviewer.enable = true;
udev.packages = with pkgs; [
headsetcontrol
];
xserver = {
# layout = "us,us";
# xkbVariant = "colemak,";
# xkbModel = "pc105";
xkbOptions = "eurosign:5,lv5:ralt_switch,lv3:rwin_switch";
upscaleDefaultCursor = false;
exportConfiguration = true;
windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
extraPackages = with pkgs; [ i3lock-color ];
};
};
};
programs = {
bandwhich.enable = true;
wireshark = {
enable = true;
package = pkgs.wireshark;
};
};
users.groups.wireshark.members = [ "erwin" ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
headsetcontrol headsetcontrol
]; ];
services.udev.packages = with pkgs; [
headsetcontrol
];
services.xserver = {
# layout = "us,us";
# xkbVariant = "colemak,";
# xkbModel = "pc105";
xkbOptions = "eurosign:5,lv5:ralt_switch,lv3:rwin_switch";
upscaleDefaultCursor = false;
exportConfiguration = true;
windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
extraPackages = with pkgs; [ i3lock-color ];
};
};
programs.bandwhich.enable = true;
programs.wireshark = {
enable = true;
package = pkgs.wireshark;
};
users.groups.wireshark.members = [ "erwin" ];
}; };
} }