diff --git a/configuration.nix b/configuration.nix index 55f8339..cf05020 100644 --- a/configuration.nix +++ b/configuration.nix @@ -45,24 +45,28 @@ services = { # Set XServer Options. + displayManager = { + sddm = { + enable = true; + theme = "catppuccin-mocha"; + }; + defaultSession = "none+xmonad"; + }; + libinput.enable = true; # Enable touchpad. xserver = { enable = true; - displayManager = { - sddm = { - enable = true; - theme = "catppuccin-mocha"; - }; - defaultSession = "none+xmonad"; - }; - libinput.enable = true; # Enable touchpad. windowManager.xmonad = { enable = true; flake = { enable = true; - compiler = "ghc924"; + compiler = "ghc982"; }; + enableContribAndExtras = true; + }; + xkb = { + layout = "de"; + options = "caps:swapescape"; }; - xkb.layout = "de"; }; # Enable CUPS to print. printing.enable = true; @@ -98,7 +102,7 @@ libnotify - gnome.seahorse + seahorse libgnome-keyring #gnome.nautilus @@ -108,13 +112,16 @@ haskellPackages.zlib ]; - hardware.pulseaudio.extraConfig = '' - load-module module-combine-sink - ''; - services.gvfs.enable = true; services.udisks2.enable = true; + environment.sessionVariables = { + XDG_CACHE_HOME = "$HOME/.cache"; + XDG_CONFIG_HOME = "$HOME/.config"; + XDG_DATA_HOME = "$HOME/.local/share"; + XDG_STATE_HOME = "$HOME/.local/state"; + }; + # permissions for acpilight services.udev = { enable = true; @@ -132,12 +139,6 @@ # Enable zsh for setting it as shell for users. programs.zsh.enable = true; - # Audio - sound.enable = true; - hardware.pulseaudio.enable = true; - hardware.pulseaudio.support32Bit = - true; # # If compatibility with 32-bit applications is desired. - services.gnome.gnome-keyring.enable = true; security.pam.services.lightdm.enableGnomeKeyring = true; #ssh.startAgent = true; diff --git a/flake.lock b/flake.lock index 7325880..ce9f9d5 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,27 @@ { "nodes": { + "devshell": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717408969, + "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", + "owner": "numtide", + "repo": "devshell", + "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -16,6 +38,36 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_3": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -24,11 +76,11 @@ ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -46,11 +98,11 @@ ] }, "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", "type": "github" }, "original": { @@ -58,6 +110,27 @@ "type": "indirect" } }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -78,7 +151,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1710146030, @@ -96,7 +169,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1710146030, @@ -112,9 +185,66 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": [ + "neovim-nightly-overlay", + "nixpkgs" + ], + "nixpkgs-stable": [ + "neovim-nightly-overlay", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1719259945, + "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "git-hooks_2": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore_2", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720524665, + "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "git-ignore-nix": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1709087332, @@ -133,7 +263,7 @@ }, "git-ignore-nix_2": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1709087332, @@ -150,6 +280,50 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "neovim-nightly-overlay", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "hercules-ci-effects": { "inputs": { "flake-parts": "flake-parts_2", @@ -159,11 +333,11 @@ ] }, "locked": { - "lastModified": 1710478346, - "narHash": "sha256-Xjf8BdnQG0tLhPMlqQdwCIjOp7Teox0DP3N/jjyiGM4=", + "lastModified": 1719226092, + "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "64e7763d72c1e4c1e5e6472640615b6ae2d40fbf", + "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", "type": "github" }, "original": { @@ -179,41 +353,37 @@ ] }, "locked": { - "lastModified": 1712386041, - "narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=", + "lastModified": 1720734513, + "narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=", "owner": "nix-community", "repo": "home-manager", - "rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff", + "rev": "90ae324e2c56af10f20549ab72014804a3064c7f", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.11", "repo": "home-manager", "type": "github" } }, - "neovim-flake": { + "home-manager_2": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": [ - "neovim-nightly-overlay", + "nixvim", "nixpkgs" ] }, "locked": { - "dir": "contrib", - "lastModified": 1713138374, - "narHash": "sha256-YBgTm3a9lBch8AYo6k6qzyE1r/xMBAEObXAck3uu8t8=", - "owner": "neovim", - "repo": "neovim", - "rev": "0f5c94c04b95a2d942b380be48708d3cf097de0c", + "lastModified": 1720734513, + "narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "90ae324e2c56af10f20549ab72014804a3064c7f", "type": "github" }, "original": { - "dir": "contrib", - "owner": "neovim", - "repo": "neovim", + "owner": "nix-community", + "repo": "home-manager", "type": "github" } }, @@ -221,16 +391,19 @@ "inputs": { "flake-compat": "flake-compat", "flake-parts": "flake-parts", + "git-hooks": "git-hooks", "hercules-ci-effects": "hercules-ci-effects", - "neovim-flake": "neovim-flake", - "nixpkgs": "nixpkgs" + "neovim-src": "neovim-src", + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1713139466, - "narHash": "sha256-wxrLcto3oOVlTEA3Kodd1qUiREQcWkuF49TsNBI9DoI=", + "lastModified": 1719467057, + "narHash": "sha256-8gQ0txwuLoBpBeIhTAkl+/7Hi/AD4KE5m4YhOn1OA3E=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "320661405475a889e702f8bcb65807d200f75075", + "rev": "bb6bea003dc464a4248a173e71a007d368691092", "type": "github" }, "original": { @@ -239,36 +412,71 @@ "type": "github" } }, + "neovim-src": { + "flake": false, + "locked": { + "lastModified": 1719414226, + "narHash": "sha256-h/qJ+1R+BtY+mX02UsqYW82hEl78mrHTGAs9yjpFEzU=", + "owner": "neovim", + "repo": "neovim", + "rev": "fc9b70826ec88ca2e6c0624c522b872e87aa7ac1", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720845312, + "narHash": "sha256-yPhAsJTpyoIPQZJGC8Fw8W2lAXyhLoTn+HP20bmfkfk=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "5ce8503cf402cf76b203eba4b7e402bea8e44abc", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1713006710, - "narHash": "sha256-u7vpSVm2eCycRuOzSWKic/aaRUK4c8hPo3gETlDfm0A=", + "lastModified": 1720768451, + "narHash": "sha256-EYekUHJE2gxeo2pM/zM9Wlqw1Uw2XTJXOSAO79ksc4Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "692ceb334b4fd60d61798dde895f6f122110f5fe", + "rev": "7e7c39ea35c5cdd002cd4588b03a3fb9ece6fad9", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1713013257, - "narHash": "sha256-ZEfGB3YCBVggvk0BQIqVY7J8XF/9jxQ68fCca6nib+8=", + "lastModified": 1666603677, + "narHash": "sha256-apAEIj+z1iwMaMJ4tB21r/VTetfGDLDzuhXRHJknIAU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "90055d5e616bd943795d38808c94dbf0dd35abe8", + "rev": "074da18a72269cc5a6cf444dce42daea5649b2fe", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "type": "indirect" } }, "nixpkgs_3": { @@ -287,11 +495,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1713128889, - "narHash": "sha256-aB90ZqzosyRDpBh+rILIcyP5lao8SKz8Sr2PSWvZrzk=", + "lastModified": 1719468428, + "narHash": "sha256-vN5xJAZ4UGREEglh3lfbbkIj+MPEYMuqewMn4atZFaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2748d22b45a99fb2deafa5f11c7531c212b2cefa", + "rev": "1e3deb3d8a86a870d925760db1a5adecc64d329d", "type": "github" }, "original": { @@ -299,39 +507,56 @@ "type": "indirect" } }, - "nixpkgs_5": { + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts_3", + "git-hooks": "git-hooks_2", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "treefmt-nix": "treefmt-nix" + }, "locked": { - "lastModified": 1666603677, - "narHash": "sha256-apAEIj+z1iwMaMJ4tB21r/VTetfGDLDzuhXRHJknIAU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "074da18a72269cc5a6cf444dce42daea5649b2fe", + "lastModified": 1720910388, + "narHash": "sha256-gCudumUXHH+o0KFemXecDYySVCzjz7jYDGjdJbrN7gA=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "ac9a1cbf9c7145687e66a1c033d68fc72eca3fd8", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nix-community", + "repo": "nixvim", + "type": "github" } }, - "nixpkgs_6": { + "nur": { "locked": { - "lastModified": 1713128889, - "narHash": "sha256-aB90ZqzosyRDpBh+rILIcyP5lao8SKz8Sr2PSWvZrzk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "2748d22b45a99fb2deafa5f11c7531c212b2cefa", + "lastModified": 1720957545, + "narHash": "sha256-sscfzvW+bSs/mt0jknFA9kiqhyk/PS25X+iycEgh8g4=", + "owner": "nix-community", + "repo": "NUR", + "rev": "e2e7389aca9b937f363c85a37e3eb17535ab8c8c", "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "nix-community", + "repo": "NUR", + "type": "github" } }, "root": { "inputs": { "home-manager": "home-manager", "neovim-nightly-overlay": "neovim-nightly-overlay", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", + "nixvim": "nixvim", + "nur": "nur", + "wpaperd": "wpaperd", "xmonad-contrib": "xmonad-contrib" } }, @@ -352,16 +577,16 @@ }, "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, @@ -380,13 +605,49 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1720818892, + "narHash": "sha256-f52x9srIcqQm1Df3T+xYR5P6VfdnDFa2vkkcLhlTp6U=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "5b002f8a53ed04c1a4177e7b00809d57bd2c696f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "unstable": { "locked": { - "lastModified": 1712963716, - "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", + "lastModified": 1719254875, + "narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", + "rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60", "type": "github" }, "original": { @@ -396,19 +657,40 @@ "type": "github" } }, + "wpaperd": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1720797332, + "narHash": "sha256-e4w1aU6loZXUgGqocD1rdm/ey2wmzclwO2pSHhbydZk=", + "owner": "danyspin97", + "repo": "wpaperd", + "rev": "430244a9a52898c6d48d1203adbdcd86fca37aa1", + "type": "github" + }, + "original": { + "owner": "danyspin97", + "repo": "wpaperd", + "type": "github" + } + }, "xmonad": { "inputs": { "flake-utils": "flake-utils_3", "git-ignore-nix": "git-ignore-nix_2", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_4", "unstable": "unstable" }, "locked": { - "lastModified": 1711176336, - "narHash": "sha256-bOeCzmirCSiIceS3gYgW4pKkdvcym7ayQU547jktY3o=", + "lastModified": 1716327650, + "narHash": "sha256-IgPfwMto0hiiAYNToV7zti1PmHFjNRk79HlZpo+ThtI=", "owner": "xmonad", "repo": "xmonad", - "rev": "88102c0afbda9c681c18e882126ad2c144b5fec0", + "rev": "cfbf1ad51d308161c7adf3e2cb41fde3376ac0de", "type": "github" }, "original": { @@ -421,15 +703,17 @@ "inputs": { "flake-utils": "flake-utils_2", "git-ignore-nix": "git-ignore-nix", - "nixpkgs": "nixpkgs_4", + "nixpkgs": [ + "nixpkgs" + ], "xmonad": "xmonad" }, "locked": { - "lastModified": 1711871917, - "narHash": "sha256-e7TJ5Y7pUnO2AojWysw6WCrY0Ik6cwhjtC5YeFZJFm8=", + "lastModified": 1718512692, + "narHash": "sha256-AdjuHvAHut0uvFY3ou0a4kzK7K+QhOuBaalPhpyoLyw=", "owner": "xmonad", "repo": "xmonad-contrib", - "rev": "6e43da859816871f0ecbca12efb046af394d53f3", + "rev": "55f4c4ff1b832db07bcca2215d9c1bfed5864c64", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 7c1d4a3..e3346e2 100644 --- a/flake.nix +++ b/flake.nix @@ -2,74 +2,97 @@ description = "My NixOS Flake"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-23.11"; + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + xmonad-contrib = { + url = "github:xmonad/xmonad-contrib"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nur = { url = "github:nix-community/NUR"; }; + + neovim-nightly-overlay = { + url = "github:nix-community/neovim-nightly-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + wpaperd = { + url = "github:danyspin97/wpaperd"; inputs.nixpkgs.follows = "nixpkgs"; }; - xmonad-contrib.url = "github:xmonad/xmonad-contrib"; }; - inputs.neovim-nightly-overlay.url = - "github:nix-community/neovim-nightly-overlay"; - outputs = { self, nixpkgs, xmonad-contrib, home-manager, ... }@inputs: { - nixosConfigurations = { - eliasLaptop = nixpkgs.lib.nixosSystem rec { - system = "x86_64-linux"; - modules = [ - ./machines/configuration-laptop.nix - home-manager.nixosModules.home-manager - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - users.elias = import ./home/default-laptop.nix; - }; - nixpkgs.overlays = [ - (final: prev: { - xmobar = final.haskellPackages.callPackage - ./home/programs/xmonad/src/xmobar/default.nix { }; - }) - inputs.neovim-nightly-overlay.overlay - (import builds/overlay.nix { }) - (import overlays/lean.nix) - ]; - } - ] ++ xmonad-contrib.nixosModules ++ [ - # `modernise` replaces the standard xmonad module and wrapper script - # with those from unstable. This is currently a necessary workaround to - # make Mod-q recompilation work. - xmonad-contrib.modernise."x86_64-linux" - ]; - }; - eliasDesktop = nixpkgs.lib.nixosSystem rec { - system = "x86_64-linux"; - modules = [ - ./machines/configuration-desktop.nix - home-manager.nixosModules.home-manager - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - users.elias = import ./home/default-desktop.nix; - }; - nixpkgs.overlays = [ - (final: prev: { - xmobar = final.haskellPackages.callPackage - ./home/programs/xmonad/src/xmobar/default.nix { }; - }) - inputs.neovim-nightly-overlay.overlay - (import overlays/lean.nix) - ]; - } - ] ++ xmonad-contrib.nixosModules ++ [ - # `modernise` replaces the standard xmonad module and wrapper script - # with those from unstable. This is currently a necessary workaround to - # make Mod-q recompilation work. - xmonad-contrib.modernise."x86_64-linux" - ]; + outputs = + { nixpkgs, xmonad-contrib, home-manager, nur, nixvim, ... }@inputs: { + formatter.x86_64-linux = + nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; + nixosConfigurations = { + eliasLaptop = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./machines/configuration-laptop.nix + ./home/services/pipewire.nix + nur.nixosModules.nur + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs; }; + users.elias = import ./home/default-laptop.nix; + }; + nixpkgs.overlays = [ + (final: prev: { + xmobar = final.haskellPackages.callPackage + ./home/programs/xmonad/src/xmobar/default.nix { }; + }) + inputs.neovim-nightly-overlay.overlays.default + inputs.wpaperd.overlays.default + inputs.nur.overlay + (import builds/overlay.nix { }) + (import overlays/obsidian.nix) + ]; + } + ] ++ xmonad-contrib.nixosModules; + }; + eliasDesktop = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./machines/configuration-desktop.nix + ./home/services/pipewire.nix + nur.nixosModules.nur + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs; }; + users.elias = import ./home/default-desktop.nix; + }; + nixpkgs.overlays = [ + (final: prev: { + xmobar = final.haskellPackages.callPackage + ./home/programs/xmonad/src/xmobar/default.nix { }; + }) + inputs.neovim-nightly-overlay.overlays.default + inputs.wpaperd.overlays.default + inputs.nur.overlay + (import builds/overlay.nix { }) + (import overlays/obsidian.nix) + ]; + } + ] ++ xmonad-contrib.nixosModules; + }; }; }; - }; } diff --git a/home/default-laptop.nix b/home/default-laptop.nix index 65aa8a3..9568adc 100644 --- a/home/default-laptop.nix +++ b/home/default-laptop.nix @@ -1,13 +1,6 @@ { config, pkgs, ... }: { - imports = [ - ./programs/default-laptop.nix - ./services/default-laptop.nix - ./default.nix - ]; - - home.file."minlog".source = - config.lib.file.mkOutOfStoreSymlink "${pkgs.minlog}/share/minlog"; + imports = [ ./programs/default-laptop.nix ./default.nix ]; } diff --git a/home/programs/default.nix b/home/programs/default.nix index 90ad25a..9b0f075 100644 --- a/home/programs/default.nix +++ b/home/programs/default.nix @@ -2,7 +2,7 @@ imports = [ ./alacritty ./anki - ./cura + #./cura ./discord ./dolphin ./dunst @@ -14,6 +14,7 @@ ./libreoffice ./maestral ./neovim + ##./nixvim ./nextcloud ./obs ./picard diff --git a/home/programs/dolphin/default.nix b/home/programs/dolphin/default.nix index c722685..f6d9f88 100644 --- a/home/programs/dolphin/default.nix +++ b/home/programs/dolphin/default.nix @@ -4,7 +4,7 @@ home.packages = with pkgs; [ libsForQt5.dolphin libsForQt5.dolphin-plugins - gnome.nautilus + nautilus udisks ]; } diff --git a/home/programs/git/default.nix b/home/programs/git/default.nix index 05fd24b..35bd920 100644 --- a/home/programs/git/default.nix +++ b/home/programs/git/default.nix @@ -7,7 +7,7 @@ userEmail = "elias.schroeter@e.email"; signing = { key = "0x99D2EF975FE523CC"; - signByDefault = true; + signByDefault = false; }; }; } diff --git a/home/programs/neovim/default.nix b/home/programs/neovim/default.nix index 2cce167..53bb9b8 100644 --- a/home/programs/neovim/default.nix +++ b/home/programs/neovim/default.nix @@ -1,17 +1,8 @@ { pkgs, config, ... }: let - obsidian-nvim = pkgs.vimUtils.buildVimPlugin { - pname = "obsidian.nvim"; - version = "v3.5.1"; - src = pkgs.fetchFromGitHub { - owner = "epwalsh"; - repo = "obsidian.nvim"; - rev = "4eb44381811ab6af67b9f9fe3117616afbe1e118"; - sha256 = "sha256-/zj12pwppb1RGi3EovXla6Ahzkoxh3qhxQFOfnfPwac="; - }; - meta.homepage = "https://github.com/epwalsh/obsidian.nvim"; - }; + mkLuaConfig = file: args: + builtins.readFile "${pkgs.substituteAll (args // { src = file; })}"; in { home.sessionVariables = { EDITOR = "nvim"; }; @@ -19,11 +10,12 @@ in { programs.neovim = { enable = true; - package = pkgs.neovim-nightly; + vimAlias = true; + vimdiffAlias = true; withNodeJs = true; withPython3 = true; - plugins = with pkgs.vimPlugins; [ + plugins = (with pkgs.vimPlugins; [ bufferline-nvim catppuccin-nvim cmp-buffer @@ -53,7 +45,6 @@ in { nvim-lspconfig nvim-surround nvim-tree-lua - nvim-treesitter.withAllGrammars nvim-treesitter-textobjects nvim-ts-context-commentstring nvim-web-devicons @@ -65,6 +56,9 @@ in { telescope-nvim vimtex which-key-nvim + ]) ++ [ + (pkgs.vimPlugins.nvim-treesitter.withPlugins + (plugins: pkgs.tree-sitter.allGrammars)) ]; extraPackages = with pkgs; [ @@ -85,7 +79,7 @@ in { lean # Python ruff-lsp - nodePackages.pyright + pyright isort python311Packages.autopep8 # LaTeX @@ -108,34 +102,10 @@ in { chez ]; - extraLuaConfig = '' - vim.g.mapleader = " " - vim.g.maplocalleader = "," - require("lazy").setup({ - spec = { - -- Import plugins from lua/plugins - { import = "plugins" }, - }, - performance = { - reset_packpath = false, - rtp = { - reset = false, - } - }, - dev = { - path = "${ - pkgs.vimUtils.packDir - config.programs.neovim.finalPackage.passthru.packpathDirs - }/pack/myNeovimPackages/start", - patterns = {"arkav", "Bekaboo", "catppuccin", "epwalsh", "folke", "ggandor", "HiPhish", "hrsh7th", "iamcco", "Joosep", "Julian", "karb94", "kylechui", "L3MON4D3", "lervag", "mrcjkb", "neovim", "numToStr", "nvim-lua", "nvim-lualine", "nvim-telescope", "nvim-tree", "nvim-treesitter", "Olical", "onsails", "PaterJason", "rafamadiz", "saadparwaiz1", "skanehira", "stevearc", "tpope", "windwp"}, - }, - install = { - -- Safeguard in case we forget to install a plugin with Nix - missing = false, - }, - }) - require("config/options") - ''; + extraLuaConfig = mkLuaConfig ./init.lua { + path = "${pkgs.vimUtils.packDir + config.programs.neovim.finalPackage.passthru.packpathDirs}"; + }; }; xdg.configFile."nvim/lua" = { diff --git a/home/programs/neovim/init.lua b/home/programs/neovim/init.lua new file mode 100644 index 0000000..b40cc32 --- /dev/null +++ b/home/programs/neovim/init.lua @@ -0,0 +1,61 @@ +vim.g.mapleader = " " +require("lazy").setup({ + spec = { + -- Import plugins from lua/plugins + { import = "plugins" }, + }, + performance = { + reset_packpath = false, + rtp = { + reset = false, + }, + }, + dev = { + path = "@path@/pack/myNeovimPackages/start", + patterns = { + "folke", + "catppuccin", + "Julian", + "hrsh7th", + "neovim", + "rafamadriz", + "saadparwaiz1", + "L3MON4D3", + "onsails", + "nvim-lua", + "Olical", + "PaterJason", + "iamcco", + "nvim-treesitter", + "HiPhish", + "lervag", + "windwp", + "kylechui", + "numToStr", + "JoosepAlviste", + "stevearc", + "nvim-tree", + "tpope", + "karb94", + "akinsho", + "nvim-lualine", + "arkav", + "nvimdev", + "ggandor", + "Bekaboo", + "nvim-telescope", + "aserowy", + "3rd", + "epwalsh", + "preservim", + "elkowar", + "dynamotn", + "LhKipp", + }, + }, + install = { + -- Safeguard in case we forget to install a plugin with Nix + missing = false, + }, +}) +require("config/options") diff --git a/home/programs/nixvim/default.nix b/home/programs/nixvim/default.nix new file mode 100644 index 0000000..f8e7ea7 --- /dev/null +++ b/home/programs/nixvim/default.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: { + programs.nixvim = { + enable = true; + colorscheme = "catppuccin"; + colorschemes.catppuccin = { + enable = true; + settings = { flavour = "mocha"; }; + }; + }; +} + diff --git a/home/programs/thunderbird/default.nix b/home/programs/thunderbird/default.nix index d86b5ed..8d2ef7e 100644 --- a/home/programs/thunderbird/default.nix +++ b/home/programs/thunderbird/default.nix @@ -43,7 +43,7 @@ address = "elias.schroeter@e.email"; gpg = { key = "0x99D2EF975FE523CC"; - signByDefault = true; + signByDefault = false; }; aliases = [ "elias.schroeter@murena.io" "xacufe67.cadome83@murena.io" ]; imap = { diff --git a/home/programs/xmonad/src/xmobar/xmobar-custom.cabal b/home/programs/xmonad/src/xmobar/xmobar-custom.cabal index 02970c2..b96b13c 100644 --- a/home/programs/xmonad/src/xmobar/xmobar-custom.cabal +++ b/home/programs/xmonad/src/xmobar/xmobar-custom.cabal @@ -23,10 +23,10 @@ name: xmobar-custom version: 0.1.0.0 -- The package author(s). -author: 4Lost +author: einfischy -- An email address to which users can send suggestions, bug reports, and patches. -maintainer: elias.schroeter@e.email +maintainer: accounts.codeberg@kstn.in -- A copyright notice. -- copyright: @@ -43,9 +43,8 @@ executable xmobar main-is: xmobar.hs -- Other library packages from which modules are imported. - build-depends: base ^>=4.17.2.1, - xmobar ^>=0.47.1, - process + build-depends: base >= 4.11.0 && < 4.20, + xmobar ^>=0.48 -- Directories containing source files. hs-source-dirs: . diff --git a/home/programs/xmonad/src/xmobar/xmobar.hs b/home/programs/xmonad/src/xmobar/xmobar.hs index b021122..06ba80a 100644 --- a/home/programs/xmonad/src/xmobar/xmobar.hs +++ b/home/programs/xmonad/src/xmobar/xmobar.hs @@ -1,5 +1,5 @@ import Xmobar -import Plugins.Audio +--import Plugins.Audio --import Xmobar.Run.Exec --import Xmobar (Command(ComX)) --import GHC.Real (Integral(rem)) diff --git a/home/programs/xmonad/src/xmonad.hs b/home/programs/xmonad/src/xmonad.hs index 157eddf..8a0841e 100644 --- a/home/programs/xmonad/src/xmonad.hs +++ b/home/programs/xmonad/src/xmonad.hs @@ -11,7 +11,7 @@ import XMonad.Util.ClickableWorkspaces import XMonad.Util.Loggers import Data.ByteString (maximum) import Distribution.Compat.Prelude (print) -import Control.Monad.RWS (All(All)) +--import Control.Monad.RWS (All(All)) import XMonad.Hooks.ManageHelpers diff --git a/home/programs/zsh/default.nix b/home/programs/zsh/default.nix index 4cedf00..35b9177 100644 --- a/home/programs/zsh/default.nix +++ b/home/programs/zsh/default.nix @@ -18,7 +18,7 @@ "xrandr --output eDP-1 --auto --output HDMI-1 --mode 1920x1080 --left-of eDP-1"; conWG = "ssh elias@logout.nonagon.dev -p 6969"; }; - enableAutosuggestions = true; + autosuggestion.enable = true; enableCompletion = true; enableVteIntegration = true; history = { diff --git a/home/services/gpg-agent/default.nix b/home/services/gpg-agent/default.nix index b9921d2..150cad6 100644 --- a/home/services/gpg-agent/default.nix +++ b/home/services/gpg-agent/default.nix @@ -10,19 +10,20 @@ let ''; }; in { - home.packages = with pkgs; [ pinentry-rofi ]; + home.packages = with pkgs; [ pinentry-rofi pinentry-gnome3 ]; programs.gpg.enable = true; services.gpg-agent = { enable = true; + pinentryPackage = pkgs.pinentry-gnome3; enableZshIntegration = true; - pinentryFlavor = null; defaultCacheTtl = 7200; # 2h maxCacheTtl = 28800; # 8h extraConfig = '' - pinentry-program ${pinentryRofi}/bin/pinentry-rofi-with-env + ttyname $GPG_TTY ''; + }; } diff --git a/home/services/pipewire.nix b/home/services/pipewire.nix new file mode 100644 index 0000000..725340f --- /dev/null +++ b/home/services/pipewire.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; +} + diff --git a/indent.log b/indent.log index bc8aabb..46e6f1b 100644 --- a/indent.log +++ b/indent.log @@ -1,6 +1,6 @@ INFO: latexindent.pl version 3.20.3, 2023-02-19, a script to indent .tex files latexindent.pl lives here: /nix/store/2bhgwk9gsgp4kj73jwwnn7v8ib73mcmc-texlive-latexindent-3.20.3/scripts/latexindent/ - Sun May 19 17:45:31 2024 + Wed Jul 3 11:44:45 2024 Reading input from STDIN INFO: Processing switches: -y|--yaml: YAML settings specified via command line diff --git a/machines/configuration-laptop.nix b/machines/configuration-laptop.nix index 7cb32a0..465efed 100644 --- a/machines/configuration-laptop.nix +++ b/machines/configuration-laptop.nix @@ -6,16 +6,12 @@ # Hostname networking.hostName = "eliasLaptop"; - hardware.pulseaudio.enable = true; - hardware.bluetooth = { - enable = true; - powerOnBoot = false; - }; + services.blueman.enable = true; + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; + environment.systemPackages = with pkgs; [ - bluez - bluez-tools gnome.networkmanager-vpnc networkmanagerapplet ]; - services.blueman.enable = true; } diff --git a/overlays/lean.nix b/overlays/lean.nix deleted file mode 100644 index a18da28..0000000 --- a/overlays/lean.nix +++ /dev/null @@ -1,13 +0,0 @@ -final: prev: { - lean4 = prev.lean4.overrideAttrs (old: rec { - version = "4.6.1"; - - src = prev.fetchFromGitHub { - owner = "leanprover"; - repo = "lean4"; - rev = "v${version}"; - hash = "sha256-wUqGADwSocg2ciycCxg9qp+vJLJ2otA/5JpTrkFrDoQ="; - }; - }); -} - diff --git a/overlays/obsidian.nix b/overlays/obsidian.nix new file mode 100644 index 0000000..74b9c76 --- /dev/null +++ b/overlays/obsidian.nix @@ -0,0 +1,10 @@ +final: prev: { + obsidian = prev.obsidian.overrideAttrs (old: { + + src = prev.fetchurl { + url = old.src.url; + hash = "sha256-9goJnKOgJk5TrFUNz4vff8704cvHfqZpGL/iBkcU2GY="; + }; + }); +} +