diff --git a/hosts/Garand-Desktop/home-modules.nix b/hosts/Garand-Desktop/home-modules.nix index e7d08dc..ca687e9 100644 --- a/hosts/Garand-Desktop/home-modules.nix +++ b/hosts/Garand-Desktop/home-modules.nix @@ -66,4 +66,17 @@ _: { jellyfinClient.enable = true; # Jellyfin: My Jellyfin }; }; + + /* + Noctalia-shell plugins + */ + nooctalia-plugins = { + mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks + timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center. + keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors. + kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect + screen-recorder.enable = true; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings + screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri + ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support + }; } diff --git a/hosts/Garand-Laptop/home-modules.nix b/hosts/Garand-Laptop/home-modules.nix index 3179c77..5e78c08 100644 --- a/hosts/Garand-Laptop/home-modules.nix +++ b/hosts/Garand-Laptop/home-modules.nix @@ -66,4 +66,17 @@ _: { jellyfinClient.enable = true; # Jellyfin: My Jellyfin }; }; + + /* + Noctalia-shell plugins + */ + nooctalia-plugins = { + mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks + timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center. + keybind-cheatsheet.enable = true; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors. + kde-connect.enable = true; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect + screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings + screenshot.enable = true; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri + ntfy-notifications.enable = true; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support + }; } diff --git a/hosts/default/home-modules.nix b/hosts/default/home-modules.nix index 35eb074..6b9904b 100644 --- a/hosts/default/home-modules.nix +++ b/hosts/default/home-modules.nix @@ -4,23 +4,23 @@ _: { */ vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode zed-editor = { - enable = true; # Zed Editor: a modern, high‑performance code editor - remote-server.enable = true; # Remote Server: enable remote editing capabilities + enable = false; # Zed Editor: a modern, high‑performance code editor + remote-server.enable = false; # Remote Server: enable remote editing capabilities }; - opencode.enable = true; # OpenCode: terminal coding agent + opencode.enable = false; # OpenCode: terminal coding agent ollama.enable = false; # Ollama: Local Llms /* Web browsers */ - librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork - ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork + librewolf.enable = false; # Librewolf: a privacy-focused Firefox fork + ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork /* System utilities */ btop.enable = true; # Btop: a resource monitor for the terminal - easyeffects.enable = true; # EasyEffects: Audio effects for PipeWire applications + easyeffects.enable = false; # EasyEffects: Audio effects for PipeWire applications cava.enable = false; # Cava: terminal audio visualizer fastfetch.enable = true; # Fastfetch: a fast system information tool @@ -28,8 +28,8 @@ _: { Communication and synchronization */ kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop - nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server - vesktop.enable = true; # Vesktop: a community‑driven Discord client + nextcloud-client.enable = false; # Nextcloud Client: sync files with a Nextcloud server + vesktop.enable = false; # Vesktop: a community‑driven Discord client /* Gaming @@ -44,26 +44,39 @@ _: { /* Office suite */ - onlyoffice.enable = true; # OnlyOffice: an office suite compatible with Microsoft formats + onlyoffice.enable = false; # OnlyOffice: an office suite compatible with Microsoft formats /* Learning tools */ - anki.enable = true; # Anki: spaced‑repetition flashcard program + anki.enable = false; # Anki: spaced‑repetition flashcard program /* XDG desktop entries (PWA) */ xdgDesktopEntries = { - enable = true; # Enable XDG desktop entries + enable = false; # Enable XDG desktop entries entries = { - messenger.enable = true; # Messenger: Facebook Messenger - mastodon.enable = true; # Mastodon: a decentralized social network - garandcloud.enable = true; # GarandCloud: my Nextcloud instance - chatgpt.enable = true; # ChatGPT: a large language model - claude.enable = true; # Claude: a large language model - glance.enable = true; # Glance: my home server dashboard - jellyfinClient.enable = true; # Jellyfin: My Jellyfin + messenger.enable = false; # Messenger: Facebook Messenger + mastodon.enable = false; # Mastodon: a decentralized social network + garandcloud.enable = false; # GarandCloud: my Nextcloud instance + chatgpt.enable = false; # ChatGPT: a large language model + claude.enable = false; # Claude: a large language model + glance.enable = false; # Glance: my home server dashboard + jellyfinClient.enable = false; # Jellyfin: My Jellyfin }; }; + + /* + Noctalia-shell plugins + */ + nooctalia-plugins = { + mini-docker.enable = false; # Mini Docker: Manage Docker containers, images, volumes & networks + timer.enable = false; # Timer: A timer and stopwatch plugin for the bar & control center. + keybind-cheatsheet.enable = false; # Keybind Cheatsheet: Universal keyboard shortcuts keymap that automatically detects and displays keybindings for Hyprland, Niri, or MangoWC compositors. + kde-connect.enable = false; # KDE Connect: A Plugin integrating your mobile devices into a panel using KDEConnect + screen-recorder.enable = false; # Screen Recorder: Hardware-accelerated screen recording using gpu-screen-recorder with customizable video and audio settings + screenshot.enable = false; # Screenshot: Quick screenshot button in bar for Hyprland, Sway, and Niri + ntfy-notifications.enable = false; # ntfy Notifications: Subscribe to ntfy topics and receive push notifications directly in your bar, with full theming support + }; } diff --git a/hosts/default/system-modules.nix b/hosts/default/system-modules.nix index 5e5881b..4fb353d 100644 --- a/hosts/default/system-modules.nix +++ b/hosts/default/system-modules.nix @@ -2,14 +2,14 @@ _: { /* Container & Packaging */ - docker.enable = true; # Docker: container runtime and management + docker.enable = false; # Docker: container runtime and management virtualbox.enable = false; # VirtualBox: PC emulator flatpak = { - enable = true; # Flatpak: universal packaging system for Linux + enable = false; # Flatpak: universal packaging system for Linux packages = { sober.enable = false; # Roblox client - warehouse.enable = true; # Flatpak manager - flatseal.enable = true; # Flatpak permissions manager + warehouse.enable = false; # Flatpak manager + flatseal.enable = false; # Flatpak permissions manager upscaler.enable = false; # Upscaler: Upscale and enhance images }; }; @@ -22,14 +22,14 @@ _: { /* Calendar & Contacts */ - calendar.enable = true; # GNOME Calendar: calendar and contacts application + calendar.enable = false; # GNOME Calendar: calendar and contacts application /* Gaming */ - gamemode.enable = true; # GameMode: optimizes system performance for gaming + gamemode.enable = false; # GameMode: optimizes system performance for gaming gamescope.enable = false; # Gamescope: micro‑compositor for games - steam.enable = true; # Steam: platform for buying and playing games + steam.enable = false; # Steam: platform for buying and playing games /* Media & Graphics @@ -59,26 +59,26 @@ _: { Gaming */ prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher - spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game - ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire game + spaceCadetPinball.enable = false; # SpaceCadet Pinball: classic pinball game + ttySolitaire.enable = false; # TTY Solitaire: terminal‑based solitaire game heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac /* Development Tools */ - exercism.enable = true; # Exercism: coding practice platform + exercism.enable = false; # Exercism: coding practice platform lazygit.enable = false; # Lazygit: simple TUI for Git - jan.enable = true; # Jan: AI chat UI + jan.enable = false; # Jan: AI chat UI logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator /* Communication & Collaboration */ - mattermost.enable = true; # Mattermost: open‑source Slack alternative + mattermost.enable = false; # Mattermost: open‑source Slack alternative slack.enable = false; # Slack: team communication and collaboration tool - tutanota.enable = true; # Tutanota: secure email client - signal.enable = true; # Signal: secure messaging app - teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux + tutanota.enable = false; # Tutanota: secure email client + signal.enable = false; # Signal: secure messaging app + teams.enable = false; # Teams-for-linux: Unofficial Microsoft Teams client for Linux ferdium.enable = false; # Ferdium: All your services in one place built by the community notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications appImages.fluxer.enable = false; # Fluxer: Discord alternative @@ -87,27 +87,27 @@ _: { Productivity / Knowledge Management */ bitwarden.enable = false; # Bitwarden: password manager (desktop) - iotas.enable = true; # Iotas: lightweight notes manager + iotas.enable = false; # Iotas: lightweight notes manager logseq.enable = false; # Logseq: knowledge base and outliner /* Media & Graphics */ - eyeOfGnome.enable = true; # Eye of GNOME: image viewer + eyeOfGnome.enable = false; # Eye of GNOME: image viewer switcheroo.enable = false; # Switcheroo: file conversion tool freetube.enable = false; # FreeTube: privacy‑friendly YouTube client gimp.enable = false; # GIMP: GNU Image Manipulation Program kdenlive.enable = false; # Kdenlive: video editing software pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs - plex.enable = true; # Plex: media player and server client - jellyfin.enable = true; # Jellyfin: foss media player + plex.enable = false; # Plex: media player and server client + jellyfin.enable = false; # Jellyfin: foss media player appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing /* Utilities / Misc */ - eddieAirVPN.enable = true; # Eddie AirVPN: VPN client - gnomeCalculator.enable = true; # gnomeCalculator: simple calculator + eddieAirVPN.enable = false; # Eddie AirVPN: VPN client + gnomeCalculator.enable = false; # gnomeCalculator: simple calculator gedit.enable = false; # Gedit: GNOME text editor winboat.enable = false; # Winboat: Windows remote desktop via RDP adb.enable = false; # ADB: Android SDK platform tools diff --git a/modules/home/noctalia/plugins.nix b/modules/home/noctalia/plugins.nix index 15b94ff..359d065 100644 --- a/modules/home/noctalia/plugins.nix +++ b/modules/home/noctalia/plugins.nix @@ -1,7 +1,21 @@ -{lib, ...}: let +{ + lib, + config, + ... +}: let sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins"; in { - programs.noctalia-shell = lib.mkForce { + options.nooctalia-plugins = { + mini-docker.enable = lib.mkEnableOption "Mini docker plugin"; + timer.enable = lib.mkEnableOption "Timer plugin"; + keybind-cheatsheet.enable = lib.mkEnableOption "Keybind cheatsheet plugin"; + kde-connect.enable = lib.mkEnableOption "KDE Connect plugin"; + screen-recorder.enable = lib.mkEnableOption "Screen-recorder plugin"; + screenshot.enable = lib.mkEnableOption "Screenshot plugin"; + ntfy-notifications.enable = lib.mkEnableOption "ntfy notifications plugin"; + }; + + config.programs.noctalia-shell = lib.mkForce { plugins = { sources = [ { @@ -11,31 +25,31 @@ in { } ]; states = { - mini-docker = { + mini-docker = lib.mkIf config.nooctalia-plugins.mini-docker.enable { enabled = true; sourceUrl = sourceUrl; }; - timer = { + timer = lib.mkIf config.nooctalia-plugins.timer.enable { enabled = true; sourceUrl = sourceUrl; }; - keybind-cheatsheet = { + keybind-cheatsheet = lib.mkIf config.nooctalia-plugins.keybind-cheatsheet.enable { enabled = true; sourceUrl = sourceUrl; }; - kde-connect = { + kde-connect = lib.mkIf config.nooctalia-plugins.kde-connect.enable { enabled = true; sourceUrl = sourceUrl; }; - screen-recorder = { + screen-recorder = lib.mkIf config.nooctalia-plugins.screen-recorder.enable { enabled = true; sourceUrl = sourceUrl; }; - screenshot = { + screenshot = lib.mkIf config.nooctalia-plugins.screenshot.enable { enabled = true; sourceUrl = sourceUrl; }; - ntfy-notifications = { + ntfy-notifications = lib.mkIf config.nooctalia-plugins.ntfy-notifications.enable { enabled = true; sourceUrl = sourceUrl; };