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
|
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
|
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
|
vscodium.enable = false; # VSCodium: a free and open-source "demicrosofted" VSCode
|
||||||
zed-editor = {
|
zed-editor = {
|
||||||
enable = true; # Zed Editor: a modern, high‑performance code editor
|
enable = false; # Zed Editor: a modern, high‑performance code editor
|
||||||
remote-server.enable = true; # Remote Server: enable remote editing capabilities
|
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
|
ollama.enable = false; # Ollama: Local Llms
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Web browsers
|
Web browsers
|
||||||
*/
|
*/
|
||||||
librewolf.enable = true; # Librewolf: a privacy-focused Firefox fork
|
librewolf.enable = false; # Librewolf: a privacy-focused Firefox fork
|
||||||
ungoogled-chromium.enable = true; # Ungoogled Chromium: a privacy-focused Chromium fork
|
ungoogled-chromium.enable = false; # Ungoogled Chromium: a privacy-focused Chromium fork
|
||||||
|
|
||||||
/*
|
/*
|
||||||
System utilities
|
System utilities
|
||||||
*/
|
*/
|
||||||
btop.enable = true; # Btop: a resource monitor for the terminal
|
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
|
cava.enable = false; # Cava: terminal audio visualizer
|
||||||
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
fastfetch.enable = true; # Fastfetch: a fast system information tool
|
||||||
|
|
||||||
@@ -28,8 +28,8 @@ _: {
|
|||||||
Communication and synchronization
|
Communication and synchronization
|
||||||
*/
|
*/
|
||||||
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
kdeconnect.enable = false; # KDE Connect: integrate your phone and desktop
|
||||||
nextcloud-client.enable = true; # Nextcloud Client: sync files with a Nextcloud server
|
nextcloud-client.enable = false; # Nextcloud Client: sync files with a Nextcloud server
|
||||||
vesktop.enable = true; # Vesktop: a community‑driven Discord client
|
vesktop.enable = false; # Vesktop: a community‑driven Discord client
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
Gaming
|
||||||
@@ -44,26 +44,39 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Office suite
|
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
|
Learning tools
|
||||||
*/
|
*/
|
||||||
anki.enable = true; # Anki: spaced‑repetition flashcard program
|
anki.enable = false; # Anki: spaced‑repetition flashcard program
|
||||||
|
|
||||||
/*
|
/*
|
||||||
XDG desktop entries (PWA)
|
XDG desktop entries (PWA)
|
||||||
*/
|
*/
|
||||||
xdgDesktopEntries = {
|
xdgDesktopEntries = {
|
||||||
enable = true; # Enable XDG desktop entries
|
enable = false; # Enable XDG desktop entries
|
||||||
entries = {
|
entries = {
|
||||||
messenger.enable = true; # Messenger: Facebook Messenger
|
messenger.enable = false; # Messenger: Facebook Messenger
|
||||||
mastodon.enable = true; # Mastodon: a decentralized social network
|
mastodon.enable = false; # Mastodon: a decentralized social network
|
||||||
garandcloud.enable = true; # GarandCloud: my Nextcloud instance
|
garandcloud.enable = false; # GarandCloud: my Nextcloud instance
|
||||||
chatgpt.enable = true; # ChatGPT: a large language model
|
chatgpt.enable = false; # ChatGPT: a large language model
|
||||||
claude.enable = true; # Claude: a large language model
|
claude.enable = false; # Claude: a large language model
|
||||||
glance.enable = true; # Glance: my home server dashboard
|
glance.enable = false; # Glance: my home server dashboard
|
||||||
jellyfinClient.enable = true; # Jellyfin: My Jellyfin
|
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
|
Container & Packaging
|
||||||
*/
|
*/
|
||||||
docker.enable = true; # Docker: container runtime and management
|
docker.enable = false; # Docker: container runtime and management
|
||||||
virtualbox.enable = false; # VirtualBox: PC emulator
|
virtualbox.enable = false; # VirtualBox: PC emulator
|
||||||
flatpak = {
|
flatpak = {
|
||||||
enable = true; # Flatpak: universal packaging system for Linux
|
enable = false; # Flatpak: universal packaging system for Linux
|
||||||
packages = {
|
packages = {
|
||||||
sober.enable = false; # Roblox client
|
sober.enable = false; # Roblox client
|
||||||
warehouse.enable = true; # Flatpak manager
|
warehouse.enable = false; # Flatpak manager
|
||||||
flatseal.enable = true; # Flatpak permissions manager
|
flatseal.enable = false; # Flatpak permissions manager
|
||||||
upscaler.enable = false; # Upscaler: Upscale and enhance images
|
upscaler.enable = false; # Upscaler: Upscale and enhance images
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -22,14 +22,14 @@ _: {
|
|||||||
/*
|
/*
|
||||||
Calendar & Contacts
|
Calendar & Contacts
|
||||||
*/
|
*/
|
||||||
calendar.enable = true; # GNOME Calendar: calendar and contacts application
|
calendar.enable = false; # GNOME Calendar: calendar and contacts application
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Gaming
|
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
|
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
|
Media & Graphics
|
||||||
@@ -59,26 +59,26 @@ _: {
|
|||||||
Gaming
|
Gaming
|
||||||
*/
|
*/
|
||||||
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
prismlauncher.enable = false; # Prism Launcher: Minecraft modded launcher
|
||||||
spaceCadetPinball.enable = true; # SpaceCadet Pinball: classic pinball game
|
spaceCadetPinball.enable = false; # SpaceCadet Pinball: classic pinball game
|
||||||
ttySolitaire.enable = true; # TTY Solitaire: terminal‑based solitaire 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
|
heroic.enable = false; # Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Development Tools
|
Development Tools
|
||||||
*/
|
*/
|
||||||
exercism.enable = true; # Exercism: coding practice platform
|
exercism.enable = false; # Exercism: coding practice platform
|
||||||
lazygit.enable = false; # Lazygit: simple TUI for Git
|
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
|
logisim-evolution.enable = false; # Logisim-Evolution: Digital logic designer and simulator
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Communication & Collaboration
|
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
|
slack.enable = false; # Slack: team communication and collaboration tool
|
||||||
tutanota.enable = true; # Tutanota: secure email client
|
tutanota.enable = false; # Tutanota: secure email client
|
||||||
signal.enable = true; # Signal: secure messaging app
|
signal.enable = false; # Signal: secure messaging app
|
||||||
teams.enable = true; # Teams-for-linux: Unofficial Microsoft Teams client for Linux
|
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
|
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
|
notify.enable = false; # notify-client: Ntfy client application to receive everyday's notifications
|
||||||
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
appImages.fluxer.enable = false; # Fluxer: Discord alternative
|
||||||
@@ -87,27 +87,27 @@ _: {
|
|||||||
Productivity / Knowledge Management
|
Productivity / Knowledge Management
|
||||||
*/
|
*/
|
||||||
bitwarden.enable = false; # Bitwarden: password manager (desktop)
|
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
|
logseq.enable = false; # Logseq: knowledge base and outliner
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Media & Graphics
|
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
|
switcheroo.enable = false; # Switcheroo: file conversion tool
|
||||||
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
freetube.enable = false; # FreeTube: privacy‑friendly YouTube client
|
||||||
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
gimp.enable = false; # GIMP: GNU Image Manipulation Program
|
||||||
kdenlive.enable = false; # Kdenlive: video editing software
|
kdenlive.enable = false; # Kdenlive: video editing software
|
||||||
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
pixieditor.enable = false; # Pixieditor: Universal editor for all your 2D needs
|
||||||
plex.enable = true; # Plex: media player and server client
|
plex.enable = false; # Plex: media player and server client
|
||||||
jellyfin.enable = true; # Jellyfin: foss media player
|
jellyfin.enable = false; # Jellyfin: foss media player
|
||||||
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
|
appImages.losslesscut.enable = false; # Losslesscut: Swiss army knife of lossless video/audio editing
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Utilities / Misc
|
Utilities / Misc
|
||||||
*/
|
*/
|
||||||
eddieAirVPN.enable = true; # Eddie AirVPN: VPN client
|
eddieAirVPN.enable = false; # Eddie AirVPN: VPN client
|
||||||
gnomeCalculator.enable = true; # gnomeCalculator: simple calculator
|
gnomeCalculator.enable = false; # gnomeCalculator: simple calculator
|
||||||
gedit.enable = false; # Gedit: GNOME text editor
|
gedit.enable = false; # Gedit: GNOME text editor
|
||||||
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
winboat.enable = false; # Winboat: Windows remote desktop via RDP
|
||||||
adb.enable = false; # ADB: Android SDK platform tools
|
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";
|
sourceUrl = "https://github.com/noctalia-dev/noctalia-plugins";
|
||||||
in {
|
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 = {
|
plugins = {
|
||||||
sources = [
|
sources = [
|
||||||
{
|
{
|
||||||
@@ -11,31 +25,31 @@ in {
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
states = {
|
states = {
|
||||||
mini-docker = {
|
mini-docker = lib.mkIf config.nooctalia-plugins.mini-docker.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
timer = {
|
timer = lib.mkIf config.nooctalia-plugins.timer.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
keybind-cheatsheet = {
|
keybind-cheatsheet = lib.mkIf config.nooctalia-plugins.keybind-cheatsheet.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
kde-connect = {
|
kde-connect = lib.mkIf config.nooctalia-plugins.kde-connect.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
screen-recorder = {
|
screen-recorder = lib.mkIf config.nooctalia-plugins.screen-recorder.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
screenshot = {
|
screenshot = lib.mkIf config.nooctalia-plugins.screenshot.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
ntfy-notifications = {
|
ntfy-notifications = lib.mkIf config.nooctalia-plugins.ntfy-notifications.enable {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
sourceUrl = sourceUrl;
|
sourceUrl = sourceUrl;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user