dot
vizie's NixOS desktop: Hyprland, CachyOS kernel and gaming tweaks
| 1 | # Desktop apps and what they need from the system. |
| 2 | { pkgs, ... }: |
| 3 | { |
| 4 | programs.firefox.enable = true; |
| 5 | |
| 6 | environment.systemPackages = with pkgs; [ |
| 7 | claude-desktop |
| 8 | signal-desktop-themed |
| 9 | discord |
| 10 | bitwarden-desktop |
| 11 | opendeck |
| 12 | kdePackages.dolphin |
| 13 | kdePackages.ark |
| 14 | kdePackages.kio-extras |
| 15 | kdePackages.ffmpegthumbs |
| 16 | cosmic-files |
| 17 | mpv |
| 18 | vlc |
| 19 | pavucontrol |
| 20 | pulsemixer |
| 21 | playerctl |
| 22 | nwg-look |
| 23 | qalculate-gtk |
| 24 | alacritty |
| 25 | ]; |
| 26 | |
| 27 | # --- Claude Desktop's Cowork ---------------------------------------------------- |
| 28 | |
| 29 | # Cowork runs its tasks in a QEMU/KVM virtual machine. The app looks for the |
| 30 | # UEFI firmware at the path Debian uses, so it is linked there; QEMU, socat |
| 31 | # and virtiofsd come with the package (pkgs/claude-desktop). |
| 32 | boot.kernelModules = [ "vhost_vsock" ]; |
| 33 | systemd.tmpfiles.rules = [ |
| 34 | "L+ /usr/share/OVMF/OVMF_CODE_4M.fd - - - - /FV/OVMF_CODE.fd" |
| 35 | ]; |
| 36 | |
| 37 | # --- OpenDeck ------------------------------------------------------------------- |
| 38 | |
| 39 | # Lets your user open the Stream Deck (40-streamdeck.rules on CachyOS). |
| 40 | services.udev.packages = [ pkgs.opendeck ]; |
| 41 | |
| 42 | # Plugins installed from OpenDeck's store (Starter Pack, Discord) are prebuilt |
| 43 | # generic-Linux binaries; nix-ld gives them a /lib64 loader and their libraries. |
| 44 | programs.nix-ld = { |
| 45 | enable = true; |
| 46 | libraries = with pkgs; [ |
| 47 | stdenv.cc.cc.lib # libgcc_s |
| 48 | libxkbcommon |
| 49 | openssl |
| 50 | ]; |
| 51 | }; |
| 52 | |
| 53 | # --- Flatpak -------------------------------------------------------------------- |
| 54 | |
| 55 | # Flatpak with Flathub, for apps that are only published there. Nothing is |
| 56 | # installed from it by default. |
| 57 | services.flatpak.enable = true; |
| 58 | systemd.services.flathub-remote = { |
| 59 | description = "Add the Flathub Flatpak remote"; |
| 60 | wantedBy = [ "multi-user.target" ]; |
| 61 | wants = [ "network-online.target" ]; |
| 62 | after = [ "network-online.target" ]; |
| 63 | path = [ pkgs.flatpak ]; |
| 64 | serviceConfig = { |
| 65 | Type = "oneshot"; |
| 66 | Restart = "on-failure"; |
| 67 | RestartSec = "1min"; |
| 68 | }; |
| 69 | script = '' |
| 70 | flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo |
| 71 | ''; |
| 72 | }; |
| 73 | } |