Provided by: kitty_0.43.1-1_amd64 bug

Name

       kitten-desktop-ui - kitten Documentation

Overview

       Added in version 0.43.0.

       Power  users  of  terminals  on  Linux  also often like to use bare bones window managers instead of full
       fledged desktop environments. This kitten helps provide parts of the desktop environment that are missing
       from such setups, and does so using keyboard friendly, terminal first UI components. Some of its features
       are:

       • Replace the typical File Open/Save dialogs used in GUI programs with  the  fast  and  keyboard  centric
         choose-files <> kitten running in a semi-transparent kitty overlay.

       • Allow simple command line based management of the desktop light/dark modes.

How to install

       Note:
          This  kitten  relies  on  the  panel  kitten  <>  under  the  hood  to supply UI components. Check the
          documentation <#panel-compat> of that kitten to see if your window manager works with it.

       First, run:

          kitten desktop-ui enable-portal

       Then, set the following two environment variables, system wide, that means  in  /etc/environment  or  the
       equivalent for your distribution:

          QT_QPA_PLATFORMTHEME=xdgdesktopportal
          GTK_USE_PORTAL=1

       Finally,  reboot.  Now,  when  you  open  a  file  dialog  in  most  GUI applications, it should open the
       choose-files kitten <> instead of a normal file open dialog. You can change the current  light/dark  mode
       of your desktop by running:

          kitten desktop-ui set-color-scheme dark
          kitten desktop-ui set-color-scheme light

       Check the current value using:

          dbus-send --session --print-reply --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read string:org.freedesktop.appearance string:color-scheme

How it works

       Modern  Linux  desktops  have  so called portals <https://flatpak.github.io/xdg-desktop-portal/docs/index
       .html> that were invented for sandboxed applications and provide various facilities to such  applications
       over DBUS, including file open dialogs, common desktop settings, etc. This kitten works by implementing a
       backend for some of these services.

       Normal  GUI  applications  can then be told to make use of these services, thereby allowing us to replace
       parts of the desktop experience as needed.

       There are multiple competing implementations of the backends. Each desktop environment like KDE or  GNOME
       has  it's own backend and many window managers provide implementations for some backends as well. Service
       discovery and configuring which backend to use happens via the xdg-desktop-portal program, usually  found
       at /usr/lib/xdg-desktop-portal.

       It  can  be  configured  by files in ~/.local/share/xdg-desktop-portal. See man portals.conf <https://man
       .archlinux.org/man/portals.conf.5>. The kitten desktop-ui enable-portal command takes care of  the  setup
       for  you  automatically.  If you want to customize exactly which services to use this kitten for, run the
       command and then edit the conf file that the command says it has patched.

Troubleshooting

       First, ensure that DBUS is able to auto-start the kitten when it is needed. If the kitten is not  already
       running, try the following command:

          dbus-send --session --print-reply --dest=org.freedesktop.impl.portal.desktop.kitty \
              /net/kovidgoyal/kitty/portal org.freedesktop.DBus.Properties.GetAll \
              string:net.kovidgoyal.kitty.settings

       If  DBUS  is able to start the kitten or if it is already running it will print out the version property,
       otherwise    it    will    fail    with    an    error.    If    it     fails,     check     the     file
       ~/.local/share/dbus-1/services/org.freedesktop.impl.portal.desktop.kitty.service  that  should  have been
       created by the enable-portal command. It's Exec key must point to the full path to the kitten executable.

       Next, check that the XDG portal system is actually using this kitten for its settings backend. Run:

          dbus-send --session --print-reply --dest=org.freedesktop.portal.Desktop \
              /org/freedesktop/portal/desktop org.freedesktop.portal.Settings.Read \
              string:net.kovidgoyal.kitty string:status

       If this returns a reply then the kitten is being used, as expected. If it returns a not found error, then
       some other backend is being used for settings.

       Read the portals.conf man page and run:

          /usr/lib/xdg-desktop-portal -r v

       this will output a lot of debug information, which should tell you which  backend  is  chosen  for  which
       service. Read the debug output carefully to determine why the kitten is not being selected.

       If  some  GUI applications are not using the choose-files kitten for their file select dialogs, then make
       sure the environment variables mentioned above are set, you can also try running the the GUI  application
       with them set explicitly, as:

          QT_QPA_PLATFORMTHEME=xdgdesktopportal GTK_USE_PORTAL=1 my-gui-app

       Note  that  not  all  applications  use  portals, so if some particular application is failing to use the
       portal but others work, report the issue to that applications' developers.

Author

       Kovid Goyal

Copyright

       2025, Kovid Goyal

0.43.1                                            Oct 18, 2025                              kitten-desktop-ui(1)