Add Noctalia plugins config and disable defaults
Introduce `nooctalia-plugins` options to control nightly‑shell plugins and make their activation conditional. Update host home‑modules to enable a subset of plugins (keybind‑cheatsheet, kde‑connect, screenshot, ntfy) on desktop and laptop configurations. Disable numerous default applications and system services (e.g., Zed, browsers, Docker, Flatpak, calendar, GameMode, Steam, media tools, communication apps) in the default host configuration.
This commit is contained in:
@@ -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
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user