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

Liebherr: Large Hydrogen L 566 H Wheel Loader as Good as Diesel in Test

The Hydrogen Stream: Repsol, Sunfire advance 200 MW of green H2 in Spain

Trio paving the way for hydrogen adoption in FPSO and maritime power sphere