{ pkgs, lib, config, ... }: let nixCommands = { height, width }: pkgs.writeText "NixCommands.hs" # haskell '' module NixCommands where nixStartIrc = "${pkgs.rxvt_unicode}/bin/urxvt -e irc" nixStartAudacious = "${pkgs.audacious}/bin/audacious" nixStartFlameshot = "${pkgs.flameshot}/bin/flameshot gui -p /share/" nixInvertColors = "${pkgs.xcalib}/bin/xcalib -invert -alter" nixStartRedshift = "${pkgs.redshift}/bin/redshift -O 6100 -g 0.9:0.9:0.9 -b 0.9" nixResetRedshift = "${pkgs.redshift}/bin/redshift -x" nixSetCursorImage = "${pkgs.xorg.xsetroot}/bin/xsetroot -cursor_name left_ptr" nixSetBackground = "${pkgs.haskellPackages.image-generator}/bin/image-generator --height ${ toString height } --width ${ toString width } --output /dev/shm/background.png && ${pkgs.feh}/bin/feh --bg-scale /dev/shm/background.png" nixStartAlbert = "${pkgs.albert}/bin/albert" nixStartCopyq = "${pkgs.copyq}/bin/copyq" nixShowCopyq = "${pkgs.copyq}/bin/copyq show" nixStartTerminal = "${pkgs.rxvt_unicode_with-plugins}/bin/urxvtc" ''; in { home-manager.users.mainUser = { home.file.".xmonad/xmonad.hs".source = ./xmonad/Main.hs; home.file.".xmonad/lib/NixCommands.hs".source = nixCommands { height = config.configuration.desktop.height; width = config.configuration.desktop.width; }; home.file.".xmonad/lib/SolarizedLight.hs".source = ./xmonad/SolarizedLight.hs; home.file.".xmonad/lib/SolarizedDark.hs".source = ./xmonad/SolarizedDark.hs; home.file.".xmonad/lib/FloatKeys.hs".source = ./xmonad/FloatKeys.hs; home.file.".xmonad/lib/TabbedFix.hs".source = ./xmonad/TabbedFix.hs; home.file.".xmonad/lib/BoringWindows.hs".source = ./xmonad/BoringWindows.hs; home.file.".xmonad/lib/Memo.hs".source = ./xmonad/Memo.hs; home.file.".xmonad/lib/SubLayouts.hs".source = ./xmonad/SubLayouts.hs; home.file.".xmonad/xmonad.cabal".source = ./xmonad/palos-xmonad.cabal; home.file.".xmonad/Main.hs".source = ./xmonad/Main.hs; }; }