79 Commits

Author SHA1 Message Date
3d871adc4a Merge pull request #60 from basecamp/dev
Omarchy 1.1
2025-07-04 16:49:44 -07:00
59b561a3ac Don't actually install a specific ruby version
Compilation slows down the install too much, and very often projects
specify something specific.
2025-07-04 16:23:18 -07:00
e166cde9d0 Don't let this stop it 2025-07-04 16:20:56 -07:00
fcaf61162c Won't be set in that shell 2025-07-04 16:20:30 -07:00
b15166cce0 Use clipse bin as well 2025-07-04 16:18:50 -07:00
3c1e7e5b10 Switch to bin versions where possible 2025-07-04 16:10:58 -07:00
ce875b6fee Be resilient to power profile not existing 2025-07-04 16:08:04 -07:00
63d4d6d302 Only ask if we don't have the identification already 2025-07-04 16:03:19 -07:00
e3b211efae Fix missing directory 2025-07-04 16:00:28 -07:00
211b99320b Add localsend-bin
No rust conflicts! Closes #51, #46
2025-07-04 15:54:11 -07:00
1d90a15c16 Add missing docker config migration 2025-07-04 15:49:04 -07:00
648d061b3c Fix missing dir for /etc/docker 2025-07-04 15:47:38 -07:00
3d8c15a397 Correct name 2025-07-04 15:44:28 -07:00
559e628ccf Merge branch 'master' into dev 2025-07-04 15:38:45 -07:00
ea37c7ccb5 Use custom branch if $OMARCHY_REF has been specified 2025-07-04 15:38:34 -07:00
c74ad0a013 Catch errors and offer a retry 2025-07-04 15:29:48 -07:00
5957da5ecb No confirm the removal 2025-07-04 15:24:36 -07:00
e4db074d38 Add migration to switch from vlc to mpv 2025-07-04 15:22:04 -07:00
56ec1351d3 Switch default video player from vlc to mpv
It's faster and looks better on hyprland
2025-07-04 15:20:20 -07:00
89ee15f5fb Excess CR 2025-07-04 15:05:34 -07:00
985d137d71 Add a fingerprint setup script
Follow-up to #54
2025-07-04 15:05:07 -07:00
a736c95fdc Turn on fingerprint authentication for hyprlock
Still requires setting up fprint, but we explain that in the manual.
Closes #54.
2025-07-04 14:51:33 -07:00
3b755b09aa Use Chromium as the default browser
Prevents that warning on first start
2025-07-04 12:10:52 -07:00
1b26d75f3e Merge pull request #55 from c4software/patch-1
Improve keyboard layout compatibility
2025-07-04 11:55:03 -07:00
c53125b519 Merge pull request #58 from martinstork/toggle-wofi
Open and close wofi with the same binding
2025-07-04 11:51:34 -07:00
a4e6846cd1 Merge branch 'dev' into toggle-wofi 2025-07-04 11:51:24 -07:00
609c8ef84e Revert "Merge pull request #37 from prertik/nvim-switch-to-current-theme"
This reverts commit 79a8d34cc5, reversing
changes made to d05020b7c1.
2025-07-04 11:49:09 -07:00
79a8d34cc5 Merge pull request #37 from prertik/nvim-switch-to-current-theme
Be able to switch to current theme for neovim
2025-07-04 11:42:44 -07:00
0ab85263e2 Open and close wofi with the same binding 2025-07-04 20:27:51 +02:00
bf19025088 fix: use key codes instead of numeric values to support alternative keyboard layouts
Some layouts (like AZERTY or Bépo) do not provide direct access to number keys.
Using key codes improves compatibility across different keyboard configurations.
2025-07-04 17:59:13 +02:00
d05020b7c1 Include Google Messages as a web app too 2025-07-03 13:59:31 -07:00
5cb345ef28 Merge branch 'master' into dev 2025-07-03 13:50:36 -07:00
1a061cb427 Add Google Messages for RCS via Android
Great for SMS 2FA etc!
2025-07-03 13:38:50 -07:00
9a99e24d67 Tweak keybindings and include the ones in the defaults too 2025-07-03 13:14:42 -07:00
83210c6566 Merge pull request #42 from calvinludwig/feat/yayf-alias
Add yayf alias for easy package search
2025-07-03 12:47:40 -07:00
ebe4420c10 Merge pull request #44 from oca159/master
feat: add script to show keybindings
2025-07-03 12:38:40 -07:00
ea2053bd18 Prevent wofi from stack up
When hitting SUPER + space several times, a new instance of wofi is
launched each time and they stack upon each other. This change uses a
file lock to prevent starting several instances of wofi.

