dot

vizie's NixOS desktop: Hyprland, CachyOS kernel and gaming tweaks

53 lines1868 bytesNix
1# Packages this config adds to nixpkgs or patches. Used as an overlay, so the
2# patched waybar replaces the stock one everywhere.
3final: prev: {
4 # Same three patches as the Arch PKGBUILD in the old dotfiles repo; see the
5 # comments at the top of each patch.
6 waybar = prev.waybar.overrideAttrs (old: {
7 patches = (old.patches or [ ]) ++ [
8 ./waybar/tray-sticky-custom-icons.patch
9 ./waybar/tray-order.patch
10 ./waybar/hyprland-lua-dispatch.patch
11 ];
12 });
13
14 xembedsniproxy = final.callPackage ./xembedsniproxy { };
15 signal-desktop-themed = final.callPackage ./signal-desktop-themed { };
16 claude-desktop = final.callPackage ./claude-desktop { };
17 opendeck = final.callPackage ./opendeck { };
18 breezex-cursor = final.callPackage ./breezex-cursor { };
19 proton-cachyos = final.callPackage ./proton-cachyos { };
20
21 # python3 for the Waybar/Eww scripts and xwl-clipbridge: PyGObject (Gio, GLib,
22 # Gdk) and python-xlib, with the typelibs those imports need on its own path,
23 # since the scripts run from Waybar and systemd rather than a wrapped program.
24 python3-desktop =
25 let
26 python = final.python3.withPackages (ps: [
27 ps.pygobject3
28 ps.xlib
29 ]);
30 in
31 final.symlinkJoin {
32 name = "python3-desktop";
33 paths = [ python ];
34 nativeBuildInputs = [ final.makeWrapper ];
35 postBuild = ''
36 for exe in $out/bin/python3 $out/bin/python; do
37 wrapProgram "$exe" --prefix GI_TYPELIB_PATH : ${
38 final.lib.makeSearchPath "lib/girepository-1.0" (
39 map (p: p.out or p) [
40 final.glib
41 final.gobject-introspection
42 final.gtk3
43 final.pango
44 final.gdk-pixbuf
45 final.atk
46 final.harfbuzz
47 ]
48 )
49 }
50 done
51 '';
52 };
53}