73 Commits

Author SHA1 Message Date
a4e7f41798 Merge pull request #305 from basecamp/dev
Omarchy v1.6.1
2025-07-23 14:56:04 -04:00
8908ce91f8 Trailing slash 2025-07-23 14:55:00 -04:00
5458b46584 Merge pull request #304 from basecamp/increase-pamlockout-limit
Increase pamlimit lockout
2025-07-23 14:39:22 -04:00
9b7908d17b Ensure we restart swayosd after setting up theming 2025-07-23 13:03:47 -04:00
a12cd97922 Increase pamlimit lockout 2025-07-23 12:59:32 -04:00
9231148cd7 Increase pamlimit lockout 2025-07-23 12:36:57 -04:00
c4c9cdc0f6 Only load inputrc for interactive terminals
Fixes claude-code warnings and is more proper anyway.
Closes #282
2025-07-23 12:03:53 -04:00
98f848d4a0 Fix the vibe coding hallucinations from swayosd theming 2025-07-23 11:53:04 -04:00
c36d76bb1c Merge pull request #288 from aifrim/swayosd-cfg
full swayosd integration
2025-07-23 11:46:15 -04:00
71ccf9a367 Merge pull request #294 from precision/dev
Update media bindings to only display OSD on the focused display
2025-07-23 11:42:33 -04:00
e1f2cc4d3d Merge pull request #297 from spdawson/feat/add-mariadb-to-docker-databases
Add MariaDB to Docker databases
2025-07-23 11:42:02 -04:00
08f187b4ea Include satty in the list of windows that get a minimum size
Fixes #299
Co-authored-by: @mtk3d
2025-07-23 11:39:39 -04:00
35e1d1233e Merge pull request #302 from ludo237/master
fix: walker css url
2025-07-23 11:38:10 -04:00
8f569921b3 Merge pull request #295 from abenz1267/dev
force package database refresh after adding multilib repo
2025-07-23 11:37:51 -04:00
3933cd7c89 fix: walker css url
there is an extra `/` that should not be ehre
2025-07-23 15:15:53 +02:00
ceb44d7aa1 feat: Add MariaDB to Docker databases 2025-07-23 10:36:36 +01:00
fd56404407 force package database refresh after adding multilib repo 2025-07-23 09:43:51 +02:00
d2763225c3 Update the media bindings to only display on the currently focused
monitor.

