Skip to content

Control Center

The Control Center is Noctalia’s panel for session controls, system status, media, notifications, weather, and service-specific tools. Open it from the control-center bar widget, by right-clicking empty space on a bar, or with IPC:

Terminal window
noctalia msg panel-toggle control-center

Pass a context to jump straight to a tab:

Terminal window
noctalia msg panel-toggle control-center audio
noctalia msg panel-open control-center system

Set sidebar under [control_center] for tab navigation when Control Center opens on Home (control center widget, bar background click, or noctalia msg panel-toggle control-center with no tab name). Use "full" for icons and labels, "compact" for icon-only tabs, or "none" to hide the sidebar.

Set sidebar_section for opens that jump straight to a tab (volume, network, and media bar widgets, or noctalia msg panel-toggle control-center audio).

Keyboard navigation uses the global [keybinds] actions: tab_next / tab_previous switch between the sidebar and the active tab body; arrow keys move within the focused pane. In the notifications tab, delete removes the topmost notification.

[control_center]
sidebar = "compact"
# sidebar_section = "compact" # optional; defaults to the same as sidebar
# width = 700 # full-sidebar width in pixels (600–1200)
# show_shortcut_labels = true # text under Home shortcut icons
# show_session_button = true # session-actions button in the Home header
# circular_avatar = true # disable to follow shell corner roundness
# show_avatar_border = true # disable to hide the accent ring around the avatar
# hidden_tabs = ["monitor", "weather"] # hide tabs you never use
OptionTypeDefaultDescription
sidebarstring"compact"Sidebar on Home / general open: "full", "compact", or "none"
sidebar_sectionstring"compact"Sidebar when opening straight to a tab: "full", "compact", or "none"
widthint700Control Center width in pixels (600–1200). This is the full-sidebar width; the compact and no-sidebar modes scale down from it.
show_shortcut_labelsbooltrueShow text labels under Home shortcut icons. When false, shortcuts are icon-only and glyphs scale with cell size.
show_session_buttonbooltrueShow the session-actions button in the Home tab header.
circular_avatarbooltrueKeep the Home avatar circular. When false, the avatar follows the shell’s corner roundness.
show_avatar_borderbooltrueShow the accent ring around the Home tab avatar. When false, the avatar has no ring, including on hover and keyboard focus.
hidden_tabsarray[]Tab context IDs to hide from the Control Center. Empty shows every available tab. Editable from Settings → Control Center. The Home tab cannot be hidden.

Use these context IDs with noctalia msg panel-toggle control-center <context> or noctalia msg panel-open control-center <context> to open a specific tab.

ContextTabWhat it shows
homeHomeUser card, media summary, date/time, weather summary, and shortcut buttons
mediaMediaMPRIS players, playback controls, queue-style player switching, and artwork
audioAudioOutput/input volume, mute controls, devices, streams, and media-related audio controls
monitorMonitorBrightness controls for displays that expose writable backlight devices
systemSystemDistro/kernel, hardware summary, uptime, CPU/RAM/GPU/network graphs, and resource details
networkNetworkWi-Fi state, connection status, cellular controls, known wireless controls, and NetworkManager-backed actions
bluetoothBluetoothAdapter power, discoverability, paired devices, connection controls, and pairing flows
weatherWeatherCurrent conditions, forecast, location status, and weather service diagnostics
calendarCalendarMonth view and configured calendar account events
notificationsNotificationsNotification history, Do Not Disturb, and notification cleanup controls
screen-timeScreen TimeForeground app usage totals and charts for today, three days, or fourteen days
powerPowerBattery charge and status, power profiles, battery health, and connected-device battery levels

weather, system, and screen-time open only when their corresponding services are enabled; power opens only when UPower or power-profiles-daemon is available. Otherwise Noctalia falls back to the first visible tab.

Any tab except Home can also be hidden manually with hidden_tabs (use the context ID, e.g. "monitor" for the brightness tab). Hidden tabs drop from both the sidebar and keyboard navigation, and from the launcher’s Panels provider.

Every available tab except Home that isn’t hidden also gets its own row in the launcher’s Panels provider (/pan), so you can jump straight to, say, Bluetooth without landing on Home first. Home remains available through the main Control Center row.

The Home tab is the default Control Center landing view. It combines frequently checked status with a compact shortcut grid.

The user card automatically prefers a landscape wallpaper image from the connected monitors. If none is landscape, it uses the first available image.

Click the avatar in the user card to pick a custom image. Noctalia saves the selected path as [shell].avatar_path.

The avatar is circular by default. Disable Circular Avatar under Settings → Control Center → Home, or set [control_center].circular_avatar = false, to use the shell’s corner roundness. With shell corner roundness set to zero, the avatar has square corners.

The avatar carries an accent-colored ring by default. Disable Show Avatar Border under Settings → Control Center → Home, or set [control_center].show_avatar_border = false, for a borderless avatar. This also removes the ring shown on hover and keyboard focus.

