1

Compare commits

..

11 Commits

11 changed files with 720 additions and 303 deletions

232
flake.lock generated
View File

@ -170,11 +170,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775087534, "lastModified": 1778716662,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -263,12 +263,15 @@
} }
}, },
"hardware": { "hardware": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": { "locked": {
"lastModified": 1776983936, "lastModified": 1780065812,
"narHash": "sha256-ZOQyNqSvJ8UdrrqU1p7vaFcdL53idK+LOM8oRWEWh6o=", "narHash": "sha256-SCSLUKBmwlSLGQ8Xbr8PjRFtiHNk0l9ktqkcmqdBkfE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "2096f3f411ce46e88a79ae4eafcfc9df8ed41c61", "rev": "b76b5639c0593e0aeb0b5879ad62d4b30596c144",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -284,11 +287,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777594677, "lastModified": 1779969295,
"narHash": "sha256-h90sHwoRJLRvaTpZroTvU2JRHDFj0czUafM8eqLe1RI=", "narHash": "sha256-HwIJ3tOcwSMiV75L7KqJXciXR9UfT+d7rwOZMX7cTnA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "899c08a15beae5da51a5cecd6b2b994777a948da", "rev": "61e2c9659324181e0f0ed911958c536333b1d4f6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -320,14 +323,14 @@
}, },
"hytale-launcher": { "hytale-launcher": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1777394001, "lastModified": 1779815066,
"narHash": "sha256-FNHydw2We/qvxBJ2cMNc/eGcxSZkvOXZn2WYGiH6WfE=", "narHash": "sha256-QVxEQivn5kA2H4Zf++wiwNR6yfJZJnvAWADUDqgtW0I=",
"owner": "JPyke3", "owner": "JPyke3",
"repo": "hytale-launcher-nix", "repo": "hytale-launcher-nix",
"rev": "822e54c97348a6fbc28dfac563e5bbe9fe1783b8", "rev": "7b527a3eeff0ee9a95106a056638a407aef1eb43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -339,7 +342,7 @@
"impermanence": { "impermanence": {
"inputs": { "inputs": {
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1769548169, "lastModified": 1769548169,
@ -405,7 +408,7 @@
"naersk": { "naersk": {
"inputs": { "inputs": {
"fenix": "fenix", "fenix": "fenix",
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_9"
}, },
"locked": { "locked": {
"lastModified": 1763384566, "lastModified": 1763384566,
@ -433,11 +436,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1777542749, "lastModified": 1780062130,
"narHash": "sha256-j4W+WwdiRxTTFdsoB8A7jlLNLbMQANKJxh9eKf8nOIs=", "narHash": "sha256-3XF+oy0PX4aajJw2RNB8rlMpyu0eXCG4pGH7fe94yBg=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "36130bc452e0a84c07761d2e176ae875b48eebf3", "rev": "3cb351d73c357a4e413f59c4551d219118791c14",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -466,11 +469,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777468255, "lastModified": 1780056110,
"narHash": "sha256-lBZc1UMy+1P1T/E41j3jQrpS7EFI3qegd+ktHZdamIg=", "narHash": "sha256-t7lKVshV/srD0G06j4r5P5qj9zaDeZ9JYFCxHDGROZU=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "dd1c3bcb9f1ef416df33ffa22d1d9bcee1398e7d", "rev": "f9f43d826ab4014a7c302be28d7da33e12f5be37",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -483,14 +486,14 @@
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1776242217, "lastModified": 1778849865,
"narHash": "sha256-TRts0fKUPFcf1i6rZHFGUDTfti/x3oKEg/CqsPRpSgs=", "narHash": "sha256-HiVhuhD7Fvfje3iw4slmtcCckz/LbjLITa4g/iTEbw0=",
"owner": "thiagokokada", "owner": "thiagokokada",
"repo": "nix-alien", "repo": "nix-alien",
"rev": "4c5e52dda0d6ab3de814e364046769321d3e1021", "rev": "1bb49f5aea63e95a3cf9c4b91f9f1331fef7a52b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -506,11 +509,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775037210, "lastModified": 1779036909,
"narHash": "sha256-KM2WYj6EA7M/FVZVCl3rqWY+TFV5QzSyyGE2gQxeODU=", "narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=",
"owner": "nix-darwin", "owner": "nix-darwin",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "06648f4902343228ce2de79f291dd5a58ee12146", "rev": "56c666e108467d87d13508936aade6d567f2a501",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -544,11 +547,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775970782, "lastModified": 1778393439,
"narHash": "sha256-7jt9Vpm48Yy5yAWigYpde+HxtYEpEuyzIQJF4VYehhk=", "narHash": "sha256-mOtQxUjtKaPHLeoLOY/YEDctmud1X9KwJr4kE1MJ3Wc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "bedba5989b04614fc598af9633033b95a937933f", "rev": "01466c414c7357ae2ce32be4a272a7c69e94ab5f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -575,11 +578,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1777428379, "lastModified": 1779796641,
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", "narHash": "sha256-ZsIrKmhp4vbBXoXXmR/tBXA/UCsAQiJL9vsgZEduhVY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "755f5aa91337890c432639c60b6064bb7fe67769", "rev": "25f538306313eae3927264466c70d7001dcea1df",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -591,11 +594,11 @@
}, },
"nixpkgs-stable_2": { "nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1777428379, "lastModified": 1779796641,
"narHash": "sha256-ypxFOeDz+CqADEQNL72haqGjvZQdBR5Vc7pyx2JDttI=", "narHash": "sha256-ZsIrKmhp4vbBXoXXmR/tBXA/UCsAQiJL9vsgZEduhVY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "755f5aa91337890c432639c60b6064bb7fe67769", "rev": "25f538306313eae3927264466c70d7001dcea1df",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -605,6 +608,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_10": {
"locked": {
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1764242076, "lastModified": 1764242076,
@ -623,11 +642,24 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1777268161, "lastModified": 1767892417,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1779560665,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", "rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -637,7 +669,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1768564909, "lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
@ -653,39 +685,55 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1777268161, "lastModified": 1778443072,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76", "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": {
"lastModified": 1779560665,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1779877693,
"narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1752077645, "lastModified": 1752077645,
"narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=",
@ -701,36 +749,18 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": {
"locked": {
"lastModified": 1775710090,
"narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": [ "nixpkgs": "nixpkgs_8",
"nixpkgs"
],
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1777236345, "lastModified": 1780056171,
"narHash": "sha256-ALOqlq7bE30lsX4rA76hXeQ2aLLEpb44hS+D1+jWS88=", "narHash": "sha256-CXpH7axUH7AzI5izVHfOYawY350beplaAKFLDaQY128=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "a67d9cd6ff725a763afe88727aac73208ded3bf4", "rev": "d7800d4b1c420e0c2dcaaddd58038c8b662e72a8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -770,11 +800,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777624369, "lastModified": 1780066277,
"narHash": "sha256-nQOSodcDhXiKlfCKb4pE/4GBAs2FnBOD+AHVem0EqOc=", "narHash": "sha256-VfvIrI792pYYywcEfvMy5FC5hIIq4lFeUK2dcoSq1BQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "c3ec6b994c235a53a28304564da6422a45230603", "rev": "58bb8dda9943cc5c0827ece3b1a367d76b64af21",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -824,7 +854,7 @@
"nix-alien": "nix-alien", "nix-alien": "nix-alien",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_6", "nixpkgs": "nixpkgs_7",
"nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-stable": "nixpkgs-stable_2",
"nixvim": "nixvim", "nixvim": "nixvim",
"nps": "nps", "nps": "nps",
@ -879,11 +909,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777338324, "lastModified": 1777944972,
"narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=", "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5", "rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -974,11 +1004,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1777451299, "lastModified": 1779792099,
"narHash": "sha256-Okqpw+zxAwHKXuuxlwYy9Ge9JUpnTbsMXqws2eOKfKo=", "narHash": "sha256-HF5M0dr96kDPLS8ebRCG/YZglsKZZdvAhGIAf+lGUiU=",
"owner": "adriankarlen", "owner": "adriankarlen",
"repo": "textfox", "repo": "textfox",
"rev": "3af57df1ed3a38eb584475fd9e032d9643f2a94d", "rev": "2c35f1f04e6283d37b199f318874c57f7d37ef6a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -992,15 +1022,15 @@
"elephant": [ "elephant": [
"elephant" "elephant"
], ],
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_10",
"systems": "systems_5" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1777299395, "lastModified": 1777789924,
"narHash": "sha256-ZoLkqwPVw8SdW+f9Raf15/ttyKqmC6vtKd5R+orNN/g=", "narHash": "sha256-fX3ErzTmHRO9z1SzHC2VZUgKOgRfO13X/joC5a3QN7Q=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "walker", "repo": "walker",
"rev": "7b0cb0fd1f8b0a60b241081483aea4277f0b4500", "rev": "93d44d1cb41732e1370e4b949429ae8e34ea05a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1029,11 +1059,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1773622265, "lastModified": 1779745227,
"narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", "narHash": "sha256-yqY7RtEJGJiENzR0GwL6q69tSAy6xAAmAcLuIhLjPf8=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "a879e5e0896a326adc79c474bf457b8b99011027", "rev": "5d1efbc9dc3ab1c10160b656e0247f3325daf0f2",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -64,7 +64,7 @@
# NeoVim <3 # NeoVim <3
nixvim.url = "github:nix-community/nixvim"; nixvim.url = "github:nix-community/nixvim";
nixvim.inputs.nixpkgs.follows = "nixpkgs"; # nixvim.inputs.nixpkgs.follows = "nixpkgs";
# Emacs nightly # Emacs nightly
# emacs-overlay.url = "github:nix-community/emacs-overlay"; # emacs-overlay.url = "github:nix-community/emacs-overlay";

View File

@ -31,14 +31,15 @@
mcp = { mcp = {
enable = true; enable = true;
servers = { servers = {
nixos = {
command = "uvx";
args = ["mcp-nixos"];
};
svelte = { svelte = {
# claude mcp add -t stdio -s [scope] svelte -- npx -y @sveltejs/mcp # claude mcp add -t stdio -s [scope] svelte -- npx -y @sveltejs/mcp
args = [
"-y"
"@sveltejs/mcp"
];
command = "npx"; command = "npx";
# type = "stdio"; args = ["-y" "@sveltejs/mcp"];
type = "stdio";
}; };
}; };
}; };

View File

@ -83,6 +83,9 @@ in {
stylua stylua
tombi tombi
typstyle typstyle
nodejs_latest
uv
]) ])
[ [
@ -97,6 +100,7 @@ in {
(perl.withPackages (p: (perl.withPackages (p:
with p; [ with p; [
PLS PLS
PerlCritic
PerlTidy PerlTidy
NetOpenSSH NetOpenSSH
DateTime DateTime
@ -141,6 +145,8 @@ in {
}; };
programs.nixvim = { programs.nixvim = {
# nixpkgs.pkgs = pkgs;
defaultEditor = true; defaultEditor = true;
enable = true; enable = true;
enableMan = false; # Nixvim man pages enableMan = false; # Nixvim man pages
@ -163,7 +169,7 @@ in {
performance.byteCompileLua = { performance.byteCompileLua = {
enable = true; enable = true;
configs = true; configs = true;
initLua = false; # When debugging init.lua turn this off initLua = true; # When debugging init.lua turn this off
nvimRuntime = true; nvimRuntime = true;
plugins = true; plugins = true;
}; };

View File

@ -53,8 +53,16 @@ in {
in in
gtkConfig gtkConfig
// { // {
gtk3 = gtkConfig // {extraConfig = gtkExtraConfig;}; gtk3 =
gtk4 = gtkConfig // {extraConfig = gtkExtraConfig;}; gtkConfig
// {
extraConfig = gtkExtraConfig;
};
gtk4 =
gtkConfig
// {
extraConfig = gtkExtraConfig;
};
}; };
dconf = { dconf = {
@ -453,10 +461,27 @@ in {
prefer-no-csd = true; # Disable client-side decorations (e.g. window titlebars) prefer-no-csd = true; # Disable client-side decorations (e.g. window titlebars)
spawn-at-startup = [ spawn-at-startup = [
{argv = ["ashell" "-c" "${config.paths.dotfiles}/ashell/config.toml"];} {
{argv = ["waypaper" "--restore"];} argv = [
"ashell"
"-c"
"${config.paths.dotfiles}/ashell/config.toml"
];
}
{
argv = [
"waypaper"
"--restore"
];
}
{argv = ["kitty" "--hold" "fastfetch"];} {
argv = [
"kitty"
"--hold"
"fastfetch"
];
}
{argv = ["fcitx5"];} {argv = ["fcitx5"];}
# {argv = ["zeal"];} # {argv = ["zeal"];}
# {argv = ["protonvpn-app"];} # {argv = ["protonvpn-app"];}
@ -467,16 +492,36 @@ in {
]; ];
workspaces = { workspaces = {
"1" = {open-on-output = "DP-1";}; "1" = {
"2" = {open-on-output = "DP-1";}; open-on-output = "DP-1";
"3" = {open-on-output = "DP-1";}; };
"4" = {open-on-output = "DP-1";}; "2" = {
"5" = {open-on-output = "DP-1";}; open-on-output = "DP-1";
"6" = {open-on-output = "DP-1";}; };
"7" = {open-on-output = "DP-1";}; "3" = {
"8" = {open-on-output = "DP-1";}; open-on-output = "DP-1";
"9" = {open-on-output = "DP-1";}; };
"10" = {open-on-output = "DP-2";}; "4" = {
open-on-output = "DP-1";
};
"5" = {
open-on-output = "DP-1";
};
"6" = {
open-on-output = "DP-1";
};
"7" = {
open-on-output = "DP-1";
};
"8" = {
open-on-output = "DP-1";
};
"9" = {
open-on-output = "DP-1";
};
"10" = {
open-on-output = "DP-2";
};
}; };
outputs = { outputs = {
@ -517,8 +562,12 @@ in {
border = { border = {
enable = true; enable = true;
width = 2; width = 2;
active = {color = color.hex.accent;}; active = {
inactive = {color = color.hex.base;}; color = color.hex.accent;
};
inactive = {
color = color.hex.base;
};
}; };
# This border is drawn OUTSIDE of the focused window # This border is drawn OUTSIDE of the focused window
@ -529,7 +578,9 @@ in {
# Hint where a dragged window will be inserted # Hint where a dragged window will be inserted
insert-hint = { insert-hint = {
enable = true; enable = true;
display = {color = color.hex.accentDim;}; display = {
color = color.hex.accentDim;
};
}; };
always-center-single-column = true; always-center-single-column = true;
@ -552,7 +603,9 @@ in {
}; };
gestures = { gestures = {
hot-corners = {enable = false;}; hot-corners = {
enable = false;
};
}; };
window-rules = [ window-rules = [
@ -616,16 +669,16 @@ in {
# Rules for specific windows # Rules for specific windows
{ {
matches = [{app-id = "neovide";}]; matches = [
{app-id = "neovide";}
{app-id = "dev.zed.Zed";}
{app-id = "code";}
{app-id = "jetbrains-clion";}
];
open-on-workspace = "2"; open-on-workspace = "2";
open-maximized = true; open-maximized = true;
open-focused = true; open-focused = true;
} }
{
matches = [{app-id = "jetbrains-clion";}];
open-on-workspace = "2";
open-maximized = true;
}
{ {
matches = [{app-id = "code-url-handler";}]; matches = [{app-id = "code-url-handler";}];
open-on-workspace = "2"; open-on-workspace = "2";
@ -703,6 +756,14 @@ in {
draw-behind-window = true; draw-behind-window = true;
}; };
} }
# TODO: Missing niri-flake update
# {
# matches = [{namespace = "walker";}];
#
# background-effect = {
# blur = true;
# };
# }
]; ];
debug = { debug = {
@ -785,69 +846,101 @@ in {
# DMenu # DMenu
"Mod+Shift+A" = { "Mod+Shift+A" = {
action = spawn "walker" "-m" "providerlist"; action = spawn "walker" "-m" "providerlist";
hotkey-overlay = {title = "Toggle the launcher.";}; hotkey-overlay = {
title = "Toggle the launcher.";
};
}; };
"Mod+A" = { "Mod+A" = {
action = spawn "walker" "-m" "desktopapplications"; action = spawn "walker" "-m" "desktopapplications";
hotkey-overlay = {title = "Toggle the application launcher.";}; hotkey-overlay = {
title = "Toggle the application launcher.";
};
}; };
"Mod+C" = { "Mod+C" = {
action = spawn "walker" "-m" "clipboard"; action = spawn "walker" "-m" "clipboard";
hotkey-overlay = {title = "Show clipboard history.";}; hotkey-overlay = {
title = "Show clipboard history.";
};
}; };
"Mod+Escape" = { "Mod+Escape" = {
action = spawn "${sessionMenu}/bin/rofi-menu-Session"; action = spawn "${sessionMenu}/bin/rofi-menu-Session";
hotkey-overlay = {title = "Toggle the session menu.";}; hotkey-overlay = {
title = "Toggle the session menu.";
};
}; };
"Mod+W" = { "Mod+W" = {
action = spawn "${wallpaperMenu}/bin/rofi-menu-Wallpaper"; action = spawn "${wallpaperMenu}/bin/rofi-menu-Wallpaper";
hotkey-overlay = {title = "Open wallpaper menu.";}; hotkey-overlay = {
title = "Open wallpaper menu.";
};
}; };
"Mod+D" = { "Mod+D" = {
action = spawn "${globalMenu}/bin/rofi-menu-Global"; action = spawn "${globalMenu}/bin/rofi-menu-Global";
hotkey-overlay = {title = "Open global menu.";}; hotkey-overlay = {
title = "Open global menu.";
};
}; };
# Applications # Applications
"Mod+Ctrl+W" = { "Mod+Ctrl+W" = {
action = spawn "waypaper"; action = spawn "waypaper";
hotkey-overlay = {title = "Open waypaper.";}; hotkey-overlay = {
title = "Open waypaper.";
};
}; };
"Mod+Shift+W" = { "Mod+Shift+W" = {
action = spawn "waypaper" "--random"; action = spawn "waypaper" "--random";
hotkey-overlay = {title = "Select random wallpaper.";}; hotkey-overlay = {
title = "Select random wallpaper.";
};
}; };
"Mod+T" = { "Mod+T" = {
action = spawn "kitty"; action = spawn "kitty";
hotkey-overlay = {title = "Spawn Kitty.";}; hotkey-overlay = {
title = "Spawn Kitty.";
};
}; };
"Mod+E" = { "Mod+E" = {
action = spawn "kitty" "--title=Yazi" "yazi"; action = spawn "kitty" "--title=Yazi" "yazi";
hotkey-overlay = {title = "Spawn Yazi.";}; hotkey-overlay = {
title = "Spawn Yazi.";
};
}; };
"Mod+B" = { "Mod+B" = {
action = spawn "kitty" "--title=Btop" "btop"; action = spawn "kitty" "--title=Btop" "btop";
hotkey-overlay = {title = "Spawn Btop.";}; hotkey-overlay = {
title = "Spawn Btop.";
};
}; };
"Mod+R" = { "Mod+R" = {
action = spawn "kitty" "--title=Rmpc" "rmpc"; action = spawn "kitty" "--title=Rmpc" "rmpc";
hotkey-overlay = {title = "Spawn Rmpc.";}; hotkey-overlay = {
title = "Spawn Rmpc.";
};
}; };
"Mod+N" = { "Mod+N" = {
action = spawn "neovide"; action = spawn "neovide";
hotkey-overlay = {title = "Spawn Neovide.";}; hotkey-overlay = {
title = "Spawn Neovide.";
};
}; };
"Mod+Ctrl+N" = { "Mod+Ctrl+N" = {
action = spawn "kitty" "--title=Navi" "navi"; action = spawn "kitty" "--title=Navi" "navi";
hotkey-overlay = {title = "Call Navi for help.";}; hotkey-overlay = {
title = "Call Navi for help.";
};
}; };
"Mod+Shift+N" = { "Mod+Shift+N" = {
action = spawn "neovide" "${config.paths.dotfiles}/navi/christoph.cheat"; action = spawn "neovide" "${config.paths.dotfiles}/navi/christoph.cheat";
hotkey-overlay = {title = "Edit the Navi cheats.";}; hotkey-overlay = {
title = "Edit the Navi cheats.";
};
}; };
"Mod+Shift+F" = { "Mod+Shift+F" = {
action = spawn "neovide" "${config.paths.dotfiles}/flake.nix"; action = spawn "neovide" "${config.paths.dotfiles}/flake.nix";
hotkey-overlay = {title = "Edit the NixFlake.";}; hotkey-overlay = {
title = "Edit the NixFlake.";
};
}; };
# Screenshots # Screenshots
@ -856,24 +949,34 @@ in {
write-to-disk = true; write-to-disk = true;
show-pointer = false; show-pointer = false;
}; };
hotkey-overlay = {title = "Take a screenshot of the current window.";}; hotkey-overlay = {
title = "Take a screenshot of the current window.";
};
}; };
"Mod+Ctrl+S" = { "Mod+Ctrl+S" = {
action.screenshot-screen = { action.screenshot-screen = {
write-to-disk = true; write-to-disk = true;
show-pointer = false; show-pointer = false;
}; };
hotkey-overlay = {title = "Take a screenshot of the current screen.";}; hotkey-overlay = {
title = "Take a screenshot of the current screen.";
};
}; };
"Mod+Shift+S" = { "Mod+Shift+S" = {
action.screenshot = {show-pointer = false;}; action.screenshot = {
hotkey-overlay = {title = "Take a screenshot of a region.";}; show-pointer = false;
};
hotkey-overlay = {
title = "Take a screenshot of a region.";
};
}; };
# Niri # Niri
"Mod+Shift+Slash" = { "Mod+Shift+Slash" = {
action = show-hotkey-overlay; action = show-hotkey-overlay;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
# "Alt+Tab" = { # "Alt+Tab" = {
# action = "next-window"; # action = "next-window";
@ -887,191 +990,283 @@ in {
# Audio # Audio
"XF86AudioRaiseVolume" = { "XF86AudioRaiseVolume" = {
action = spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%+"; action = spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%+";
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"XF86AudioLowerVolume" = { "XF86AudioLowerVolume" = {
action = spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%-"; action = spawn "wpctl" "set-volume" "-l" "1.5" "@DEFAULT_AUDIO_SINK@" "5%-";
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"XF86AudioPlay" = { "XF86AudioPlay" = {
action = spawn "playerctl" "play-pause"; action = spawn "playerctl" "play-pause";
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"XF86AudioPrev" = { "XF86AudioPrev" = {
action = spawn "playerctl" "previous"; action = spawn "playerctl" "previous";
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"XF86AudioNext" = { "XF86AudioNext" = {
action = spawn "playerctl" "next"; action = spawn "playerctl" "next";
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
# Niri windows # Niri windows
"Mod+Q" = { "Mod+Q" = {
action = close-window; action = close-window;
hotkey-overlay = {title = "Close the current window.";}; hotkey-overlay = {
title = "Close the current window.";
};
}; };
"Mod+F" = { "Mod+F" = {
action = fullscreen-window; action = fullscreen-window;
hotkey-overlay = {title = "Toggle between fullscreen and tiled window.";}; hotkey-overlay = {
title = "Toggle between fullscreen and tiled window.";
};
}; };
"Mod+Equal" = { "Mod+Equal" = {
action = set-column-width "+10%"; action = set-column-width "+10%";
hotkey-overlay = {title = "Increase column width";}; hotkey-overlay = {
title = "Increase column width";
};
}; };
"Mod+Minus" = { "Mod+Minus" = {
action = set-column-width "-10%"; action = set-column-width "-10%";
hotkey-overlay = {title = "Decrease column width";}; hotkey-overlay = {
title = "Decrease column width";
};
}; };
"Mod+Shift+M" = { "Mod+Shift+M" = {
action = set-column-width "50%"; action = set-column-width "50%";
hotkey-overlay = {title = "Set column width to 50%";}; hotkey-overlay = {
title = "Set column width to 50%";
};
}; };
"Mod+M" = { "Mod+M" = {
action = maximize-column; action = maximize-column;
hotkey-overlay = {title = "Maximize column.";}; hotkey-overlay = {
title = "Maximize column.";
};
}; };
"Mod+Comma" = { "Mod+Comma" = {
action = reset-window-height; action = reset-window-height;
hotkey-overlay = {title = "Reset window height.";}; hotkey-overlay = {
title = "Reset window height.";
};
}; };
"Mod+V" = { "Mod+V" = {
action = toggle-window-floating; action = toggle-window-floating;
hotkey-overlay = {title = "Toggle between floating and tiled window.";}; hotkey-overlay = {
title = "Toggle between floating and tiled window.";
};
}; };
"Mod+O" = { "Mod+O" = {
action = toggle-overview; action = toggle-overview;
hotkey-overlay = {title = "Toggle overlay.";}; hotkey-overlay = {
title = "Toggle overlay.";
};
}; };
"Mod+H" = { "Mod+H" = {
action = focus-column-or-monitor-left; action = focus-column-or-monitor-left;
hotkey-overlay = {title = "Focus column on the left. Equivalent bindings for other directions.";}; hotkey-overlay = {
title = "Focus column on the left. Equivalent bindings for other directions.";
};
}; };
"Mod+J" = { "Mod+J" = {
action = focus-window-or-workspace-down; action = focus-window-or-workspace-down;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+K" = { "Mod+K" = {
action = focus-window-or-workspace-up; action = focus-window-or-workspace-up;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+L" = { "Mod+L" = {
action = focus-column-or-monitor-right; action = focus-column-or-monitor-right;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+WheelScrollUp" = { "Mod+WheelScrollUp" = {
action = focus-column-left; action = focus-column-left;
hotkey-overlay = {title = "Focus column on the left. Equivalent binding for other direction.";}; hotkey-overlay = {
title = "Focus column on the left. Equivalent binding for other direction.";
};
}; };
"Mod+WheelScrollDown" = { "Mod+WheelScrollDown" = {
action = focus-column-right; action = focus-column-right;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+WheelScrollUp" = { "Mod+Shift+WheelScrollUp" = {
action = focus-workspace-up; action = focus-workspace-up;
hotkey-overlay = {title = "Focus previous workspace. Equivalent binding for other direction.";}; hotkey-overlay = {
title = "Focus previous workspace. Equivalent binding for other direction.";
};
}; };
"Mod+Shift+WheelScrollDown" = { "Mod+Shift+WheelScrollDown" = {
action = focus-workspace-down; action = focus-workspace-down;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+H" = { "Mod+Shift+H" = {
action = move-column-left-or-to-monitor-left; action = move-column-left-or-to-monitor-left;
hotkey-overlay = {title = "Move column to the left. Equivalent bindings for other directions.";}; hotkey-overlay = {
title = "Move column to the left. Equivalent bindings for other directions.";
};
}; };
"Mod+Shift+J" = { "Mod+Shift+J" = {
action = move-window-down-or-to-workspace-down; action = move-window-down-or-to-workspace-down;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+K" = { "Mod+Shift+K" = {
action = move-window-up-or-to-workspace-up; action = move-window-up-or-to-workspace-up;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+L" = { "Mod+Shift+L" = {
action = move-column-right-or-to-monitor-right; action = move-column-right-or-to-monitor-right;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
# Niri workspaces # Niri workspaces
"Mod+1" = { "Mod+1" = {
action = focus-workspace 1; action = focus-workspace 1;
hotkey-overlay = {title = "Focus workspace 1. Equivalent bindings for other workspaces.";}; hotkey-overlay = {
title = "Focus workspace 1. Equivalent bindings for other workspaces.";
};
}; };
"Mod+2" = { "Mod+2" = {
action = focus-workspace 2; action = focus-workspace 2;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+3" = { "Mod+3" = {
action = focus-workspace 3; action = focus-workspace 3;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+4" = { "Mod+4" = {
action = focus-workspace 4; action = focus-workspace 4;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+5" = { "Mod+5" = {
action = focus-workspace 5; action = focus-workspace 5;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+6" = { "Mod+6" = {
action = focus-workspace 6; action = focus-workspace 6;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+7" = { "Mod+7" = {
action = focus-workspace 7; action = focus-workspace 7;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+8" = { "Mod+8" = {
action = focus-workspace 8; action = focus-workspace 8;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+9" = { "Mod+9" = {
action = focus-workspace 9; action = focus-workspace 9;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+0" = { "Mod+0" = {
action = focus-workspace 10; action = focus-workspace 10;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+1" = { "Mod+Shift+1" = {
action.move-window-to-workspace = 1; action.move-window-to-workspace = 1;
hotkey-overlay = {title = "Move current window to workspace 1. Equivalent bindings for other workspaces.";}; hotkey-overlay = {
title = "Move current window to workspace 1. Equivalent bindings for other workspaces.";
};
}; };
"Mod+Shift+2" = { "Mod+Shift+2" = {
action.move-window-to-workspace = 2; action.move-window-to-workspace = 2;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+3" = { "Mod+Shift+3" = {
action.move-window-to-workspace = 3; action.move-window-to-workspace = 3;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+4" = { "Mod+Shift+4" = {
action.move-window-to-workspace = 4; action.move-window-to-workspace = 4;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+5" = { "Mod+Shift+5" = {
action.move-window-to-workspace = 5; action.move-window-to-workspace = 5;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+6" = { "Mod+Shift+6" = {
action.move-window-to-workspace = 6; action.move-window-to-workspace = 6;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+7" = { "Mod+Shift+7" = {
action.move-window-to-workspace = 7; action.move-window-to-workspace = 7;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+8" = { "Mod+Shift+8" = {
action.move-window-to-workspace = 8; action.move-window-to-workspace = 8;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+9" = { "Mod+Shift+9" = {
action.move-window-to-workspace = 9; action.move-window-to-workspace = 9;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
"Mod+Shift+0" = { "Mod+Shift+0" = {
action.move-window-to-workspace = 10; action.move-window-to-workspace = 10;
hotkey-overlay = {hidden = true;}; hotkey-overlay = {
hidden = true;
};
}; };
}; };
}; };

View File

@ -15,44 +15,44 @@ in {
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
matchBlocks = { settings = {
"*" = { "*" = {
forwardAgent = false; ForwardAgent = false;
addKeysToAgent = AddKeysToAgent =
if pkgs.stdenv.isLinux if pkgs.stdenv.isLinux
then "no" then "no"
else "yes"; # Don't have keychain on darwin else "yes"; # Don't have keychain on darwin
compression = true; Compression = true;
serverAliveInterval = 0; ServerAliveInterval = 0;
serverAliveCountMax = 3; ServerAliveCountMax = 3;
hashKnownHosts = false; HashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts"; UserKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no"; ControlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p"; ControlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no"; ControlPersist = "no";
}; };
"nixinator" = { "nixinator" = {
port = 5432; Port = 5432;
user = "christoph"; User = "christoph";
hostname = "vps.chriphost.de"; HostName = "vps.chriphost.de";
}; };
"servenix" = { "servenix" = {
user = "christoph"; User = "christoph";
hostname = "local.chriphost.de"; HostName = "local.chriphost.de";
}; };
"thinknix" = { "thinknix" = {
user = "christoph"; User = "christoph";
hostname = "think.chriphost.de"; HostName = "think.chriphost.de";
}; };
"vps" = { "vps" = {
user = "root"; User = "root";
hostname = "vps.chriphost.de"; HostName = "vps.chriphost.de";
}; };
"mars" = { "mars" = {
user = "smchurla"; User = "smchurla";
hostname = "mars.cs.tu-dortmund.de"; HostName = "mars.cs.tu-dortmund.de";
serverAliveInterval = 60; ServerAliveInterval = 60;
localForwards = [ LocalForward = [
{ {
# Resultbrowser # Resultbrowser
bind.port = 22941; bind.port = 22941;

View File

@ -38,6 +38,7 @@ in {
ms-vscode-remote.remote-ssh ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit ms-vscode-remote.remote-ssh-edit
ms-vscode.remote-explorer ms-vscode.remote-explorer
anthropic.claude-code
# Python # Python
ms-python.python ms-python.python

View File

@ -5,10 +5,12 @@
mylib, mylib,
pkgs, pkgs,
... ...
}: let }:
let
inherit (config.homemodules) yazi color; inherit (config.homemodules) yazi color;
in { in
options.homemodules.yazi = import ./options.nix {inherit lib mylib;}; {
options.homemodules.yazi = import ./options.nix { inherit lib mylib; };
config = lib.mkIf yazi.enable { config = lib.mkIf yazi.enable {
programs.yazi = { programs.yazi = {
@ -17,7 +19,18 @@ in {
shellWrapperName = "y"; shellWrapperName = "y";
plugins = { plugins = {
inherit (pkgs.yaziPlugins) chmod diff full-border git lazygit mount ouch rsync starship sudo; # smart-paste inherit (pkgs.yaziPlugins)
chmod
diff
full-border
git
lazygit
mount
ouch
rsync
starship
sudo
; # smart-paste
}; };
initLua = '' initLua = ''
@ -70,7 +83,12 @@ in {
{ {
run = ''mpv "$@"''; run = ''mpv "$@"'';
orphan = true; orphan = true;
desc = "Play selection"; desc = "Play selection with mpv";
}
{
run = ''vlc "$@"'';
orphan = true;
desc = "Play selection with vlc";
} }
]; ];
edit = [ edit = [
@ -81,14 +99,18 @@ in {
} }
]; ];
open = [ open = [
{
run = ''imv "$@"'';
desc = "Open selection with imv";
}
{ {
run = ''xdg-open "$@"''; run = ''xdg-open "$@"'';
desc = "Open selection"; desc = "Open selection with xdg-open";
} }
{ {
# TODO: For some reason, junction does not exit after choosing an application... # TODO: For some reason, junction does not exit after choosing an application...
run = ''junction "$@"''; run = ''junction "$@"'';
desc = "Open selection in chosen application"; desc = "Open selection with junction";
} }
]; ];
extract = [ extract = [
@ -106,13 +128,13 @@ in {
plugin.prepend_fetchers = [ plugin.prepend_fetchers = [
{ {
id = "git"; group = "git";
name = "*"; url = "*";
run = "git"; run = "git";
} }
{ {
id = "git"; group = "git";
name = "*/"; url = "*/";
run = "git"; run = "git";
} }
]; ];
@ -162,42 +184,66 @@ in {
mgr.prepend_keymap = [ mgr.prepend_keymap = [
{ {
on = ["<C-p>" "m"]; on = [
"<C-p>"
"m"
];
run = "plugin mount"; run = "plugin mount";
desc = "Manage device mounts"; desc = "Manage device mounts";
} }
{ {
on = ["<C-p>" "c"]; on = [
"<C-p>"
"c"
];
run = "plugin chmod"; run = "plugin chmod";
desc = "Chmod selection"; desc = "Chmod selection";
} }
{ {
on = ["<C-p>" "g"]; on = [
"<C-p>"
"g"
];
run = "plugin lazygit"; run = "plugin lazygit";
desc = "Run LazyGit"; desc = "Run LazyGit";
} }
{ {
on = ["<C-p>" "a"]; on = [
"<C-p>"
"a"
];
run = "plugin ouch"; run = "plugin ouch";
desc = "Add selection to archive"; desc = "Add selection to archive";
} }
{ {
on = ["<C-p>" "d"]; on = [
"<C-p>"
"d"
];
run = ''shell -- ripdrag -a -n "$@"''; run = ''shell -- ripdrag -a -n "$@"'';
desc = "Drag & drop selection"; desc = "Drag & drop selection";
} }
{ {
on = ["<C-p>" "D"]; on = [
"<C-p>"
"D"
];
run = "plugin diff"; run = "plugin diff";
desc = "Diff the selected with the hovered file"; desc = "Diff the selected with the hovered file";
} }
{ {
on = ["<C-p>" "r"]; on = [
"<C-p>"
"r"
];
run = "plugin rsync"; run = "plugin rsync";
desc = "Copy files using rsync"; desc = "Copy files using rsync";
} }
{ {
on = ["<C-p>" "w"]; on = [
"<C-p>"
"w"
];
run = ''wl-copy < "$0"''; run = ''wl-copy < "$0"'';
desc = "Copy hovered file contents using wl-copy"; desc = "Copy hovered file contents using wl-copy";
} }
@ -209,7 +255,10 @@ in {
} }
{ {
on = "y"; on = "y";
run = [''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list'' "yank"]; run = [
''shell -- for path in "$@"; do echo "file://$path"; done | wl-copy -t text/uri-list''
"yank"
];
desc = "Copy files to system clipboard on yank"; desc = "Copy files to system clipboard on yank";
} }
# { # {
@ -228,7 +277,9 @@ in {
# https://github.com/catppuccin/yazi/blob/main/themes/mocha/catppuccin-mocha-lavender.toml # https://github.com/catppuccin/yazi/blob/main/themes/mocha/catppuccin-mocha-lavender.toml
theme = { theme = {
mgr = { mgr = {
cwd = {fg = color.hexS.teal;}; cwd = {
fg = color.hexS.teal;
};
hovered = { hovered = {
fg = color.hexS.accentText; fg = color.hexS.accentText;
@ -285,7 +336,9 @@ in {
}; };
border_symbol = ""; border_symbol = "";
border_style = {fg = color.hexS.overlay0;}; border_style = {
fg = color.hexS.overlay0;
};
}; };
tabs = { tabs = {
@ -354,58 +407,104 @@ in {
bg = color.hexS.surface0; bg = color.hexS.surface0;
}; };
perm_type = {fg = color.hexS.blue;}; perm_type = {
perm_read = {fg = color.hexS.yellow;}; fg = color.hexS.blue;
perm_write = {fg = color.hexS.red;}; };
perm_exec = {fg = color.hexS.green;}; perm_read = {
perm_sep = {fg = color.hexS.overlay0;}; fg = color.hexS.yellow;
};
perm_write = {
fg = color.hexS.red;
};
perm_exec = {
fg = color.hexS.green;
};
perm_sep = {
fg = color.hexS.overlay0;
};
}; };
input = { input = {
border = {fg = color.hexS.accentDim;}; border = {
title = {}; fg = color.hexS.accentDim;
value = {}; };
selected = {reversed = true;}; title = { };
value = { };
selected = {
reversed = true;
};
}; };
pick = { pick = {
border = {fg = color.hexS.accentDim;}; border = {
active = {fg = color.hexS.accentHl;}; fg = color.hexS.accentDim;
inactive = {}; };
active = {
fg = color.hexS.accentHl;
};
inactive = { };
}; };
confirm = { confirm = {
border = {fg = color.hexS.accentDim;}; border = {
title = {fg = color.hexS.accentDim;}; fg = color.hexS.accentDim;
content = {}; };
list = {}; title = {
btn_yes = {reversed = true;}; fg = color.hexS.accentDim;
btn_no = {}; };
content = { };
list = { };
btn_yes = {
reversed = true;
};
btn_no = { };
}; };
cmp = { cmp = {
border = {fg = color.hexS.accentDim;}; border = {
fg = color.hexS.accentDim;
};
}; };
tasks = { tasks = {
border = {fg = color.hexS.accentDim;}; border = {
title = {}; fg = color.hexS.accentDim;
hovered = {underline = true;}; };
title = { };
hovered = {
underline = true;
};
}; };
which = { which = {
cand = {fg = color.hexS.accent;}; cand = {
desc = {fg = color.hexS.accentHl;}; fg = color.hexS.accent;
mask = {bg = color.hexS.surface0;}; };
rest = {fg = color.hexS.surface0;}; desc = {
fg = color.hexS.accentHl;
};
mask = {
bg = color.hexS.surface0;
};
rest = {
fg = color.hexS.surface0;
};
separator = " "; separator = " ";
separator_style = {fg = color.hexS.text;}; separator_style = {
fg = color.hexS.text;
};
}; };
help = { help = {
on = {fg = color.hexS.accent;}; on = {
run = {fg = color.hexS.accentHl;}; fg = color.hexS.accent;
desc = {fg = color.hexS.text;}; };
run = {
fg = color.hexS.accentHl;
};
desc = {
fg = color.hexS.text;
};
hovered = { hovered = {
fg = color.hexS.accentText; # TODO: This is not applied fg = color.hexS.accentText; # TODO: This is not applied
@ -420,19 +519,31 @@ in {
}; };
notify = { notify = {
title_info = {fg = color.hexS.teal;}; title_info = {
title_warn = {fg = color.hexS.yellow;}; fg = color.hexS.teal;
title_error = {fg = color.hexS.red;}; };
title_warn = {
fg = color.hexS.yellow;
};
title_error = {
fg = color.hexS.red;
};
}; };
spot = { spot = {
border = {fg = color.hexS.lavender;}; border = {
title = {fg = color.hexS.lavender;}; fg = color.hexS.lavender;
};
title = {
fg = color.hexS.lavender;
};
tbl_cell = { tbl_cell = {
fg = color.hexS.lavender; fg = color.hexS.lavender;
reversed = true; reversed = true;
}; };
tbl_col = {bold = true;}; tbl_col = {
bold = true;
};
}; };
# Default rules good enough # Default rules good enough
@ -442,9 +553,9 @@ in {
# Prepend to override default config # Prepend to override default config
icon = { icon = {
prepend_dirs = import ./specialDirectories.nix {inherit color;}; prepend_dirs = import ./specialDirectories.nix { inherit color; };
prepend_files = import ./specialFiles.nix {inherit color;}; prepend_files = import ./specialFiles.nix { inherit color; };
prepend_exts = import ./specialExtensions.nix {inherit color;}; prepend_exts = import ./specialExtensions.nix { inherit color; };
}; };
}; };
}; };

View File

@ -5,10 +5,12 @@
mylib, mylib,
pkgs, pkgs,
... ...
}: let }:
let
inherit (config.homemodules) zed color; inherit (config.homemodules) zed color;
in { in
options.homemodules.zed = import ./options.nix {inherit lib mylib;}; {
options.homemodules.zed = import ./options.nix { inherit lib mylib; };
config = lib.mkIf zed.enable { config = lib.mkIf zed.enable {
programs.zed-editor = { programs.zed-editor = {
@ -23,33 +25,74 @@ in {
extensions = [ extensions = [
"catppuccin" "catppuccin"
"catppuccin-icons" "catppuccin-icons"
"comment"
"git-firefly"
"nix"
"perl"
"fish"
"lua"
"toml"
"csharp"
"java"
"latex"
"typst"
"haskell"
"glsl"
"mermaid"
"clojure"
"verilog"
"qml"
"plantuml"
"graphviz"
"dockerfile" "dockerfile"
"docker-compose" "docker-compose"
"html" "html"
"svelte" "xml"
"svelte-mcp" "scss"
"make"
"rainbow-csv" "rainbow-csv"
"sql" "sql"
"nix" "svelte"
"svelte-mcp"
"jinja2"
"just" "just"
"perl" "make"
"neocmake"
"assembly" "assembly"
"wat" "wat"
"neocmake"
"linkerscript" "linkerscript"
"r"
]; ];
themes = {}; themes = { };
userDebug = []; userDebug = [ ];
# TODO: Add neovim keymaps
userKeymaps = [ userKeymaps = [
{ {
context = "Workspace"; context = "Workspace";
bindings = { bindings = {
ctrl-shift-t = "workspace::NewTerminal"; "ctrl-/" = "terminal_panel::Toggle";
};
}
{
context = "Editor";
unbind = {
"ctrl-/" = [
"editor::ToggleComments"
{
advance_downwards = false;
}
];
};
}
{
context = "(vim_mode == normal || vim_mode == visual) && !menu";
bindings = {
"ctrl-c" = "editor::ToggleComments";
}; };
} }
]; ];
@ -70,6 +113,13 @@ in {
tree_view = true; tree_view = true;
}; };
# TODO: Doesn't work, although perlnavigator advertises Perl::Tidy autoformatting...
languages = {
Perl = {
formatter = "language_server";
};
};
auto_signature_help = true; auto_signature_help = true;
lsp = { lsp = {
nil = { nil = {
@ -82,10 +132,31 @@ in {
nixd = { nixd = {
initialization_options = { initialization_options = {
formatting = { formatting = {
command = ["${pkgs.alejandra}/bin/alejandra"]; command = [ "${pkgs.alejandra}/bin/alejandra" ];
}; };
}; };
}; };
# No idea how to configure the formatter
# perlnavigator-server = let
# # TODO: Duplicated in neovim/default.nix. Need Perl module.
# perl = pkgs.perl.withPackages (p:
# with p; [
# PLS
# PerlCritic
# PerlTidy
# NetOpenSSH
# DateTime
# DBI
# DBDMariaDB
# CursesUI
# TextCSV_XS
# ]);
# in {
# initialization_options = {
# "perlnavigator.perlPath" = "${perl}/bin";
# "perlnavigator.includePaths" = ["${perl}/lib/perl5"];
# };
# };
}; };
disable_ai = false; disable_ai = false;
@ -120,7 +191,7 @@ in {
}; };
}; };
userTasks = []; userTasks = [ ];
}; };
}; };
} }

View File

@ -146,8 +146,8 @@
nvidia-container-toolkit.enable = true; nvidia-container-toolkit.enable = true;
nvidia = { nvidia = {
# package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
package = config.boot.kernelPackages.nvidiaPackages.beta; # package = config.boot.kernelPackages.nvidiaPackages.beta;
open = true; open = true;
nvidiaSettings = false; # Those are for x-server nvidiaSettings = false; # Those are for x-server

View File

@ -8,7 +8,8 @@
# comfyuiVersion = "cu128-slim-20260316"; # comfyuiVersion = "cu128-slim-20260316";
# comfyuiVersion = "cu128-megapak-20260413"; # comfyuiVersion = "cu128-megapak-20260413";
# comfyuiVersion = "cu130-megapak-pt211-20260413"; # comfyuiVersion = "cu130-megapak-pt211-20260413";
comfyuiVersion = "cu130-megapak-pt211-20260508"; # comfyuiVersion = "cu130-megapak-pt211-20260508";
comfyuiVersion = "cu130-megapak-pt211-20260604";
in { in {
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
comfyui = { comfyui = {
@ -61,6 +62,7 @@ in {
# "--lowvram" # "--lowvram"
# "--disable-smart-memory" # "--disable-smart-memory"
# "--disable-pinned-memory" # "--disable-pinned-memory"
# "--disable-dynamic-vram"
# "--disable-xformers" # "--disable-xformers"
# "--use-sage-attention" # Crashes # "--use-sage-attention" # Crashes
# "--reserve-vram 1" # (1 or 2) => Assume less vram is available to mitigate OOM due to wrong vram estimation # "--reserve-vram 1" # (1 or 2) => Assume less vram is available to mitigate OOM due to wrong vram estimation