Skip to content

v-bilous/omarchy-hooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Omarchy Hooks

Post-installation scripts and configurations for the Omarchy development environment on Arch Linux.

Quick Installation

curl -sSL https://raw.githubusercontent.com/v-bilous/omarchy-hooks/refs/heads/main/bootstrap.sh | bash

What Gets Installed

All 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.)

Manual Installation

git clone https://github.com/bilous/omarchy-hooks.git ~/.omarchy-hooks
cd ~/.omarchy-hooks
./install.sh

Features

🚀 Starship Prompt

  • Beautiful, fast shell prompt
  • Git integration
  • Custom configuration optimized for development

🖥️ Zellij Terminal Multiplexer

  • Modern alternative to tmux/screen
  • Uses default configuration
  • Manual start (no auto-attach)

🪟 Hyprland Window Manager

  • Dynamic tiling Wayland compositor
  • Automatic key bindings configuration
  • Manual bindings customization support

📊 Waybar Status Bar

  • Modern Wayland status bar
  • Hyprland language switching integration
  • Automatic configuration for EN/UA layout switching
  • Custom CSS styling for language module

📱 Essential Apps

  • Telegram Desktop - Messaging client
  • Thunderbird - Email client
  • JetBrains Toolbox - IDE management
  • Omnissa Horizon Client - Remote desktop
  • Tailscale - VPN mesh networking (with systemd service)

📦 System Packages

  • AWS VPN Client - Enterprise VPN (with systemd-resolved)

Project Structure

.
├── 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

Configuration

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

Logs

Installation logs are saved to ~/.omarchy-hooks.log

Requirements

  • Arch Linux
  • Bash 4.0+ (bash only, no zsh support)
  • curl
  • git
  • yay (AUR helper)
  • jq (for JSON manipulation in waybar hook)

Supported Systems

  • Arch Linux only

Customization

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.sh

AUR Applications & Packages

The 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

Hyprland Bindings

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.

Waybar Configuration

The Waybar hook automatically configures language switching for Hyprland:

  • Installs Waybar via yay if not present
  • Adds hyprland/language module 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

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add your hook in the hooks/ directory
  4. Update the main install.sh to include your hook
  5. Test thoroughly
  6. Submit a pull request

Security

  • All scripts use set -euo pipefail for 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors