Post-installation scripts and configurations for the Omarchy development environment on Arch Linux.
curl -sSL https://raw.githubusercontent.com/v-bilous/omarchy-hooks/refs/heads/main/bootstrap.sh | bashAll packages are installed via yay from the AUR:
- Starship - A fast, customizable prompt for bash
- Zellij - A terminal multiplexer with default configuration
- Hyprland - A dynamic tiling Wayland compositor
- Waybar - Status bar with Hyprland language switching support
- Apps - Essential desktop applications (Telegram, Thunderbird, etc.)
- Packages - System packages and utilities (AWS VPN Client, etc.)
git clone https://github.com/bilous/omarchy-hooks.git ~/.omarchy-hooks
cd ~/.omarchy-hooks
./install.sh- Beautiful, fast shell prompt
- Git integration
- Custom configuration optimized for development
- Modern alternative to tmux/screen
- Uses default configuration
- Manual start (no auto-attach)
- Dynamic tiling Wayland compositor
- Automatic key bindings configuration
- Manual bindings customization support
- Modern Wayland status bar
- Hyprland language switching integration
- Automatic configuration for EN/UA layout switching
- Custom CSS styling for language module
- Telegram Desktop - Messaging client
- Thunderbird - Email client
- JetBrains Toolbox - IDE management
- Omnissa Horizon Client - Remote desktop
- Tailscale - VPN mesh networking (with systemd service)
- AWS VPN Client - Enterprise VPN (with systemd-resolved)
.
├── install.sh # Main installation script
├── bootstrap.sh # Web-accessible bootstrap script
├── hooks/ # Individual installation hooks
│ ├── _common/ # Shared functions for hooks
│ │ └── backup.sh # Common backup management functions
│ ├── starship.sh # Starship installation and config
│ ├── zellij.sh # Zellij installation (default config)
│ ├── hyprland.sh # Hyprland installation and bindings
│ ├── waybar.sh # Waybar installation and Hyprland integration
│ ├── apps.sh # Essential desktop applications
│ └── packages.sh # System packages and utilities
├── configs/ # Configuration files
│ ├── hyprland-bindings.conf # Hyprland key bindings
│ └── hyprland-input.conf # Hyprland input configuration
└── README.md
After installation, configurations are stored in:
~/.config/starship.toml- Starship prompt configuration (default)~/.config/hypr/bindings.conf- Hyprland key bindings~/.config/hypr/input.conf- Hyprland input configuration~/.config/waybar/config.jsonc- Waybar configuration with language module~/.config/waybar/style.css- Waybar CSS styling- Shell configuration in
~/.bashrc
Installation logs are saved to ~/.omarchy-hooks.log
- Arch Linux
- Bash 4.0+ (bash only, no zsh support)
- curl
- git
- yay (AUR helper)
- jq (for JSON manipulation in waybar hook)
- Arch Linux only
Each hook can be run individually:
# Run specific hooks
./hooks/starship.sh
./hooks/zellij.sh
./hooks/hyprland.sh
./hooks/waybar.sh
./hooks/apps.sh
./hooks/packages.shThe installation scripts handle duplicate detection and post-installation commands:
- Apps: Desktop applications with optional systemd service setup
- Packages: System utilities with required service configuration
- Smart Detection: Skips already installed items
- Post-Install Commands: Automatically enables required services
- Multiple Runs: Safe to run multiple times for adding new items
The Hyprland hook automatically applies predefined key bindings from the repository:
- Bindings are stored in
configs/hyprland-bindings.conf - Automatically appended to
~/.config/hypr/bindings.conf - Includes common window management and application shortcuts
- Prevents duplicate application on subsequent runs
To customize bindings, edit configs/hyprland-bindings.conf in the repository and re-run the hook.
The Waybar hook automatically configures language switching for Hyprland:
- Installs Waybar via yay if not present
- Adds
hyprland/languagemodule to existing waybar configuration - Configures language format display (EN/UA)
- Applies custom CSS styling for the language module
- Requires jq for JSON manipulation - install with
yay -S jq
Features:
- Smart Configuration: Only modifies existing waybar configs, won't create new ones
- Backup Management: Automatically backs up and manages old backups
- Duplicate Detection: Prevents adding language module multiple times
- CSS Styling: Adds proper spacing and formatting for language display
- Fork the repository
- Create a feature branch
- Add your hook in the
hooks/directory - Update the main
install.shto include your hook - Test thoroughly
- Submit a pull request
- All scripts use
set -euo pipefailfor safety - Downloads are verified when possible
- Existing configurations are backed up before modification
- Smart backup management: Only keeps the most recent backup, cleans up older ones automatically
- Common functions library: Shared backup and utility functions across hooks
- No sensitive data is logged or committed