Update configurations: add hyprland, README, and dynamic AGS theming
This commit is contained in:
@@ -0,0 +1,48 @@
|
|||||||
|
<div align="center">
|
||||||
|
<h1>Blob's Dotfiles</h1>
|
||||||
|
<p>My personal system configurations for a custom Wayland desktop environment.</p>
|
||||||
|
|
||||||
|
<img src="https://img.shields.io/badge/Arch_Linux-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white" alt="Arch Linux" />
|
||||||
|
<img src="https://img.shields.io/badge/Hyprland-00A86B?style=for-the-badge&logo=hyprland&logoColor=white" alt="Hyprland" />
|
||||||
|
<img src="https://img.shields.io/badge/Waybar-FF6600?style=for-the-badge&logo=linux&logoColor=white" alt="Waybar" />
|
||||||
|
<img src="https://img.shields.io/badge/AGS-231F20?style=for-the-badge&logo=gnome&logoColor=white" alt="AGS" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## What's Inside?
|
||||||
|
|
||||||
|
My current setup is built around these core components:
|
||||||
|
|
||||||
|
- **[Hyprland](https://hyprland.org/):** A highly customizable dynamic tiling Wayland compositor.
|
||||||
|
- **[Waybar](https://github.com/Alexays/Waybar):** A customizable, modular status bar.
|
||||||
|
- **[AGS](https://github.com/Aylur/ags):** Aylur's Gtk Shell, used for creating custom, scriptable desktop widgets.
|
||||||
|
|
||||||
|
### Directory Structure
|
||||||
|
|
||||||
|
- **`hypr/`**: Hyprland configurations (keybindings, window rules, animations, layout settings, and autostart).
|
||||||
|
- **`waybar/`**: Status bar layout, CSS styling, and custom interactive modules.
|
||||||
|
- **`ags/`**: Custom desktop widgets built with TypeScript and GTK.
|
||||||
|
- **`scripts/`**: Global utility scripts (such as a streamlined GMU Eduroam Wi-Fi connector).
|
||||||
|
- **`branding/`**: Custom ASCII art and system branding assets.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
An automated installer script (`install.sh`) is provided to safely apply these configurations to your system.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run the standard installer
|
||||||
|
./install.sh
|
||||||
|
|
||||||
|
# See what would change without modifying any files (dry run)
|
||||||
|
./install.sh --check
|
||||||
|
|
||||||
|
# Force overwrite of any existing local changes
|
||||||
|
./install.sh --force
|
||||||
|
```
|
||||||
|
|
||||||
|
### Installer Features
|
||||||
|
|
||||||
|
1. **Safety First:** Computes file hashes to detect local changes. Backs up existing configurations before applying updates.
|
||||||
|
2. **Auto-Deployment:** Copies the tracked configurations seamlessly into your `~/.config/` directory.
|
||||||
|
3. **Command Wrapping:** Automatically sets up scripts from the `scripts/` directory as global commands in `~/.local/bin/`.
|
||||||
|
4. **Shell Integration:** Injects the necessary paths into your `~/.bashrc`, `~/.zshrc`, and system-wide profiles.
|
||||||
|
5. **Instant Refresh:** Automatically restarts background services like `waybar` and `ags` so changes take effect immediately.
|
||||||
+7
-5
@@ -1,3 +1,5 @@
|
|||||||
|
@import "./colors.css";
|
||||||
|
|
||||||
* {
|
* {
|
||||||
all: unset;
|
all: unset;
|
||||||
}
|
}
|
||||||
@@ -7,26 +9,26 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.media-container {
|
.media-container {
|
||||||
background-color: rgba(30, 30, 46, 0.85);
|
background-color: alpha(@background, 0.85);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
border: 2px solid rgba(137, 180, 250, 0.5);
|
border: 2px solid alpha(@color4, 0.5);
|
||||||
padding: 8px 15px;
|
padding: 8px 15px;
|
||||||
font-family: "JetBrainsMono Nerd Font", sans-serif;
|
font-family: "JetBrainsMono Nerd Font", sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.media-btn {
|
.media-btn {
|
||||||
color: #cba6f7;
|
color: @color5;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
transition: all 0.2s;
|
transition: all 0.2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
.media-btn:hover {
|
.media-btn:hover {
|
||||||
color: #89b4fa;
|
color: @color4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.media-text {
|
.media-text {
|
||||||
color: #cdd6f4;
|
color: @foreground;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Extra autostart processes
|
||||||
|
# exec-once = uwsm-app -- my-service
|
||||||
|
exec-once = ags run
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# Application bindings
|
||||||
|
bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)"
|
||||||
|
bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(omarchy-cmd-terminal-cwd)" bash -c "tmux attach || tmux new -s Work"
|
||||||
|
bindd = SUPER SHIFT, RETURN, Browser, exec, omarchy-launch-browser
|
||||||
|
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
|
||||||
|
bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"
|
||||||
|
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
|
||||||
|
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
|
||||||
|
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
|
||||||
|
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
|
||||||
|
bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker
|
||||||
|
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
|
||||||
|
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime"
|
||||||
|
bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
|
||||||
|
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
|
||||||
|
|
||||||
|
# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
|
||||||
|
bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
||||||
|
bindd = SUPER SHIFT ALT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
|
||||||
|
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
|
||||||
|
bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
|
||||||
|
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
|
||||||
|
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
|
||||||
|
bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
|
||||||
|
bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
|
||||||
|
bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/"
|
||||||
|
bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
|
||||||
|
|
||||||
|
# Add extra bindings
|
||||||
|
# bind = SUPER SHIFT, R, exec, alacritty -e ssh your-server
|
||||||
|
|
||||||
|
# Overwrite existing bindings, like putting Omarchy Menu on Super + Space
|
||||||
|
# unbind = SUPER, SPACE
|
||||||
|
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
general {
|
||||||
|
lock_cmd = omarchy-lock-screen # lock screen and 1password
|
||||||
|
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||||
|
after_sleep_cmd = sleep 1 && hyprctl dispatch dpms on # delay for PAM readiness, then turn on display.
|
||||||
|
inhibit_sleep = 3 # wait until screen is locked
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 150 # 2.5min
|
||||||
|
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 151 # 5min
|
||||||
|
on-timeout = loginctl lock-session # lock screen when timeout has passed
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 330 # 5.5min
|
||||||
|
on-timeout = brightnessctl -sd '*::kbd_backlight' set 0 # save state and turn off keyboard backlight
|
||||||
|
on-resume = brightnessctl -rd '*::kbd_backlight' # restore keyboard backlight
|
||||||
|
}
|
||||||
|
|
||||||
|
listener {
|
||||||
|
timeout = 330 # 5.5min
|
||||||
|
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
|
||||||
|
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
|
||||||
|
|
||||||
|
# Use defaults Omarchy defaults (but don't edit these directly!)
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/autostart.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/bindings/clipboard.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/bindings/tiling-v2.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/envs.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/looknfeel.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/input.conf
|
||||||
|
source = ~/.local/share/omarchy/default/hypr/windows.conf
|
||||||
|
source = ~/.config/omarchy/current/theme/hyprland.conf
|
||||||
|
|
||||||
|
# Change your own setup in these files (and overwrite any settings from defaults!)
|
||||||
|
source = ~/.config/hypr/monitors.conf
|
||||||
|
source = ~/.config/hypr/input.conf
|
||||||
|
source = ~/.config/hypr/bindings.conf
|
||||||
|
source = ~/.config/hypr/looknfeel.conf
|
||||||
|
source = ~/.config/hypr/autostart.conf
|
||||||
|
|
||||||
|
# Add any other personal Hyprland configuration below
|
||||||
|
# windowrule = workspace 5, match:class qemu
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
source = ~/.config/omarchy/current/theme/hyprlock.conf
|
||||||
|
|
||||||
|
general {
|
||||||
|
ignore_empty_input = true
|
||||||
|
}
|
||||||
|
|
||||||
|
background {
|
||||||
|
monitor =
|
||||||
|
color = $color
|
||||||
|
path = ~/.config/omarchy/current/background
|
||||||
|
blur_passes = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
animations {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
input-field {
|
||||||
|
monitor =
|
||||||
|
size = 650, 100
|
||||||
|
position = 0, 0
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
|
||||||
|
inner_color = $inner_color
|
||||||
|
outer_color = $outer_color
|
||||||
|
outline_thickness = 4
|
||||||
|
|
||||||
|
font_family = JetBrainsMono Nerd Font
|
||||||
|
font_color = $font_color
|
||||||
|
|
||||||
|
placeholder_text = Enter Password
|
||||||
|
check_color = $check_color
|
||||||
|
fail_text = <i>$FAIL ($ATTEMPTS)</i>
|
||||||
|
|
||||||
|
rounding = 0
|
||||||
|
shadow_passes = 0
|
||||||
|
fade_on_empty = false
|
||||||
|
}
|
||||||
|
|
||||||
|
auth {
|
||||||
|
fingerprint:enabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = cmd[update:0] cat ~/.config/omarchy/branding/screensaver.txt
|
||||||
|
color = $font_color
|
||||||
|
font_size = 12
|
||||||
|
font_family = JetBrainsMono Nerd Font
|
||||||
|
text_align = left
|
||||||
|
position = 0, 200
|
||||||
|
halign = center
|
||||||
|
valign = center
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Makes hyprsunset do nothing to the screen by default
|
||||||
|
# Without this, the default applies some tint to the monitor
|
||||||
|
profile {
|
||||||
|
time = 07:00
|
||||||
|
identity = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# To enable auto switch to nightlight, set in your .config/hypr/autostart:
|
||||||
|
# exec-once = uwsm app -- hyprsunset
|
||||||
|
# and use the following:
|
||||||
|
# profile {
|
||||||
|
# time = 20:00
|
||||||
|
# temperature = 4000
|
||||||
|
# }
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
# Control your input devices
|
||||||
|
# See https://wiki.hypr.land/Configuring/Variables/#input
|
||||||
|
input {
|
||||||
|
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
|
||||||
|
# kb_layout = us,dk,eu
|
||||||
|
|
||||||
|
# Use a specific keyboard variant if needed (e.g. intl for international keyboards)
|
||||||
|
# kb_variant = intl
|
||||||
|
|
||||||
|
kb_layout = us
|
||||||
|
kb_options = compose:caps # ,grp:alts_toggle
|
||||||
|
|
||||||
|
# Change speed of keyboard repeat
|
||||||
|
repeat_rate = 40
|
||||||
|
repeat_delay = 600
|
||||||
|
|
||||||
|
# Start with numlock on by default
|
||||||
|
numlock_by_default = true
|
||||||
|
|
||||||
|
# Increase sensitivity for mouse/trackpad (default: 0)
|
||||||
|
# sensitivity = 0.35
|
||||||
|
|
||||||
|
# Turn off mouse acceleration (default: false)
|
||||||
|
# force_no_accel = true
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
# Use natural (inverse) scrolling
|
||||||
|
# natural_scroll = true
|
||||||
|
|
||||||
|
# Use two-finger clicks for right-click instead of lower-right corner
|
||||||
|
# clickfinger_behavior = true
|
||||||
|
|
||||||
|
# Control the speed of your scrolling
|
||||||
|
scroll_factor = 0.4
|
||||||
|
|
||||||
|
# Enable the touchpad while typing
|
||||||
|
# disable_while_typing = false
|
||||||
|
|
||||||
|
# Left-click-and-drag with three fingers
|
||||||
|
# drag_3fg = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Scroll nicely in the terminal
|
||||||
|
windowrule = match:class (Alacritty|kitty), scroll_touchpad 1.5
|
||||||
|
windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2
|
||||||
|
|
||||||
|
# Enable touchpad gestures for changing workspaces
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Gestures/
|
||||||
|
# gesture = 3, horizontal, workspace
|
||||||
|
|
||||||
|
# Enable touchpad gestures for moving focus (helpful on scrolling layout)
|
||||||
|
# gesture = 3, left, dispatcher, movefocus, l
|
||||||
|
# gesture = 3, right, dispatcher, movefocus, r
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# Change the default Omarchy look'n'feel
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
|
general {
|
||||||
|
# No gaps between windows or borders
|
||||||
|
gaps_in = 4
|
||||||
|
gaps_out = 4
|
||||||
|
# border_size = 0
|
||||||
|
|
||||||
|
# Change to niri-like side-scrolling layout
|
||||||
|
# layout = scrolling
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
|
decoration {
|
||||||
|
# Use round window corners
|
||||||
|
# rounding = 8
|
||||||
|
|
||||||
|
# Dim unfocused windows (0.0 = no dim, 1.0 = fully dimmed)
|
||||||
|
# dim_inactive = true
|
||||||
|
# dim_strength = 0.15
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||||
|
animations {
|
||||||
|
# Disable all animations
|
||||||
|
# enabled = no
|
||||||
|
}
|
||||||
|
|
||||||
|
# https://wiki.hypr.land/Configuring/Variables/#layout
|
||||||
|
layout {
|
||||||
|
# Avoid overly wide single-window layouts on wide screens
|
||||||
|
# single_window_aspect_ratio = 1 1
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
# List current monitors and resolutions possible: hyprctl monitors
|
||||||
|
# Format: monitor = [port], resolution, position, scale
|
||||||
|
|
||||||
|
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
|
||||||
|
env = GDK_SCALE,2
|
||||||
|
monitor=,preferred,auto,auto,vrr,1
|
||||||
|
|
||||||
|
# Good compromise for 27" or 32" 4K monitors (but fractional!)
|
||||||
|
# env = GDK_SCALE,1.75
|
||||||
|
# monitor=,preferred,auto,1.6
|
||||||
|
|
||||||
|
# Straight 1x setup for low-resolution displays like 1080p or 1440p
|
||||||
|
# Or for ultrawide monitors like 34" 3440x1440 or 49" 5120x1440
|
||||||
|
# env = GDK_SCALE,1
|
||||||
|
# monitor=,preferred,auto,1
|
||||||
|
|
||||||
|
# Portrait/rotated secondary monitor (transform: 1 = 90°, 3 = 270°)
|
||||||
|
# monitor = DP-2, preferred, auto, 1, transform, 1
|
||||||
|
|
||||||
|
# Example for Framework 13 w/ 6K XDR Apple display
|
||||||
|
# monitor = DP-5, 6016x3384@60, auto, 2
|
||||||
|
# monitor = eDP-1, 2880x1920@120, auto, 2
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
screencopy {
|
||||||
|
allow_token_by_default = true
|
||||||
|
custom_picker_binary = hyprland-preview-share-picker
|
||||||
|
}
|
||||||
@@ -101,6 +101,10 @@ echo ""
|
|||||||
check_status=0
|
check_status=0
|
||||||
|
|
||||||
check_file "$SCRIPT_DIR/waybar/config.jsonc" "$HOME_DIR/.config/waybar/config.jsonc" "waybar/config.jsonc" || check_status=1
|
check_file "$SCRIPT_DIR/waybar/config.jsonc" "$HOME_DIR/.config/waybar/config.jsonc" "waybar/config.jsonc" || check_status=1
|
||||||
|
check_file "$SCRIPT_DIR/hypr/hyprland.conf" "$HOME_DIR/.config/hypr/hyprland.conf" "hypr/hyprland.conf" || check_status=1
|
||||||
|
check_file "$SCRIPT_DIR/hypr/autostart.conf" "$HOME_DIR/.config/hypr/autostart.conf" "hypr/autostart.conf" || check_status=1
|
||||||
|
check_file "$SCRIPT_DIR/hypr/looknfeel.conf" "$HOME_DIR/.config/hypr/looknfeel.conf" "hypr/looknfeel.conf" || check_status=1
|
||||||
|
check_file "$SCRIPT_DIR/omarchy/hooks/theme-set" "$HOME_DIR/.config/omarchy/hooks/theme-set" "omarchy/hooks/theme-set" || check_status=1
|
||||||
check_file "$SCRIPT_DIR/ags/app.ts" "$HOME_DIR/.config/ags/app.ts" "ags/app.ts" || check_status=1
|
check_file "$SCRIPT_DIR/ags/app.ts" "$HOME_DIR/.config/ags/app.ts" "ags/app.ts" || check_status=1
|
||||||
check_file "$SCRIPT_DIR/ags/style.css" "$HOME_DIR/.config/ags/style.css" "ags/style.css" || check_status=1
|
check_file "$SCRIPT_DIR/ags/style.css" "$HOME_DIR/.config/ags/style.css" "ags/style.css" || check_status=1
|
||||||
check_file "$SCRIPT_DIR/ags/widget/Media.tsx" "$HOME_DIR/.config/ags/widget/Media.tsx" "ags/widget/Media.tsx" || check_status=1
|
check_file "$SCRIPT_DIR/ags/widget/Media.tsx" "$HOME_DIR/.config/ags/widget/Media.tsx" "ags/widget/Media.tsx" || check_status=1
|
||||||
@@ -137,7 +141,9 @@ echo ""
|
|||||||
|
|
||||||
backup_and_copy "$SCRIPT_DIR/waybar" "$HOME_DIR/.config/waybar" "Waybar config"
|
backup_and_copy "$SCRIPT_DIR/waybar" "$HOME_DIR/.config/waybar" "Waybar config"
|
||||||
backup_and_copy "$SCRIPT_DIR/ags" "$HOME_DIR/.config/ags" "AGS config"
|
backup_and_copy "$SCRIPT_DIR/ags" "$HOME_DIR/.config/ags" "AGS config"
|
||||||
|
backup_and_copy "$SCRIPT_DIR/hypr" "$HOME_DIR/.config/hypr" "Hyprland config"
|
||||||
backup_and_copy "$SCRIPT_DIR/branding" "$HOME_DIR/.config/omarchy/branding" "Branding files"
|
backup_and_copy "$SCRIPT_DIR/branding" "$HOME_DIR/.config/omarchy/branding" "Branding files"
|
||||||
|
backup_and_copy "$SCRIPT_DIR/omarchy/hooks" "$HOME_DIR/.config/omarchy/hooks" "Omarchy hooks"
|
||||||
|
|
||||||
mkdir -p "$HOME_DIR/scripts"
|
mkdir -p "$HOME_DIR/scripts"
|
||||||
backup_and_copy "$SCRIPT_DIR/scripts" "$HOME_DIR/scripts" "Custom scripts"
|
backup_and_copy "$SCRIPT_DIR/scripts" "$HOME_DIR/scripts" "Custom scripts"
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This hook is called with the current battery percentage when the low battery
|
||||||
|
# notification is sent. To put it into use, remove .sample from the name.
|
||||||
|
|
||||||
|
SOUND_FILE="/usr/share/sounds/freedesktop/stereo/dialog-warning.oga"
|
||||||
|
|
||||||
|
if omarchy-cmd-present mpv && [[ -f $SOUND_FILE ]]; then
|
||||||
|
mpv --no-video "$SOUND_FILE" >/dev/null 2>&1
|
||||||
|
fi
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This hook is called with the snake-cased name of the font that has just been set.
|
||||||
|
# To put it into use, remove .sample from the name.
|
||||||
|
|
||||||
|
# Example: Show the name of the theme that was just set.
|
||||||
|
# notify-send -u low "New font" "Your new font is $1"
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This hook is called after an Omarchy system update has been performed.
|
||||||
|
# To put it into use, remove .sample from the name.
|
||||||
|
|
||||||
|
# Example: Show notification after the system has been updated.
|
||||||
|
# notify-send -u low "Update Performed" "Your system is now up to date"
|
||||||
Executable
+12
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
THEME_NAME=$1
|
||||||
|
echo "Theme changed to: $THEME_NAME"
|
||||||
|
|
||||||
|
# Generate AGS colors from Omarchy theme colors.toml
|
||||||
|
awk -F '=' 'NF==2 { gsub(/"/,"",$2); gsub(/ /,"",$1); gsub(/ /,"",$2); print "@define-color " $1 " " $2 ";" }' ~/.config/omarchy/current/theme/colors.toml > ~/.config/ags/colors.css
|
||||||
|
|
||||||
|
# Restart AGS to apply new theme colors
|
||||||
|
if command -v ags &> /dev/null; then
|
||||||
|
ags quit || true
|
||||||
|
nohup ags run -d "$HOME/.config/ags" >/dev/null 2>&1 &
|
||||||
|
fi
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This hook is called with the snake-cased name of the theme that has just been set.
|
||||||
|
# To put it into use, remove .sample from the name.
|
||||||
|
|
||||||
|
# Example: Show the name of the theme that was just set.
|
||||||
|
# notify-send -u low "New theme" "Your new theme is $1"
|
||||||
Reference in New Issue
Block a user