Chasing wasted pixels: making Konsole behave like a desktop widget
btop looked cramped in a Konsole window, and the obvious suspect was the CPU box itself. A screenshot showed otherwise. Two rows of chrome above the terminal content were doing the damage, and they lived in two completely different settings dialogs.
I had btop running in a Konsole window on the new Fedora laptop and it looked wrong: the top of the window felt cramped, like the CPU box was fighting the rest of the layout for space. The instinctive fix is to go digging in btop.conf and start toggling boxes off. Before doing that, I looked at the actual screenshot instead of my assumption about it.
The CPU box wasn't the problem. Above it sat two rows that had nothing to do with btop at all: the KWin titlebar, showing the working directory and window title, and below that the Konsole toolbar with its New Tab, Split View, Copy, Paste and Find buttons. Together they were costing more vertical space than the thing I'd been about to reconfigure.
Lesson worth keeping: when a terminal application "looks too big", check which layer actually owns the wasted space before changing the application's settings. The window manager, the terminal emulator, and the program running inside it are three separate configuration surfaces, and none of them know about the other two.
A detour through a text console#
Going after the titlebar, I reached for what I thought was the window menu shortcut and hit Ctrl+Alt+F3 instead of Alt+F3. That combination doesn't open a menu. It switches the whole session to a text virtual terminal, and the desktop just disappears.
Ctrl+Alt+F4 brought it back, which was also how I found out the graphical session on this machine runs on tty4, not the tty1 or tty2 that would be the more common default. Worth checking on any machine before you need it in a hurry:
who
tty
loginctl list-sessions
loginctl show-session <id> -p TTY
Alt+F3 and Ctrl+Alt+F3 are one modifier apart and do completely different things: one opens a menu, the other drops you to a console. Cheap to mix up, mildly alarming the first time it happens, easy to recover from once you know which key gets you back.
Where the space actually went#
The toolbar turned out to be the bigger of the two costs, and it's not where you'd look for it:
- Right-click directly on the toolbar row → Toolbars Shown → uncheck Main Toolbar and Session Toolbar. If the right-click menu doesn't appear, the hamburger menu button → Settings → Toolbars Shown reaches the same place. This one setting accounts for the largest single chunk of reclaimed height, and it is not in the Configure Konsole dialog, which is the first place I looked. - Tab bar: hamburger menu → Settings → Configure Konsole → Tab Bar / Splitters → Appearance → Show: → Never. Older or newer Konsole builds label the same setting Tab bar visibility: Always Hide instead; it's the same switch under a different name. - Menubar: Ctrl+Shift+M toggles it on and off. With it hidden, the hamburger menu button still reaches every entry that was on it. - Per-profile margin: hamburger menu → Settings → Configure Konsole → Profiles → select the profile → Edit → Appearance → set Margin to 0 or 1. This one is scoped to the profile, not global, which matters if a second profile exists for something else later.
That's the confirmed part: the setting exists, I found it, and the result looked cleaner. What I didn't keep a record of during the session was which exact subset of those four I actually left changed versus reverted, so treat the list above as the map rather than a claim that all four are currently active on this machine.
What's still just an idea#
Two more pieces came up as directions worth trying, not things I've done yet.
Removing the titlebar entirely is a single keypress: Alt+F3 → More Actions → No Titlebar and Frame. It doesn't survive a restart on its own, though. Making it permanent means a KWin window rule instead: System Settings → Window Management → Window Rules → New, matched on window class konsole, forcing No titlebar and frame to Yes. The same rule dialog can force the window to stay below others, skip the taskbar and pager, and pin a fixed position and size, which starts to look less like a terminal window and more like a permanent desktop panel. Add background transparency from the profile's Appearance settings and it edges further toward a Conky-style overlay. None of that is applied on this machine yet; it's the next thing to try, not a report of what happened.
The other idea is a dedicated monitor profile carrying all the chrome settings above, launched directly into btop on its own hotkey:
konsole --profile monitor --hide-menubar --hide-tabbar -e btop
bound through System Settings → Shortcuts → Custom Shortcuts. The point is keeping the default profile untouched for normal terminal work while a second profile stays stripped down for the one job of hosting btop.
Where each setting actually lives#
The part that made this take longer than it should have was that no single dialog owns all of it:
| Setting | Location |
|---|---|
| Toolbars | Right-click the toolbar → Toolbars Shown |
| Tab bar | Configure Konsole → Tab Bar / Splitters → Appearance |
| Menubar | Ctrl+Shift+M |
| Margin | Configure Konsole → Profiles → Edit → Appearance |
| Transparency | Configure Konsole → Profiles → Edit → Appearance |
| Titlebar | KWin, not Konsole: Alt+F3, or a Window Rule for persistence |
Four of those six live inside Konsole's own settings. The toolbar, which saved the most space, doesn't, and the titlebar, which is the most visible piece of chrome, isn't Konsole's to control at all: it belongs to KWin, one layer further out.
btop itself is worth one separate note, since it started this whole detour: its box proportions are a fixed percentage of terminal height and can't be set to an arbitrary size directly. The available levers are which boxes are visible, what each box shows, and the geometry of the terminal around it, set in ~/.config/btop/btop.conf:
show_gpu_info = "Off"
cpu_single_graph = True
show_uptime = False
show_battery = False
show_cpu_freq = False
Edit that file with btop closed. It rewrites its own config on exit, and will silently overwrite whatever was changed by hand while it was still running.