Skip to content
Pol Rivero edited this page Dec 28, 2024 · 26 revisions

On first run, the program creates the nwg-panel config directory in $XDG_CONFIG_HOME or ~/.config. It also copies sample config and style.css files, as well as the user-definable icon sets (light and dark).

Run nwg-panel-config to manage your panels. It should be visible to your launcher.

The initial window allows to manage your config files, add / reorder / remove panels, and choose one to edit.

panel-selector.png

Click a pencil to edit a panel.

config-panel.png

Click the Modules left (/center / right) button to add, reorder or remove modules.

config-modules.png

Multi-monitor configuration

In order to show different modules on each display, do the following:

  1. Create one panel for each monitor. Configure each panel with the modules you want to use.
  2. In the Panel settings (click the pencil icon in the panels list), use the Output or Monitor selector to pick where each panel/bar should be shown.

For systems where the connected outputs change dynamically (like a laptop), you may want to decide whether a panel should be launched based on the outputs that are currently connected. This can be accomplished with the filters "Run if outputs exist" and "Run if outputs absent", located at the bottom of the Panel settings. Each is a comma-separated list of output names. The panel will only be launched if all the outputs in "Run if outputs exist" are connected AND all the outputs in "Run if outputs absent" are disconnected.

Tip

Go to Common settings (bottom-left button in the panel list) and make sure that "Restart on display connected" is enabled. This will ensure that the layout you defined is applied automatically when an output is connected or disconnected.

Simple multi-monitor example:

Consider a laptop that can be used while docked (built-in display eDP-1 + an external display HDMI-A-1) or undocked (only using the built-in display eDP-1). When docked, we want the bar in eDP-1 to contain a taskbar and a power menu, and HDMI-A-1 to contain a taskbar and systray. When undocked, we want a fully featured bar with taskbar, systray and power menu.

To implement this, we would create 3 panels:

  • docked-builtin: Has the taskbar and power menu modules. Output = "eDP1", Run if outputs exist = "HDMI-A-1"
  • docked-external: Has the taskbar and systray modules. Output = "HDMI-A-1"
  • undocked: Has the taskbar, systray and power menu modules. Output = "eDP1", Run if outputs absent = "HDMI-A-1"