Compare commits

...

33 commits

Author SHA1 Message Date
d4e605532e
disable discord 2026-03-02 13:46:28 -05:00
96e262ef81
switch icon theme to adwaita 2026-03-02 13:46:10 -05:00
7c9ef445dd
disable hyprland for now 2026-03-01 19:48:40 -05:00
68e5125b9e
wip: add hyprland 2026-02-28 12:41:55 -05:00
e857d17534
drop later: calibre is currently broken 2026-02-28 11:54:05 -05:00
94166f255b
update niri, rename openmw, remove cat-discord, refactor flake inputs 2026-02-28 11:53:58 -05:00
6044d8370c
remove aerothemeplasma 2026-02-27 16:43:55 -05:00
7a2db9a1cb
update kernels 2026-02-27 14:24:56 -05:00
4339d177da
remove discord font override, pnevma -> banana-blueberry 2026-02-27 14:22:42 -05:00
f124c6892f
update niri 2026-02-27 14:22:41 -05:00
9f688628f6
add obs 2026-02-27 14:22:41 -05:00
561a19ef0a
unfloat firefox picture-in-picture 2026-02-27 14:22:41 -05:00
c6db5a4a3a
reduce dependence on noctalia ipc 2026-02-27 14:22:41 -05:00
57fd2c8f9b
add mute and toggle opacity keys to niri 2026-02-27 14:22:41 -05:00
b3ee605039
edit noctalia systemd service 2026-02-27 14:22:41 -05:00
35dca7d3de
move macbook display to its home/hosts 2026-02-27 14:22:40 -05:00
c31b332c07
changes to niri & firefox 2026-02-27 14:22:40 -05:00
3cc8ec1f0a
peach -> hopscotch theme 2026-02-27 14:22:40 -05:00
2d884aeb88
change niri and noctalia opacities 2026-02-27 14:22:40 -05:00
6c4170a4e4
fix VM 2026-02-27 14:22:40 -05:00
2a5e1db40d
colorize wallpaper 2026-02-27 14:22:40 -05:00
b6ce69246a
switch from awww to wbg, fight over? 2026-02-27 14:22:40 -05:00
57cb143c3a
reformat niri 2026-02-27 14:22:39 -05:00
31cf5145c5
wallpaper updates in prep to switch to wbg 2026-02-27 14:22:39 -05:00
1f70f24fe0
refactor session vars 2026-02-27 14:22:39 -05:00
3a3087a226
add niri blur 2026-02-27 14:22:35 -05:00
151f574d25
make systemd services more robust 2026-02-27 14:22:02 -05:00
c7015f7244
peach: frappe -> mocha 2026-02-27 14:22:02 -05:00
bb439c58d5
switch from mpvpaper to awww, refactor wallpaper 2026-02-27 14:22:02 -05:00
517866ad2d
fix: wallpaper aspect ratio 2026-02-27 14:22:02 -05:00
c6ffebfdb7
add torrenting config 2026-02-27 14:22:02 -05:00
c7f6ce0672
move searxng to port 5364 2026-02-27 14:22:02 -05:00
e73494dfb4
switch from wpaperd to mpvpaper 2026-02-27 14:22:01 -05:00
24 changed files with 1327 additions and 644 deletions

633
flake.lock generated
View file

