diff --git a/hosts/gerg-desktop/Windows.xml b/hosts/gerg-desktop/Windows.xml index bb7d48b..637dcd7 100644 --- a/hosts/gerg-desktop/Windows.xml +++ b/hosts/gerg-desktop/Windows.xml @@ -177,10 +177,19 @@ - + - + + + + + + + + + + @@ -208,8 +217,6 @@ - - diff --git a/hosts/gerg-desktop/main.nix b/hosts/gerg-desktop/main.nix index 77bdfbc..4381372 100644 --- a/hosts/gerg-desktop/main.nix +++ b/hosts/gerg-desktop/main.nix @@ -3,9 +3,6 @@ { local = { remoteBuild.isBuilder = true; - X11Programs = { - sxhkd.enable = true; - }; DE.dwm.enable = true; DM = { lightdm.enable = true; @@ -73,6 +70,9 @@ nix-index element-desktop webcord + # QMK configuration + via + qmk ; inherit (nvim-flake.packages) neovim; inherit fmt; @@ -103,7 +103,11 @@ }; }; - services.udev.packages = [ pkgs.android-udev-rules ]; + services.udev.packages = [ + pkgs.android-udev-rules + pkgs.via + pkgs.qmk-udev-rules + ]; programs.adb.enable = true; networking = { diff --git a/hosts/gerg-desktop/vfio.nix b/hosts/gerg-desktop/vfio.nix index c6c775e..769018e 100644 --- a/hosts/gerg-desktop/vfio.nix +++ b/hosts/gerg-desktop/vfio.nix @@ -145,11 +145,9 @@ in ''; - systemd.tmpfiles.settings."vfio" = { - "/etc/Xorg/active.conf"."L".argument = "/etc/Xorg/2_mon.conf"; - "/var/lib/libvirt/qemu/Windows.xml"."L+".argument = toString ./Windows.xml; - "/var/lib/libvirt/hooks/qemu"."L+".argument = lib.getExe ( - pkgs.writeShellApplication { + systemd.tmpfiles.rules = + let + qemuHook = pkgs.writeShellApplication { name = "qemu-hook"; runtimeInputs = [ @@ -157,11 +155,12 @@ in pkgs.systemd pkgs.kmod ]; + text = '' GUEST_NAME="$1" OPERATION="$2" - if [ "$GUEST_NAME" == "Windows" ]; then + if [ "$GUEST_NAME" != "Windows" ]; then exit 0 fi @@ -190,9 +189,14 @@ in rm /etc/Xorg/ONE_MONITOR systemctl start display-manager.service fi + ''; - } - ); - }; + }; + in + [ + "L /etc/Xorg/active.conf - - - - /etc/Xorg/2_mon.conf" + "L+ /var/lib/libvirt/hooks/qemu - - - - ${lib.getExe qemuHook}" + "L+ /var/lib/libvirt/qemu/Windows.xml - - - - ${./Windows.xml}" + ]; _file = ./vfio.nix; } diff --git a/modules/DE/dwm.nix b/modules/DE/dwm.nix index 16f6285..fcd8772 100644 --- a/modules/DE/dwm.nix +++ b/modules/DE/dwm.nix @@ -14,9 +14,10 @@ enable = true; displayManager = { sessionCommands = '' - ${lib.getExe pkgs.feh} --bg-center "${self.packages.images}/recursion.png" - ${lib.getExe pkgs.numlockx} - ${lib.getExe pkgs.picom} & + feh --bg-center "${self.packages.images}/recursion.png" + numlockx + picom & + sxhkd & ''; defaultSession = "none+dwm"; }; @@ -43,8 +44,56 @@ } ]; }; - environment.systemPackages = builtins.attrValues { - inherit (suckless.packages) dmenu dwm st; + environment = { + systemPackages = builtins.attrValues { + inherit (suckless.packages) dmenu dwm st; + inherit (pkgs) + maim + playerctl + xclip + alsa-utils + feh + numlockx + picom + ; + sxhkd = pkgs.symlinkJoin { + name = "sxhkd"; + nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; + paths = [ pkgs.sxhkd ]; + postBuild = '' + wrapProgram $out/bin/sxhkd \ + --add-flags "-c /etc/sxhkd/sxhkdrc" + ''; + }; + }; + etc."sxhkd/sxhkdrc".text = '' + XF86AudioPlay + playerctl play-pause + XF86AudioPause + playerctl play-pause + XF86AudioStop + playerctl stop + XF86AudioNext + playerctl next + XF86AudioPrev + playerctl previous + XF86AudioRaiseVolume + amixer sset Master 1%+ + XF86AudioLowerVolume + amixer sset Master 1%- + XF86AudioMute + amixer sset Master toggle + Print + maim $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg + Print + shift + maim | xclip -selection clipboard -t image/png + super + Print + maim -s $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg + super + Print + shift + maim -s | xclip -selection clipboard -t image/png + super + ctrl + r + pkill -usr1 -x sxhkd + ''; }; }; _file = ./dwm.nix; diff --git a/modules/X11.nix b/modules/X11.nix index 5058794..442605d 100644 --- a/modules/X11.nix +++ b/modules/X11.nix @@ -1,74 +1,14 @@ _: +{ pkgs, lib, ... }: { - config, - pkgs, - lib, - ... -}: -let - cfg = config.local.X11Programs; -in -{ - options.local.X11Programs = { - sxhkd.enable = lib.mkEnableOption ""; + services.xserver = { + tty = lib.mkDefault 1; + exportConfiguration = true; + layout = "us"; + libinput.enable = true; + xautolock.enable = false; + excludePackages = [ pkgs.xterm ]; + desktopManager.xterm.enable = false; }; - config = lib.mkMerge [ - { - services.xserver = { - tty = lib.mkDefault 1; - exportConfiguration = true; - layout = "us"; - libinput.enable = true; - xautolock.enable = false; - excludePackages = [ pkgs.xterm ]; - desktopManager.xterm.enable = false; - }; - } - ( - let - configFile = pkgs.writeText "sxhkdrc" '' - XF86AudioPlay - playerctl play-pause - XF86AudioPause - playerctl play-pause - XF86AudioStop - playerctl stop - XF86AudioNext - playerctl next - XF86AudioPrev - playerctl previous - XF86AudioRaiseVolume - amixer sset Master 40+ - XF86AudioLowerVolume - amixer sset Master 40- - XF86AudioMute - amixer sset Master toggle - XF86MonBrightnessUp - brightnessctl s 20+ - XF86MonBrightnessDown - brightnessctl s 20- - Print - maim $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg - Print + shift - maim | xclip -selection clipboard -t image/png - super + Print - maim -s $HOME/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg - super + Print + shift - maim -s | xclip -selection clipboard -t image/png - ''; - in - lib.mkIf cfg.sxhkd.enable { - environment.systemPackages = [ - pkgs.maim # screenshooter - pkgs.brightnessctl # brightness control for laptop - pkgs.playerctl # music control - pkgs.xclip - ]; - services.xserver.displayManager.sessionCommands = '' - ${lib.getExe' pkgs.sxhkd "sxhkd"} -c ${configFile} & - ''; - } - ) - ]; _file = ./X11.nix; }