From 2eb1981e6b5ae40da7537d66548c46aac1dc1c10 Mon Sep 17 00:00:00 2001 From: Craige McWhirter Date: Fri, 27 Sep 2024 13:13:06 +1000 Subject: [PATCH] chore(desktopCraige): move to a module --- modules/module-list.nix | 1 + modules/roles/desktopCraige/default.nix | 38 ++++++++++++++++++++ outputs.nix | 1 + profiles/desktopCraige.nix | 47 ------------------------- 4 files changed, 40 insertions(+), 47 deletions(-) create mode 100644 modules/roles/desktopCraige/default.nix delete mode 100644 profiles/desktopCraige.nix diff --git a/modules/module-list.nix b/modules/module-list.nix index c0c1de7..68bf0a5 100644 --- a/modules/module-list.nix +++ b/modules/module-list.nix @@ -2,4 +2,5 @@ ./profiles/cosmicDesktop ./profiles/starship ./roles/desktop + ./roles/desktopCraige ] diff --git a/modules/roles/desktopCraige/default.nix b/modules/roles/desktopCraige/default.nix new file mode 100644 index 0000000..e1587cc --- /dev/null +++ b/modules/roles/desktopCraige/default.nix @@ -0,0 +1,38 @@ +# 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 + ]; + }; +} diff --git a/outputs.nix b/outputs.nix index cf39cb6..2e6ecdc 100644 --- a/outputs.nix +++ b/outputs.nix @@ -151,6 +151,7 @@ in { ragenix.nixosModules.default ]; roles.desktop.enable = true; + roles.desktopCraige.enable = true; }; sercanto = { imports = [ diff --git a/profiles/desktopCraige.nix b/profiles/desktopCraige.nix deleted file mode 100644 index 0f173f1..0000000 --- a/profiles/desktopCraige.nix +++ /dev/null @@ -1,47 +0,0 @@ -# Craige's NixOS desktop requirements -{ - config, - pkgs, - ... -}: { - # Craige's Desktop Packages - imports = [ - ../profiles/ebooks.nix - ../profiles/minecraftClient.nix - ../profiles/spotify.nix # Spotify settings - ]; - - environment.systemPackages = with pkgs; [ - byobu # text-based window manager and terminal multiplexer. - caprine-bin # an elegant Facebook Messenger desktop app - element-desktop # A feature-rich client for Matrix.org - enlightenment.terminology # Powerful terminal emulator based on EFL - firefox # A web browser built from Firefox source tree - ffmpeg-full # record, convert and stream audio and video - gimp # The GNU Image Manipulation Program - gopass # password file manager - libreoffice # Comprehensive, professional-quality productivity suite - mpd # A flexible, powerful daemon for playing music - ncmpcpp # A featureful ncurses based MPD client inspired by ncmpc - nextcloud-client # Nextcloud themed desktop client - nvme-cli # NVM-Express user space tooling for Linux - pandoc # Conversion between documentation formats - pavucontrol # PulseAudio Volume Control - pwgen # Password generator - siji # An iconic bitmap font based on Stlarch with additional glyphs - shared-mime-info # A database of common MIME types - shotwell # Photo organizer - signal-desktop # Private, simple, and secure messenger - sshfs # allows remote filesystems to be mounted over SSH - sweethome3d.application # design and visualise homes - 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 - ]; -}