Merge branch 'nixos' into nixos-work

This commit is contained in:
Moritz Böhme 2024-06-19 09:36:18 +02:00
commit 6201dba3da
18 changed files with 313 additions and 232 deletions

View file

@ -1,9 +0,0 @@
{
"options": {
"enable": true,
"target": {
"args": [],
"installable": ".#nixosConfigurations.nixos-desktop.options"
}
}
}

261
flake.lock generated
View file

@ -118,11 +118,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1716168343, "lastModified": 1715563999,
"narHash": "sha256-82oT27w9smpItZ+PyN2C0PjIwZYbIocwXSM4u1igXuc=", "narHash": "sha256-DDXZOKK0C5YeZ/GTUj7HiT+oqYIt8+qTsldaDvhWHFc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "6f01b9710bc4d3bf006eb8df928b4b15e0430901", "rev": "e972a78f4a49cd92075d64b6feeef64d26bf2996",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -184,11 +184,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1715865404, "lastModified": 1714641030,
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -329,6 +329,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_5": {
"inputs": {
"systems": "systems_6"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gen-nvim": { "gen-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -432,11 +450,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715930644, "lastModified": 1715486357,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -450,11 +468,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1716228712, "lastModified": 1713780596,
"narHash": "sha256-y+LOXuSRMfkR2Vfwl5K2NVrszi1h5MJpML+msLnVS8U=", "narHash": "sha256-DDAYNGSnrBwvVfpKx+XjkuecpoE9HiEf6JW+DBQgvm0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "33b38358559054d316eb605ccb733980dfa7dc63", "rev": "110e6dc761d5c3d352574def3479a9c39dfc4358",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -479,11 +497,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715791817, "lastModified": 1713612213,
"narHash": "sha256-J069Uhv/gCMFLX1dSh2f+9ZTM09r1Nv3oUfocCnWKow=", "narHash": "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprcursor", "repo": "hyprcursor",
"rev": "7c3aa03dffb53921e583ade3d4ae3f487e390e7e", "rev": "cab4746180f210a3c1dd3d53e45c510e309e90e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -495,22 +513,24 @@
"hyprland": { "hyprland": {
"inputs": { "inputs": {
"hyprcursor": "hyprcursor", "hyprcursor": "hyprcursor",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"systems": "systems_4", "systems": "systems_4",
"wlroots": "wlroots",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1716063601, "lastModified": 1713283263,
"narHash": "sha256-lH2CLdRQFtbQVauhLFDbPWTGmj7LgblMg2dq9thd0Zc=", "narHash": "sha256-Urb/njWiHYUudXpmK8EKl9Z58esTIG0PxXw5LuM2r5g=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "f8857e6072bd85b95393499688872aaf7f088b5b", "rev": "fe7b748eb668136dd0558b7c8279bfcd7ab4d759",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hyprwm", "owner": "hyprwm",
"ref": "v0.39.1",
"repo": "Hyprland", "repo": "Hyprland",
"type": "github" "type": "github"
} }
@ -519,21 +539,19 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hyprland", "hyprland",
"xdph",
"nixpkgs" "nixpkgs"
], ],
"systems": [ "systems": [
"hyprland", "hyprland",
"xdph",
"systems" "systems"
] ]
}, },
"locked": { "locked": {
"lastModified": 1691753796, "lastModified": 1714869498,
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-protocols", "repo": "hyprland-protocols",
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -554,11 +572,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715791527, "lastModified": 1713121246,
"narHash": "sha256-HhQ4zvGHrRjR63ltySSeg+x+0jb0lepiutWdnFhLRoo=", "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprlang", "repo": "hyprlang",
"rev": "969cb076e5b76f2e823aeca1937a3e1f159812ee", "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -567,31 +585,6 @@
"type": "github" "type": "github"
} }
}, },
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715879663,
"narHash": "sha256-/DwglRvj4XF4ECdNtrCIbthleszAZBwOiXG5A6r0K/c=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "f5181a068c1b06f2db51f6222e50a0c665a2b0c3",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"impermanence": { "impermanence": {
"locked": { "locked": {
"lastModified": 1708968331, "lastModified": 1708968331,
@ -625,11 +618,11 @@
}, },
"master": { "master": {
"locked": { "locked": {
"lastModified": 1716288615, "lastModified": 1715589090,
"narHash": "sha256-vwctBD3+lKydxAcd4HVJ87vdUYVp7rxLCeODGgF+CKc=", "narHash": "sha256-zrAP+EtMbOMx0XBFPgy/u0bfUBdh0F/mLUhHiaCPMi8=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "06683c1ab4b65c02848a58c0c594adb75a21a0f5", "rev": "983a74210808ebf5a93c5ed26de1adbc45ac6f4c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -687,11 +680,11 @@
}, },
"locked": { "locked": {
"dir": "contrib", "dir": "contrib",
"lastModified": 1715815279, "lastModified": 1715551630,
"narHash": "sha256-Pf7ZlqPnr195NZb5ADzMVsXurPMjRZ+JMXf6JxvXArE=", "narHash": "sha256-hNuCVU96sDo1zmnt0OSLRYv56f2CrH9XrftPsK8fMWo=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "9ca81b025990911c2a0dbda92af39ba84983bac3", "rev": "c7958356bef304320d86cd541d0de8db968c6cc8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -710,11 +703,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1715817852, "lastModified": 1715558773,
"narHash": "sha256-UH5o7hT72oAavJTG2NxlpMyQe3BQMniQAsgTugWtlc4=", "narHash": "sha256-yyKzLgpCjnY6Nns5O9M13LgNtevO5UCenQr61BO0AiI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "7b5ca2486bba58cac80b9229209239740b67cf90", "rev": "2d293e623b20fc71d94c3c96d8fc47e280edd1c7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -730,11 +723,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1716170277, "lastModified": 1715483403,
"narHash": "sha256-fCAiox/TuzWGVaAz16PxrR4Jtf9lN5dwWL2W74DS0yI=", "narHash": "sha256-WMDuQj7J5jbpXI/X/E6FZRKgBFGcaSTvYyVxPnKE6KU=",
"owner": "Mic92", "owner": "Mic92",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "e0638db3db43b582512a7de8c0f8363a162842b9", "rev": "f9027322f48b427da23746aa359a6510dfcd0228",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -863,11 +856,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1716128955, "lastModified": 1715499532,
"narHash": "sha256-3DNg/PV+X2V7yn8b/fUR2ppakw7D9N4sjVBGk6nDwII=", "narHash": "sha256-9UJLb8rdi2VokYcfOBQHUzP3iNxOPNWcbK++ENElpk0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f9256de8281f2ccd04985ac5c30d8f69aefadbe8", "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -895,11 +888,11 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1715787315, "lastModified": 1715087517,
"narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", "narHash": "sha256-CLU5Tsg24Ke4+7sH8azHWXKd0CFd4mhLWfhYgUiDBpQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", "rev": "b211b392b8486ee79df6cdfb1157ad2133427a29",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -911,11 +904,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1715774670, "lastModified": 1715499532,
"narHash": "sha256-iJYnKMtLi5u6hZhJm94cRNSDG5Rz6ZzIkGbhPFtDRm0=", "narHash": "sha256-9UJLb8rdi2VokYcfOBQHUzP3iNxOPNWcbK++ENElpk0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b3fcfcfabd01b947a1e4f36622bbffa3985bdac6", "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -943,11 +936,11 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1716220750, "lastModified": 1715499532,
"narHash": "sha256-Lhhrd1ZBNXCbUupWGq6gRPIy1qMKEdcAXcjnwgVqe/U=", "narHash": "sha256-9UJLb8rdi2VokYcfOBQHUzP3iNxOPNWcbK++ENElpk0=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "641daa314d5bc1bca4b345da8eb08a130b109c79", "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -989,29 +982,29 @@
"type": "github" "type": "github"
} }
}, },
"none-ls-nvim": { "none-ls-shellcheck-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1715965830, "lastModified": 1710845791,
"narHash": "sha256-8rZOVkQSK5tnMLEdFdV0gn+fv8wgusrQKNYFPUvf/go=", "narHash": "sha256-t06Nu7wVEGoJtaaZh/psvuC9kdYhwh6JeOd0cg3WVHY=",
"owner": "nvimtools", "owner": "gbprod",
"repo": "none-ls.nvim", "repo": "none-ls-shellcheck.nvim",
"rev": "37671797d6e5f9bd0ee3ab965ab2e6de251e1930", "rev": "0f84461241e76e376a95fb7391deac82dc3efdbf",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nvimtools", "owner": "gbprod",
"repo": "none-ls.nvim", "repo": "none-ls-shellcheck.nvim",
"type": "github" "type": "github"
} }
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1716288499, "lastModified": 1715588836,
"narHash": "sha256-tM7PAmC3kvyeDmglI0bHXSqyVbtnjzVPc4NmwP/GaK8=", "narHash": "sha256-H6dKRVSLE7rJfCFUuaSsjgJBhwKqodAK+QCdldD4gRw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "6999ce1f23a503fd6aaefd875db6b7c0ab7d3637", "rev": "3478942a77be062c5914af2607021f8fbf3abc71",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1023,11 +1016,11 @@
"nvim-lspconfig": { "nvim-lspconfig": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716281382, "lastModified": 1715493027,
"narHash": "sha256-foJ7a59N0a3QaBW24PtwbyYDQVlIsFxiatADLO/hQvc=", "narHash": "sha256-qOzuJLyJz3wiLoZ/Gy4EQvWDhVprNHID1oUbOIA4MwM=",
"owner": "neovim", "owner": "neovim",
"repo": "nvim-lspconfig", "repo": "nvim-lspconfig",
"rev": "0b8165cf95806bc4bb8f745bb0c92021b2ed4b98", "rev": "94513a5b246cf32a8f87ca714af50911df63351c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1071,16 +1064,17 @@
"pre-commit-hooks_2": { "pre-commit-hooks_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_5",
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_8",
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1716213921, "lastModified": 1714478972,
"narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=", "narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=",
"owner": "cachix", "owner": "cachix",
"repo": "pre-commit-hooks.nix", "repo": "pre-commit-hooks.nix",
"rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0", "rev": "2849da033884f54822af194400f8dff435ada242",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1092,11 +1086,11 @@
"river": { "river": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716198309, "lastModified": 1715523364,
"narHash": "sha256-b4Cnwzf7NhlQb2RuuVGWALgK9Qvmp+RkQKHex54I9MQ=", "narHash": "sha256-Gzv/Gu4OwOJZAyWH3rNx+AW5hJR+5Alxss0lCP+gbQk=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "7fdba05b8249b10d10a2c64c1175429539c01af1", "rev": "1e3ef88bd573e4940f7e9dcffdbf119161473e4d",
"revCount": 1267, "revCount": 1254,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/riverwm/river" "url": "https://github.com/riverwm/river"
@ -1131,14 +1125,13 @@
"nix-monitored": "nix-monitored", "nix-monitored": "nix-monitored",
"nix-super": "nix-super", "nix-super": "nix-super",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_7",
"none-ls-nvim": "none-ls-nvim", "none-ls-shellcheck-nvim": "none-ls-shellcheck-nvim",
"nur": "nur", "nur": "nur",
"nvim-lspconfig": "nvim-lspconfig", "nvim-lspconfig": "nvim-lspconfig",
"pre-commit-hooks": "pre-commit-hooks_2", "pre-commit-hooks": "pre-commit-hooks_2",
"river": "river", "river": "river",
"smartcolumn-nvim": "smartcolumn-nvim", "smartcolumn-nvim": "smartcolumn-nvim",
"stable": "stable", "stable": "stable",
"statuscol-nvim": "statuscol-nvim",
"telekasten-nvim": "telekasten-nvim", "telekasten-nvim": "telekasten-nvim",
"timers": "timers" "timers": "timers"
} }
@ -1161,37 +1154,20 @@
}, },
"stable": { "stable": {
"locked": { "locked": {
"lastModified": 1704290814, "lastModified": 1718437845,
"narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", "narHash": "sha256-ZT7Oc1g4I4pHVGGjQFnewFVDRLH5cIZhEzODLz9YXeY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", "rev": "752c634c09ceb50c45e751f8791cb45cb3d46c9e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-23.05", "ref": "nixos-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"statuscol-nvim": {
"flake": false,
"locked": {
"lastModified": 1714347907,
"narHash": "sha256-Rl0VlsExASyx0+Le7VsY4aVQ+LqFWknZSFh40qGWEHI=",
"owner": "luukvbaal",
"repo": "statuscol.nvim",
"rev": "ef3617d0c8cfaa29f7bcdaa8b7cc35df2a409bae",
"type": "github"
},
"original": {
"owner": "luukvbaal",
"ref": "0.10",
"repo": "statuscol.nvim",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -1282,6 +1258,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"telekasten-nvim": { "telekasten-nvim": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1320,7 +1311,7 @@
}, },
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1692799911, "lastModified": 1692799911,
@ -1336,9 +1327,29 @@
"type": "github" "type": "github"
} }
}, },
"wlroots": {
"flake": false,
"locked": {
"lastModified": 1713124002,
"narHash": "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI=",
"owner": "hyprwm",
"repo": "wlroots-hyprland",
"rev": "611a4f24cd2384378f6e500253983107c6656c64",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "wlroots-hyprland",
"rev": "611a4f24cd2384378f6e500253983107c6656c64",
"type": "github"
}
},
"xdph": { "xdph": {
"inputs": { "inputs": {
"hyprland-protocols": "hyprland-protocols", "hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [ "hyprlang": [
"hyprland", "hyprland",
"hyprlang" "hyprlang"
@ -1353,11 +1364,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1715788457, "lastModified": 1714662532,
"narHash": "sha256-32HOkjSIyANphV0p5gIwP4ONU/CcinhwOyVFB+tL/d0=", "narHash": "sha256-Pj2xGSYhapYbXL7sk7TTlOtCZcTfPQoL3fPbZeg7L4Y=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "af7c87a32f5d67eb2ada908a6a700f4e74831943", "rev": "1f228ba2f1f254195c0b571302b37482861abee3",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -15,7 +15,7 @@
master.url = "github:nixos/nixpkgs"; master.url = "github:nixos/nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
stable.url = "github:nixos/nixpkgs/nixos-23.05"; stable.url = "github:nixos/nixpkgs/nixos-24.05";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.url = "github:Mic92/nix-index-database";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
@ -37,16 +37,14 @@
smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim";
telekasten-nvim.flake = false; telekasten-nvim.flake = false;
telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; telekasten-nvim.url = "github:renerocksai/telekasten.nvim";
none-ls-nvim.flake = false;
none-ls-nvim.url = "github:nvimtools/none-ls.nvim";
neotest-python.flake = false; neotest-python.flake = false;
neotest-python.url = "github:MoritzBoehme/neotest-python/fix-runtimepath-search"; neotest-python.url = "github:MoritzBoehme/neotest-python/fix-runtimepath-search";
statuscol-nvim.flake = false;
statuscol-nvim.url = "github:luukvbaal/statuscol.nvim/0.10"; # HACK: fix for neovim-nightly
gen-nvim.flake = false; gen-nvim.flake = false;
gen-nvim.url = "github:David-Kunz/gen.nvim"; gen-nvim.url = "github:David-Kunz/gen.nvim";
hawtkeys-nvim.flake = false; hawtkeys-nvim.flake = false;
hawtkeys-nvim.url = "github:tris203/hawtkeys.nvim"; hawtkeys-nvim.url = "github:tris203/hawtkeys.nvim";
none-ls-shellcheck-nvim.flake = false;
none-ls-shellcheck-nvim.url = "github:gbprod/none-ls-shellcheck.nvim";
# river # river
river.url = "git+https://github.com/riverwm/river?submodules=1"; river.url = "git+https://github.com/riverwm/river?submodules=1";
@ -54,7 +52,7 @@
# Hyprland # Hyprland
hypr-contrib.url = "github:hyprwm/contrib"; hypr-contrib.url = "github:hyprwm/contrib";
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland/v0.39.1";
# Laptop # Laptop
asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout"; asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout";
@ -67,6 +65,7 @@
outputs = inputs@{ self, flake-parts, ... }: outputs = inputs@{ self, flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } { flake-parts.lib.mkFlake { inherit inputs; } {
debug = true; # NOTE: for nixd
imports = [ imports = [
inputs.pre-commit-hooks.flakeModule inputs.pre-commit-hooks.flakeModule
inputs.devshell.flakeModule inputs.devshell.flakeModule

View file

@ -21,7 +21,7 @@
impermanence.enable = true; impermanence.enable = true;
}; };
programs.hyprland.enable = true; programs.hyprland.enable = true;
# programs.river.enable = true; programs.gitbutler.enable = true;
programs.exercism.enable = true; programs.exercism.enable = true;
}; };

View file

@ -4,8 +4,8 @@
, ... , ...
}: }:
with lib;
let let
inherit (lib) mkEnableOption mkIf mkDefault;
cfg = config.my.profiles.desktop; cfg = config.my.profiles.desktop;
in in
{ {
@ -101,10 +101,6 @@ in
}) })
]; ];
nixpkgs.config.permittedInsecurePackages = [
"electron-25.9.0" # obsidian
];
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
home-manager.users.moritz = { home-manager.users.moritz = {

View file

@ -49,6 +49,7 @@ in
".config/github-copilot" ".config/github-copilot"
".config/kdeconnect" ".config/kdeconnect"
".config/keepassxc" ".config/keepassxc"
".java/.userPrefs/jetbrains/"
".local/share/JetBrains" ".local/share/JetBrains"
".local/share/direnv" ".local/share/direnv"
".local/share/nvim" ".local/share/nvim"

View file

@ -0,0 +1,24 @@
{ config
, pkgs
, lib
, ...
}:
let
inherit (lib) mkEnableOption mkIf mkOption types;
cfg = config.my.programs.gitbutler;
in
{
options.my.programs.gitbutler = {
enable = mkEnableOption "gitbutler";
package = mkOption {
default = pkgs.callPackage ./package.nix { };
type = types.package;
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ cfg.package ];
};
}

View file

@ -0,0 +1,16 @@
{ fetchzip, appimageTools }:
let
pname = "git-butler";
version = "0.12.4";
buildNum = "994";
srcZipped = fetchzip {
url = "https://releases.gitbutler.com/releases/release/${version}-${buildNum}/linux/x86_64/git-butler_${version}_amd64.AppImage.tar.gz";
hash = "sha256-+QP+H0bVSLbobv/W6lFBbl08RnwKvG8BVo68bwMrAzM=";
};
in
appimageTools.wrapType2 {
inherit pname version;
src = "${srcZipped}/git-butler_${version}_amd64.AppImage";
}

View file

@ -47,11 +47,13 @@ in
col.active_border = rgba(1affffee) col.active_border = rgba(1affffee)
col.inactive_border = rgba(595959aa) col.inactive_border = rgba(595959aa)
cursor_inactive_timeout = 1
layout = dwindle layout = dwindle
} }
cursor {
inactive_timeout = 1
}
decoration { decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
@ -117,6 +119,13 @@ in
force_default_wallpaper = 0 force_default_wallpaper = 0
} }
xwayland {
force_zero_scaling = true
}
# scale non native wayland gtk applications
env = GDK_SCALE,1.2
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Firefox Sharing Indicator # Firefox Sharing Indicator
${mkRules ["float" "move 49% 40" "noborder"] ["title:^(.*Sharing Indicator.*)$"]} ${mkRules ["float" "move 49% 40" "noborder"] ["title:^(.*Sharing Indicator.*)$"]}
@ -154,7 +163,8 @@ in
bind = $mainMod , D , exec , hyprctl keyword general:layout dwindle bind = $mainMod , D , exec , hyprctl keyword general:layout dwindle
bind = $mainMod , M , exec , hyprctl keyword general:layout master bind = $mainMod , M , exec , hyprctl keyword general:layout master
bind = $mainMod , R , exec , rofi -show combi bind = $mainMod , R , exec , rofi -show combi
bind = $mainMod , RETURN , exec , systemctl --user is-active --quiet foot && footclient --no-wait || foot # bind = $mainMod , RETURN , exec , systemctl --user is-active --quiet foot && footclient --no-wait || foot
bind = $mainMod , RETURN , exec , kitty
# XF86 keys # XF86 keys
binde = , XF86AudioLowerVolume , exec , pamixer -d 5 binde = , XF86AudioLowerVolume , exec , pamixer -d 5
@ -217,6 +227,10 @@ in
# Toggle waybar # Toggle waybar
bindr = $mainMod , SUPER_L , exec , pkill -USR1 waybar bindr = $mainMod , SUPER_L , exec , pkill -USR1 waybar
# Lid open/close
bindl=,switch:on:Lid Switch,exec,monitors="$(hyprctl monitors | grep -c '^Monitor')" && hyprctl keyword monitor "eDP-1, disable" && [ "$monitors" = 1 ] && loginctl lock-session
bindl=,switch:off:Lid Switch,exec, hyprctl keyword monitor "eDP-1, prefered, auto"
# Extra Config # Extra Config
${cfg.extraConfig} ${cfg.extraConfig}
'' ''

