01. Overview & Architecture

Profile: v0.12.1
Schema validatedSource pinned
Purpose
GTK3 panel for sway and Hyprland with a graphical config editor.
Compatibility
Any distro (Server: WAYLAND)
Desktop Part
Bars & panels
Window Manager & Theme
Any WM / DE / Other

02. Installation & Deployment

Before you installThis changes your desktop configuration and installs packages. Run it as your normal user, never with sudo: it asks for sudo only where a step needs it (listed below).The guided installer shows its plan first. Files it would replace are kept unless you approve. Everything it copies, clones or appends to in your home folder is backed up and verified first, and --rollback restores it. Packages, sudo changes and the other commands listed under Impact are not undone.
IntegrityEach release from main builds the installers in GitHub Actions and signs them with a GitHub build attestation. Verify your download against the repository, not this website (Option B, step 2). If it does not verify, don't run it.
ImpactPackages: nwg-panel
RecoveryGuided: backups in ~/.local/state/0xtsoa/backups/, undo with bash install.sh --rollback.Manual: the steps below only write in the download folder or run listed commands.
Option A: manual installAdvanced
Read the source at the reviewed commit, back up, then run each step yourself.
$git clone https://github.com/nwg-piotr/nwg-panel ~/0xtsoa-review/nwg-piotr-nwg-panel# 1. clone to a review folder
$git -C ~/0xtsoa-review/nwg-piotr-nwg-panel checkout --detach c4b31cbcdfa06208fa1d287560cb8d91dcca2f53# 2. the reviewed commit
Then the steps. Package commands are written for Arch; on other distros use your package manager.

Step-by-step deployment protocol

Step-by-step deployment
1Install nwg-panel (Arch repos)
$sudo pacman -S --needed nwg-panel
$# Other distros: see the upstream README
Option B: guided installerRecommended
The same steps as one script for any distro. It shows the plan first, keeps files you already have unless you approve replacing them, and backs up everything it changes in your home folder. Never pipe it into a shell.
$curl -fsSLo install.sh 'https://www.0xtsoa.dev/configs/nwg-piotr/nwg-panel/install.sh'# 1. download
$gh attestation verify install.sh --repo nyharena25/0xTsoa --signer-workflow nyharena25/0xTsoa/.github/workflows/attest-installers.yml# 2. verify (GitHub CLI 2.49+, signed in)
$less install.sh# 3. read it
$bash install.sh --dry-run# 4. preview: changes nothing
$bash install.sh# 5. install (asks first)
$bash install.sh --rollback# undo the file changes
View script in browserOther options: --force (replace conflicts, backed up first), --yes, --help

03. Screenshot Gallery // nwg-panel

Capture 01 // Fullscreen
nwg-panel screenshot 1
01 / 03

04. Documentation & Guide

Source: nwg-piotr/nwg-panelRef: c4b31cbcdf
README.md|GitHub Flavored Markdown
nwg-shell logo

nwg-panel


This application is a part of the nwg-shell project.

Nwg-panel is a GTK3-based panel for sway and Hyprland Wayland compositors. The panel is equipped with a graphical configuration program that frees the user from the need to manually edit configuration files.



Currently, we have a dozen of modules, and we don't plan on many more. Many minor tasks that users request a module for, may be easily done with executors.

  • Controls module: basis system controls like brightness slider, volume slider (w/ per-app sliders), battery level w/ low level notification, system processes viewer, user-defined custom items, user-defined drop-down menu (which is the power menu by default);
  • Brightness slider: a separate brightness slider for use per monitor; features backlight via ddcutil;
  • Clock: system clock w/ a calendar popup built in;
  • Custom button: a user-defined graphical/textual button you could bind an action to. By default, we use one as the application launcher button;
  • DWL tags: deprecated and no longer supported; will be deleted in the future;
  • Executor: a useful module that executes user-provided code and displays the output in the panel as an icon and text; see Wiki for more info;
  • Sway taskbar & Hyprland taskbar & Niri taskbar: highly customizable modules to display a label with an icon for every running window, together with some more info (workspace number, split orientation on sway, X-widows marker); right click opens a menu that allows to move windows between workspaces, toggle floating and fullscreen, and also close windows;
  • Sway & Hyprland workspaces: display labels to navigate between workspaces with a marker for non-empty ones; next to the labels there's a field with currently focused window details;
  • Menu Start: module provides integration of the XGD-style nwg-menu;
  • Openweather: displays weather forcast from OpenWeatherMap and weather alerts from weatherbit.io for given locations;
  • Playerctl: displays an icon and a label of the currently played tune, together with back / play-pause / forward buttons;
  • RandomWallpaper: provides you with random wallpapers from either a local folder, or the wallhaven.cc service. You can refresh them on startup, on demand or in a given time interval. You can also see the remote image info, and save the image to a local folder of your choice.
  • Scratchpad: displays info on current scratchpad content and allows to open scratchpad windows;
  • SwayMode: a simple indicator of a sway bindings mode other than "default";
  • HyprlandSubmap: a simple indicator of a Hyprland bindings submap other than "default";
  • Tray: SNI system tray module;
  • KeyboardLayout: keyboard layout switcher, between values defined as xkb_layout (sway) or kb_layout (Hyprland). Use commas to separate values, e.g. pl,us,de;
  • Pinned: displays buttons corresponding to pinned items from nwg-drawer/nwg-menu

Installation

![Packaging status](https://repology.org/badge/vertical-allrepos/nwg-panel.svg)

If nwg-panel has not yet been packaged for your Linux distribution, you may install it by cloning this repository and running the install.sh script.

Known issues:

If kded6 is running (e.g., started by launching Dolphin), it may register org.kde.StatusNotifierWatcher and prevent nwg-panel from owning the system tray. You can stop it using:

pkill kded6

See: https://github.com/nwg-piotr/nwg-panel/issues/396

See Wiki for more information. You'll also find some useful executor examples there.

GitHub Flavored Markdown (github-markdown-css)README snapshot at c4b31cbcdf