Thanks to everyone from this thread
https://www.reddit.com/r/archlinux/comments/m327pt/prevent_wofi_from_stacking_up/
2025-07-03 12:38:03 -07:00
f7ec407891 feat: add script to show keybindings 2025-07-03 13:09:15 -06:00
59b18ce5b8 add yayf alias 2025-07-03 10:14:22 -03:00
4f0271b588 Be able to switch to current theme
Additionally, check if the current theme is accessible
and loadable else, fallback to a default theme as to not
break the theme.

Signed-off-by: Pratik Karki <pratik@prertik.com>
2025-07-03 12:28:47 +05:45
6faa33f422 No transparency on image viewing 2025-07-02 22:16:15 -07:00
8c631250c2 Merge pull request #29 from iharsuvorau/wofi-fix
Prevent wofi from stacking up
2025-07-02 20:39:25 -07:00
d00e463eca Merge branch 'master' into dev 2025-07-02 20:07:51 -07:00
56ebe49468 Fix missing fd tool and bad alias 2025-07-02 20:07:45 -07:00
8df95b6fb3 Explain how to get this working 2025-07-02 20:06:42 -07:00
04b4c3c9a5 Install missing fd 2025-07-02 19:53:44 -07:00
e0a123d56e Merge branch 'master' into dev 2025-07-02 19:47:28 -07:00
863a1b0b3e Fix nvidia check 2025-07-02 16:21:52 -07:00
7100c41449 Prevent wofi from stack up
When hitting SUPER + space several times, a new instance of wofi is
launched each time and they stack upon each other. This change uses a
file lock to prevent starting several instances of wofi.

Thanks to everyone from this thread
https://www.reddit.com/r/archlinux/comments/m327pt/prevent_wofi_from_stacking_up/
2025-07-03 01:45:50 +03:00
e9a399173b Set a default branch name 2025-07-02 13:15:43 -07:00
14fe67e179 Merge pull request #13 from Kn0ax/master
Nvidia support for omarchy
2025-07-02 12:54:21 -07:00
e8c9a5ad49 remove defensive code 2025-07-01 21:52:49 +02:00
35aa002475 Merge pull request #20 from harilvfs/license
chore: add MIT license file
2025-06-30 16:42:20 -07:00
8d15510a0c Update LICENSE 2025-06-30 16:42:09 -07:00
3c07b541bd Good window defaults for gaming 2025-06-30 16:00:03 -07:00
f244be542f add license file 2025-07-01 00:47:40 +05:45
d6a44c24a7 remove unneeded comments 2025-06-30 20:53:36 +02:00
188d1c331a requested changes 2025-06-30 20:45:17 +02:00
cfa63fdc67 Add function to refresh xcompose after changes 2025-06-29 21:11:49 -07:00
da31736b9a Explain it 2025-06-29 19:01:48 -07:00
5e56279fee Float sound and bluetooth settings 2025-06-29 19:01:25 -07:00
504a7a85c2 Merge pull request #15 from 0xProt/master
chore: removed duplicated key in waybar battery config
2025-06-29 17:16:43 -07:00
b5dfaef8bb enable multilib (if not already) 2025-06-30 00:47:42 +02:00
8f68793f7c fix script path
meh, stupid me
2025-06-30 00:38:36 +02:00
86d9050420 chore: removed duplicated key in waybar battery config 2025-06-29 22:38:14 +01:00
fbd85990d0 [not tested] nvidia support
this commit tries to add nvidia suppport.
it's not tested yet.
2025-06-29 22:27:16 +02:00
3162a4cd5a This strategy didnt actually work, just use all 2025-06-29 12:50:53 -07:00
dedc08a76e Allow you to easily run all migrations by passing "all"
Helpful for testing or if something went wrong
2025-06-29 12:49:51 -07:00
d227a541f0 Add migration to fix the persistent workspaces in the waybar config 2025-06-29 12:39:22 -07:00
40cd9575d2 Merge pull request #10 from kennethgeerts/master
Fix for persistent workspaces shown in waybar
2025-06-29 12:35:07 -07:00
671f9c7882 Sleep on Super + Shift + Escape
And move restarting Hyprland to Super + Alt + Escape
2025-06-28 16:48:16 -07:00
6af496f394 Fix opacity 2025-06-28 16:30:43 -07:00
56f60adf6b Fix for persistent workspaces shown in waybar 2025-06-29 01:17:17 +02:00
9a8f4523e7 Fix that Chromium is now a capitalized class 2025-06-28 16:01:43 -07:00
18931a8fd3 Need to have the service available first 2025-06-28 15:50:19 -07:00
6842258031 Fix this 2025-06-28 11:51:11 -07:00
aa4fddf53f Run these again so the updated omarchy-update gets them too 2025-06-28 11:50:19 -07:00
07b89e0ad8 Only run this if we are missing bat 2025-06-28 11:48:08 -07:00
2a2a77685c Add migration system and fix bluetooth service + missing bat 2025-06-28 11:46:28 -07:00
39 changed files with 356 additions and 104 deletions

