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
]
)) <= 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
{
options.ringofstorms.dePlasma = {
@ -117,37 +99,11 @@ in
};
};
panel = {
enabled = mkOption {
type = types.bool;
default = panelDefaults.enabled;
};
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;
};
};
# TODO how to use same type as home manager programs.plasma.panels.*
# panels = mkOption {
# type = types.listOf types.;
# default = [ defaultPanel ];
# };
shortcuts = {
terminal = mkOption {

View file

@ -6,23 +6,36 @@
let
cfg = osConfig.ringofstorms.dePlasma;
inherit (lib) mkIf;
mkPanel =
{
location ? cfg.panel.location,
height ? cfg.panel.height,
opacity ? cfg.panel.opacity,
widgets ? cfg.panel.widgets,
}:
{
location = location;
height = height;
opacity = opacity;
widgets = widgets;
defaultPanel = {
location = "top";
height = 24;
opacity = "translucent"; # "adaptive" | "translucent" | "opaque"
floating = true;
hiding = "dodgewindows";
lengthMode = "fill";
widgets = [
"org.kde.plasma.kickoff"
"org.kde.plasma.pager"
"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
{
options = { };
config = mkIf (cfg.enable && cfg.panel.enabled) {
programs.plasma.panels = [ (mkPanel { }) ];
config = mkIf cfg.enable {
programs.plasma.panels = [ defaultPanel ];
};
}