What Are the Dependencies for the Omarchy CLI?
The omarchy CLI requires core system utilities such as bash, jq, and curl, along with Arch Linux packages listed in install/omarchy-base.packages and optional extensions in install/omarchy-other.packages.
The omarchy command-line interface is the primary entry point for managing the Omarchy desktop environment on Arch Linux. Understanding its dependencies ensures smooth installation and troubleshooting when running commands like omarchy version or omarchy toggle-touchpad. These dependencies are explicitly defined in the repository's installation manifests and enforced at runtime through helper functions.
Core Dependencies Defined in install/omarchy-base.packages
The canonical list of required packages lives in install/omarchy-base.packages. This file enumerates every Arch Linux package that must be present before the CLI can execute reliably.
Shell and Core Utilities
- bash, coreutils, sed, awk: Provide the fundamental scripting environment used by
bin/omarchy. - jq: Parses JSON configuration files during commands like
omarchy refresh-config. - curl: Downloads remote resources and updates.
- git: Manages repository clones for version control operations.
System Management Tools
- systemd: Required for service management commands.
- sudo: Elevates privileges for package installation and system modifications.
- pacman: The Arch package manager used to install missing components.
- archlinux-keyring and omarchy-keyring: Ensure package signature verification when installing dependencies.
Graphics and Multimedia Libraries
- qt6-base, qt6-multimedia, qt6-multimedia-ffmpeg: Support video background features and media queries.
- ffmpeg: Handles video encoding and decoding tasks.
- mesa and vulkan-tools: Provide graphics API support for hardware detection.
Audio and Networking Stack
- pipewire, pipewire-pulse: Modern audio server for volume control commands.
- alsa-utils: Fallback audio utilities.
- networkmanager: Manages network connections via CLI helpers.
- bluez and bluetoothctl: Enable Bluetooth toggle functionality.
Hardware-Specific Helpers
- nvidia, intel-ucode, amd-ucode: Chipset microcode and proprietary driver support.
- xorg-xhost, xprop, xrandr: X11 utilities for display management commands like
omarchy toggle-touchpad. - brightnessctl: Controls screen brightness.
- udisks2: Provides disk management capabilities for speed tests and mounting.
Optional Dependencies in install/omarchy-other.packages
Extended functionality resides in install/omarchy-other.packages. These packages are not required for basic CLI operation but enable specific features when installed.
- steam, discord, vscode: Application-specific integrations.
- mpv: Advanced media player support.
- Additional drivers and firmware packages for specialized hardware configurations.
Runtime Dependency Enforcement in bin/omarchy
The bin/omarchy entry point validates the environment before executing commands. It sources helper functions that check for required binaries and packages:
omarchy-cmd-present: Verifies that core utilities likejqandcurlexist in$PATH.omarchy-pkg-present: Queries pacman to confirm Arch packages frominstall/omarchy-base.packagesare installed.
If a dependency is missing, the CLI aborts with an error message indicating which package or command must be installed.
Automated Installation via install/post-install/pacman.sh
For automated setup, the repository includes install/post-install/pacman.sh. This script reads install/omarchy-base.packages and installs the entire dependency tree using pacman. Running this script ensures the omarchy CLI has every required component before first use.
Practical CLI Usage Examples
After installing dependencies, common omarchy commands rely on the validated toolchain:
# Verify installation and display version
omarchy version
# Refresh configuration files using jq parsing
omarchy refresh-config hypr/hyprland.lua
# Toggle hardware features requiring X11 utilities and sudo
omarchy toggle-touchpad
# Install optional features that pull from omarchy-other.packages
omarchy voxtype install
Summary
- The omarchy CLI depends on core utilities (bash, jq, curl, git) and Arch Linux packages listed in
install/omarchy-base.packages. - Graphics, audio, and hardware support require additional packages like qt6-multimedia, pipewire, and nvidia drivers.
- Optional features pull from
install/omarchy-other.packages. - Runtime checks in
bin/omarchyuseomarchy-cmd-presentandomarchy-pkg-presentto validate dependencies. - Fresh installations can use
install/post-install/pacman.shto automatically install all requirements.
Frequently Asked Questions
What happens if a dependency is missing when I run an omarchy command?
The CLI will detect the missing component using omarchy-cmd-present or omarchy-pkg-present and exit with an error message specifying exactly which package or binary must be installed to proceed.
Can I use omarchy CLI without installing all optional packages from install/omarchy-other.packages?
Yes. The CLI functions with only the base packages from install/omarchy-base.packages. Optional packages enable extra features like Steam integration or VS Code support but are not required for core operations such as omarchy version or omarchy refresh-config.
Where does omarchy check for installed packages at runtime?
The bin/omarchy script enforces dependency validation through helper functions that query the system $PATH for commands and use pacman to verify package presence from the lists in install/omarchy-base.packages before executing user commands.
How do I install all dependencies automatically on a new Arch Linux system?
Run the install/post-install/pacman.sh script included in the repository. This script reads the dependency lists and uses pacman to install all required packages, ensuring the CLI is ready to use immediately after installation.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →