mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
56 Commits
optional-h
...
v3.1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15c22d5e75 | ||
|
|
1776981ebf | ||
|
|
cff15363c9 | ||
|
|
d2efdcede4 | ||
|
|
be24e38ea2 | ||
|
|
717a015537 | ||
|
|
a37495e3d1 | ||
|
|
7882893a23 | ||
|
|
7437c73113 | ||
|
|
413d292f2a | ||
|
|
50e68f466e | ||
|
|
d106cd9284 | ||
|
|
62b6802641 | ||
|
|
4f2f7b41e7 | ||
|
|
74473f5650 | ||
|
|
b6eb76d3ea | ||
|
|
ba2018087c | ||
|
|
9f00d5a3a0 | ||
|
|
260d586343 | ||
|
|
027825cbad | ||
|
|
d29e5777e0 | ||
|
|
5d756de561 | ||
|
|
6529472cad | ||
|
|
2310569eae | ||
|
|
70f69c7fc6 | ||
|
|
c7f851cc57 | ||
|
|
56f1c82b7d | ||
|
|
83beedabab | ||
|
|
76209ee33e | ||
|
|
7c7d472e39 | ||
|
|
9b4a42cc03 | ||
|
|
385020cbb0 | ||
|
|
6fbb3d4464 | ||
|
|
5171475836 | ||
|
|
9ddcfbe466 | ||
|
|
9d7c9e7344 | ||
|
|
101c29f3b1 | ||
|
|
c84d98a80b | ||
|
|
88011f5d11 | ||
|
|
832ca69ba2 | ||
|
|
786ae66154 | ||
|
|
7dca096807 | ||
|
|
2fa7d64d77 | ||
|
|
83d4349ea1 | ||
|
|
bddccf30cb | ||
|
|
910c23f539 | ||
|
|
33baf59cef | ||
|
|
e9c40445dd | ||
|
|
e2b56720ac | ||
|
|
54bcc68490 | ||
|
|
c3b86c602e | ||
|
|
61e0fa27e2 | ||
|
|
ea985fd471 | ||
|
|
dfa689f4ea | ||
|
|
530577e8fe | ||
|
|
38f5a00ad6 |
@@ -1,10 +1,9 @@
|
||||
# Omarchy
|
||||
|
||||
Turn a fresh Arch installation into a fully-configured, beautiful, and modern web development system based on Hyprland by running a single command. That's the one-line pitch for Omarchy (like it was for Omakub). No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools. Omarchy is an opinionated take on what Linux can be at its best.
|
||||
Omarchy is a beautiful, modern & opinionated Linux distribution by DHH.
|
||||
|
||||
Read more at [omarchy.org](https://omarchy.org).
|
||||
|
||||
## License
|
||||
|
||||
Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT).
|
||||
|
||||
|
||||
@@ -4,33 +4,18 @@
|
||||
|
||||
BATTERY_THRESHOLD=10
|
||||
NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
|
||||
|
||||
get_battery_percentage() {
|
||||
upower -i "$(upower -e | grep 'BAT')" \
|
||||
| awk -F: '/percentage/ {
|
||||
gsub(/[%[:space:]]/, "", $2);
|
||||
val=$2;
|
||||
printf("%d\n", (val+0.5))
|
||||
exit
|
||||
}'
|
||||
}
|
||||
|
||||
get_battery_state() {
|
||||
upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}'
|
||||
}
|
||||
BATTERY_LEVEL=$(omarchy-battery-remaining)
|
||||
BATTERY_STATE=$(upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}')
|
||||
|
||||
send_notification() {
|
||||
notify-send -u critical " Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
|
||||
}
|
||||
|
||||
BATTERY_LEVEL=$(get_battery_percentage)
|
||||
BATTERY_STATE=$(get_battery_state)
|
||||
|
||||
if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then
|
||||
if [[ ! -f "$NOTIFICATION_FLAG" ]]; then
|
||||
send_notification "$BATTERY_LEVEL"
|
||||
touch "$NOTIFICATION_FLAG"
|
||||
if [[ $BATTERY_STATE == "discharging" && $BATTERY_LEVEL -le $BATTERY_THRESHOLD ]]; then
|
||||
if [[ ! -f $NOTIFICATION_FLAG ]]; then
|
||||
send_notification $BATTERY_LEVEL
|
||||
touch $NOTIFICATION_FLAG
|
||||
fi
|
||||
else
|
||||
rm -f "$NOTIFICATION_FLAG"
|
||||
rm -f $NOTIFICATION_FLAG
|
||||
fi
|
||||
|
||||
11
bin/omarchy-battery-remaining
Executable file
11
bin/omarchy-battery-remaining
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Returns the battery percentage remaining as an integer.
|
||||
|
||||
upower -i $(upower -e | grep BAT) \
|
||||
| awk -F: '/percentage/ {
|
||||
gsub(/[%[:space:]]/, "", $2);
|
||||
val=$2;
|
||||
printf("%d\n", (val+0.5))
|
||||
exit
|
||||
}'
|
||||
61
bin/omarchy-debug
Executable file
61
bin/omarchy-debug
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
|
||||
LOG_FILE="/tmp/omarchy-debug.log"
|
||||
|
||||
cat > "$LOG_FILE" <<EOF
|
||||
Date: $(date)
|
||||
Hostname: $(hostname)
|
||||
Omarchy Branch: $(git -C "$OMARCHY_PATH" branch --show-current 2>/dev/null || echo "unknown")
|
||||
|
||||
=========================================
|
||||
SYSTEM INFORMATION
|
||||
=========================================
|
||||
$(inxi -Farz)
|
||||
|
||||
=========================================
|
||||
DMESG
|
||||
=========================================
|
||||
$(sudo dmesg)
|
||||
|
||||
=========================================
|
||||
JOURNALCTL (CURRENT BOOT, ERRORS ONLY)
|
||||
=========================================
|
||||
$(journalctl -b -p 4..1)
|
||||
|
||||
=========================================
|
||||
INSTALLED PACKAGES
|
||||
=========================================
|
||||
$({ expac -S '%n %v (%r)' $(pacman -Qqe) 2>/dev/null; comm -13 <(pacman -Sql | sort) <(pacman -Qqe | sort) | xargs -r expac -Q '%n %v (AUR)'; } | sort)
|
||||
EOF
|
||||
|
||||
OPTIONS=("View log" "Save in current directory")
|
||||
if ping -c 1 8.8.8.8 >/dev/null 2>&1; then
|
||||
OPTIONS=("Upload log" "${OPTIONS[@]}")
|
||||
fi
|
||||
|
||||
ACTION=$(gum choose "${OPTIONS[@]}")
|
||||
|
||||
case "$ACTION" in
|
||||
"Upload log")
|
||||
echo "Uploading debug log to 0x0.st..."
|
||||
URL=$(curl -sF "file=@$LOG_FILE" -Fexpires=24 https://0x0.st)
|
||||
if [ $? -eq 0 ] && [ -n "$URL" ]; then
|
||||
echo "✓ Log uploaded successfully!"
|
||||
echo "Share this URL:"
|
||||
echo ""
|
||||
echo " $URL"
|
||||
echo ""
|
||||
echo "This link will expire in 24 hours."
|
||||
else
|
||||
echo "Error: Failed to upload log file"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"View log")
|
||||
less "$LOG_FILE"
|
||||
;;
|
||||
"Save in current directory")
|
||||
cp "$LOG_FILE" "./omarchy-debug.log"
|
||||
echo "✓ Log saved to $(pwd)/omarchy-debug.log"
|
||||
;;
|
||||
esac
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Usage: omarchy-hook [name] [args...]"
|
||||
exit 1
|
||||
|
||||
10
bin/omarchy-hyprland-workspace-toggle-gaps
Executable file
10
bin/omarchy-hyprland-workspace-toggle-gaps
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
workspace_id=$(hyprctl activeworkspace -j | jq -r .id)
|
||||
gaps=$(hyprctl workspacerules -j | jq -r ".[] | select(.workspaceString==\"$workspace_id\") | .gapsOut[0] // 0")
|
||||
|
||||
if [[ $gaps == "0" ]]; then
|
||||
hyprctl keyword "workspace $workspace_id, gapsout:10, gapsin:5, border:true"
|
||||
else \
|
||||
hyprctl keyword "workspace $workspace_id, gapsout:0, gapsin:0, border:false"
|
||||
fi
|
||||
3
bin/omarchy-launch-terminal
Executable file
3
bin/omarchy-launch-terminal
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
exec setsid uwsm-app -- "${TERMINAL:-alacritty}" "$@"
|
||||
@@ -387,27 +387,20 @@ show_remove_menu() {
|
||||
}
|
||||
|
||||
show_update_menu() {
|
||||
case $(menu "Update" " Omarchy\n Branch\n Config\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone") in
|
||||
case $(menu "Update" " Omarchy\n Config\n Extra Themes\n Process\n Hardware\n Firmware\n Password\n Timezone\n Time") in
|
||||
*Omarchy*) present_terminal omarchy-update ;;
|
||||
*Branch*) show_update_branch_menu ;;
|
||||
*Config*) show_update_config_menu ;;
|
||||
*Themes*) present_terminal omarchy-theme-update ;;
|
||||
*Process*) show_update_process_menu ;;
|
||||
*Hardware*) show_update_hardware_menu ;;
|
||||
*Firmware*) present_terminal omarchy-update-firmware ;;
|
||||
*Timezone*) present_terminal omarchy-tz-select ;;
|
||||
*Time*) present_terminal omarchy-reset-time ;;
|
||||
*Password*) show_update_password_menu ;;
|
||||
*) show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
show_update_branch_menu() {
|
||||
case $(menu "Branch" "master\ndev" "" "$(omarchy-version-branch)") in
|
||||
*master*) present_terminal "omarchy-update-branch master" ;;
|
||||
*dev*) present_terminal "omarchy-update-branch dev" ;;
|
||||
*) show_update_menu ;;
|
||||
esac
|
||||
}
|
||||
show_update_process_menu() {
|
||||
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n Walker\n Waybar") in
|
||||
*Hypridle*) omarchy-restart-hypridle ;;
|
||||
|
||||
34
bin/omarchy-refresh-limine
Executable file
34
bin/omarchy-refresh-limine
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -f /boot/EFI/linux/omarchy_linux.efi ]] && [[ -f /boot/EFI/linux/$(cat /etc/machine-id)_linux.efi ]]; then
|
||||
echo "Cleanup extra UKI"
|
||||
sudo rm -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi
|
||||
fi
|
||||
echo "Resetting limine config"
|
||||
|
||||
sudo mv /boot/limine.conf /boot/limine.conf.bak
|
||||
|
||||
sudo tee /boot/limine.conf <<EOF >/dev/null
|
||||
### Read more at config document: https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md
|
||||
#timeout: 3
|
||||
default_entry: 2
|
||||
interface_branding: Omarchy Bootloader
|
||||
interface_branding_color: 2
|
||||
hash_mismatch_panic: no
|
||||
|
||||
term_background: 1a1b26
|
||||
backdrop: 1a1b26
|
||||
|
||||
# Terminal colors (Tokyo Night palette)
|
||||
term_palette: 15161e;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;a9b1d6
|
||||
term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5
|
||||
|
||||
# Text colors
|
||||
term_foreground: c0caf5
|
||||
term_foreground_bright: c0caf5
|
||||
term_background_bright: 24283b
|
||||
|
||||
EOF
|
||||
|
||||
sudo limine-update
|
||||
sudo limine-snapper-sync
|
||||
33
bin/omarchy-reinstall
Executable file
33
bin/omarchy-reinstall
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$EUID" -eq 0 ]; then
|
||||
echo "Error: This script should not be run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "This will reinstall all the default Omarchy packages and reset all default configs.\nWarning: All changes to configs will be lost.\n"
|
||||
|
||||
if gum confirm "Are you sure you want to reinstall and lose all config changes?"; then
|
||||
echo "Resetting Omarchy repository"
|
||||
git clone "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
|
||||
rm -rf $OMARCHY_PATH
|
||||
mv ~/.local/share/omarchy-new $OMARCHY_PATH
|
||||
|
||||
echo "Reinstalling missing Omarchy packages"
|
||||
mapfile -t packages < <(grep -v '^#' "$OMARCHY_PATH/install/omarchy-base.packages" | grep -v '^$')
|
||||
sudo pacman -Syu --noconfirm --needed "${packages[@]}"
|
||||
|
||||
echo "Resetting all Omarchy configs"
|
||||
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
||||
cp ~/.local/share/omarchy/default/bashrc ~/.bashrc
|
||||
echo '[[ -f ~/.bashrc ]] && . ~/.bashrc' | tee ~/.bash_profile >/dev/null
|
||||
|
||||
$(bash $OMARCHY_PATH/install/config/theme.sh)
|
||||
$(bash $OMARCHY_PATH/install/config/git.sh)
|
||||
|
||||
omarchy-refresh-limine
|
||||
omarchy-refresh-plymouth
|
||||
omarchy-nvim-setup
|
||||
fi
|
||||
4
bin/omarchy-reset-time
Executable file
4
bin/omarchy-reset-time
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Updating time..."
|
||||
sudo systemctl restart systemd-timesyncd
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
COMMAND="$1"
|
||||
OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/omarchy}
|
||||
|
||||
@@ -17,7 +19,7 @@ create)
|
||||
DESC="$(omarchy-version)"
|
||||
|
||||
echo -e "\e[32mCreate system snapshot\e[0m"
|
||||
|
||||
|
||||
# Get existing snapper config names from CSV output
|
||||
mapfile -t CONFIGS < <(sudo snapper --csvout list-configs | awk -F, 'NR>1 {print $1}')
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# omarchy-theme-set-obsidian: Bootstrap and update Omarchy theme for Obsidian
|
||||
#
|
||||
# - Ensures registry at ~/.local/state/omarchy/obsidian-vaults
|
||||
# - If missing/empty, bootstraps by scanning ~/Documents/*/.obsidian and ~/Dropbox/*/.obsidian
|
||||
# - Populates by extracting vault paths from ~/.config/obsidian/obsidian.json
|
||||
# - For each valid vault:
|
||||
# - Ensures .obsidian/themes/Omarchy/{manifest.json, theme.css}
|
||||
# - Updates theme.css (uses current theme’s obsidian.css if present; otherwise generates -- see below)
|
||||
@@ -26,30 +26,18 @@
|
||||
VAULTS_FILE="$HOME/.local/state/omarchy/obsidian-vaults"
|
||||
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
||||
|
||||
# Ensure the vaults registry exists, or bootstrap from known locations
|
||||
ensure_vaults_file() {
|
||||
mkdir -p "$(dirname "$VAULTS_FILE")"
|
||||
# If file exists (even empty), do not scan; treat as authoritative
|
||||
if [ -f "$VAULTS_FILE" ]; then
|
||||
return
|
||||
fi
|
||||
local tmpfile
|
||||
tmpfile="$(mktemp)"
|
||||
# Scan a couple of common locations for <base>/<vault>/.obsidian
|
||||
for base in "$HOME/Documents" "$HOME/Dropbox"; do
|
||||
[ -d "$base" ] || continue
|
||||
for d in "$base"/*/.obsidian; do
|
||||
[ -d "$d" ] || continue
|
||||
vault_dir="${d%/.obsidian}"
|
||||
printf "%s\n" "$vault_dir" >>"$tmpfile"
|
||||
done
|
||||
done
|
||||
if [ -s "$tmpfile" ]; then
|
||||
sort -u "$tmpfile" >"$VAULTS_FILE"
|
||||
else
|
||||
: >"$VAULTS_FILE"
|
||||
fi
|
||||
rm -f "$tmpfile"
|
||||
# Extract the Obsidian vault location from config file <base>/<vault>/.obsidian
|
||||
jq -r '.vaults | values[].path' ~/.config/obsidian/obsidian.json 2>/dev/null >>"$tmpfile"
|
||||
if [ -s "$tmpfile" ]; then
|
||||
sort -u "$tmpfile" >"$VAULTS_FILE"
|
||||
else
|
||||
: >"$VAULTS_FILE"
|
||||
fi
|
||||
rm "$tmpfile"
|
||||
}
|
||||
|
||||
# Ensure theme directory and minimal manifest exist in a vault
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
for dir in ~/.config/omarchy/themes/*/; do
|
||||
[ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull
|
||||
if [[ -d $dir ]] && [[ ! -L "${dir%/}" ]] && [[ -d "$dir/.git" ]]; then
|
||||
echo "Updating: $(basename "$dir")"
|
||||
git -C "$dir" pull
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
set -e
|
||||
|
||||
trap 'echo ""; echo -e "\033[0;31mSomething went wrong during the update!\n\nPlease review the output above carefully, correct the error, and retry the update.\n\nIf you need assistance, get help from the community at https://omarchy.org/discord\033[0m"' ERR
|
||||
|
||||
omarchy-snapshot create || [ $? -eq 127 ]
|
||||
omarchy-update-git
|
||||
omarchy-update-perform
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
|
||||
# Ensure Waybar icon offering the available update is removed
|
||||
pkill -RTMIN+7 waybar
|
||||
exit 0
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
echo -e "\e[32mUpdate Omarchy\e[0m"
|
||||
|
||||
git -C $OMARCHY_PATH pull --autostash
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Used in package emergencies if a bad package has been pushed and we can't revoke.
|
||||
# Requires manually installing the good package using sudo pacman -U <url>
|
||||
ignored_packages=$(omarchy-pkg-ignored)
|
||||
|
||||
@@ -273,7 +273,7 @@ launch_windows() {
|
||||
echo "Starting Windows VM..."
|
||||
|
||||
# Send desktop notification
|
||||
notify-send "Windows VM" "Starting Windows VM, this may take a moment..."
|
||||
notify-send " Starting Windows VM" " This can take 15-30 seconds" -t 15000
|
||||
|
||||
if ! docker-compose -f "$COMPOSE_FILE" up -d 2>&1; then
|
||||
echo "❌ Failed to start Windows VM!"
|
||||
@@ -298,7 +298,7 @@ launch_windows() {
|
||||
done
|
||||
|
||||
# Give it a moment more to fully initialize
|
||||
sleep 3
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
# Extract credentials from compose file
|
||||
@@ -339,7 +339,7 @@ To stop: omarchy-windows-vm stop"
|
||||
# If scale is less than 130%, don't set any scale (use default 100)
|
||||
|
||||
# Connect with RDP in fullscreen (auto-detects resolution)
|
||||
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 +f -grab-keyboard /cert:ignore /title:"Windows VM - Omarchy" /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE
|
||||
xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /cert:ignore /title:"Windows VM - Omarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE
|
||||
|
||||
# After RDP closes, stop the container unless --keep-alive was specified
|
||||
if [ "$KEEP_ALIVE" = false ]; then
|
||||
|
||||
@@ -12,9 +12,10 @@ bindd = SUPER SHIFT, T, Activity, exec, $terminal -e btop
|
||||
bindd = SUPER SHIFT, D, Docker, exec, $terminal -e 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
|
||||
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
|
||||
|
||||
# If your web app url contains #, type it as ## to prevent hyperland treat it as comments
|
||||
# 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/"
|
||||
@@ -22,6 +23,7 @@ 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"
|
||||
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
# Changes require a restart to take effect.
|
||||
|
||||
# Install other terminals via Install > Terminal
|
||||
export TERMINAL=alacritty
|
||||
|
||||
# Use code for VSCode
|
||||
export EDITOR=nvim
|
||||
|
||||
# Use a custom directory for screenshots (remember to make the directory!)
|
||||
# export OMARCHY_SCREENSHOT_DIR="$HOME/Pictures/Screenshots"
|
||||
|
||||
# Use a custom directory for screenrecordings (remember to make the directory!)
|
||||
# export OMARCHY_SCREENRECORD_DIR="$HOME/Videos/Screencasts"
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
"custom/omarchy": {
|
||||
"format": "<span font='omarchy'>\ue900</span>",
|
||||
"on-click": "omarchy-menu",
|
||||
"on-click-right": "omarchy-launch-terminal",
|
||||
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
|
||||
},
|
||||
"custom/update": {
|
||||
|
||||
@@ -9,6 +9,5 @@ if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_comple
|
||||
source /usr/share/bash-completion/bash_completion
|
||||
fi
|
||||
|
||||
# Set complete path
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
# Ensure command hashing is off for mise
|
||||
set +h
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# If not running interactively, don't do anything (leave this at the top of this file)
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# All the default Omarchy aliases and functions
|
||||
# (don't mess with these directly, just overwrite them here!)
|
||||
source ~/.local/share/omarchy/default/bash/rc
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Close windows
|
||||
bindd = SUPER, W, Close active window, killactive,
|
||||
bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-cmd-close-all-windows
|
||||
bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-hyprland-window-close-all
|
||||
|
||||
# Control tiling
|
||||
bindd = SUPER, J, Toggle split, togglesplit, # dwindle
|
||||
@@ -85,6 +85,10 @@ bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d
|
||||
bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f
|
||||
bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b
|
||||
|
||||
# Scroll through a set of grouped windows with SUPER + ALT + scroll
|
||||
bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f
|
||||
bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b
|
||||
|
||||
# Activate window in a group by number
|
||||
bindd = SUPER ALT, 1, Switch to group window 1, changegroupactive, 1
|
||||
bindd = SUPER ALT, 2, Switch to group window 2, changegroupactive, 2
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# Close windows
|
||||
bindd = SUPER, W, Close active window, killactive,
|
||||
bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-cmd-close-all-windows
|
||||
bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-hyprland-window-close-all
|
||||
|
||||
# Control tiling
|
||||
bindd = SUPER, J, Toggle split, togglesplit, # dwindle
|
||||
|
||||
@@ -12,6 +12,7 @@ bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar
|
||||
bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-theme-bg-next
|
||||
bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, omarchy-menu theme
|
||||
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
|
||||
bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-workspace-toggle-gaps
|
||||
|
||||
# Notifications
|
||||
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
|
||||
@@ -30,10 +31,14 @@ bindd = CTRL, F2, Apple Display brightness up, exec, omarchy-cmd-apple-display-b
|
||||
bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-cmd-apple-display-brightness +60000
|
||||
|
||||
# Captures
|
||||
bindd = , PRINT, Screenshot, exec, omarchy-cmd-screenshot
|
||||
bindd = SHIFT, PRINT, Screenshot, exec, omarchy-cmd-screenshot smart clipboard
|
||||
bindd = , PRINT, Screenshot with Editing, exec, omarchy-cmd-screenshot
|
||||
bindd = SHIFT, PRINT, Screenshot to Clipboard, exec, omarchy-cmd-screenshot smart clipboard
|
||||
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
|
||||
bindd = SUPER, PRINT, Color picking, exec, pkill hyprpicker || hyprpicker -a
|
||||
|
||||
# File sharing
|
||||
bindd = CTRL SUPER, S, Share, exec, omarchy-menu share
|
||||
bindd = SUPER CTRL, S, Share, exec, omarchy-menu share
|
||||
|
||||
# Waybar-less information
|
||||
bindd = SUPER CTRL, T, Show time, exec, notify-send " $(date +"%A %H:%M — %d %B W%V %Y")"
|
||||
bindd = SUPER CTRL, B, Show battery remaining, exec, notify-send " Battery is at $(omarchy-battery-remaining)%"
|
||||
|
||||
@@ -75,7 +75,7 @@ term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5
|
||||
term_foreground: c0caf5
|
||||
term_foreground_bright: c0caf5
|
||||
term_background_bright: 24283b
|
||||
|
||||
|
||||
EOF
|
||||
|
||||
|
||||
@@ -120,17 +120,18 @@ if [[ -n $EFI ]] && efibootmgr &>/dev/null; then
|
||||
done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Arch Linux Limine" | sed 's/^Boot\([0-9]\{4\}\).*/\1/')
|
||||
fi
|
||||
|
||||
if [[ -n $EFI ]] && efibootmgr &>/dev/null &&
|
||||
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends" &&
|
||||
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then
|
||||
|
||||
uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)
|
||||
|
||||
if [[ -n "$uki_file" ]]; then
|
||||
sudo efibootmgr --create \
|
||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
||||
--label "Omarchy" \
|
||||
--loader "\\EFI\\Linux\\$uki_file"
|
||||
fi
|
||||
fi
|
||||
# Move this to a utility to allow manual activation
|
||||
# if [[ -n $EFI ]] && efibootmgr &>/dev/null &&
|
||||
# ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends" &&
|
||||
# ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then
|
||||
#
|
||||
# uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)
|
||||
#
|
||||
# if [[ -n "$uki_file" ]]; then
|
||||
# sudo efibootmgr --create \
|
||||
# --disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||
# --part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
||||
# --label "Omarchy" \
|
||||
# --loader "\\EFI\\Linux\\$uki_file"
|
||||
# fi
|
||||
# fi
|
||||
|
||||
@@ -36,6 +36,7 @@ elephant-todo
|
||||
elephant-unicode
|
||||
elephant-websearch
|
||||
evince
|
||||
expac
|
||||
eza
|
||||
fastfetch
|
||||
fcitx5
|
||||
@@ -65,6 +66,7 @@ imagemagick
|
||||
impala
|
||||
imv
|
||||
inetutils
|
||||
inxi
|
||||
iwd
|
||||
jq
|
||||
kdenlive
|
||||
@@ -132,7 +134,7 @@ unzip
|
||||
uwsm
|
||||
walker
|
||||
waybar
|
||||
wayfreeze-git
|
||||
wayfreeze
|
||||
whois
|
||||
wireless-regdb
|
||||
wiremix
|
||||
|
||||
@@ -17,5 +17,5 @@ fi
|
||||
|
||||
# Use default terminal for keybinding
|
||||
if grep -q "terminal = uwsm app" ~/.config/hypr/bindings.conf; then
|
||||
sed -i '/terminal = uwsm-app -- alacritty/ c\$terminal = uwsm-app -- $TERMINAL' ~/.config/hypr/bindings.conf
|
||||
sed -Ei '/terminal = uwsm[- ]app -- alacritty/ c\$terminal = uwsm-app -- $TERMINAL' ~/.config/hypr/bindings.conf
|
||||
fi
|
||||
|
||||
7
migrations/1761180745.sh
Normal file
7
migrations/1761180745.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
echo "Ensure interactive shell check is at the top of .bashrc"
|
||||
|
||||
BASHRC="$HOME/.bashrc"
|
||||
|
||||
if [ -f "$BASHRC" ] && ! grep -q '\[\[ $- != \*i\* \]\] && return' "$BASHRC"; then
|
||||
sed -i '1i# If not running interactively, don'\''t do anything (leave this at the top of this file)\n[[ $- != *i* ]] && return\n' "$BASHRC"
|
||||
fi
|
||||
3
migrations/1761181166.sh
Normal file
3
migrations/1761181166.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
echo "Change to pinned version of wayfreeze"
|
||||
omarchy-pkg-drop wayfreeze-git
|
||||
omarchy-pkg-add wayfreeze
|
||||
33
migrations/1761241493.sh
Normal file
33
migrations/1761241493.sh
Normal file
@@ -0,0 +1,33 @@
|
||||
echo "Cleanup extra UKI if needed to prevent errors"
|
||||
if [[ -f /boot/EFI/linux/omarchy_linux.efi ]] && [[ -f /boot/EFI/linux/$(cat /etc/machine-id)_linux.efi ]]; then
|
||||
sudo rm -f /boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi
|
||||
|
||||
if grep -q "/boot/EFI/Linux/$(cat /etc/machine-id)_linux.efi" /boot/limine.conf; then
|
||||
echo -e "Resetting limine config\n(you may need to re-add other entries via sudo limine-update)"
|
||||
|
||||
sudo mv /boot/limine.conf /boot/limine.conf.bak
|
||||
sudo tee /boot/limine.conf <<EOF >/dev/null
|
||||
### Read more at config document: https://github.com/limine-bootloader/limine/blob/trunk/CONFIG.md
|
||||
#timeout: 3
|
||||
default_entry: 2
|
||||
interface_branding: Omarchy Bootloader
|
||||
interface_branding_color: 2
|
||||
hash_mismatch_panic: no
|
||||
|
||||
term_background: 1a1b26
|
||||
backdrop: 1a1b26
|
||||
|
||||
# Terminal colors (Tokyo Night palette)
|
||||
term_palette: 15161e;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;a9b1d6
|
||||
term_palette_bright: 414868;f7768e;9ece6a;e0af68;7aa2f7;bb9af7;7dcfff;c0caf5
|
||||
|
||||
# Text colors
|
||||
term_foreground: c0caf5
|
||||
term_foreground_bright: c0caf5
|
||||
term_background_bright: 24283b
|
||||
|
||||
EOF
|
||||
sudo limine-update
|
||||
sudo limine-snapper-sync
|
||||
fi
|
||||
fi
|
||||
2
migrations/1761247569.sh
Normal file
2
migrations/1761247569.sh
Normal file
@@ -0,0 +1,2 @@
|
||||
echo "Install expac and inxi for omarchy-debug"
|
||||
omarchy-pkg-add expac inxi
|
||||
8
migrations/1761269603.sh
Normal file
8
migrations/1761269603.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
echo "Add right-click terminal action to waybar omarchy menu icon"
|
||||
|
||||
WAYBAR_CONFIG="$HOME/.config/waybar/config.jsonc"
|
||||
|
||||
if [[ -f "$WAYBAR_CONFIG" ]] && ! grep -A5 '"custom/omarchy"' "$WAYBAR_CONFIG" | grep -q '"on-click-right"'; then
|
||||
sed -i '/"on-click": "omarchy-menu",/a\ "on-click-right": "omarchy-launch-terminal",' "$WAYBAR_CONFIG"
|
||||
omarchy-state set restart-waybar-required
|
||||
fi
|
||||
5
migrations/1761274806.sh
Normal file
5
migrations/1761274806.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
echo "Ensure node is available via mise (for treesitter cli)"
|
||||
|
||||
if omarchy-cmd-missing node; then
|
||||
mise use -g node@latest
|
||||
fi
|
||||
11
migrations/1761274980.sh
Normal file
11
migrations/1761274980.sh
Normal file
@@ -0,0 +1,11 @@
|
||||
echo "Migrate to proper packages for localsend and asdcontrol"
|
||||
|
||||
if omarchy-pkg-present localsend-bin; then
|
||||
omarchy-pkg-drop localsend-bin
|
||||
omarchy-pkg-add localsend
|
||||
fi
|
||||
|
||||
if omarchy-pkg-present asdcontrol-git; then
|
||||
omarchy-pkg-drop asdcontrol-git
|
||||
omarchy-pkg-add asdcontrol
|
||||
fi
|
||||
BIN
themes/flexoki-light/preview.png
Normal file
BIN
themes/flexoki-light/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 354 KiB |
Reference in New Issue
Block a user