Compare commits

...
56 Commits
Author SHA1 Message Date
David Heinemeier Hansson e58569b947 Merge pull request #2862 from basecamp/dev
Omarchy 3.1.4
2025-10-28 16:18:13 +01:00
David Heinemeier Hansson 6243c82251 Turn off the trigger keys instead 2025-10-28 16:06:12 +01:00
David Heinemeier Hansson 928910773c Make sure to restart fxitc5 after making config changes 2025-10-28 15:38:50 +01:00
David Heinemeier Hanssonand@cairin a48001b8cc Turn off fcitx5 clipboard hotkeys that are interferring with other apps
Co-authored-by: @cairin
Ref: #2795
2025-10-28 11:30:27 +01:00
David Heinemeier Hansson c17e4f57ff No need for this either 2025-10-28 08:59:37 +01:00
AdamMusaandDavid Heinemeier Hansson 62cdece33a Allow interaction with first Android Studio dialog ("Send usage statistics") by adjusting JetBrains window rules (#2899)
* fix(jetbrains.conf): allow focus for Android Studio’s first dialog by unsetting nofocus rules for empty-title windows

* Refactor window rules for JetBrains apps

Updated window rules for JetBrains applications to allow focus and interaction with dialogs.

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-28 08:38:09 +01:00
Jordan Kicklighter 45d4b41749 Include all shell-integration-features options together (#2915)
Ghostty will only use the last `shell-integration-features` line found
in the config, so multiple options need to be presented as a
comma-separated list. Including them on separate lines meant that only
the `ssh-env` option was getting set, causing the `no-cursor` option to
be ignored. This prevented the cursor from going into the `block` style.
2025-10-28 08:37:11 +01:00
David Heinemeier Hansson d64a178635 No need to ask 2025-10-28 08:34:22 +01:00
David Heinemeier Hansson d493e0536a Make it update-time instead of reset-time and use before doing an update 2025-10-28 08:30:54 +01:00
Ryan Hughes 0e5c22ac38 Add the keyring for manual installs 2025-10-28 02:33:54 -04:00
Ryan Hughes d5a8f1b06b Move update-keyring to the beginning 2025-10-28 01:43:25 -04:00
Ryan Hughes f3c816fe85 Set version 2025-10-28 01:08:05 -04:00
Ryan Hughes ba348a6a15 Remove nvim.desktop in favor of symlink
Moving to symlink fixes the following issues:
- App removes from launchers if you uninstall Nvim
- Nvim launches in the correct terminal without invalid desktop entry

Symlink setup moved to omarchy-nvim-setup (Ref:
https://github.com/omacom-io/omarchy-pkgs/commit/bb7a0f4c1f78d428bbe53bc3af2c91a9c8a5de3b)
2025-10-27 23:48:58 -04:00
Ryan Hughes ef0a9464a2 Back to default colors here 2025-10-27 19:05:01 -04:00
Ryan Hughes d9a077d5b6 Style gum confirm using ANSI colors so they match 2025-10-27 19:02:56 -04:00
Ryan Hughes b75e70fb9b Add an update confirmation
Will prevent some users from accidentally clicking the update icon only
to terminate and wind up in a broken state.
2025-10-27 18:12:35 -04:00
Ryan Hughes 4bb626bc4e Add omarchy-keyring for existing installs 2025-10-27 17:50:08 -04:00
Ryan Hughes b3e7ff2b60 Update install method for openai-codex 2025-10-27 14:20:46 -04:00
Ryan Hughes 4bd29207c6 Add migration for news alerts box 2025-10-27 13:29:09 -04:00
Anton Lindholm a39ecf41bc config/uwsm/env: remove extra trailing / in path (#2907) 2025-10-27 18:03:52 +01:00
David Heinemeier Hansson 048fdea87a Ensure nvim always opens nvim not $EDITOR
Closes #2900
2025-10-27 17:57:52 +01:00
Alex SixandDavid Heinemeier Hansson d8f97b8d02 Fix auto-generated everforest obsidian theme readability issues (#2752)
* Fix auto-generated everforest obsidian theme

* Update `--text-muted` and `--text-faint` to be readable against
background color

* Add contrast detection and color correction logic

* Remove dedicated Obsidian CSS file

* Add dedicated text color variables to obsidian theme generation

* Replace closest color logic with generated color for code bg in Obsidian

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-27 17:50:37 +01:00
Ryan Hughes 556e474942 Add setting systemd vars to prevent slow app launches 2025-10-27 12:46:55 -04:00
David Heinemeier Hansson 9d9f362c7a Just use the basics in case there is a problem with path 2025-10-27 17:32:16 +01:00
ctarx 1060a54c1a Remove default SSH allow rule from UFW (#2887)
* UFW: limit LocalSend (53317) to LAN and remove default SSH (22) rule

* Revert LocalSend change and drop SSH allow rule
2025-10-27 15:43:48 +01:00
David Heinemeier Hansson 06389d0422 Bump checking for new version from 1 to 6 hours
Lessen the stampede going forward
2025-10-27 15:36:07 +01:00
ctarxandDavid Heinemeier Hansson e0e71a34fe imv: add default Ctrl+P binding to print current image via CUPS (#2872)
* imv: add default Ctrl+P binding to print current image via CUPS

* Add imv config migration with backup

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-27 14:55:14 +01:00
David Heinemeier Hansson d128833e7b Already in mise-work 2025-10-27 14:51:52 +01:00
David Heinemeier Hansson bba2ade78f Ensure node is installed for use by treesitter in neovim
cc @ryanrhughes
2025-10-27 09:55:54 +01:00
Zacharias Knudsen e4f2cc2175 Use better git defaults (#1601) 2025-10-27 09:42:04 +01:00
David Heinemeier Hansson e0f9beda7a Reposition scratchpad keybindings in cheatsheet 2025-10-27 09:02:54 +01:00
Fredrik StormandDavid Heinemeier Hansson 79267da5f2 Add bindings for scratchpad support (#2669)
* Add bindings for scratchpad support

This is great for hiding windows temporarily and bringing them up when
needed in an overlay, I'm using it to hide away my webcam control in
meetings. ;)

* Change shortcut to move window to scratchpad

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-27 09:00:35 +01:00
Wiehann cc5c842f9f Fix ls when not using eza (#2607)
* Fix ls when not using eza

* Make use of omarchy-cmd-present
2025-10-27 08:56:27 +01:00
Wiehann 9b37d8549f Fix cd command if zoxide is missing (#2609)
* Fix cd command if zoxide is missing

* Make use of omarchy-cmd-present
2025-10-27 08:55:38 +01:00
neimadTL 75eb059779 Remove after install usb installer message (#2888)
Since in almost all cases, the EFI entries will get positioned
above the USB, this notice is not needed.
2025-10-27 08:47:50 +01:00
Rishabh Sarang 7a7881b176 Update windowrule for xdg-desktop-portal-gtk class (#2876) 2025-10-26 20:45:59 +01:00
David Heinemeier Hansson 2586cec7a0 Merge branch 'master' into dev 2025-10-26 13:16:45 +01:00
Ryan Hughes fc30a25842 Merge pull request #2516 from ZorudaRinku/master
Clarify error message when no web apps have been selected in the WebApp Remove menu
2025-10-25 20:04:26 -04:00
Andrej Benz 1d29406910 fix: cleanup default walker config values (#2560) 2025-10-25 21:47:23 +02:00
David Heinemeier Hansson 249318b398 Ensure that elephant is started before walker
Because if not, we get the dreaded "Waiting for elephant" message. CC:
@abenz1267
2025-10-25 21:46:31 +02:00
ManuelandDavid Heinemeier Hansson 9b798c3c0f Add the keybinding for the copy url extension in the SUPER+K Menu (#2801)
* init

* go with a hardcoded list

* revert manifest modification

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-25 21:38:13 +02:00
Ryan Hughes 14f803857c Update issue templates 2025-10-25 12:58:21 -04:00
David Heinemeier Hansson b92beef294 Ensure Wayland IME is turned on when starting Typora from hotkey too 2025-10-25 14:25:06 +02:00
Rishabh Sarang 6fce5e28c9 fix(portal): match additional 'Choose Export Directory' dialogs (#2839)
Some applications (e.g. Aether) use xdg-desktop-portal-gtk to open folder chooser dialogs titled "Choose Export Directory" or similar. These were not matched by the previous floating-window regex, causing them to tile instead of float.

This change expands the title regex to include "Choose …" patterns, ensuring these dialogs float and center properly in Hyprland
2025-10-25 13:16:16 +02:00
Brennan Coslett 7b02895962 Surface: enable built-in keyboard at LUKS (#2621)
Derives the list of required modules for the installer from Chris
McLeod's manual installation steps. His instructions say to use the
surface-linux kernel however the default kernel has the right set
of modules already (as noted by the fact that the right modules are
loaded for the keyboard to work during the install and after the LUKS
unlock screen).

I only have a Surface Laptop 3 to test this on but based on the guide
where Chris is using a newer laptop and the only difference is the
pinctrl module which I attempt to autodetect I think it should "just"
work for others but definitely "use at your own risk".
2025-10-25 08:18:23 +02:00
Nikhil Jain 9a90afb6e8 New window replaces the current fullscreen or maximized window (#2821)
* New window replaces the current fullscreen or maximized window

Currently if we are in fullscreen or full-width mode and either

start a new application OR
create a new window of an existing application. Like an incognito window
Then those new windows/apps start in the background. There is no indication that something new has been created.

IMHO, if I am opening an application then I want to switch to it. I cannot think of any common use case for having new applications open in the background.

This change will cause new application to replace current application as the fullscreen / fullwidth window

Please see docs: https://wiki.hypr.land/Configuring/Variables/#misc

Option:
new_window_takes_over_fullscreen

Desc:
if there is a fullscreen or maximized window, decide whether a new tiled window opened should replace it, stay behind or disable the fullscreen/maximized state. 0 - behind, 1 - takes over, 2 - unfullscreen/unmaxize [0/1/2]

Type:
int

Default:
0

* fix the setting name
2025-10-24 12:55:14 -07:00
David Heinemeier Hansson 37518c222c Control border size instead so it works if default is 0 2025-10-24 07:16:36 -07:00
David Heinemeier Hansson 6f0958aa67 Suggest entirely fullscreen view option 2025-10-24 07:13:01 -07:00
David Heinemeier Hansson 475e831391 Merge branch 'master' into dev 2025-10-24 06:45:33 -07:00
Rishabh SarangandDavid Heinemeier Hansson 69c2195c10 fix(hyprland): match Brave portal dialogs in floating-window rule (#2788)
* fix(hyprland): match Brave portal dialogs in floating-window rule

Brave on Wayland uses xdg-desktop-portal-gtk for permission and file dialogs.
These windows use website-based titles (e.g. "chatgpt.com wants to open")
instead of "Open File" or "Save File", so they were not matched by the
floating-window rule. This commit expands the title regex to include those
patterns, ensuring Brave dialogs float properly.

* Shrink scope

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-24 06:35:30 -07:00
David Heinemeier Hansson 795bfdd969 Include all workspace movements together 2025-10-24 06:30:47 -07:00
David Heinemeier Hansson eac7ea8a49 Few more tweaks to the keybindings 2025-10-24 06:26:46 -07:00
David Heinemeier Hansson de2b32d77f Sort keybindings on SUPER + K
Easier to learn when presented in order
2025-10-24 06:06:34 -07:00
Ryan Hughes 63d4482e8c Hotfix: Prevent error when no orphans exist 2025-10-24 04:01:07 -04:00
Ryan Hughes efdea50053 Update issue templates 2025-10-24 03:43:52 -04:00
ZorudaRinku 8b896b60a9 Clarify error message when no web apps have been selected in the WebApp Remove menu 2025-10-17 19:30:29 -06:00
47 changed files with 345 additions and 228 deletions

No files matched your search

+2 -1
View File
@@ -1,5 +1,5 @@
name: Bug name: Bug
description: Report a problem description: Report a validated bug -- NOT FOR SUPPORT REQUESTS
labels: [bug] labels: [bug]
body: body:
- type: markdown - type: markdown
@@ -19,5 +19,6 @@ body:
id: steps id: steps
attributes: attributes:
label: What's wrong? label: What's wrong?
description: Describe the issue, include steps to recreate it if possible, and attach the output of `omarchy-debug` if possible
validations: validations:
required: true required: true
+4
View File
@@ -1 +1,5 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links:
- name: 🛟 Support 🛟
url: https://omarchy.org/discord
about: Need help? Join our Discord community for support with any issues. GitHub issues should be used for verified bugs, documentation, and enhancement proposals only.
+1
View File
@@ -11,5 +11,6 @@ body:
id: steps id: steps
attributes: attributes:
label: What correction or addition do we need? label: What correction or addition do we need?
description: Please provide reference links and specifics of what should be updated
validations: validations:
required: true required: true
+1 -1
View File
@@ -1,5 +1,5 @@
name: Enhancement name: Enhancement
description: Feature or change description: Suggest a feature or change
labels: [enhancement] labels: [enhancement]
body: body:
- type: markdown - type: markdown
-12
View File
@@ -1,12 +0,0 @@
[Desktop Entry]
Name=Neovim
GenericName=Text Editor
Comment=Edit text files
Exec=omarchy-launch-editor %F
Terminal=false
Type=Application
Keywords=Text;editor;
Icon=nvim
Categories=Utility;TextEditor;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+2 -2
View File
@@ -4,7 +4,7 @@ workspace_id=$(hyprctl activeworkspace -j | jq -r .id)
gaps=$(hyprctl workspacerules -j | jq -r ".[] | select(.workspaceString==\"$workspace_id\") | .gapsOut[0] // 0") gaps=$(hyprctl workspacerules -j | jq -r ".[] | select(.workspaceString==\"$workspace_id\") | .gapsOut[0] // 0")
if [[ $gaps == "0" ]]; then if [[ $gaps == "0" ]]; then
hyprctl keyword "workspace $workspace_id, gapsout:10, gapsin:5, border:true" hyprctl keyword "workspace $workspace_id, gapsout:10, gapsin:5, bordersize:2"
else \ else \
hyprctl keyword "workspace $workspace_id, gapsout:0, gapsin:0, border:false" hyprctl keyword "workspace $workspace_id, gapsout:0, gapsin:0, bordersize:0"
fi fi
+3 -3
View File
@@ -287,10 +287,10 @@ show_install_ai_menu() {
echo ollama echo ollama
) )
case $(menu "Install" "󱚤 Claude Code\n󱚤 Cursor CLI [AUR]\n󱚤 Gemini [AUR]\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in case $(menu "Install" "󱚤 Claude Code\n󱚤 Cursor CLI [AUR]\n󱚤 Gemini [AUR]\n󱚤 OpenAI Codex\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
*Claude*) install "Claude Code" "claude-code" ;; *Claude*) install "Claude Code" "claude-code" ;;
*Cursor*) aur_install "Cursor CLI" "cursor-cli" ;; *Cursor*) aur_install "Cursor CLI" "cursor-cli" ;;
*OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;; *OpenAI*) install "OpenAI Codex" "openai-codex-bin" ;;
*Gemini*) aur_install "Gemini" "gemini-cli" ;; *Gemini*) aur_install "Gemini" "gemini-cli" ;;
*Studio*) install "LM Studio" "lmstudio" ;; *Studio*) install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" $ollama_pkg ;; *Ollama*) install "Ollama" $ollama_pkg ;;
@@ -395,7 +395,7 @@ show_update_menu() {
*Hardware*) show_update_hardware_menu ;; *Hardware*) show_update_hardware_menu ;;
*Firmware*) present_terminal omarchy-update-firmware ;; *Firmware*) present_terminal omarchy-update-firmware ;;
*Timezone*) present_terminal omarchy-tz-select ;; *Timezone*) present_terminal omarchy-tz-select ;;
*Time*) present_terminal omarchy-reset-time ;; *Time*) present_terminal omarchy-update-time ;;
*Password*) show_update_password_menu ;; *Password*) show_update_password_menu ;;
*) show_main_menu ;; *) show_main_menu ;;
esac esac
+71 -1
View File
@@ -49,6 +49,17 @@ parse_keycodes() {
code="${BASH_REMATCH[1]}" code="${BASH_REMATCH[1]}"
symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE") symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE")
echo "${line/code:${code}/$symbol}" echo "${line/code:${code}/$symbol}"
elif [[ "$line" =~ mouse:([0-9]+) ]]; then
code="${BASH_REMATCH[1]}"
case "$code" in
272) symbol="LEFT MOUSE BUTTON" ;;
273) symbol="RIGHT MOUSE BUTTON" ;;
274) symbol="MIDDLE MOUSE BUTTON" ;;
*) symbol="mouse:${code}" ;;
esac
echo "${line/mouse:${code}/$symbol}"
else else
echo "$line" echo "$line"
fi fi
@@ -101,6 +112,11 @@ dynamic_bindings() {
-e 's/^77,/SUPER SHIFT CTRL ALT,/' -e 's/^77,/SUPER SHIFT CTRL ALT,/'
} }
# Hardcoded bindings, like the copy-url extension and such
static_bindings() {
echo "SHIFT ALT,L,Copy URL from Web App,extension,copy-url"
}
# Parse and format keybindings # Parse and format keybindings
# #
# `awk` does the heavy lifting: # `awk` does the heavy lifting:
@@ -147,13 +163,67 @@ parse_bindings() {
}' }'
} }
prioritize_entries() {
awk '
{
line = $0
prio = 50
if (match(line, /Terminal/)) prio = 0
if (match(line, /Browser/) && !match(line, /Browser[[:space:]]*\(/)) prio = 1
if (match(line, /File manager/)) prio = 2
if (match(line, /Launch apps/)) prio = 3
if (match(line, /Omarchy menu/)) prio = 4
if (match(line, /System menu/)) prio = 5
if (match(line, /Theme menu/)) prio = 6
if (match(line, /Full screen/)) prio = 7
if (match(line, /Close window/)) prio = 8
if (match(line, /Toggle window floating/)) prio = 9
if (match(line, /Toggle window split/)) prio = 10
if (match(line, /Universal/)) prio = 11
if (match(line, /Clipboard/)) prio = 12
if (match(line, /Emoji picker/)) prio = 13
if (match(line, /Color picker/)) prio = 14
if (match(line, /Screenshot/)) prio = 15
if (match(line, /Screenrecording/)) prio = 16
if (match(line, /(Switch|Next|Former|Previous).*workspace/)) prio = 17
if (match(line, /Move window to workspace/)) prio = 18
if (match(line, /Swap window/)) prio = 19
if (match(line, /Move window focus/)) prio = 20
if (match(line, /Move window$/)) prio = 21
if (match(line, /Resize window/)) prio = 22
if (match(line, /Expand window/)) prio = 23
if (match(line, /Shrink window/)) prio = 24
if (match(line, /scratchpad/)) prio = 25
if (match(line, /notification/)) prio = 26
if (match(line, /Toggle window transparency/)) prio = 27
if (match(line, /Toggle workspace gaps/)) prio = 28
if (match(line, /Toggle nightlight/)) prio = 29
if (match(line, /group/)) prio = 94
if (match(line, /Scroll active workspace/)) prio = 95
if (match(line, /Cycle to/)) prio = 96
if (match(line, /Reveal active/)) prio = 97
if (match(line, /Apple Display/)) prio = 98
if (match(line, /XF86/)) prio = 99
# print "priority<TAB>line"
printf "%d\t%s\n", prio, line
}' |
sort -k1,1n -k2,2 |
cut -f2-
}
monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height') monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height')
menu_height=$((monitor_height * 40 / 100)) menu_height=$((monitor_height * 40 / 100))
build_keymap_cache build_keymap_cache
dynamic_bindings | {
dynamic_bindings
static_bindings
} |
sort -u | sort -u |
parse_keycodes | parse_keycodes |
parse_bindings | parse_bindings |
prioritize_entries |
walker --dmenu -p 'Keybindings' --width 800 --height "$menu_height" walker --dmenu -p 'Keybindings' --width 800 --height "$menu_height"
+1
View File
@@ -17,5 +17,6 @@ if [[ $EUID -eq 0 ]]; then
" "
else else
setsid uwsm-app -- elephant & setsid uwsm-app -- elephant &
wait 2
setsid uwsm-app -- walker --gapplication-service & setsid uwsm-app -- walker --gapplication-service &
fi fi
+65 -28
View File
@@ -87,6 +87,35 @@ calculate_brightness() {
echo $(((r * 299 + g * 587 + b * 114) / 1000)) echo $(((r * 299 + g * 587 + b * 114) / 1000))
} }
# Calculate approximate contrast ratio between two colors
# Returns ratio scaled by 100 (e.g., 450 = 4.5:1 ratio)
# (this is due to bash not supporting decimal math)
calculate_contrast_ratio() {
local hex1="$1" hex2="$2"
local br1=$(calculate_brightness "$hex1") # 0-255 range
local br2=$(calculate_brightness "$hex2") # 0-255 range
# Ensure br1 is the lighter color (higher brightness)
if [ $br1 -lt $br2 ]; then
local temp=$br1
br1=$br2
br2=$temp
fi
# Approximate contrast ratio scaled by 100
# Add offset to avoid division by zero and approximate WCAG +0.05 behavior
echo $(((br1 + 13) * 100 / (br2 + 13)))
}
# Check if two colors meet minimum contrast threshold
# Usage: meets_contrast_threshold <ratio> <threshold>
# Both ratio and threshold should be scaled by 100 (e.g., 300 = 3:1)
meets_contrast_threshold() {
local ratio="$1" # Ratio scaled by 100 (from calculate_contrast_ratio)
local threshold="$2" # Threshold scaled by 100 (300=3:1, 450=4.5:1, 700=7:1)
[ $ratio -ge $threshold ]
}
# Calculate color distance (euclidean in RGB space) # Calculate color distance (euclidean in RGB space)
color_distance() { color_distance() {
local hex1="$1" local hex1="$1"
@@ -229,38 +258,30 @@ extract_theme_data() {
fi fi
done done
# Sort by distance and get the closest color for code background
local -a closest_to_bg
readarray -t closest_to_bg < <(printf '%s\n' "${bg_distances[@]}" | sort -n | head -1 | cut -d: -f2)
# All background variations use the same as primary background # All background variations use the same as primary background
local bg_primary_alt="$bg_color" local bg_primary_alt="$bg_color"
local bg_secondary="$bg_color" local bg_secondary="$bg_color"
local bg_secondary_alt="$bg_color" local bg_secondary_alt="$bg_color"
# Code block background uses the closest different color # Generate code background color that will contrast with foreground text
local code_bg="${closest_to_bg[0]}" read -r r g b <<<"$(hex_to_rgb "$bg_color")"
if [ $bg_brightness -gt 127 ]; then
# If no different color available, create a subtle variant for code blocks r=$((r - 10))
if [ -z "$code_bg" ]; then g=$((g - 10))
read -r r g b <<<"$(hex_to_rgb "$bg_color")" b=$((b - 10))
if [ $bg_brightness -gt 127 ]; then else
r=$((r - 10)) r=$((r + 15))
g=$((g - 10)) g=$((g + 15))
b=$((b - 10)) b=$((b + 15))
else
r=$((r + 15))
g=$((g + 15))
b=$((b + 15))
fi
[ $r -lt 0 ] && r=0
[ $r -gt 255 ] && r=255
[ $g -lt 0 ] && g=0
[ $g -gt 255 ] && g=255
[ $b -lt 0 ] && b=0
[ $b -gt 255 ] && b=255
code_bg=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
fi fi
[ $r -lt 0 ] && r=0
[ $r -gt 255 ] && r=255
[ $g -lt 0 ] && g=0
[ $g -gt 255 ] && g=255
[ $b -lt 0 ] && b=0
[ $b -gt 255 ] && b=255
code_bg=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
# Find closest color to foreground for code block text # Find closest color to foreground for code block text
local code_fg="" local code_fg=""
@@ -345,6 +366,22 @@ extract_theme_data() {
border_color=$(printf "#%02x%02x%02x" "$r" "$g" "$b") border_color=$(printf "#%02x%02x%02x" "$r" "$g" "$b")
fi fi
# Set text colors for muted/faint based on contrast
local text_muted_color="$border_color"
local text_faint_color="$border_color"
# Validate border color contrast against background
# Represents a 3:1 WCAG contrast ratio
local ideal_contrast_ratio=300
local border_contrast=$(calculate_contrast_ratio "$border_color" "$bg_color")
if ! meets_contrast_threshold "$border_contrast" "$ideal_contrast_ratio"; then
# Override text colors for readability, keep border color for visibility
text_muted_color="$fg_color"
text_faint_color="$fg_color"
fi
# Get unique colors array (without bg/fg) sorted by frequency # Get unique colors array (without bg/fg) sorted by frequency
local -a unique_colors local -a unique_colors
readarray -t unique_colors < <(echo "$filtered_data" | sort_colors_by_frequency) readarray -t unique_colors < <(echo "$filtered_data" | sort_colors_by_frequency)
@@ -409,8 +446,8 @@ extract_theme_data() {
--text-mark: ${color_slots[7]}; --text-mark: ${color_slots[7]};
--interactive-accent: ${color_slots[8]}; --interactive-accent: ${color_slots[8]};
--blockquote-border: ${color_slots[9]}; --blockquote-border: ${color_slots[9]};
--text-muted: $border_color; /* Use border color for muted text */ --text-muted: $text_muted_color; /* Use text-specific color for muted text */
--text-faint: $border_color; /* Use border color for faint text */ --text-faint: $text_faint_color; /* Use text-specific color for faint text */
/* Additional mappings */ /* Additional mappings */
--text-accent: var(--interactive-accent); --text-accent: var(--interactive-accent);
+11
View File
@@ -4,6 +4,17 @@ 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 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
gum style --border normal --border-foreground 6 --padding "1 2" --margin "1 0" \
"Ready to update Omarchy?" \
"" \
"• You cannot stop the update once you start!" \
"• Make sure you're not on battery power or have sufficient charge"
if ! gum confirm --default=false "Continue with update?"; then
echo "Update cancelled"
exit 0
fi
omarchy-snapshot create || [ $? -eq 127 ] omarchy-snapshot create || [ $? -eq 127 ]
omarchy-update-git omarchy-update-git
omarchy-update-perform omarchy-update-perform
+12
View File
@@ -0,0 +1,12 @@
#!/bin/bash
# Ensure we have the omarchy-keyring and it's populated
if omarchy-pkg-missing omarchy-keyring || ! sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 &>/dev/null; then
sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
sudo pacman -Sy
omarchy-pkg-add omarchy-keyring
sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571
fi
+2
View File
@@ -2,6 +2,8 @@
set -e set -e
omarchy-update-time
omarchy-update-keyring
omarchy-update-available-reset omarchy-update-available-reset
omarchy-update-system-pkgs omarchy-update-system-pkgs
omarchy-migrate omarchy-migrate
+1 -1
View File
@@ -23,7 +23,7 @@ if pacman -Qem >/dev/null; then
fi fi
fi fi
orphans=$(pacman -Qtdq) orphans=$(pacman -Qtdq || true)
if [[ -n $orphans ]]; then if [[ -n $orphans ]]; then
echo -e "\e[32m\nRemove orphan system packages\e[0m" echo -e "\e[32m\nRemove orphan system packages\e[0m"
for pkg in $orphans; do for pkg in $orphans; do
File renamed without changes.
+1 -1
View File
@@ -30,7 +30,7 @@ else
fi fi
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then if [[ ${#APP_NAMES[@]} -eq 0 ]]; then
echo "You must provide web app names." echo "You must select at least one web app to remove."
exit 1 exit 1
fi fi
+2
View File
@@ -0,0 +1,2 @@
TriggerKey=
PastePrimaryKey=
+4 -4
View File
@@ -17,11 +17,11 @@ gtk-toolbar-style = flat
# Cursor styling # Cursor styling
cursor-style = "block" cursor-style = "block"
cursor-style-blink = false cursor-style-blink = false
shell-integration-features = no-cursor
# Cursor styling + SSH session terminfo
# (all shell integration options must be passed together)
shell-integration-features = no-cursor,ssh-env
# Keyboard bindings # Keyboard bindings
keybind = shift+insert=paste_from_clipboard keybind = shift+insert=paste_from_clipboard
keybind = control+insert=copy_to_clipboard keybind = control+insert=copy_to_clipboard
# SSH session terminfo
shell-integration-features = ssh-env
+28
View File
@@ -0,0 +1,28 @@
# See https://git-scm.com/docs/git-config
[alias]
co = checkout
br = branch
ci = commit
st = status
[init]
defaultBranch = master
[pull]
rebase = true # Rebase (instead of merge) on pull
[push]
autoSetupRemote = true # Automatically set upstream branch on push
[diff]
algorithm = histogram # Clearer diffs on moved/edited lines
colorMoved = plain # Highlight moved blocks in diffs
mnemonicPrefix = true # More intuitive refs in diff output
[commit]
verbose = true # Include diff comment in commit message template
[column]
ui = auto # Output in columns when possible
[branch]
sort = -committerdate # Sort branches by most recent commit first
[tag]
sort = -version:refname # Sort version numbers as you would expect
[rerere]
enabled = true # Record and reuse conflict resolutions
autoupdate = true # Apply stored conflict resolutions automatically
+1 -1
View File
@@ -12,7 +12,7 @@ bindd = SUPER SHIFT, T, Activity, exec, $terminal -e btop
bindd = SUPER SHIFT, D, Docker, exec, $terminal -e lazydocker 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, 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, 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, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password 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 # If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
+2 -1
View File
@@ -2,9 +2,10 @@
# https://wiki.hyprland.org/Configuring/Variables/#general # https://wiki.hyprland.org/Configuring/Variables/#general
general { general {
# No gaps between windows # No gaps between windows or borders
# gaps_in = 0 # gaps_in = 0
# gaps_out = 0 # gaps_out = 0
# border_size = 0
# Use master layout instead of dwindle # Use master layout instead of dwindle
# layout = master # layout = master
+2
View File
@@ -0,0 +1,2 @@
[binds]
<Ctrl+p> = exec lp $imv_current_file
+1 -1
View File
@@ -2,7 +2,7 @@
# Ensure Omarchy bins are in the path # Ensure Omarchy bins are in the path
export OMARCHY_PATH=$HOME/.local/share/omarchy export OMARCHY_PATH=$HOME/.local/share/omarchy
export PATH=$OMARCHY_PATH/bin/:$PATH export PATH=$OMARCHY_PATH/bin:$PATH
# Set default terminal and editor # Set default terminal and editor
source ~/.config/uwsm/default source ~/.config/uwsm/default
-104
View File
@@ -1,28 +1,12 @@
force_keyboard_focus = true # forces keyboard forcus to stay in Walker force_keyboard_focus = true # forces keyboard forcus to stay in Walker
close_when_open = true # close walker when invoking while already opened
selection_wrap = true # wrap list if at bottom or top selection_wrap = true # wrap list if at bottom or top
click_to_close = true # closes walker if clicking outside of the main content area
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
exact_search_prefix = "'" # disable fuzzy searching
theme = "omarchy-default" # theme to use theme = "omarchy-default" # theme to use
disable_mouse = false # disable mouse (on input and list only)
additional_theme_location = "~/.local/share/omarchy/default/walker/themes/" additional_theme_location = "~/.local/share/omarchy/default/walker/themes/"
[shell]
anchor_top = true
anchor_bottom = true
anchor_left = true
anchor_right = true
[placeholders] [placeholders]
"default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other" "default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
[keybinds] [keybinds]
close = ["Escape"]
next = ["Down"]
previous = ["Up"]
toggle_exact = ["ctrl e"]
resume_last_query = ["ctrl r"]
quick_activate = [] quick_activate = []
[providers] [providers]
@@ -31,11 +15,6 @@ default = [
"menus", "menus",
"websearch", "websearch",
] # providers to be queried by default ] # providers to be queried by default
empty = ["desktopapplications"] # providers to be queried when query is empty
max_results = 50 # global max results
[providers.sets] # define your own defaults/empty sets of providers
[providers.max_results_provider] # define max results per provider in here
[[providers.prefixes]] [[providers.prefixes]]
prefix = "/" prefix = "/"
@@ -60,86 +39,3 @@ provider = "websearch"
[[providers.prefixes]] [[providers.prefixes]]
prefix = "$" prefix = "$"
provider = "clipboard" provider = "clipboard"
[providers.actions] # This will be MERGED/OVEWRITTEN with what the user specifies
dmenu = [{ action = "select", default = true, bind = "Return" }]
providerlist = [
{ action = "activate", default = true, bind = "Return", after = "ClearReload" },
]
bluetooth = [
{ action = "find", global = true, bind = "ctrl f", after = "AsyncClearReload" },
{ action = "trust", bind = "ctrl t", after = "AsyncReload" },
{ action = "untrust", bind = "ctrl t", after = "AsyncReload" },
{ action = "pair", bind = "Return", after = "AsyncReload" },
{ action = "remove", bind = "ctrl d", after = "AsyncReload" },
{ action = "connect", bind = "Return", after = "AsyncReload" },
{ action = "disconnect", bind = "Return", after = "AsyncReload" },
]
archlinuxpkgs = [
{ action = "install", bind = "Return", default = true },
{ action = "remove", bind = "Return" },
]
calc = [
{ action = "copy", default = true, bind = "Return" },
{ action = "delete", bind = "ctrl d", after = "AsyncReload" },
{ action = "save", bind = "ctrl s", after = "AsyncClearReload" },
]
websearch = [
{ action = "search", default = true, bind = "Return" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
]
desktopapplications = [
{ action = "start", default = true, bind = "Return" },
{ action = "start:keep", label = "open+next", bind = "shift Return", after = "KeepOpen" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "AsyncReload" },
{ action = "pin", bind = "ctrl p", after = "AsyncReload" },
{ action = "unpin", bind = "ctrl p", after = "AsyncReload" },
{ action = "pinup", bind = "ctrl n", after = "AsyncReload" },
{ action = "pindown", bind = "ctrl m", after = "AsyncReload" },
]
files = [
{ action = "open", default = true, bind = "Return" },
{ action = "opendir", label = "open dir", bind = "ctrl Return" },
{ action = "copypath", label = "copy path", bind = "ctrl shift c" },
{ action = "copyfile", label = "copy file", bind = "ctrl c" },
]
todo = [
{ action = "save", default = true, bind = "Return", after = "ClearReload" },
{ action = "delete", bind = "ctrl d", after = "ClearReload" },
{ action = "active", bind = "Return", after = "ClearReload" },
{ action = "inactive", bind = "Return", after = "ClearReload" },
{ action = "done", bind = "ctrl f", after = "ClearReload" },
{ action = "clear", bind = "ctrl x", after = "ClearReload", global = true },
]
runner = [
{ action = "run", default = true, bind = "Return" },
{ action = "runterminal", label = "run in terminal", bind = "shift Return" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
]
symbols = [
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
]
unicode = [
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
{ action = "erase_history", label = "clear hist", bind = "ctrl h", after = "Reload" },
]
clipboard = [
{ action = "copy", default = true, bind = "Return" },
{ action = "remove", bind = "ctrl d", after = "ClearReload" },
{ action = "remove_all", global = true, label = "clear", bind = "ctrl shift d", after = "ClearReload" },
{ action = "toggle_images", global = true, label = "toggle images", bind = "ctrl i", after = "ClearReload" },
{ action = "edit", bind = "ctrl o" },
]
+1 -1
View File
@@ -50,7 +50,7 @@
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update", "on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
"tooltip-format": "Omarchy update available", "tooltip-format": "Omarchy update available",
"signal": 7, "signal": 7,
"interval": 3600 "interval": 21600
}, },
"cpu": { "cpu": {
+21 -14
View File
@@ -1,19 +1,26 @@
# File system # File system
alias ls='eza -lh --group-directories-first --icons=auto' if command -v eza &> /dev/null; then
alias lsa='ls -a' alias ls='eza -lh --group-directories-first --icons=auto'
alias lt='eza --tree --level=2 --long --icons --git' alias lsa='ls -a'
alias lta='lt -a' alias lt='eza --tree --level=2 --long --icons --git'
alias lta='lt -a'
fi
alias ff="fzf --preview 'bat --style=numbers --color=always {}'" alias ff="fzf --preview 'bat --style=numbers --color=always {}'"
alias cd="zd"
zd() { if command -v zoxide &> /dev/null; then
if [ $# -eq 0 ]; then alias cd="zd"
builtin cd ~ && return zd() {
elif [ -d "$1" ]; then if [ $# -eq 0 ]; then
builtin cd "$1" builtin cd ~ && return
else elif [ -d "$1" ]; then
z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found" builtin cd "$1"
fi else
} z "$@" && printf "\U000F17A9 " && pwd || echo "Error: Directory not found"
fi
}
fi
open() { open() {
xdg-open "$@" >/dev/null 2>&1 & xdg-open "$@" >/dev/null 2>&1 &
} }
+7 -4
View File
@@ -1,6 +1,9 @@
# Fixing popup size issue # JetBrains windows default size
windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1 windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$
# Fix tab dragging (always have a single space character as their title) # Fix tab dragging (tab titles are just one space)
windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$ windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$
windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$
# Allow dialogs (like "Send usage statistics") to be focusable and clickable
windowrule = unset,nofocus,class:^(.*jetbrains.*)$,title:^$
windowrule = unset,noinitialfocus,class:^(.*jetbrains.*)$,title:^$
+1 -1
View File
@@ -4,7 +4,7 @@ windowrule = center, tag:floating-window
windowrule = size 800 600, tag:floating-window windowrule = size 800 600, tag:floating-window
windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float)
windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files) windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)
windowrule = float, class:org.gnome.Calculator windowrule = float, class:org.gnome.Calculator
# Fullscreen screensaver # Fullscreen screensaver
+4
View File
@@ -8,3 +8,7 @@ exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = omarchy-cmd-first-run exec-once = omarchy-cmd-first-run
exec-once = uwsm-app -- elephant exec-once = uwsm-app -- elephant
exec-once = uwsm-app -- walker --gapplication-service exec-once = uwsm-app -- walker --gapplication-service
# Slow app launch fix -- set systemd vars
exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1)
exec-once = dbus-update-activation-environment --systemd --all
+4 -4
View File
@@ -1,5 +1,5 @@
# Copy / Paste # Copy / Paste
bindd = SUPER, C, Copy, sendshortcut, CTRL, Insert, bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Paste, sendshortcut, SHIFT, Insert, bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Cut, sendshortcut, CTRL, X, bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
bindd = SUPER CTRL, V, Clipboard, exec, omarchy-launch-walker -m clipboard bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard
+15 -13
View File
@@ -1,22 +1,22 @@
# Close windows # Close windows
bindd = SUPER, W, Close active window, killactive, bindd = SUPER, W, Close window, killactive,
bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-hyprland-window-close-all bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all
# Control tiling # Control tiling
bindd = SUPER, J, Toggle split, togglesplit, # dwindle bindd = SUPER, J, Toggle window split, togglesplit, # dwindle
bindd = SUPER, P, Pseudo window, pseudo, # dwindle bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER, T, Toggle floating, togglefloating, bindd = SUPER, T, Toggle window floating/tiling, togglefloating,
bindd = SUPER, F, Force full screen, fullscreen, 0 bindd = SUPER, F, Full screen, fullscreen, 0
bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2 bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2
bindd = SUPER ALT, F, Full width, fullscreen, 1 bindd = SUPER ALT, F, Full width, fullscreen, 1
# Move focus with SUPER + arrow keys # Move focus with SUPER + arrow keys
bindd = SUPER, LEFT, Move focus left, movefocus, l bindd = SUPER, LEFT, Move window focus left, movefocus, l
bindd = SUPER, RIGHT, Move focus right, movefocus, r bindd = SUPER, RIGHT, Move window focus right, movefocus, r
bindd = SUPER, UP, Move focus up, movefocus, u bindd = SUPER, UP, Move window focus up, movefocus, u
bindd = SUPER, DOWN, Move focus down, movefocus, d bindd = SUPER, DOWN, Move window focus down, movefocus, d
# Switch workspaces with SUPER + [0-9] # Switch workspaces with SUPER + [1-9]
bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 bindd = SUPER, code:10, Switch to workspace 1, workspace, 1
bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 bindd = SUPER, code:11, Switch to workspace 2, workspace, 2
bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 bindd = SUPER, code:12, Switch to workspace 3, workspace, 3
@@ -26,9 +26,8 @@ bindd = SUPER, code:15, Switch to workspace 6, workspace, 6
bindd = SUPER, code:16, Switch to workspace 7, workspace, 7 bindd = SUPER, code:16, Switch to workspace 7, workspace, 7
bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 bindd = SUPER, code:17, Switch to workspace 8, workspace, 8
bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 bindd = SUPER, code:18, Switch to workspace 9, workspace, 9
bindd = SUPER, code:19, Switch to workspace 10, workspace, 10
# Move active window to a workspace with SUPER + SHIFT + [0-9] # Move active window to a workspace with SUPER + SHIFT + [1-9]
bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1
bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2
bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3
@@ -38,7 +37,10 @@ bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6
bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7
bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8
bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9
bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10
# Control scratchpad
bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad
bindd = SUPER ALT, S, Move window to scratchpad, movetoworkspacesilent, special:scratchpad
# TAB between workspaces # TAB between workspaces
bindd = SUPER, TAB, Next workspace, workspace, e+1 bindd = SUPER, TAB, Next workspace, workspace, e+1
+4 -4
View File
@@ -2,13 +2,13 @@
# Do not make changes here, but bring them to tiling-v2.conf instead. # Do not make changes here, but bring them to tiling-v2.conf instead.
# Close windows # Close windows
bindd = SUPER, W, Close active window, killactive, bindd = SUPER, W, Close window, killactive,
bindd = CTRL ALT, DELETE, Close all Windows, exec, omarchy-hyprland-window-close-all bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all
# Control tiling # Control tiling
bindd = SUPER, J, Toggle split, togglesplit, # dwindle bindd = SUPER, J, Toggle window split, togglesplit, # dwindle
bindd = SUPER, P, Pseudo window, pseudo, # dwindle bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER SHIFT, V, Toggle floating, togglefloating, bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating,
bindd = SHIFT, F11, Force full screen, fullscreen, 0 bindd = SHIFT, F11, Force full screen, fullscreen, 0
bindd = ALT, F11, Full width, fullscreen, 1 bindd = ALT, F11, Full width, fullscreen, 1
+5 -5
View File
@@ -2,7 +2,7 @@
bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker bindd = SUPER, SPACE, Launch apps, exec, omarchy-launch-walker
bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols bindd = SUPER CTRL, E, Emoji picker, exec, omarchy-launch-walker -m symbols
bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system bindd = SUPER, ESCAPE, System menu, exec, omarchy-menu system
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings
bindd = , XF86Calculator, Calculator, exec, gnome-calculator bindd = , XF86Calculator, Calculator, exec, gnome-calculator
@@ -10,7 +10,7 @@ bindd = , XF86Calculator, Calculator, exec, gnome-calculator
# Aesthetics # Aesthetics
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar 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 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 SHIFT CTRL, SPACE, Theme menu, 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, 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 bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-workspace-toggle-gaps
@@ -31,10 +31,10 @@ 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 bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, omarchy-cmd-apple-display-brightness +60000
# Captures # Captures
bindd = , PRINT, Screenshot with Editing, exec, omarchy-cmd-screenshot bindd = , PRINT, Screenshot with editing, exec, omarchy-cmd-screenshot
bindd = SHIFT, PRINT, Screenshot to Clipboard, exec, omarchy-cmd-screenshot smart clipboard bindd = SHIFT, PRINT, Screenshot to clipboard, exec, omarchy-cmd-screenshot smart clipboard
bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord bindd = ALT, PRINT, Screenrecording, exec, omarchy-menu screenrecord
bindd = SUPER, PRINT, Color picking, exec, pkill hyprpicker || hyprpicker -a bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
# File sharing # File sharing
bindd = SUPER CTRL, S, Share, exec, omarchy-menu share bindd = SUPER CTRL, S, Share, exec, omarchy-menu share
+8
View File
@@ -120,9 +120,17 @@ misc {
disable_splash_rendering = true disable_splash_rendering = true
focus_on_activate = true focus_on_activate = true
anr_missed_pings = 3 anr_missed_pings = 3
new_window_takes_over_fullscreen = 1
} }
# https://wiki.hypr.land/Configuring/Variables/#cursor # https://wiki.hypr.land/Configuring/Variables/#cursor
cursor { cursor {
hide_on_key_press = true hide_on_key_press = true
} }
# Style Gum confirm to match terminal theme
env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan
env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black
env = GUM_CONFIRM_SELECTED_BACKGROUND,2 # Green
env = GUM_CONFIRM_UNSELECTED_FOREGROUND,0 # Black
env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey
+1
View File
@@ -30,3 +30,4 @@ run_logged $OMARCHY_INSTALL/config/hardware/fix-bcm43xx.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-suspend-nvme.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-suspend-nvme.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-surface-keyboard.sh
-12
View File
@@ -1,15 +1,3 @@
# Ensure git settings live under ~/.config
mkdir -p ~/.config/git
touch ~/.config/git/config
# Set common git aliases
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global pull.rebase true
git config --global init.defaultBranch master
# Set identification from install inputs # Set identification from install inputs
if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then
git config --global user.name "$OMARCHY_USER_NAME" git config --global user.name "$OMARCHY_USER_NAME"
@@ -0,0 +1,23 @@
# Detect Surface devices which require additional modules for the keyboard to work.
# Module list derived from Chris McLeod's manual install instructions
# https://chrismcleod.dev/blog/installing-arch-linux-with-secure-boot-on-a-microsoft-surface-laptop-studio/
product_name="$(cat /sys/class/dmi/id/product_name 2>/dev/null)"
if [[ "$product_name" =~ Surface ]]; then
echo "Detected Surface Device"
# Modules already exist in the rootfs for the default kernel.
if [[ "$product_name" != "Surface Laptop 3" ]]; then
echo "Untested Surface Device: $product_name, additional modules may be required for your device."
fi
echo "Attempting to autodetect required pinctrl module"
pinctrl_module=$(lsmod | grep pinctrl_ | cut -f 1 -d" ")
if [[ -z "$pinctrl_module" ]]; then
echo "Failed to autodetect pinctrl module."
else
echo "Detected pinctrl module: $pinctrl_module"
fi
echo "MODULES=(${pinctrl_module} surface_aggregator surface_aggregator_registry surface_aggregator_hub surface_hid_core surface_hid surface_kbd intel_lpss_pci 8250_dw)" | sudo tee /etc/mkinitcpio.conf.d/surface_device_modules.conf >/dev/null
fi
-3
View File
@@ -6,9 +6,6 @@ sudo ufw default allow outgoing
sudo ufw allow 53317/udp sudo ufw allow 53317/udp
sudo ufw allow 53317/tcp sudo ufw allow 53317/tcp
# Allow SSH in
sudo ufw allow 22/tcp
# Allow Docker containers to use DNS on host # Allow Docker containers to use DNS on host
sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns' sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns'
+1
View File
@@ -1 +1,2 @@
# Includes lazyvim and the themes
omarchy-nvim-setup omarchy-nvim-setup
-2
View File
@@ -22,8 +22,6 @@ fi
if sudo test -f /etc/sudoers.d/99-omarchy-installer; then if sudo test -f /etc/sudoers.d/99-omarchy-installer; then
sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null
echo
echo_in_style "Remember to remove USB installer!"
fi fi
# Exit gracefully if user chooses not to reboot # Exit gracefully if user chooses not to reboot
+7
View File
@@ -6,6 +6,13 @@ if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist
sudo pacman-key --recv-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 --keyserver keys.openpgp.org
sudo pacman-key --lsign-key 40DFB630FF42BCFFB047046CF0134EE680CAC571
sudo pacman -Sy
sudo pacman -S --noconfirm --needed omarchy-keyring
# Refresh all repos # Refresh all repos
sudo pacman -Syu --noconfirm sudo pacman -Syu --noconfirm
fi fi
-3
View File
@@ -1,3 +0,0 @@
echo "Fix opening in nvim from files manager"
cp -f $OMARCHY_PATH/applications/nvim.desktop ~/.local/share/applications/nvim.desktop
+9
View File
@@ -0,0 +1,9 @@
echo "Add default Ctrl+P binding for imv; backup existing config if present"
if [ -f ~/.config/imv/config ]; then
cp ~/.config/imv/config ~/.config/imv/config.bak.$(date +%s)
else
mkdir -p ~/.config/imv
fi
cp ~/.local/share/omarchy/config/imv/config ~/.config/imv/config
+7
View File
@@ -0,0 +1,7 @@
echo "Ensure nvim started from app launcher always starts nvim not $EDITOR"
if [ -f /usr/share/applications/nvim.desktop ]; then
rm ~/.local/share/applications/nvim.desktop
ln -s /usr/share/applications/nvim.desktop ~/.local/share/applications/nvim.desktop
update-desktop-database ~/.local/share/applications
fi
+3
View File
@@ -0,0 +1,3 @@
echo "Disable Nvim news alerts box"
cp /usr/share/omarchy-nvim/config/lua/plugins/disable-news-alert.lua ~/.config/nvim/lua/plugins/disable-news-alert.lua
+6
View File
@@ -0,0 +1,6 @@
echo "Turn off fcitx5 clipboard that is interferring with other applications"
mkdir -p ~/.config/fcitx5/conf
cp $OMARCHY_PATH/config/fcitx5/conf/clipboard.conf ~/.config/fcitx5/conf/
omarchy-restart-xcompose
+1 -1
View File
@@ -1 +1 @@
3.1.2 3.1.4