View file

@ -48,7 +48,8 @@ in
]; ];
programs = { programs = {
wallpaper.enable = true; wallpaper.enable = true;
foot.enable = true; # foot.enable = true;
kitty.enable = true;
rofi.enable = true; rofi.enable = true;
}; };
wallpapers.enable = true; wallpapers.enable = true;

View file

@ -4,12 +4,15 @@ let mapleader=" "
""" Plugins -------------------------------- """ Plugins --------------------------------
set surround set surround
set commentary set commentary
set NERDTree
""" Common settings ------------------------- """ Common settings -------------------------
set showmode set showmode
set so=5 set so=5
set incsearch set incsearch
set nu set nu
set relativenumber
set number
""" Which-Key """ Which-Key
set which-key set which-key
@ -36,6 +39,8 @@ let g:WhichKeyDesc_extract_field = '<leader>ef Extract field'
map <leader>ef <Action>(IntroduceField) map <leader>ef <Action>(IntroduceField)
let g:WhichKeyDesc_extract_parameter = '<leader>ep Extract parameter' let g:WhichKeyDesc_extract_parameter = '<leader>ep Extract parameter'
map <leader>ep <Action>(IntroduceParameter) map <leader>ep <Action>(IntroduceParameter)
let g:WhichKeyDesc_extract_method = '<leader>em Extract method'
map <leader>em <Action>(ExtractMethod)
let g:WhichKeyDesc_rename = '<leader>r Rename' let g:WhichKeyDesc_rename = '<leader>r Rename'
map <leader>r <Action>(RenameElement) map <leader>r <Action>(RenameElement)
@ -46,13 +51,14 @@ map [b <Action>(PreviousTab)
let g:WhichKeyDesc_next_buffer = ']b Next buffer' let g:WhichKeyDesc_next_buffer = ']b Next buffer'
map ]b <Action>(NextTab) map ]b <Action>(NextTab)
let g:WhichKeyDesc_prev_error = 'gI Goto Implementation' let g:WhichKeyDesc_goto_impl = 'gI Goto implementation'
map gI <Action>(GotoImplementation) map gI <Action>(GotoImplementation)
let g:WhichKeyDesc_goto_type = 'gt Goto type declaration'
map gt <Action>(GotoTypeDeclaration)
"" Other "" Other
let g:WhichKeyDesc_terminal = '<leader>t Terminal' let g:WhichKeyDesc_terminal = '<leader>t Terminal'
map <leader>t <Action>(ActivateTerminalToolWindow) map <leader>t <Action>(ActivateTerminalToolWindow)
map <Esc> <Action>(HideActiveWindow)
map = <Action>(ReformatCode) map = <Action>(ReformatCode)
"" Folding "" Folding

