Compare commits

..

16 Commits

Author SHA1 Message Date
2e34953d3c docs(README): nicer Readme header 2026-01-25 16:19:42 +01:00
76d1a33a78 feat: prefer XDG directories 2026-01-25 05:03:53 +01:00
f5fa1683b4 feat(emacs): improve configuration 2026-01-25 05:03:30 +01:00
36d5c90017 fix(gampo): early video drivers load 2026-01-25 05:03:13 +01:00
5c9c3d199b fix(hosts): temporarily fix hosts file issue 2026-01-25 05:03:13 +01:00
be51aa7cc5 feat(theme): better theming 2026-01-25 05:03:09 +01:00
f6fe7945bb chore(flakes): update flakes lockfile 2026-01-24 20:08:19 +01:00
f0398f4d9c feat(spotify): use Spicetify with Spotify 2026-01-24 13:24:12 +01:00
a1842b22db feat(starship): remove most git info in jj repos 2026-01-24 13:23:38 +01:00
615909867e feat(AI): replace opencode with LM Studio 2026-01-24 12:57:37 +01:00
a632ebbf07 fix(wlr-which-key): add forgotten logout command 2026-01-24 12:57:04 +01:00
51f2c77c02 feat(hyprland): adapt to new Hyprland config and caelestia 2026-01-24 12:56:33 +01:00
e0226af16a feat(marpa): auto login on Marpa’s startup 2026-01-24 12:56:08 +01:00
7a1465bc3b refactor: some code cleanup 2026-01-24 12:55:52 +01:00
87a7fc00fe feat(secrets): update secrets 2026-01-24 12:54:48 +01:00
c6b3abd1a7 chore(flakes): update flake lockfile 2026-01-24 12:54:13 +01:00
21 changed files with 307 additions and 85 deletions

View File

@@ -1,6 +1,18 @@
# NixOS Configuration <h1 align="center">NixOS Configuration</h1>
<div align="center">
<strong>
Personal NixOS configuration for my machines, using Nix Flakes for reproducible and shareable setups.
</strong>
</div>
<br/>
<div align="center">
<!-- Wakapi -->
<img alt="Coding Time Badge" src="https://clock.phundrak.com/api/badge/phundrak/interval:any/project:.dotfiles">
<!-- Emacs -->
<a href="https://www.gnu.org/software/emacs/"><img src="https://img.shields.io/badge/Emacs-30.2-blueviolet.svg?style=flat-square&logo=GNU%20Emacs&logoColor=white" /></a>
</div>
Personal NixOS configuration for my machines, using Nix Flakes for reproducible and shareable setups.
## Repository Structure ## Repository Structure

196
flake.lock generated
View File

