dot
vizie's NixOS desktop: Hyprland, CachyOS kernel and gaming tweaks
| 1 | # Programs your configs and scripts call, and your own tools. |
| 2 | { inputs, pkgs, ... }: |
| 3 | let |
| 4 | system = pkgs.stdenv.hostPlatform.system; |
| 5 | |
| 6 | # Philly's webview (WebKitGTK) closes at once on the NVIDIA driver under |
| 7 | # Wayland, with "Error 71 (Protocol error) dispatching to Wayland display", |
| 8 | # unless its DMA-BUF renderer is off. Set on the program itself, so it holds |
| 9 | # however Philly is started (terminal, fuzzel, or as the folder handler from |
| 10 | # an app running as a systemd service, which doesn't get hyprland.lua's env). |
| 11 | philly = pkgs.symlinkJoin { |
| 12 | name = "philly"; |
| 13 | paths = [ inputs.philly.packages..default ]; |
| 14 | nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; |
| 15 | postBuild = '' |
| 16 | rm $out/bin/philly |
| 17 | makeWrapper /bin/philly $out/bin/philly \ |
| 18 | --set-default WEBKIT_DISABLE_DMABUF_RENDERER 1 |
| 19 | ''; |
| 20 | }; |
| 21 | in |
| 22 | { |
| 23 | home.packages = with pkgs; [ |
| 24 | # The Hyprland desktop: launcher, bar flyouts, notifications, idle/lock. |
| 25 | fuzzel |
| 26 | eww |
| 27 | dunst |
| 28 | libnotify |
| 29 | hyprpaper |
| 30 | hypridle |
| 31 | wl-clipboard |
| 32 | playerctl |
| 33 | |
| 34 | # python3 with PyGObject and python-xlib, for the Waybar/Eww scripts. |
| 35 | python3-desktop |
| 36 | |
| 37 | # Called by the control centre and tray scripts. |
| 38 | pulseaudio # pactl |
| 39 | bluez # bluetoothctl |
| 40 | solaar # mouse battery fallback (mouse-battery.sh) |
| 41 | |
| 42 | # Screenshots and screen recording (imsh-shot, imsh-cast; Super+Shift+S/F/R). |
| 43 | inputs.imsh-clients.packages..default |
| 44 | # Philly, the file browser (also the handler for folders, in mimeapps.list). |
| 45 | philly |
| 46 | ]; |
| 47 | } |