dot

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

47 lines1588 bytesNix
1# Programs your configs and scripts call, and your own tools.
2{ inputs, pkgs, ... }:
3let
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.${system}.default ];
14 nativeBuildInputs = [ pkgs.makeBinaryWrapper ];
15 postBuild = ''
16 rm $out/bin/philly
17 makeWrapper ${inputs.philly.packages.${system}.default}/bin/philly $out/bin/philly \
18 --set-default WEBKIT_DISABLE_DMABUF_RENDERER 1
19 '';
20 };
21in
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.${system}.default
44 # Philly, the file browser (also the handler for folders, in mimeapps.list).
45 philly
46 ];
47}