Convert some older nixos-system code
This commit is contained in:
parent
1a3c10ea78
commit
84bf6d0350
45 changed files with 1653 additions and 54 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
||||||
result/
|
result/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
rust/target
|
rust/target
|
||||||
|
*.qcow2
|
||||||
|
|
BIN
assets/wallpaper.jpg
Normal file
BIN
assets/wallpaper.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 MiB |
BIN
desktop.qcow2
Normal file
BIN
desktop.qcow2
Normal file
Binary file not shown.
389
flake.lock
generated
389
flake.lock
generated
|
@ -16,6 +16,73 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"base16": {
|
||||||
|
"inputs": {
|
||||||
|
"fromYaml": "fromYaml"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746562888,
|
||||||
|
"narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-fish": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1622559957,
|
||||||
|
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-helix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748408240,
|
||||||
|
"narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732806396,
|
||||||
|
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"bats-assert": {
|
"bats-assert": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -48,6 +115,30 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"cosmic-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"home-manager": [
|
||||||
|
"home-manager"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744387566,
|
||||||
|
"narHash": "sha256-O39zTv7LdRgr4Hw38d+eQG2LYpP75rw2XKqTGV5qzgs=",
|
||||||
|
"owner": "HeitorAugustoLN",
|
||||||
|
"repo": "cosmic-manager",
|
||||||
|
"rev": "52d3fdd080a9dd4639948687682a68282fbf0314",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "HeitorAugustoLN",
|
||||||
|
"repo": "cosmic-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"crane": {
|
"crane": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751562746,
|
"lastModified": 1751562746,
|
||||||
|
@ -70,11 +161,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751607816,
|
"lastModified": 1751854533,
|
||||||
"narHash": "sha256-5PtrwjqCIJ4DKQhzYdm8RFePBuwb+yTzjV52wWoGSt4=",
|
"narHash": "sha256-U/OQFplExOR1jazZY4KkaQkJqOl59xlh21HP9mI79Vc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "da6109c917b48abc1f76dd5c9bf3901c8c80f662",
|
"rev": "16b74a1e304197248a1bc663280f2548dbfcae3c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -105,6 +196,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"firefox-gnome-theme": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748383148,
|
||||||
|
"narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-base": {
|
"flake-base": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -144,6 +251,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"cosmic-manager",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1738453229,
|
||||||
|
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"nixos-anywhere",
|
"nixos-anywhere",
|
||||||
|
@ -164,7 +292,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-parts_2": {
|
"flake-parts_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1749398372,
|
||||||
|
"narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": [
|
"nixpkgs-lib": [
|
||||||
"terranix",
|
"terranix",
|
||||||
|
@ -252,6 +401,39 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"fromYaml": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731966426,
|
||||||
|
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gnome-shell": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744584021,
|
||||||
|
"narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GNOME",
|
||||||
|
"ref": "48.1",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -297,7 +479,7 @@
|
||||||
"nixos-anywhere": {
|
"nixos-anywhere": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"disko": "disko_2",
|
"disko": "disko_2",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts_2",
|
||||||
"nix-vm-test": "nix-vm-test",
|
"nix-vm-test": "nix-vm-test",
|
||||||
"nixos-images": "nixos-images",
|
"nixos-images": "nixos-images",
|
||||||
"nixos-stable": "nixos-stable",
|
"nixos-stable": "nixos-stable",
|
||||||
|
@ -364,11 +546,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751582995,
|
"lastModified": 1751741127,
|
||||||
"narHash": "sha256-u7ubvtxdTnFPpV27AHpgoKn7qHuE7sgWgza/1oj5nzA=",
|
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7a732ed41ca0dd64b4b71b563ab9805a80a7d693",
|
"rev": "29e290002bfff26af1db6f64d070698019460302",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -393,9 +575,36 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"stylix",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"treefmt-nix": "treefmt-nix_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751320053,
|
||||||
|
"narHash": "sha256-3m6RMw0FbbaUUa01PNaMLoO7D99aBClmY5ed9V3vz+0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "cbde1735782f9c2bb2c63d5e05fba171a14a4670",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"advisory-db": "advisory-db",
|
"advisory-db": "advisory-db",
|
||||||
|
"cosmic-manager": "cosmic-manager",
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-base": "flake-base",
|
"flake-base": "flake-base",
|
||||||
|
@ -403,6 +612,7 @@
|
||||||
"nixos-anywhere": "nixos-anywhere",
|
"nixos-anywhere": "nixos-anywhere",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"rust-overlay": "rust-overlay",
|
"rust-overlay": "rust-overlay",
|
||||||
|
"stylix": "stylix",
|
||||||
"terranix": "terranix",
|
"terranix": "terranix",
|
||||||
"terranix-hcloud": "terranix-hcloud"
|
"terranix-hcloud": "terranix-hcloud"
|
||||||
}
|
}
|
||||||
|
@ -414,11 +624,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751769931,
|
"lastModified": 1751942411,
|
||||||
"narHash": "sha256-QR2Rp/41NkA5YxcpvZEKD1S2QE1Pb9U415aK8M/4tJc=",
|
"narHash": "sha256-01uMHCt2U9tP4f24DGch145tT8YQppLY5TC9mWK7O0A=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "3ac4f630e375177ea8317e22f5c804156de177e8",
|
"rev": "c587235f892930a61c9e415f0d9792a1b27a41a2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -450,6 +660,41 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"stylix": {
|
||||||
|
"inputs": {
|
||||||
|
"base16": "base16",
|
||||||
|
"base16-fish": "base16-fish",
|
||||||
|
"base16-helix": "base16-helix",
|
||||||
|
"base16-vim": "base16-vim",
|
||||||
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
|
"flake-parts": "flake-parts_3",
|
||||||
|
"gnome-shell": "gnome-shell",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nur": "nur",
|
||||||
|
"systems": "systems_2",
|
||||||
|
"tinted-foot": "tinted-foot",
|
||||||
|
"tinted-kitty": "tinted-kitty",
|
||||||
|
"tinted-schemes": "tinted-schemes",
|
||||||
|
"tinted-tmux": "tinted-tmux",
|
||||||
|
"tinted-zed": "tinted-zed"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752009340,
|
||||||
|
"narHash": "sha256-6IKc+fdgJ+mWW8pBOVS5MYvttHBhvWSbff/31pG3SAY=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "stylix",
|
||||||
|
"rev": "c647aaa1dead3752fb49f226a4f67ae1030d7747",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-25.05",
|
||||||
|
"repo": "stylix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
@ -480,13 +725,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"terranix": {
|
"terranix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_4",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_2"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749381683,
|
"lastModified": 1749381683,
|
||||||
|
@ -562,6 +822,87 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"tinted-foot": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726913040,
|
||||||
|
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-kitty": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735730497,
|
||||||
|
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750770351,
|
||||||
|
"narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"rev": "5a775c6ffd6e6125947b393872cde95867d85a2a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-tmux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751159871,
|
||||||
|
"narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"rev": "bded5e24407cec9d01bd47a317d15b9223a1546c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-zed": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751158968,
|
||||||
|
"narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"rev": "86a470d94204f7652b906ab0d378e4231a5b3384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -603,6 +944,28 @@
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1733222881,
|
||||||
|
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
56
flake.nix
56
flake.nix
|
@ -40,6 +40,19 @@
|
||||||
nixpkgs.follows = "nixpkgs";
|
nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
stylix = {
|
||||||
|
url = "github:nix-community/stylix/release-25.05";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cosmic-manager = {
|
||||||
|
url = "github:HeitorAugustoLN/cosmic-manager";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
home-manager.follows = "home-manager";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
@ -52,15 +65,28 @@
|
||||||
dirs = inputs.nixpkgs.lib.filterAttrs (name: kind: kind == "directory") files;
|
dirs = inputs.nixpkgs.lib.filterAttrs (name: kind: kind == "directory") files;
|
||||||
in
|
in
|
||||||
builtins.attrNames dirs;
|
builtins.attrNames dirs;
|
||||||
profileArgs = { inherit self; };
|
|
||||||
profileNames = dirsInPath ./nix/profiles;
|
|
||||||
nixosModules = dirsInPath ./nix/modules/nixos;
|
nixosModules = dirsInPath ./nix/modules/nixos;
|
||||||
inputModules = [ inputs.disko.nixosModules.disko ];
|
homeModules = dirsInPath ./nix/modules/home;
|
||||||
|
inputNixosModules = [
|
||||||
|
inputs.disko.nixosModules.disko
|
||||||
|
inputs.stylix.nixosModules.stylix
|
||||||
|
];
|
||||||
|
inputHomeModules = [
|
||||||
|
inputs.cosmic-manager.homeManagerModules.cosmic-manager
|
||||||
|
];
|
||||||
|
allowUnfreePackages = [
|
||||||
|
"spotify"
|
||||||
|
"google-chrome"
|
||||||
|
];
|
||||||
in
|
in
|
||||||
(inputs.flake-base.lib.mkFlake {
|
(inputs.flake-base.lib.mkFlake {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
src = ./.;
|
src = ./.;
|
||||||
systems.modules.nixos = inputModules;
|
channels-config = {
|
||||||
|
allowUnfreePredicate = pkg: builtins.elem (inputs.nixpkgs.lib.getName pkg) allowUnfreePackages;
|
||||||
|
};
|
||||||
|
systems.modules.nixos = inputNixosModules;
|
||||||
|
homes.modules = inputHomeModules;
|
||||||
snowfall = {
|
snowfall = {
|
||||||
root = ./nix;
|
root = ./nix;
|
||||||
namespace = "khscodes";
|
namespace = "khscodes";
|
||||||
|
@ -69,17 +95,17 @@
|
||||||
name = "Machines";
|
name = "Machines";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
modules.nixos = {
|
modules = {
|
||||||
default =
|
nixos = {
|
||||||
{
|
default = {
|
||||||
imports = builtins.map (m: self.nixosModules.${m}) nixosModules ++ inputModules;
|
imports = (builtins.map (m: self.nixosModules.${m}) nixosModules) ++ inputNixosModules;
|
||||||
}
|
};
|
||||||
// (builtins.listToAttrs (
|
};
|
||||||
builtins.map (n: {
|
home = {
|
||||||
name = n;
|
default = {
|
||||||
value = (import ./nix/profiles/${n} profileArgs);
|
imports = (builtins.map (m: self.homeModules.${m}) homeModules) ++ inputHomeModules;
|
||||||
}) profileNames
|
};
|
||||||
));
|
};
|
||||||
};
|
};
|
||||||
overlays = [ inputs.rust-overlay.overlays.default ];
|
overlays = [ inputs.rust-overlay.overlays.default ];
|
||||||
})
|
})
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ "${inputs.self}/nix/profiles/home/khs-linux-desktop.nix" ];
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
{
|
|
||||||
snowfallorg.user.name = "khs";
|
|
||||||
home.stateVersion = "25.05";
|
|
||||||
}
|
|
1
nix/modules/home/applications/default.nix
Normal file
1
nix/modules/home/applications/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ ... }: { }
|
6
nix/modules/home/desktop/default.nix
Normal file
6
nix/modules/home/desktop/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
options.khscodes.desktop = {
|
||||||
|
enable = lib.mkEnableOption "Generic setting other modules can use to enable/disable stuff when used on desktops";
|
||||||
|
};
|
||||||
|
}
|
113
nix/modules/home/khs/applications/alacritty/default.nix
Normal file
113
nix/modules/home/khs/applications/alacritty/default.nix
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
isDarwin = lib.strings.hasSuffix "-darwin" system;
|
||||||
|
isLinux = lib.strings.hasSuffix "-darwin" system;
|
||||||
|
shell = pkgs.bashInteractive;
|
||||||
|
shellArgs = [
|
||||||
|
"-c"
|
||||||
|
(lib.getExe pkgs.zellij)
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf (config.khscodes.khs.enable && config.khscodes.desktop.enable) {
|
||||||
|
programs.alacritty = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
terminal =
|
||||||
|
{
|
||||||
|
shell = {
|
||||||
|
program = "${shell}${shell.shellPath}";
|
||||||
|
args = shellArgs;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// lib.attrsets.optionalAttrs isDarwin {
|
||||||
|
osc52 = "CopyPaste";
|
||||||
|
};
|
||||||
|
scrolling = {
|
||||||
|
history = 100000;
|
||||||
|
};
|
||||||
|
window = {
|
||||||
|
padding = {
|
||||||
|
x = 2;
|
||||||
|
y = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
bell = {
|
||||||
|
animation = "EaseOutExpo";
|
||||||
|
};
|
||||||
|
hints = {
|
||||||
|
enabled = [
|
||||||
|
{
|
||||||
|
regex = "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\\u0000-\\u001F\\u007F-\\u009F<>\"\\\\s{-}\\\\^⟨⟩`]+";
|
||||||
|
command = if isLinux then "xdg-open" else "open";
|
||||||
|
post_processing = true;
|
||||||
|
mouse = {
|
||||||
|
enabled = true;
|
||||||
|
mods = "Control";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
window = {
|
||||||
|
option_as_alt = "OnlyLeft";
|
||||||
|
};
|
||||||
|
env = {
|
||||||
|
TERM = "xterm-256color";
|
||||||
|
};
|
||||||
|
keyboard.bindings =
|
||||||
|
[
|
||||||
|
{
|
||||||
|
key = "T";
|
||||||
|
mods = "Control|Shift";
|
||||||
|
action = "SpawnNewInstance";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "W";
|
||||||
|
mods = "Control|Shift";
|
||||||
|
action = "Quit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Plus";
|
||||||
|
mods = "Control";
|
||||||
|
action = "IncreaseFontSize";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Minus";
|
||||||
|
mods = "Control";
|
||||||
|
action = "DecreaseFontSize";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "Key0";
|
||||||
|
mods = "Control";
|
||||||
|
action = "ResetFontSize";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
key = "C";
|
||||||
|
mods = "Super";
|
||||||
|
action = "None";
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ lib.lists.optionals isDarwin [
|
||||||
|
{
|
||||||
|
key = "N";
|
||||||
|
mods = "Command";
|
||||||
|
action = "SpawnNewInstance";
|
||||||
|
}
|
||||||
|
# Allow zellij to receive the keys, to make copy/pasting work in darwin
|
||||||
|
{
|
||||||
|
key = "C";
|
||||||
|
mods = "Command";
|
||||||
|
action = "ReceiveChar";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
stylix.targets.alacritty.enable = true;
|
||||||
|
};
|
||||||
|
}
|
1
nix/modules/home/khs/applications/default.nix
Normal file
1
nix/modules/home/khs/applications/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ }
|
17
nix/modules/home/khs/default.nix
Normal file
17
nix/modules/home/khs/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.khscodes.khs;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.khscodes.khs = {
|
||||||
|
enable = lib.mkEnableOption "Enables the settings for KHS";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
snowfallorg.user.name = "khs";
|
||||||
|
home.sessionVariables = {
|
||||||
|
EMAIL = "kaare@kaareskovgaard.net";
|
||||||
|
};
|
||||||
|
home.stateVersion = "25.05";
|
||||||
|
};
|
||||||
|
}
|
120
nix/modules/home/khs/desktop/cosmic/default.nix
Normal file
120
nix/modules/home/khs/desktop/cosmic/default.nix
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cosmicLib = import "${inputs.cosmic-manager}/lib" { inherit lib; };
|
||||||
|
mkRON = cosmicLib.mkRON;
|
||||||
|
accent = mkRON "optional" {
|
||||||
|
red = mkRON "raw" "0.3882353";
|
||||||
|
green = mkRON "raw" "0.8156863";
|
||||||
|
blue = mkRON "raw" "0.8745098";
|
||||||
|
};
|
||||||
|
active_hint = 1;
|
||||||
|
corner_radii = {
|
||||||
|
radius_0 = mkRON "tuple" [
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
0.0
|
||||||
|
];
|
||||||
|
radius_xs = mkRON "tuple" [
|
||||||
|
2.0
|
||||||
|
2.0
|
||||||
|
2.0
|
||||||
|
2.0
|
||||||
|
];
|
||||||
|
radius_s = mkRON "tuple" [
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
];
|
||||||
|
radius_m = mkRON "tuple" [
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
];
|
||||||
|
radius_l = mkRON "tuple" [
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
];
|
||||||
|
radius_xl = mkRON "tuple" [
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
8.0
|
||||||
|
];
|
||||||
|
};
|
||||||
|
gaps = mkRON "tuple" [
|
||||||
|
0
|
||||||
|
1
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf (config.khscodes.desktop.enable && config.khscodes.khs.enable) {
|
||||||
|
wayland.desktopManager.cosmic = {
|
||||||
|
enable = true;
|
||||||
|
applets = {
|
||||||
|
# This is the "dock"
|
||||||
|
app-list = {
|
||||||
|
settings = {
|
||||||
|
enable_drag_source = false;
|
||||||
|
favorites = [
|
||||||
|
"com.system76.CosmicFiles"
|
||||||
|
"thunderbird"
|
||||||
|
"Google-chrome"
|
||||||
|
"Code"
|
||||||
|
"Alacritty"
|
||||||
|
"com.system76.CosmicSettings"
|
||||||
|
"Spotify"
|
||||||
|
"steam"
|
||||||
|
];
|
||||||
|
filter_top_levels = mkRON "optional" null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
appearance = {
|
||||||
|
toolkit = {
|
||||||
|
interface_density = mkRON "enum" "Standard";
|
||||||
|
monospace_font = {
|
||||||
|
family = config.stylix.fonts.monospace.name;
|
||||||
|
stretch = mkRON "enum" "Normal";
|
||||||
|
style = mkRON "enum" "Normal";
|
||||||
|
weight = mkRON "enum" "Normal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
theme = {
|
||||||
|
light = {
|
||||||
|
inherit
|
||||||
|
accent
|
||||||
|
active_hint
|
||||||
|
corner_radii
|
||||||
|
gaps
|
||||||
|
;
|
||||||
|
};
|
||||||
|
dark = {
|
||||||
|
inherit
|
||||||
|
accent
|
||||||
|
active_hint
|
||||||
|
corner_radii
|
||||||
|
gaps
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
compositor = {
|
||||||
|
active_hint = true;
|
||||||
|
autotile = true;
|
||||||
|
autotile_behavior = mkRON "enum" "PerWorkspace";
|
||||||
|
cursor_follows_focus = false;
|
||||||
|
focus_follows_cursor = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
nix/modules/home/khs/shell/bash/default.nix
Normal file
9
nix/modules/home/khs/shell/bash/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.khscodes.khs.enable {
|
||||||
|
programs.bash = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = config.khscodes.khs.shell.aliases;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
12
nix/modules/home/khs/shell/carapace/default.nix
Normal file
12
nix/modules/home/khs/shell/carapace/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf (config.khscodes.khs.enable && config.khscodes.desktop.enable) {
|
||||||
|
programs.carapace = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
nix/modules/home/khs/shell/default.nix
Normal file
18
nix/modules/home/khs/shell/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
options.khscodes.khs.shell = {
|
||||||
|
aliases = lib.mkOption {
|
||||||
|
type = lib.types.attrsOf lib.types.str;
|
||||||
|
description = "Shell aliases to be copied to different shells";
|
||||||
|
default = {
|
||||||
|
add = "git add";
|
||||||
|
commit = "git commit";
|
||||||
|
st = "git status";
|
||||||
|
push = "git push";
|
||||||
|
puff = "git puff";
|
||||||
|
pull = "git pull";
|
||||||
|
purr = "git purr";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
10
nix/modules/home/khs/shell/fish/default.nix
Normal file
10
nix/modules/home/khs/shell/fish/default.nix
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.khscodes.khs.enable {
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = config.khscodes.khs.shell.aliases;
|
||||||
|
shellInit = "set fish_greeting";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
nix/modules/home/khs/shell/nushell/default.nix
Normal file
23
nix/modules/home/khs/shell/nushell/default.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
aliases = config.khscodes.khs.shell.aliases;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.khscodes.khs.enable {
|
||||||
|
programs.nushell = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = aliases;
|
||||||
|
extraConfig = ''
|
||||||
|
$env.config = {
|
||||||
|
show_banner: false
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
environmentVariables = config.home.sessionVariables;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
158
nix/modules/home/khs/shell/oh-my-posh/default.nix
Normal file
158
nix/modules/home/khs/shell/oh-my-posh/default.nix
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.khscodes.khs.shell.oh-my-posh;
|
||||||
|
unicodeChar = code: builtins.fromJSON ''"\u${code}"'';
|
||||||
|
powerline_symbol = unicodeChar "e0b0";
|
||||||
|
rpowerline_symbol = unicodeChar "e0b2";
|
||||||
|
colors = config.lib.stylix.colors.withHashtag;
|
||||||
|
bright-yellow = config.lib.stylix.colors.yellow or config.lib.stylix.colors.base0a;
|
||||||
|
bright-yellow-hashtag = "#${bright-yellow}";
|
||||||
|
segment_style = {
|
||||||
|
style = "diamond";
|
||||||
|
leading_diamond = "";
|
||||||
|
trailing_diamond = powerline_symbol;
|
||||||
|
};
|
||||||
|
rsegment_style = {
|
||||||
|
style = "diamond";
|
||||||
|
leading_diamond = rpowerline_symbol;
|
||||||
|
trailing_diamond = "";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.khscodes.khs.shell.oh-my-posh = {
|
||||||
|
enable = lib.mkEnableOption "Enables oh my posh khs setup";
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.oh-my-posh = {
|
||||||
|
enable = true;
|
||||||
|
enableBashIntegration = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
enableNushellIntegration = true;
|
||||||
|
useTheme = null;
|
||||||
|
settings = {
|
||||||
|
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json";
|
||||||
|
"console_title_template" = "{{ .PWD }} @ {{ .HostName }}";
|
||||||
|
"blocks" = [
|
||||||
|
{
|
||||||
|
"alignment" = "left";
|
||||||
|
"type" = "prompt";
|
||||||
|
"segments" = [
|
||||||
|
{
|
||||||
|
type = "shell";
|
||||||
|
style = "diamond";
|
||||||
|
leading_diamond = "";
|
||||||
|
trailing_diamond = powerline_symbol;
|
||||||
|
"template" = "{{ .Name }}";
|
||||||
|
"background" = colors.base00;
|
||||||
|
"foreground" = colors.blue;
|
||||||
|
"background_templates" = [ "{{ if eq .Name \"🐠\" }}${colors.base00}{{ end }}" ];
|
||||||
|
properties = {
|
||||||
|
mapped_shell_names = {
|
||||||
|
"nushell" = "nu";
|
||||||
|
"fish" = "🐟";
|
||||||
|
"bash" = "$_";
|
||||||
|
"zsh" = "%_";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
(
|
||||||
|
{
|
||||||
|
"type" = "session";
|
||||||
|
"background" = colors.red;
|
||||||
|
"foreground" = colors.base07;
|
||||||
|
"template" = "{{ if .SSHSession }} {{ .HostName }} {{ end }}";
|
||||||
|
}
|
||||||
|
// segment_style
|
||||||
|
)
|
||||||
|
(
|
||||||
|
{
|
||||||
|
"type" = "path";
|
||||||
|
"background" = colors.blue;
|
||||||
|
"foreground" = colors.base00;
|
||||||
|
"template" = " {{ .Path }} ";
|
||||||
|
"properties" = {
|
||||||
|
"style" = "full";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// segment_style
|
||||||
|
)
|
||||||
|
(
|
||||||
|
{
|
||||||
|
"type" = "git";
|
||||||
|
"background" = colors.green;
|
||||||
|
"foreground" = colors.base00;
|
||||||
|
"background_templates" = [
|
||||||
|
"{{ if or (.Working.Changed) (.Staging.Changed) }}${colors.yellow}{{ end }}"
|
||||||
|
];
|
||||||
|
"template" =
|
||||||
|
"{{ if .Detached }}➦ {{ trunc 7 .Commit.Sha }}{{ else }}{{ .UpstreamIcon }} {{ .Ref }}{{ end }}{{ if .Merge }}|merge{{ end }}{{ if .Rebase }}|rebase{{ end }}{{ if .CherryPick }}|cherrypick{{ end }}{{ if .Ahead}}↑{{ .Ahead }}{{ end }}{{ if .Behind }}↓{{ .Behind }}{{ end }}{{ if .Working.Changed}}●{{ end }}{{ if .Staging.Changed }}✚{{ end }}{{ if .StashCount }} {{ end }} ";
|
||||||
|
"properties" = {
|
||||||
|
"fetch_status" = true;
|
||||||
|
"untracked_modes" = {
|
||||||
|
"/Users/user/Projects/oh-my-posh/" = "no";
|
||||||
|
};
|
||||||
|
fetch_upstream_icon = true;
|
||||||
|
upstream = {
|
||||||
|
git_icon = "";
|
||||||
|
};
|
||||||
|
"source" = "cli";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// segment_style
|
||||||
|
)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
alignment = "right";
|
||||||
|
type = "rprompt";
|
||||||
|
"segments" = [
|
||||||
|
(
|
||||||
|
{
|
||||||
|
type = "status";
|
||||||
|
background = colors.base01;
|
||||||
|
background_templates = [ "{{ if .Error }}${colors.red}{{ end }}" ];
|
||||||
|
foreground = colors.green;
|
||||||
|
foreground_templates = [ "{{ if .Error}}${bright-yellow-hashtag}{{ end }}" ];
|
||||||
|
template = " {{ if .Error }}✘ {{ .Code }}{{ else }}✔{{ end }} ";
|
||||||
|
properties = {
|
||||||
|
always_enabled = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// rsegment_style
|
||||||
|
)
|
||||||
|
(
|
||||||
|
{
|
||||||
|
type = "executiontime";
|
||||||
|
foreground = colors.base00;
|
||||||
|
background = colors.yellow;
|
||||||
|
template = " ⌚{{ .FormattedMs }} ";
|
||||||
|
properties = {
|
||||||
|
always_enabled = false;
|
||||||
|
threshold = 3000;
|
||||||
|
style = "round";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// rsegment_style
|
||||||
|
)
|
||||||
|
# Rendering this screws up spacing of the beginning of the prompt
|
||||||
|
(
|
||||||
|
{
|
||||||
|
type = "nix-shell";
|
||||||
|
background = colors.blue;
|
||||||
|
foreground = colors.base00;
|
||||||
|
template = " {{ .Type }} ";
|
||||||
|
}
|
||||||
|
// rsegment_style
|
||||||
|
)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
"terminal_background" = colors.base00;
|
||||||
|
"disable_notice" = true;
|
||||||
|
"final_space" = true;
|
||||||
|
"version" = 2;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
505
nix/modules/home/khs/shell/zellij/default.nix
Normal file
505
nix/modules/home/khs/shell/zellij/default.nix
Normal file
|
@ -0,0 +1,505 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
isDarwin = lib.strings.hasSuffix "-darwin" system;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf (config.khscodes.khs.enable && config.khscodes.desktop.enable) {
|
||||||
|
# In built styles look off to me. And when alacritty is themed,
|
||||||
|
# this appears to not be needed.
|
||||||
|
stylix.targets.zellij.enable = false;
|
||||||
|
programs.zellij = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default_shell = lib.getExe pkgs.fish;
|
||||||
|
copy_on_select = false;
|
||||||
|
mouse_mode = true;
|
||||||
|
show_startup_tips = false;
|
||||||
|
scroll_buffer_size = 100000;
|
||||||
|
support_kitty_keyboard_protocol = true;
|
||||||
|
"keybinds clear-defaults=true" = {
|
||||||
|
normal = lib.attrsets.optionalAttrs isDarwin {
|
||||||
|
"bind \"Super c\"" = {
|
||||||
|
Copy = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
locked = {
|
||||||
|
"bind \"Ctrl g\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
resize = {
|
||||||
|
"bind \"Ctrl n\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"h\" \"Left\"" = {
|
||||||
|
Resize = "Increase Left";
|
||||||
|
};
|
||||||
|
"bind \"j\" \"Down\"" = {
|
||||||
|
Resize = "Increase Down";
|
||||||
|
};
|
||||||
|
"bind \"k\" \"Up\"" = {
|
||||||
|
Resize = "Increase Up";
|
||||||
|
};
|
||||||
|
"bind \"l\" \"Right\"" = {
|
||||||
|
Resize = "Increase Right";
|
||||||
|
};
|
||||||
|
"bind \"H\"" = {
|
||||||
|
Resize = "Decrease Left";
|
||||||
|
};
|
||||||
|
"bind \"J\"" = {
|
||||||
|
Resize = "Decrease Down";
|
||||||
|
};
|
||||||
|
"bind \"K\"" = {
|
||||||
|
Resize = "Decrease Up";
|
||||||
|
};
|
||||||
|
"bind \"L\"" = {
|
||||||
|
Resize = "Decrease Right";
|
||||||
|
};
|
||||||
|
"bind \"=\" \"+\"" = {
|
||||||
|
Resize = "Increase";
|
||||||
|
};
|
||||||
|
"bind \"-\"" = {
|
||||||
|
Resize = "Decrease";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pane = {
|
||||||
|
"bind \"Ctrl\ p\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"h\" \"Left\"" = {
|
||||||
|
MoveFocus = "Left";
|
||||||
|
};
|
||||||
|
"bind \"l\" \"Right\"" = {
|
||||||
|
MoveFocus = "Right";
|
||||||
|
};
|
||||||
|
"bind \"j\" \"Down\"" = {
|
||||||
|
MoveFocus = "Down";
|
||||||
|
};
|
||||||
|
"bind \"k\" \"Up\"" = {
|
||||||
|
MoveFocus = "Up";
|
||||||
|
};
|
||||||
|
"bind \"p\"" = {
|
||||||
|
SwitchFocus = [ ];
|
||||||
|
};
|
||||||
|
"bind \"n\"" = {
|
||||||
|
NewPane = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"d\"" = {
|
||||||
|
NewPane = "Down";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"r\"" = {
|
||||||
|
NewPane = "Right";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"x\"" = {
|
||||||
|
CloseFocus = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"f\"" = {
|
||||||
|
ToggleFocusFullscreen = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"z\"" = {
|
||||||
|
TogglePaneFrames = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"w\"" = {
|
||||||
|
ToggleFloatingPanes = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"e\"" = {
|
||||||
|
TogglePaneEmbedOrFloating = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"c\"" = {
|
||||||
|
SwitchToMode = "RenamePane";
|
||||||
|
PaneNameInput = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
move = {
|
||||||
|
"bind \"Ctrl h\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"n\" \"Tab\"" = {
|
||||||
|
MovePane = [ ];
|
||||||
|
};
|
||||||
|
"bind \"p\"" = {
|
||||||
|
MovePaneBackwards = [ ];
|
||||||
|
};
|
||||||
|
"bind \"h\" \"Left\"" = {
|
||||||
|
MovePane = "Left";
|
||||||
|
};
|
||||||
|
"bind \"j\" \"Down\"" = {
|
||||||
|
MovePane = "Down";
|
||||||
|
};
|
||||||
|
"bind \"k\" \"Up\"" = {
|
||||||
|
MovePane = "Up";
|
||||||
|
};
|
||||||
|
"bind \"l\" \"Right\"" = {
|
||||||
|
MovePane = "Right";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tab = {
|
||||||
|
"bind \"Alt t\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"r\"" = {
|
||||||
|
SwitchToMode = "RenameTab";
|
||||||
|
TabNameInput = 0;
|
||||||
|
};
|
||||||
|
"bind \"h\" \"Left\" \"Up\" \"k\"" = {
|
||||||
|
GoToPreviousTab = [ ];
|
||||||
|
};
|
||||||
|
"bind \"l\" \"Right\" \"Down\" \"j\"" = {
|
||||||
|
GoToNextTab = [ ];
|
||||||
|
};
|
||||||
|
"bind \"n\"" = {
|
||||||
|
NewTab = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"x\"" = {
|
||||||
|
CloseTab = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"s\"" = {
|
||||||
|
ToggleActiveSyncTab = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"1\"" = {
|
||||||
|
GoToTab = 1;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"2\"" = {
|
||||||
|
GoToTab = 2;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"3\"" = {
|
||||||
|
GoToTab = 3;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"4\"" = {
|
||||||
|
GoToTab = 4;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"5\"" = {
|
||||||
|
GoToTab = 5;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"6\"" = {
|
||||||
|
GoToTab = 6;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"7\"" = {
|
||||||
|
GoToTab = 7;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"8\"" = {
|
||||||
|
GoToTab = 8;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"9\"" = {
|
||||||
|
GoToTab = 9;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Tab\"" = {
|
||||||
|
ToggleTab = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
scroll = {
|
||||||
|
"bind \"Ctrl s\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"e\"" = {
|
||||||
|
EditScrollback = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"s\"" = {
|
||||||
|
SwitchToMode = "EnterSearch";
|
||||||
|
SearchInput = 0;
|
||||||
|
};
|
||||||
|
"bind \"Ctrl c\"" = {
|
||||||
|
ScrollToBottom = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"j\" \"Down\"" = {
|
||||||
|
ScrollDown = [ ];
|
||||||
|
};
|
||||||
|
"bind \"k\" \"Up\"" = {
|
||||||
|
ScrollUp = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Ctrl f\" \"PageDown\" \"Right\" \"l\"" = {
|
||||||
|
PageScrollDown = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Ctrl b\" \"PageUp\" \"Left\" \"h\"" = {
|
||||||
|
PageScrollUp = [ ];
|
||||||
|
};
|
||||||
|
"bind \"d\"" = {
|
||||||
|
HalfPageScrollDown = [ ];
|
||||||
|
};
|
||||||
|
"bind \"u\"" = {
|
||||||
|
HalfPageScrollUp = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
search = {
|
||||||
|
"bind \"Ctrl s\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Ctrl c\"" = {
|
||||||
|
ScrollToBottom = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"j\" \"Down\"" = {
|
||||||
|
ScrollDown = [ ];
|
||||||
|
};
|
||||||
|
"bind \"k\" \"Up\"" = {
|
||||||
|
ScrollUp = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Ctrl f\" \"PageDown\" \"Right\" \"l\"" = {
|
||||||
|
PageScrollDown = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Ctrl b\" \"PageUp\" \"Left\" \"h\"" = {
|
||||||
|
PageScrollUp = [ ];
|
||||||
|
};
|
||||||
|
"bind \"d\"" = {
|
||||||
|
HalfPageScrollDown = [ ];
|
||||||
|
};
|
||||||
|
"bind \"u\"" = {
|
||||||
|
HalfPageScrollUp = [ ];
|
||||||
|
};
|
||||||
|
"bind \"n\"" = {
|
||||||
|
Search = "down";
|
||||||
|
};
|
||||||
|
"bind \"p\"" = {
|
||||||
|
Search = "up";
|
||||||
|
};
|
||||||
|
"bind \"c\"" = {
|
||||||
|
SearchToggleOption = "CaseSensitivity";
|
||||||
|
};
|
||||||
|
"bind \"w\"" = {
|
||||||
|
SearchToggleOption = "Wrap";
|
||||||
|
};
|
||||||
|
"bind \"o\"" = {
|
||||||
|
SearchToggleOption = "WholeWord";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
entersearch = {
|
||||||
|
"bind \"Ctrl c\" \"Esc\"" = {
|
||||||
|
SwitchToMode = "Scroll";
|
||||||
|
};
|
||||||
|
"bind \"Enter\"" = {
|
||||||
|
SwitchToMode = "Search";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
renametab = {
|
||||||
|
"bind \"Ctrl c\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Esc\"" = {
|
||||||
|
UndoRenameTab = [ ];
|
||||||
|
SwitchToMode = "Tab";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
renamepane = {
|
||||||
|
"bind \"Ctrl c\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Esc\"" = {
|
||||||
|
UndoRenamePane = [ ];
|
||||||
|
SwitchToMode = "Pane";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
session = {
|
||||||
|
"unbind \"Ctrl o\"" = [ ];
|
||||||
|
"bind \"Ctrl q\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Ctrl s\"" = {
|
||||||
|
SwitchToMode = "Scroll";
|
||||||
|
};
|
||||||
|
"bind \"d\"" = {
|
||||||
|
Detach = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
tmux = {
|
||||||
|
"bind \"[\"" = {
|
||||||
|
SwitchToMode = "Scroll";
|
||||||
|
};
|
||||||
|
"bind \"Ctrl b\"" = {
|
||||||
|
Write = 2;
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"\\\"\"" = {
|
||||||
|
NewPane = "Down";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"%\"" = {
|
||||||
|
NewPane = "Right";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"z\"" = {
|
||||||
|
ToggleFocusFullscreen = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"c\"" = {
|
||||||
|
NewTab = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \",\"" = {
|
||||||
|
SwitchToMode = "RenameTab";
|
||||||
|
};
|
||||||
|
"bind \"p\"" = {
|
||||||
|
GoToPreviousTab = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"n\"" = {
|
||||||
|
GoToNextTab = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Left\"" = {
|
||||||
|
MoveFocus = "Left";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Right\"" = {
|
||||||
|
MoveFocus = "Right";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Down\"" = {
|
||||||
|
MoveFocus = "Down";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"Up\"" = {
|
||||||
|
MoveFocus = "Up";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"h\"" = {
|
||||||
|
MoveFocus = "Left";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"l\"" = {
|
||||||
|
MoveFocus = "Right";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"j\"" = {
|
||||||
|
MoveFocus = "Down";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"k\"" = {
|
||||||
|
MoveFocus = "Up";
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
"bind \"o\"" = {
|
||||||
|
FocusNextPane = [ ];
|
||||||
|
};
|
||||||
|
"bind \"d\"" = {
|
||||||
|
Detach = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Space\"" = {
|
||||||
|
NextSwapLayout = [ ];
|
||||||
|
};
|
||||||
|
"bind \"x\"" = {
|
||||||
|
CloseFocus = [ ];
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"locked\"" = {
|
||||||
|
"bind \"Ctrl g\"" = {
|
||||||
|
SwitchToMode = "Locked";
|
||||||
|
};
|
||||||
|
"bind \"Alt n\"" = {
|
||||||
|
NewPane = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Alt h\" \"Alt Left\"" = {
|
||||||
|
MoveFocusOrTab = "Left";
|
||||||
|
};
|
||||||
|
"bind \"Alt l\" \"Alt Right\"" = {
|
||||||
|
MoveFocusOrTab = "Right";
|
||||||
|
};
|
||||||
|
"bind \"Alt j\" \"Alt Down\"" = {
|
||||||
|
MoveFocus = "Down";
|
||||||
|
};
|
||||||
|
"bind \"Alt k\" \"Alt Up\"" = {
|
||||||
|
MoveFocus = "Up";
|
||||||
|
};
|
||||||
|
"bind \"Alt =\" \"Alt +\"" = {
|
||||||
|
Resize = "Increase";
|
||||||
|
};
|
||||||
|
"bind \"Alt -\"" = {
|
||||||
|
Resize = "Decrease";
|
||||||
|
};
|
||||||
|
"bind \"Alt [\"" = {
|
||||||
|
PreviousSwapLayout = [ ];
|
||||||
|
};
|
||||||
|
"bind \"Alt ]\"" = {
|
||||||
|
NextSwapLayout = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"normal\" \"locked\"" = {
|
||||||
|
"bind \"Enter\" \"Esc\"" = {
|
||||||
|
SwitchToMode = "Normal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"pane\" \"locked\"" = {
|
||||||
|
"bind \"Ctrl p\"" = {
|
||||||
|
SwitchToMode = "Pane";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"resize\" \"locked\"" = {
|
||||||
|
"bind \"Ctrl n\"" = {
|
||||||
|
SwitchToMode = "Resize";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"scroll\" \"locked\"" = {
|
||||||
|
"bind \"Ctrl s\"" = {
|
||||||
|
SwitchToMode = "Scroll";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"session\" \"locked\"" = {
|
||||||
|
unbind = "Ctrl o";
|
||||||
|
"bind \"Ctrl q\"" = {
|
||||||
|
SwitchToMode = "Session";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"tab\" \"locked\"" = {
|
||||||
|
"bind \"Alt t\"" = {
|
||||||
|
SwitchToMode = "Tab";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"move\" \"locked\"" = {
|
||||||
|
"bind \"Ctrl h\"" = {
|
||||||
|
SwitchToMode = "Move";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"shared_except \"tmux\" \"locked\"" = {
|
||||||
|
"bind \"Ctrl b\"" = {
|
||||||
|
SwitchToMode = "Tmux";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
plugins = {
|
||||||
|
tab-bar = {
|
||||||
|
path = "tab-bar";
|
||||||
|
};
|
||||||
|
status-bar = {
|
||||||
|
path = "status-bar";
|
||||||
|
};
|
||||||
|
strider = {
|
||||||
|
path = "strider";
|
||||||
|
};
|
||||||
|
compact-bar = {
|
||||||
|
path = "compact-bar";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
simplified-ui = false;
|
||||||
|
pane_frames = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
9
nix/modules/home/khs/shell/zsh/default.nix
Normal file
9
nix/modules/home/khs/shell/zsh/default.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.khscodes.khs.enable {
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = config.khscodes.khs.shell.aliases;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,7 +6,7 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.khscodes.infrastructure.hetzner-instance;
|
cfg = config.khscodes.infrastructure.hetzner-instance;
|
||||||
fqdn = config.khscodes.fqdn;
|
fqdn = config.khscodes.networking.fqdn;
|
||||||
firewallTcpRules = lib.lists.map (p: {
|
firewallTcpRules = lib.lists.map (p: {
|
||||||
direction = "in";
|
direction = "in";
|
||||||
protocol = "tcp";
|
protocol = "tcp";
|
||||||
|
@ -205,8 +205,8 @@ in
|
||||||
{
|
{
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = config.khscodes.fqdn != null;
|
assertion = config.khscodes.networking.fqdn != null;
|
||||||
message = "Must set config.khscodes.fqdn when using opentofu";
|
message = "Must set config.khscodes.networking.fqdn when using opentofu";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.khscodes.infrastructure.khs-openstack-instance;
|
cfg = config.khscodes.infrastructure.khs-openstack-instance;
|
||||||
fqdn = config.khscodes.fqdn;
|
fqdn = config.khscodes.networking.fqdn;
|
||||||
firewallTcpRules = lib.lists.flatten (
|
firewallTcpRules = lib.lists.flatten (
|
||||||
lib.lists.map (p: [
|
lib.lists.map (p: [
|
||||||
{
|
{
|
||||||
|
@ -232,8 +232,8 @@ in
|
||||||
{
|
{
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = config.khscodes.fqdn != null;
|
assertion = config.khscodes.networking.fqdn != null;
|
||||||
message = "Must set config.khscodes.fqdn when using opentofu";
|
message = "Must set config.khscodes.networking.fqdn when using opentofu";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
1
nix/modules/nixos/networking/default.nix
Normal file
1
nix/modules/nixos/networking/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ ... }: { }
|
|
@ -4,10 +4,10 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.khscodes.fqdn;
|
cfg = config.khscodes.networking.fqdn;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.khscodes.fqdn = lib.mkOption {
|
options.khscodes.networking.fqdn = lib.mkOption {
|
||||||
type = lib.types.nullOr lib.types.str;
|
type = lib.types.nullOr lib.types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Sets the FQDN of the machine. This is a prerequisite for many modules to be used";
|
description = "Sets the FQDN of the machine. This is a prerequisite for many modules to be used";
|
1
nix/modules/nixos/security/default.nix
Normal file
1
nix/modules/nixos/security/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ ... }: { }
|
31
nix/modules/nixos/security/yubikey/default.nix
Normal file
31
nix/modules/nixos/security/yubikey/default.nix
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.khscodes.security.yubikey;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.khscodes.security.yubikey = {
|
||||||
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
services.pcscd.enable = true;
|
||||||
|
services.udev.packages = [ pkgs.yubikey-personalization ];
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.yubikey-manager
|
||||||
|
pkgs.yubico-piv-tool
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
1
nix/modules/nixos/users/default.nix
Normal file
1
nix/modules/nixos/users/default.nix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
{ ... }: { }
|
21
nix/modules/nixos/users/khs/default.nix
Normal file
21
nix/modules/nixos/users/khs/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.khscodes.users.khs;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.khscodes.users.khs = {
|
||||||
|
enable = lib.mkEnableOption "Enables settings for the khs user. This should be used in conjunction with homes";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
snowfallorg.users.khs.admin = true;
|
||||||
|
users.users.khs = {
|
||||||
|
# TODO: What should I do wrt. ensuring the passwords are consistent?
|
||||||
|
# Maybe set them through OpenBAO and some service?
|
||||||
|
initialPassword = "changeme";
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqY0FHnWFKfLG2yfgr4qka5sR9CK+EMAhzlHUkaQyWHTKD+G0/vC/fNPyL1VV3Dxc/ajxGuPzVE+mBMoyxazL3EtuCDOVvHJ5CR+MUSEckg/DDwcGHqy6rC8BvVVpTAVL04ByQdwFnpE1qNSBaQLkxaFVdtriGKkgMkc7+UNeYX/bv7yn+APqfP1a3xr6wdkSSdO8x4N2jsSygOIMx10hLyCV4Ueu7Kp8Ww4rGY8j5o7lKJhbgfItBfSOuQHdppHVF/GKYRhdnK6Y2fZVYbhq4KipUtclbZ6O/VYd8/sOO98+LMm7cOX+K35PQjUpYgcoNy5+Sw3CNS/NHn4JvOtTaUEYP7fK6c9LhMULOO3T7Cm6TMdiFjUKHkyG+s2Mu/LXJJoilw571zwuh6chkeitW8+Ht7k0aPV96kNEvTdoXwLhBifVEaChlAsLAzSUjUq+YYCiXVk0VIXCZQWKj8LoVNTmaqDksWwbcT64fw/FpVC0N18WHbKcFUEIW/O4spJMa30CQwf9FeqpoWoaF1oRClCSDPvX0AauCu0JcmRinz1/JmlXljnXWbSfm20/V+WyvktlI0wTD0cdpNuSasT9vS77YfJ8nutcWWZKSkCj4R4uHeCNpDTX5YXzapy7FxpM9ANCXLIvoGX7Yafba2Po+er7SSsUIY1AsnBBr8ZoDVw=="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,10 +1 @@
|
||||||
# TODO: Why is this needed just for this directory?
|
{ ... }: { }
|
||||||
# In the other directories this will create the modules twice.
|
|
||||||
# Perhaps because there's only a single sub directory here?
|
|
||||||
args@{ lib, ... }:
|
|
||||||
let
|
|
||||||
modules = lib.khscodes.dirsInPath ./.;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = lib.lists.map (d: import d args) modules;
|
|
||||||
}
|
|
||||||
|
|
|
@ -6,11 +6,41 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.khscodes.virtualisation.qemu-guest;
|
cfg = config.khscodes.virtualisation.qemu-guest;
|
||||||
|
rng = "-device virtio-rng-pci,rng=rng0 -object rng-random,id=rng0,filename=/dev/urandom";
|
||||||
|
spice = [
|
||||||
|
"-spice disable-ticketing=on,gl=on,unix=on,addr=/tmp/spice.sock"
|
||||||
|
"-device virtio-serial-pci"
|
||||||
|
"-chardev socket,id=agent0,path=vm.sock,server=on,wait=off"
|
||||||
|
"-device virtserialport,chardev=agent0,name=org.qemu.guest_agent.0"
|
||||||
|
"-chardev spicevmc,id=vdagent0,name=vdagent"
|
||||||
|
"-device virtserialport,chardev=vdagent0,name=com.redhat.spice.0"
|
||||||
|
"-chardev spiceport,id=webdav0,name=org.spice-space.webdav.0"
|
||||||
|
"-device virtserialport,chardev=webdav0,name=org.spice-space.webdav.0"
|
||||||
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.khscodes.virtualisation.qemu-guest = {
|
options.khscodes.virtualisation.qemu-guest = {
|
||||||
enable = lib.mkEnableOption "Configures machine with NixOS profile for qemu guest";
|
enable = lib.mkEnableOption "Configures machine with NixOS profile for qemu guest";
|
||||||
|
enableWhenVmTarget = lib.mkEnableOption "Enables some enhancement settings when building as a vm";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable (import "${modulesPath}/profiles/qemu-guest.nix" { });
|
imports = [ "${modulesPath}/virtualisation/qemu-vm.nix" ];
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enableWhenVmTarget {
|
||||||
|
virtualisation = {
|
||||||
|
vmVariant = {
|
||||||
|
services.qemuGuest.enable = true;
|
||||||
|
services.spice-vdagentd.enable = true;
|
||||||
|
khscodes.virtualisation.qemu-guest.enable = true;
|
||||||
|
};
|
||||||
|
memorySize = 1024 * 8;
|
||||||
|
qemu = {
|
||||||
|
options = [
|
||||||
|
"-smp 8"
|
||||||
|
"-vga none -device virtio-gpu-gl,hostmem=2G,blob=true,venus=true"
|
||||||
|
rng
|
||||||
|
] ++ spice;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
12
nix/modules/nixos/virtualisation/qemu-guest/profile.nix
Normal file
12
nix/modules/nixos/virtualisation/qemu-guest/profile.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.khscodes.virtualisation.qemu-guest;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = lib.mkIf cfg.enable (import "${modulesPath}/profiles/qemu-guest.nix" { });
|
||||||
|
}
|
24
nix/packages/start-vm/default.nix
Normal file
24
nix/packages/start-vm/default.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
pkgs.writeShellApplication {
|
||||||
|
name = "start-vm";
|
||||||
|
runtimeInputs = [
|
||||||
|
pkgs.spice-gtk
|
||||||
|
pkgs.uutils-findutils
|
||||||
|
];
|
||||||
|
text = ''
|
||||||
|
host="''${1:-}"
|
||||||
|
clean="''${2:-no}"
|
||||||
|
if [[ "$clean" == "clean" ]]; then
|
||||||
|
find . -type f -name '*.qcow2' -delete
|
||||||
|
fi
|
||||||
|
run_vm="$(nix build --no-link --print-out-paths '${inputs.self}#nixosConfigurations."'"$host"'".config.system.build.vm' --show-trace)"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2211
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
$run_vm/bin/* &
|
||||||
|
pid=$!
|
||||||
|
trap 'kill $pid' EXIT
|
||||||
|
sleep 2
|
||||||
|
spicy --title "$host" --uri=spice+unix:///tmp/spice.sock
|
||||||
|
'';
|
||||||
|
}
|
4
nix/profiles/home/khs-base.nix
Normal file
4
nix/profiles/home/khs-base.nix
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
khscodes.khs.enable = true;
|
||||||
|
khscodes.khs.shell.oh-my-posh.enable = true;
|
||||||
|
}
|
12
nix/profiles/home/khs-desktop.nix
Normal file
12
nix/profiles/home/khs-desktop.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./khs-base.nix ];
|
||||||
|
home.packages = [
|
||||||
|
pkgs.bitwarden-cli
|
||||||
|
pkgs.nerd-fonts.inconsolata
|
||||||
|
pkgs.google-chrome
|
||||||
|
];
|
||||||
|
khscodes = {
|
||||||
|
desktop.enable = true;
|
||||||
|
};
|
||||||
|
}
|
5
nix/profiles/home/khs-linux-desktop.nix
Normal file
5
nix/profiles/home/khs-linux-desktop.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./khs-desktop.nix ];
|
||||||
|
home.packages = [ pkgs.spotify ];
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ ./nix-base.nix ];
|
||||||
config.khscodes = {
|
config.khscodes = {
|
||||||
hetzner.enable = true;
|
hetzner.enable = true;
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
18
nix/profiles/nixos/khs-base.nix
Normal file
18
nix/profiles/nixos/khs-base.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./nix-base.nix ];
|
||||||
|
snowfallorg.users.khs.admin = true;
|
||||||
|
users.users.khs = {
|
||||||
|
# TODO: Figure out how to provision password changes to servers from VAULT
|
||||||
|
initialPassword = "changeme";
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqY0FHnWFKfLG2yfgr4qka5sR9CK+EMAhzlHUkaQyWHTKD+G0/vC/fNPyL1VV3Dxc/ajxGuPzVE+mBMoyxazL3EtuCDOVvHJ5CR+MUSEckg/DDwcGHqy6rC8BvVVpTAVL04ByQdwFnpE1qNSBaQLkxaFVdtriGKkgMkc7+UNeYX/bv7yn+APqfP1a3xr6wdkSSdO8x4N2jsSygOIMx10hLyCV4Ueu7Kp8Ww4rGY8j5o7lKJhbgfItBfSOuQHdppHVF/GKYRhdnK6Y2fZVYbhq4KipUtclbZ6O/VYd8/sOO98+LMm7cOX+K35PQjUpYgcoNy5+Sw3CNS/NHn4JvOtTaUEYP7fK6c9LhMULOO3T7Cm6TMdiFjUKHkyG+s2Mu/LXJJoilw571zwuh6chkeitW8+Ht7k0aPV96kNEvTdoXwLhBifVEaChlAsLAzSUjUq+YYCiXVk0VIXCZQWKj8LoVNTmaqDksWwbcT64fw/FpVC0N18WHbKcFUEIW/O4spJMa30CQwf9FeqpoWoaF1oRClCSDPvX0AauCu0JcmRinz1/JmlXljnXWbSfm20/V+WyvktlI0wTD0cdpNuSasT9vS77YfJ8nutcWWZKSkCj4R4uHeCNpDTX5YXzapy7FxpM9ANCXLIvoGX7Yafba2Po+er7SSsUIY1AsnBBr8ZoDVw=="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
systemPackages = [ pkgs.openbao ];
|
||||||
|
variables = {
|
||||||
|
BAO_ADDR = "https://vault.kaareskovgaard.net";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
38
nix/profiles/nixos/khs-desktop.nix
Normal file
38
nix/profiles/nixos/khs-desktop.nix
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [ ./khs-base.nix ];
|
||||||
|
khscodes.virtualisation.qemu-guest.enableWhenVmTarget = true;
|
||||||
|
|
||||||
|
services.desktopManager.cosmic.enable = true;
|
||||||
|
services.displayManager.cosmic-greeter.enable = true;
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
autoEnable = false;
|
||||||
|
image = "${inputs.self}/assets/khs-desktop-wallpaper.jpg";
|
||||||
|
base16Scheme = lib.mkDefault "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml";
|
||||||
|
targets.console.enable = true;
|
||||||
|
fonts = {
|
||||||
|
monospace = {
|
||||||
|
package = pkgs.nerd-fonts.inconsolata;
|
||||||
|
name = "Inconsolata Nerd Font";
|
||||||
|
};
|
||||||
|
sizes = {
|
||||||
|
terminal = 14;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
console = {
|
||||||
|
enable = true;
|
||||||
|
font = "${pkgs.powerline-fonts}/share/consolefonts/ter-powerline-v24b.psf.gz";
|
||||||
|
packages = [
|
||||||
|
pkgs.terminus_font
|
||||||
|
pkgs.powerline-fonts
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
|
imports = [ ./nix-base.nix ];
|
||||||
config.khscodes = {
|
config.khscodes = {
|
||||||
openstack.enable = true;
|
openstack.enable = true;
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
7
nix/profiles/nixos/khs-server.nix
Normal file
7
nix/profiles/nixos/khs-server.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [ ./nix-base.nix ];
|
||||||
|
config.khscodes = {
|
||||||
|
services.openssh.enable = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -10,6 +10,6 @@
|
||||||
server_type = "cax11";
|
server_type = "cax11";
|
||||||
secretsSource = "bitwarden";
|
secretsSource = "bitwarden";
|
||||||
};
|
};
|
||||||
khscodes.fqdn = "khs.codes";
|
khscodes.networking.fqdn = "khs.codes";
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [ "${inputs.self}/nix/profiles/nixos/khs-desktop.nix" ];
|
||||||
|
khscodes.networking.fqdn = "desktop.kaareskovgaard.net";
|
||||||
|
system.stateVersion = "25.05";
|
||||||
|
}
|
|
@ -11,11 +11,11 @@
|
||||||
};
|
};
|
||||||
snowfallorg.users.khs.admin = true;
|
snowfallorg.users.khs.admin = true;
|
||||||
users.users.khs = {
|
users.users.khs = {
|
||||||
initialPassword = "test";
|
initialPassword = "changeMe";
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqY0FHnWFKfLG2yfgr4qka5sR9CK+EMAhzlHUkaQyWHTKD+G0/vC/fNPyL1VV3Dxc/ajxGuPzVE+mBMoyxazL3EtuCDOVvHJ5CR+MUSEckg/DDwcGHqy6rC8BvVVpTAVL04ByQdwFnpE1qNSBaQLkxaFVdtriGKkgMkc7+UNeYX/bv7yn+APqfP1a3xr6wdkSSdO8x4N2jsSygOIMx10hLyCV4Ueu7Kp8Ww4rGY8j5o7lKJhbgfItBfSOuQHdppHVF/GKYRhdnK6Y2fZVYbhq4KipUtclbZ6O/VYd8/sOO98+LMm7cOX+K35PQjUpYgcoNy5+Sw3CNS/NHn4JvOtTaUEYP7fK6c9LhMULOO3T7Cm6TMdiFjUKHkyG+s2Mu/LXJJoilw571zwuh6chkeitW8+Ht7k0aPV96kNEvTdoXwLhBifVEaChlAsLAzSUjUq+YYCiXVk0VIXCZQWKj8LoVNTmaqDksWwbcT64fw/FpVC0N18WHbKcFUEIW/O4spJMa30CQwf9FeqpoWoaF1oRClCSDPvX0AauCu0JcmRinz1/JmlXljnXWbSfm20/V+WyvktlI0wTD0cdpNuSasT9vS77YfJ8nutcWWZKSkCj4R4uHeCNpDTX5YXzapy7FxpM9ANCXLIvoGX7Yafba2Po+er7SSsUIY1AsnBBr8ZoDVw=="
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqY0FHnWFKfLG2yfgr4qka5sR9CK+EMAhzlHUkaQyWHTKD+G0/vC/fNPyL1VV3Dxc/ajxGuPzVE+mBMoyxazL3EtuCDOVvHJ5CR+MUSEckg/DDwcGHqy6rC8BvVVpTAVL04ByQdwFnpE1qNSBaQLkxaFVdtriGKkgMkc7+UNeYX/bv7yn+APqfP1a3xr6wdkSSdO8x4N2jsSygOIMx10hLyCV4Ueu7Kp8Ww4rGY8j5o7lKJhbgfItBfSOuQHdppHVF/GKYRhdnK6Y2fZVYbhq4KipUtclbZ6O/VYd8/sOO98+LMm7cOX+K35PQjUpYgcoNy5+Sw3CNS/NHn4JvOtTaUEYP7fK6c9LhMULOO3T7Cm6TMdiFjUKHkyG+s2Mu/LXJJoilw571zwuh6chkeitW8+Ht7k0aPV96kNEvTdoXwLhBifVEaChlAsLAzSUjUq+YYCiXVk0VIXCZQWKj8LoVNTmaqDksWwbcT64fw/FpVC0N18WHbKcFUEIW/O4spJMa30CQwf9FeqpoWoaF1oRClCSDPvX0AauCu0JcmRinz1/JmlXljnXWbSfm20/V+WyvktlI0wTD0cdpNuSasT9vS77YfJ8nutcWWZKSkCj4R4uHeCNpDTX5YXzapy7FxpM9ANCXLIvoGX7Yafba2Po+er7SSsUIY1AsnBBr8ZoDVw=="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
khscodes.fqdn = "test.kaareskovgaard.net";
|
khscodes.networking.fqdn = "test.kaareskovgaard.net";
|
||||||
system.stateVersion = "25.05";
|
system.stateVersion = "25.05";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue