Implement modular Plasma taskbar pinning system
- Add modular pinning system using NixOS module options - Each desktop module now defines its own pinned applications: * plasma.nix: konsole, dolphin, firefox, tigervnc * gaming.nix: steam, discord * office.nix: slack, signal, libreoffice-writer, libreoffice-calc * dev.nix: windsurf * media.nix: rustdesk * dnm.nix: tor-browser, kleopatra (moved from crypto.nix) - Move Plasma config from user-specific to desktop module for consistency - Rename crypto.nix to dnm.nix and update references - All users with Plasma desktop get automatic taskbar pinning - Applications only appear when their desktop modules are active
This commit is contained in:
parent
6a4fa7dcef
commit
f6e63e555c
9 changed files with 124 additions and 64 deletions
|
|
@ -1,11 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
feather
|
||||
electrum
|
||||
kdePackages.kleopatra
|
||||
tor-browser
|
||||
];
|
||||
}
|
||||
|
|
@ -1,8 +1,12 @@
|
|||
{ config, pkgs, pkgs-unstable, ... }:
|
||||
{ config, pkgs, pkgs-unstable, lib, ... }:
|
||||
|
||||
{
|
||||
# Add this module's pinned applications
|
||||
desktop.plasma.pinnedApps = [
|
||||
"applications:windsurf.desktop" # Windsurf IDE
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python3.withPackages(ps: with ps; [ pandas requests python-dotenv pip uv ]))
|
||||
nodejs
|
||||
rpi-imager
|
||||
|
|
@ -15,4 +19,6 @@ programs.nix-ld.enable = true;
|
|||
# Android Development
|
||||
programs.adb.enable = true;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
16
desktop/dnm.nix
Normal file
16
desktop/dnm.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
# Add this module's pinned applications
|
||||
desktop.plasma.pinnedApps = [
|
||||
"applications:tor-browser.desktop" # Tor browser
|
||||
"applications:org.kde.kleopatra.desktop" # Kleopatra GPG
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
feather
|
||||
electrum
|
||||
kdePackages.kleopatra
|
||||
tor-browser
|
||||
];
|
||||
}
|
||||
|
|
@ -1,8 +1,13 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
# Add this module's pinned applications
|
||||
desktop.plasma.pinnedApps = [
|
||||
"applications:steam.desktop" # Steam gaming platform
|
||||
"applications:discord.desktop" # Gaming communication
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
environment.systemPackages = with pkgs; [
|
||||
discord # Gaming communication
|
||||
stremio # Media streaming
|
||||
# parsec-bin
|
||||
|
|
@ -16,4 +21,6 @@ environment.systemPackages = with pkgs; [
|
|||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
{ config, pkgs, ... }:
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
# Add this module's pinned applications
|
||||
desktop.plasma.pinnedApps = [
|
||||
"applications:rustdesk.desktop" # Remote desktop client
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
vlc # Media player
|
||||
deluge # BitTorrent client
|
||||
rustdesk # Remote desktop client
|
||||
];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
{ config, pkgs, pkgs-unstable, ... }:
|
||||
{ config, pkgs, pkgs-unstable, lib, ... }:
|
||||
|
||||
{
|
||||
# Add this module's pinned applications
|
||||
desktop.plasma.pinnedApps = [
|
||||
"applications:slack.desktop" # Team communication
|
||||
"applications:signal-desktop.desktop" # Private messaging
|
||||
"applications:libreoffice-writer.desktop" # Write (LibreOffice Writer)
|
||||
"applications:libreoffice-calc.desktop" # Calc (LibreOffice Calc)
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
libreoffice-qt
|
||||
thunderbird
|
||||
|
|
@ -9,4 +16,7 @@
|
|||
# gimp # Temporarily commented out to avoid build errors
|
||||
# calibre
|
||||
];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,54 +1,76 @@
|
|||
{ config, pkgs, home-manager, ... }:
|
||||
{ config, pkgs, lib, home-manager, ... }:
|
||||
|
||||
{
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.xserver.displayManager.lightdm.enable = false;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
khelpcenter
|
||||
];
|
||||
|
||||
programs.dconf.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.spectacle
|
||||
arc-theme # Desktop theme
|
||||
pinentry # GUI pinentry for GPG
|
||||
tigervnc # VNC client/server
|
||||
firefox # Web browser
|
||||
tor-browser-bundle-bin # Tor browser
|
||||
kleopatra # GPG key manager
|
||||
];
|
||||
|
||||
# GNUPG Stuff
|
||||
services.pcscd.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
# Define the module option for pinned applications
|
||||
options.desktop.plasma.pinnedApps = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [];
|
||||
description = "List of applications to pin to the Plasma taskbar";
|
||||
};
|
||||
|
||||
# RDP
|
||||
services.xrdp.enable = true;
|
||||
services.xrdp.defaultWindowManager = "startplasma-x11";
|
||||
networking.firewall.allowedTCPPorts = [ 3389 ];
|
||||
services.xrdp.openFirewall = true;
|
||||
config = {
|
||||
# Add this module's pinned applications
|
||||
desktop.plasma.pinnedApps = [
|
||||
"applications:org.kde.konsole.desktop" # Terminal
|
||||
"applications:org.kde.dolphin.desktop" # Folder explorer
|
||||
"applications:firefox.desktop" # Firefox browser
|
||||
"applications:tigervnc.desktop" # TigerVNC
|
||||
];
|
||||
|
||||
# Custom Keyboard Shortcuts for Plasma 6
|
||||
environment.etc."kglobalshortcutsrc".text = ''
|
||||
[khotkeys]
|
||||
Ctrl+Alt+Delete=Lock Session,none,Lock the session
|
||||
'';
|
||||
services.xserver.enable = true;
|
||||
services.displayManager.sddm.enable = true;
|
||||
services.xserver.displayManager.lightdm.enable = false;
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
khelpcenter
|
||||
];
|
||||
|
||||
# stop PackageKit polling
|
||||
services.packagekit.enable = false;
|
||||
programs.dconf.enable = true;
|
||||
programs.kdeconnect.enable = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.spectacle
|
||||
arc-theme # Desktop theme
|
||||
pinentry # GUI pinentry for GPG
|
||||
tigervnc # VNC client/server
|
||||
firefox # Web browser
|
||||
];
|
||||
|
||||
# remove the Discover GUI + tray notifier
|
||||
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
||||
discover
|
||||
discover-notifier
|
||||
];
|
||||
# GNUPG Stuff
|
||||
services.pcscd.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# RDP
|
||||
services.xrdp.enable = true;
|
||||
services.xrdp.defaultWindowManager = "startplasma-x11";
|
||||
networking.firewall.allowedTCPPorts = [ 3389 ];
|
||||
services.xrdp.openFirewall = true;
|
||||
|
||||
# Custom Keyboard Shortcuts for Plasma 6
|
||||
environment.etc."kglobalshortcutsrc".text = ''
|
||||
[khotkeys]
|
||||
Ctrl+Alt+Delete=Lock Session,none,Lock the session
|
||||
'';
|
||||
|
||||
# stop PackageKit polling
|
||||
services.packagekit.enable = false;
|
||||
|
||||
# remove the Discover GUI + tray notifier
|
||||
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
||||
discover
|
||||
];
|
||||
|
||||
# Plasma taskbar pinning configuration for all users
|
||||
# Pinned applications are defined in each desktop module and merged here
|
||||
home-manager.sharedModules = [{
|
||||
xdg.configFile."plasma-org.kde.plasma.desktop-appletsrc".text = ''
|
||||
[Containments][1][Applets][2][Configuration][General]
|
||||
launchers=${lib.concatStringsSep "," config.desktop.plasma.pinnedApps}
|
||||
'';
|
||||
}];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue