# Packages this config adds to nixpkgs or patches. Used as an overlay, so the # patched waybar replaces the stock one everywhere. Takes the flake's inputs first. inputs: final: prev: { # Same three patches as the Arch PKGBUILD in the old dotfiles repo; see the # comments at the top of each patch. waybar = prev.waybar.overrideAttrs (old: { patches = (old.patches or [ ]) ++ [ ./waybar/tray-sticky-custom-icons.patch ./waybar/tray-order.patch ./waybar/hyprland-lua-dispatch.patch ]; }); xembedsniproxy = final.callPackage ./xembedsniproxy { }; # Signal from the nixpkgs-signal input until nixos-unstable has 8.31.0 too; # then the input and this choice can go. signal-desktop-themed = final.callPackage ./signal-desktop-themed { signal-desktop = if final.lib.versionAtLeast prev.signal-desktop.version "8.31.0" then prev.signal-desktop else inputs.nixpkgs-signal.legacyPackages.${final.stdenv.hostPlatform.system}.signal-desktop; }; claude-desktop = final.callPackage ./claude-desktop { }; opendeck = final.callPackage ./opendeck { }; breezex-cursor = final.callPackage ./breezex-cursor { }; proton-cachyos = final.callPackage ./proton-cachyos { }; # python3 for the Waybar/Eww scripts and xwl-clipbridge: PyGObject (Gio, GLib, # Gdk) and python-xlib, with the typelibs those imports need on its own path, # since the scripts run from Waybar and systemd rather than a wrapped program. python3-desktop = let python = final.python3.withPackages (ps: [ ps.pygobject3 ps.xlib ]); in final.symlinkJoin { name = "python3-desktop"; paths = [ python ]; nativeBuildInputs = [ final.makeWrapper ]; postBuild = '' for exe in $out/bin/python3 $out/bin/python; do wrapProgram "$exe" --prefix GI_TYPELIB_PATH : ${ final.lib.makeSearchPath "lib/girepository-1.0" ( map (p: p.out or p) [ final.glib final.gobject-introspection final.gtk3 final.pango final.gdk-pixbuf final.atk final.harfbuzz ] ) } done ''; }; }