Add Omarchy-style Hyprland desktop for straylight
Ports the classic dotfiles Omarchy setup to a no-home-manager NixOS
system module (configs/omarchy.nix), scoped to straylight only so the
other desktop hosts keep i3.
- Hyprland (programs.hyprland) becomes the default lightdm session; i3
stays enabled and selectable as a fallback.
- Omarchy config layout under ~/.config/{hypr,waybar,rofi,wlogout,
swayosd,alacritty} symlinked from the store; mutable theme/wallpaper
state in ~/.config/omarchy/current.
- omarchy-dots generates 8 themes (hyprland/hyprlock/waybar/rofi/
swayosd/wlogout/alacritty/mako colour files) from each theme's
palette, with wallpapers fetched from the Omarchy v3.8.4 tag.
- Helper scripts: omarchy-theme-set/bg-next/bg-set/apply, omarchy-menu
(rofi power/theme/background menus), waybar toggle, screenshot, lock.
- Shared desktop modules (desktop.nix / desktop-light.nix) untouched.
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env bash
|
||||
# rofi-based Omarchy menu. Replaces Omarchy v3's walker-driven omarchy-menu.
|
||||
# Usage: omarchy-menu [system|theme|background|capture|keybindings]
|
||||
set -euo pipefail
|
||||
|
||||
OMARCHY_PATH="${OMARCHY_PATH:-$HOME/.local/share/omarchy}"
|
||||
CURRENT="$HOME/.config/omarchy/current"
|
||||
PICK=(rofi -dmenu -i -p "" -theme-str 'window { width: 22%; } listview { lines: 8; }')
|
||||
|
||||
menu_main() {
|
||||
local choice
|
||||
choice="$(printf '%s\n' Apps Themes Backgrounds Capture System Keybindings | "${PICK[@]}")" || exit 0
|
||||
case "$choice" in
|
||||
Apps) rofi -show drun -show-icons ;;
|
||||
Themes) menu_theme ;;
|
||||
Backgrounds) omarchy-theme-bg-next ;;
|
||||
Capture) menu_capture ;;
|
||||
System) menu_system ;;
|
||||
Keybindings) menu_keybindings ;;
|
||||
esac
|
||||
}
|
||||
|
||||
menu_system() {
|
||||
local choice
|
||||
choice="$(printf '%s\n' Lock Logout Suspend Reboot Shutdown | "${PICK[@]}")" || exit 0
|
||||
case "$choice" in
|
||||
Lock) omarchy-system-lock ;;
|
||||
Logout) hyprctl dispatch exit ;;
|
||||
Suspend) systemctl suspend ;;
|
||||
Reboot) systemctl reboot ;;
|
||||
Shutdown) systemctl poweroff ;;
|
||||
esac
|
||||
}
|
||||
|
||||
menu_theme() {
|
||||
local choice
|
||||
choice="$(find "$OMARCHY_PATH/themes" -maxdepth 1 -mindepth 1 -type d -printf '%f\n' | sort | "${PICK[@]}")" || exit 0
|
||||
[ -n "$choice" ] && omarchy-theme-set "$choice"
|
||||
}
|
||||
|
||||
menu_capture() {
|
||||
local choice
|
||||
choice="$(printf '%s\n' Region Window Output | "${PICK[@]}")" || exit 0
|
||||
case "$choice" in
|
||||
Region) omarchy-capture-screenshot region ;;
|
||||
Window) omarchy-capture-screenshot window ;;
|
||||
Output) omarchy-capture-screenshot output ;;
|
||||
esac
|
||||
}
|
||||
|
||||
menu_keybindings() {
|
||||
alacritty -e less ~/.config/hypr/bindings.conf
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
system) menu_system ;;
|
||||
theme) menu_theme ;;
|
||||
background) omarchy-theme-bg-next ;;
|
||||
capture) menu_capture ;;
|
||||
keybindings) menu_keybindings ;;
|
||||
"" | *) menu_main ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user