@ -1,37 +1,16 @@
{ {
"nodes": { "nodes": {
"aerothemeplasma-nix": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1771215876,
"narHash": "sha256-aei7McII5+y4tROXfmOVyLbPO62sWttNkOKUlCSEIcg=",
"owner": "nyakase",
"repo": "aerothemeplasma-nix",
"rev": "b922785202501754c4503232aa5f172aeaef8b00",
"type": "github"
},
"original": {
"owner": "nyakase",
"repo": "aerothemeplasma-nix",
"type": "github"
}
},
"apple-silicon": { "apple-silicon": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1771054135, "lastModified": 1771511514,
"narHash": "sha256-0RYmnOk40U4ZGbW/+3rHlNndrsuHCz9h+xequKWgwHQ=", "narHash": "sha256-qhtonMK07BCVC/wZ+pZ9/MKhcTric7YUaCpW6pOg8IM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-apple-silicon", "repo": "nixos-apple-silicon",
"rev": "357186cca0f4c7801ff16970e4b6a05e74fd88e0", "rev": "2b92d495204be0b10845c66361444dbc8441c68d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -40,6 +19,39 @@
"type": "github" "type": "github"
} }
}, },
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771610171,
"narHash": "sha256-+DeInuhbm6a6PpHDNUS7pozDouq2+8xSDefoNaZLW0E=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "7f9eb087703ec4acc6b288d02fa9ea3db803cd3d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"base16": { "base16": {
"inputs": { "inputs": {
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
@ -77,11 +89,11 @@
"cachyos-kernel": { "cachyos-kernel": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1771263855, "lastModified": 1771517207,
"narHash": "sha256-akyds1g8cb742d2OrnQ4YciscpynsQ0+0YD2a8aZdvo=", "narHash": "sha256-+zDtnmXNyMd3hMepErdPDZzqYS0PiZA0Anbbx9Pvs4g=",
"owner": "CachyOS", "owner": "CachyOS",
"repo": "linux-cachyos", "repo": "linux-cachyos",
"rev": "5ece16c7b4a7d1261da68153cafc318a60b78ce8", "rev": "39737576a25091a3c4ca00729b769a1f92ec98d5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -93,11 +105,11 @@
"cachyos-kernel-patches": { "cachyos-kernel-patches": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1771246613, "lastModified": 1771516433,
"narHash": "sha256-GftqKiyIgMcSgVkbNqXQq7oNnoL1+EB9V71XG4lPBRs=", "narHash": "sha256-SuockPZgd2bfjWGmdT8AUBTnBZWvxdA+b8Ss98lNC6c=",
"owner": "CachyOS", "owner": "CachyOS",
"repo": "kernel-patches", "repo": "kernel-patches",
"rev": "cb320a13e3c92f32ada27acb1fba8a828a22ae60", "rev": "505aef2086e584ba683a5ac1cb8ed8252fea2cfd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -106,22 +118,6 @@
"type": "github" "type": "github"
} }
}, },
"catppuccin-discord": {
"flake": false,
"locked": {
"lastModified": 1769446491,
"narHash": "sha256-7v1Hu6QofOyFOGnHeqHFK0JsxUxdJ9uTjI7nM7mdTsg=",
"owner": "catppuccin",
"repo": "discord",
"rev": "f235754322320211a8646d963466fac402e5c297",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "discord",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"locked": { "locked": {
"lastModified": 1761640442, "lastModified": 1761640442,
@ -153,27 +149,25 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts": { "flake-compat_3": {
"inputs": { "flake": false,
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": { "locked": {
"lastModified": 1768135262, "lastModified": 1767039857,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "hercules-ci", "owner": "NixOS",
"repo": "flake-parts", "repo": "flake-compat",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "owner": "NixOS",
"repo": "flake-parts", "repo": "flake-compat",
"type": "github" "type": "github"
} }
}, },
"flake-parts_2": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib_2" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1769996383,
@ -189,7 +183,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_3": { "flake-parts_2": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nixvim", "nixvim",
@ -210,7 +204,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_4": { "flake-parts_3": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nur", "nur",
@ -247,6 +241,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -267,12 +283,335 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770511807,
"narHash": "sha256-suKmSbSk34uPOJDTg/GbPrKEJutzK08vj0VoTvAFBCA=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "7c75487edd43a71b61adb01cae8326d277aab683",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": [
"nixpkgs-unstable"
],
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1772297734,
"narHash": "sha256-ASoB8+3t/DNKWv2LCEDjUP+tV2+Mi6Lzi5lryXGN2B0=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "1c64ef06d9cb555fc562345c172c45e95c3b3077",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1767023960,
"narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1765214753,
"narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771866172,
"narHash": "sha256-fYFoXhQLrm1rD8vSFKQBOEX4OGCuJdLt1amKfHd5GAw=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "0b219224910e7642eb0ed49f0db5ec3d008e3e41",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1764592794,
"narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "5cfe0743f0e608e1462972303778d8a0859ee63e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771271487,
"narHash": "sha256-41gEiUS0Pyw3L/ge1l8MXn61cK14VAhgWB/JV8s/oNI=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "340a792e3b3d482c4ae5f66d27a9096bdee6d76d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1770501770,
"narHash": "sha256-NWRM6+YxTRv+bT9yvlhhJ2iLae1B1pNH3mAL5wi2rlQ=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "0bd8b6cde9ec27d48aad9e5b4deefb3746909d40",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1771606233,
"narHash": "sha256-F3PLUqQ/TwgR70U+UeOqJnihJZ2EuunzojYC4g5xHr0=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "06c7f1f8c4194786c8400653c4efc49dc14c0f3a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github"
}
},
"niri": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
"niri-unstable": "niri-unstable", "niri-unstable": [
"niri-blur"
],
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
], ],
"nixpkgs-stable": [ "nixpkgs-stable": [
"nixpkgs-stable" "nixpkgs-stable"
@ -281,19 +620,37 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1771514840, "lastModified": 1771682768,
"narHash": "sha256-t3WbZvwoDj/75YDX/nwkZuxanZLZaWr9meSfKswaN6g=", "narHash": "sha256-RJ9RVJSAktCgWiqLDCjYmx9KgMuLaszUrI28k92Pa2I=",
"owner": "sodiboo", "owner": "sckova",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "4f69ab280e9bb34e2c0b67fdfa6f0978a170ef56", "rev": "383bd9d32706b163807b05983418069b2e692310",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "sodiboo", "owner": "sckova",
"ref": "feat/blur",
"repo": "niri-flake", "repo": "niri-flake",
"type": "github" "type": "github"
} }
}, },
"niri-blur": {
"flake": false,
"locked": {
"lastModified": 1771749270,
"narHash": "sha256-ZJCM1XOHIdud6Jfpl4jYQOzbOJId9wmXT+hNJ1IPBIY=",
"owner": "niri-wm",
"repo": "niri",
"rev": "734d86ec061d15d1980c5b940b2f4dc9aee80cf5",
"type": "github"
},
"original": {
"owner": "niri-wm",
"ref": "wip/branch",
"repo": "niri",
"type": "github"
}
},
"niri-stable": { "niri-stable": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -311,36 +668,20 @@
"type": "github" "type": "github"
} }
}, },
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1771305475,
"narHash": "sha256-lqweVTwHhYc+9T33cysp38gVwxaibGJHriOPZXWyhCY=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "a2a52911757cb3b497db9407592f9b4c439571ea",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri",
"type": "github"
}
},
"nix-cachyos-kernel": { "nix-cachyos-kernel": {
"inputs": { "inputs": {
"cachyos-kernel": "cachyos-kernel", "cachyos-kernel": "cachyos-kernel",
"cachyos-kernel-patches": "cachyos-kernel-patches", "cachyos-kernel-patches": "cachyos-kernel-patches",
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1771353108, "lastModified": 1771525883,
"narHash": "sha256-5Xtei4UKrqRC6IYLgI1KEBaPN9Xfef5JeOexdqDWVeg=", "narHash": "sha256-XqDuaRbxLGno5HcWRE5lQrgMBeXXs6ncGq+R6eCvsq8=",
"owner": "xddxdd", "owner": "xddxdd",
"repo": "nix-cachyos-kernel", "repo": "nix-cachyos-kernel",
"rev": "98e777cdcc39e6bd0312a9d756507ef9cbd284cb", "rev": "15fb6039dd248d478a8f3f7f6c067b206da2bf54",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -367,21 +708,6 @@
} }
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": {
"lastModified": 1765674936,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-lib_2": {
"locked": { "locked": {
"lastModified": 1769909678, "lastModified": 1769909678,
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
@ -430,11 +756,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1771353015, "lastModified": 1771482645,
"narHash": "sha256-gvMwFEdFCM2zFxLVDaAbhV2N9zK0IW/RceBundHUdZs=", "narHash": "sha256-MpAKyXfJRDTgRU33Hja+G+3h9ywLAJJNRq4Pjbb4dQs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "931ef4db402cdab9dfe66fe4a2b01d50f6fe435d", "rev": "724cf38d99ba81fbb4a347081db93e2e3a9bc2ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -446,11 +772,11 @@
}, },
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1769537308, "lastModified": 1769537308,
@ -488,7 +814,7 @@
}, },
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_3",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
@ -546,15 +872,38 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1771858127,
"narHash": "sha256-Gtre9YoYl3n25tJH2AoSdjuwcqij5CPxL3U3xysYD08=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "49bbbfc218bf3856dfa631cead3b052d78248b83",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"aerothemeplasma-nix": "aerothemeplasma-nix",
"apple-silicon": "apple-silicon", "apple-silicon": "apple-silicon",
"base16": "base16", "base16": "base16",
"base16-discord": "base16-discord", "base16-discord": "base16-discord",
"catppuccin-discord": "catppuccin-discord",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland",
"niri": "niri", "niri": "niri",
"niri-blur": "niri-blur",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nixpkgs": [ "nixpkgs": [
"nixpkgs-unstable" "nixpkgs-unstable"
@ -575,7 +924,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1769316930, "lastModified": 1769316930,
@ -592,6 +941,21 @@
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -606,7 +970,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -638,6 +1002,47 @@
"type": "github" "type": "github"
} }
}, },
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"xwayland-satellite-stable": { "xwayland-satellite-stable": {
"flake": false, "flake": false,
"locked": { "locked": {

View file

@ -8,14 +8,9 @@
# edit this to switch between stable and unstable # edit this to switch between stable and unstable
nixpkgs.follows = "nixpkgs-unstable"; nixpkgs.follows = "nixpkgs-unstable";
nix-cachyos-kernel = { nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
url = "github:xddxdd/nix-cachyos-kernel/release"; apple-silicon.url = "github:nix-community/nixos-apple-silicon";
# inputs.nixpkgs.follows = "nixpkgs"; base16.url = "github:SenchoPens/base16.nix";
};
base16 = {
url = "github:SenchoPens/base16.nix";
};
tt-schemes = { tt-schemes = {
url = "github:tinted-theming/schemes/b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11"; url = "github:tinted-theming/schemes/b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11";
@ -38,23 +33,22 @@
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
aerothemeplasma-nix = {
url = "github:nyakase/aerothemeplasma-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
niri = { niri = {
url = "github:sodiboo/niri-flake"; url = "github:sckova/niri-flake/feat/blur";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable";
inputs.nixpkgs-stable.follows = "nixpkgs-stable"; inputs.nixpkgs-stable.follows = "nixpkgs-stable";
# inputs.niri-stable.follows = "niri-blur"; inputs.niri-unstable.follows = "niri-blur";
# inputs.niri-unstable.follows = "niri-blur";
}; };
# niri-blur = { niri-blur = {
# url = "github:visualglitch91/niri/feat/blur"; url = "github:niri-wm/niri/wip/branch";
# flake = false; flake = false;
# }; };
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
noctalia = { noctalia = {
url = "github:noctalia-dev/noctalia-shell"; url = "github:noctalia-dev/noctalia-shell";
@ -76,20 +70,10 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
apple-silicon = {
url = "github:nix-community/nixos-apple-silicon";
# inputs.nixpkgs.follows = "nixpkgs";
};
openmw = { openmw = {
url = "gitlab:OpenMW/openmw"; url = "gitlab:OpenMW/openmw";
flake = false; flake = false;
}; };
catppuccin-discord = {
url = "github:catppuccin/discord";
flake = false;
};
}; };
outputs = outputs =
@ -97,20 +81,19 @@
nixpkgs, nixpkgs,
nixpkgs-unstable, nixpkgs-unstable,
nix-cachyos-kernel, nix-cachyos-kernel,
apple-silicon,
base16, base16,
tt-schemes, tt-schemes,
base16-discord, base16-discord,
home-manager, home-manager,
plasma-manager, plasma-manager,
aerothemeplasma-nix,
niri, niri,
hyprland,
noctalia, noctalia,
spicetify-nix, spicetify-nix,
nur, nur,
nixvim, nixvim,
apple-silicon,
openmw, openmw,
catppuccin-discord,
... ...
}: }:
let let
@ -150,11 +133,11 @@
config = pkgConfig; config = pkgConfig;
overlays = [ overlays = [
niri.overlays.niri niri.overlays.niri
hyprland.overlays.default
noctalia.overlays.default noctalia.overlays.default
nur.overlays.default nur.overlays.default
(final: prev: { (final: prev: {
openmw-git = openmw; openmw-git = openmw;
catppuccin-discord-git = catppuccin-discord;
base16-discord-git = base16-discord; base16-discord-git = base16-discord;
}) })
(import ./packages/overlay.nix) (import ./packages/overlay.nix)
@ -215,12 +198,12 @@
} }
./system ./system
./system/searxng ./system/searxng
./system/torrenting
./system/widevine ./system/widevine
./system/shell/fish.nix ./system/shell/fish.nix
./system/tailscale ./system/tailscale
./system/hosts/${hostname} ./system/hosts/${hostname}
./hardware/${hostname} ./hardware/${hostname}
aerothemeplasma-nix.nixosModules.aerothemeplasma-nix
niri.nixosModules.niri niri.nixosModules.niri
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
noctalia.nixosModules.default noctalia.nixosModules.default
@ -249,7 +232,6 @@
scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml"; scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml";
} }
) )
aerothemeplasma-nix.homeModules.aerothemeplasma-nix
plasma-manager.homeModules.plasma-manager plasma-manager.homeModules.plasma-manager
noctalia.homeModules.default noctalia.homeModules.default
spicetify-nix.homeManagerModules.default spicetify-nix.homeManagerModules.default
@ -306,23 +288,23 @@
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; } { nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; }
]; ];
}; };
alien = mkNixosSystem {
alien = hostname = "alien";
mkNixosSystem { system = "x86_64-linux";
hostname = "alien"; extraModules = [
system = "x86_64-linux"; {
extraModules = [ nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ];
{ nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ]; }
];
}
// nixpkgs.lib.genAttrs supportedSystems (
system:
mkNixosSystem {
hostname = "vm-generic";
inherit system;
} }
); ];
}; };
}
// nixpkgs.lib.genAttrs supportedSystems (
system:
mkNixosSystem {
hostname = "vm-generic";
inherit system;
}
);
homeConfigurations = { homeConfigurations = {
peach = mkHomeConfig { peach = mkHomeConfig {

View file

@ -1,6 +1,6 @@
{ {
imports = [ imports = [
./discord.nix # ./discord.nix
./firefox.nix ./firefox.nix
./mpv.nix ./mpv.nix
# ./vscode.nix # ./vscode.nix

View file

@ -4,12 +4,9 @@
... ...
}: }:
let let
catppuccin-discord = "${pkgs.catppuccin-discord}/share/catppuccin-discord/catppuccin-mocha-*.theme.css";
mergedThemes = pkgs.runCommand "mergedConfig" { } '' mergedThemes = pkgs.runCommand "mergedConfig" { } ''
mkdir -p $out mkdir -p $out
cp -rvf ${pkgs.base16-discord-git}/base16.css $out/base16.css cp -rvf ${pkgs.base16-discord-git}/base16.css $out/base16.css
cp -rvf ${catppuccin-discord} $out
''; '';
vesktopSettings = { vesktopSettings = {
@ -50,11 +47,6 @@ in
home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; { home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; {
text = '' text = ''
* {
font-family: "${config.userOptions.fontSans.name}" !important;
font-size: ${toString config.userOptions.fontSans.size}px;
}
:root { :root {
--base00: ${base00}; --base00: ${base00};
--base01: ${base01}; --base01: ${base01};

View file

@ -76,7 +76,7 @@
url = "https://web.whatsapp.com/"; url = "https://web.whatsapp.com/";
manifestUrl = "https://web.whatsapp.com/data/manifest.json"; manifestUrl = "https://web.whatsapp.com/data/manifest.json";
desktopEntry = { desktopEntry = {
icon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/whatsapp.svg"; icon = "${pkgs.morewaita-icon-theme}/share/icons/MoreWaita/scalable/apps/whatsapp.svg";
categories = [ categories = [
"Network" "Network"
"Chat" "Chat"
@ -207,7 +207,7 @@
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.showWeather" = false; "browser.newtabpage.activity-stream.showWeather" = false;
"browser.download.autoHideButton" = false; "browser.download.autoHideButton" = false;
"browser.startup.homepage" = "http://localhost:8080/"; "browser.startup.homepage" = "http://localhost:5364/";
# Disable Firefox's machine learning (AI) features # Disable Firefox's machine learning (AI) features
"browser.ml.enable" = false; "browser.ml.enable" = false;
@ -306,8 +306,8 @@
}; };
search = search =
let let
nixIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid/apps/scalable/nix-snowflake.svg"; nixIcon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
searchIcon = "${pkgs.colloid-icon-theme}/share/icons/Colloid-Dark/places/symbolic/folder-saved-search-symbolic.svg"; searchIcon = "${pkgs.adwaita-icon-theme}/share/icons/Adwaita/scalable/places/folder-saved-search-symbolic.svg";
in in
{ {
force = true; force = true;
@ -369,7 +369,7 @@
searxng = { searxng = {
name = "SearXNG"; name = "SearXNG";
urls = [ { template = "http://localhost:8080/search?q={searchTerms}"; } ]; urls = [ { template = "http://localhost:5364/search?q={searchTerms}"; } ];
icon = searchIcon; icon = searchIcon;
definedAliases = [ "@go" ]; definedAliases = [ "@go" ];
}; };

View file

@ -14,7 +14,7 @@
visibility: hidden !important; visibility: hidden !important;
} }
.browserContainer { /*.browserContainer {
border-radius: 8px !important; border-radius: 8px !important;
margin: 6px !important; margin: 6px !important;
background-color: transparent !important; background-color: transparent !important;
@ -22,4 +22,4 @@
browser { browser {
border-radius: 8px !important; border-radius: 8px !important;
} }*/

View file

@ -42,13 +42,14 @@
kde-rounded-corners kde-rounded-corners
kdePackages.partitionmanager kdePackages.partitionmanager
pkgs.catppuccin-cursors.mochaPeach pkgs.catppuccin-cursors.mochaPeach
adwaita-icon-theme
morewaita-icon-theme
# gui applications # gui applications
input-leap input-leap
libreoffice-qt-fresh libreoffice-qt-fresh
# nur.repos.forkprince.helium-nightly # nur.repos.forkprince.helium-nightly
chromium chromium
qbittorrent
nautilus nautilus
fractal fractal
tuba tuba
@ -58,7 +59,7 @@
strawberry strawberry
musescore musescore
gimp gimp
calibre # calibre
# riff # riff
dissent dissent
loupe loupe

View file

@ -1,15 +1,10 @@
{ {
config,
pkgs, pkgs,
... ...
}: }:
{ {
home = { home.packages = with pkgs; [ openmw-unstable ];
packages = with pkgs; [ openmw ]; home.sessionVariables.SDL_VIDEO_DRIVER = "wayland";
sessionVariables = {
SDL_VIDEO_DRIVER = "wayland";
};
};
programs.firefox.profiles.default.search.engines.uesp = { programs.firefox.profiles.default.search.engines.uesp = {
name = "Unofficial Elder Scrolls Pages"; name = "Unofficial Elder Scrolls Pages";

View file

@ -1,12 +1,11 @@
{ {
pkgs, pkgs,
config,
lib, lib,
... ...
}: }:
{ {
colors = { colors = {
scheme = "catppuccin-latte"; scheme = "kanagawa-dragon";
accent = "base09"; accent = "base09";
}; };
@ -19,33 +18,43 @@
moonlight-qt moonlight-qt
]; ];
# https://github.com/YaLTeR/niri/issues/2330#issuecomment-3256864777 programs = {
programs.niri.settings.debug = { noctalia-shell.settings.bar = {
render-drm-device = "/dev/dri/card2"; position = "top";
}; density = "spacious";
};
programs.noctalia-shell.settings.bar = { niri.settings.outputs."eDP-1" = {
position = "top"; scale = 1.5;
density = "spacious"; mode = {
}; width = 3024;
height = 1964;
refresh = 120.000;
};
position = {
x = 272;
y = 1440;
};
};
programs.plasma = lib.mkDefault { plasma = lib.mkDefault {
input.touchpads = [ input.touchpads = [
{ {
name = "Apple MTP multi-touch"; name = "Apple MTP multi-touch";
vendorId = "05ac"; vendorId = "05ac";
productId = "0352"; productId = "0352";
disableWhileTyping = false; disableWhileTyping = false;
enable = true; enable = true;
tapToClick = false; tapToClick = false;
naturalScroll = true; naturalScroll = true;
accelerationProfile = "default"; accelerationProfile = "default";
} }
]; ];
shortcuts = { shortcuts = {
# this is really annoying on apple laptops # this is really annoying on apple laptops
org_kde_powerdevil.Sleep = [ ]; org_kde_powerdevil.Sleep = [ ];
};
}; };
}; };
} }

View file

@ -23,12 +23,6 @@
}; };
}; };
aerothemeplasma = {
enable = true;
plasma.enable = true;
fonts.enable = true;
};
programs.plasma = lib.mkDefault { programs.plasma = lib.mkDefault {
enable = true; enable = true;
session = { session = {

View file

@ -22,6 +22,31 @@
}; };
}; };
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
clock-format = "12h";
clock-show-weekday = true;
};
"org/gnome/desktop/wm/preferences" = {
button-layout = ":";
action-double-click-titlebar = "'none'";
};
"org/gnome/desktop/media-handling" = {
automount = false;
automount-open = false;
autorun-never = true;
};
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing";
};
"org/gnome/mutter" = {
edge-tiling = true;
dynamic-workspaces = true;
experimental-features = [ "variable-refresh-rate" ];
};
};
home.pointerCursor = { home.pointerCursor = {
gtk.enable = true; gtk.enable = true;
name = config.userOptions.cursor.name; name = config.userOptions.cursor.name;
@ -31,6 +56,8 @@
home.sessionVariables = { home.sessionVariables = {
QT_QPA_PLATFORMTHEME = "qt6ct"; QT_QPA_PLATFORMTHEME = "qt6ct";
# this makes electron apps work per the wiki
NIXOS_OZONE_WL = "1";
}; };
gtk = { gtk = {
@ -46,15 +73,10 @@
# else "Breeze"; # else "Breeze";
# }; # };
# iconTheme = {
# name = if config.userOptions.isDark then "Colloid-Dark" else "Colloid-Light";
# package = pkgs.colloid-icon-theme;
# };
colorScheme = "dark"; colorScheme = "dark";
iconTheme = { iconTheme = {
name = "Colloid-Dark"; name = "MoreWaita";
package = pkgs.colloid-icon-theme; package = pkgs.morewaita-icon-theme;
}; };
cursorTheme = { cursorTheme = {

View file

@ -28,16 +28,14 @@
Description = "Mount Synology NAS with Rclone and Home Manager."; Description = "Mount Synology NAS with Rclone and Home Manager.";
After = [ "tailscaled.service" ]; After = [ "tailscaled.service" ];
Wants = [ "tailscaled.service" ]; Wants = [ "tailscaled.service" ];
StartLimitBurst = 5;
StartLimitIntervalSec = "1m";
}; };
Service = { Service = {
Type = "simple"; Type = "simple";
# ExecStartPre = "${pkgs.writeShellScript "synology-prep" '' Restart = "on-failure";
# if mountpoint -q %h/Synology; then RestartSec = "1m";
# /run/wrappers/bin/fusermount -uz %h/Synology
# fi
# ${pkgs.coreutils}/bin/mkdir -p %h/Synology
# ''}";
ExecStart = "${pkgs.writeShellScript "synology-mount" '' ExecStart = "${pkgs.writeShellScript "synology-mount" ''
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
@ -65,49 +63,4 @@
WantedBy = [ "default.target" ]; WantedBy = [ "default.target" ];
}; };
}; };
# systemd.user.services.synology-prefill = {
# Unit = {
# Description = "Prefill Synology NAS rclone cache";
# After = [ "synology-mount.service" ];
# Wants = [ "synology-mount.service" ];
# };
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.writeShellScript "synology-prefill" ''
# #!/usr/bin/env bash
# set -euo pipefail
# ${pkgs.rclone}/bin/rclone rc vfs/refresh -v --fast-list recursive=true >/dev/null
# ''}";
# StandardOutput = "journal";
# StandardError = "journal";
# Restart = "on-failure";
# };
# Install = {
# WantedBy = [ "default.target" ];
# };
# };
# systemd.user.services.input-leap = {
# Unit = {
# Description = "Autostart Input Leap";
# After = [ "graphical-session.target" ];
# };
# Service = {
# Type = "oneshot";
# RemainAfterExit = true;
# PassEnvironment = "DISPLAY";
# ExecStart = "${pkgs.writeShellScript "input-leap-start" ''
# sleep 5
# ${pkgs.input-leap}/bin/input-leap
# ''}";
# };
# Install = {
# WantedBy = [ "graphical-session.target" ];
# };
# };
} }

View file

@ -1,12 +1,11 @@
{ {
pkgs, pkgs,
config, config,
lib,
... ...
}: }:
{ {
home.sessionVariables = { home.sessionVariables.EDITOR = lib.mkForce "kitty nvim";
EDITOR = "nvim";
};
home.packages = with pkgs; [ home.packages = with pkgs; [
kdePackages.qtdeclarative kdePackages.qtdeclarative

View file

@ -1,6 +1,7 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
imports = [ imports = [
# ./hyprland.nix
./niri.nix ./niri.nix
./noctalia.nix ./noctalia.nix
./wallpaper.nix ./wallpaper.nix
@ -25,7 +26,7 @@
layer = "overlay"; layer = "overlay";
font = with config.userOptions.fontMono; name + ":size=" + toString (size + 2); font = with config.userOptions.fontMono; name + ":size=" + toString (size + 2);
launch-prefix = "${pkgs.niri}/bin/niri msg action spawn --"; launch-prefix = "${pkgs.niri}/bin/niri msg action spawn --";
icon-theme = "Colloid-Dark"; icon-theme = config.gtk.iconTheme.name;
}; };
border = { border = {
width = 2; width = 2;

299
home/tiling/hyprland.nix Normal file
View file

@ -0,0 +1,299 @@
{
config,
...
}:
{
wayland.windowManager.hyprland = with config.scheme; {
enable = true;
settings = {
# -----------------------------------------------------
# Environment Variables & Debug
# -----------------------------------------------------
env = [
"QT_QPA_PLATFORM,wayland"
"QT_QPA_PLATFORMTHEME,qt6ct"
"DISPLAY,:0"
"XCURSOR_THEME,${config.userOptions.cursor.name}"
"XCURSOR_SIZE,${toString config.userOptions.cursor.size}"
];
debug = {
disable_scale_checks = true;
};
# -----------------------------------------------------
# Monitors (Outputs)
# -----------------------------------------------------
monitor = [
"eDP-1, 3024x1964@120.000, 0x0, 1.5"
"HDMI-A-1, 3840x2160@144.000, 0x0, 1.5"
"DP-1, 3840x2160@143.999, 0x0, 1.5"
];
# -----------------------------------------------------
# Autostart
# -----------------------------------------------------
exec-once = [ ]; # systemd is based sorry
# -----------------------------------------------------
# Input
# -----------------------------------------------------
input = {
kb_layout = "us";
numlock_by_default = false;
repeat_delay = 600;
repeat_rate = 25;
follow_mouse = 1;
touchpad = {
natural_scroll = true;
tap-to-click = false;
drag_lock = false;
};
};
device = [
{
name = "epic-mouse-v1";
accel_profile = "adaptive";
natural_scroll = false;
}
];
# -----------------------------------------------------
# General & Layout
# -----------------------------------------------------
general = {
gaps_in = 2;
gaps_out = 4;
border_size = 2;
"col.active_border" = "rgba(${config.scheme.${config.colors.accent}}E6)";
"col.inactive_border" = "rgba(${base01}E6)";
layout = "dwindle";
};
scrolling = {
column_width = 0.5;
follow_focus = true;
explicit_column_widths = "0.333,0.5,0.667";
direction = "right";
};
# -----------------------------------------------------
# Decoration (0.54 Syntax)
# -----------------------------------------------------
decoration = {
rounding = 8;
active_opacity = 0.90;
inactive_opacity = 0.90;
fullscreen_opacity = 1.0;
blur = {
enabled = true;
size = 3;
passes = 2;
noise = 0.05;
contrast = 1.0;
};
# Shadows now live in their own dedicated block
shadow = {
enabled = true;
range = 10;
render_power = 3;
color = "rgba(${base11}BF)";
};
};
# -----------------------------------------------------
# Misc Settings
# -----------------------------------------------------
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
# -----------------------------------------------------
# Window Rules (0.54 Block Syntax)
# -----------------------------------------------------
windowrule = [
{
name = "games-openmw";
"match:class" = "^(openmw)$";
opacity = "1.0 1.0";
maximize = "on";
}
{
name = "games-minecraft";
"match:class" = "^(Minecraft)$";
opacity = "1.0 1.0";
maximize = "on";
}
{
name = "media-mpv";
"match:class" = "^(mpv)$";
opacity = "1.0 1.0";
}
{
name = "media-pip";
"match:class" = "^(firefox)$";
"match:title" = "^(Picture-in-Picture)$";
opacity = "1.0 1.0";
float = "on";
}
{
name = "terminal-fastfetch";
"match:class" = "^(kitty)$";
"match:title" = "^(fastfetch)$";
float = "on";
size = "960 480";
center = "on";
}
];
# -----------------------------------------------------
# Layer Rules (0.54 Block Syntax)
# -----------------------------------------------------
layerrule = [
{
name = "bar-blur";
"match:namespace" = "^(noctalia-bar-content-.*)$";
blur = "on";
ignore_alpha = "0";
}
{
name = "launcher-blur";
"match:namespace" = "^(launcher)$";
blur = "on";
ignore_alpha = "0";
}
];
# -----------------------------------------------------
# Keybindings
# -----------------------------------------------------
"$mod" = "SUPER";
bind = [
"$mod, T, exec, kitty"
"$mod SHIFT, T, exec, kitty --title fastfetch sh -c 'fastfetch; sleep 10'"
"$mod, Space, exec, fuzzel"
", XF86Search, exec, fuzzel"
"$mod, M, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next"
"$mod, Q, killactive,"
"$mod SHIFT, E, exit,"
"CTRL ALT, Delete, exit,"
"$mod, V, togglefloating,"
"$mod SHIFT, F, fullscreen, 1"
"$mod CTRL SHIFT, F, fullscreen, 0"
"$mod, W, togglegroup,"
"$mod SHIFT, left, focusmonitor, l"
"$mod SHIFT, down, focusmonitor, d"
"$mod SHIFT, up, focusmonitor, u"
"$mod SHIFT, right, focusmonitor, r"
"$mod SHIFT, H, focusmonitor, l"
"$mod SHIFT, J, focusmonitor, d"
"$mod SHIFT, K, focusmonitor, u"
"$mod SHIFT, L, focusmonitor, r"
"$mod SHIFT CTRL, left, movewindow, mon:l"
"$mod SHIFT CTRL, down, movewindow, mon:d"
"$mod SHIFT CTRL, up, movewindow, mon:u"
"$mod SHIFT CTRL, right, movewindow, mon:r"
"$mod, Page_Down, workspace, e+1"
"$mod, Page_Up, workspace, e-1"
"$mod, U, workspace, e+1"
"$mod, I, workspace, e-1"
"$mod, mouse_down, workspace, e+1"
"$mod, mouse_up, workspace, e-1"
"$mod CTRL, Page_Down, movetoworkspace, e+1"
"$mod CTRL, Page_Up, movetoworkspace, e-1"
"$mod CTRL, U, movetoworkspace, e+1"
"$mod CTRL, I, movetoworkspace, e-1"
"$mod SHIFT, S, exec, grim -g \"$(slurp)\" ~/Pictures/Screenshots/$(date +'%%a %%b %%e %%Y @%%l:%%M %%p').png"
"CTRL SHIFT, S, exec, grim ~/Pictures/Screenshots/$(date +'%%a %%b %%e %%Y @%%l:%%M %%p').png"
"$mod SHIFT, P, dpms, off"
", XF86Sleep, dpms, off"
]
++ (builtins.concatLists (
builtins.attrValues (
builtins.mapAttrs
(key: dir: [
"$mod, ${key}, movefocus, ${dir}"
"$mod CTRL, ${key}, movewindow, ${dir}"
])
{
left = "l";
right = "r";
up = "u";
down = "d";
H = "l";
L = "r";
K = "u";
J = "d";
}
)
))
++ (builtins.concatLists (
builtins.genList (
x:
let
ws =
let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in
[
"$mod, ${ws}, workspace, ${ws}"
"$mod CTRL, ${ws}, movetoworkspace, ${ws}"
]
) 9
));
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"
"SHIFT, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01+"
"SHIFT, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01-"
", MouseForward, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"
", MouseBack, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"
"SHIFT, MouseForward, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01+"
"SHIFT, MouseBack, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01-"
", XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase"
", XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease"
"SHIFT, XF86MonBrightnessUp, exec, brightnessctl --class=backlight set +1%"
"SHIFT, XF86MonBrightnessDown, exec, brightnessctl --class=backlight set 1%-"
"$mod, equal, resizeactive, 40 0"
"$mod, minus, resizeactive, -40 0"
"$mod SHIFT, equal, resizeactive, 0 40"
"$mod SHIFT, minus, resizeactive, 0 -40"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
};
};
}

View file

@ -1,6 +1,5 @@
{ {
config, config,
pkgs,
... ...
}: }:
{ {
@ -17,7 +16,7 @@
XCURSOR_THEME = config.userOptions.cursor.name; XCURSOR_THEME = config.userOptions.cursor.name;
XCURSOR_SIZE = toString config.userOptions.cursor.size; XCURSOR_SIZE = toString config.userOptions.cursor.size;
}; };
screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; screenshot-path = "~/Pictures/Screenshots/%a %b %e %Y @%l:%M %p.png";
hotkey-overlay.skip-at-startup = true; hotkey-overlay.skip-at-startup = true;
prefer-no-csd = true; prefer-no-csd = true;
gestures.hot-corners.enable = false; gestures.hot-corners.enable = false;
@ -29,7 +28,6 @@
input = { input = {
focus-follows-mouse.enable = true; focus-follows-mouse.enable = true;
focus-follows-mouse.max-scroll-amount = "0%"; focus-follows-mouse.max-scroll-amount = "0%";
warp-mouse-to-focus.enable = true;
mod-key = "Super"; mod-key = "Super";
keyboard = { keyboard = {
numlock = false; numlock = false;
@ -50,13 +48,6 @@
}; };
}; };
outputs = { outputs = {
"eDP-1" = {
scale = 1.5;
position = {
x = 272;
y = 1440;
};
};
"HDMI-A-1" = { "HDMI-A-1" = {
mode = { mode = {
width = 3840; width = 3840;
@ -84,17 +75,13 @@
}; };
cursor = { cursor = {
hide-when-typing = false; hide-when-typing = false;
# hide-after-inactive-ms = 10000;
size = config.userOptions.cursor.size; size = config.userOptions.cursor.size;
theme = config.userOptions.cursor.name; theme = config.userOptions.cursor.name;
}; };
layout = { layout = {
gaps = 4; gaps = 4;
# background-color = base10;
background-color = "transparent"; background-color = "transparent";
default-column-width = { default-column-width.proportion = 0.5;
proportion = 0.5;
};
preset-column-widths = [ preset-column-widths = [
{ proportion = 4.0 / 12.0; } { proportion = 4.0 / 12.0; }
{ proportion = 6.0 / 12.0; } { proportion = 6.0 / 12.0; }
@ -103,16 +90,16 @@
border = { border = {
enable = true; enable = true;
width = 2; width = 2;
active.color = config.scheme.withHashtag.${config.colors.accent}; active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
inactive.color = base01; inactive.color = base01 + "E6";
urgent.color = base12; urgent.color = base12 + "E6";
}; };
focus-ring = { focus-ring = {
enable = false; enable = false;
width = 2; width = 2;
active.color = config.scheme.withHashtag.${config.colors.accent}; active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
inactive.color = base01; inactive.color = base01 + "E6";
urgent.color = base12; urgent.color = base12 + "E6";
}; };
shadow = { shadow = {
enable = true; enable = true;
@ -122,12 +109,6 @@
softness = 30; softness = 30;
color = base11 + "BF"; color = base11 + "BF";
}; };
# blur = {
# enable = true;
# passes = 4;
# radius = 4;
# noise = 0.1;
# };
}; };
window-rules = [ window-rules = [
{ {
@ -138,30 +119,34 @@
bottom-right = 8.0; bottom-right = 8.0;
}; };
clip-to-geometry = true; clip-to-geometry = true;
opacity = 1.0; opacity = 0.90;
} background-effect = {
{ xray = false;
matches = [ blur = true;
{ noise = 0.05;
app-id = "firefox$"; saturation = 1;
title = "^Picture-in-Picture$";
}
];
open-floating = true;
default-floating-position = {
x = 16;
y = 16;
relative-to = "bottom-left";
}; };
draw-border-with-background = false;
} }
{ {
matches = [ matches = [
{ {
app-id = "vesktop$"; app-id = "vesktop$";
} }
{
app-id = "org.gnome.Nautilus$";
}
]; ];
block-out-from = "screen-capture"; block-out-from = "screen-capture";
} }
{
matches = [
{
is-active = false;
}
];
opacity = 0.90;
}
{ {
matches = [ matches = [
{ {
@ -173,41 +158,108 @@
title = "Minecraft"; title = "Minecraft";
} }
]; ];
open-maximized = true; open-maximized-to-edges = true;
open-focused = true; open-focused = true;
opacity = 1.00;
}
{
matches = [
{
app-id = "mpv";
}
{
app-id = "firefox";
title = "Picture-in-Picture";
}
];
opacity = 1.0;
}
{
# Kitty Fastfetch window
matches = [
{
app-id = "kitty";
title = "^fastfetch$";
}
];
open-floating = true;
baba-is-float = true;
min-width = 960;
min-height = 480;
max-width = 960;
max-height = 480;
} }
]; ];
layer-rules = [ layer-rules = [
{ {
matches = [ matches = [ { namespace = "noctalia-bar-content-.*$"; } ];
{ background-effect = {
namespace = "^wpaperd.*"; xray = false;
} blur = true;
]; noise = 0.05;
saturation = 1;
};
}
{
matches = [ { namespace = "^launcher$"; } ];
opacity = 0.90;
background-effect = {
xray = false;
blur = true;
noise = 0.05;
saturation = 1;
};
}
{
matches = [ { namespace = "^wallpaper$"; } ];
place-within-backdrop = true; place-within-backdrop = true;
} }
]; ];
binds = { binds = {
"Mod+Shift+Slash".action.show-hotkey-overlay = { }; "Mod+Shift+Slash".action.show-hotkey-overlay = { };
"Mod+D" = {
action.toggle-window-rule-opacity = { };
repeat = false;
};
"Mod+M" = {
action.spawn = [
"wpctl"
"set-mute"
"@DEFAULT_AUDIO_SOURCE@"
"toggle"
];
hotkey-overlay.title = "Toggle Microphone Mute";
repeat = false;
};
"Mod+T" = { "Mod+T" = {
action.spawn = [ "kitty" ]; action.spawn = [ "kitty" ];
hotkey-overlay.title = "Open a Terminal: kitty"; hotkey-overlay.title = "Open a Terminal: kitty";
}; };
"Mod+Shift+T" = {
action.spawn-sh = [ "kitty --title fastfetch sh -c 'fastfetch; sleep 10'" ];
hotkey-overlay.title = "Open a Terminal with Fastfetch";
};
"Mod+Space" = { "Mod+Space" = {
action.spawn = [ "fuzzel" ]; action.spawn = [ "fuzzel" ];
hotkey-overlay.title = "Run an Application: Noctalia app launcher"; hotkey-overlay.title = "Run an Application: Fuzzel";
}; };
"XF86AudioRaiseVolume" = { "XF86AudioRaiseVolume" = {
action.spawn-sh = [ action.spawn = [
"noctalia-shell ipc call volume increase" "wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.05+"
]; ];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86AudioLowerVolume" = { "XF86AudioLowerVolume" = {
action.spawn-sh = [ action.spawn = [
"noctalia-shell ipc call volume decrease" "wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.05-"
]; ];
allow-when-locked = true; allow-when-locked = true;
}; };
@ -232,14 +284,20 @@
}; };
"MouseForward" = { "MouseForward" = {
action.spawn-sh = [ action.spawn = [
"noctalia-shell ipc call volume increase" "wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.05+"
]; ];
allow-when-locked = true; allow-when-locked = true;
}; };
"MouseBack" = { "MouseBack" = {
action.spawn-sh = [ action.spawn = [
"noctalia-shell ipc call volume decrease" "wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.05-"
]; ];
allow-when-locked = true; allow-when-locked = true;
}; };
@ -264,14 +322,20 @@
}; };
"XF86AudioMute" = { "XF86AudioMute" = {
action.spawn-sh = [ action.spawn = [
"noctalia-shell ipc call volume muteOutput" "wpctl"
"set-mute"
"@DEFAULT_AUDIO_SINK@"
"toggle"
]; ];
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86AudioMicMute" = { "XF86AudioMicMute" = {
action.spawn-sh = [ action.spawn = [
"noctalia-shell ipc call volume muteInput" "wpctl"
"set-mute"
"@DEFAULT_AUDIO_SOURCE@"
"toggle"
]; ];
allow-when-locked = true; allow-when-locked = true;
}; };
@ -342,29 +406,13 @@
allow-when-locked = true; allow-when-locked = true;
}; };
"XF86Sleep" = { "XF86Sleep".action.power-off-monitors = { };
action.power-off-monitors = { };
};
"XF86Search" = { "XF86Search".action.spawn = [ "fuzzel" ];
action.spawn = [
"noctalia-shell"
"ipc"
"call"
"launcher"
"toggle"
];
allow-when-locked = true;
};
"XF86LaunchA" = { "XF86LaunchA" = {
action.spawn = [ action.toggle-overview = { };
"niri" repeat = false;
"msg"
"action"
"toggle-overview"
];
allow-when-locked = true;
}; };
"Mod+O" = { "Mod+O" = {
@ -492,18 +540,15 @@
"Mod+Ctrl+Shift+F".action.fullscreen-window = { }; "Mod+Ctrl+Shift+F".action.fullscreen-window = { };
"Mod+C".action.center-column = { }; "Mod+C".action.center-column = { };
"Mod+Ctrl+C".action.center-visible-columns = { }; "Mod+Ctrl+C".action.center-visible-columns = { };
"Mod+Minus".action.set-column-width = "-10%"; "Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%"; "Mod+Equal".action.set-column-width = "+10%";
"Mod+Shift+Minus".action.set-window-height = "-10%"; "Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%"; "Mod+Shift+Equal".action.set-window-height = "+10%";
"Mod+Ctrl+Minus".action.set-column-width = "-0.25%"; "Mod+Ctrl+Minus".action.set-column-width = "-0.25%";
"Mod+Ctrl+Equal".action.set-column-width = "+0.25%"; "Mod+Ctrl+Equal".action.set-column-width = "+0.25%";
"Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%"; "Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%";
"Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%"; "Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%";
@ -512,18 +557,9 @@
"Mod+W".action.toggle-column-tabbed-display = { }; "Mod+W".action.toggle-column-tabbed-display = { };
"Print".action.screenshot = { "Mod+Shift+S".action.screenshot.show-pointer = false;
show-pointer = false; "Ctrl+Shift+S".action.screenshot-screen.show-pointer = false;
}; "Alt+Shift+S".action.screenshot-window.show-pointer = false;
"Mod+Shift+S".action.screenshot = {
show-pointer = false;
};
"Ctrl+Print".action.screenshot-screen = {
show-pointer = false;
};
"Alt+Print".action.screenshot-window = {
show-pointer = false;
};
"Mod+Escape" = { "Mod+Escape" = {
action.toggle-keyboard-shortcuts-inhibit = { }; action.toggle-keyboard-shortcuts-inhibit = { };

View file

@ -63,12 +63,12 @@
bar = { bar = {
autoHideDelay = 500; autoHideDelay = 500;
autoShowDelay = 150; autoShowDelay = 150;
backgroundOpacity = 1; backgroundOpacity = 0.90;
monitors = [ ]; monitors = [ ];
showCapsule = true; showCapsule = true;
barType = "simple"; barType = "simple";
capsuleColorKey = "none"; capsuleColorKey = "none";
capsuleOpacity = 1; capsuleOpacity = 0.90;
displayMode = "always_visible"; displayMode = "always_visible";
floating = false; floating = false;
marginHorizontal = 5; marginHorizontal = 5;
@ -79,7 +79,7 @@
outerCorners = false; outerCorners = false;
screenOverrides = [ ]; screenOverrides = [ ];
showOutline = false; showOutline = false;
useSeparateOpacity = false; useSeparateOpacity = true;
widgets = { widgets = {
center = [ ]; center = [ ];
left = [ left = [
@ -206,7 +206,7 @@
deviceNativePath = "__default__"; deviceNativePath = "__default__";
displayMode = "icon-hover"; displayMode = "icon-hover";
hideIfIdle = false; hideIfIdle = false;
hideIfNotDetected = false; hideIfNotDetected = true;
id = "Battery"; id = "Battery";
showNoctaliaPerformance = false; showNoctaliaPerformance = false;
showPowerProfiles = true; showPowerProfiles = true;
@ -598,23 +598,19 @@
After = [ "niri.service" ]; After = [ "niri.service" ];
PartOf = [ "niri.service" ]; PartOf = [ "niri.service" ];
Description = "Noctalia Shell - Wayland desktop shell"; Description = "Noctalia Shell - Wayland desktop shell";
Documentation = "https://docs.noctalia.dev/docs"; Documentation = "https://docs.noctalia.dev";
X-Restart-Triggers = [
"${config.xdg.configFile."noctalia/settings.json".source}"
"${config.xdg.configFile."noctalia/colors.json".source}"
];
}; };
Service = { Service = {
ExecStart = "${pkgs.noctalia-shell}/bin/noctalia-shell"; ExecStart = "${pkgs.noctalia-shell}/bin/noctalia-shell";
Restart = "on-failure"; Restart = "on-failure";
Environment = [ Environment = [ "QT_QPA_PLATFORMTHEME=qt6ct" ];
"LOCALE_ARCHIVE=${pkgs.glibcLocales}/lib/locale"
"TZDIR=${pkgs.tzdata}/share/zoneinfo"
"NOCTALIA_SETTINGS_FALLBACK=%h/.config/noctalia/gui-settings.json"
"QT_QPA_PLATFORM=wayland"
"QT_QPA_PLATFORMTHEME=qt6ct"
];
}; };
Install = { Install.WantedBy = [ "niri.service" ];
WantedBy = [ "niri.service" ];
};
}; };
} }

View file

@ -4,78 +4,104 @@
... ...
}: }:
{ {
home.packages = with pkgs; [ systemd.user.services.wbg-daemon = {
wpaperd Unit.Description = "Wallpaper service using wbg (daemon)";
]; Service.ExecStart = ''
${pkgs.wbg}/bin/wbg -s \
home.file.".config/wpaperd/config.toml" = { %h/.local/share/wallpaper/daily-colored.jpg
text = ''
[default]
mode = "center"
[any]
path = "/home/${config.userOptions.username}/.local/share/wallpaper/daily.jpg"
''; '';
force = true; Install.WantedBy = [ "niri.service" ];
};
systemd.user.services.wpaperd = {
Unit = {
Description = "Modern wallpaper daemon for Wayland";
PartOf = [ "niri.service" ];
Requires = [ "niri.service" ];
After = [ "niri.service" ];
};
Service = {
ExecStart = "${pkgs.wpaperd}/bin/wpaperd";
};
Install = {
WantedBy = [ "niri.service" ];
};
}; };
systemd.user.services.bing-wallpaper = { systemd.user.services.bing-wallpaper = {
Unit = { Unit.Description = "Download and set Bing wallpaper of the day";
Description = "Download and set Bing wallpaper of the day"; Unit.StartLimitBurst = 6;
After = [ "network-online.target" ]; Unit.StartLimitIntervalSec = "10m";
Wants = [ "network-online.target" ]; Service.Restart = "on-failure";
}; Service.RestartSec = "10s";
Service = { Service.Type = "oneshot";
Type = "oneshot"; Service.ExecStart = pkgs.lib.getExe (
ExecStart = pkgs.writeShellScript "bing-wallpaper" '' pkgs.writeShellApplication {
OUT="''${XDG_DATA_HOME:-$HOME/.local/share}/wallpaper/daily.jpg" name = "bing-wallpaper";
runtimeInputs = with pkgs; [
wget
jq
coreutils
libnotify
];
text = ''
OUT="$HOME/.local/share/wallpaper/daily.jpg"
API=$(wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1")
BASE=$(echo "$API" | jq -r '.images[0].urlbase')
TITLE=$(echo "$API" | jq -r '.images[0].title')
API_RESP=$(${pkgs.wget}/bin/wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1") || exit 1 mkdir -p "$HOME/.local/share/wallpaper"
wget -qO "$OUT" "https://www.bing.com''${BASE}_UHD.jpg"
URL_BASE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'urlbase":"[^"]*' | cut -d '"' -f 3) notify-send \
TITLE=$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'title":"[^"]*' | cut -d '"' -f 3) -a "Wallpaper of the day" \
-u low \
${pkgs.coreutils}/bin/mkdir -p "$(dirname "$OUT")" -i preferences-desktop-wallpaper \
${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$URL_BASE\_UHD.jpg" || \ "$TITLE"
${pkgs.wget}/bin/wget -qO "$OUT" "https://www.bing.com$(echo "$API_RESP" | ${pkgs.gnugrep}/bin/grep -oP 'url":"[^"]*' | cut -d '"' -f 3)" '';
}
${pkgs.libnotify}/bin/notify-send \ );
-a "Bing Wallpaper Service" \ Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user start gowall-convert.service";
-u low \ Install.WantedBy = [ "niri.service" ];
-i preferences-desktop-wallpaper \
"$TITLE"
'';
ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wpaperd.service";
};
Install = {
WantedBy = [ "niri.service" ];
};
}; };
systemd.user.timers.bing-wallpaper = { systemd.user.timers.bing-wallpaper = {
Unit = { Unit.Description = "Run bing wallpaper retrieval daily";
Description = "Run bing wallpaper retrieval daily"; Timer.OnCalendar = "*-*-* 10:00:00 GMT";
}; Timer.Persistent = true;
Timer = { Install.WantedBy = [ "timers.target" ];
OnCalendar = "*-*-* 10:00:00 GMT";
Persistent = true;
};
Install = {
WantedBy = [ "timers.target" ];
};
}; };
systemd.user.services.gowall-convert = {
Unit.Description = "Convert a wallpaper to the system color scheme";
Unit.StartLimitBurst = 6;
Unit.StartLimitIntervalSec = "10m";
Service.Restart = "on-failure";
Service.RestartSec = "10s";
Service.Type = "oneshot";
Service.ExecStart = ''
${pkgs.gowall}/bin/gowall convert \
%h/.local/share/wallpaper/daily.jpg \
--output %h/.local/share/wallpaper/daily-colored.jpg \
-t nix
'';
Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wbg-daemon.service";
};
home.file.".config/gowall/config.yml".text = with config.scheme.withHashtag; ''
themes:
- name: "nix"
colors:
- "${base06}"
- "${base0F}"
- "${base17}"
- "${base0E}"
- "${base08}"
- "${base12}"
- "${base09}"
- "${base0A}"
- "${base0B}"
- "${base0C}"
- "${base15}"
- "${base16}"
- "${base0D}"
- "${base07}"
- "${base05}"
- "${base07}"
- "${base0D}"
- "${base0D}"
- "${base04}"
- "${base04}"
- "${base04}"
- "${base03}"
- "${base02}"
- "${base00}"
- "${base01}"
- "${base11}"
'';
} }

View file

@ -1,56 +0,0 @@
{
lib,
stdenv,
fetchYarnDeps,
yarn,
nodejs,
fixup-yarn-lock,
nodePackages,
catppuccin-discord-git,
}:
stdenv.mkDerivation rec {
pname = "catppuccin-discord";
version = "unstable-${catppuccin-discord-git.rev}";
src = catppuccin-discord-git;
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-BhE3aKyA/LBErjWx+lbEVb/CIXhqHkXbV+9U2djIBhs=";
};
nativeBuildInputs = [
yarn
nodejs
fixup-yarn-lock
nodePackages.sass
];
postPatch = ''
substituteInPlace package.json \
--replace-fail "--no-charset --no-source-map" ""
'';
configurePhase = ''
export HOME=$TMPDIR
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
fixup-yarn-lock yarn.lock
yarn install --offline --frozen-lockfile --ignore-scripts --ignore-platform
'';
buildPhase = ''
yarn --offline release
'';
installPhase = ''
mkdir -p $out/share/catppuccin-discord
cp -r dist/dist/* $out/share/catppuccin-discord/
'';
meta = {
description = "Soothing pastel theme for Discord";
homepage = "https://github.com/catppuccin/discord";
license = lib.licenses.mit;
platforms = lib.platforms.all;
};
}

View file

@ -1,11 +1,7 @@
final: prev: { final: prev: {
spotify-webapp = final.callPackage ./spotify-webapp { }; spotify-webapp = final.callPackage ./spotify-webapp { };
catppuccin-discord = final.callPackage ./catppuccin-discord { openmw-unstable = prev.openmw.overrideAttrs (oldAttrs: {
inherit (final) catppuccin-discord-git;
};
openmw = prev.openmw.overrideAttrs (oldAttrs: {
pname = "openmw"; pname = "openmw";
src = final.openmw-git; src = final.openmw-git;
version = "${final.openmw-git.rev}"; version = "${final.openmw-git.rev}";

View file

@ -2,28 +2,16 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ {
config,
pkgs, pkgs,
... ...
}: }:
{ {
environment.sessionVariables = {
# this makes electron apps work per the wiki
NIXOS_OZONE_WL = "1";
};
boot = { boot = {
plymouth = { plymouth.enable = true;
enable = true; plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
};
loader = { loader = {
timeout = 3; timeout = 3;
# systemd-boot = {
# enable = true;
# consoleMode = lib.mkForce "auto";
# configurationLimit = 10;
# };
limine = { limine = {
enable = true; enable = true;
maxGenerations = 10; maxGenerations = 10;
@ -40,7 +28,6 @@
}; };
}; };
}; };
# efi.canTouchEfiVariables = true;
}; };
kernelParams = [ kernelParams = [
"quiet" "quiet"
@ -53,11 +40,106 @@
]; ];
consoleLogLevel = 0; consoleLogLevel = 0;
initrd.verbose = false; initrd.verbose = false;
extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
'';
}; };
networking.networkmanager.enable = true; programs = {
hardware.bluetooth.enable = true; gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-curses;
};
niri.enable = true;
niri.package = pkgs.niri-unstable;
dconf.enable = true;
dconf.profiles.user = {
databases = [
{
# breaks user-level indirect config of dconf
# lockAll = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
clock-format = "12h";
clock-show-weekday = true;
};
"org/gnome/desktop/wm/preferences" = {
button-layout = ":";
action-double-click-titlebar = "'none'";
};
"org/gnome/desktop/media-handling" = {
automount = false;
automount-open = false;
autorun-never = true;
};
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing";
};
"org/gnome/mutter" = {
edge-tiling = true;
dynamic-workspaces = true;
experimental-features = [ "variable-refresh-rate" ];
};
};
}
];
};
# hyprland = {
# enable = true;
# package = pkgs.hyprland;
# portalPackage = pkgs.xdg-desktop-portal-hyprland;
# withUWSM = true;
# };
};
services = {
desktopManager.plasma6.enable = true;
displayManager = {
sddm.enable = true;
sddm.wayland.enable = true;
defaultSession = "niri";
};
gnome.gnome-keyring.enable = true;
libinput.enable = true;
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
udisks2.enable = true;
gvfs.enable = true;
upower.enable = true;
power-profiles-daemon.enable = true;
openssh.enable = true;
};
environment.systemPackages = with pkgs; [
git
firefoxpwa
(wrapOBS {
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
})
];
security.pam.services.niri.enableGnomeKeyring = config.services.gnome.gnome-keyring.enable;
security.polkit.enable = true;
networking.firewall.enable = false;
networking.networkmanager.enable = true;
documentation.man.enable = true;
documentation.man.generateCaches = false;
hardware.graphics.enable = true;
hardware.bluetooth.enable = true;
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {
@ -72,108 +154,6 @@
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
}; };
# Enable OpenGL
hardware.graphics = {
enable = true;
};
programs.niri = {
enable = true;
package = pkgs.niri-unstable;
};
services.gnome.gnome-keyring.enable = true;
security.pam.services.niri.enableGnomeKeyring = true;
programs.dconf.enable = true;
programs.dconf.profiles.user = {
databases = [
{
# breaks user-level indirect config of dconf
# lockAll = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
clock-format = "12h";
clock-show-weekday = true;
};
"org/gnome/desktop/wm/preferences" = {
button-layout = ":";
action-double-click-titlebar = "'none'";
};
"org/gnome/desktop/media-handling" = {
automount = false;
automount-open = false;
autorun-never = true;
};
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing";
};
"org/gnome/mutter" = {
edge-tiling = true;
dynamic-workspaces = true;
experimental-features = [ "variable-refresh-rate" ];
};
};
}
];
};
aerothemeplasma = {
enable = true;
plasma.enable = true;
fonts.enable = false;
plymouth.enable = false;
sddm.enable = true;
};
services = {
# displayManager = {
# gdm.enable = true;
# defaultSession = "niri";
# };
desktopManager.plasma6.enable = true;
displayManager = {
sddm.enable = true;
defaultSession = "aerothemeplasma";
};
libinput.enable = true;
printing.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
udisks2.enable = true;
gvfs.enable = true;
upower.enable = true;
power-profiles-daemon.enable = true;
};
environment = {
systemPackages = with pkgs; [
git
firefoxpwa
distrobox
];
};
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-curses;
};
networking.firewall.enable = false;
documentation.man = {
enable = true;
generateCaches = false;
};
services.openssh.enable = true;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,7 +1,7 @@
{ catppuccin, ... }: { ... }:
{ {
home-manager.users.sckova = { home-manager.users.sckova = {
imports = [ catppuccin.homeModules.catppuccin ]; imports = [ ];
}; };
services.spice-vdagentd.enable = true; services.spice-vdagentd.enable = true;

View file

@ -16,7 +16,7 @@
pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out" pkgs.runCommand "gen-key" { buildInputs = [ pkgs.openssl ]; } "openssl rand -hex 32 > $out"
) )
); );
port = 8080; port = 5364;
bind_address = "127.0.0.1"; bind_address = "127.0.0.1";
}; };

View file

@ -0,0 +1,53 @@
{
lib,
config,
pkgs,
...
}:
{
users.users.sckova.extraGroups = [ "qbittorrent" ];
services = {
qbittorrent = {
enable = true;
serverConfig = {
Preferences = {
Advanced.useSystemIconTheme = true;
General = {
CloseToTray = false;
CloseToTrayNotified = true;
ExitConfirm = false;
Locale = "en";
};
WebUI = {
Address = "*";
Enabled = true;
Port = 9697;
UseUPnP = false;
};
BitTorrent = {
SessionGlobalDLSpeedLimit = 0;
GlobalUPSpeedLimit = 0;
Port = 42578;
QueueingSystemEnabled = false;
SSL.Port = 63114;
StartPaused = false;
};
};
};
};
flaresolverr = {
enable = true;
port = 8191;
};
prowlarr = {
enable = true;
settings = {
server = {
urlbase = "localhost";
port = 9696;
bindaddress = "*";
};
};
};
};
}