# Programs your configs and scripts call, and your own tools. { inputs, pkgs, ... }: let system = pkgs.stdenv.hostPlatform.system; # Philly's webview (WebKitGTK) closes at once on the NVIDIA driver under # Wayland, with "Error 71 (Protocol error) dispatching to Wayland display", # unless its DMA-BUF renderer is off. Set on the program itself, so it holds # however Philly is started (terminal, fuzzel, or as the folder handler from # an app running as a systemd service, which doesn't get hyprland.lua's env). philly = pkgs.symlinkJoin { name = "philly"; paths = [ inputs.philly.packages.${system}.default ]; nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; postBuild = '' rm $out/bin/philly makeWrapper ${inputs.philly.packages.${system}.default}/bin/philly $out/bin/philly \ --set-default WEBKIT_DISABLE_DMABUF_RENDERER 1 ''; }; in { home.packages = with pkgs; [ # The Hyprland desktop: launcher, bar flyouts, notifications, idle/lock. fuzzel eww dunst libnotify hyprpaper hypridle wl-clipboard playerctl # python3 with PyGObject and python-xlib, for the Waybar/Eww scripts. python3-desktop # Called by the control centre and tray scripts. pulseaudio # pactl bluez # bluetoothctl solaar # mouse battery fallback (mouse-battery.sh) # Screenshots and screen recording (imsh-shot, imsh-cast; Super+Shift+S/F/R). inputs.imsh-clients.packages.${system}.default # Philly, the file browser (also the handler for folders, in mimeapps.list). philly ]; }