Linux Workstation Tools
Created:
2022-12-18
Updated:
2023-07-23
Discovering the right tools can significantly improve your productivity and user experience on any operating system. In this post, I’ll share some of my go-to tools that I personally use on my workstation to enhance my workflow.
System
iproute2
: IP routing utilitiessudo
: Provide limited super user privileges to specific usersrsync
: fast, versatile, remote (and local) file-copying toolopenssh
: secure shell client and server (metapackage)btrfs-progs
: btrfs filesystem utilitiescpupower
: tool to examine and tune power savingsfwupd
: daemon to allow session software to update firmwareintel-ucode/amd-ucode
: microcode update files for intel/amd cpuslibpulse
: general-purpose sound serveralsa-utils
: advanced linux sound architecture utilities:wbash-completion
: programmable completion for the bash shellbluez
: daemons for the bluetooth protocol stackcifs-utils
: cifs filesystem utilitiescups
: common unix printing systempipewire
: audio and video processing engine multimedia serverwireplumber
: session/policy manager implementation for pipewiretlp
: optimize laptop battery lifenoto-fonts-emoji
: google noto emoji fontsttf-jetbrains-mono-nerd
: patched font jetbrains monottf-font-awesome
: iconic fonts designed for bootstrapsnapper
: btrfs snapshots management toolsnap-pac
: pacman hooks to use snapper to create btrfs snapshotswpa_supplicant
: utility for WPA wireless networks key negotiationyay
: pacman wrapper and AUR helperpolkit
: toolkit for controlling system-wide provilegesgnome-keyring
: stores passwords and encryption keyslibsecret
: library for storing passwords and other secretsufw
: uncomplicated firewall
Utilities
ripgrep
: recursively searches directories for a regex patterneza
: modern replacement for lsfzf
: general-purpose command-line fuzzy finderbat
: cat clone with syntax highlighting and git integrationgnupg
: free implementation of openpgp standardalacritty
: gpu-accelerated terminal emulatorranger
: console file manager with vi keybindingsbroot
: console file manager with integrated fzftrash-cli
: command line trashcan utilityzoxide
: faster way to navigate filesystemoath-toolkit
: tool for one-time password authentication systemscryptsetup
: tool for transparent encryption of block devices using dm-cryptbottom
: graphical process/system monitor for the terminalhelix
: modern modal editorzellij
: terminal multiplexerwdiff
: Compares two files word by wordjq
: command line json processorlibnotify
: library for sending desktop notificationsneofetch
: cli system information toolstarship
: rust friendly bash promptscdaemon
: to present yubikey as a smart card to the osyubikey-manager
: cli for configuring yubikeyyubikey-personalization
: personalization library and toolwol
: wake on lan tool
Desktop
hyprland
: dynamic tiling wayland compositorhyprpaper
: wayland wallpaper utilitywaybar
: wayand bar for sway and wlroots based compositors (waybar-hyprland-git
)greetd
: wayland login managermako
: lightweight notification daemon for waylandxdg-utils
: desktop integration utilitiesxdg-desktop-portal
: desktop integration portals for sandboxed appsxdg-user-dirs
: common user directoriesfuzzel
: application launcher for waylandswaylock
: screen locker for wayland (swaylock-effets
)imv
: image viewer for waylandgrim
: screenshot utilities for waylandgammastep
: adjust display color temperaturebitwarden
: password managerbrigthtnessctl
: brightness control toolfirefox
: web browsergreetd-tuigreet
: console UI greeter for greetdvlc
: media playerwayvnc
: VNC server for wlroots-based wayland compositorswaypipe
: forward wayland applications via sshwob
: overlay volume/backlight/progress bar for waylandwtype
: generate keyboard/mouse input eventszathura
: document viewerzathura-pdf-poppler
: pdf support for zathura using the poppler enginerofimoji
: a character picker for rofi/wofiprotonmail-bridge-nogui
: proton-mail support toolpavucontrol
: pulse-audio volume controlseahorse
: gnome application for managing pgp keys and secretsslurp
: select a region in a wayland compositorswayidle
: idle management daemon for waylandthunderbird
: mail and news readerwdisplays
: display configurator for wlroots compositors
Development
clang
: C, C++ and Objective-C compiler (LLVM based), clang binarygit
: fast, scalable, distributed version control systemlldb
: Next generation, high-performance debuggermake
: utility for directing compilationclang
: C language family frontend for LLVMrustup
: rust programming language toolchain installergitui
: terminal based git uimeld
: graphical tool to diff and merge filesgit-delta
: syntax-highlighting pager for gitprotobuf
: protocol buffers compiler and utilities
Containers and Virtualization
docker-compose
: define and run multi-container Docker applications with YAMLdocker
: linux container runtimevirt-manager
: desktop application for managing virtual machineslibvirt
: api for controlling virtualization engines
Crypto
ledger-udev
(aur): udev rules to connect a ledger walletledger-live-bin
(aur): ledger hardware wallet gui
Notes
Polkit
Polkit is required by virt-manager
if the user is not in the libvirt
group.
- start
virt-manager
- start polkit agent:
pkttyagent --process $(pgrep virt-manager)
Gnome Keyring
Some applications (e.g. element, proton-agent, etc) stores user credentials using the Gnome keyring.
By default, the keyring prompts for password as soon as an application using it requires unlocking the keyring.
We can unlock the keyring on login using the same login credentials.
Refer to the 3.1 PAM step
in the Arch Linux GNOME keyring
docs.