View file

@ -1,8 +1,8 @@
{ config, lib, pkgs, inputs, ... }: { config, lib, pkgs, inputs, ... }:
with lib;
let let
cfg = config.my.programs.nvim; cfg = config.my.programs.nvim;
inherit (lib) mkEnableOption mkIf readFile;
in in
{ {
imports = lib.my.listModulesRec ./plugins; imports = lib.my.listModulesRec ./plugins;

View file

@ -1,26 +1,28 @@
{ pkgs, lib, inputs, ... }: { pkgs, lib, inputs, ... }:
with builtins; let
inherit (builtins) readFile;
in
{ {
config.home-manager.users.moritz.programs.neovim.lazy.plugins = with pkgs.vimPlugins; [ config.home-manager.users.moritz.programs.neovim.lazy.plugins = [
{ {
plugin = oil-nvim; plugin = pkgs.vimPlugins.oil-nvim;
lazy = false; lazy = false;
opts = { }; opts = { };
dependencies = [{ plugin = nvim-web-devicons; }]; dependencies = [{ plugin = pkgs.vimPlugins.nvim-web-devicons; }];
} }
{ {
plugin = lualine-nvim; plugin = pkgs.vimPlugins.lualine-nvim;
opts = { }; opts = { };
dependencies = [{ plugin = nvim-web-devicons; }]; dependencies = [{ plugin = pkgs.vimPlugins.nvim-web-devicons; }];
} }
{ {
plugin = mini-nvim; plugin = pkgs.vimPlugins.mini-nvim;
lazy = false; lazy = false;
conf = readFile ./lua/mini-nvim.lua; conf = readFile ./lua/mini-nvim.lua;
} }
{ {
plugin = nvim-cmp; plugin = pkgs.vimPlugins.nvim-cmp;
keys = [ keys = [
{ key = "<leader>tc"; cmd = "<cmd>CmpToggle<cr>"; desc = "Toggle Cmp sources"; } { key = "<leader>tc"; cmd = "<cmd>CmpToggle<cr>"; desc = "Toggle Cmp sources"; }
]; ];
@ -28,26 +30,43 @@ with builtins;
event = [ "InsertEnter" ]; event = [ "InsertEnter" ];
dependencies = [ dependencies = [
{ {
plugin = nvim-autopairs; plugin = pkgs.vimPlugins.nvim-autopairs;
opts = { }; opts = { };
} }
{ plugin = cmp-async-path; } { plugin = pkgs.vimPlugins.cmp-async-path; }
{ plugin = cmp-buffer; } { plugin = pkgs.vimPlugins.cmp-buffer; }
{ plugin = cmp-cmdline; } { plugin = pkgs.vimPlugins.cmp-cmdline; }
{ plugin = cmp-nvim-lsp; } { plugin = pkgs.vimPlugins.cmp-nvim-lsp; }
{ plugin = cmp_luasnip; } { plugin = pkgs.vimPlugins.cmp_luasnip; }
{ plugin = cmp-spell; } { plugin = pkgs.vimPlugins.cmp-spell; }
{ plugin = cmp-nvim-lsp-signature-help; } { plugin = pkgs.vimPlugins.cmp-nvim-lsp-signature-help; }
{ plugin = friendly-snippets; }
{ plugin = lspkind-nvim; }
{ {
plugin = luasnip; plugin = pkgs.vimPlugins.copilot-cmp;
opts = { };
dependencies = [
{
plugin = pkgs.vimPlugins.copilot-lua;
opts = {
suggestion = { enabled = false; };
panel = { enabled = false; };
};
conf = /* lua */ ''
require("copilot").setup(opts)
vim.cmd("Copilot disable")
'';
}
];
}
{ plugin = pkgs.vimPlugins.friendly-snippets; }
{ plugin = pkgs.vimPlugins.lspkind-nvim; }
{
plugin = pkgs.vimPlugins.luasnip;
conf = readFile ./lua/luasnip.lua; conf = readFile ./lua/luasnip.lua;
} }
]; ];
} }
{ {
plugin = direnv-vim; plugin = pkgs.vimPlugins.direnv-vim;
lazy = false; lazy = false;
} }
{ {
@ -60,25 +79,26 @@ with builtins;
dependencies = [ dependencies = [
{ {
# TODO: add all required tools to neovim or silence warnings # TODO: add all required tools to neovim or silence warnings
plugin = pkgs.vimPlugins.null-ls-nvim.overrideAttrs (_: { plugin = pkgs.vimPlugins.none-ls-nvim;
version = lib.my.mkVersionInput inputs.none-ls-nvim;
src = inputs.none-ls-nvim;
});
conf = readFile ./lua/null-ls-nvim.lua; conf = readFile ./lua/null-ls-nvim.lua;
dependencies = [ dependencies = [
{ plugin = which-key-nvim; } {
{ plugin = plenary-nvim; } plugin = pkgs.vimUtils.buildVimPlugin {
pname = "none-ls-shellcheck.nvim";
version = lib.my.mkVersionInput inputs.none-ls-shellcheck-nvim;
src = inputs.none-ls-shellcheck-nvim;
};
}
]; ];
} }
{ plugin = which-key-nvim; } { plugin = pkgs.vimPlugins.lsp_lines-nvim; }
{ plugin = lsp_lines-nvim; }
{ {
plugin = inc-rename-nvim; plugin = pkgs.vimPlugins.inc-rename-nvim;
opts = { opts = {
input_buffer_type = "dressing"; input_buffer_type = "dressing";
}; };
dependencies = [ dependencies = [
{ plugin = dressing-nvim; } { plugin = pkgs.vimPlugins.dressing-nvim; }
]; ];
} }
{ {
@ -91,7 +111,7 @@ with builtins;
]; ];
} }
{ {
plugin = vim-fugitive; plugin = pkgs.vimPlugins.vim-fugitive;
cmd = [ cmd = [
"G" "G"
"Git" "Git"
@ -122,11 +142,11 @@ with builtins;
]; ];
} }
{ {
plugin = vim-tmux-navigator; plugin = pkgs.vimPlugins.vim-tmux-navigator;
event = [ "VeryLazy" ]; event = [ "VeryLazy" ];
} }
{ {
plugin = nvim-lastplace; plugin = pkgs.vimPlugins.nvim-lastplace;
event = [ "BufReadPost" "BufNewFile" ]; event = [ "BufReadPost" "BufNewFile" ];
opts = { opts = {
lastplace_ignore_buftype = [ "quickfix" "nofile" "help" ]; lastplace_ignore_buftype = [ "quickfix" "nofile" "help" ];
@ -135,7 +155,7 @@ with builtins;
}; };
} }
{ {
plugin = telescope-nvim; plugin = pkgs.vimPlugins.telescope-nvim;
cmd = [ "Telescope" ]; cmd = [ "Telescope" ];
conf = builtins.readFile ./lua/telescope.lua; conf = builtins.readFile ./lua/telescope.lua;
keys = [ keys = [
@ -159,31 +179,31 @@ with builtins;
{ key = "<leader>fr"; cmd = "<cmd>Telescope oldfiles<cr>"; desc = "Recent files"; } { key = "<leader>fr"; cmd = "<cmd>Telescope oldfiles<cr>"; desc = "Recent files"; }
]; ];
dependencies = [ dependencies = [
{ plugin = plenary-nvim; } { plugin = pkgs.vimPlugins.plenary-nvim; }
{ plugin = telescope-fzf-native-nvim; } { plugin = pkgs.vimPlugins.telescope-fzf-native-nvim; }
]; ];
} }
{ {
plugin = vim-startuptime; plugin = pkgs.vimPlugins.vim-startuptime;
cmd = [ "StartupTime" ]; cmd = [ "StartupTime" ];
conf = readFile ./lua/vim-startuptime.lua; conf = readFile ./lua/vim-startuptime.lua;
} }
{ {
plugin = typst-vim; plugin = pkgs.vimPlugins.typst-vim;
ft = [ "typst" "typ" ]; ft = [ "typst" "typ" ];
} }
{ {
plugin = comment-nvim; plugin = pkgs.vimPlugins.comment-nvim;
event = [ "BufReadPost" "BufNewFile" ]; event = [ "BufReadPost" "BufNewFile" ];
opts = { }; opts = { };
} }
{ {
plugin = nvim-surround; plugin = pkgs.vimPlugins.nvim-surround;
event = [ "BufReadPost" "BufNewFile" ]; event = [ "BufReadPost" "BufNewFile" ];
opts = { }; opts = { };
} }
{ {
plugin = conform-nvim; plugin = pkgs.vimPlugins.conform-nvim;
keys = [ keys = [
{ key = "="; cmd = "<cmd>lua require('conform').format()<cr>"; desc = "format buffer"; mode = [ "n" "v" ]; } { key = "="; cmd = "<cmd>lua require('conform').format()<cr>"; desc = "format buffer"; mode = [ "n" "v" ]; }
]; ];

View file

@ -3,14 +3,14 @@ local null_ls = require("null-ls")
null_ls.setup({ null_ls.setup({
sources = { sources = {
-- Code actions -- Code actions
null_ls.builtins.code_actions.shellcheck, require("none-ls-shellcheck.code_actions"),
null_ls.builtins.code_actions.statix, null_ls.builtins.code_actions.statix,
-- Diagnostics -- Diagnostics
null_ls.builtins.diagnostics.checkmake, null_ls.builtins.diagnostics.checkmake,
null_ls.builtins.diagnostics.deadnix, null_ls.builtins.diagnostics.deadnix,
null_ls.builtins.diagnostics.dotenv_linter, null_ls.builtins.diagnostics.dotenv_linter,
null_ls.builtins.diagnostics.fish, null_ls.builtins.diagnostics.fish,
null_ls.builtins.diagnostics.shellcheck, require("none-ls-shellcheck.diagnostics"),
null_ls.builtins.diagnostics.statix, null_ls.builtins.diagnostics.statix,
null_ls.builtins.diagnostics.trail_space, null_ls.builtins.diagnostics.trail_space,
null_ls.builtins.diagnostics.yamllint, null_ls.builtins.diagnostics.yamllint,

View file

@ -8,6 +8,9 @@ cmp.setup({
mode = "symbol", -- show only symbol annotations mode = "symbol", -- show only symbol annotations
maxwidth = 50, -- prevent the popup from showing more than provided characters maxwidth = 50, -- prevent the popup from showing more than provided characters
ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead
symbol_map = {
Copilot = "",
},
}), }),
}, },
enabled = function() enabled = function()
@ -59,14 +62,13 @@ cmp.setup({
end, { "i", "s" }), end, { "i", "s" }),
}), }),
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = "async_path", priority = 1 }, { priority = 1, name = "async_path" },
{ name = "nvim_lsp", priority = 2 }, { priority = 1, name = "buffer" },
{ name = "nvim_lsp_signature_help", priority = 3 }, { priority = 1, name = "spell" },
{ name = "luasnip", priority = 4 }, { priority = 2, name = "nvim_lsp" },
}, { { priority = 3, name = "copilot" },
{ name = "async_path" }, { priority = 3, name = "nvim_lsp_signature_help" },
{ name = "buffer" }, { priority = 4, name = "luasnip" },
{ name = "spell" },
}), }),
}) })

