Show HN: TUI for managing XDG default applications

xdgctl is a TUI for managing XDG default applications. View and set defaults for file categories without using xdg-mime directly.

Built with C using GLib/GIO and termbox2.

xdgctl.mp4


Features

  • Browse by category (Browsers, Text Editors, etc.)
  • Current default marked with *

Navigation & Controls

Key Action
Arrow Up/Down Navigate through categories or applications
Arrow Right/Tab Switch from category list to application list
Arrow Left Switch back to category list
Enter Set selected application as default for current category
Esc / q Quit the application

Prerequisites

To build xdgctl, you need the following development libraries:

  • glib-2.0
  • gio-2.0
  • gio-unix-2.0
  • clang or gcc
# On Void Linux
sudo xbps-install glibc-devel pkg-config

Installation

git clone https://github.com/mitjafelicijan/xdgctl.git
cd xdgctl

# Build
make
sudo make install

# Using prefix
sudo make PREFIX=/usr/local install
make PREFIX=~/.local install

If you manually add new applications to your ~/.local/share/applications directory, you might need to run update-desktop-database again.

More about XDG

Application directories

ls /usr/share/applications
ls ~/.local/share/applications

Querying defaults

xdg-mime query default text/plain
xdg-mime query default text/html
xdg-mime query default x-scheme-handler/http
xdg-mime query default x-scheme-handler/https
xdg-mime query default inode/directory

Setting defaults manually

xdg-mime default brave.desktop x-scheme-handler/http
xdg-mime default brave.desktop x-scheme-handler/https

Desktop Entry example

# ~/.local/share/applications/brave.desktop
[Desktop Entry]
Exec=/home/m/Applications/brave
Type=Application
Categories=Applications
Name=Brave Browser
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;

Other useful commands/files

update-desktop-database ~/.local/share/applications
less ~/.config/mimeapps.list
less /usr/share/applications/mimeapps.list

More material

Read More

Related posts

Green hydrogen’s growing share in chemical production

Coinbase, Kalshi and Kraken Race to Bring Stock Perpetuals to US Traders

MUSIGA opens applications for SheRhythms Festival 2026