@@ -44,11 +44,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766195958, "lastModified": 1768655473,
"narHash": "sha256-YGawjW7RDzzOEiovrRGyRoXfjISbgLz4BVN9ZMb8LEc=", "narHash": "sha256-iWnILPS2mP9ubbjRAhNv6Fqg1J/upxmD9OQTZQR4O2w=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "8c83ae1e6a60de7d496d346bf3623f789a9f53e3", "rev": "7de6c6063119a7cef27c6bd4c88f2c5ac4cbc064",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"quickshell": "quickshell" "quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1766280311, "lastModified": 1769226446,
"narHash": "sha256-Ty4GT6EaQFaL9E/dKcJB1Q30ByGkxXV6U1eu8+PS5Dc=", "narHash": "sha256-YasBiXBgCkJ5oE6r9UtWXShD3OGtdRlioFErX5A1Z1Q=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "66e509ae488b2c0468f2c803fd34c2625ca725dc", "rev": "8430fa572500382e187a49f1ac677bfdeb7edca2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -86,16 +86,17 @@
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"nix": "nix", "nix": "nix",
"nixd": "nixd",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1764669403, "lastModified": 1769201893,
"narHash": "sha256-aJCOp0CV/9KIR2LTwSbZZN3j9Avg7umYyaqDFPoOVhI=", "narHash": "sha256-x6VW1lQikNZAVm59gb3tzpDU5QCHT8U1e4dU11F2evY=",
"owner": "cachix", "owner": "cachix",
"repo": "devenv", "repo": "devenv",
"rev": "3f2d25e7af748127da0571266054575dd8fec5ab", "rev": "685a86068d3a7f9b04e18340187e288413cb5887",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -141,6 +142,21 @@
"type": "github" "type": "github"
} }
}, },
"flake-root": {
"locked": {
"lastModified": 1723604017,
"narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=",
"owner": "srid",
"repo": "flake-root",
"rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -214,11 +230,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764780230, "lastModified": 1769187349,
"narHash": "sha256-/hLZoLxzr2jwMStuUofB6PZm2eE3kpw91WObm66vPUs=", "narHash": "sha256-clG+nT6I2qxjIgk5WoSDKJyNhzKJs9jzbCujPF2S/yg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "af324afa72de6d23162f0cdcb0716afe6e626683", "rev": "082a4cd87c6089d1d9c58ebe52655f9e07245fcb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -253,16 +269,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1761648602, "lastModified": 1769197468,
"narHash": "sha256-H97KSB/luq/aGobKRuHahOvT1r7C03BgB6D5HBZsbN8=", "narHash": "sha256-EhbVSjqhjykjIzF1FetpEwxjSMXg4ubHpkuEnE0y23A=",
"owner": "cachix", "owner": "cachix",
"repo": "nix", "repo": "nix",
"rev": "3e5644da6830ef65f0a2f7ec22830c46285bfff6", "rev": "6174571301a92afce9b7296d5babdc56972695b7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "cachix", "owner": "cachix",
"ref": "devenv-2.30.6", "ref": "devenv-2.32",
"repo": "nix", "repo": "nix",
"type": "github" "type": "github"
} }
@@ -274,11 +290,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764475780, "lastModified": 1765267181,
"narHash": "sha256-77jL5H5x51ksLiOUDjY0ZK8e2T4ZXLhj3ap8ETvknWI=", "narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "5a3ff8c1a09003f399f43d5742d893c0b1ab8af0", "rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -287,13 +303,40 @@
"type": "github" "type": "github"
} }
}, },
"nixd": {
"inputs": {
"flake-parts": [
"devenv",
"flake-parts"
],
"flake-root": "flake-root",
"nixpkgs": [
"devenv",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1763964548,
"narHash": "sha256-JTRoaEWvPsVIMFJWeS4G2isPo15wqXY/otsiHPN0zww=",
"owner": "nix-community",
"repo": "nixd",
"rev": "d4bf15e56540422e2acc7bc26b20b0a0934e3f5e",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixd",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1764517877, "lastModified": 1769018530,
"narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=", "narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c", "rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -305,11 +348,27 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1764767520, "lastModified": 1768564909,
"narHash": "sha256-gs0x3CIkBN/2ALvfNkKZ82NJe/k/WrddcwT/NstLpUo=", "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "511f22afbfaccda862e13f8f2441c717bc962e89", "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1769018530,
"narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -349,11 +408,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764663772, "lastModified": 1768689040,
"narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=", "narHash": "sha256-Tlnr5BulJcMers/cb+YvmBQW4nKHjdKo9loInJkyO2k=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "26531fc46ef17e9365b03770edd3fb9206fcb460", "rev": "7a427ce1979ce7447e885c4f30129b40f3d466f5",
"revCount": 713, "revCount": 729,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@@ -371,6 +430,7 @@
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"pumo-system-info": "pumo-system-info", "pumo-system-info": "pumo-system-info",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"spicetify": "spicetify",
"srvos": "srvos", "srvos": "srvos",
"zen-browser": "zen-browser" "zen-browser": "zen-browser"
} }
@@ -403,11 +463,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764483358, "lastModified": 1768863606,
"narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=", "narHash": "sha256-1IHAeS8WtBiEo5XiyJBHOXMzECD6aaIOJmpQKzRRl64=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "5aca6ff67264321d47856a2ed183729271107c9c", "rev": "c7067be8db2c09ab1884de67ef6c4f693973f4a2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -416,16 +476,35 @@
"type": "github" "type": "github"
} }
}, },
"srvos": { "spicetify": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2",
"systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1764811239, "lastModified": 1768656845,
"narHash": "sha256-O98nsREqOegA/ckOi1lj5cC8+FlzZmgE2q2RD9eKrnw=", "narHash": "sha256-xNlXMyn7yc3Z/NOsz4NchO7gWFwsoCvtJ26pys4s2/M=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "8bd7e49d5ac62756bee6e4b02221fb96bfc3c99a",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "spicetify-nix",
"type": "github"
}
},
"srvos": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1769046412,
"narHash": "sha256-LbjKkSB4Nar9pX+AxHs2FGH2ZAFpKWUvr79uyEhFVqc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "srvos", "repo": "srvos",
"rev": "0ed5a0abca19cb199796e77180499cb9b6cca493", "rev": "a78abbc16a5352ee848e454c99166c97415fbf39",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -449,6 +528,43 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"devenv",
"nixd",
"nixpkgs"
]
},
"locked": {
"lastModified": 1734704479,
"narHash": "sha256-MMi74+WckoyEWBRcg/oaGRvXC9BVVxDZNRMpL+72wBI=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "65712f5af67234dad91a5a4baee986a8b62dbf8f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"zen-browser": { "zen-browser": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -456,11 +572,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764648680, "lastModified": 1769228180,
"narHash": "sha256-B/nmawJ75/951Xs9ludSxDVd/txFY+odmcbinySqMQo=", "narHash": "sha256-94KY0JNjdd3CcSyKlHPCPswlqmUrWT6+MfOHektsdB8=",
"owner": "youwen5", "owner": "youwen5",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "897df2f2ad4880563ce801fa29f348a4e98f0a20", "rev": "ef1663c14b7c3c2b84bcf140232534be5a2a0257",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -34,6 +34,8 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
spicetify.url = "github:Gerg-L/spicetify-nix";
srvos.url = "github:nix-community/srvos"; srvos.url = "github:nix-community/srvos";
zen-browser = { zen-browser = {
@@ -91,6 +93,7 @@
pkgs = nixpkgs.legacyPackages.x86_64-linux; pkgs = nixpkgs.legacyPackages.x86_64-linux;
defaultUserModules = [ defaultUserModules = [
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
inputs.spicetify.homeManagerModules.default
]; ];
withUserModules = modules: nixpkgs.lib.lists.flatten (defaultUserModules ++ [modules]); withUserModules = modules: nixpkgs.lib.lists.flatten (defaultUserModules ++ [modules]);
in { in {

View File

@@ -16,7 +16,6 @@
kernel = { kernel = {
cpuVendor = "intel"; cpuVendor = "intel";
package = pkgs.linuxPackages; package = pkgs.linuxPackages;
modules = ["i915"];
}; };
systemd-boot = true; systemd-boot = true;
}; };
@@ -45,7 +44,6 @@
networking = { networking = {
hostname = "gampo"; hostname = "gampo";
id = "0630b33f"; id = "0630b33f";
hostFiles = [config.sops.secrets.extraHosts.path];
}; };
packages = { packages = {
appimage.enable = true; appimage.enable = true;

View File

@@ -39,6 +39,11 @@
}; };
}; };
services.displayManager.autoLogin = {
user = "phundrak";
enable = true;
};
mySystem = { mySystem = {
boot = { boot = {
extraModprobeConfig = '' extraModprobeConfig = ''
@@ -82,7 +87,6 @@
networking = { networking = {
hostname = "marpa"; hostname = "marpa";
id = "7EA4A111"; id = "7EA4A111";
hostFiles = [config.sops.secrets.extraHosts.path];
firewall.openPortRanges = [ firewall.openPortRanges = [
{ {
# Sunshine # Sunshine

View File

@@ -2,9 +2,7 @@
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ {
config,
lib, lib,
pkgs,
modulesPath, modulesPath,
... ...
}: { }: {

View File

@@ -1,10 +1,10 @@
extraHosts: ENC[AES256_GCM,data:P6Ho3CVFpJcJEVd8MVq9K0X4/OU4kJ270ZrzU+gdhlzeULzkYMcWBIa1mmMixbRnyuc+8wCeT1RpKSfl0zQNVjSazyj+V1C5+ZS8qboxD/8ehRMWnVtAFuyL4sruuyxpiXC+8op+sjAAWJWBfvQ0KCRD2H83+txz335XZZPYPmHvYjZ0FS3A23Zf4yVZHGXY6oxbUWhmeOhDf3vaARQe9MEqp/dPn/4QFrq8LwwEghnukbBPHY49VZ+pRV4HTOUnwjLjgfflqxXLqTHIYRu5GPEzRjC3ZT/5Hr4syLzPAFW12mVEOBjT4wpKLdnZypjlYaF0MfvUTE+qkTAACObUvcm1q+GT1qGmVr5M1VqOvSaWi+QgM9mlZBSJQzwrQ5tcBQ/GdrahyxjyVJOsz//mYRWqNerSIFr06znaAhAeZN2YRQRckzIPj+Crmdy2BNW8KDCWBiOjrgAb7MQOIVQ53JBwN0F/hgABKFgUd9lTSao3CEJEx9RooIezvu7SbXD3vxHSzrfhpyoSlJMx8hPNUoPqs0VnKdpGs4nudiMAgrdPG4eDsHqXZ6qVa4a3LpODFEDpsnstQuF8MgMmQFiEHJBID7j/uXyvcye7ZY3GQv6mAo5YkHjUts9j0UH+EkRD84AxVDv+TyroLKAgSZqZQVr3uUBS0CK50BPflwoP2scU+giTWm6L947LhHBIJvxfxtsHVj39kiCLjUJTKU1sLsb779938kXuEa/kd9XpMU4MQcMhD/gSzf0eemDPEe47HNYLjgDypPxkqnV/cNk+LkGOELLuvzqESsgUQLULG1rIS1kXYMJF1OZ9RRswf39AQnlZSovkw+phX8jOpvwfJHIax+35tkH+rkf621klXA==,iv:oAsOGZHilhBZYewYoWPxfloNjqLL92fvhcU+agd+oQA=,tag:2cuosGghq/+5akitPp4C4g==,type:str] extraHosts: ENC[AES256_GCM,data:buAUbxVALT7zjwYfySVQ7E6RsI4EaVBUFN/ZXOuSaj42DLoLPM45PSgkxjner9o4g6a3s58Snp3siO8l0KPSTYyPUPBZ7dgbCcsWp5t8Q3K111d4TPTlx+gcluK5BvwNvFB4esRXJOgpm5jK498COKq/UZJECM0D5Emid0CKkzZynUYdbQeHkQEKIXV2LxJNro87xHtU/l11nox37Na0+t+eqp8/jcQh9pGnKmppPhviJeCy6GoiDPNFHDalQUmd204gi6EaTx0p3r7gRK61RfTwSCiX1Y7N5muzPvJQJt8lwgqznw5Etjud8wn6HF+fmb/BbYtioO9TjOVJnjVOlB4iUMApx3XY4VOuBPJm7D9ET+2J8Umw4OD5pB9A5WF+gVseAqYYNZYpe2hlHBoXMw4IZh8qOgxR/noE71PHxRe5gSB/2Hq0lKwG0e8lyFEeJKZdXsl47CtQE39RfC/+ik2COaRmYxY8fHHs2/yTylopv/pSM6K2TGF5B3dwVS18LU5AR48C1Ip7CseMgjgAWvjQ43KBc+P74a+237tlRFlFsU3HNk9Hk4fF53DPUX67+l42W6sNcgrszFHb/dm939qDKYqdNcWEjaaVSdDo34I6NGhmTUI7FxCVYipe,iv:SehibPtT3k9Ufen8Gri3HcFthUe0S7dMT+486fwOK0w=,tag:oatCeFr2j3EPHwXc6eU66w==,type:str]
mopidy: mopidy:
spotify: ENC[AES256_GCM,data:89vPpgJ53eYou01qgxfqxOO6G/raBA0Vzck31PLchE4Jhi6HcNnoW4wwhHW3pG0AfCu5sE1CuryhRpWTc62fXIBoenKiCiU7chFhBF0UNq3Fcie26l6hdEx+XYVcM/MNBBbkb8VZq1mR0sgGmUESuZVzeI3LMykF,iv:n+LxuijWCZGW2YacrYQ2QIF2BTSilLmJ72piFRK25vw=,tag:iOQatj2UJdlMvn6C40IILg==,type:str] spotify: ENC[AES256_GCM,data:89vPpgJ53eYou01qgxfqxOO6G/raBA0Vzck31PLchE4Jhi6HcNnoW4wwhHW3pG0AfCu5sE1CuryhRpWTc62fXIBoenKiCiU7chFhBF0UNq3Fcie26l6hdEx+XYVcM/MNBBbkb8VZq1mR0sgGmUESuZVzeI3LMykF,iv:n+LxuijWCZGW2YacrYQ2QIF2BTSilLmJ72piFRK25vw=,tag:iOQatj2UJdlMvn6C40IILg==,type:str]
bandcamp: ENC[AES256_GCM,data:Sas5Sk0gNaq2E1XnsK8lvaZEzsaFZKY+zDxvgTiqTm2hrI2BnWieRWcZV6u1yRKjLAhh1rdSYhnZJHWUGIAY9qnFOk4vUVUHLtxnkxO/bJN/sykc4qwXRg4/NNap+8TcsN/S1AFJYKmXYn1Otx/02wbMEzHIuw==,iv:VGC7COqF3goMyyJvasiT0yVxOk4QKLOuXd2FbHjuRwk=,tag:pvyX4Q+dvlWFkdSJzTlgwA==,type:str] bandcamp: ENC[AES256_GCM,data:Sas5Sk0gNaq2E1XnsK8lvaZEzsaFZKY+zDxvgTiqTm2hrI2BnWieRWcZV6u1yRKjLAhh1rdSYhnZJHWUGIAY9qnFOk4vUVUHLtxnkxO/bJN/sykc4qwXRg4/NNap+8TcsN/S1AFJYKmXYn1Otx/02wbMEzHIuw==,iv:VGC7COqF3goMyyJvasiT0yVxOk4QKLOuXd2FbHjuRwk=,tag:pvyX4Q+dvlWFkdSJzTlgwA==,type:str]
emailPassword: ENC[AES256_GCM,data:RXmfWKIm5CzZrqhT6bAPZdijByO1NvrSwN1YO4/huVQnQh5p1g==,iv:lh/mxH5sPce+to6TsK2f0SrpHJuuGUiKWzrNmQfJcY0=,tag:EyR7Nml7Jyh4Modsq7DuBw==,type:str] emailPassword: ENC[AES256_GCM,data:RXmfWKIm5CzZrqhT6bAPZdijByO1NvrSwN1YO4/huVQnQh5p1g==,iv:lh/mxH5sPce+to6TsK2f0SrpHJuuGUiKWzrNmQfJcY0=,tag:EyR7Nml7Jyh4Modsq7DuBw==,type:str]
ssh: ssh:
hosts: ENC[AES256_GCM,data:0KRAZyfgcO2HRio7GFKgZ0DeRdbLkawEpS2+UT6aWvDM7MrTXvA0sCkn57Y8Akq3+Lg+90eWgBNOWwkPG36S2+2dLgH7HdILUuqLY56QXJiv1lLf/JM9F6zDoJOoXBf4gwCBZ0wwRBJFbtMCkRGVtkYKeWMvDDnkrdyDjn9bFcJrECbb3c4upGp7kCCo43ATi1QL4HWTUhbt24gVnFHHH993vH3rNrgVBdX3GzzHh4M/aLcMaVXaAvf6F2dSCCzdruB3giYt0n0TciVDcINnbnOpBHnVJwzKNY387PYLlgeDfA1qL5ak4FUeNg+e79qXIqeLeQ0Gmmbjrq3jJl3jEDu/m2Ze6T2UTDDjSvs6Nq20lxarWCpa814oLzU7Ih5t+3Tpy99KDkFtfrawPm4GuEceGW6anGV5EAPFxIjSxZMCnsZaAFlhe17ZeHnSMdF/kDhcaAVNjFexXv5xwD9R4ga9eqDPwmawhpLjecooXws+u322MFheinI4mxaIuoPpSN26z4Svpxf2qL0NnQh0IAVEJ0S4PRp6FfAktuJbCE93YxJzCpgOrLbesyrRM6L/JN2Apv6ERU6VfkS6E25aO1O1l3lWII3YFpfn+6BXBMnb7y4e2nvABluyp9vJDjWuc1W7qE4tPOOp6a10Gy5sWi1vXz2DI5UtmjrPpYiLAbwZVpqyuaPMoVeeRpSPReIrOqdJtlU9Hu06fOMj7zm7FR6redSfXdL8UsV0ct1kI4W2ITy+NR8DTIe1aJCe+ES0J7WNtAZkEdLAfA1Urq9Gxvxt1c6U4sSNXPzvqFNrqfz+dzUSrOlFkWudJMxarXt3fRBgRIt0hE/gVoeOjRpAzJTurtyvOotDVKlszIQrQ8nN4aAD4t1v5bsVwgUc2lnhFjfNa38BZjNdiXf/6E0UpkB2GrofKWmP02sXVsD0NGI0hGOOKzJn3vbuhaXDPD0KSHkVjOZGUXYizwqxgyOQtMIOE9+w42xVCYht9M3A7USQ69Fcm9FvxUfSYNxPznSdZ2zNHxRheowrmX10S9fxEA9vxvic8H86TuAVfZ1S+P6GqpgSH7FDikSLyJNj3PyznRTBar7M65BCCN2zA9aM+SgnSAvkrmz1qQjd3jedcm9xdqvMXw5fYaLFHpYHDdZsi8w=,iv:eRcfkOg5vNI+HxsNELJe20cmKSThtBXwc7c69Jaj/3M=,tag:t0ux5jZRBx9DQbTzr9YHKg==,type:str] hosts: ENC[AES256_GCM,data:CnSHwOiLbrA3C902LrkyLKvZOd4Lv1RCBF+IVVbNcx1aCibpMHlFN6Ov+CFNrHG1ZVd3tarnZdGX5kScJJa0khDOVtrUF1gtvifqn1A9tUDP2M+iu3JrVxDw6cPeVyoxWL1hwuWwfO3zgApBGT3CvzAy9V85cNEdS7ukx08VRTgnM6rXYLJKLvjwaDnhnB43Am8XpZQkI0I6DkhCAQuGCrxsqtEE/mQXItZUGlOp/Al8B1XEs35b16odMJEextf85bnzpYYbpV9n4OCMTgoZ8ciQgTbi7u9FD8vmKs5W15pZvL4sxFIcbegn29SvRd7sfsotQ6xNgXHqAQtTa+VcUPA7bSjDw5KHs0iC8AkxdHwGL1kY0GSb992BIZ7PqKdNRLAikttGslFM98Ce6fpHQXj3soYYMdsm9vj7av1+P4N6SQ2cmhpVDrbnrmXQ5MT5gbQlecu32b0Yqf6rfjGyZ+SCZmMzTwAsEpHSnIgYPin38ztDsMMPaouxaTR8V1TXK715ITtA9ojrZhTBbWlaJWVybicc6tT164ZDKyurGdPHf2KrakkVYZghuCkWZWM/yc4GoW1o7/XxWnwQDkUvte8kPDwB2Rvc1jjG6SFvhdXouIqfNNxrdbSoFURBuouZIbfamVqU3MfSF0JRBrpRerA5tqrWYOPL4rXqsqGWyQ==,iv:92tBq0zjlJ44Ia5ug2zk9PgspWzA6QlT0A+j9T74T7U=,tag:XTB7zG14DsPw1uNXTpD7Bg==,type:str]
sops: sops:
age: age:
- recipient: age1ajemtm502nn2n4q7v4j8meyd5mxtcqngkkedxq2pqzuwu78zp93qnw8q48 - recipient: age1ajemtm502nn2n4q7v4j8meyd5mxtcqngkkedxq2pqzuwu78zp93qnw8q48
@@ -79,7 +79,7 @@ sops:
VkdKMUVOemNhUnpYSFFocnZRQmxPaUEKgCne7JJRIuvFtDMtaqO21IKjRoDW8D+3 VkdKMUVOemNhUnpYSFFocnZRQmxPaUEKgCne7JJRIuvFtDMtaqO21IKjRoDW8D+3
V5tGfZOQADuef3n8ZG1j5t1OtNNBu4PjpxZynGx3/nR7+FThsK4vMg== V5tGfZOQADuef3n8ZG1j5t1OtNNBu4PjpxZynGx3/nR7+FThsK4vMg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-12-07T10:51:49Z" lastmodified: "2026-01-25T02:54:23Z"
mac: ENC[AES256_GCM,data:9LYnzgwB/QpEdZ7uDxfT+G+oUB0CJLFuigeocZNjoxb9U0PuckuLWuGOtcWBN0mkSF/Yc/rJS9D3a5ut5svwQ3111ROGvjGMF568+8IBJjejoxJepqz23F901rHBDfEVhBPnLImpIapIR/KJDbD+eW9ETlp/RN2LvIk8Zm91YTg=,iv:9+88oTT5UZBHYjzbDtqMqytcXV/bEjUZeqGxolgm0LY=,tag:ywqu25dQ8BcbPvphTqE78g==,type:str] mac: ENC[AES256_GCM,data:nIOwiSAT3YCRabbPwfO2XBFhb/qH5cFLsMUQUCUa7trBnLeerzWLpngB96T0ZkDmsVsdJLhfv5ZWWZlgIg+K9uIww+DzvK48B3+EyVpNCJ4cDfgz3gZXlnp41Eu8LSklQ+sk9lVFEbHNPPhbTliXma9Kr1ldkdP035lQmYXUz6Y=,iv:sp7oiTUvO/FchubMlCuaaWDpNO9+aLIyehjS9+8pEPw=,tag:/PvIJTM17nFi5YIq0b1LyQ==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.11.0 version: 3.11.0

View File

@@ -59,7 +59,11 @@ in {
}; };
config.boot = { config.boot = {
initrd.kernelModules = lists.optional config.mySystem.hardware.amdgpu.enable "amdgpu"; initrd.kernelModules = lib.lists.singleton (
if config.mySystem.hardware.amdgpu.enable
then "amdgpu"
else "i915"
);
loader = { loader = {
systemd-boot.enable = cfg.systemd-boot; systemd-boot.enable = cfg.systemd-boot;
efi.canTouchEfiVariables = cfg.systemd-boot; efi.canTouchEfiVariables = cfg.systemd-boot;

View File

@@ -67,6 +67,9 @@ in {
reboot = ["systemctl" "reboot"]; reboot = ["systemctl" "reboot"];
}; };
}; };
cli.enable = true; cli = {
enable = true;
settings.theme.enableGtk = true;
};
}; };
} }

View File

@@ -15,7 +15,9 @@ in {
./obs.nix ./obs.nix
./qt.nix ./qt.nix
./rofi ./rofi
./spotify.nix
./swaync.nix ./swaync.nix
./theme.nix
./waybar.nix ./waybar.nix
./wlr-which-key.nix ./wlr-which-key.nix
./wlsunset.nix ./wlsunset.nix
@@ -30,6 +32,8 @@ in {
obs.enable = mkDefault cfg.fullDesktop; obs.enable = mkDefault cfg.fullDesktop;
qt.enable = mkDefault cfg.fullDesktop; qt.enable = mkDefault cfg.fullDesktop;
rofi.enable = mkDefault cfg.fullDesktop; rofi.enable = mkDefault cfg.fullDesktop;
spotify.enable = mkDefault cfg.fullDesktop;
spotify.spicetify.enable = mkDefault cfg.fullDesktop;
wlr-which-key.enable = mkDefault cfg.fullDesktop; wlr-which-key.enable = mkDefault cfg.fullDesktop;
}; };
} }

View File

@@ -47,7 +47,6 @@ in {
services.blueman-applet.enable = ! caelestiaEnabled; services.blueman-applet.enable = ! caelestiaEnabled;
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
xwayland.enable = true;
systemd.enable = false; systemd.enable = false;
importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"]; importantPrefixes = ["$left" "$right" "$up" "$down" "$menu"];
settings = { settings = {
@@ -87,7 +86,7 @@ in {
"1, layoutopt:orientation:bottom" "1, layoutopt:orientation:bottom"
]; ];
decoration = { decoration = {
rounding = 5; rounding = 20;
}; };
animations = { animations = {
enabled = true; enabled = true;

View File

@@ -0,0 +1,25 @@
{
pkgs,
config,
lib,
inputs,
...
}:
with lib; let
cfg = config.home.desktop.spotify;
system = pkgs.stdenv.hostPlatform.system;
spicePkgs = inputs.spicetify.legacyPackages.${system};
in {
options.home.desktop.spotify = {
enable = mkEnableOption "Enable Spotify";
spicetify.enable = mkEnableOption "Enable Spicetify";
};
config.programs = mkIf cfg.enable {
spotify-player.enable = cfg.enable;
spicetify = mkIf cfg.spicetify.enable {
inherit (cfg.spicetify) enable;
theme = spicePkgs.themes.sleek;
colorScheme = "Nord";
};
};
}

View File

@@ -0,0 +1,26 @@
{
pkgs,
config,
...
}: {
gtk = {
enable = true;
colorScheme = "dark";
iconTheme = {
name = "Nordzy-icons";
package = pkgs.nordzy-icon-theme;
};
theme = {
package = pkgs.nordic;
name = "Nordic";
};
};
home.pointerCursor = {
enable = true;
gtk.enable = true;
hyprcursor.enable = config.home.desktop.hyprland.enable;
name = "Nordzy-cursors";
package = pkgs.nordzy-cursor-theme;
};
qt.enable = true;
}

View File

@@ -1,13 +1,11 @@
{ {
config, config,
lib, lib,
inputs,
pkgs, pkgs,
... ...
}: }:
with lib; let with lib; let
cfg = config.home.dev.ai.claude; cfg = config.home.dev.ai.claude;
system = pkgs.stdenv.hostPlatform.system;
in { in {
options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages"; options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages";
config = mkIf cfg.enable { config = mkIf cfg.enable {

View File

@@ -18,6 +18,6 @@ in {
ollama.enable = mkDefault cfg.enable; ollama.enable = mkDefault cfg.enable;
claude.enable = mkDefault cfg.enable; claude.enable = mkDefault cfg.enable;
}; };
packages = [pkgs.opencode]; packages = [pkgs.lmstudio];
}; };
} }

View File

@@ -37,7 +37,12 @@ in {
services.emacs = mkIf cfg.service { services.emacs = mkIf cfg.service {
enable = true; enable = true;
inherit (cfg) package; inherit (cfg) package;
defaultEditor = true;
startWithUserSession = "graphical"; startWithUserSession = "graphical";
client = {
enable = true;
arguments = ["-c" "-a" "${cfg.package}/bin/emacs"];
};
}; };
xdg.desktopEntries.mu4e = mkIf cfg.mu4eMime { xdg.desktopEntries.mu4e = mkIf cfg.mu4eMime {

View File

@@ -19,30 +19,58 @@ in {
inherit (cfg) enable; inherit (cfg) enable;
enableTransience = true; enableTransience = true;
settings = mkIf cfg.jjIntegration { settings = mkIf cfg.jjIntegration {
custom.jj = { # Disabling these so they can be enabled conditionally
description = "The current jj status"; # See https://github.com/jj-vcs/jj/wiki/Starship
detect_folders = [".jj"]; git_status.disabled = true;
symbol = "🥋 "; git_commit.disabled = true;
command = '' git_metrics.disabled = true;
jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template ' git_branch.disabled = true;
separate(" ", custom = let
change_id.shortest(4), when = "! jj --ignore-working-copy-root";
bookmarks, description = "Only show if were not in a jj repository";
"|", style = "";
concat( in {
if(conflict, "💥"), git_status = {
if(divergent, "🚧"), inherit when description style;
if(hidden, "👻"), command = "starship module git_status";
if(immutable, "🔒"), };
), git_commit = {
raw_escape_sequence("\x1b[1;32m") ++ if(empty, "(empty)"), inherit when description style;
raw_escape_sequence("\x1b[1;32m") ++ coalesce( command = "starship module git_commit";
truncate_end(29, description.first_line(), ""), };
"(no description set)", git_metrics = {
) ++ raw_escape_sequence("\x1b[0m"), inherit when description style;
) command = "starship module git_metrics";
' };
''; git_branch = {
inherit when description style;
command = "starship module git_branch";
};
jj = {
description = "The current jj status";
detect_folders = [".jj"];
symbol = "🥋 ";
command = ''
jj log --revisions @ --no-graph --ignore-working-copy --color always --limit 1 --template '
separate(" ",
change_id.shortest(4),
bookmarks,
"|",
concat(
if(conflict, "💥"),
if(divergent, "🚧"),
if(hidden, "👻"),
if(immutable, "🔒"),
),
raw_escape_sequence("\x1b[1;32m") ++ if(empty, "(empty)"),
raw_escape_sequence("\x1b[1;32m") ++ coalesce(
truncate_end(29, description.first_line(), ""),
"(no description set)",
) ++ raw_escape_sequence("\x1b[0m"),
)
'
'';
};
}; };
}; };
}; };

View File

@@ -58,7 +58,6 @@
home = { home = {
sessionVariables = { sessionVariables = {
EDITOR = "${config.home.dev.editors.emacs.package}/bin/emacsclient -c -a ${config.home.dev.editors.emacs.package}/bin/emacs";
LAUNCH_EDITOR = "${launchWithEmacsclient}/bin/launch-with-emacsclient"; LAUNCH_EDITOR = "${launchWithEmacsclient}/bin/launch-with-emacsclient";
SUDO_ASKPASS = "${askpass}/bin/askpass"; SUDO_ASKPASS = "${askpass}/bin/askpass";
LSP_USE_PLISTS = "true"; LSP_USE_PLISTS = "true";

View File

@@ -46,6 +46,7 @@ in {
username = "phundrak"; username = "phundrak";
homeDirectory = "/home/phundrak"; homeDirectory = "/home/phundrak";
packages = [pkgs.tree pkgs.ncdu]; packages = [pkgs.tree pkgs.ncdu];
preferXdgDirectories = true;
phundrak.sshKey.file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub"; phundrak.sshKey.file = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";

View File

@@ -30,7 +30,6 @@ in {
plexamp plexamp
plex-desktop plex-desktop
spicetify-cli spicetify-cli
spotify
pavucontrol # Volume control pavucontrol # Volume control
# Social # Social

View File

@@ -172,7 +172,7 @@
{ {
key = "l"; key = "l";
desc = "Logout"; desc = "Logout";
cmd = ""; cmd = "${logout}/bin/logout";
} }
{ {
key = "s"; key = "s";