When AccountsService is available, Noctalia also writes the selected avatar to org.freedesktop.Accounts as your user’s IconFile. That is what Noctalia Greeter reads for the login user list. On distros where this is not enabled by default, install and enable accountsservice (usually the accounts-daemon service) if you want the same avatar in both the shell and the greeter.

Click the date/time card to open the Weather tab. When [weather].enabled = false, the card hides its weather summary line and opens the Calendar tab instead.

The shortcut buttons are configured separately; see Control Center shortcuts.

Set show_session_button = false under [control_center] to hide the session-actions button in the Home tab header. This does not affect Home shortcuts configured with type = "session" or session widgets on the bar.

The Media tab shows active MPRIS players and exposes playback controls independent of any bar media widget. It is useful when multiple players are running or when artwork and track metadata need more room than a bar capsule can provide.

[control_center.media] configures how the tab is drawn:

[control_center.media]
show_visualizer = true
OptionTypeDefaultDescription
show_visualizerbooltrueShow the PipeWire audio visualizer beside the playback controls. Also toggled from the visualizer button in the tab header.

The Audio tab groups PipeWire output, input, device, and stream controls. Use it for volume changes, muting, selecting devices, and inspecting application streams without opening an external mixer.

The Monitor tab exposes brightness controls when Noctalia has a controllable backlight for the display. If no writable brightness device is available, the tab remains available but has no write controls to expose.

The System tab summarizes the machine and live resource usage. It shows distribution/kernel details, board/CPU/GPU information, uptime, install age, load averages, memory and swap, and graphs driven by the shared system monitor service.

System monitor sampling is configured globally under [system.monitor]; see System monitor.

The Network tab uses the configured network backend to show wireless state and connection details. It is the destination for Wi-Fi shortcuts and network-related right-click actions.

NetworkManager is preferred and followed on the system bus: when it starts after the shell or restarts, the tab picks it up, and while it is stopped the tab shows the network as unavailable. A standalone wpa_supplicant or iwd backend is used only when one of them is running at startup and NetworkManager is not.

The current connection line lists the IPv4 address, signal strength, radio band, and external IP. The band (2.4 GHz, 5 GHz, 6 GHz, or 60 GHz) is shown only when the backend reports the connection frequency. NetworkManager and wpa_supplicant report it; iwd reports it when Station diagnostics provide a positive frequency.

Clicking a secured network you have not joined, or a password request from the backend while the tab is open, shows a password prompt above the network list and focuses its first text field, so you can type right away. The eye button shows the password as plain text; copy and cut stay blocked while it is visible.

On the NetworkManager backend, a Wi-Fi connection that fails shows a notification naming the network and the reason when NetworkManager reports one: rejected or missing password, network out of range, no response, no IP address, or the request was not authorized. Cancelling a connection or switching to another network does not notify. An authorization failure usually means NetworkManager needed a polkit prompt and no agent answered it; see the FAQ.

Clicking a WPA2/WPA3-Enterprise network opens a credential form instead of the pre-shared-key field: EAP method (PEAP or TTLS), inner authentication, identity, anonymous identity, server domain suffix, and CA certificate path. The password field below the form is the one used for the EAP login.

PEAP accepts MSCHAPv2 only, so the inner dropdown is pinned and disabled while PEAP is selected; TTLS also allows PAP, MSCHAP, and CHAP. Leaving the CA certificate path empty trusts the system CA store; a path must be absolute and pins that file instead of the system store. The server domain suffix is the RADIUS server name suffix your organization publishes, and is optional.

Enterprise networks are recognized on the NetworkManager backend only; the wpa_supplicant and iwd backends still show the pre-shared-key prompt for them, which an 802.1X network cannot accept. Certificate-based EAP-TLS, including WPA3-Enterprise 192-bit, is not supported: the form says so instead of writing a profile NetworkManager would reject. Use nmcli or another NetworkManager front end for those networks.

When ModemManager reports a modem, the Network tab adds a Cellular card with a mobile-data switch and one row per modem showing its operator (or hardware name), state, access technology (5G, LTE, HSPA+, …), and signal percentage. The card disappears again when ModemManager stops or the modem is unplugged.

The switch follows GNOME’s mobile-data semantics: with a saved NetworkManager gsm profile it turns the data connection on and off and leaves the modem registered on the network; with no such profile it powers the modem radio itself. Turning it on can take several seconds while the modem enables, searches, and registers, and the switch holds the requested position until the change lands.

Cellular needs ModemManager running (org.freedesktop.ModemManager1) and, for mobile data, a gsm connection profile created with nmcli or another NetworkManager front end. Noctalia does not create or edit cellular profiles.

The Bluetooth tab shows adapter power state, paired devices, and connection controls. It is backed by Noctalia’s Bluetooth service and agent. Devices paired from the tab are marked trusted, which turns on Auto-reconnect for them.

