Modular installation scripts for setting up a complete Omarchy/Hyprland development environment.
# Clone this repository
git clone https://github.com/arr213/omarchy-setup.git ~/code/workstation_setup
cd ~/code/workstation_setup
# Install everything
./install.sh
# Or install specific components only
./install.sh --only monitors
./install.sh --skip packages
# Uninstall everything
./install.sh --uninstallInstall/uninstall development tools and system utilities.
Included packages:
- Communication: Signal, Spotify
- Development: Docker, Docker Compose
- System utilities: socat, jq
- Browser: Brave
- AI Tools: Claude Desktop (AUR), Claude Code (manual install)
Edit scripts/packages/install.sh to customize your package list.
Dynamic monitor management for Hyprland - automatically positions monitors without gaps based on which displays are connected.
Features:
- Auto-detects connected monitors
- Calculates proper positioning accounting for DPI scaling
- Listens for monitor connect/disconnect events
- Auto-detects and fixes overlapping monitors (checks every 5 seconds)
- Retry logic (10s, 30s, 60s) to handle race conditions after monitor changes
- Configures on startup and after config reloads
Dependencies: socat, jq (auto-installed via packages component)
Customize: Edit ~/.local/share/hyprland-scripts/auto-monitor-layout.sh after installation:
MONITOR_PREFS: Set resolution, refresh rate, and scale for each monitorMONITOR_ORDER: Define top-to-bottom monitor positioning order
Touchpad Gestures: See scripts/monitors/GESTURES.md for 3-finger swipe setup
Manual commands:
# Apply layout manually
~/.local/share/hyprland-scripts/auto-monitor-layout.sh
# Check current monitors
hyprctl monitorsKeyboard shortcuts for frequently used web applications.
Included shortcuts:
SUPER + SHIFT + ;- FastmailSUPER + SHIFT + ALT + ;- ProtonmailSUPER + SHIFT + A- ChatGPTSUPER + SHIFT + ALT + A- Claude.aiSUPER + SHIFT + ALT + G- WhatsApp
These use Omarchy's webapp launcher to open apps in dedicated windows. Customize in ~/.config/hypr/webapps.conf after installation.
GTK themes, icon packs, cursor themes, and color schemes.
TODO: Add your theme preferences to scripts/themes/install.sh
1Password CLI installation and configuration.
TODO: Complete setup in scripts/1password/install.sh
System defaults - default applications, shell configuration, environment variables.
TODO: Add your preferences to scripts/defaults/install.sh
./install.sh./install.sh --only monitors./install.sh --skip packages --skip themes./install.sh --uninstall./install.sh --helpworkstation_setup/
├── install.sh # Main orchestrator
├── scripts/
│ ├── monitors/
│ │ ├── install.sh # Monitor setup installer
│ │ ├── uninstall.sh # Monitor setup remover
│ │ ├── auto-monitor-layout.sh # Dynamic layout script
│ │ ├── monitor-event-listener.sh # Event handler
│ │ └── GESTURES.md # Touchpad gestures guide
│ ├── packages/
│ │ ├── install.sh # Package installer
│ │ └── uninstall.sh # Package remover
│ ├── webapps/
│ │ ├── install.sh # Webapp shortcuts installer
│ │ └── uninstall.sh # Webapp shortcuts remover
│ ├── themes/
│ │ └── install.sh # Theme setup
│ ├── 1password/
│ │ └── install.sh # 1Password CLI setup
│ └── defaults/
│ └── install.sh # System defaults
├── CLAUDE.md # AI assistant context
└── README.md # This file
- Create a new directory in
scripts/ - Add
install.sh(and optionallyuninstall.sh) - Add the component name to
COMPONENTSarray ininstall.sh - Make scripts executable:
chmod +x scripts/your-component/*.sh
- Arch Linux (or compatible distro)
- Hyprland with Omarchy configuration
- Basic command-line tools: bash, awk, sed
MIT