Skip to content
GitHub

Limitations

What the desk does not do, and what to do instead. Grouped by area; where there is a way round, it is given.

  • Most programs take a new palette only in their next window: btop, yazi, imv, GTK and Qt windows, Nautilus and its folders, Zen and VSCodium. Restart the program, or in VSCodium run Developer: Reload Window.
  • Spotify takes a new palette at its next start, not while it plays. A Spotify update takes the patch away until the next ./setup update, and your user has to be able to write to /opt/spotify. See Applications.
  • The login screen does not follow the palette.
  • A Discord update that renames its colour variables leaves parts of Vesktop unthemed, with no error.
  • VSCodium’s settings are merged once, by the install. After that only the font and the extensions’ colours in them follow, and a key you delete stays deleted. Error Lens and indent-rainbow draw nothing until the folder is trusted.
  • Zen’s own theme picker does nothing while the palette is on it, and an empty tab is Firefox’s grey. The way back is under Applications.
  • GTK’s dark setting holds only when set inside the session: an install run from a TTY leaves GTK windows light until ./setup defaults runs in Hyprland. The shell’s font setting does not reach them.
  • Without qt6ct, Qt windows come up light grey. Qt 5 applications, VLC among them, are not themed.
  • Nautilus takes only what libadwaita’s named colours reach; the rest of it stays Adwaita’s. The folders land on the nearest of Papirus’s twenty-five colours rather than on the accent, and without Papirus there are no coloured folders. The sidebar’s Desktop row keeps a plain folder icon.
  • yazi’s file icons keep their own colours: a Python file is Python’s blue and yellow under every palette.
  • The selected row in btop and yazi is low-contrast in a few palettes, and neovim’s comments are dim on purpose.
  • Magenta, bright magenta and bright black keep kitty’s own colours: a palette has no source for them.
  • The greeting’s scenes play only in kitty, need ImageMagick, and are drawn for a 9 × 20 pixel cell; at another font size their edges go soft. For a few seconds after a palette change, fa can show the old colours.
  • btop forgets what you change inside it when you quit.
  • A language without a treesitter parser gets fewer colours in neovim. More parsers are compiled when the tree-sitter CLI is installed; it is in the package list. There is no format-on-save, debugger or test runner.
  • matrix needs a font with half-width katakana, or its rain is empty boxes.
  • lava keeps the palette it started in until you quit it, and in a palette whose accent and bright accent sit close together the lamp is one colour. lavat comes from the AUR.
  • One bar layout for every style and every screen.
  • Every screen carries the bar, and one is live: the screen with the keyboard. The island moves only while it is shut, so an open panel holds it where it is. The workspace dots are the desk’s ten shared workspaces, and only which one is lit is each screen’s own, unless each screen has ten of its own.
  • With ten workspaces per screen, a screen’s numbers are its place from left to right, dealt again when a screen comes or goes. A workspace cannot be taken to another screen in that mode, only what is on it.
  • Rounded corners are a layer on the screen, so a screenshot or a recording of the whole screen has them in it. Their curve follows the desktop’s radius, not the window rounding slider.
  • The lock screen and the settings window keep their own ground: the bar’s ground does not reach them.
  • The glance does not open while a notification or an OSD holds the island.
  • The island shows two running things beside the time at most; the rest are a count, +N, and chips in the glance. A glance with four chips and long names can run past its edge, and the last is cut.
  • Closing a panel by clicking on a browser or Vesktop window can blank the pointer for a moment.
  • One timer at a time, and the timer’s own steppers cannot set seconds; the launcher’s countdown can (!, then 90s).
  • The updates module counts and never installs. The packages panel’s Update opens a terminal for that.
  • In the overview, two windows of one application with the same title share a thumbnail, and a window with nothing to draw looks like an empty cell.
  • The tray shows labels as the application sends them, so a menu entry can read _Quit. Menus go two submenus deep at most, with no tooltips and no icons on the entries. An application that sends a picture instead of an icon name is drawn grey, and may be dark.
  • The privacy mark sees the camera only in your own processes, so face unlock never lights it, and a camera plugged in after the shell started is not watched until it restarts. An application that keeps a microphone stream open while muted keeps the mark. A shared screen is recognised by the portal’s name for it, so another portal can go unseen.
  • The Claude module reads Claude Code’s own login and sends one small request every ten minutes to read the account’s usage. Without that login it shows counts only.
  • Only what lrclib.net has: a track it does not know shows no line and the plain player, and one it knows only as plain text shows the text with nothing lit.
  • Every lookup tells lrclib.net what is playing. Turn it off under Settings → Modules → Lyrics to stop it.
  • A player that reports its position late, such as a browser tab, sings a little behind.
  • One identity only: the first one polkit offers, so a machine with several administrators cannot pick another.
  • Reloading the shell cancels a request in flight, and closing the island any way answers no.
  • No face unlock for these requests.
  • If the shell cannot become the agent, the KDE password dialog takes its place until the next login.
  • No inline reply, and three buttons at most.
  • A notification kept from an earlier session is text only: its buttons are gone, and a picture sent with it comes back as the application’s mark.
  • Wi-Fi cannot forget a network from the shell. Use nmcli connection delete "<name>".
  • Bluetooth connects but cannot pair. Pair a new device with bluetoothctl.
  • A Wi-Fi password is passed to nmcli on the command line, where other programs running as you can read it for the seconds a connection takes.
  • No bit depth setting.
  • Mirroring is every screen copying the primary, not one chosen screen copying another.
  • The Displays page does not see changes made elsewhere while it is open. Close it and open it again.
  • A set of screens nobody has arranged is left to Hyprland’s automatic layout.
  • After a screen is unplugged and plugged back in, its workspaces come back to the primary screen, not to the screen they were on.
  • A lid already shut when the session starts is not known to the shell.
  • An external monitor is dimmed over DDC/CI, which has to be switched on in the monitor’s own menu. Most monitors behind a dock or an MST hub, and DisplayLink, are not reached, and NVIDIA’s proprietary driver needs its I2C option set first. A monitor’s own buttons go unnoticed until the brightness detail or the control centre opens again.
  • A widget cannot be dragged between screens: take it off and place it again on the other. Two decks or two spectra that land on one edge of one screen, with a laptop undocked or the main screen changed, are drawn over each other.
  • No stacking and no auto-arrange: the grid fills from the top left, and what you place stays where it is.
  • Arranging has no key. Right-click the wallpaper or a widget, or start it from Settings.
  • The dock draws over the widgets along its edge, whether it hides or stays, and a widget under it cannot be clicked where the dock covers it.
  • A photo holds one picture, as a path: no album, nothing dropped on it from a file manager, and a picture moved on disk leaves it empty. Its picker has no typed path and no search, and lists PNG, JPEG, WebP and BMP only.
  • Sticker has no large square for the weather, the system, the markets or screen time, and no band past the clock, the weather and GitHub. Its record does not turn, and the updates sticker names no packages. On the card of modules a sticker still sits on a black tile.
  • No stocks in the markets, since no free source answers without a key. A markets widget shows the first pair followed and cannot be told another. Its line spans the source’s history (a week of a coin, a month of a rate) while its colour and arrow are the day’s move, and a rate is the European Central Bank’s daily reference, which moves once a working day.
  • A spectrum needs cava and a monitor source to read the sound from. Its bars step with cava’s frames rather than gliding, and it has no menu at rest: it is changed while arranging.
  • Notes have no search, no export, no pictures and no links, and no undo beyond the archive. Delete asks nothing.
  • One deck per screen edge, and none along the top, which is the bar’s. Past a screen’s worth of tabs, the rest are off the end.
  • Tasks have no recurrence, no time of day and no reminder, one board, and three fixed lanes.
  • Days are read in English and Spanish only.
  • Nothing syncs: the tasks are a file on this machine.
  • No fuzzy matching.
  • The ranking counts only what you launch from the launcher, so a program you always open from the dock or a terminal never rises.
  • Enter copies from the clipboard history and does not paste. Paste with CTRL V.
  • Only the regular clipboard is kept, never the middle-click selection, and nothing is kept while the shell is not running.
  • One screen: the one with the keyboard. Move the keyboard to another screen to capture that one; two screens are never one picture.
  • No delay, no pointer in the picture, no scrolling capture, and nothing kept of what was taken: no gallery, no undo.
  • Window mode offers only the windows on the workspace in view.
  • No keyboard way to draw a region; 1 2 3 change the shape and Enter takes what needs no dragging.
  • Saving and copying always happen together.
  • Without satty there is no annotating, and without tesseract no reading text.
  • Captures land in XDG_SCREENSHOTS_DIR when user-dirs.dirs names one, and in a Screenshots folder inside your pictures folder when it does not. Recordings the same, with XDG_SCREENCASTS_DIR and Screencasts.
  • Recording is one take at a time, with no pause, no countdown and no trimming. Sound is the machine’s output or nothing, never the microphone. It writes mp4 only, with no GIF, and without wf-recorder or wl-screenrec there is no recording. There is no recorder module: a take shows beside the clock in the island.
  • The same items on every screen.
  • An application the icon set does not draw gets its own icon, or the launcher’s generic mark when its entry names an icon nothing has.
  • Its menu has no keyboard. A click elsewhere closes it.
  • Closing an application closes its windows one by one, without asking.
  • Two windows of one program can show as two icons if they report different classes.
  • Tiles are ordered only on the settings page, not by dragging them.
  • The colour picker needs hyprpicker, copies a hex and only a hex, and keeps no history.
  • The night light needs hyprsunset and is a switch: no schedule, one temperature for every screen. It gives way if another program already holds the screen’s colour.
  • Three waits: lock, screen off, sleep, in whole minutes up to sixty. No dimming before them, and nothing different on battery.
  • No gamepad.
  • A game pauses only when the panel closes, not when the pointer leaves.
  • Solitaire has no drag, no undo and no draw-three.
  • One layout for every workspace: dwindle, master or scrolling, not one per workspace. Master and scrolling have no keys of their own beyond focus and move.
  • Game mode leaves some things moving: the wallpaper’s transition, the lock screen’s rings and the clock’s seconds. The bar keeps its style. Turning it off reloads Hyprland.
  • Local machines through quickemu only: no SSH or remote machines, no GPU passthrough, no USB passthrough from the panel, and no ISO of your own.
  • The disk cannot grow after the machine is made.
  • Snapshots only with the machine off, and only after its first start.
  • The island shows the first machine running; several read as a count.
  • Windows and macOS fetch in two downloads, so the progress runs to the end twice. Windows comes from Microsoft at the moment of the fetch, and fails when Microsoft refuses. Apple’s licence on macOS is yours to read.
  • A machine’s window is spicy’s, with spicy’s own menus.
  • Only servers inside a project under your home, over TCP. A server in a container is held by Docker’s or Podman’s proxy and is not listed, nor is one that leaves its project’s folder once started.
  • The address is always http://localhost; a server on https opens on http.
  • Nothing is read while the panel is shut, so nothing announces a new server.
  • One effect at a time, and no picture of your own behind you: blurring the background is all there is.
  • Seven reactions, each with its own emoji, none of them changeable for another. The heart is the least reliable, since it is read from the shape of two hands.
  • A program that opens the webcam itself holds it, and the panel then says it cannot open it. While the switch is off the virtual camera is in no program’s list.
  • About a core of processor while it is read.
  • Restarting the shell drops a call’s picture for a second.
  • Not on the lock screen or the login screen.
  • Only the window’s class is kept, so a browser is one application and never the sites in it.
  • One window counts at a time: a video on a second screen does not count while another window has the focus.
  • With locking and the screen’s idle off both set to never, a machine left unlocked counts until it sleeps.
  • No limits, and no switch to stop recording. Time while the shell is not running is not counted.
  • It needs the shell running, except version, capture screen and capture text.
  • impasto watch is up to a second late, and only what the status holds is an event: not a notification, a key or a window.
  • Notes and tasks are named by key, which only their list gives.
  • Changing a key, Reset and switching profile all reload Hyprland, so anything you set by hand with hyprctl is lost.
  • The mouse’s drag, resize and wheel cannot be changed on the Keys page.
  • No key has a default to go back to; Reset puts back everything.
  • The layout picker cannot set a variant.
  • Changing the bar’s height re-tiles every window.
  • The power button works only while the shell runs, and does nothing at the login screen. Some laptops never report a short press; use SUPER X or CTRL ALT Delete.
  • The key sheet lists only keys with a description.
  • Profiles switch only from Settings → System. An export carries the wallpaper’s path, not the picture. The profiles that ship are laid out for a 1920 × 1200 screen, and a smaller one fits fewer widgets.
  • To back up the profile in use, export it: the list of profiles holds an old copy of it until you switch away.
  • Shake to find and refraction are Hyprland plugins built for the Hyprland that is running. After a Hyprland update they are gone until you run hyprpm update, or ./setup plugins.
  • Refraction shows only through translucent windows, which in practice means the terminal.
  • Until the vector cursor is built, the pointer is a small picture that pixelates when it grows. install builds it; without the network, run ./setup cursors later.
  • Applications that draw their own pointer, Electron and XWayland ones, show their own, uncoloured and unmagnified.
  • Three clock styles, Stacked, Inline and Flip, and nothing more: no size, face or position of its own. The flip is on the lock only, not on the island, and the login screen always draws it stacked.
  • The music’s controls also wake the screen, as any click on the lock does. On a screen under about 1070 px the player is drawn smaller.
  • Awake and at rest are one state for every screen: a key on one wakes them all, and the 30 seconds before the clock comes back is not a setting.
  • Face unlock is the lock screen’s only. The login screen, sudo and polkit still ask for the password.
  • Face unlock needs an infrared camera; a webcam is not offered.
  • It looks only when touched: a key, the pointer or the lid. After three misses it asks again only on Enter in an empty field.
  • howdy’s own settings, such as how certain it must be, the timeout and the camera, are sudo howdy config, not Settings.
  • A face being added cannot be cancelled: howdy looks for a few seconds as root, and the page cannot stop it.
  • Until ./setup system has run since 0.3.2, Settings cannot list the faces or share the picture with the login screen, and says so.
  • With two screens the blur does not lift on the way out.
  • One screen: the primary.
  • sddm is enabled only where no display manager was, and only from the next boot: a machine that starts another one keeps it.
  • The battery ring reads only BAT0, BAT1 or BAT2.
  • The account and session lists work with the pointer only.
  • No on-screen keyboard and no accessibility aids.
  • Search is by name only.
  • Updates are all or nothing, as Arch expects.
  • AUR packages need yay or paru.
  • Installs and removals open in kitty, and a package installed elsewhere while the panel is open shows when it is opened again.
  • GRUB, systemd-boot, a unified kernel image and Limine get the splash argument; another boot loader does not, and ./setup splash says so.
  • The progress is Plymouth’s own estimate, so the first boot after it is set up lands its daubs slowly, and a fast boot can end before the board is painted.
  • It is drawn for the first display, from a 1080-line design, so a 4K panel gets its pictures scaled up.
  • ./setup uninstall takes splash back out of GRUB only: elsewhere the argument stays, harmless, with no splash left to show.
  • No search and no jump by letter through the wallpapers: Home, End and the page keys are what there is.
  • The transition tiles are close to awww’s effects, not exact copies.
  • An animated wallpaper costs about a tenth of a core while it shows, and it shows through the terminal, so it pauses only under a full-screen window. One video plays on every screen, cropped to fill each, and never with sound. The strip shows each video’s first frame, not the video playing. Nothing ships in the animated folder.