When a device asks for access to a service, the prompt names the service (for example, Audio Sink or Hands-Free) instead of showing its raw UUID. Accept allows that one request. Trust and allow also marks the device as trusted, so BlueZ grants its future service requests without prompting and Auto-reconnect turns on; turn off Auto-reconnect to revoke that trust.

By default Noctalia does not dial out to devices: BlueZ and the devices handle reconnection, and most trusted headsets, keyboards, and mice reconnect on their own. For devices that wait for the computer to connect, set connect_when_enabled = true. When Bluetooth turns on (toggled on, at startup, or after resume), Noctalia then connects each paired, trusted device that is not already connected, once and one device at a time. A device that is switched off holds the queue until its connection attempt times out (several seconds), so leave this off if several trusted devices are usually off:

[bluetooth]
connect_when_enabled = true

Set [bluetooth] connection_notifications = true to show a notification when a Bluetooth device connects or disconnects without you acting on it in Noctalia, for example a headset you switch on, a device going out of range, or the auto-reconnect pass above. These notifications are off by default. Connecting, disconnecting, pairing, or forgetting a device from the Bluetooth tab stays silent, except that a connect you start which fails shows an error. Turning Bluetooth off does not notify for each device it drops, and devices that were already connected when Noctalia started never trigger one.

The Weather tab expands the Home weather summary into current conditions, forecast detail, and location/status information. It is hidden when [weather].enabled = false.

Weather configuration is documented under Weather.

The Calendar tab shows the month view and events from configured calendar accounts. Calendar accounts and sync behavior are documented under Calendar.

Right-click a day to launch the application registered for the text/calendar MIME type. The Calendar panel closes after a successful launch.

[control_center.calendar] holds how the tab is drawn; [calendar] holds whether events are synced and the shared event date and time formats.

[control_center.calendar]
show_events_card = true
show_week_numbers = false # ISO 8601 week numbers in the month grid
show_events_location = false # show each event's location below its time
hide_past_events = false # hide today's finished events from the event list
past_events_threshold_minutes = 30
OptionTypeDefaultDescription
show_events_cardbooltrueShow the event list beside the month grid. Also toggled from the calendar button in the tab header.
show_week_numbersboolfalseShow a column of ISO 8601 week numbers to the left of the month grid, separated from it by a divider. Each row is numbered by the week its Thursday falls in.
show_events_locationboolfalseShow each event’s location below its time in the event list. Locations that are web links (http:// or https://) are not shown. The desktop calendar widget has its own show_events_location setting.
hide_past_eventsboolfalseHide today’s events that have already ended from the event list. When false, every event of the day is shown and finished ones are dimmed. Other days are not affected. The desktop calendar widget follows this option too. While events are hidden, a Show N past events row at the top of the list reveals them; click it again to hide them.
past_events_threshold_minutesint30With hide_past_events on, an event stays visible for this many minutes after it ends (0–1440). 0 hides it as soon as it ends.

The shared event_date_format and event_time_format options are documented under Calendar. Week numbers are a decoration of the month grid, so they work with [calendar].enabled = false and no accounts configured.

The Notifications tab shows notification history and notification actions, including Do Not Disturb. Notification daemon and history behavior are documented under Notifications.

The Screen Time tab shows how long each application was in the foreground today. Noctalia tracks focus using the active zwlr_foreign_toplevel window, pauses tracking while its session lock is active, and stores daily totals under $XDG_STATE_HOME/noctalia/screen_time.json (about 14 days retained).

  • Range toggle: today (hourly chart), last 3 days, or last 14 days (daily bars)
  • Total time for the selected range, with a stacked bar chart (hourly or per-day)
  • Chart legend as a horizontal row under the chart (chart colors only; app list uses neutral bars)
  • Most used apps with icons, usage bars, and duration for the selected range

Open it from the control center sidebar (screen-time context) or add a Home shortcut with type = "screen_time".

Reset stored history from Settings → System → Screen Time → Reset Screen Time Data (clears screen_time.json while Noctalia is running).

The Power tab consolidates battery and power-management status, backed by UPower and power-profiles-daemon:

  • Battery - charge percentage, charging/discharging state, time remaining (or time until full), and current draw in watts
  • Power Profile - a selector for the profiles your machine exposes (power-saver, balanced, performance); switching here is equivalent to the Home shortcut and bar widget
  • Battery Health - current full-charge capacity as a percentage of the original design capacity
  • Connected Devices - battery levels for peripherals such as Bluetooth mice, keyboards, and headsets

Sections appear only when their data is available: the battery and health sections require a system battery, the profile selector requires power-profiles-daemon, and the connected-devices section appears when peripherals report a battery. The tab itself is hidden on systems where neither UPower nor power-profiles-daemon is running.

For opening Control Center from scripts or keybinds, see Surfaces -> Panels.