Panels & Widgets

Plasma Manager allows you to fully define your panels and the widgets contained within them. This replaces existing panels on activation.

Defining Panels

Panels are defined as a list under programs.plasma.panels.

programs.plasma.panels = [
  {
    location = "bottom";
    height = 44;
    floating = true;
    widgets = [
      # ... widgets go here
    ];
  }
];

Panel Options

  • location: "top", "bottom", "left", "right".
  • height: Integer height in pixels.
  • floating: Boolean, enables the floating style.
  • hiding: "none", "autohide", "dodgewindows".
  • screen: Screen ID (integer) or "all".

Widgets

Widgets can be specified as a simple string (the widget ID) or an attribute set if you need to configure the widget.

Simple Widgets

widgets = [
  "org.kde.plasma.marginsseparator"
  "org.kde.plasma.systemtray"
];

Configured Widgets

Some widgets have high-level configuration options provided by Plasma Manager.

Digital Clock:

{
  digitalClock = {
    date.enable = true;
    time.format = "24h";
    calendar.firstDayOfWeek = "monday";
  };
}

Application Launcher (Kickoff):

{
  kickoff = {
    icon = "nix-snowflake-white";
    sortAlphabetically = true;
  };
}

Icon Tasks (Task Manager):

{
  iconTasks = {
    launchers = [
      "applications:firefox.desktop"
      "applications:org.kde.konsole.desktop"
    ];
    appearance.showTooltips = true;
  };
}

Custom/Raw Widget Configuration

For widgets that don't have a dedicated helper module, you can manually configure their settings using the config attribute, which maps to the keys found in the widget's main.xml or source code.

{
  name = "org.kde.plasma.weather";
  config = {
    Appearance = {
      showTemperature = true;
    };
  };
}