The audit's third tier: everything between this installer and a fresh machine it has never met. The one path that could cost a person their display: the interview probes Secure Boot with mokutil, which install-packages had not installed yet, so on a minimal base the MOK question silently never fired -- and install-hardware still installed akmod-nvidia and blacklisted nouveau, arming a reboot into an unloadable driver with its fallback disabled. The probe tools (pciutils, mokutil, fwupd) now bootstrap beside gum, and install-hardware re-checks Secure Boot for itself and refuses the driver rather than the display. Secrets leave the checkout: the personal environment moves to ~/.config/panama/env at mode 600 by migration, and .bashrc sources it with a permission check that quietly re-tightens drift. change-settings no longer overwrites /etc/dnf/dnf.conf -- two performance keys are set additively, the defaultyes=True that made every `dnf remove` treat Enter as yes is gone, and a migration strips it from machines that already received it. Package installation survives the world changing: the initial and desktop lists run with --skip-unavailable and a report_missing pass that names what was skipped (resolved through --whatprovides, so capability names like awk do not cry wolf); the openh264, appstream and core-group extras go through soft; RustDesk resolves its RPM for the machine's own architecture; and the Claude Desktop repository script is fetched to a kept file and run, never piped from the network into root. The hardware predicates stop guessing: a wireless mouse's scope=Device battery no longer turns a tower into a laptop, USB-PD-only machines read their power state from the battery's own status instead of being permanently "on AC", the lid falls back to logind's LidClosed where ACPI is silent, and charge limits reach every pack of a two-battery machine in one authorization -- with the reported percentage summed across packs. And the parsers stop assuming this machine: snapper is read through --machine-readable csv with named columns instead of a localized box-drawing table, and reports whether snapshots are even possible so ext4 and unconfigured-btrfs stop looking identical; fprintd is parsed under LC_ALL=C; the hypridle drop-in resolves the binary it points at; the recorder's render node became an "auto" token resolved at record time; update-grub writes the config its firmware actually boots; the nvm prompt hook and the SSH tmux takeover are guarded; hipblas and rocm-opencl move to an opt-in gpu-compute category; and the two interactive python tools' libraries are declared. Claude-Session: https://claude.ai/code/session_01Epx9ZC1gwm81K3jm9x9CKh
23 KiB
Settings reference
Generated from config/dot/quickshell/config/PreferenceSchema.qml.
Do not edit this file. Run quickshell/scripts/panama-settings-docs
after changing the schema; a contract fails when this copy is stale.
149 settings across 30 groups. 70 of them are applied to the compositor and confirmed by reading the value back.
accessibility
Found on Accessibility.
| Setting | Default | What it does |
|---|---|---|
MagnifiermagnifierFactor cursor:zoom_factor |
1.0 | Magnifies the screen around the pointer. 1.0 is off. Range 1.0–5.0. |
Magnifier follows in stepsmagnifierRigid cursor:zoom_rigid |
false | Moves the magnified view in increments rather than gliding with the pointer |
High contrasthighContrast |
false | Increases contrast in applications that support it. Modern GTK applications read this from the desktop portal and restyle themselves; older ones need a high-contrast theme, which is not installed here. |
Dim inactive windowsdimInactive decoration:dim_inactive |
false | Darkens every window except the focused one, so the active window is unmistakable |
Dim amountdimStrength decoration:dim_strength |
0.5 | How much darker unfocused windows are. Range 0.05–0.9. |
Pointer sizecursorSize |
24 px | Applies to the compositor and to applications. Range 16–64. |
Text sizetextScale |
1.0 | Scales interface text everywhere; 1.00 is the design size. Range 0.75–2.0. |
appearance
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
AppearancecolorScheme |
dark | Light and dark share one identity, not two themes Choices: Dark, Light. |
Accent coloraccentName |
blue | Drives the focused window border, the bar hairline, and every active state Choices: Prism blue, Orchid, Teal, Green, Amber, Orange, Rose, Slate. |
battery
Found on Power & Lock.
| Setting | Default | What it does |
|---|---|---|
Warn atbatteryLowPercent |
20 % | Mention the battery once it drops this low. Range 5–50. |
Urgent atbatteryCriticalPercent |
5 % | Interrupt at this level, even during Do Not Disturb. Range 1–25. |
Stop charging atbatteryChargeLimit |
100 % | Charging to less than full is easier on the battery over years. Range 50–100. |
capture
Found on Screen Intelligence.
| Setting | Default | What it does |
|---|---|---|
Screenshot folderscreenshotDir |
Pictures/Screenshots | Where screenshots are saved. Relative to your home folder unless it starts with / |
Recording folderrecordingDir |
Videos/Screencasts | Where screen recordings are saved. Relative to your home folder unless it starts with / |
Recording encoderrecorderArgs |
-c h264_vaapi -d auto | Hardware encoding keeps recording off the processor while gaming Choices: VAAPI H.264, VAAPI HEVC, CPU x264. |
clock
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
24-hour timeuse24Hour |
false | Use 18:30 instead of 6:30 PM |
Show secondsshowSeconds |
true | Keep a precise clock in the center of the bar |
Show weekdayshowWeekday |
true | Include the abbreviated weekday before the date |
display
Found on Displays.
| Setting | Default | What it does |
|---|---|---|
Workspaces on the primary display onlyworkspacesOnPrimaryOnly |
false | Other screens keep one workspace of their own rather than switching along with it |
Game-aware HDRautoHdr render:cm_auto_hdr |
true | Hand HDR to fullscreen games while the desktop stays SDR |
Variable refresh ratevrrPolicy misc:vrr |
3 | Matches the display's refresh rate to what is on screen Choices: Off, Always on, Fullscreen only, Fullscreen games. |
Direct scanoutdirectScanoutPolicy render:direct_scanout |
2 | Lets fullscreen content bypass compositing Choices: Off, Always on, Automatic. |
dock
Found on Desktop & Dock.
| Setting | Default | What it does |
|---|---|---|
Automatically hide the DockdockAutohide |
true | Reveal it at the bottom edge when a workspace is occupied |
PositiondockPosition |
bottom | Which edge the Dock lives on Choices: Bottom, Left, Right. |
ScreensdockScreens |
[] | Which displays show the Dock |
Icon sizedockIconSize |
48 px | How large the Dock's application icons are drawn. Range 32–80. |
Reveal delaydockRevealDelayMs |
0 ms | Zero reveals the Dock the instant the pointer reaches the edge. Range 0–1000. |
Hide delaydockHideDelayMs |
250 ms | Prevents flicker when crossing between icons. Range 0–2000. |
Pinned applicationsdockPinned |
[ | Applications that stay in the Dock whether or not they are running |
edges
Found on Desktop & Dock.
| Setting | Default | What it does |
|---|---|---|
Resize by dragging the borderresizeOnBorder general:resize_on_border |
true | Drag a window's edge to resize it, instead of only with the keyboard |
Border grab areaborderGrabArea general:extend_border_grab_area |
15 px | How far outside the border still counts as grabbing it. Larger is easier to hit. Range 0–40. |
Show the resize cursorhoverIconOnBorder general:hover_icon_on_border |
true | Change the pointer when it is over a resizable border |
Snap distance between windowssnapWindowGap general:snap:window_gap |
10 px | How close two floating windows must be before they snap together. Range 0–60. |
Snap distance to screen edgessnapMonitorGap general:snap:monitor_gap |
10 px | How close a floating window must be to an edge before it snaps to it. Range 0–60. |
Snapping respects gapssnapRespectGaps general:snap:respect_gaps |
false | Snapped windows keep the configured gap instead of touching |
effects
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
BlurblurEnabled decoration:blur:enabled |
true | Blur the desktop behind translucent surfaces |
Blur radiusblurSize decoration:blur:size |
8 | Larger is softer and costs more frame time. Range 1–20. |
Blur passesblurPasses decoration:blur:passes |
3 | More passes look smoother and cost more frame time. Range 1–5. |
Window shadowsshadowEnabled decoration:shadow:enabled |
true | Lift windows off the wallpaper with a soft shadow |
Shadow sizeshadowRange decoration:shadow:range |
20 px | How far the shadow spreads from the window edge. Range 0–60. |
Hard-edged shadowshadowSharp decoration:shadow:sharp |
false | A crisp shadow instead of a soft falloff |
Shadow falloffshadowRenderPower decoration:shadow:render_power |
3 | How sharply the shadow fades out. Higher is tighter to the window. Range 1–4. |
Focus glowglowEnabled decoration:glow:enabled |
true | A faint halo behind the focused window |
Glow sizeglowRange decoration:glow:range |
8 px | Kept small deliberately: the gradient border is the signature. Range 0–30. |
AnimationsanimationsEnabled animations:enabled |
true | Window, workspace, and panel motion |
focus
Found on Desktop & Dock.
| Setting | Default | What it does |
|---|---|---|
Focus modesfocusModes |
[ | What quiets this machine, and what turns it on |
Focus session lengthfocusDurationMinutes |
45 min | How long a focus session runs before it ends itself. Range 5–180. |
gaming
Found on Gaming.
| Setting | Default | What it does |
|---|---|---|
Use the performance power profilegamingPerformanceProfile |
true | Switches while a game runs and switches back when it exits |
Say when Game Mode engagesgamingNotifyOnStart |
false | A notification when a game requests it, which is otherwise invisible |
idle
Found on Power & Lock.
| Setting | Default | What it does |
|---|---|---|
Turn the screen off afterscreenBlankMinutes |
5 min | Blanks the display; nothing is locked yet. Range 0–120. |
Lock the screen afterlockMinutes |
10 min | Counted from when the session went idle, not from blanking. Range 0–240. |
Suspend aftersuspendMinutes |
0 min | This is a desktop, so Panama ships with automatic suspend off. Range 0–480. |
Lock before sleepinglockOnSleep |
true | Requires your password when the machine wakes |
idleBattery
Found on Power & Lock.
| Setting | Default | What it does |
|---|---|---|
Turn the screen off afterscreenBlankMinutesBattery |
2 min | On battery. Blanks the display; nothing is locked yet. Range 0–120. |
Lock afterlockMinutesBattery |
5 min | On battery. Requires your password to get back in. Range 0–240. |
Suspend aftersuspendMinutesBattery |
20 min | On battery, sleeping is what makes the charge last. Range 0–480. |
input
Found on Keyboard.
| Setting | Default | What it does |
|---|---|---|
Keyboard layoutkeyboardLayout input:kb_layout |
us | XKB layout name, or a comma-separated list to switch between |
Layout variantkeyboardVariant input:kb_variant |
— | XKB variant, such as dvorak or colemak. Empty for the standard layout |
Keyboard optionskeyboardOptions input:kb_options |
caps:escape_shifted_capslock | XKB options, such as compose:ralt to make right Alt a compose key |
Num Lock on loginnumlockByDefault input:numlock_by_default |
true | Turn Num Lock on when the session starts |
Repeat delaykeyRepeatDelay input:repeat_delay |
500 ms | How long a key is held before it starts repeating. Range 150–1000. |
Repeat ratekeyRepeatRate input:repeat_rate |
33 /s | How many characters a second a held key produces. Range 5–100. |
lockAppearance
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
BackgroundlockBackgroundMode |
screenshot | What appears behind the lock screen Choices: Blurred desktop, Current wallpaper, Solid color. |
Background blurlockBlurLevel |
3 | Softens what is behind the password field. Range 0–5. |
Show clocklockShowClock |
true | Use the desktop's 12 or 24-hour format |
Show datelockShowDate |
true | Show the weekday and full date |
Show user namelockShowUser |
true | Identify the signed-in account |
Hide password field until typinglockFadeOnEmpty |
false | Keep the empty field out of the way |
master
Found on Desktop & Dock.
| Setting | Default | What it does |
|---|---|---|
Master area sizemasterFactor master:mfact |
0.55 | How much of the screen the master window takes. Range 0.1–0.9. |
Master area positionmasterOrientation master:orientation |
left | Which side of the screen the master window occupies Choices: Left, Right, Top, Bottom, Center. |
New windows becomemasterNewStatus master:new_status |
slave | Whether a new window takes the master area or joins the stack Choices: The master window, Part of the stack, Whatever the focused window is. |
Add new windows at the topmasterNewOnTop master:new_on_top |
false | New stack windows go above the others rather than below |
multitasking
Found on Desktop & Dock.
| Setting | Default | What it does |
|---|---|---|
Tiling layoutwindowLayout general:layout |
dwindle | Dwindle splits the focused window; master keeps one large window beside a stack Choices: Dwindle, Master and stack. |
Keep split directionpreserveSplit dwindle:preserve_split |
true | New windows follow the split of the window they replace, instead of always halving the longer side |
New windows openforceSplit dwindle:force_split |
0 | Where a new window lands relative to the one that was focused Choices: Where the pointer is, Always left or above, Always right or below. |
Snap floating windowswindowSnapping general:snap:enabled |
true | Floating windows stick to screen edges and to each other as you drag them |
Switch back and forthworkspaceBackAndForth binds:workspace_back_and_forth |
false | Selecting the workspace you are already on returns you to the previous one |
Wrap around at the endsallowWorkspaceCycles binds:allow_workspace_cycles |
false | Moving past the last workspace continues from the first |
Let applications take focusfocusOnActivate misc:focus_on_activate |
false | An application asking for attention is switched to, rather than only highlighted |
Hide the terminal that launched a windowwindowSwallow misc:enable_swallow |
false | A terminal disappears while an application started from it is open, and returns when it closes |
Pointer changes active displaymouseMoveFocusesMonitor misc:mouse_move_focuses_monitor |
true | Moving the pointer to another display makes it the active one |
nightLight
Found on Displays.
| Setting | Default | What it does |
|---|---|---|
Night LightnightLightEnabled |
false | Shift the display warmer to reduce blue light |
Schedule automaticallynightLightAutomatic |
false | Turn Night Light on and off at the scheduled hours |
Color temperaturenightLightTemperature |
3500 K | Lower is warmer. Range 2000–6500. |
Turns on atnightLightFrom |
17.0 | Only used when Night Light follows a schedule. Range 0–23.5. |
Turns off atnightLightTo |
10.0 | A time earlier than the start simply means the next morning. Range 0–23.5. |
notices
Found on Desktop & Dock.
| Setting | Default | What it does |
|---|---|---|
Hyprland wallpaperhyprlandLogo misc:disable_hyprland_logo |
false | The stock background Hyprland draws when no wallpaper is set |
Splash texthyprlandSplash misc:disable_splash_rendering |
false | The line of text Hyprland renders over the stock background |
Update announcementshyprlandUpdateNews ecosystem:no_update_news |
false | The window Hyprland opens after an update to describe what changed |
Donation remindershyprlandDonationNag ecosystem:no_donation_nag |
false | The prompt Hyprland shows twice a year asking for support |
notifications
Found on Notifications & Focus.
| Setting | Default | What it does |
|---|---|---|
Notification durationnotificationTimeoutMs |
5000 ms | How long ordinary notification banners remain visible. Range 1000–30000. |
Critical notification durationnotificationTimeoutCriticalMs |
0 ms | Zero keeps critical notification banners visible until dismissed. Range 0–60000. |
Notification historynotificationHistoryLimit |
100 | Maximum notifications retained in the notification center. Range 10–500. |
Visible bannersmaxVisibleToasts |
4 | Maximum notification banners shown at once. Range 1–8. |
pointer
Found on Mouse & Touchpad.
| Setting | Default | What it does |
|---|---|---|
Pointer focusfollowMouse input:follow_mouse |
1 | What moving the pointer does to which window is focused Choices: Click to focus, Focus follows pointer, Pointer detached, Pointer fully separate. |
Pointer speedpointerSensitivity input:sensitivity |
0.0 | Zero is flat, unaccelerated response. Range -1.0–1.0. |
Hide pointer aftercursorInactiveTimeout cursor:inactive_timeout |
4 s | Seconds of stillness before the pointer fades out; 0 never hides it. Range 0–60. |
Natural scrollingnaturalScroll input:natural_scroll |
false | Content follows the direction of your fingers, as on a phone |
AccelerationaccelProfile input:accel_profile |
flat | Flat moves the pointer the same distance however fast you move Choices: Flat, Adaptive. |
Scroll speedscrollFactor input:scroll_factor |
1.0 | Multiplies how far one notch of the wheel scrolls. Range 0.1–4.0. |
Left-handedleftHanded input:left_handed |
false | Swap the primary and secondary buttons |
Middle-click pastemiddleClickPaste misc:middle_click_paste |
true | Paste the primary selection in GTK and native Wayland applications |
search
Found on Applications.
| Setting | Default | What it does |
|---|---|---|
Web search enginewebSearchUrl |
https://duckduckgo.com/?q= | Where the launcher's web search sends a query; the search text is appended |
themes
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
Pointer themecursorTheme |
oreo_blue_cursors | The pointer design used by applications and Hyprland |
Application iconsiconTheme |
Adwaita | The icon set used by GTK applications |
titlebar
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
Button sidetitlebarButtonSide |
right | Place application titlebar buttons on the left or right Choices: Left, Right. |
Maximize buttontitlebarMaximizeButton |
false | Show a maximize button in application titlebars that support it |
Double-click titlebartitlebarDoubleClick |
toggle-maximize | Choose what a double-click on an application titlebar does Choices: Toggle maximize, Do nothing. |
touchpad
Found on Mouse & Touchpad.
| Setting | Default | What it does |
|---|---|---|
Tap to clicktouchpadTapToClick input:touchpad:tap-to-click |
true | A tap counts as a click without pressing down |
Natural scrollingtouchpadNaturalScroll input:touchpad:natural_scroll |
true | Content follows the direction of your fingers |
Disable while typingtouchpadDisableWhileTyping input:touchpad:disable_while_typing |
true | Ignore the touchpad briefly after a keystroke, so a palm cannot move the pointer |
Scroll speedtouchpadScrollFactor input:touchpad:scroll_factor |
1.0 | Multiplies how far a two-finger scroll travels. Range 0.1–4.0. |
Drag locktouchpadDragLock input:touchpad:drag_lock |
0 | Keeps a tap-and-drag active when you lift a finger mid-drag Choices: Off, On, On, until you tap again. |
Middle-click by pressing both buttonstouchpadMiddleButtonEmulation input:touchpad:middle_button_emulation |
false | Pressing left and right together acts as a middle click |
Swipe distanceswipeDistance gestures:workspace_swipe_distance |
300 px | How far a three-finger swipe must travel to change workspace. Range 100–800. |
Natural swipe directionswipeInvert gestures:workspace_swipe_invert |
true | Swiping left moves to the workspace on the right, as content follows your fingers |
typography
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
Interface fontinterfaceFont |
Adwaita Sans | Used for every piece of text in the shell |
Icon fonticonFont |
VictorMono Nerd Font | Draws the shell's glyphs, so it must be a Nerd Font |
Interface text sizeinterfaceFontSize |
13 px | The base size the rest of the shell's type scales from. Range 10–18. |
Application fontapplicationFont |
Adwaita Sans | Used by menus, controls, and labels in applications |
Application text sizeapplicationFontSize |
11 pt | The base text size used by applications. Range 6–32. |
Document fontdocumentFont |
Adwaita Sans | Used for document content when an application follows the system choice |
Document text sizedocumentFontSize |
12 pt | The default text size for document content. Range 6–32. |
Monospace fontmonospaceFont |
VictorMono Nerd Font | Used by terminals, editors, and code fields that follow the system choice |
Monospace text sizemonospaceFontSize |
10 pt | The default text size for terminals and code. Range 6–32. |
Font hintingfontHinting |
slight | How strongly text aligns to the pixel grid Choices: None, Slight, Medium, Full. |
Text smoothingfontAntialiasing |
rgba | How application text softens its edges Choices: None, Grayscale, Subpixel. |
vitals
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
ProcessorshowCpu |
true | Show processor usage beside the workspace indicator |
MemoryshowMemory |
true | Show memory usage beside the workspace indicator |
GraphicsshowGpu |
true | Show graphics usage beside the workspace indicator |
BatteryshowBattery |
true | Show the charge level in the bar, on machines that have a battery |
Battery percentageshowBatteryPercent |
false | Show the exact number beside the battery icon |
Claude usageshowAgentUsage |
false | Show how much of the Claude subscription has been used, beside the other vitals |
Vitals refreshvitalsIntervalMs |
2000 ms | How often processor, memory, and graphics usage update. Range 500–10000. |
wallpaper
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
Wallpaper folderwallpaperDir |
Pictures/Wallpapers | Where the picker looks. Relative to your home folder unless it starts with / |
WallpaperwallpaperPath |
— | Shown on every output |
Wallpaper modewallpaperMode |
single | Use one image, rotate a collection, or choose per display Choices: Single, Slideshow, Per display. |
Change background everywallpaperIntervalMinutes |
30 min | Time between slideshow images. Range 5–1440. |
ShufflewallpaperShuffle |
true | Show every selected image before repeating |
weather
Found on Home.
| Setting | Default | What it does |
|---|---|---|
Temperature unittemperatureUnit |
fahrenheit | Choose Fahrenheit or Celsius for the weather card Choices: Fahrenheit, Celsius. |
Weather refreshweatherRefreshMinutes |
20 min | How often Panama updates the current conditions. Range 5–120. |
windows
Found on Appearance.
| Setting | Default | What it does |
|---|---|---|
Inner gapsgapsIn general:gaps_in |
5 px | Space between neighboring tiled windows. Range 0–40. |
Outer gapsgapsOut general:gaps_out |
10 px | Space between the tiled area and the screen edge. Range 0–80. |
Border widthborderSize general:border_size |
2 px | Thickness of the gradient border on the focused window. Range 0–10. |
Corner radiuswindowRounding decoration:rounding |
18 px | Matches the shell's popover radius so windows and panels agree. Range 0–40. |
Unfocused window opacityinactiveOpacity decoration:inactive_opacity |
1.0 | Fade windows that do not have focus. Range 0.5–1.0. |
Focused window opacityactiveOpacity decoration:active_opacity |
1.0 | Fade even the focused window; 1.0 is fully opaque. Range 0.5–1.0. |
Fullscreen opacityfullscreenOpacity decoration:fullscreen_opacity |
1.0 | Applied instead of the focused opacity when a window is fullscreen. Range 0.5–1.0. |
Corner shaperoundingPower decoration:rounding_power |
2.0 | 2 is a circular corner; higher values approach a squircle. Range 2.0–10.0. |