# Craige's addiotnal desktop requirements { config, lib, pkgs, ... }: with lib; let cfg = config.roles.desktopCraige; in { options.roles.desktopCraige = { enable = mkEnableOption "to enable Craige's desktop role."; }; config = mkIf (cfg.enable) { environment.systemPackages = with pkgs; [ ffmpeg-full # record, convert and stream audio and video gimp # The GNU Image Manipulation Program mpd # A flexible, powerful daemon for playing music ncmpcpp # A featureful ncurses based MPD client inspired by ncmpc nvme-cli # NVM-Express user space tooling for Linux pandoc # Conversion between documentation formats pavucontrol # PulseAudio Volume Control siji # An iconic bitmap font based on Stlarch with additional glyphs shared-mime-info # A database of common MIME types shotwell # Photo organizer sshfs # allows remote filesystems to be mounted over SSH taskwarrior # Highly flexible command-line tool to manage TODO lists termonad # Terminal emulator configurable in Haskell texliveFull # TeX Live environment tmate # Instant Terminal Sharing tor-browser-bundle-bin # Tor Browser Bundle built by torproject.org tuba # Fediverse client unzip # An extraction utility for archives compressed in .zip format vcsh # Version Control System for $HOME yt-dlp # Command-line tool to download videos ]; }; }