Easy Manage Package on Void Linux
Xr
Xr, adalah tools sederhana untuk mempermudah manage packages pada Void Linux dengan tampilan yang clean dengan icon dari Nerd Fonts, xr memiliki 2 mode cli dan tui dengan fzf, untuk mode tui hanya bisa untuk menginstall dan melihat informasi dari package. Xr juga sudah ada bash autocomplatenya jadi lebih mudah untuk mencari package di mode cli.
Install
Untuk menginstall xr bisa langsung download di sini untuk versi binarynya, atau bisa mengcompile secara mandiri dengan cara clone repository xr.
Dependencies
Xr memerlukan beberapa package untuk fitur tertentu seperti mode fzf dan mirrors, dan pastikan menginstall salah satu font dari nerd fonts.
xr -i xmirror fzf
Usage
Berikut semua fitur yang ada pada xr.
██╗ ██╗██████╗
╚██╗██╔╝██╔══██╗
╚███╔╝ ██████╔╝
██╔██╗ ██╔══██╗
██╔╝ ██╗██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝ v.0.1.0
Simple tool for search and manage package on Void Linux
usage: xr name_package
[-f full info] [-i install package] [-r remove package]
[-u update sytem] [-l YYYY-MM-DD (list by YYYY-MM-DD)]
[-c clean unused packages] [-k manage old kernel]
[-t tui mode with fzf] [-m change mirrors repository]
[--version] [--help]
Basic Info
xr nama_package => akan menampilkan basic info dari package, contoh,
xr qutebrowser
: https://qutebrowser.org/
: Keyboard-focused browser with a minimal GUI
: 1787KB
: qutebrowser-3.6.1_1
: GPL-3.0-or-later
: Andrew J. Hesford <ajh@sideband.org>
: https://repo-default.voidlinux.org/current
: / 2025-11-14 08:54 WIB
Full Info
untuk menampilkan full info dari package, gunakan option -f, contoh,
xr -f qutebrowser
: https://qutebrowser.org/
: Keyboard-focused browser with a minimal GUI
: 1787KB
: qutebrowser-3.6.1_1
: GPL-3.0-or-later
: Andrew J. Hesford <ajh@sideband.org>
: https://repo-default.voidlinux.org/current
: / 2025-11-14 08:54 WIB
Dependencies :
====================
python3-Jinja2>=0 python3-yaml>=0
python3-pyqt6-declarative>=0 python3-pyqt6-gui>=0
python3-pyqt6-pdf>=0 python3-pyqt6-sql>=0
python3-pyqt6-webengine>=0 python3-pyqt6-webchannel>=0
python3-pyqt6-widgets>=0 python3-pyqt6-network>=0
python3-pyqt6-dbus>=0 python3-pyqt6-printsupport>=0
qt6-plugin-sqlite>=0
Shared Library Requires :
==============================
qutebrowser doesn't need any shared library
Shared Library Provides :
==============================
qutebrowser has no shared library provide
seperti contoh diatas option -f akan memberikan semua info package dari basic info sampai dependecies dan library yang digunakan oleh package tersebut.
Update
untuk mengupdate semua package yang terinstall pada system bisa menggunakan option -u, contoh
xr -u
Starting update system...
xr akan menampilkan packages apa saja yang bisa diupdate, tekan enter untuk melanjutkan proses update.
Install / Remove
untuk menginstall atau meremove package bisa dilakukan seperti biasa, gunakan option -i untuk install dan option -r untuk remove package, contoh
xr -i dwm st
Install [dwm, st] ? (Y/n) :
tekan enter untuk melanjutkan proses install atau remove package, jika menginstall atau meremove satu package maka akan di tampilkan basic info package tersebut, contoh
xr -r qutebrowser
: https://qutebrowser.org/
: Keyboard-focused browser with a minimal GUI
: 1787KB
: qutebrowser-3.6.1_1
: GPL-3.0-or-later
: Andrew J. Hesford <ajh@sideband.org>
: https://repo-default.voidlinux.org/current
: / 2025-11-14 08:54 WIB
Are you sure you want to remove [qutebrowser] ? (Y/n) :
tekan enter untuk melanjutkan proses install atau remove package.
Remove package orphans
untuk remove package yang sudah tidak digunakan bisa menggunakan option -c, contoh
xr -c
Are you sure you want to remove unused packages ? (Y/n) :
tekan enter untuk melanjutkan proses remove unused packages.
List package by date
untuk melihat package apa saja yang diinstall atau diupdate pada tanggal tertentu bisa menggunakan option -l tahun-bulan-tanggal, contoh
xr -l 2025-11-19
Packages installed / updated, on 2025-11-19 :
dialog-1.3.20251001_1 firefox-145.0.1_1
fzf-0.66.1_1 xmirror-0.4.1_1
Old kernel
untuk manage old kernel bisa menggunakan option -k, pada option -k terdapat 2 sub option ada list dan remove, list digunakan untuk melist old kernel pada sistem, sedangkan remove digunakan untuk menghapus old kernel. contoh
xr -k list
No Old Kernel found in system.
pada contoh diatas tidak terdapat old kernel pada sistem.
xr -k remove 6.12.58_1
No Old Kernel found in system.
untuk penggunaan sub option remove dengan cara xr -k remove kernel_version seperti pada contoh di atas, untuk kernel versionnya bisa mengacu spesifik pada version kernel tertentu seperti di atas, jika seperti contoh di atas maka hanya kernel tersebut yang diremove, tetapi bisa juga secara ** bulk** contoh xr -k remove 6.12.*, maka semua kernel version 6.12 akan diremove, atau bisa juga dengan all contoh xr -k remove all, dengan all maka semua old kerenel yang tidak digunakan akan diremove.
Mirrors
jika serasa mirrors repository yang digunakan sekarang lambat, bisa menggunakan option -m untuk mengganti mirrors repository yang digunakan sekarang, dengan xr -m => akan menampilkan dialog pada terminal untuk mengarahkan memilih mirrors yang baru.
Fzf mode
mode tui atau fzf bisa menggunakan option -t, dengan xr -t => akan menampilkan tampilan tui fzf, terdapat dua panel, panel sebelah kiri berisi list packages dan panel sebelah kanan menampilkan info dari package yang dipilih dari panel sebelah kiri. mode ini suport dengan live search jadi bisa langsung mencari package yang diinginkan, untuk menginstall packge dari mode ini dengan cara tekan enter pada package yang dipilih apabila menginstall satu package saja tetapi jika ingin menginstall lebih dari satu package dengan cara tekan tab untuk menandai package apa saja yang ingin diinstall terkahir tekan enter untuk menginstall semua package yang dipilih.
Autocomplate
Berikut fungsi bash autocomplate untuk xr
_x_install() {
local cur prev prev2 options
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
prev2="${COMP_WORDS[COMP_CWORD-2]}"
local help_flags="--help"
# $prev
case "${prev}" in
-t|-m|-c|-u)
return 0
;;
-k)
# sub option kernel
COMPREPLY=( $(compgen -W "list remove" -- "${cur}") )
return 0
;;
-l)
# today
local current_date=$(date +%Y-%m-%d)
COMPREPLY=( $(compgen -W "${current_date}" -- "${cur}") )
return 0
;;
list)
# -k list
if [[ "${prev2}" == "-k" ]]; then
return 0
fi
;;
remove)
# -k remove <kernel_version>
if [[ "${prev2}" == "-k" ]]; then
local kernel_list
kernel_list=$(vkpurge list 2>/dev/null)
COMPREPLY=( $(compgen -W "${kernel_list}" -- "${cur}") )
return 0
fi
;;
esac
# main
if [[ "${cur}" == -* ]]; then
COMPREPLY=( $(compgen -W "${help_flags}" -- "${cur}") )
else
if [[ ${#cur} -ge 2 ]]; then
options=$(xbps-query -Rs "${cur}" 2>/dev/null | awk '{print $2}' | sed -E 's/-[0-9].*$//' | sort -u)
COMPREPLY=( $(compgen -W "${options}" -- "${cur}") )
fi
fi
}
complete -F _x_install xr
"Sesungguhnya yang menyebabkan ilmu hilang adalah lupa dan tidak mengulanginya."
Imam Az-Zuhri rahimahullah
Tags:
Referensi:
Catatan Terkait:

Copyright 2025. All rights reserved.