20
LICENSE Normal file
View File

@ -0,0 +1,20 @@
Copyright (c) David Heinemeier Hansson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -1,14 +0,0 @@
[Desktop Entry]
Version=1.0
Name=VLC media player
GenericName=Media player
Comment=Read, capture, broadcast your multimedia streams
Exec=env QT_SCALE_FACTOR=2 /usr/bin/vlc --started-from-file %U
TryExec=/usr/bin/vlc
Icon=vlc
Terminal=false
Type=Application
Categories=AudioVideo;Player;Recorder;
MimeType=application/ogg;application/x-ogg;audio/ogg;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/ogg;video/x-ogm;video/x-ogm+ogg;video/x-theora+ogg;video/x-theora;audio/x-speex;audio/opus;application/x-flac;audio/flac;audio/x-flac;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;audio/x-ms-wma;video/x-ms-asf;video/x-ms-asf-plugin;video/x-ms-asx;video/x-ms-wm;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvx;video/x-msvideo;audio/x-pn-windows-acm;video/divx;video/msvideo;video/vnd.divx;video/avi;video/x-avi;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/vnd.rn-realaudio;audio/x-pn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;audio/x-realaudio;video/vnd.rn-realvideo;audio/mpeg;audio/mpg;audio/mp1;audio/mp2;audio/mp3;audio/x-mp1;audio/x-mp2;audio/x-mp3;audio/x-mpeg;audio/x-mpg;video/mp2t;video/mpeg;video/mpeg-system;video/x-mpeg;video/x-mpeg2;video/x-mpeg-system;application/mpeg4-iod;application/mpeg4-muxcodetable;application/x-extension-m4a;application/x-extension-mp4;audio/aac;audio/m4a;audio/mp4;audio/x-m4a;audio/x-aac;video/mp4;video/mp4v-es;video/x-m4v;application/x-quicktime-media-link;application/x-quicktimeplayer;video/quicktime;application/x-matroska;audio/x-matroska;video/x-matroska;video/webm;audio/webm;audio/3gpp;audio/3gpp2;audio/AMR;audio/AMR-WB;video/3gp;video/3gpp;video/3gpp2;x-scheme-handler/mms;x-scheme-handler/mmsh;x-scheme-handler/rtsp;x-scheme-handler/rtp;x-scheme-handler/rtmp;x-scheme-handler/icy;x-scheme-handler/icyx;application/x-cd-image;x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-cdda;x-content/audio-player;application/ram;application/xspf+xml;audio/mpegurl;audio/x-mpegurl;audio/scpls;audio/x-scpls;text/google-video-pointer;text/x-google-video-pointer;video/vnd.mpegurl;application/vnd.apple.mpegurl;application/vnd.ms-asf;application/vnd.ms-wpl;application/sdp;audio/dv;video/dv;audio/x-aiff;audio/x-pn-aiff;video/x-anim;video/x-nsv;video/fli;video/flv;video/x-flc;video/x-fli;video/x-flv;audio/wav;audio/x-pn-au;audio/x-pn-wav;audio/x-wav;audio/x-adpcm;audio/ac3;audio/eac3;audio/vnd.dts;audio/vnd.dts.hd;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/vnd.dolby.mlp;audio/basic;audio/midi;audio/x-ape;audio/x-gsm;audio/x-musepack;audio/x-tta;audio/x-wavpack;audio/x-shorten;application/x-shockwave-flash;application/x-flash-video;misc/ultravox;image/vnd.rn-realpix;audio/x-it;audio/x-mod;audio/x-s3m;audio/x-xm;application/mxf;
X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb
Keywords=Player;Capture;DVD;Audio;Video;Server;Broadcast;