View file

@ -124,7 +124,6 @@ local servers = {
"gleam", "gleam",
"gopls", "gopls",
"nil_ls", "nil_ls",
"nixd",
"pylsp", "pylsp",
"ruff_lsp", "ruff_lsp",
"templ", "templ",
@ -134,6 +133,27 @@ for _, lsp in ipairs(servers) do
lspconfig_setup(lsp, {}) lspconfig_setup(lsp, {})
end end
lspconfig_setup("nixd", {
settings = {
nixd = {
nixpkgs = {
expr = "import <nixpkgs> { }",
},
options = {
nixos = {
expr = '(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.nixos-desktop.options',
},
["flake-parts"] = {
expr = '(builtins.getFlake ("git+file://" + toString ./.)).debug.options',
},
["flake-parts2"] = {
expr = '(builtins.getFlake ("git+file://" + toString ./.)).currentSystem.options',
},
},
},
},
})
-- Add templ filetype -- Add templ filetype
vim.filetype.add({ extension = { templ = "templ" } }) vim.filetype.add({ extension = { templ = "templ" } })

View file

@ -1,22 +0,0 @@
vim.o.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
local builtin = require("statuscol.builtin")
require("statuscol").setup({
segments = {
{
sign = { name = { ".*" }, auto = true },
click = "v:lua.ScSa",
},
{
text = { builtin.lnumfunc },
click = "v:lua.ScLa",
},
{
sign = { namespace = { "gitsigns*" }, auto = true },
click = "v:lua.ScSa",
},
{
text = { builtin.foldfunc, "" },
click = "v:lua.ScFa",
},
},
})

View file

@ -4,11 +4,13 @@
, ... , ...
}: }:
with lib;
let let
inherit (lib) range filterAttrs attrNames foldl' head tail mkOption mkEnableOption intersectLists genAttrs flip getAttr;
inherit (lib.types) listOf enum package;
cfg = config.my.programs.python; cfg = config.my.programs.python;
pythonVersions = map (version: "3${toString version}") (range 8 11); pythonVersions = map (version: "3${toString version}") (range 8 13);
enabledVersions = filterAttrs (_: value: value.enable) cfg.versions; enabledVersions = filterAttrs (_: value: value.enable) cfg.versions;
pythonPackages = version: attrNames pkgs."python${version}Packages"; pythonPackages = version: attrNames pkgs."python${version}Packages";
@ -23,7 +25,7 @@ let
enable = mkEnableOption (toString version); enable = mkEnableOption (toString version);
pythonPackages = mkOption { pythonPackages = mkOption {
default = [ ]; default = [ ];
type = with types; listOf (enum (pythonPackages version)); type = listOf (enum (pythonPackages version));
}; };
}; };
in in
@ -32,11 +34,11 @@ in
versions = genAttrs pythonVersions versionOpts; versions = genAttrs pythonVersions versionOpts;
defaultPackages = mkOption { defaultPackages = mkOption {
default = [ ]; default = [ ];
type = with types; listOf (enum commonPackages); type = listOf (enum commonPackages);
}; };
extraPackages = mkOption { extraPackages = mkOption {
default = [ ]; default = [ ];
type = with types; listOf package; type = listOf package;
}; };
}; };