more plasma updates

This commit is contained in:
RingOfStorms (Joshua Bell) 2025-11-30 01:26:14 -06:00
parent 694938f3a2
commit 1dcc9b436d
2 changed files with 37 additions and 68 deletions

View file

@ -24,24 +24,6 @@ let
cfg.gpu.intel.enable or false cfg.gpu.intel.enable or false
] ]
)) <= 1; )) <= 1;
panelDefaults = {
enabled = true;
location = "top";
height = 24;
opacity = "translucent"; # "adaptive" | "translucent" | "opaque"
widgets = [
"org.kde.plasma.kickoff"
"org.kde.plasma.icontasks"
"org.kde.plasma.systemtray"
"org.kde.plasma.networkmanagement"
"org.kde.plasma.bluetooth"
"org.kde.plasma.volume"
"org.kde.plasma.battery"
"org.kde.plasma.powerprofiles"
"org.kde.plasma.notifications"
"org.kde.plasma.digitalclock"
];
};
in in
{ {
options.ringofstorms.dePlasma = { options.ringofstorms.dePlasma = {
@ -117,37 +99,11 @@ in
}; };
}; };
panel = { # TODO how to use same type as home manager programs.plasma.panels.*
enabled = mkOption { # panels = mkOption {
type = types.bool; # type = types.listOf types.;
default = panelDefaults.enabled; # default = [ defaultPanel ];
}; # };
location = mkOption {
type = types.enum [
"top"
"bottom"
"left"
"right"
];
default = panelDefaults.location;
};
height = mkOption {
type = types.int;
default = panelDefaults.height;
};
opacity = mkOption {
type = types.enum [
"adaptive"
"translucent"
"opaque"
];
default = panelDefaults.opacity;
};
widgets = mkOption {
type = types.listOf types.str;
default = panelDefaults.widgets;
};
};
shortcuts = { shortcuts = {
terminal = mkOption { terminal = mkOption {
@ -225,11 +181,11 @@ in
kdePackages.plasma-browser-integration kdePackages.plasma-browser-integration
kdePackages.plasma-workspace-wallpapers kdePackages.plasma-workspace-wallpapers
# Panel applets required for widgets # Panel applets required for widgets
kdePackages.plasma-nm # org.kde.plasma.networkmanagement kdePackages.plasma-nm # org.kde.plasma.networkmanagement
kdePackages.bluedevil # org.kde.plasma.bluetooth kdePackages.bluedevil # org.kde.plasma.bluetooth
kdePackages.plasma-pa # org.kde.plasma.volume kdePackages.plasma-pa # org.kde.plasma.volume
kdePackages.kdeplasma-addons # extra widgets kdePackages.kdeplasma-addons # extra widgets
kdePackages.powerdevil # power management services kdePackages.powerdevil # power management services
]; ];
}; };
}; };

View file

@ -6,23 +6,36 @@
let let
cfg = osConfig.ringofstorms.dePlasma; cfg = osConfig.ringofstorms.dePlasma;
inherit (lib) mkIf; inherit (lib) mkIf;
mkPanel =
{ defaultPanel = {
location ? cfg.panel.location, location = "top";
height ? cfg.panel.height, height = 24;
opacity ? cfg.panel.opacity, opacity = "translucent"; # "adaptive" | "translucent" | "opaque"
widgets ? cfg.panel.widgets, floating = true;
}: hiding = "dodgewindows";
{ lengthMode = "fill";
location = location; widgets = [
height = height; "org.kde.plasma.kickoff"
opacity = opacity; "org.kde.plasma.pager"
widgets = widgets; "org.kde.plasma.icontasks"
}; #
"org.kde.plasma.marginsseparator"
#
"org.kde.plasma.systemtray"
"org.kde.plasma.networkmanagement"
"org.kde.plasma.bluetooth"
"org.kde.plasma.volume"
"org.kde.plasma.battery"
"org.kde.plasma.powerprofiles"
"org.kde.plasma.notifications"
"org.kde.plasma.digitalclock"
"org.kde.plasma.showdesktop"
];
};
in in
{ {
options = { }; options = { };
config = mkIf (cfg.enable && cfg.panel.enabled) { config = mkIf cfg.enable {
programs.plasma.panels = [ (mkPanel { }) ]; programs.plasma.panels = [ defaultPanel ];
}; };
} }