sway-osd can also do playerctl
2025-07-22 23:28:17 -04:00
2b2103fb66 Put Sunset Lake first for Tokyo Night 2025-07-22 22:19:29 -04:00
11dfeae901 Merge pull request #246 from basecamp/dev
Omarchy v1.6.0
2025-07-22 16:24:55 -07:00
8c0ac90fe4 Remember to disown! 2025-07-22 19:17:41 -04:00
d83a87a01c Don't hang the terminal 2025-07-22 19:09:47 -04:00
f0a9271506 Correct the order 2025-07-22 19:09:09 -04:00
faaf672eb4 Alert that we are updating system packages 2025-07-22 19:08:41 -04:00
0058023e85 Revert "Try to work around hanging"
This reverts commit 1976eafbcd.
2025-07-22 19:07:27 -04:00
4fedfbe9f1 Maybe it's hanging on dependencies? 2025-07-22 19:07:01 -04:00
1976eafbcd Try to work around hanging 2025-07-22 19:07:01 -04:00
1ebf88bac0 full swayosd integration 2025-07-23 01:51:04 +03:00
cce56a2684 Nicer sorting in Walker 2025-07-22 18:41:17 -04:00
c4b45779fe Use current background link 2025-07-22 18:33:25 -04:00
d706eda676 Unused 2025-07-22 18:26:34 -04:00
7c75cbbcd5 Ensure indexes are up to date from boot.sh instead 2025-07-22 18:08:31 -04:00
69e48758fd Can't actually update all packages before we are ready to reboot
Since kernel etc that needs a restart might have updated
2025-07-22 18:06:38 -04:00
2332a4f6db Don't update index during the normal run
Since we did that at the start
2025-07-22 18:03:05 -04:00
bacaabe4a1 We don't have yay yet 2025-07-22 17:53:58 -04:00
60f5a3b063 Merge branch 'master' into dev 2025-07-22 14:53:27 -07:00
7a7a08f9c3 Drop the entire first run idea for now 2025-07-22 17:51:34 -04:00
4421f20e82 Reduce first run to just showing the manual for now 2025-07-22 17:49:08 -04:00
071be3abcb Setup Docker DBs from TUI 2025-07-22 17:47:45 -04:00
771313b836 Update all the built-in packages from the ISO 2025-07-22 17:47:34 -04:00
dbe3ec8b2f Safe to use this again then 2025-07-22 17:36:14 -04:00
5be61c17a1 Go back to ANSI header now that we dont open a browser until the end 2025-07-22 17:34:52 -04:00
98f5669637 Remove GH Setup for now too 2025-07-22 17:33:43 -04:00
bcf0e1ebf9 Save the Dropbox setup until we have an answer to GDK_SCALE 2025-07-22 17:27:23 -04:00
f06e11ac47 Focus back on the installer after opening the manual 2025-07-22 16:54:08 -04:00
03192de90e Use a header that won't fold on a small screen 2025-07-22 16:38:33 -04:00
c0bb83e76c Detect and apply keyboard layout configured during Arch installation (#286)
* Detect and apply keyboard layout configured during Arch installation

* align the identation
2025-07-22 16:08:53 -04:00
5e4c309b2c Do dropbox first so we have the browser if we need it 2025-07-22 13:58:35 -04:00
a691a50559 Scaling workaround 2025-07-22 13:48:00 -04:00
778a69897b Fix path 2025-07-22 13:37:04 -04:00
ff77d4731f Allow it to start before existing 2025-07-22 13:23:59 -04:00
ec4efb304c Didn't actually like that 2025-07-22 13:20:57 -04:00
1d4991426e More shushing 2025-07-22 13:16:37 -04:00
c31250d7c0 Also can't use logo here or we're squishing 2025-07-22 13:12:35 -04:00
f36402b2c9 Clear before launching 2025-07-22 13:11:10 -04:00
ecf65b0499 Still need to keep it quiet 2025-07-22 13:10:47 -04:00
65ba4cc576 Might squish the logo when we open Docker or Manual 2025-07-22 13:09:01 -04:00
56999c0ae5 Use the Omarchy Manual webapp for launching 2025-07-22 13:06:35 -04:00
e3e46e1383 Install Omarchy Manual as its own web app 2025-07-22 13:06:05 -04:00
28bec8c7d2 Launch the Docker app if we installed Docker DBs 2025-07-22 13:03:14 -04:00
484b98ae43 No confirm please 2025-07-22 13:02:01 -04:00
14d9cd452c Explain the gum picker 2025-07-22 13:01:19 -04:00
8071642b66 Use consistent conditional 2025-07-22 12:37:57 -04:00
ba1e50daa9 Keep it simple 2025-07-22 12:36:56 -04:00
1c69965819 Restart walker when we refresh the config 2025-07-22 11:21:50 -04:00
ea903c7d65 Cleanup the screenrecording script 2025-07-22 08:58:20 -05:00
6d8a1e3bcf wf-recorder instead of wl-screenrec (NVIDIA support for screen recording) (#278)
* use wf-recorder instead of wl-screenrec

wl-screenrec does not support NVIDIA drivers as of now

* install wf-recorder and migration for it

* use wl-screenrec for non-nvidia and wf-recorder otherwise

* useless comment

* only use one of the screen recording features
2025-07-22 08:47:25 -05:00
a94ee3dee8 Remove 1px border from hyprshot screenshots
Closes #277
Co-authored-by: @al3rez
2025-07-22 08:44:17 -05:00
a117f5a36a Open current directory on n alone while still allowing opening direct files too 2025-07-22 07:53:01 -05:00
d5b9a5f223 Update envs.conf (#281) 2025-07-22 07:44:36 -05:00
da597ac567 Revert "Replace pavucontrol with wiremix (#225)"
This reverts commit 620b397859.
2025-07-18 22:39:25 -05:00
620b397859 Replace pavucontrol with wiremix (#225)
Add to install
2025-07-18 22:38:45 -05:00
03053626e3 Make these executable 2025-07-18 17:49:56 -07:00
50 changed files with 289 additions and 120 deletions

51
applications/mpv.desktop Normal file
View File

@ -0,0 +1,51 @@
[Desktop Entry]
Type=Application
Name=Media Player
Name[ar]=مشغل وسائط mpv
Name[ca]=Reproductor multimèdia mpv
Name[cs]=mpv přehrávač
Name[da]=mpv-medieafspiller
Name[fr]=Lecteur multimédia mpv
Name[it]=Lettore multimediale mpv
Name[ja]=mpv メディアプレイヤー
Name[pl]=Odtwarzacz mpv
Name[ru]=Проигрыватель mpv
Name[tr]=mpv Ortam Oynatıcı
Name[zh_CN]=mpv 媒体播放器
Name[zh_TW]=mpv 媒體播放器
GenericName=Multimedia player
GenericName[ar]=مُشَغِّل وسائط متعددة
GenericName[cs]=Multimediální přehrávač
GenericName[da]=Multimedieafspiller
GenericName[fr]=Lecteur multimédia
GenericName[it]=Lettore multimediale
GenericName[ja]=マルチメディアプレイヤー
GenericName[ru]=Мультимедийный проигрыватель
GenericName[tr]=Çoklu ortam oynatıcı
GenericName[zh_CN]=多媒体播放器
GenericName[zh_TW]=多媒體播放器
Comment=Play movies and songs
Comment[ar]=شَغِّل الأفلام والأغاني
Comment[ca]=Reproduïu vídeos i cançons
Comment[cs]=Přehrává filmy a hudbu
Comment[da]=Afspil film og sange
Comment[de]=Filme und Musik abspielen
Comment[es]=Reproduzca vídeos y canciones
Comment[fr]=Lire des vidéos et des musiques
Comment[ja]=映画や音楽を再生する
Comment[it]=Riproduci video e canzoni
Comment[pl]=Odtwarzaj filmy i muzykę
Comment[ru]=Воспроизведение фильмов и музыки
Comment[tr]=Filmleri ve şarkıları oynatın
Comment[zh_CN]=播放电影和歌曲
Comment[zh_TW]=播放電影和歌曲
Icon=mpv
TryExec=mpv
Exec=mpv --player-operation-mode=pseudo-gui -- %U
Terminal=false
Categories=AudioVideo;Audio;Video;Player;TV;
MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;audio/vnd.wave;video/vnd.avi;
X-KDE-Protocols=appending,file,ftp,hls,http,https,mms,mpv,rtmp,rtmps,rtmpt,rtmpts,rtp,rtsp,rtsps,sftp,srt,srtp,webdav,webdavs
StartupWMClass=mpv
Keywords=mpv;media;player;video;audio;tv;
Keywords[ar]=mpv;إم بي في;ام بي في;وسائط;مشغل;فيديو;مرئية;صوتي;تلفاز;

View File

@ -24,12 +24,13 @@ main_menu() {
update_menu() {
show_ascii_art
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "Desktop apps" "Back")
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "SwayOSD" "Desktop apps" "Back")
local commands=(
"omarchy-update"
"omarchy-refresh-waybar"
"omarchy-refresh-walker"
"omarchy-refresh-plymouth"
"omarchy-refresh-swayosd"
"omarchy-refresh-applications"
"main_menu"
)
@ -94,9 +95,10 @@ remove_theme_prompt() {
setup_menu() {
show_ascii_art
local menu=("Dropbox" "Fingerprint sensor" "Fido2 device" "Back")
local menu=("Dropbox" "Docker DBs" "Fingerprint sensor" "Fido2 device" "Back")
local commands=(
"omarchy-setup-dropbox"
"setup_docker_dbs"
"omarchy-setup-fingerprint"
"omarchy-setup-fido2"
"main_menu"
@ -117,6 +119,24 @@ setup_menu() {
done
}
setup_docker_dbs() {
options=("MariaDB" "MySQL" "Redis" "PostgreSQL")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
if [[ -n "$choices" ]]; then
for db in $choices; do
case $db in
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
esac
done
fi
main_menu
}
open_manual() {
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
clear

View File

@ -1,19 +1,25 @@
#!/bin/bash
# Set recorder based on GPU
screenrecording() {
filename="$HOME/Videos/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
notify-send "Screen recording starting..." -t 1000
sleep 1
wl-screenrec \
-f "$HOME/Videos/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" \
--ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" \
"$@"
if lspci | grep -qi 'nvidia'; then
wf-recorder -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@"
else
wl-screenrec -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@"
fi
}
if pgrep -x wl-screenrec >/dev/null; then
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
pkill -x wl-screenrec
pkill -x wf-recorder
notify-send "Screen recording saved to ~/Videos" -t 2000
elif [[ "$1" == "output" ]]; then
screenrecording -o ""
screenrecording
else
region=$(slurp) || exit 1
screenrecording -g "$region"

View File

@ -1,7 +0,0 @@
#!/bin/bash
if [[ ! -f ~/.local/state/omarchy/after-first-run.mode ]]; then
mkdir -p ~/.local/state/omarchy
touch ~/.local/state/omarchy/after-first-run.mode
uwsm app -- alacritty -e ~/.local/share/omarchy/bin/omarchy-first-run-flow
fi

View File

@ -1,56 +0,0 @@
#!/bin/bash
source ~/.local/share/omarchy/ansi.sh
if gum confirm "Install editor in addition to Neovim?"; then
options=("VSCode" "Cursor" "Zed" "Helix" "Nevermind")
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "Add programming editor") || exit 0
case "$choice" in
VSCode) yay -Sy --noconfirm --needed vscodium-electron-bin ;;
Cursor) yay -Sy --noconfirm --needed cursor-bin ;;
Zed) yay -Sy --noconfirm --needed zed ;;
Helix) yay -Sy --noconfirm --needed helix ;;
Nevermind) ;;
esac
fi
source ~/.local/share/omarchy/ansi.sh
if gum confirm "Login to GitHub?"; then
gh auth login
fi
source ~/.local/share/omarchy/ansi.sh
if gum confirm "Setup Dropbox?"; then
omarchy-setup-dropbox
fi
source ~/.local/share/omarchy/ansi.sh
if gum confirm "Start Docker DBs?"; then
options=("MySQL" "Redis" "PostgreSQL")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases") || exit 0
if [[ -n "$choices" ]]; then
for db in $choices; do
case $db in
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
esac
done
fi
fi
source ~/.local/share/omarchy/ansi.sh
echo "Updating all system packages..."
yay -Syu
source ~/.local/share/omarchy/ansi.sh
gum spin --spinner "globe" --title "You're all set!" -- sleep 2
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
clear

13
bin/omarchy-refresh-swayosd Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
cp -f ~/.config/swayosd/config.toml ~/.config/swayosd/config.toml.bak 2>/dev/null
cp -f ~/.local/share/omarchy/config/swayosd/config.toml ~/.config/swayosd/ 3>/dev/null
if cmp -s ~/.config/swayosd/config.toml.bak ~/.config/swayosd/config.toml; then
rm ~/.config/swayosd//config.toml.bak
else
echo -e "\e[31mExisting .config/swayosd/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &

View File

@ -8,3 +8,6 @@ if cmp -s ~/.config/walker/config.toml.bak ~/.config/walker/config.toml; then
else
echo -e "\e[31mExisting .config/walker/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
pkill walker
uwsm app -- walker --gapplication-service &

View File

@ -44,5 +44,5 @@ else
# Relaunch swaybg
pkill -x swaybg
uwsm app -- swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&1 &
uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
fi

View File

@ -14,12 +14,6 @@ CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
THEME_NAME="$1"
THEME_PATH="$THEMES_DIR/$THEME_NAME"
if [[ -d "$HOME/.config/omarchy/themes/$THEME_NAME/backgrounds" ]]; then
BACKGROUND_PATH="$HOME/.config/omarchy/themes/$THEME_NAME/backgrounds"
else
BACKGROUND_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME"
fi
# Check if the theme entered exists
if [[ ! -d "$THEME_PATH" ]]; then
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
@ -41,11 +35,11 @@ fi
# Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml"
# Trigger btop config reload
pkill -SIGUSR2 btop
# Restart components to apply new theme
pkill -SIGUSR2 btop
pkill -SIGUSR2 waybar
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &
makoctl reload
hyprctl reload

View File

@ -23,8 +23,9 @@ for file in $(git diff --name-only --diff-filter=A $migration_starting_point.. m
source $file
done
# Update system packages
echo -e "\e[32m\nUpdate system packages\e[0m"
yay -Syu --noconfirm
# Back to where we came from
cd - >/dev/null
# Update system packages
yay -Syu --noconfirm

View File

@ -12,7 +12,7 @@ ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄
echo -e "\n$ansi_art\n"
pacman -Q git &>/dev/null || sudo pacman -Sy --noconfirm --needed git
sudo pacman -Sy --noconfirm --needed git
echo -e "\nCloning Omarchy..."
rm -rf ~/.local/share/omarchy/

View File

@ -0,0 +1,4 @@
[server]
show_percentage = true
max_volume = 150
style = "./style.css"

28
config/swayosd/style.css Normal file
View File

@ -0,0 +1,28 @@
@import "../omarchy/current/theme/swayosd.css";
window {
border-radius: 0;
opacity: 0.97;
border: 2px solid @border-color;
background-color: @background-color;
}
label {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 11pt;
color: @label;
}
image {
color: @image;
}
progressbar {
border-radius: 0;
}
progress {
background-color: @progress;
}

View File

@ -24,10 +24,10 @@ alias ...='cd ../..'
alias ....='cd ../../..'
# Tools
alias n='nvim'
alias g='git'
alias d='docker'
alias r='rails'
n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; }
# Git
alias gcm='git commit -m'

View File

@ -4,4 +4,4 @@ source ~/.local/share/omarchy/default/bash/functions
source ~/.local/share/omarchy/default/bash/prompt
source ~/.local/share/omarchy/default/bash/init
source ~/.local/share/omarchy/default/bash/envs
bind -f ~/.local/share/omarchy/default/bash/inputrc
[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc

View File

@ -7,4 +7,3 @@ exec-once = uwsm app -- swayosd-server
exec-once = uwsm app -- walker --gapplication-service
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'
exec-once = ~/.local/share/omarchy/bin/omarchy-first-run

View File

@ -1,13 +1,16 @@
# Only display the OSD on the currently focused monitor
$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
# Laptop multimedia keys for volume and LCD brightness (with OSD)
bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
bindel = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
bindel = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
bindel = ,XF86MonBrightnessUp, exec, swayosd-client --brightness raise
bindel = ,XF86MonBrightnessDown, exec, swayosd-client --brightness lower
bindel = ,XF86AudioRaiseVolume, exec, $osdclient --output-volume raise
bindel = ,XF86AudioLowerVolume, exec, $osdclient --output-volume lower
bindel = ,XF86AudioMute, exec, $osdclient --output-volume mute-toggle
bindel = ,XF86AudioMicMute, exec, $osdclient --input-volume mute-toggle
bindel = ,XF86MonBrightnessUp, exec, $osdclient --brightness raise
bindel = ,XF86MonBrightnessDown, exec, $osdclient --brightness lower
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, $osdclient --playerctl next
bindl = , XF86AudioPause, exec, $osdclient --playerctl play-pause
bindl = , XF86AudioPlay, exec, $osdclient --playerctl play-pause
bindl = , XF86AudioPrev, exec, $osdclient --playerctl previous

View File

@ -3,8 +3,8 @@ env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
# Force all apps to use Wayland
env = GDK_BACKEND,wayland
env = QT_QPA_PLATFORM,wayland
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_STYLE_OVERRIDE,kvantum
env = SDL_VIDEODRIVER,wayland
env = MOZ_ENABLE_WAYLAND,1

View File

@ -72,6 +72,9 @@ animations {
# Application-sepcific animation
layerrule=noanim,walker
# Remove 1px border around hyprshot screenshots
layerrule = noanim, selection
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.

View File

@ -6,7 +6,7 @@ windowrule = tile, class:^(Chromium)$
# Float and center settings and previews
windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer)$
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$
windowrule = size 645 450, class:Omarchy
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$

View File

@ -1,2 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -1,2 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -1,2 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -21,4 +21,7 @@ done
# Ensure locate is up to date now that everything has been installed
sudo updatedb
# Update all built-in packages
sudo pacman -Syu --noconfirm
gum confirm "Reboot to apply all settings?" && reboot

View File

@ -3,6 +3,9 @@
# Copy over Omarchy configs
cp -R ~/.local/share/omarchy/config/* ~/.config/
# Use default bashrc from Omarchy
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
# Ensure application directory exists for update-desktop-database
mkdir -p ~/.local/share/applications
@ -13,8 +16,9 @@ sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true
# Use default bashrc from Omarchy
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
# Increase lockout limit to 10 and decrease timeout to 2 minutes
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
# Set common git aliases
git config --global alias.co checkout

View File

@ -4,6 +4,13 @@ yay -S --noconfirm --needed \
brightnessctl playerctl pamixer wiremix wireplumber \
fcitx5 fcitx5-gtk fcitx5-qt wl-clip-persist \
nautilus sushi ffmpegthumbnailer \
slurp wl-screenrec satty \
slurp satty \
mpv evince imv \
chromium
# Add screen recorder based on GPU
if lspci | grep -qi 'nvidia'; then
yay -S --noconfirm --needed wf-recorder
else
yay -S --noconfirm --needed wl-screenrec
fi

View File

@ -0,0 +1,15 @@
#!/bin/bash
conf="/etc/vconsole.conf"
hyprconf="$HOME/.config/hypr/hyprland.conf"
layout=$(grep '^XKBLAYOUT=' "$conf" | cut -d= -f2 | tr -d '"')
variant=$(grep '^XKBVARIANT=' "$conf" | cut -d= -f2 | tr -d '"')
if [[ -n "$layout" ]]; then
sed -i "/^[[:space:]]*kb_options *=/i\ kb_layout = $layout" "$hyprconf"
fi
if [[ -n "$variant" ]]; then
sed -i "/^[[:space:]]*kb_options *=/i\ kb_variant = $variant" "$hyprconf"
fi

View File

@ -1,7 +1,7 @@
#!/bin/bash
if ! command -v ufw &>/dev/null; then
yay -Sy --noconfirm --needed ufw ufw-docker
yay -S --noconfirm --needed ufw ufw-docker
# Allow nothing in, everything out
sudo ufw default deny incoming

View File

@ -1,9 +1,9 @@
#!/bin/bash
if [ -z "$OMARCHY_BARE" ]; then
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
else
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji
yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji
fi
mkdir -p ~/.local/share/fonts

View File

@ -35,6 +35,9 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
fi
# force package database refresh
sudo pacman -Syy
# Install packages
PACKAGES_TO_INSTALL=(
"${KERNEL_HEADERS}"
@ -47,7 +50,7 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
"qt6-wayland"
)
yay -Syu --needed --noconfirm "${PACKAGES_TO_INSTALL[@]}"
yay -S --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

View File

@ -15,7 +15,7 @@ for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes
# Set initial theme
mkdir -p ~/.config/omarchy/current
ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme
ln -snf ~/.config/omarchy/current/theme/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background
ln -snf ~/.config/omarchy/current/theme/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png ~/.config/omarchy/current/background
# Set specific app links for current theme
ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua

View File

@ -12,4 +12,5 @@ if [ -z "$OMARCHY_BARE" ]; then
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
web2app "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png
web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://manuals.omamix.org/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NDgsInB1ciI6ImJsb2JfaWQifX0=--c26606490139480f5bcb3cf91b09fc45825007f6/omarchy.jpg?disposition=attachment
fi

View File

@ -9,5 +9,5 @@ if ! command -v walker &>/dev/null; then
mkdir -p ~/.config/walker
cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/
uwsm app -- walker --gapplication-service
setsid uwsm app -- walker --gapplication-service &
fi

View File

@ -1,6 +0,0 @@
echo "Ensure first-run flow isn't run for existing installations"
if [[ ! -f ~/.local/state/omarchy/after-first-run.mode ]]; then
mkdir -p ~/.local/state/omarchy
touch ~/.local/state/omarchy/after-first-run.mode
fi

View File

@ -2,5 +2,5 @@ echo "Install swayOSD to show volume status"
if ! command -v swayosd &>/dev/null; then
yay -S --noconfirm --needed swayosd
uwsm app -- swayosd-server &>/dev/null &
setsid uwsm app -- swayosd-server &>/dev/null &
fi

11
migrations/1753176520.sh Normal file
View File

@ -0,0 +1,11 @@
echo "Install wf-recorder for screen recording for nvidia"
if lspci | grep -qi 'nvidia'; then
if ! command -v wf-recorder &>/dev/null; then
yay -S --noconfirm --needed wf-recorder
fi
if command -v wl-screenrec &>/dev/null; then
yay -R --noconfirm wl-screenrec
fi
fi

9
migrations/1753224615.sh Executable file
View File

@ -0,0 +1,9 @@
echo "Adding SwayOSD theming"
if [[ ! -d ~/.config/swayosd ]]; then
mkdir -p ~/.config/swayosd
cp -r ~/.local/share/omarchy/config/swayosd/* ~/.config/swayosd/
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &
fi

6
migrations/1753286633.sh Normal file
View File

@ -0,0 +1,6 @@
echo "Increase lockout limit to 10, decrease timeout to 2 minutes"
if ! grep -q 'deny=10' /etc/pam.d/system-auth; then
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
fi

View File

@ -0,0 +1,6 @@
@define-color background-color #eff1f5;
@define-color border-color #4c4f69;
@define-color label #4c4f69;
@define-color image #4c4f69;
@define-color progress #4c4f69;

View File

@ -0,0 +1,6 @@
@define-color background-color #24273a;
@define-color border-color #c6d0f5;
@define-color label #c6d0f5;
@define-color image #c6d0f5;
@define-color progress #c6d0f5;

View File

@ -0,0 +1,6 @@
@define-color background-color #2d353b;
@define-color border-color #d3c6aa;
@define-color label #d3c6aa;
@define-color image #d3c6aa;
@define-color progress #d3c6aa;

View File

@ -0,0 +1,6 @@
@define-color background-color #282828;
@define-color border-color #ebdbb2;
@define-color label #ebdbb2;
@define-color image #ebdbb2;
@define-color progress #ebdbb2;

View File

@ -0,0 +1,6 @@
@define-color background-color #1f1f28;
@define-color border-color #dcd7ba;
@define-color label #dcd7ba;
@define-color image #dcd7ba;
@define-color progress #dcd7ba;

View File

@ -0,0 +1,6 @@
@define-color background-color #121212;
@define-color border-color #EAEAEA;
@define-color label #EAEAEA;
@define-color image #EAEAEA;
@define-color progress #EAEAEA;

6
themes/nord/swayosd.css Normal file
View File

@ -0,0 +1,6 @@
@define-color background-color #2E3440;
@define-color border-color #D8DEE9;
@define-color label #D8DEE9;
@define-color image #D8DEE9;
@define-color progress #D8DEE9;

View File

@ -0,0 +1,6 @@
@define-color background-color #faf4ed;
@define-color border-color #575279;
@define-color label #575279;
@define-color image #575279;
@define-color progress #575279;

View File

@ -0,0 +1,6 @@
@define-color background-color #1a1b26;
@define-color border-color #33ccff;
@define-color label #33ccff;
@define-color image #33ccff;
@define-color progress #33ccff;