14
bin/omarchy-fingerprint-setup Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
yay -S --noconfirm --needed fprint
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\nKeep moving the finger around on sensor until the process completes.\n\e[0m"
sudo fprintd-enroll
echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Now you can use your fingerprint on the lock screen (Super + Escape).\e[0m"
else
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
fi

51
bin/omarchy-show-keybindings Executable file
View File

@ -0,0 +1,51 @@
#!/bin/bash
# A script to display Hyprland keybindings defined in your configuration
# using wofi for an interactive search menu.
USER_HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf"
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf"
# Process the configuration file to extract and format keybindings
# 1. `grep` finds all lines starting with 'bind' (allowing for leading spaces).
# 2. The first `sed` removes comments (anything after a '#').
# 3. `awk` does the heavy lifting of formatting the output.
# - It sets the field separator to a comma ','.
# - It removes the 'bind... =' part from the beginning of the line.
# - It joins the key combination (e.g., "SUPER + Q").
# - It joins the command that the key executes.
# - It prints everything in a nicely aligned format.
# 4. The final `sed` cleans up any leftover commas from the end of lines.
grep -h '^[[:space:]]*bind' "$HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" |
awk -F, '
{
# Strip trailing comments
sub(/#.*/, "");
# Remove the "bind... =" part and surrounding whitespace
sub(/^[[:space:]]*bind[^=]*=(\+[[:space:]])?(exec, )?[[:space:]]*/, "", $1);
# Combine the modifier and key (first two fields)
key_combo = $1 " + " $2;
# Clean up: strip leading "+" if present, trim spaces
gsub(/^[ \t]*\+?[ \t]*/, "", key_combo);
gsub(/[ \t]+$/, "", key_combo);
# Reconstruct the command from the remaining fields
action = "";
for (i = 3; i <= NF; i++) {
action = action $i (i < NF ? "," : "");
}
# Clean up trailing commas, remove leading "exec, ", and trim
sub(/,$/, "", action);
gsub(/(^|,)[[:space:]]*exec[[:space:]]*,?/, "", action);
gsub(/^[ \t]+|[ \t]+$/, "", action);
gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one
if (action != "") {
printf "%-35s → %s\n", key_combo, action;
}
}' |
flock --nonblock /tmp/.wofi.lock -c "wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical"

View File

@ -2,8 +2,13 @@
cd ~/.local/share/omarchy
# Remember the version we're at before upgrading
last_updated_at=$(git log -1 --format=%cd --date=unix)
if [[ $1 == "all" ]]; then
# Run all migrations
last_updated_at=1
else
# Remember the version we're at before upgrading
last_updated_at=$(git log -1 --format=%cd --date=unix)
fi
# Get the latest
git pull
@ -20,4 +25,4 @@ for file in migrations/*.sh; do
done
# Back to where we came from
cd -
cd - >/dev/null

View File

@ -16,5 +16,13 @@ echo -e "\nCloning Omarchy..."
rm -rf ~/.local/share/omarchy/
git clone https://github.com/basecamp/omarchy.git ~/.local/share/omarchy >/dev/null
# Use custom branch if instructed
if [[ -n "$OMARCHY_REF" ]]; then
echo -e "\eUsing branch: $OMARCHY_REF"
cd ~/.local/share/omarchy
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
cd -
fi
echo -e "\nInstallation starting..."
source ~/.local/share/omarchy/install.sh

View File

@ -27,10 +27,6 @@ source = ~/.config/omarchy/current/theme/hyprland.conf
# Extra env variables
env = GDK_SCALE,2 # Change to 1 if on a 1x display
# Extra env variables needed if running an NVIDIA GPU
# env = NVD_BACKEND,direct
# env = LIBVA_DRIVER_NAME,nvidia
# env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# Extra bindings
bind = SUPER, A, exec, $webapp="https://chatgpt.com"
@ -39,6 +35,7 @@ bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/"
bind = SUPER, E, exec, $webapp="https://app.hey.com"
bind = SUPER, Y, exec, $webapp="https://youtube.com/"
bind = SUPER SHIFT, G, exec, $webapp="https://web.whatsapp.com/"
bind = SUPER ALT, G, exec, $webapp="https://messages.google.com/web/conversations"
bind = SUPER, X, exec, $webapp="https://x.com/"
bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post"

View File

@ -32,7 +32,7 @@ input-field {
font_color = rgba(205,214,244,1.0)
placeholder_color = rgba(205,214,244,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(68, 157, 171, 1.0)
fail_text = Wrong
@ -40,3 +40,7 @@ input-field {
shadow_passes = 0
fade_on_empty = false
}
auth {
fingerprint:enabled = true
}

View File

@ -34,7 +34,7 @@
"9": "9",
"active": "󱓻"
},
"persistent_workspaces": {
"persistent-workspaces": {
"1": [],
"2": [],
"3": [],
@ -66,7 +66,6 @@
"on-click": "alacritty -e iwctl"
},
"battery": {
"interval": 5,
"format": "{capacity}% {icon}",
"format-discharging": "{icon}",
"format-charging": "{icon}",

View File

@ -33,3 +33,6 @@ alias r='rails'
alias gcm='git commit -m'
alias gcam='git commit -a -m'
alias gcad='git commit -a --amend'
# Find packages without leaving the terminal
alias yayf="yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75% | xargs -ro yay -S"

View File

@ -66,5 +66,11 @@ web2app-remove() {
rm "$ICON_PATH"
}
# Ensure changes to ~/.XCompose are immediately available
refresh-xcompose() {
pkill fcitx5
setsid fcitx5 &>/dev/null &
}
# Ensure that external keyboards that use an fn key has the F keys as the default
alias fix_fkeys='echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode'

View File

@ -10,16 +10,18 @@ bind = SUPER, G, exec, $messenger
bind = SUPER, O, exec, obsidian -disable-gpu
bind = SUPER, slash, exec, $passwordManager
bind = SUPER, space, exec, wofi --show drun --sort-order=alphabetical
bind = SUPER, space, exec, pkill wofi || wofi --show drun --sort-order=alphabetical
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/swaybg-next
bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-next
bind = SUPER, K, exec, ~/.local/share/omarchy/bin/omarchy-show-keybindings
bind = SUPER, W, killactive,
# End active session
bind = SUPER, ESCAPE, exec, hyprlock
bind = SUPER SHIFT, ESCAPE, exit,
bind = SUPER SHIFT, ESCAPE, exec, systemctl suspend
bind = SUPER ALT, ESCAPE, exit,
bind = SUPER CTRL, ESCAPE, exec, reboot
bind = SUPER SHIFT CTRL, ESCAPE, exec, systemctl poweroff
@ -35,28 +37,28 @@ bind = SUPER, up, movefocus, u
bind = SUPER, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10
bind = SUPER, code:10, workspace, 1
bind = SUPER, code:11, workspace, 2
bind = SUPER, code:12, workspace, 3
bind = SUPER, code:13, workspace, 4
bind = SUPER, code:14, workspace, 5
bind = SUPER, code:15, workspace, 6
bind = SUPER, code:16, workspace, 7
bind = SUPER, code:17, workspace, 8
bind = SUPER, code:18, workspace, 9
bind = SUPER, code:19, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER SHIFT, 9, movetoworkspace, 9
bind = SUPER SHIFT, 0, movetoworkspace, 10
bind = SUPER SHIFT, code:10, movetoworkspace, 1
bind = SUPER SHIFT, code:11, movetoworkspace, 2
bind = SUPER SHIFT, code:12, movetoworkspace, 3
bind = SUPER SHIFT, code:13, movetoworkspace, 4
bind = SUPER SHIFT, code:14, movetoworkspace, 5
bind = SUPER SHIFT, code:15, movetoworkspace, 6
bind = SUPER SHIFT, code:16, movetoworkspace, 7
bind = SUPER SHIFT, code:17, movetoworkspace, 8
bind = SUPER SHIFT, code:18, movetoworkspace, 9
bind = SUPER SHIFT, code:19, movetoworkspace, 10
# Swap active window with the one next to it with mainMod + SHIFT + arrow keys
bind = SUPER SHIFT, left, swapwindow, l

View File

@ -2,14 +2,21 @@
windowrule = suppressevent maximize, class:.*
# Force chromium into a tile to deal with --app bug
windowrule = tile, class:^(chromium)$
windowrule = tile, class:^(Chromium)$
# Float sound and bluetooth settings
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py)$
# Float Steam, fullscreen RetroArch
windowrule = float, class:^(steam)$
windowrule = fullscreen, class:^(com.libretro.RetroArch)$
# Just dash of opacity
windowrule = opacity 0.97 0.9, class:.*
windowrule = opacity 1 0.97, class:^(chromium|google-chrome|google-chrome-unstable)$
windowrule = opacity 0.97 0.9, initialClass:^(chrome-.*-Default)$ # web apps
windowrule = opacity 1 1, initialClass:^(chrome-youtube.*-Default)$ # Youtube
windowrule = opacity 1 1, class:^(zoom|vlc|org.kde.kdenlive|com.obsproject.Studio)$
windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable)$
windowrule = opacity 1 1, initialTitle:^(youtube.com_/)$ # Youtube
windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv)$
windowrule = opacity 1 1, class:^(com.libretro.RetroArch|steam)$
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0

View File

@ -1,3 +1,9 @@
# Exit immediately if a command exits with a non-zero status
set -e
# Give people a chance to retry running the installation
trap 'echo "Omarchy installation failed! You can retry by running: source ~/.local/share/omarchy/install.sh"' ERR
# Install everything
for f in ~/.local/share/omarchy/install/*.sh; do source "$f"; done

View File

@ -1,6 +1,9 @@
# Copy over Omarchy configs
cp -R ~/.local/share/omarchy/config/* ~/.config/
# Ensure application directory exists for update-desktop-database
mkdir -p ~/.local/share/applications
# Use default bashrc from Omarchy
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
@ -18,6 +21,7 @@ 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
if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then

View File

@ -1,5 +1,5 @@
# Turn on bluetooth by default
sudo systemctl enable --now bluetooth.service
# Install bluetooth controls
yay -S --noconfirm --needed blueberry
# Turn on bluetooth by default
sudo systemctl enable --now bluetooth.service

View File

@ -1,8 +1,9 @@
yay -S --noconfirm --needed \
brightnessctl playerctl pamixer pavucontrol wireplumber \
fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool \
wl-clip-persist clipse \
wl-clip-persist clipse-bin \
nautilus sushi gnome-calculator \
1password-beta 1password-cli \
chromium vlc \
evince imv
chromium mpv \
evince imv \
localsend-bin

View File

@ -3,4 +3,4 @@ yay -S --noconfirm --needed \
imagemagick \
mariadb-libs postgresql-libs \
github-cli \
lazygit lazydocker
lazygit lazydocker-bin

View File

@ -1,6 +1,7 @@
yay -S --noconfirm --needed docker docker-compose
# Limit log size to avoid running out of disk
sudo mkdir -p /etc/docker
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json
# Start Docker automatically

View File

@ -4,4 +4,4 @@ yay -S --noconfirm --needed \
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
# Start Hyprland on first session
echo "[[ -z \$DISPLAY && \$(tty) == /dev/tty1 ]] && exec Hyprland" >~/.bash_profile
echo "[[ -z \$DISPLAY && \$(tty) == /dev/tty1 ]] && exec Hyprland" >~/.bash_profile

View File

@ -11,19 +11,24 @@ xdg-mime default imv.desktop image/tiff
# Open PDFs with the Document Viewer
xdg-mime default org.gnome.Evince.desktop application/pdf
# Open video files with VLC
xdg-mime default vlc.desktop video/mp4
xdg-mime default vlc.desktop video/x-msvideo
xdg-mime default vlc.desktop video/x-matroska
xdg-mime default vlc.desktop video/x-flv
xdg-mime default vlc.desktop video/x-ms-wmv
xdg-mime default vlc.desktop video/mpeg
xdg-mime default vlc.desktop video/ogg
xdg-mime default vlc.desktop video/webm
xdg-mime default vlc.desktop video/quicktime
xdg-mime default vlc.desktop video/3gpp
xdg-mime default vlc.desktop video/3gpp2
xdg-mime default vlc.desktop video/x-ms-asf
xdg-mime default vlc.desktop video/x-ogm+ogg
xdg-mime default vlc.desktop video/x-theora+ogg
xdg-mime default vlc.desktop application/ogg
# Use Chromium as the default browser
xdg-settings set default-web-browser chromium.desktop
xdg-mime default chromium.desktop x-scheme-handler/http
xdg-mime default chromium.desktop x-scheme-handler/https
# Open video files with mpv
xdg-mime default mpv.desktop video/mp4
xdg-mime default mpv.desktop video/x-msvideo
xdg-mime default mpv.desktop video/x-matroska
xdg-mime default mpv.desktop video/x-flv
xdg-mime default mpv.desktop video/x-ms-wmv
xdg-mime default mpv.desktop video/mpeg
xdg-mime default mpv.desktop video/ogg
xdg-mime default mpv.desktop video/webm
xdg-mime default mpv.desktop video/quicktime
xdg-mime default mpv.desktop video/3gpp
xdg-mime default mpv.desktop video/3gpp2
xdg-mime default mpv.desktop video/x-ms-asf
xdg-mime default mpv.desktop video/x-ogm+ogg
xdg-mime default mpv.desktop video/x-theora+ogg
xdg-mime default mpv.desktop application/ogg

82
install/nvidia.sh Normal file
View File

@ -0,0 +1,82 @@
# ==============================================================================
# Hyprland NVIDIA Setup Script for Arch Linux
# ==============================================================================
# This script automates the installation and configuration of NVIDIA drivers
# for use with Hyprland on Arch Linux, following the official Hyprland wiki.
#
# Author: https://github.com/Kn0ax
#
# ==============================================================================
# --- GPU Detection ---
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
# --- Driver Selection ---
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
if echo "$gpu_info" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then
NVIDIA_DRIVER_PACKAGE="nvidia-open-dkms"
else
NVIDIA_DRIVER_PACKAGE="nvidia-dkms"
fi
# Check which kernel is installed and set appropriate headers package
KERNEL_HEADERS="linux-headers" # Default
if pacman -Q linux-zen &>/dev/null; then
KERNEL_HEADERS="linux-zen-headers"
elif pacman -Q linux-lts &>/dev/null; then
KERNEL_HEADERS="linux-lts-headers"
elif pacman -Q linux-hardened &>/dev/null; then
KERNEL_HEADERS="linux-hardened-headers"
fi
# Enable multilib repository for 32-bit libraries
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
fi
# Install packages
PACKAGES_TO_INSTALL=(
"${KERNEL_HEADERS}"
"${NVIDIA_DRIVER_PACKAGE}"
"nvidia-utils"
"lib32-nvidia-utils"
"egl-wayland"
"libva-nvidia-driver" # For VA-API hardware acceleration
"qt5-wayland"
"qt6-wayland"
)
yay -Syu --needed --noconfirm "${PACKAGES_TO_INSTALL[@]}"
# Configure modprobe for early KMS
echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/nvidia.conf >/dev/null
# Configure mkinitcpio for early loading
MKINITCPIO_CONF="/etc/mkinitcpio.conf"
# Define modules
NVIDIA_MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm"
# Create backup
sudo cp "$MKINITCPIO_CONF" "${MKINITCPIO_CONF}.backup"
# Remove any old nvidia modules to prevent duplicates
sudo sed -i -E 's/ nvidia_drm//g; s/ nvidia_uvm//g; s/ nvidia_modeset//g; s/ nvidia//g;' "$MKINITCPIO_CONF"
# Add the new modules at the start of the MODULES array
sudo sed -i -E "s/^(MODULES=\\()/\\1${NVIDIA_MODULES} /" "$MKINITCPIO_CONF"
# Clean up potential double spaces
sudo sed -i -E 's/ +/ /g' "$MKINITCPIO_CONF"
sudo mkinitcpio -P
# Add NVIDIA environment variables to hyprland.conf
HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf"
if [ -f "$HYPRLAND_CONF" ]; then
cat >>"$HYPRLAND_CONF" <<'EOF'
# NVIDIA environment variables
env = NVD_BACKEND,direct
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
EOF
fi
fi

View File

@ -4,8 +4,8 @@ yay -S --noconfirm power-profiles-daemon
if ls /sys/class/power_supply/BAT* &>/dev/null; then
# This computer runs on a battery
powerprofilesctl set balanced
powerprofilesctl set balanced || true
else
# This computer runs on power outlet
powerprofilesctl set performance
powerprofilesctl set performance || true
fi

View File

@ -1,10 +1,6 @@
if ! command -v ruby &>/dev/null; then
# Install Ruby using gcc-14 for compatibility
yay -S --noconfirm --needed gcc14
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"
mise install ruby
mise use ruby -g
# Install Ruby using gcc-14 for compatibility
yay -S --noconfirm --needed gcc14
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"
# Trust .ruby-version
mise settings add idiomatic_version_file_enable_tools ruby
fi
# Trust .ruby-version
mise settings add idiomatic_version_file_enable_tools ruby

View File

@ -1,4 +1,4 @@
# Use dark mode for QT apps too (like VLC and kdenlive)
# Use dark mode for QT apps too (like kdenlive)
sudo pacman -S --noconfirm kvantum-qt5
# Prefer dark mode everything

View File

@ -2,6 +2,7 @@ source ~/.local/share/omarchy/default/bash/functions
web2app "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png
web2app "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png
web2app "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png
web2app "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png
web2app "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png
web2app "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png
web2app "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png

View File

@ -1,7 +1,7 @@
yay -S --noconfirm --needed \
signal-desktop spotify dropbox-cli zoom \
obsidian typora libreoffice obs-studio kdenlive \
obsidian-bin typora libreoffice obs-studio kdenlive \
pinta xournalpp
# Copy over Omarchy applications
source ~/.local/share/omarchy/bin/omarchy-sync-applications
source ~/.local/share/omarchy/bin/omarchy-sync-applications || true

View File

@ -1,3 +1,5 @@
# Add missing installation of bat
echo "Add missing installation of bat (used by the ff alias)"
yay -S --noconfirm --needed bat
if ! command -v bat &>/dev/null; then
# Add missing installation of bat
echo "Add missing installation of bat (used by the ff alias)"
yay -S --noconfirm --needed bat
fi

3
migrations/1751225707.sh Normal file
View File

@ -0,0 +1,3 @@
echo "Fixing persistent workspaces in waybar config"
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
pkill -SIGUSR2 waybar

3
migrations/1751510848.sh Normal file
View File

@ -0,0 +1,3 @@
echo "Installing missing fd terminal tool for finding files"
yay -S --noconfirm --needed fd
echo "You must start a new terminal for fd to work"

19
migrations/1751667620.sh Normal file
View File

@ -0,0 +1,19 @@
echo "Switching from vlc to mpv for the default video player"
yay -Rns --noconfirm vlc
rm ~/.local/share/applications/vlc.desktop
yay -S --noconfirm mpv
xdg-mime default mpv.desktop video/mp4
xdg-mime default mpv.desktop video/x-msvideo
xdg-mime default mpv.desktop video/x-matroska
xdg-mime default mpv.desktop video/x-flv
xdg-mime default mpv.desktop video/x-ms-wmv
xdg-mime default mpv.desktop video/mpeg
xdg-mime default mpv.desktop video/ogg
xdg-mime default mpv.desktop video/webm
xdg-mime default mpv.desktop video/quicktime
xdg-mime default mpv.desktop video/3gpp
xdg-mime default mpv.desktop video/3gpp2
xdg-mime default mpv.desktop video/x-ms-asf
xdg-mime default mpv.desktop video/x-ogm+ogg
xdg-mime default mpv.desktop video/x-theora+ogg
xdg-mime default mpv.desktop application/ogg

3
migrations/1751669258.sh Normal file
View File

@ -0,0 +1,3 @@
echo "Add missing docker config"
sudo mkdir -p /etc/docker
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json

View File

@ -32,11 +32,15 @@ input-field {
font_color = rgba(205,214,244,1.0)
placeholder_color = rgba(205,214,244,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(68, 157, 171, 1.0)
fail_text = Wrong
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
}
auth {
fingerprint:enabled = true
}

View File

@ -32,11 +32,15 @@ input-field {
font_color = rgba(211,198,170,1.0)
placeholder_color = rgba(211,198,170,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(131, 192, 146, 1.0)
fail_text = Wrong
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
}
auth {
fingerprint:enabled = true
}

View File

@ -32,11 +32,15 @@ input-field {
font_color = rgba(212,190,152,1.0)
placeholder_color = rgba(212,190,152,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(214, 153, 92, 1.0)
fail_text = Wrong
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
}
auth {
fingerprint:enabled = true
}

View File

@ -32,11 +32,15 @@ input-field {
font_color = rgba(220,215,186,1.0)
placeholder_color = rgba(220,215,186,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(126, 156, 216, 1.0)
fail_text = Wrong
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
}
auth {
fingerprint:enabled = true
}

View File

@ -32,11 +32,15 @@ input-field {
font_color = rgba(216,222,233,1.0)
placeholder_color = rgba(216,222,233,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(136, 192, 208, 1.0)
fail_text = Wrong
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
}
auth {
fingerprint:enabled = true
}

View File

@ -32,11 +32,15 @@ input-field {
font_color = rgba(205,214,244,1.0)
placeholder_color = rgba(205,214,244,0.6)
placeholder_text = Enter Password
placeholder_text = Enter Password 󰈷 
check_color = rgba(68, 157, 171, 1.0)
fail_text = Wrong
rounding = 0
shadow_passes = 0
fade_on_empty = false
}
}
auth {
fingerprint:enabled = true
}