nexoniarz-config-nixos/modules/apps.nix
Nexoniarz 1f5f9795bc Add on-screen display, sidebar keybinds, function keys, gh package
- Add Osd.qml: themed top-center popup for volume/mic/brightness/media
  changes. Volume and mic react directly to Pipewire so they fire for
  any change, not just our own keybinds; brightness is notified
  explicitly (no live service exists for DDC/CI writes); media is
  driven by two playerctl --follow watchers (status + metadata) so
  track changes, pause/resume, and stop all show correctly without
  double-firing
- Add Super+Shift+Z/X to toggle the Left/RightBar sidebars, via a new
  Quickshell IpcHandler wired to the same expand/collapse logic as the
  BottomBar arrows
- Add function-key binds for volume up/down/mute, mic mute, brightness
  up/down, and media play/pause/stop/next/prev (wpctl/playerctl);
  extend brightness-ctl with relative up/down steps for both the
  backlight and DDC/CI paths
- Add gh and playerctl to packages
2026-08-30 16:08:44 +02:00

84 lines
2.9 KiB
Nix

{ config, pkgs, ... }:
let
# hyprpolkitagent only ships its binary under libexec/, not bin/, so it
# never lands on $PATH — wrap it so `exec-once = hyprpolkitagent` in
# hyprland.conf can find it.
hyprpolkitagentBin = pkgs.writeShellScriptBin "hyprpolkitagent"
"exec ${pkgs.hyprpolkitagent}/libexec/hyprpolkitagent";
in
{
# Every installed package — GUI apps, CLI tools, and dev toolchains alike.
# If it's "install X", it goes here.
users.users."nexoniarz".packages = with pkgs; [
# Hyprland desktop toolchain (Wayland-native, lightweight, squared theme)
kitty # Terminal
thunar # File manager
thunar-archive-plugin
thunar-volman
tumbler # Thumbnails (paired with services.tumbler.enable)
rofi # Launcher (Wayland support built in since 2.0)
quickshell # Bar / UI shell
imv # Image viewer
mako # Notification daemon
grim # Screenshot capture
slurp # Screenshot region select
wl-clipboard # Wayland clipboard
hyprpolkitagentBin # Polkit authentication agent (wrapped, see `let` above)
hyprlock # Screen locker (power menu)
brightnessctl # Backlight brightness (laptop panels)
ddcutil # DDC/CI brightness (external monitors)
lm_sensors # sensors-detect helps ddcutil find I2C buses
hyprpaper # Wallpaper daemon, driven by the Quickshell picker (static images)
mpvpaper # Wallpaper daemon for video-loop (animated) wallpapers
networkmanager # nmcli, for the Wi-Fi hotspot toggle
xdg-user-dirs # Resolves localized folder names (Obrazy, not Pictures, on pl_PL)
bibata-cursors # Cursor theme(s) for the cursor picker
xcur2png # Renders Xcursor files to PNG for the cursor picker's previews
imagemagick # `identify`, used to pick the right cursor-preview size
playerctl # MPRIS media control, for the function-key media binds
# Apps
blender
gimp
inkscape
vesktop
tor-browser
ffmpeg-full
vlc
filezilla
chromium
# Games
prismlauncher
pkgs.osu-lazer-bin
# Dev: compilers, runtimes, languages
glibc
musl
cmake
gnumake # Provides the 'make' command
gcc
python3
openjdk25
claude-code # AI Developer Assistant
];
# Global command-line utilities available everywhere
environment.systemPackages = with pkgs; [
git
gh # GitHub CLI — was only installed ad-hoc before (login didn't survive)
vim
fastfetch
gparted
firejail
gnupg
lmstudio
kdePackages.ark
p7zip
unzip
unrar
kdePackages.gwenview
kdePackages. kate
];
}