diff --git a/.nixd.json b/.nixd.json deleted file mode 100644 index 31ab0e5..0000000 --- a/.nixd.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "options": { - "enable": true, - "target": { - "args": [], - "installable": ".#nixosConfigurations.nixos-desktop.options" - } - } -} diff --git a/flake.lock b/flake.lock index 9a1b50a..7a0b527 100644 --- a/flake.lock +++ b/flake.lock @@ -118,11 +118,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1716168343, - "narHash": "sha256-82oT27w9smpItZ+PyN2C0PjIwZYbIocwXSM4u1igXuc=", + "lastModified": 1715563999, + "narHash": "sha256-DDXZOKK0C5YeZ/GTUj7HiT+oqYIt8+qTsldaDvhWHFc=", "owner": "nix-community", "repo": "disko", - "rev": "6f01b9710bc4d3bf006eb8df928b4b15e0430901", + "rev": "e972a78f4a49cd92075d64b6feeef64d26bf2996", "type": "github" }, "original": { @@ -184,11 +184,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1715865404, - "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", + "lastModified": 1714641030, + "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", + "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", "type": "github" }, "original": { @@ -329,6 +329,24 @@ "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": { "flake": false, "locked": { @@ -432,11 +450,11 @@ ] }, "locked": { - "lastModified": 1715930644, - "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", + "lastModified": 1715486357, + "narHash": "sha256-4pRuzsHZOW5W4CsXI9uhKtiJeQSUoe1d2M9mWU98HC4=", "owner": "nix-community", "repo": "home-manager", - "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", + "rev": "44677a1c96810a8e8c4ffaeaad10c842402647c1", "type": "github" }, "original": { @@ -450,11 +468,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1716228712, - "narHash": "sha256-y+LOXuSRMfkR2Vfwl5K2NVrszi1h5MJpML+msLnVS8U=", + "lastModified": 1713780596, + "narHash": "sha256-DDAYNGSnrBwvVfpKx+XjkuecpoE9HiEf6JW+DBQgvm0=", "owner": "hyprwm", "repo": "contrib", - "rev": "33b38358559054d316eb605ccb733980dfa7dc63", + "rev": "110e6dc761d5c3d352574def3479a9c39dfc4358", "type": "github" }, "original": { @@ -479,11 +497,11 @@ ] }, "locked": { - "lastModified": 1715791817, - "narHash": "sha256-J069Uhv/gCMFLX1dSh2f+9ZTM09r1Nv3oUfocCnWKow=", + "lastModified": 1713612213, + "narHash": "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "7c3aa03dffb53921e583ade3d4ae3f487e390e7e", + "rev": "cab4746180f210a3c1dd3d53e45c510e309e90e1", "type": "github" }, "original": { @@ -495,22 +513,24 @@ "hyprland": { "inputs": { "hyprcursor": "hyprcursor", + "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", - "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs_4", "systems": "systems_4", + "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1716063601, - "narHash": "sha256-lH2CLdRQFtbQVauhLFDbPWTGmj7LgblMg2dq9thd0Zc=", + "lastModified": 1713283263, + "narHash": "sha256-Urb/njWiHYUudXpmK8EKl9Z58esTIG0PxXw5LuM2r5g=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "f8857e6072bd85b95393499688872aaf7f088b5b", + "rev": "fe7b748eb668136dd0558b7c8279bfcd7ab4d759", "type": "github" }, "original": { "owner": "hyprwm", + "ref": "v0.39.1", "repo": "Hyprland", "type": "github" } @@ -519,21 +539,19 @@ "inputs": { "nixpkgs": [ "hyprland", - "xdph", "nixpkgs" ], "systems": [ "hyprland", - "xdph", "systems" ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1714869498, + "narHash": "sha256-vbLVOWvQqo4n1yvkg/Q70VTlPbMmTiCQfNTgcWDCfJM=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "e06482e0e611130cd1929f75e8c1cf679e57d161", "type": "github" }, "original": { @@ -554,11 +572,11 @@ ] }, "locked": { - "lastModified": 1715791527, - "narHash": "sha256-HhQ4zvGHrRjR63ltySSeg+x+0jb0lepiutWdnFhLRoo=", + "lastModified": 1713121246, + "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "969cb076e5b76f2e823aeca1937a3e1f159812ee", + "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", "type": "github" }, "original": { @@ -567,31 +585,6 @@ "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": { "locked": { "lastModified": 1708968331, @@ -625,11 +618,11 @@ }, "master": { "locked": { - "lastModified": 1716288615, - "narHash": "sha256-vwctBD3+lKydxAcd4HVJ87vdUYVp7rxLCeODGgF+CKc=", + "lastModified": 1715589090, + "narHash": "sha256-zrAP+EtMbOMx0XBFPgy/u0bfUBdh0F/mLUhHiaCPMi8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "06683c1ab4b65c02848a58c0c594adb75a21a0f5", + "rev": "983a74210808ebf5a93c5ed26de1adbc45ac6f4c", "type": "github" }, "original": { @@ -687,11 +680,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1715815279, - "narHash": "sha256-Pf7ZlqPnr195NZb5ADzMVsXurPMjRZ+JMXf6JxvXArE=", + "lastModified": 1715551630, + "narHash": "sha256-hNuCVU96sDo1zmnt0OSLRYv56f2CrH9XrftPsK8fMWo=", "owner": "neovim", "repo": "neovim", - "rev": "9ca81b025990911c2a0dbda92af39ba84983bac3", + "rev": "c7958356bef304320d86cd541d0de8db968c6cc8", "type": "github" }, "original": { @@ -710,11 +703,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1715817852, - "narHash": "sha256-UH5o7hT72oAavJTG2NxlpMyQe3BQMniQAsgTugWtlc4=", + "lastModified": 1715558773, + "narHash": "sha256-yyKzLgpCjnY6Nns5O9M13LgNtevO5UCenQr61BO0AiI=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "7b5ca2486bba58cac80b9229209239740b67cf90", + "rev": "2d293e623b20fc71d94c3c96d8fc47e280edd1c7", "type": "github" }, "original": { @@ -730,11 +723,11 @@ ] }, "locked": { - "lastModified": 1716170277, - "narHash": "sha256-fCAiox/TuzWGVaAz16PxrR4Jtf9lN5dwWL2W74DS0yI=", + "lastModified": 1715483403, + "narHash": "sha256-WMDuQj7J5jbpXI/X/E6FZRKgBFGcaSTvYyVxPnKE6KU=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "e0638db3db43b582512a7de8c0f8363a162842b9", + "rev": "f9027322f48b427da23746aa359a6510dfcd0228", "type": "github" }, "original": { @@ -863,11 +856,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1716128955, - "narHash": "sha256-3DNg/PV+X2V7yn8b/fUR2ppakw7D9N4sjVBGk6nDwII=", + "lastModified": 1715499532, + "narHash": "sha256-9UJLb8rdi2VokYcfOBQHUzP3iNxOPNWcbK++ENElpk0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f9256de8281f2ccd04985ac5c30d8f69aefadbe8", + "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786", "type": "github" }, "original": { @@ -895,11 +888,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1715787315, - "narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=", + "lastModified": 1715087517, + "narHash": "sha256-CLU5Tsg24Ke4+7sH8azHWXKd0CFd4mhLWfhYgUiDBpQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5", + "rev": "b211b392b8486ee79df6cdfb1157ad2133427a29", "type": "github" }, "original": { @@ -911,11 +904,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1715774670, - "narHash": "sha256-iJYnKMtLi5u6hZhJm94cRNSDG5Rz6ZzIkGbhPFtDRm0=", + "lastModified": 1715499532, + "narHash": "sha256-9UJLb8rdi2VokYcfOBQHUzP3iNxOPNWcbK++ENElpk0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b3fcfcfabd01b947a1e4f36622bbffa3985bdac6", + "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786", "type": "github" }, "original": { @@ -943,11 +936,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1716220750, - "narHash": "sha256-Lhhrd1ZBNXCbUupWGq6gRPIy1qMKEdcAXcjnwgVqe/U=", + "lastModified": 1715499532, + "narHash": "sha256-9UJLb8rdi2VokYcfOBQHUzP3iNxOPNWcbK++ENElpk0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "641daa314d5bc1bca4b345da8eb08a130b109c79", + "rev": "af8b9db5c00f1a8e4b83578acc578ff7d823b786", "type": "github" }, "original": { @@ -989,29 +982,29 @@ "type": "github" } }, - "none-ls-nvim": { + "none-ls-shellcheck-nvim": { "flake": false, "locked": { - "lastModified": 1715965830, - "narHash": "sha256-8rZOVkQSK5tnMLEdFdV0gn+fv8wgusrQKNYFPUvf/go=", - "owner": "nvimtools", - "repo": "none-ls.nvim", - "rev": "37671797d6e5f9bd0ee3ab965ab2e6de251e1930", + "lastModified": 1710845791, + "narHash": "sha256-t06Nu7wVEGoJtaaZh/psvuC9kdYhwh6JeOd0cg3WVHY=", + "owner": "gbprod", + "repo": "none-ls-shellcheck.nvim", + "rev": "0f84461241e76e376a95fb7391deac82dc3efdbf", "type": "github" }, "original": { - "owner": "nvimtools", - "repo": "none-ls.nvim", + "owner": "gbprod", + "repo": "none-ls-shellcheck.nvim", "type": "github" } }, "nur": { "locked": { - "lastModified": 1716288499, - "narHash": "sha256-tM7PAmC3kvyeDmglI0bHXSqyVbtnjzVPc4NmwP/GaK8=", + "lastModified": 1715588836, + "narHash": "sha256-H6dKRVSLE7rJfCFUuaSsjgJBhwKqodAK+QCdldD4gRw=", "owner": "nix-community", "repo": "NUR", - "rev": "6999ce1f23a503fd6aaefd875db6b7c0ab7d3637", + "rev": "3478942a77be062c5914af2607021f8fbf3abc71", "type": "github" }, "original": { @@ -1023,11 +1016,11 @@ "nvim-lspconfig": { "flake": false, "locked": { - "lastModified": 1716281382, - "narHash": "sha256-foJ7a59N0a3QaBW24PtwbyYDQVlIsFxiatADLO/hQvc=", + "lastModified": 1715493027, + "narHash": "sha256-qOzuJLyJz3wiLoZ/Gy4EQvWDhVprNHID1oUbOIA4MwM=", "owner": "neovim", "repo": "nvim-lspconfig", - "rev": "0b8165cf95806bc4bb8f745bb0c92021b2ed4b98", + "rev": "94513a5b246cf32a8f87ca714af50911df63351c", "type": "github" }, "original": { @@ -1071,16 +1064,17 @@ "pre-commit-hooks_2": { "inputs": { "flake-compat": "flake-compat_3", + "flake-utils": "flake-utils_5", "gitignore": "gitignore", "nixpkgs": "nixpkgs_8", "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1716213921, - "narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=", + "lastModified": 1714478972, + "narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0", + "rev": "2849da033884f54822af194400f8dff435ada242", "type": "github" }, "original": { @@ -1092,11 +1086,11 @@ "river": { "flake": false, "locked": { - "lastModified": 1716198309, - "narHash": "sha256-b4Cnwzf7NhlQb2RuuVGWALgK9Qvmp+RkQKHex54I9MQ=", + "lastModified": 1715523364, + "narHash": "sha256-Gzv/Gu4OwOJZAyWH3rNx+AW5hJR+5Alxss0lCP+gbQk=", "ref": "refs/heads/master", - "rev": "7fdba05b8249b10d10a2c64c1175429539c01af1", - "revCount": 1267, + "rev": "1e3ef88bd573e4940f7e9dcffdbf119161473e4d", + "revCount": 1254, "submodules": true, "type": "git", "url": "https://github.com/riverwm/river" @@ -1131,14 +1125,13 @@ "nix-monitored": "nix-monitored", "nix-super": "nix-super", "nixpkgs": "nixpkgs_7", - "none-ls-nvim": "none-ls-nvim", + "none-ls-shellcheck-nvim": "none-ls-shellcheck-nvim", "nur": "nur", "nvim-lspconfig": "nvim-lspconfig", "pre-commit-hooks": "pre-commit-hooks_2", "river": "river", "smartcolumn-nvim": "smartcolumn-nvim", "stable": "stable", - "statuscol-nvim": "statuscol-nvim", "telekasten-nvim": "telekasten-nvim", "timers": "timers" } @@ -1161,37 +1154,20 @@ }, "stable": { "locked": { - "lastModified": 1704290814, - "narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=", + "lastModified": 1718437845, + "narHash": "sha256-ZT7Oc1g4I4pHVGGjQFnewFVDRLH5cIZhEzODLz9YXeY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421", + "rev": "752c634c09ceb50c45e751f8791cb45cb3d46c9e", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-23.05", + "ref": "nixos-24.05", "repo": "nixpkgs", "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": { "locked": { "lastModified": 1681028828, @@ -1282,6 +1258,21 @@ "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": { "flake": false, "locked": { @@ -1320,7 +1311,7 @@ }, "utils": { "inputs": { - "systems": "systems_6" + "systems": "systems_7" }, "locked": { "lastModified": 1692799911, @@ -1336,9 +1327,29 @@ "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": { "inputs": { - "hyprland-protocols": "hyprland-protocols", + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], "hyprlang": [ "hyprland", "hyprlang" @@ -1353,11 +1364,11 @@ ] }, "locked": { - "lastModified": 1715788457, - "narHash": "sha256-32HOkjSIyANphV0p5gIwP4ONU/CcinhwOyVFB+tL/d0=", + "lastModified": 1714662532, + "narHash": "sha256-Pj2xGSYhapYbXL7sk7TTlOtCZcTfPQoL3fPbZeg7L4Y=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "af7c87a32f5d67eb2ada908a6a700f4e74831943", + "rev": "1f228ba2f1f254195c0b571302b37482861abee3", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 37e227d..8eaa36d 100644 --- a/flake.nix +++ b/flake.nix @@ -15,7 +15,7 @@ master.url = "github:nixos/nixpkgs"; nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 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"; nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; @@ -37,16 +37,14 @@ smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; telekasten-nvim.flake = false; 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.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.url = "github:David-Kunz/gen.nvim"; hawtkeys-nvim.flake = false; 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.url = "git+https://github.com/riverwm/river?submodules=1"; @@ -54,7 +52,7 @@ # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; - hyprland.url = "github:hyprwm/Hyprland"; + hyprland.url = "github:hyprwm/Hyprland/v0.39.1"; # Laptop asus-touchpad-numpad-driver.url = "github:MoritzBoehme/asus-touchpad-numpad-driver/german-layout"; @@ -67,6 +65,7 @@ outputs = inputs@{ self, flake-parts, ... }: flake-parts.lib.mkFlake { inherit inputs; } { + debug = true; # NOTE: for nixd imports = [ inputs.pre-commit-hooks.flakeModule inputs.devshell.flakeModule diff --git a/hosts/nixos-laptop/default.nix b/hosts/nixos-laptop/default.nix index ca86959..87ed2be 100644 --- a/hosts/nixos-laptop/default.nix +++ b/hosts/nixos-laptop/default.nix @@ -21,7 +21,7 @@ impermanence.enable = true; }; programs.hyprland.enable = true; - # programs.river.enable = true; + programs.gitbutler.enable = true; programs.exercism.enable = true; }; diff --git a/modules/profiles/desktop.nix b/modules/profiles/desktop.nix index 5d63b9b..c20efae 100644 --- a/modules/profiles/desktop.nix +++ b/modules/profiles/desktop.nix @@ -4,8 +4,8 @@ , ... }: -with lib; let + inherit (lib) mkEnableOption mkIf mkDefault; cfg = config.my.profiles.desktop; in { @@ -101,10 +101,6 @@ in }) ]; - nixpkgs.config.permittedInsecurePackages = [ - "electron-25.9.0" # obsidian - ]; - programs.nix-ld.enable = true; home-manager.users.moritz = { diff --git a/modules/profiles/impermanence.nix b/modules/profiles/impermanence.nix index 6cf6c6e..13efb7d 100644 --- a/modules/profiles/impermanence.nix +++ b/modules/profiles/impermanence.nix @@ -49,6 +49,7 @@ in ".config/github-copilot" ".config/kdeconnect" ".config/keepassxc" + ".java/.userPrefs/jetbrains/" ".local/share/JetBrains" ".local/share/direnv" ".local/share/nvim" diff --git a/modules/programs/gitbutler/default.nix b/modules/programs/gitbutler/default.nix new file mode 100644 index 0000000..073dd0f --- /dev/null +++ b/modules/programs/gitbutler/default.nix @@ -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 ]; + }; +} diff --git a/modules/programs/gitbutler/package.nix b/modules/programs/gitbutler/package.nix new file mode 100644 index 0000000..a0b2102 --- /dev/null +++ b/modules/programs/gitbutler/package.nix @@ -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"; +} diff --git a/modules/programs/hyprland/_config.nix b/modules/programs/hyprland/_config.nix index c2182cd..addf88d 100644 --- a/modules/programs/hyprland/_config.nix +++ b/modules/programs/hyprland/_config.nix @@ -47,11 +47,13 @@ in col.active_border = rgba(1affffee) col.inactive_border = rgba(595959aa) - cursor_inactive_timeout = 1 - layout = dwindle } + cursor { + inactive_timeout = 1 + } + decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more @@ -117,6 +119,13 @@ in 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 # Firefox 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 , M , exec , hyprctl keyword general:layout master 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 binde = , XF86AudioLowerVolume , exec , pamixer -d 5 @@ -217,6 +227,10 @@ in # Toggle 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 ${cfg.extraConfig} '' diff --git a/modules/programs/hyprland/default.nix b/modules/programs/hyprland/default.nix index 3b917a7..81a99bc 100644 --- a/modules/programs/hyprland/default.nix +++ b/modules/programs/hyprland/default.nix @@ -48,7 +48,8 @@ in ]; programs = { wallpaper.enable = true; - foot.enable = true; + # foot.enable = true; + kitty.enable = true; rofi.enable = true; }; wallpapers.enable = true; diff --git a/modules/programs/jetbrains/ideavimrc b/modules/programs/jetbrains/ideavimrc index 0a79200..da67110 100644 --- a/modules/programs/jetbrains/ideavimrc +++ b/modules/programs/jetbrains/ideavimrc @@ -4,12 +4,15 @@ let mapleader=" " """ Plugins -------------------------------- set surround set commentary +set NERDTree """ Common settings ------------------------- set showmode set so=5 set incsearch set nu +set relativenumber +set number """ Which-Key set which-key @@ -36,6 +39,8 @@ let g:WhichKeyDesc_extract_field = 'ef Extract field' map ef (IntroduceField) let g:WhichKeyDesc_extract_parameter = 'ep Extract parameter' map ep (IntroduceParameter) +let g:WhichKeyDesc_extract_method = 'em Extract method' +map em (ExtractMethod) let g:WhichKeyDesc_rename = 'r Rename' map r (RenameElement) @@ -46,13 +51,14 @@ map [b (PreviousTab) let g:WhichKeyDesc_next_buffer = ']b Next buffer' map ]b (NextTab) -let g:WhichKeyDesc_prev_error = 'gI Goto Implementation' +let g:WhichKeyDesc_goto_impl = 'gI Goto implementation' map gI (GotoImplementation) +let g:WhichKeyDesc_goto_type = 'gt Goto type declaration' +map gt (GotoTypeDeclaration) "" Other let g:WhichKeyDesc_terminal = 't Terminal' map t (ActivateTerminalToolWindow) -map (HideActiveWindow) map = (ReformatCode) "" Folding diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 5619db8..92f795e 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -1,8 +1,8 @@ { config, lib, pkgs, inputs, ... }: -with lib; let cfg = config.my.programs.nvim; + inherit (lib) mkEnableOption mkIf readFile; in { imports = lib.my.listModulesRec ./plugins; diff --git a/modules/programs/nvim/plugins/coding.nix b/modules/programs/nvim/plugins/coding.nix index e30d50c..4e14a77 100644 --- a/modules/programs/nvim/plugins/coding.nix +++ b/modules/programs/nvim/plugins/coding.nix @@ -1,26 +1,28 @@ { 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; opts = { }; - dependencies = [{ plugin = nvim-web-devicons; }]; + dependencies = [{ plugin = pkgs.vimPlugins.nvim-web-devicons; }]; } { - plugin = lualine-nvim; + plugin = pkgs.vimPlugins.lualine-nvim; opts = { }; - dependencies = [{ plugin = nvim-web-devicons; }]; + dependencies = [{ plugin = pkgs.vimPlugins.nvim-web-devicons; }]; } { - plugin = mini-nvim; + plugin = pkgs.vimPlugins.mini-nvim; lazy = false; conf = readFile ./lua/mini-nvim.lua; } { - plugin = nvim-cmp; + plugin = pkgs.vimPlugins.nvim-cmp; keys = [ { key = "tc"; cmd = "CmpToggle"; desc = "Toggle Cmp sources"; } ]; @@ -28,26 +30,43 @@ with builtins; event = [ "InsertEnter" ]; dependencies = [ { - plugin = nvim-autopairs; + plugin = pkgs.vimPlugins.nvim-autopairs; opts = { }; } - { plugin = cmp-async-path; } - { plugin = cmp-buffer; } - { plugin = cmp-cmdline; } - { plugin = cmp-nvim-lsp; } - { plugin = cmp_luasnip; } - { plugin = cmp-spell; } - { plugin = cmp-nvim-lsp-signature-help; } - { plugin = friendly-snippets; } - { plugin = lspkind-nvim; } + { plugin = pkgs.vimPlugins.cmp-async-path; } + { plugin = pkgs.vimPlugins.cmp-buffer; } + { plugin = pkgs.vimPlugins.cmp-cmdline; } + { plugin = pkgs.vimPlugins.cmp-nvim-lsp; } + { plugin = pkgs.vimPlugins.cmp_luasnip; } + { plugin = pkgs.vimPlugins.cmp-spell; } + { plugin = pkgs.vimPlugins.cmp-nvim-lsp-signature-help; } { - 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; } ]; } { - plugin = direnv-vim; + plugin = pkgs.vimPlugins.direnv-vim; lazy = false; } { @@ -60,25 +79,26 @@ with builtins; dependencies = [ { # TODO: add all required tools to neovim or silence warnings - plugin = pkgs.vimPlugins.null-ls-nvim.overrideAttrs (_: { - version = lib.my.mkVersionInput inputs.none-ls-nvim; - src = inputs.none-ls-nvim; - }); + plugin = pkgs.vimPlugins.none-ls-nvim; conf = readFile ./lua/null-ls-nvim.lua; 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 = lsp_lines-nvim; } + { plugin = pkgs.vimPlugins.lsp_lines-nvim; } { - plugin = inc-rename-nvim; + plugin = pkgs.vimPlugins.inc-rename-nvim; opts = { input_buffer_type = "dressing"; }; dependencies = [ - { plugin = dressing-nvim; } + { plugin = pkgs.vimPlugins.dressing-nvim; } ]; } { @@ -91,7 +111,7 @@ with builtins; ]; } { - plugin = vim-fugitive; + plugin = pkgs.vimPlugins.vim-fugitive; cmd = [ "G" "Git" @@ -122,11 +142,11 @@ with builtins; ]; } { - plugin = vim-tmux-navigator; + plugin = pkgs.vimPlugins.vim-tmux-navigator; event = [ "VeryLazy" ]; } { - plugin = nvim-lastplace; + plugin = pkgs.vimPlugins.nvim-lastplace; event = [ "BufReadPost" "BufNewFile" ]; opts = { lastplace_ignore_buftype = [ "quickfix" "nofile" "help" ]; @@ -135,7 +155,7 @@ with builtins; }; } { - plugin = telescope-nvim; + plugin = pkgs.vimPlugins.telescope-nvim; cmd = [ "Telescope" ]; conf = builtins.readFile ./lua/telescope.lua; keys = [ @@ -159,31 +179,31 @@ with builtins; { key = "fr"; cmd = "Telescope oldfiles"; desc = "Recent files"; } ]; dependencies = [ - { plugin = plenary-nvim; } - { plugin = telescope-fzf-native-nvim; } + { plugin = pkgs.vimPlugins.plenary-nvim; } + { plugin = pkgs.vimPlugins.telescope-fzf-native-nvim; } ]; } { - plugin = vim-startuptime; + plugin = pkgs.vimPlugins.vim-startuptime; cmd = [ "StartupTime" ]; conf = readFile ./lua/vim-startuptime.lua; } { - plugin = typst-vim; + plugin = pkgs.vimPlugins.typst-vim; ft = [ "typst" "typ" ]; } { - plugin = comment-nvim; + plugin = pkgs.vimPlugins.comment-nvim; event = [ "BufReadPost" "BufNewFile" ]; opts = { }; } { - plugin = nvim-surround; + plugin = pkgs.vimPlugins.nvim-surround; event = [ "BufReadPost" "BufNewFile" ]; opts = { }; } { - plugin = conform-nvim; + plugin = pkgs.vimPlugins.conform-nvim; keys = [ { key = "="; cmd = "lua require('conform').format()"; desc = "format buffer"; mode = [ "n" "v" ]; } ]; diff --git a/modules/programs/nvim/plugins/lua/null-ls-nvim.lua b/modules/programs/nvim/plugins/lua/null-ls-nvim.lua index fe88108..b5717c0 100644 --- a/modules/programs/nvim/plugins/lua/null-ls-nvim.lua +++ b/modules/programs/nvim/plugins/lua/null-ls-nvim.lua @@ -3,14 +3,14 @@ local null_ls = require("null-ls") null_ls.setup({ sources = { -- Code actions - null_ls.builtins.code_actions.shellcheck, + require("none-ls-shellcheck.code_actions"), null_ls.builtins.code_actions.statix, -- Diagnostics null_ls.builtins.diagnostics.checkmake, null_ls.builtins.diagnostics.deadnix, null_ls.builtins.diagnostics.dotenv_linter, null_ls.builtins.diagnostics.fish, - null_ls.builtins.diagnostics.shellcheck, + require("none-ls-shellcheck.diagnostics"), null_ls.builtins.diagnostics.statix, null_ls.builtins.diagnostics.trail_space, null_ls.builtins.diagnostics.yamllint, diff --git a/modules/programs/nvim/plugins/lua/nvim-cmp.lua b/modules/programs/nvim/plugins/lua/nvim-cmp.lua index 04b3daa..4da693c 100644 --- a/modules/programs/nvim/plugins/lua/nvim-cmp.lua +++ b/modules/programs/nvim/plugins/lua/nvim-cmp.lua @@ -8,6 +8,9 @@ cmp.setup({ mode = "symbol", -- show only symbol annotations 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 + symbol_map = { + Copilot = "", + }, }), }, enabled = function() @@ -59,14 +62,13 @@ cmp.setup({ end, { "i", "s" }), }), sources = cmp.config.sources({ - { name = "async_path", priority = 1 }, - { name = "nvim_lsp", priority = 2 }, - { name = "nvim_lsp_signature_help", priority = 3 }, - { name = "luasnip", priority = 4 }, - }, { - { name = "async_path" }, - { name = "buffer" }, - { name = "spell" }, + { priority = 1, name = "async_path" }, + { priority = 1, name = "buffer" }, + { priority = 1, name = "spell" }, + { priority = 2, name = "nvim_lsp" }, + { priority = 3, name = "copilot" }, + { priority = 3, name = "nvim_lsp_signature_help" }, + { priority = 4, name = "luasnip" }, }), }) diff --git a/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua b/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua index d618a7f..1c6dcbe 100644 --- a/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/lua/nvim-lspconfig.lua @@ -124,7 +124,6 @@ local servers = { "gleam", "gopls", "nil_ls", - "nixd", "pylsp", "ruff_lsp", "templ", @@ -134,6 +133,27 @@ for _, lsp in ipairs(servers) do lspconfig_setup(lsp, {}) end +lspconfig_setup("nixd", { + settings = { + nixd = { + nixpkgs = { + expr = "import { }", + }, + 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 vim.filetype.add({ extension = { templ = "templ" } }) diff --git a/modules/programs/nvim/plugins/lua/statuscol-nvim.lua b/modules/programs/nvim/plugins/lua/statuscol-nvim.lua deleted file mode 100644 index f3d2c67..0000000 --- a/modules/programs/nvim/plugins/lua/statuscol-nvim.lua +++ /dev/null @@ -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", - }, - }, -}) diff --git a/modules/programs/python.nix b/modules/programs/python.nix index aa20e4e..41c4959 100644 --- a/modules/programs/python.nix +++ b/modules/programs/python.nix @@ -4,11 +4,13 @@ , ... }: -with lib; 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; - 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; pythonPackages = version: attrNames pkgs."python${version}Packages"; @@ -23,7 +25,7 @@ let enable = mkEnableOption (toString version); pythonPackages = mkOption { default = [ ]; - type = with types; listOf (enum (pythonPackages version)); + type = listOf (enum (pythonPackages version)); }; }; in @@ -32,11 +34,11 @@ in versions = genAttrs pythonVersions versionOpts; defaultPackages = mkOption { default = [ ]; - type = with types; listOf (enum commonPackages); + type = listOf (enum commonPackages); }; extraPackages = mkOption { default = [ ]; - type = with types; listOf package; + type = listOf package; }; };