diff options
Diffstat (limited to 'archetypes/collections/desktop')
| -rw-r--r-- | archetypes/collections/desktop/cad.nix | 21 | ||||
| -rw-r--r-- | archetypes/collections/desktop/chromium.nix | 18 | ||||
| -rw-r--r-- | archetypes/collections/desktop/crypto.nix | 13 | ||||
| -rw-r--r-- | archetypes/collections/desktop/default.nix | 17 | ||||
| -rw-r--r-- | archetypes/collections/desktop/extra.nix | 16 | ||||
| -rw-r--r-- | archetypes/collections/desktop/firefox.nix | 12 | ||||
| -rw-r--r-- | archetypes/collections/desktop/graphics.nix | 16 | ||||
| -rw-r--r-- | archetypes/collections/desktop/office.nix | 18 | ||||
| -rw-r--r-- | archetypes/collections/desktop/pipewire.nix | 14 | ||||
| -rw-r--r-- | archetypes/collections/desktop/printing.nix | 17 | ||||
| -rw-r--r-- | archetypes/collections/desktop/thumbnailers.nix | 23 | ||||
| -rw-r--r-- | archetypes/collections/desktop/utilities.nix | 32 | ||||
| -rw-r--r-- | archetypes/collections/desktop/video.nix | 17 | ||||
| -rw-r--r-- | archetypes/collections/desktop/xserver.nix | 34 |
14 files changed, 268 insertions, 0 deletions
diff --git a/archetypes/collections/desktop/cad.nix b/archetypes/collections/desktop/cad.nix new file mode 100644 index 0000000..6b2c26b --- /dev/null +++ b/archetypes/collections/desktop/cad.nix @@ -0,0 +1,21 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.cad; +in { + options._archetypes.collections.desktop.cad = { + enable = lib.mkEnableOption "install cad and 3d printing software"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + blender + freecad + prusa-slicer + ]; + # TODO remove once #467783 is resolved + environment.sessionVariables = { + # Make GTK3 file-chooser settings discoverable + # per https://github.com/NixOS/nixpkgs/issues/467783#issuecomment-3648708206 + GSETTINGS_SCHEMA_DIR ="${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas"; + }; + }; +} diff --git a/archetypes/collections/desktop/chromium.nix b/archetypes/collections/desktop/chromium.nix new file mode 100644 index 0000000..b4638f0 --- /dev/null +++ b/archetypes/collections/desktop/chromium.nix @@ -0,0 +1,18 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.chromium; +in { + options._archetypes.collections.desktop.chromium = { + enable = lib.mkEnableOption "install chromium browser"; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.ungoogled-chromium; + description = "chromium package to install"; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = [ + cfg.package + ]; + }; +} diff --git a/archetypes/collections/desktop/crypto.nix b/archetypes/collections/desktop/crypto.nix new file mode 100644 index 0000000..bfb9186 --- /dev/null +++ b/archetypes/collections/desktop/crypto.nix @@ -0,0 +1,13 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.crypto; +in { + options._archetypes.collections.desktop.crypto = { + enable = lib.mkEnableOption "install crypto wallets"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + unstable.sparrow + ]; + }; +} diff --git a/archetypes/collections/desktop/default.nix b/archetypes/collections/desktop/default.nix new file mode 100644 index 0000000..6ac79dd --- /dev/null +++ b/archetypes/collections/desktop/default.nix @@ -0,0 +1,17 @@ +{ + imports = [ + ./cad.nix + ./chromium.nix + ./crypto.nix + ./extra.nix + ./firefox.nix + ./graphics.nix + ./office.nix + ./pipewire.nix + ./printing.nix + ./thumbnailers.nix + ./utilities.nix + ./video.nix + ./xserver.nix + ]; +} diff --git a/archetypes/collections/desktop/extra.nix b/archetypes/collections/desktop/extra.nix new file mode 100644 index 0000000..5cf4221 --- /dev/null +++ b/archetypes/collections/desktop/extra.nix @@ -0,0 +1,16 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.extraUtilities; +in { + options._archetypes.collections.desktop.extraUtilities = { + enable = lib.mkEnableOption "install extra desktop utilities"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + jellyfin-mpv-shim + qbittorrent + remmina + sent + ]; + }; +} diff --git a/archetypes/collections/desktop/firefox.nix b/archetypes/collections/desktop/firefox.nix new file mode 100644 index 0000000..02656f6 --- /dev/null +++ b/archetypes/collections/desktop/firefox.nix @@ -0,0 +1,12 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.firefox; +in { + options._archetypes.collections.desktop.firefox = { + enable = lib.mkEnableOption "install firefox"; + }; + + config = lib.mkIf cfg.enable { + programs.firefox.enable = true; + }; +} + diff --git a/archetypes/collections/desktop/graphics.nix b/archetypes/collections/desktop/graphics.nix new file mode 100644 index 0000000..f4242d1 --- /dev/null +++ b/archetypes/collections/desktop/graphics.nix @@ -0,0 +1,16 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.graphics; +in { + options._archetypes.collections.desktop.graphics = { + enable = lib.mkEnableOption "install graphic design software"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + blender + geeqie + gimp3 + inkscape + ]; + }; +} diff --git a/archetypes/collections/desktop/office.nix b/archetypes/collections/desktop/office.nix new file mode 100644 index 0000000..23e6862 --- /dev/null +++ b/archetypes/collections/desktop/office.nix @@ -0,0 +1,18 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.office; +in { + options._archetypes.collections.desktop.office = { + enable = lib.mkEnableOption "install office software"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + hunspell # Spell checking in libreoffice + hunspellDicts.en_US + kdePackages.okular + libreoffice + pdfchain + thunderbird + ]; + }; +} diff --git a/archetypes/collections/desktop/pipewire.nix b/archetypes/collections/desktop/pipewire.nix new file mode 100644 index 0000000..d80ac90 --- /dev/null +++ b/archetypes/collections/desktop/pipewire.nix @@ -0,0 +1,14 @@ +{ lib, config, ... }: let + cfg = config._archetypes.collections.desktop.pipewire; +in { + options._archetypes.collections.desktop.pipewire = { + enable = lib.mkEnableOption "enables pipewire"; + }; + + config = lib.mkIf cfg.enable { + services.pipewire = { + enable = true; + pulse.enable = true; + }; + }; +} diff --git a/archetypes/collections/desktop/printing.nix b/archetypes/collections/desktop/printing.nix new file mode 100644 index 0000000..ed31048 --- /dev/null +++ b/archetypes/collections/desktop/printing.nix @@ -0,0 +1,17 @@ +{ lib, config, ... }: let + cfg = config._archetypes.collections.desktop.printing; +in { + options._archetypes.collections.desktop.printing = { + enable = lib.mkEnableOption "enables printing and avahi service"; + }; + + config = lib.mkIf cfg.enable { + services.printing.enable = true; + + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + }; +} diff --git a/archetypes/collections/desktop/thumbnailers.nix b/archetypes/collections/desktop/thumbnailers.nix new file mode 100644 index 0000000..50e4aa7 --- /dev/null +++ b/archetypes/collections/desktop/thumbnailers.nix @@ -0,0 +1,23 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.thumbnailers; +in { + options._archetypes.collections.desktop.thumbnailers = { + enable = lib.mkEnableOption "install thumbnailers for graphical file managers"; + }; + + config = lib.mkIf cfg.enable { + # https://wiki.nixos.org/wiki/Thumbnails + # Thumbnailers created in /run/current-system/sw/share/thumbnailers + environment.systemPackages = with pkgs; [ + # Video + ffmpegthumbnailer + # Images + gdk-pixbuf + # HEIF images + libheif + libheif.out + # RAW images + nufraw-thumbnailer + ]; + }; +} diff --git a/archetypes/collections/desktop/utilities.nix b/archetypes/collections/desktop/utilities.nix new file mode 100644 index 0000000..479145b --- /dev/null +++ b/archetypes/collections/desktop/utilities.nix @@ -0,0 +1,32 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.utilities; +in { + options._archetypes.collections.desktop.utilities = { + enable = lib.mkEnableOption "install basic desktop utilities"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + arandr + dex # Execute .desktop files + dmenu + gammastep + libnotify + lowbat + mpv + nsxiv + pavolctld + pavucontrol + pcmanfm + qdirstat + qdiskinfo + scrot + st + wpa_supplicant_gui + zathura + ]; + + programs.localsend.enable = true; # Installs & opens firewall + services.gvfs.enable = true; # GVfs allows for mounting drives in a graphical file manager + }; +} diff --git a/archetypes/collections/desktop/video.nix b/archetypes/collections/desktop/video.nix new file mode 100644 index 0000000..cce6516 --- /dev/null +++ b/archetypes/collections/desktop/video.nix @@ -0,0 +1,17 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.video; +in { + options._archetypes.collections.desktop.video = { + enable = lib.mkEnableOption "install video capture and editing software"; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + dvgrab + ffmpeg + mpv + obs-studio + vlc + ]; + }; +} diff --git a/archetypes/collections/desktop/xserver.nix b/archetypes/collections/desktop/xserver.nix new file mode 100644 index 0000000..9d62048 --- /dev/null +++ b/archetypes/collections/desktop/xserver.nix @@ -0,0 +1,34 @@ +{ pkgs, lib, config, ... }: let + cfg = config._archetypes.collections.desktop.xserver; +in { + options._archetypes.collections.desktop.xserver = { + enable = lib.mkEnableOption "installs xserver"; + utilities.enable = lib.mkEnableOption "installs basic xserver utilities"; + }; + + config = lib.mkIf cfg.enable { + services = { + xserver = { + enable = true; + displayManager.startx.enable = true; + enableTearFree = true; + }; + libinput.enable = true; # Enable touchpad support + }; + + # Install basic X utilities + environment.systemPackages = with pkgs; lib.optionals cfg.utilities.enable [ + setxkbmap + unclutter-desktop-entry + unclutter-xfixes + xcape + xclip + xdotool + xinput + xkill + xrandr + xset + xwallpaper + ]; + }; +} |
