Compare commits
No files matched your search
@@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Basecamp
|
||||
Comment=Basecamp Project Management
|
||||
Exec=chromium --new-window --ozone-platform=wayland --app="https://launchpad.37signals.com" --name=Basecamp --class=Basecamp
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=Basecamp
|
||||
Categories=GTK;
|
||||
MimeType=text/html;text/xml;application/xhtml_xml;
|
||||
StartupNotify=true
|
||||
@@ -1,11 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=HEY
|
||||
Comment=HEY Email + Calendar
|
||||
Exec=chromium --new-window --ozone-platform=wayland --app="https://app.hey.com" --name=HEY --class=HEY
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=HEY
|
||||
Categories=GTK;
|
||||
MimeType=text/html;text/xml;application/xhtml_xml;
|
||||
StartupNotify=true
|
||||
@@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Bluetooth
|
||||
Comment=Configure Bluetooth settings
|
||||
Icon=bluetooth
|
||||
Exec=env GTK_THEME=Adwaita-dark blueberry
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=GTK;GNOME;Settings;HardwareSettings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
|
||||
StartupNotify=true
|
||||
NotShowIn=GNOME;KDE;Unity;
|
||||
@@ -0,0 +1,221 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Chromium
|
||||
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
|
||||
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
|
||||
GenericName=Web Browser
|
||||
GenericName[ar]=متصفح الشبكة
|
||||
GenericName[bg]=Уеб браузър
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=WWW prohlížeč
|
||||
GenericName[da]=Browser
|
||||
GenericName[de]=Web-Browser
|
||||
GenericName[el]=Περιηγητής ιστού
|
||||
GenericName[en_GB]=Web Browser
|
||||
GenericName[es]=Navegador web
|
||||
GenericName[et]=Veebibrauser
|
||||
GenericName[fi]=WWW-selain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[gu]=વેબ બ્રાઉઝર
|
||||
GenericName[he]=דפדפן אינטרנט
|
||||
GenericName[hi]=वेब ब्राउज़र
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[it]=Browser Web
|
||||
GenericName[ja]=ウェブブラウザ
|
||||
GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[lt]=Žiniatinklio naršyklė
|
||||
GenericName[lv]=Tīmekļa pārlūks
|
||||
GenericName[ml]=വെബ് ബ്രൌസര്
|
||||
GenericName[mr]=वेब ब्राऊजर
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[pl]=Przeglądarka WWW
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador da Internet
|
||||
GenericName[ro]=Navigator de Internet
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sl]=Spletni brskalnik
|
||||
GenericName[sv]=Webbläsare
|
||||
GenericName[ta]=இணைய உலாவி
|
||||
GenericName[th]=เว็บเบราว์เซอร์
|
||||
GenericName[tr]=Web Tarayıcı
|
||||
GenericName[uk]=Навігатор Тенет
|
||||
GenericName[zh_CN]=网页浏览器
|
||||
GenericName[zh_HK]=網頁瀏覽器
|
||||
GenericName[zh_TW]=網頁瀏覽器
|
||||
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
|
||||
GenericName[bn]=ওয়েব ব্রাউজার
|
||||
GenericName[fil]=Web Browser
|
||||
GenericName[hr]=Web preglednik
|
||||
GenericName[id]=Browser Web
|
||||
GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
|
||||
GenericName[sk]=WWW prehliadač
|
||||
GenericName[sr]=Интернет прегледник
|
||||
GenericName[te]=మహాతల అన్వేషి
|
||||
GenericName[vi]=Bộ duyệt Web
|
||||
# Gnome and KDE 3 uses Comment.
|
||||
Comment=Access the Internet
|
||||
Comment[ar]=الدخول إلى الإنترنت
|
||||
Comment[bg]=Достъп до интернет
|
||||
Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
|
||||
Comment[ca]=Accedeix a Internet
|
||||
Comment[cs]=Přístup k internetu
|
||||
Comment[da]=Få adgang til internettet
|
||||
Comment[de]=Internetzugriff
|
||||
Comment[el]=Πρόσβαση στο Διαδίκτυο
|
||||
Comment[en_GB]=Access the Internet
|
||||
Comment[es]=Accede a Internet.
|
||||
Comment[et]=Pääs Internetti
|
||||
Comment[fi]=Käytä internetiä
|
||||
Comment[fil]=I-access ang Internet
|
||||
Comment[fr]=Accéder à Internet
|
||||
Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
|
||||
Comment[he]=גישה אל האינטרנט
|
||||
Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
|
||||
Comment[hr]=Pristup Internetu
|
||||
Comment[hu]=Internetelérés
|
||||
Comment[id]=Akses Internet
|
||||
Comment[it]=Accesso a Internet
|
||||
Comment[ja]=インターネットにアクセス
|
||||
Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
|
||||
Comment[ko]=인터넷 연결
|
||||
Comment[lt]=Interneto prieiga
|
||||
Comment[lv]=Piekļūt internetam
|
||||
Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക
|
||||
Comment[mr]=इंटरनेटमध्ये प्रवेश करा
|
||||
Comment[nb]=Gå til Internett
|
||||
Comment[nl]=Verbinding maken met internet
|
||||
Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
|
||||
Comment[pl]=Skorzystaj z internetu
|
||||
Comment[pt]=Aceder à Internet
|
||||
Comment[pt_BR]=Acessar a internet
|
||||
Comment[ro]=Accesaţi Internetul
|
||||
Comment[ru]=Доступ в Интернет
|
||||
Comment[sk]=Prístup do siete Internet
|
||||
Comment[sl]=Dostop do interneta
|
||||
Comment[sr]=Приступите Интернету
|
||||
Comment[sv]=Gå ut på Internet
|
||||
Comment[ta]=இணையத்தை அணுகுதல்
|
||||
Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి
|
||||
Comment[th]=เข้าถึงอินเทอร์เน็ต
|
||||
Comment[tr]=İnternet'e erişin
|
||||
Comment[uk]=Доступ до Інтернету
|
||||
Comment[vi]=Truy cập Internet
|
||||
Comment[zh_CN]=访问互联网
|
||||
Comment[zh_HK]=連線到網際網路
|
||||
Comment[zh_TW]=連線到網際網路
|
||||
Exec=/usr/bin/chromium --ozone-platform=wayland %U
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Icon=chromium
|
||||
Type=Application
|
||||
Categories=Network;WebBrowser;
|
||||
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
Actions=new-window;new-private-window;
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=New Window
|
||||
Name[am]=አዲስ መስኮት
|
||||
Name[ar]=نافذة جديدة
|
||||
Name[bg]=Нов прозорец
|
||||
Name[bn]=নতুন উইন্ডো
|
||||
Name[ca]=Finestra nova
|
||||
Name[cs]=Nové okno
|
||||
Name[da]=Nyt vindue
|
||||
Name[de]=Neues Fenster
|
||||
Name[el]=Νέο Παράθυρο
|
||||
Name[en_GB]=New Window
|
||||
Name[es]=Nueva ventana
|
||||
Name[et]=Uus aken
|
||||
Name[fa]=پنجره جدید
|
||||
Name[fi]=Uusi ikkuna
|
||||
Name[fil]=New Window
|
||||
Name[fr]=Nouvelle fenêtre
|
||||
Name[gu]=નવી વિંડો
|
||||
Name[hi]=नई विंडो
|
||||
Name[hr]=Novi prozor
|
||||
Name[hu]=Új ablak
|
||||
Name[id]=Jendela Baru
|
||||
Name[it]=Nuova finestra
|
||||
Name[iw]=חלון חדש
|
||||
Name[ja]=新規ウインドウ
|
||||
Name[kn]=ಹೊಸ ವಿಂಡೊ
|
||||
Name[ko]=새 창
|
||||
Name[lt]=Naujas langas
|
||||
Name[lv]=Jauns logs
|
||||
Name[ml]=പുതിയ വിന്ഡോ
|
||||
Name[mr]=नवीन विंडो
|
||||
Name[nl]=Nieuw venster
|
||||
Name[no]=Nytt vindu
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt]=Nova janela
|
||||
Name[pt_BR]=Nova janela
|
||||
Name[ro]=Fereastră nouă
|
||||
Name[ru]=Новое окно
|
||||
Name[sk]=Nové okno
|
||||
Name[sl]=Novo okno
|
||||
Name[sr]=Нови прозор
|
||||
Name[sv]=Nytt fönster
|
||||
Name[sw]=Dirisha Jipya
|
||||
Name[ta]=புதிய சாளரம்
|
||||
Name[te]=క్రొత్త విండో
|
||||
Name[th]=หน้าต่างใหม่
|
||||
Name[tr]=Yeni Pencere
|
||||
Name[uk]=Нове вікно
|
||||
Name[vi]=Cửa sổ Mới
|
||||
Name[zh_CN]=新建窗口
|
||||
Name[zh_TW]=開新視窗
|
||||
Exec=/usr/bin/chromium --ozone-platform=wayland --new-window
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=New Incognito Window
|
||||
Name[ar]=نافذة جديدة للتصفح المتخفي
|
||||
Name[bg]=Нов прозорец „инкогнито“
|
||||
Name[bn]=নতুন ছদ্মবেশী উইন্ডো
|
||||
Name[ca]=Finestra d'incògnit nova
|
||||
Name[cs]=Nové anonymní okno
|
||||
Name[da]=Nyt inkognitovindue
|
||||
Name[de]=Neues Inkognito-Fenster
|
||||
Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
|
||||
Name[en_GB]=New Incognito window
|
||||
Name[es]=Nueva ventana de incógnito
|
||||
Name[et]=Uus inkognito aken
|
||||
Name[fa]=پنجره جدید حالت ناشناس
|
||||
Name[fi]=Uusi incognito-ikkuna
|
||||
Name[fil]=Bagong Incognito window
|
||||
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
Name[gu]=નવી છુપી વિંડો
|
||||
Name[hi]=नई गुप्त विंडो
|
||||
Name[hr]=Novi anoniman prozor
|
||||
Name[hu]=Új Inkognitóablak
|
||||
Name[id]=Jendela Penyamaran baru
|
||||
Name[it]=Nuova finestra di navigazione in incognito
|
||||
Name[iw]=חלון חדש לגלישה בסתר
|
||||
Name[ja]=新しいシークレット ウィンドウ
|
||||
Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
|
||||
Name[ko]=새 시크릿 창
|
||||
Name[lt]=Naujas inkognito langas
|
||||
Name[lv]=Jauns inkognito režīma logs
|
||||
Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്ഡോ
|
||||
Name[mr]=नवीन गुप्त विंडो
|
||||
Name[nl]=Nieuw incognitovenster
|
||||
Name[no]=Nytt inkognitovindu
|
||||
Name[pl]=Nowe okno incognito
|
||||
Name[pt]=Nova janela de navegação anónima
|
||||
Name[pt_BR]=Nova janela anônima
|
||||
Name[ro]=Fereastră nouă incognito
|
||||
Name[ru]=Новое окно в режиме инкогнито
|
||||
Name[sk]=Nové okno inkognito
|
||||
Name[sl]=Novo okno brez beleženja zgodovine
|
||||
Name[sr]=Нови прозор за прегледање без архивирања
|
||||
Name[sv]=Nytt inkognitofönster
|
||||
Name[ta]=புதிய மறைநிலைச் சாளரம்
|
||||
Name[te]=క్రొత్త అజ్ఞాత విండో
|
||||
Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
|
||||
Name[tr]=Yeni Gizli pencere
|
||||
Name[uk]=Нове вікно в режимі анонімного перегляду
|
||||
Name[vi]=Cửa sổ ẩn danh mới
|
||||
Name[zh_CN]=新建隐身窗口
|
||||
Name[zh_TW]=新增無痕式視窗
|
||||
Exec=/usr/bin/chromium --ozone-platform=wayland --new-window --incognito
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 196 KiB |
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
Name=Omarchy
|
||||
Comment=Omarchy TUI
|
||||
Exec=alacritty --class=Omarchy --title=Omarchy -e bash -c '$HOME/.local/share/omarchy/bin/omarchy'
|
||||
Icon=Arch
|
||||
Terminal=false
|
||||
Categories=System;Utility;
|
||||
StartupNotify=false
|
||||
@@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Volume Control
|
||||
Comment=Adjust the volume level
|
||||
Exec=env GTK_THEME=Adwaita-dark pavucontrol
|
||||
Icon=multimedia-volume-control
|
||||
StartupNotify=true
|
||||
Type=Application
|
||||
Categories=AudioVideo;Audio;Mixer;GTK;Settings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
|
||||
Keywords=pavucontrol;PulseAudio;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;Settings;Preferences;
|
||||
File renamed without changes.
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=Typora
|
||||
GenericName=Markdown Editor
|
||||
Exec=typora --enable-wayland-ime %U
|
||||
Icon=typora
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=Office;WordProcessor;
|
||||
MimeType=text/markdown;text/x-markdown;
|
||||
|
||||
Executable
+141
@@ -0,0 +1,141 @@
|
||||
#!/bin/bash
|
||||
|
||||
OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null)
|
||||
PATH="$PATH:$HOME/.local/share/omarchy/bin"
|
||||
|
||||
show_ascii_art() {
|
||||
clear
|
||||
cat <<'EOF'
|
||||
▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
|
||||
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
|
||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███
|
||||
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███
|
||||
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███
|
||||
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
|
||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
||||
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
|
||||
███ ███
|
||||
EOF
|
||||
echo " $OMARCHY_VERSION"
|
||||
}
|
||||
|
||||
main_menu() {
|
||||
show_ascii_art
|
||||
|
||||
local options=("Theme" "Setup" "Update" "Manual" "Exit")
|
||||
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "") || exit 0
|
||||
case "$choice" in
|
||||
Theme) theme_menu ;;
|
||||
Update) update_menu ;;
|
||||
Setup) setup_menu ;;
|
||||
Manual) open_manual ;;
|
||||
Exit) clear && exit 0 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
update_menu() {
|
||||
show_ascii_art
|
||||
local menu=("Omarchy" "Waybar" "Wofi" "Plymouth" "Desktop apps" "Back")
|
||||
local commands=(
|
||||
"omarchy-update"
|
||||
"omarchy-refresh-waybar"
|
||||
"omarchy-refresh-wofi"
|
||||
"omarchy-refresh-plymouth"
|
||||
"omarchy-refresh-applications"
|
||||
"main_menu"
|
||||
)
|
||||
local choice
|
||||
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Update") || main_menu
|
||||
for i in "${!menu[@]}"; do
|
||||
if [[ "${menu[$i]}" == "$choice" ]]; then
|
||||
if [[ "$choice" == "Back" ]]; then
|
||||
main_menu
|
||||
else
|
||||
eval "${commands[$i]}"
|
||||
ack_command
|
||||
main_menu
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
theme_menu() {
|
||||
show_ascii_art
|
||||
local menu=("Pick" "Install" "Remove" "Back")
|
||||
local commands=(
|
||||
"omarchy-theme-menu"
|
||||
"install_theme_prompt"
|
||||
"remove_theme_prompt"
|
||||
"main_menu"
|
||||
)
|
||||
local choice
|
||||
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Theme") || main_menu
|
||||
for i in "${!menu[@]}"; do
|
||||
if [[ "${menu[$i]}" == "$choice" ]]; then
|
||||
if [[ "$choice" == "Back" ]]; then
|
||||
main_menu
|
||||
else
|
||||
eval "${commands[$i]}"
|
||||
ack_command
|
||||
main_menu
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
install_theme_prompt() {
|
||||
local url
|
||||
url=$(gum input --placeholder="Git repo URL for theme" --header="")
|
||||
if [[ -n "$url" ]]; then
|
||||
omarchy-theme-install "$url"
|
||||
fi
|
||||
theme_menu
|
||||
}
|
||||
|
||||
remove_theme_prompt() {
|
||||
local theme
|
||||
theme=$(gum input --placeholder="Theme name" --header="")
|
||||
if [[ -n "$theme" ]]; then
|
||||
omarchy-theme-remove "$theme"
|
||||
fi
|
||||
theme_menu
|
||||
}
|
||||
|
||||
setup_menu() {
|
||||
show_ascii_art
|
||||
local menu=("Add fingerprint sensor" "Remove fingerprint sensor" "Add Fido2 device" "Remove Fido2 device" "Back")
|
||||
local commands=(
|
||||
"omarchy-setup-fingerprint"
|
||||
"omarchy-setup-fingerprint --remove"
|
||||
"omarchy-setup-fido2"
|
||||
"omarchy-setup-fido2 --remove"
|
||||
"main_menu"
|
||||
)
|
||||
local choice
|
||||
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Setup") || main_menu
|
||||
for i in "${!menu[@]}"; do
|
||||
if [[ "${menu[$i]}" == "$choice" ]]; then
|
||||
if [[ "$choice" == "Back" ]]; then
|
||||
main_menu
|
||||
else
|
||||
eval "${commands[$i]}"
|
||||
ack_command
|
||||
main_menu
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
open_manual() {
|
||||
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
|
||||
clear
|
||||
}
|
||||
|
||||
ack_command() {
|
||||
gum spin --spinner "globe" --title "Done!" -- sleep 1
|
||||
}
|
||||
|
||||
main_menu
|
||||
File renamed without changes.
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Designed to be run by systemd timer every 30 seconds and alerts if battery is low
|
||||
|
||||
BATTERY_THRESHOLD=10
|
||||
NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
|
||||
|
||||
get_battery_percentage() {
|
||||
upower -i $(upower -e | grep 'BAT') | grep -E "percentage" | grep -o '[0-9]\+%' | sed 's/%//'
|
||||
}
|
||||
|
||||
get_battery_state() {
|
||||
upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}'
|
||||
}
|
||||
|
||||
send_notification() {
|
||||
notify-send -u critical "Battery Low" "Time to recharge! (battery is at ${1}%)" -i battery-caution
|
||||
}
|
||||
|
||||
BATTERY_LEVEL=$(get_battery_percentage)
|
||||
BATTERY_STATE=$(get_battery_state)
|
||||
|
||||
if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then
|
||||
if [[ ! -f "$NOTIFICATION_FLAG" ]]; then
|
||||
send_notification "$BATTERY_LEVEL"
|
||||
touch "$NOTIFICATION_FLAG"
|
||||
fi
|
||||
else
|
||||
rm -f "$NOTIFICATION_FLAG"
|
||||
fi
|
||||
@@ -3,5 +3,6 @@
|
||||
# Link all the key config files to omarchy's internal versions for quicker testing
|
||||
ln -nsf ~/.local/share/omarchy/config/hypr/hyprland.conf ~/.config/hypr/
|
||||
ln -nsf ~/.local/share/omarchy/config/hypr/hypridle.conf ~/.config/hypr/
|
||||
ln -nsf ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/
|
||||
ln -nsf ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/
|
||||
ln -nsf ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/
|
||||
ln -nsf ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed fprintd usbutils
|
||||
|
||||
if ! lsusb | grep -iq fingerprint; then
|
||||
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
|
||||
else
|
||||
# Add fingerprint authentication as an option for sudo
|
||||
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
|
||||
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
# Add fingerprint authentication as an option for hyprpolkitagent
|
||||
if [ ! -f /etc/pam.d/polkit-1 ] || ! grep -q pam_fprintd.so /etc/pam.d/polkit-1; then
|
||||
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
|
||||
auth required pam_unix.so
|
||||
auth optional pam_fprintd.so
|
||||
|
||||
account required pam_unix.so
|
||||
password required pam_unix.so
|
||||
session required pam_unix.so
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Enroll the first finger
|
||||
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 $USER
|
||||
|
||||
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
|
||||
fi
|
||||
@@ -4,7 +4,12 @@
|
||||
# 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"
|
||||
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf $HOME/.local/share/omarchy/default/hypr/bindings/tiling.conf $HOME/.local/share/omarchy/default/hypr/bindings/utilities.conf $HOME/.local/share/omarchy/default/hypr/bindings.conf $HOME/.local/share/omarchy/default/hypr/media.conf"
|
||||
|
||||
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf \
|
||||
$HOME/.local/share/omarchy/default/hypr/bindings/tiling.conf \
|
||||
$HOME/.local/share/omarchy/default/hypr/bindings/utilities.conf \
|
||||
$HOME/.local/share/omarchy/default/hypr/media.conf"
|
||||
|
||||
# Process the configuration file to extract and format keybindings
|
||||
# 1. `grep` finds all lines starting with 'bind' (allowing for leading spaces).
|
||||
@@ -16,7 +21,10 @@ OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf"
|
||||
# - 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' "$USER_HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" |
|
||||
grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
|
||||
sed 's/#.*//' |
|
||||
sed '/^[[:space:]]*$/d' |
|
||||
sort -u |
|
||||
awk -F, '
|
||||
{
|
||||
# Strip trailing comments
|
||||
@@ -48,4 +56,4 @@ grep -h '^[[:space:]]*bind' "$USER_HYPRLAND_CONF" "$OMARCHY_BINDINGS_CONF" |
|
||||
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 --style=\"$HOME/.local/share/omarchy/default/wofi/search.css\""
|
||||
wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical
|
||||
@@ -10,12 +10,12 @@ show_power_menu() {
|
||||
\u200D Relaunch
|
||||
\u2060 Restart
|
||||
\u2063 Shutdown"
|
||||
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.local/share/omarchy/default/wofi/select.css)
|
||||
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.config/wofi/select.css)
|
||||
|
||||
case "$selection" in
|
||||
*Lock*) hyprlock ;;
|
||||
*Suspend*) systemctl suspend ;;
|
||||
*Relaunch*) hyprctl dispatch exit ;;
|
||||
*Relaunch*) uwsm stop ;;
|
||||
*Restart*) systemctl reboot ;;
|
||||
*Shutdown*) systemctl poweroff ;;
|
||||
esac
|
||||
@@ -8,4 +8,10 @@ gtk-update-icon-cache ~/.local/share/icons/hicolor &>/dev/null
|
||||
# Copy .desktop declarations
|
||||
mkdir -p ~/.local/share/applications
|
||||
cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/
|
||||
cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/
|
||||
|
||||
if [ -z "$OMARCHY_BARE" ]; then
|
||||
cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/
|
||||
fi
|
||||
|
||||
update-desktop-database ~/.local/share/applications
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
if gum confirm "Refresh Plymouth theme? This will replace your current startup screen with Omarchy defaults."; then
|
||||
if [[ "$1" == "-y" ]] || gum confirm "Refresh Plymouth theme? This will replace your current startup screen with Omarchy defaults."; then
|
||||
sudo cp ~/.local/share/omarchy/default/plymouth/* /usr/share/plymouth/themes/omarchy/
|
||||
sudo plymouth-set-default-theme -R omarchy
|
||||
fi
|
||||
@@ -1,11 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
if gum confirm "Refresh Waybar config? This will replace your current Waybar settings with Omarchy defaults."; then
|
||||
if gum confirm "Refresh Waybar config? This will replace your current settings with Omarchy defaults."; then
|
||||
# Overwrite local waybar settings with the latest in Omarchy
|
||||
cp -f ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
|
||||
|
||||
# Restart waybar
|
||||
pkill waybar &>/dev/null
|
||||
setsid waybar &>/dev/null &
|
||||
pkill waybar
|
||||
setsid waybar >/dev/null 2>&1 &
|
||||
fi
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$1" == "-y" ]] || gum confirm "Refresh Wofi config? This will replace your current settings with Omarchy defaults."; then
|
||||
# Overwrite local waybar settings with the latest in Omarchy
|
||||
cp -f ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/ 2>/dev/null
|
||||
cp -f ~/.local/share/omarchy/config/wofi/select.css ~/.config/wofi/ 2>/dev/null
|
||||
fi
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "--remove" == "$1" ]]; then
|
||||
yay -Rns --noconfirm libfido2 pam-u2f
|
||||
sudo rm -rf /etc/fido2
|
||||
sudo sed -i '\|^auth[[:space:]]\+sufficient[[:space:]]\+pam_u2f\.so[[:space:]]\+cue[[:space:]]\+authfile=/etc/fido2/fido2$|d' /etc/pam.d/sudo
|
||||
echo -e "\e[32m\nYou've successfully removed the fido2 device setup.\e[0m"
|
||||
else
|
||||
yay -S --noconfirm --needed libfido2 pam-u2f
|
||||
|
||||
tokens=$(fido2-token -L)
|
||||
|
||||
if [ -z "$tokens" ]; then
|
||||
echo -e "\e[31m\nNo fido2 device detected. Plug it in, you may have to unlock it as well\e[0m"
|
||||
else
|
||||
# Create the pamu2fcfg file
|
||||
if [ ! -f /etc/fido2/fido2 ]; then
|
||||
sudo mkdir -p /etc/fido2
|
||||
echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m"
|
||||
pamu2fcfg >/tmp/fido2 # This needs to run as the user
|
||||
sudo mv /tmp/fido2 /etc/fido2/fido2
|
||||
fi
|
||||
|
||||
# Add fido2 auth as an option for sudo
|
||||
if ! grep -q pam_u2f.so /etc/pam.d/sudo; then
|
||||
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
if ! sudo echo -e "\e[32m\nPerfect! Now you can use your fido2 device for sudo.\e[0m"; then
|
||||
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "--remove" == "$1" ]]; then
|
||||
yay -Rns --noconfirm fprintd
|
||||
sudo rm -rf /etc/pam.d/polkit-1
|
||||
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
|
||||
echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m"
|
||||
else
|
||||
yay -S --noconfirm --needed fprintd usbutils
|
||||
|
||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then
|
||||
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
|
||||
else
|
||||
# Add fingerprint authentication as an option for sudo
|
||||
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
|
||||
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
|
||||
fi
|
||||
|
||||
# Add fingerprint authentication as an option for hyprpolkitagent
|
||||
if [ ! -f /etc/pam.d/polkit-1 ] || ! grep -q pam_fprintd.so /etc/pam.d/polkit-1; then
|
||||
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
|
||||
auth required pam_unix.so
|
||||
auth optional pam_fprintd.so
|
||||
|
||||
account required pam_unix.so
|
||||
password required pam_unix.so
|
||||
session required pam_unix.so
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Enroll the first finger
|
||||
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 $USER
|
||||
|
||||
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
|
||||
fi
|
||||
fi
|
||||
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Cycles through the background images available
|
||||
|
||||
BACKGROUNDS_DIR="$HOME/.config/omarchy/current/backgrounds/"
|
||||
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
|
||||
|
||||
mapfile -d '' -t BACKGROUNDS < <(find "$BACKGROUNDS_DIR" -type f -print0 | sort -z)
|
||||
TOTAL=${#BACKGROUNDS[@]}
|
||||
|
||||
if [[ $TOTAL -eq 0 ]]; then
|
||||
notify-send "No background was found for theme" -t 2000
|
||||
pkill -x swaybg
|
||||
setsid swaybg --color '#000000' >/dev/null 2>&2 &
|
||||
else
|
||||
# Get current background from symlink
|
||||
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
||||
CURRENT_BACKGROUND=$(readlink "$CURRENT_BACKGROUND_LINK")
|
||||
else
|
||||
# Default to first background if no symlink exists
|
||||
CURRENT_BACKGROUND=""
|
||||
fi
|
||||
|
||||
# Find current background index
|
||||
INDEX=-1
|
||||
for i in "${!BACKGROUNDS[@]}"; do
|
||||
if [[ "${BACKGROUNDS[$i]}" == "$CURRENT_BACKGROUND" ]]; then
|
||||
INDEX=$i
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Get next background (wrap around)
|
||||
if [[ $INDEX -eq -1 ]]; then
|
||||
# Use the first background when no match was found
|
||||
NEW_BACKGROUND="${BACKGROUNDS[0]}"
|
||||
else
|
||||
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
||||
NEW_BACKGROUND="${BACKGROUNDS[$NEXT_INDEX]}"
|
||||
fi
|
||||
|
||||
# Set new background symlink
|
||||
ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
|
||||
|
||||
# Relaunch swaybg
|
||||
pkill -x swaybg
|
||||
setsid swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&2 &
|
||||
fi
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy-theme-install: Install a new theme from a git repo for Omarchy
|
||||
# Usage: omarchy-theme-install <git-repo-url>
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: omarchy-theme-install <git-repo-url>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_URL="$1"
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
THEME_BACKGROUND_PATH="$THEME_PATH/backgrounds"
|
||||
BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds"
|
||||
BACKGROUNDS_THEME_PATH="$BACKGROUNDS_PATH/$THEME_NAME"
|
||||
|
||||
# Remove existing theme if present
|
||||
if [ -d "$THEME_PATH" ]; then
|
||||
rm -rf "$THEME_PATH"
|
||||
fi
|
||||
|
||||
# Clone the repo directly to ~/.config/omarchy/themes
|
||||
if ! git clone "$REPO_URL" "$THEME_PATH"; then
|
||||
echo "Error: Failed to clone theme repo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Link backgrounds if present
|
||||
if [ -d $THEME_BACKGROUND_PATH ]; then
|
||||
ln -snf $THEME_BACKGROUND_PATH $BACKGROUNDS_THEME_PATH
|
||||
fi
|
||||
|
||||
# Apply the new theme with omarchy-theme-set
|
||||
omarchy-theme-set $THEME_NAME
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes/"
|
||||
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
||||
CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")")
|
||||
|
||||
# Build themes list with pretty display names
|
||||
mapfile -t themes < <(
|
||||
find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | while read -r path; do
|
||||
filename=$(basename "$path")
|
||||
display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')
|
||||
|
||||
if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then
|
||||
echo "<i>$display_name</i>"
|
||||
else
|
||||
echo "$display_name"
|
||||
fi
|
||||
done | sort
|
||||
)
|
||||
|
||||
# Show Wofi menu (with markup support)
|
||||
selection=$(printf '%s\n' "${themes[@]}" | wofi \
|
||||
--show dmenu \
|
||||
--allow-markup \
|
||||
--width 150 \
|
||||
--height 400 \
|
||||
-O alphabetical \
|
||||
--style ~/.config/wofi/select.css 2>/dev/null)
|
||||
|
||||
# Remove any Pango markup before converting back to filename
|
||||
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')
|
||||
|
||||
# Convert to lowercase and dash-separated: "Tokyo Night" -> "tokyo-night"
|
||||
selected_theme=$(echo "$clean_selection" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
|
||||
|
||||
# Apply the selected theme
|
||||
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" "$selected_theme"
|
||||
+6
-21
@@ -3,20 +3,22 @@
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes/"
|
||||
CURRENT_THEME_LINK="$HOME/.config/omarchy/current/theme"
|
||||
|
||||
THEMES=($(find "$THEMES_DIR" -mindepth 1 | sort))
|
||||
THEMES=($(find "$THEMES_DIR" -mindepth 1 -maxdepth 1 | sort))
|
||||
TOTAL=${#THEMES[@]}
|
||||
|
||||
# Get current theme from symlink
|
||||
if [[ -L "$CURRENT_THEME_LINK" ]]; then
|
||||
CURRENT_THEME=$(readlink "$CURRENT_THEME_LINK")
|
||||
CURRENT_THEME=$(realpath "$CURRENT_THEME_LINK")
|
||||
else
|
||||
# Default to first theme if no symlink exists
|
||||
CURRENT_THEME=${THEMES[0]}
|
||||
CURRENT_THEME=$(realpath "${THEMES[0]}")
|
||||
fi
|
||||
|
||||
# Find current theme index
|
||||
INDEX=0
|
||||
for i in "${!THEMES[@]}"; do
|
||||
THEMES[$i]=$(realpath "${THEMES[$i]}")
|
||||
|
||||
if [[ "${THEMES[$i]}" == "$CURRENT_THEME" ]]; then
|
||||
INDEX=$i
|
||||
break
|
||||
@@ -28,22 +30,5 @@ NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
||||
NEW_THEME=${THEMES[$NEXT_INDEX]}
|
||||
NEW_THEME_NAME=$(basename "$NEW_THEME")
|
||||
|
||||
# Set current theme
|
||||
ln -nsf "$HOME/.config/omarchy/backgrounds/$NEW_THEME_NAME" "$HOME/.config/omarchy/current/backgrounds"
|
||||
ln -nsf "$NEW_THEME" "$HOME/.config/omarchy/current/theme"
|
||||
|
||||
# Touch alacritty config to pickup the changed theme
|
||||
touch "$HOME/.config/alacritty/alacritty.toml"
|
||||
|
||||
# Restart for new theme
|
||||
pkill -SIGUSR2 waybar
|
||||
makoctl reload
|
||||
hyprctl reload
|
||||
|
||||
# Set new background
|
||||
ln -nsf $(find "$HOME/.config/omarchy/current/backgrounds/" -type f | head -n 1) "$HOME/.config/omarchy/current/background"
|
||||
pkill -x swaybg
|
||||
setsid swaybg -i "$HOME/.config/omarchy/current/background" -m fill &
|
||||
|
||||
# Notify of the new theme
|
||||
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" $NEW_THEME_NAME
|
||||
notify-send "Theme changed to $NEW_THEME_NAME" -t 2000
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy-theme-remove: Remove a theme from Omarchy by name
|
||||
# Usage: omarchy-theme-remove <theme-name>
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: omarchy-theme-remove <theme-name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
THEME_NAME="$1"
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||
BACKGROUND_DIR="$HOME/.config/omarchy/backgrounds"
|
||||
CURRENT_DIR="$HOME/.config/omarchy/current"
|
||||
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
BACKGROUND_PATH="$BACKGROUND_DIR/$THEME_NAME"
|
||||
|
||||
# Check if theme exists before attempting removal
|
||||
if [ ! -d "$THEME_PATH" ]; then
|
||||
echo "Error: Theme '$THEME_NAME' not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use readlink -f to resolve symlinks and get the absolute path
|
||||
if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then
|
||||
"$HOME/.local/share/omarchy/bin/omarchy-theme-next"
|
||||
fi
|
||||
|
||||
# Now remove the theme directory and backgrounds for THEME_NAME
|
||||
rm -rf "$THEME_PATH"
|
||||
rm -rf "$BACKGROUND_PATH"
|
||||
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy-theme-set: Set a theme, specified by its name.
|
||||
# Usage: omarchy-theme-set <theme-name>
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Usage: omarchy-theme-set <theme-name>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
THEMES_DIR="$HOME/.config/omarchy/themes/"
|
||||
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
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Update theme symlinks
|
||||
ln -nsf "$BACKGROUND_PATH" "$HOME/.config/omarchy/current/backgrounds"
|
||||
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
|
||||
|
||||
# Change gnome modes
|
||||
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
|
||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
|
||||
else
|
||||
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
||||
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 waybar
|
||||
setsid waybar >/dev/null 2>&1 &
|
||||
makoctl reload
|
||||
hyprctl reload
|
||||
|
||||
# Set new background
|
||||
"$HOME/.local/share/omarchy/bin/omarchy-theme-bg-next"
|
||||
@@ -1,9 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/bin/bash
|
||||
|
||||
if pgrep -x hypridle > /dev/null; then
|
||||
if pgrep -x hypridle >/dev/null; then
|
||||
pkill -x hypridle
|
||||
notify-send "Stop locking computer when idle"
|
||||
else
|
||||
setsid hypridle &> /dev/null &
|
||||
setsid hypridle &>/dev/null &
|
||||
notify-send "Now locking computer when idle"
|
||||
fi
|
||||
+5
-3
@@ -10,8 +10,10 @@ else
|
||||
last_updated_at=$(git log -1 --format=%cd --date=unix)
|
||||
fi
|
||||
|
||||
# Get the latest
|
||||
# Get the latest while trying to preserve any modifications
|
||||
git stash
|
||||
git pull
|
||||
git stash pop
|
||||
|
||||
# Run any pending migrations
|
||||
for file in migrations/*.sh; do
|
||||
@@ -27,5 +29,5 @@ done
|
||||
# Back to where we came from
|
||||
cd - >/dev/null
|
||||
|
||||
echo -e "\e[32m\nUpdating system packages\e[0m"
|
||||
yay -Syu
|
||||
echo -e ""
|
||||
gum confirm "Update system packages too?" && yay -Syu --noconfirm
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Cycles through the background images available
|
||||
|
||||
BACKGROUNDS_DIR="$HOME/.config/omarchy/current/backgrounds/"
|
||||
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
|
||||
|
||||
BACKGROUNDS=($(find "$BACKGROUNDS_DIR" -type f | sort))
|
||||
TOTAL=${#BACKGROUNDS[@]}
|
||||
|
||||
# Get current background from symlink
|
||||
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
||||
CURRENT_BACKGROUND=$(readlink "$CURRENT_BACKGROUND_LINK")
|
||||
else
|
||||
# Default to first background if no symlink exists
|
||||
CURRENT_BACKGROUND=${BACKGROUNDS[0]}
|
||||
fi
|
||||
|
||||
# Find current background index
|
||||
INDEX=0
|
||||
for i in "${!BACKGROUNDS[@]}"; do
|
||||
if [[ "${BACKGROUNDS[$i]}" == "$CURRENT_BACKGROUND" ]]; then
|
||||
INDEX=$i
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# Get next background (wrap around)
|
||||
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
||||
NEW_BACKGROUND=${BACKGROUNDS[$NEXT_INDEX]}
|
||||
|
||||
# Set new background symlink
|
||||
ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
|
||||
|
||||
# Relaunch swaybg
|
||||
pkill -x swaybg
|
||||
setsid swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&2 &
|
||||
@@ -1,5 +1,4 @@
|
||||
INPUT_METHOD=fcitx
|
||||
GTK_IM_MODULE=fcitx
|
||||
QT_IM_MODULE=fcitx
|
||||
XMODIFIERS=@im=fcitx
|
||||
SDL_IM_MODULE=fcitx
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
||||
<fontconfig>
|
||||
<match target="pattern">
|
||||
<test name="family" qual="any">
|
||||
<string>sans-serif</string>
|
||||
</test>
|
||||
<edit name="family" mode="assign" binding="strong">
|
||||
<string>Liberation Sans</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<match target="pattern">
|
||||
<test name="family" qual="any">
|
||||
<string>serif</string>
|
||||
</test>
|
||||
<edit name="family" mode="assign" binding="strong">
|
||||
<string>Liberation Serif</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<match target="pattern">
|
||||
<test name="family" qual="any">
|
||||
<string>monospace</string>
|
||||
</test>
|
||||
<edit name="family" mode="assign" binding="strong">
|
||||
<string>CaskaydiaMono Nerd Font</string>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
<alias>
|
||||
<family>system-ui</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>ui-monospace</family>
|
||||
<default>
|
||||
<family>monospace</family>
|
||||
</default>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>-apple-system</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
|
||||
<alias>
|
||||
<family>BlinkMacSystemFont</family>
|
||||
<prefer>
|
||||
<family>Liberation Sans</family>
|
||||
</prefer>
|
||||
</alias>
|
||||
</fontconfig>
|
||||
+28
-15
@@ -1,33 +1,39 @@
|
||||
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
|
||||
|
||||
# You're encouraged to tailor your Hyprland config in this file by adding or overwriting any settings.
|
||||
# But don't change anything that lives in ~/.local/share/omarchy, if you can help it!
|
||||
# Those files are overwritten when Omarchy is updated.
|
||||
|
||||
# Change your personal monitor setup in here to keep the main config portable
|
||||
source = ~/.config/hypr/monitors.conf
|
||||
|
||||
# Default applications
|
||||
$terminal = alacritty
|
||||
$fileManager = nautilus --new-window
|
||||
$browser = chromium --new-window --ozone-platform=wayland
|
||||
$music = spotify
|
||||
$passwordManager = 1password
|
||||
$messenger = signal-desktop
|
||||
$webapp = $browser --app
|
||||
|
||||
# Use defaults Omarchy defaults
|
||||
source = ~/.local/share/omarchy/default/hypr/autostart.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/envs.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/looknfeel.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/input.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/windows.conf
|
||||
source = ~/.config/omarchy/current/theme/hyprland.conf
|
||||
|
||||
# Extra autostart processes (uncomment to run Dropbox)
|
||||
# exec-once = dropbox-cli start
|
||||
# Application bindings
|
||||
$terminal = uwsm app -- alacritty
|
||||
$browser = uwsm app -- chromium --new-window --ozone-platform=wayland
|
||||
$webapp = $browser --app
|
||||
|
||||
# Extra env variables
|
||||
# env = MY_GLOBAL_ENV,setting
|
||||
bind = SUPER, return, exec, $terminal
|
||||
bind = SUPER, F, exec, uwsm app -- nautilus --new-window
|
||||
bind = SUPER, B, exec, $browser
|
||||
bind = SUPER, M, exec, uwsm app -- spotify
|
||||
bind = SUPER, N, exec, $terminal -e nvim
|
||||
bind = SUPER, T, exec, $terminal -e btop
|
||||
bind = SUPER, D, exec, $terminal -e lazydocker
|
||||
bind = SUPER, G, exec, uwsm app -- signal-desktop
|
||||
bind = SUPER, O, exec, uwsm app -- obsidian -disable-gpu
|
||||
bind = SUPER, slash, exec, uwsm app -- 1password
|
||||
|
||||
# Extra bindings (overwrite existing binding with: unbind = SUPER, O)
|
||||
bind = SUPER, A, exec, $webapp="https://chatgpt.com"
|
||||
bind = SUPER SHIFT, A, exec, $webapp="https://grok.com"
|
||||
bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/"
|
||||
@@ -38,6 +44,13 @@ bind = SUPER ALT, G, exec, $webapp="https://messages.google.com/web/conversation
|
||||
bind = SUPER, X, exec, $webapp="https://x.com/"
|
||||
bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post"
|
||||
|
||||
# Extra autostart processes
|
||||
# exec-once = dropbox-cli start
|
||||
|
||||
# Extra env variables
|
||||
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
|
||||
# env = MY_GLOBAL_ENV,setting
|
||||
|
||||
# Control your input devices
|
||||
# See https://wiki.hypr.land/Configuring/Variables/#input
|
||||
input {
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
# Hyprlock — minimal blur with ringed input
|
||||
# ────────────────────────────────────────────────────────────
|
||||
|
||||
source = ~/.config/omarchy/current/theme/hyprlock.conf
|
||||
|
||||
general {
|
||||
disable_loading_bar = true
|
||||
no_fade_in = false
|
||||
@@ -9,7 +11,7 @@ general {
|
||||
|
||||
background {
|
||||
monitor =
|
||||
color = rgba(26,27,38,1.0) # #1a1b26 solid color
|
||||
color = $color
|
||||
}
|
||||
|
||||
animations {
|
||||
@@ -23,17 +25,17 @@ input-field {
|
||||
halign = center
|
||||
valign = center
|
||||
|
||||
inner_color = rgba(26,27,38,0.8) # #1a1b26 with opacity
|
||||
outer_color = rgba(205,214,244,1.0) # #cdd6f4
|
||||
inner_color = $inner_color
|
||||
outer_color = $outer_color
|
||||
outline_thickness = 4
|
||||
|
||||
font_family = CaskaydiaMono Nerd Font
|
||||
font_size = 32
|
||||
font_color = rgba(205,214,244,1.0)
|
||||
font_color = $font_color
|
||||
|
||||
placeholder_color = rgba(205,214,244,0.6)
|
||||
placeholder_color = $placeholder_color
|
||||
placeholder_text = Enter Password
|
||||
check_color = rgba(68, 157, 171, 1.0)
|
||||
check_color = $check_color
|
||||
fail_text = Wrong
|
||||
|
||||
rounding = 0
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
|
||||
# Change to 1 if on a 1x display (then change last "auto" to 1 in monitor=)
|
||||
# Change to 1.75 for fractional scaling
|
||||
# Change to something like 1.75 for fractional scaling (can work well with 1.66667 monitor scaling)
|
||||
# Note: You must relaunch Hyprland after changing any env like this (use Super+Esc, then Relaunch)
|
||||
env = GDK_SCALE,2
|
||||
|
||||
# Use single default monitor (see all monitors with: hyprctl monitors)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=Omarchy Battery Monitor Check
|
||||
After=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=%h/.local/share/omarchy/bin/omarchy-battery-monitor
|
||||
Environment=DISPLAY=:0
|
||||
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Omarchy Battery Monitor Timer
|
||||
Requires=omarchy-battery-monitor.service
|
||||
|
||||
[Timer]
|
||||
OnBootSec=1min
|
||||
OnUnitActiveSec=30sec
|
||||
AccuracySec=10sec
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
@@ -1,104 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"spacing": 0,
|
||||
"height": 26,
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"clock"
|
||||
],
|
||||
"modules-right": [
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"cpu",
|
||||
"battery"
|
||||
],
|
||||
"hyprland/workspaces": {
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"active": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "",
|
||||
"on-click": "alacritty -e btop"
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%A %H:%M}",
|
||||
"format-alt": "{:%d %B W%V %Y}",
|
||||
"tooltip": false
|
||||
},
|
||||
"network": {
|
||||
"format-icons": ["","","","",""],
|
||||
"format" : "{icon}",
|
||||
"format-wifi" : "{icon}",
|
||||
"format-ethernet" : "",
|
||||
"format-disconnected" : "",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"interval": 3,
|
||||
"nospacing": 1,
|
||||
"on-click": "alacritty --class=Impala -e impala"
|
||||
},
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-discharging": "{icon}",
|
||||
"format-charging": "{icon}",
|
||||
"format-plugged": "",
|
||||
"format-icons": {
|
||||
"charging": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
],
|
||||
"default": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
]
|
||||
},
|
||||
"format-full": "Charged ",
|
||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
||||
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
|
||||
"interval": 5,
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
}
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"tooltip-format": "Devices connected: {num_connections}",
|
||||
"on-click": "GTK_THEME=Adwaita-dark blueberry"
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "",
|
||||
"format-muted": "",
|
||||
"scroll-step": 5,
|
||||
"on-click": "GTK_THEME=Adwaita-dark pavucontrol",
|
||||
"tooltip-format": "Playing at {volume}%",
|
||||
"on-click-right": "pamixer -t",
|
||||
"ignored-sinks": ["Easy Effects Sink"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"reload_style_on_change": true,
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"spacing": 0,
|
||||
"height": 26,
|
||||
"modules-left": [
|
||||
"hyprland/workspaces"
|
||||
],
|
||||
"modules-center": [
|
||||
"clock"
|
||||
],
|
||||
"modules-right": [
|
||||
"group/tray-expander",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"cpu",
|
||||
"battery"
|
||||
],
|
||||
"hyprland/workspaces": {
|
||||
"on-click": "activate",
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"default": "",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7",
|
||||
"8": "8",
|
||||
"9": "9",
|
||||
"active": ""
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": [],
|
||||
"4": [],
|
||||
"5": []
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": "",
|
||||
"on-click": "alacritty -e btop"
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%A %H:%M}",
|
||||
"format-alt": "{:%d %B W%V %Y}",
|
||||
"tooltip": false
|
||||
},
|
||||
"network": {
|
||||
"format-icons": ["","","","",""],
|
||||
"format" : "{icon}",
|
||||
"format-wifi" : "{icon}",
|
||||
"format-ethernet" : "",
|
||||
"format-disconnected" : "",
|
||||
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"interval": 3,
|
||||
"nospacing": 1,
|
||||
"on-click": "alacritty --class=Impala -e impala"
|
||||
},
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-discharging": "{icon}",
|
||||
"format-charging": "{icon}",
|
||||
"format-plugged": "",
|
||||
"format-icons": {
|
||||
"charging": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
],
|
||||
"default": [
|
||||
"", "", "", "", "", "", "", "", "", ""
|
||||
]
|
||||
},
|
||||
"format-full": "",
|
||||
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
|
||||
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
|
||||
"interval": 5,
|
||||
"states": {
|
||||
"warning": 20,
|
||||
"critical": 10
|
||||
}
|
||||
},
|
||||
"bluetooth": {
|
||||
"format": "",
|
||||
"format-disabled": "",
|
||||
"format-connected": "",
|
||||
"tooltip-format": "Devices connected: {num_connections}",
|
||||
"on-click": "blueberry"
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{icon}",
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "pamixer -t",
|
||||
"tooltip-format": "Playing at {volume}%",
|
||||
"scroll-step": 5,
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", ""]
|
||||
}
|
||||
},
|
||||
"group/tray-expander": {
|
||||
"orientation": "inherit",
|
||||
"drawer": {
|
||||
"transition-duration": 600,
|
||||
"children-class": "tray-group-item"
|
||||
},
|
||||
"modules": [
|
||||
"custom/expand-icon",
|
||||
"tray"
|
||||
]
|
||||
},
|
||||
"custom/expand-icon": {
|
||||
"format": " ",
|
||||
"tooltip": false
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 12,
|
||||
"spacing": 12
|
||||
}
|
||||
}
|
||||
+20
-13
@@ -1,22 +1,31 @@
|
||||
@import "../omarchy/current/theme/waybar.css";
|
||||
|
||||
* {
|
||||
background-color: @background;
|
||||
color: @foreground;
|
||||
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
font-family: CaskaydiaMono Nerd Font;
|
||||
font-family: CaskaydiaMono Nerd Font Propo;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin-left: 7px;
|
||||
.modules-left {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
all: initial;
|
||||
padding: 2px 6px;
|
||||
margin-right: 3px;
|
||||
padding: 0 6px;
|
||||
margin: 0 1.5px;
|
||||
}
|
||||
|
||||
#custom-dropbox,
|
||||
#tray,
|
||||
#cpu,
|
||||
#battery,
|
||||
#network,
|
||||
@@ -25,15 +34,13 @@
|
||||
#clock,
|
||||
#custom-power-menu {
|
||||
min-width: 12px;
|
||||
margin-right: 13px;
|
||||
margin: 0 7.5px;
|
||||
}
|
||||
|
||||
#custom-expand-icon {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
@import "../omarchy/current/theme/waybar.css";
|
||||
@@ -1,65 +0,0 @@
|
||||
@define-color selected-text #7dcfff;
|
||||
@define-color text #cfc9c2;
|
||||
@define-color base #1a1b26;
|
||||
|
||||
* {
|
||||
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
window {
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: @base;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#input {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
margin-top: -200px;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#entry {
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
outline: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#entry:selected #text {
|
||||
color: @selected-text;
|
||||
}
|
||||
|
||||
#entry image {
|
||||
-gtk-icon-transform: scale(0.7);
|
||||
}
|
||||
@@ -1,8 +1,11 @@
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
||||
@import ".local/share/omarchy/default/wofi/search.css";
|
||||
/* Use by power menu, theme selector, and other menus without visible search bar */
|
||||
|
||||
@import ".config/wofi/style.css";
|
||||
|
||||
#input {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
margin-top: -200px;
|
||||
}
|
||||
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
||||
@@ -1,4 +1,4 @@
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
||||
/* Colors are defined by theme file and can be referenced via @base, @text, @selected-text, and @border */
|
||||
|
||||
* {
|
||||
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
||||
@@ -70,3 +70,5 @@ window {
|
||||
#entry image {
|
||||
-gtk-icon-transform: scale(0.7);
|
||||
}
|
||||
|
||||
@import ".config/omarchy/current/theme/wofi.css";
|
||||
@@ -15,7 +15,7 @@ zd() {
|
||||
fi
|
||||
}
|
||||
open() {
|
||||
xdg-open "$@" >/dev/null 2>&1
|
||||
xdg-open "$@" >/dev/null 2>&1 &
|
||||
}
|
||||
|
||||
# Directories
|
||||
|
||||
+8
-10
@@ -28,14 +28,12 @@ set completion-query-items 200
|
||||
# Show extra file information when completing, like `ls -F` does
|
||||
set visible-stats on
|
||||
|
||||
$if Bash
|
||||
# Be more intelligent when autocompleting by also looking at the text after
|
||||
# the cursor. For example, when the current line is "cd ~/src/mozil", and
|
||||
# the cursor is on the "z", pressing Tab will not autocomplete it to "cd
|
||||
# ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the
|
||||
# Readline used by Bash 4.)
|
||||
set skip-completed-text on
|
||||
# Be more intelligent when autocompleting by also looking at the text after
|
||||
# the cursor. For example, when the current line is "cd ~/src/mozil", and
|
||||
# the cursor is on the "z", pressing Tab will not autocomplete it to "cd
|
||||
# ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the
|
||||
# Readline used by Bash 4.)
|
||||
set skip-completed-text on
|
||||
|
||||
# Coloring for Bash 4 tab completions.
|
||||
set colored-stats on
|
||||
$endif
|
||||
# Coloring for Bash 4 tab completions.
|
||||
set colored-stats on
|
||||
@@ -4,3 +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
|
||||
@@ -0,0 +1,7 @@
|
||||
keyserver hkps://keyserver.ubuntu.com
|
||||
keyserver hkps://pgp.surfnet.nl
|
||||
keyserver hkps://keys.mailvelope.com
|
||||
keyserver hkps://keyring.debian.org
|
||||
keyserver hkps://pgp.mit.edu
|
||||
|
||||
connect-quick-timeout 4
|
||||
@@ -1,4 +1,7 @@
|
||||
exec-once = hypridle & mako & waybar & fcitx5
|
||||
exec-once = swaybg -i ~/.config/omarchy/current/background -m fill
|
||||
exec-once = uwsm app -- hypridle
|
||||
exec-once = uwsm app -- mako
|
||||
exec-once = uwsm app -- waybar
|
||||
exec-once = uwsm app -- fcitx5
|
||||
exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill
|
||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = wl-clip-persist --clipboard regular
|
||||
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'
|
||||
+5
-102
@@ -1,4 +1,5 @@
|
||||
# Start default apps
|
||||
# Deprecated bindings file. New installations include everything directly.
|
||||
|
||||
bind = SUPER, return, exec, $terminal
|
||||
bind = SUPER, F, exec, $fileManager
|
||||
bind = SUPER, B, exec, $browser
|
||||
@@ -10,104 +11,6 @@ bind = SUPER, G, exec, $messenger
|
||||
bind = SUPER, O, exec, obsidian -disable-gpu
|
||||
bind = SUPER, slash, exec, $passwordManager
|
||||
|
||||
bind = SUPER, space, exec, pkill wofi || wofi --show drun --sort-order=alphabetical --style="$HOME/.local/share/omarchy/default/wofi/search.css"
|
||||
|
||||
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
|
||||
|
||||
# Notifications
|
||||
bind = SUPER, comma, exec, makoctl dismiss
|
||||
bind = SUPER SHIFT, comma, exec, makoctl dismiss --all
|
||||
bind = SUPER CTRL, comma, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
|
||||
|
||||
bind = SUPER, W, killactive,
|
||||
|
||||
# Power menu controls lock, suspend, relaunch, restart, shutdown
|
||||
bind = SUPER, ESCAPE, exec, ~/.local/share/omarchy/bin/omarchy-power-menu
|
||||
|
||||
# Toggle idling
|
||||
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
|
||||
|
||||
# Control tiling
|
||||
bind = SUPER, J, togglesplit, # dwindle
|
||||
bind = SUPER, P, pseudo, # dwindle
|
||||
bind = SUPER, V, togglefloating,
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = SUPER, left, movefocus, l
|
||||
bind = SUPER, right, movefocus, r
|
||||
bind = SUPER, up, movefocus, u
|
||||
bind = SUPER, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
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, 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
|
||||
bind = SUPER SHIFT, right, swapwindow, r
|
||||
bind = SUPER SHIFT, up, swapwindow, u
|
||||
bind = SUPER SHIFT, down, swapwindow, d
|
||||
|
||||
# Resize active window
|
||||
bind = SUPER, minus, resizeactive, -100 0
|
||||
bind = SUPER, equal, resizeactive, 100 0
|
||||
bind = SUPER SHIFT, minus, resizeactive, 0 -100
|
||||
bind = SUPER SHIFT, equal, resizeactive, 0 100
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = SUPER, mouse_down, workspace, e+1
|
||||
bind = SUPER, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Control Apple Display brightness
|
||||
bind = CTRL, F1, exec, ~/.local/share/omarchy/bin/apple-display-brightness -5000
|
||||
bind = CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +5000
|
||||
bind = SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/apple-display-brightness +60000
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# Screenshots
|
||||
bind = , PRINT, exec, hyprshot -m region
|
||||
bind = SHIFT, PRINT, exec, hyprshot -m window
|
||||
bind = CTRL, PRINT, exec, hyprshot -m output
|
||||
|
||||
# Color picker
|
||||
bind = SUPER, PRINT, exec, hyprpicker -a
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/utilities.conf
|
||||
@@ -0,0 +1,13 @@
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
@@ -0,0 +1,58 @@
|
||||
# Close window
|
||||
bind = SUPER, W, killactive,
|
||||
|
||||
# Control tiling
|
||||
bind = SUPER, J, togglesplit, # dwindle
|
||||
bind = SUPER, P, pseudo, # dwindle
|
||||
bind = SUPER, V, togglefloating,
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = SUPER, left, movefocus, l
|
||||
bind = SUPER, right, movefocus, r
|
||||
bind = SUPER, up, movefocus, u
|
||||
bind = SUPER, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
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, 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
|
||||
bind = SUPER SHIFT, right, swapwindow, r
|
||||
bind = SUPER SHIFT, up, swapwindow, u
|
||||
bind = SUPER SHIFT, down, swapwindow, d
|
||||
|
||||
# Resize active window
|
||||
bind = SUPER, minus, resizeactive, -100 0
|
||||
bind = SUPER, equal, resizeactive, 100 0
|
||||
bind = SUPER SHIFT, minus, resizeactive, 0 -100
|
||||
bind = SUPER SHIFT, equal, resizeactive, 0 100
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = SUPER, mouse_down, workspace, e+1
|
||||
bind = SUPER, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = SUPER, mouse:272, movewindow
|
||||
bindm = SUPER, mouse:273, resizewindow
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# Launching
|
||||
bind = SUPER, space, exec, pkill wofi || wofi --show drun -O alphabetical
|
||||
bind = SUPER, K, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-menu-keybindings
|
||||
|
||||
# Aesthetics
|
||||
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
|
||||
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next
|
||||
bind = SUPER SHIFT CTRL, SPACE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-theme-menu
|
||||
|
||||
# Notifications
|
||||
bind = SUPER, comma, exec, makoctl dismiss
|
||||
bind = SUPER SHIFT, comma, exec, makoctl dismiss --all
|
||||
bind = SUPER CTRL, comma, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
|
||||
|
||||
# Power menu controls lock, suspend, relaunch, restart, shutdown
|
||||
bind = SUPER, ESCAPE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-menu-power
|
||||
|
||||
# Toggle idling
|
||||
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
|
||||
|
||||
# Control Apple Display brightness
|
||||
bind = CTRL, F1, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness -5000
|
||||
bind = CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness +5000
|
||||
bind = SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness +60000
|
||||
|
||||
# Screenshots
|
||||
bind = , PRINT, exec, hyprshot -m region
|
||||
bind = SHIFT, PRINT, exec, hyprshot -m window
|
||||
bind = CTRL, PRINT, exec, hyprshot -m output
|
||||
|
||||
# Color picker
|
||||
bind = SUPER, PRINT, exec, hyprpicker -a
|
||||
@@ -15,12 +15,6 @@ xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
# Make Chromium use XCompose and all Wayland
|
||||
env = CHROMIUM_FLAGS,"--enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4"
|
||||
|
||||
# Make .desktop files available for wofi
|
||||
env = XDG_DATA_DIRS,/usr/share:/usr/local/share:~/.local/share
|
||||
|
||||
# Use XCompose file
|
||||
env = XCOMPOSEFILE,~/.XCompose
|
||||
|
||||
|
||||
@@ -95,5 +95,5 @@ master {
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
focus_on_activate = true
|
||||
}
|
||||
|
||||
@@ -4,9 +4,15 @@ windowrule = suppressevent maximize, class:.*
|
||||
# Force chromium into a tile to deal with --app bug
|
||||
windowrule = tile, class:^(Chromium)$
|
||||
|
||||
# Float sound, bluetooth, and wifi settings
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala)$
|
||||
windowrule = size 800 600, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala)$
|
||||
# Float and center settings and previews
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
|
||||
windowrule = size 800 600, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
|
||||
windowrule = size 645 350, class:Omarchy
|
||||
windowrule = center, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
|
||||
|
||||
# Float and center file pickers
|
||||
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
||||
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
||||
|
||||
# Float Steam, fullscreen RetroArch
|
||||
windowrule = float, class:^(steam)$
|
||||
@@ -16,7 +22,7 @@ windowrule = fullscreen, class:^(com.libretro.RetroArch)$
|
||||
windowrule = opacity 0.97 0.9, class:.*
|
||||
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:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
|
||||
windowrule = opacity 1 1, class:^(com.libretro.RetroArch|steam)$
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
@@ -24,7 +30,3 @@ windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned
|
||||
|
||||
# Proper background blur for wofi
|
||||
layerrule = blur,wofi
|
||||
|
||||
# Float and cneter file pickers
|
||||
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?)
|
||||
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?)
|
||||
@@ -20,6 +20,7 @@ global.fake_progress_active = 0; # 0 / 1 boolean
|
||||
global.animation_frame = 0;
|
||||
global.fake_progress_start_time = 0; # Track when fake progress started
|
||||
global.password_shown = 0; # Track if password dialog has been shown
|
||||
global.max_progress = 0.0; # Track the maximum progress reached to prevent backwards movement
|
||||
|
||||
fun refresh_callback ()
|
||||
{
|
||||
@@ -55,11 +56,16 @@ Plymouth.SetRefreshFunction (refresh_callback);
|
||||
|
||||
fun update_progress_bar(progress)
|
||||
{
|
||||
width = Math.Int(progress_bar.original_image.GetWidth() * progress);
|
||||
if (width < 1) width = 1; # Ensure minimum width of 1 pixel
|
||||
|
||||
progress_bar.image = progress_bar.original_image.Scale(width, progress_bar.original_image.GetHeight());
|
||||
progress_bar.sprite.SetImage(progress_bar.image);
|
||||
# Only update if progress is moving forward
|
||||
if (progress > global.max_progress)
|
||||
{
|
||||
global.max_progress = progress;
|
||||
width = Math.Int(progress_bar.original_image.GetWidth() * progress);
|
||||
if (width < 1) width = 1; # Ensure minimum width of 1 pixel
|
||||
|
||||
progress_bar.image = progress_bar.original_image.Scale(width, progress_bar.original_image.GetHeight());
|
||||
progress_bar.sprite.SetImage(progress_bar.image);
|
||||
}
|
||||
}
|
||||
|
||||
fun show_progress_bar()
|
||||
@@ -90,11 +96,15 @@ fun hide_password_dialog()
|
||||
|
||||
fun start_fake_progress()
|
||||
{
|
||||
global.fake_progress = 0.0;
|
||||
global.real_progress = 0.0;
|
||||
# Don't reset if we already have progress
|
||||
if (global.max_progress == 0.0)
|
||||
{
|
||||
global.fake_progress = 0.0;
|
||||
global.real_progress = 0.0;
|
||||
update_progress_bar(0.0);
|
||||
}
|
||||
global.fake_progress_active = 1;
|
||||
global.animation_frame = 0;
|
||||
update_progress_bar(0.0);
|
||||
}
|
||||
|
||||
fun stop_fake_progress()
|
||||
@@ -149,8 +159,12 @@ fun display_password_callback (prompt, bullets)
|
||||
{
|
||||
global.password_shown = 1; # Mark that password dialog has been shown
|
||||
|
||||
# Reset progress when password dialog appears
|
||||
stop_fake_progress();
|
||||
hide_progress_bar();
|
||||
global.max_progress = 0.0;
|
||||
global.fake_progress = 0.0;
|
||||
global.real_progress = 0.0;
|
||||
show_password_dialog();
|
||||
|
||||
# Clear all bullets first
|
||||
|
||||
Regular → Executable
+9
-1
@@ -1,8 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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
|
||||
catch_errors() {
|
||||
echo -e "\n\e[31mOmarchy installation failed!\e[0m"
|
||||
echo "You can retry by running: bash ~/.local/share/omarchy/install.sh"
|
||||
echo "Get help from the community: https://discord.gg/tXFUdasqhY"
|
||||
}
|
||||
|
||||
trap catch_errors ERR
|
||||
|
||||
# Install everything
|
||||
for f in ~/.local/share/omarchy/install/*.sh; do
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo pacman -S --needed --noconfirm base-devel
|
||||
|
||||
if ! command -v yay &>/dev/null; then
|
||||
@@ -8,4 +10,7 @@ if ! command -v yay &>/dev/null; then
|
||||
cd -
|
||||
rm -rf yay-bin
|
||||
cd ~
|
||||
|
||||
# Add fun and color to the pacman installer
|
||||
sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf
|
||||
fi
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Need gum to query for input
|
||||
yay -S --noconfirm --needed gum
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed \
|
||||
wget curl unzip inetutils impala \
|
||||
fd eza fzf ripgrep zoxide bat \
|
||||
|
||||
+9
-8
@@ -1,20 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copy over Omarchy configs
|
||||
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
||||
|
||||
# Ensure application directory exists for update-desktop-database
|
||||
mkdir -p ~/.local/share/applications
|
||||
|
||||
# Setup GPG configuration with multiple keyservers for better reliability
|
||||
sudo mkdir -p /etc/gnupg
|
||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||
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
|
||||
|
||||
# Login directly as user, rely on disk encryption + hyprlock for security
|
||||
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
|
||||
sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf >/dev/null <<EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/usr/bin/agetty --autologin $USER --noclear %I \$TERM
|
||||
EOF
|
||||
|
||||
# Set common git aliases
|
||||
git config --global alias.co checkout
|
||||
git config --global alias.br branch
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install asdcontrol for controlling brightness on Apple Displays
|
||||
if ! command -v asdcontrol &>/dev/null; then
|
||||
if [ -z "$OMARCHY_BARE" ] && ! command -v asdcontrol &>/dev/null; then
|
||||
git clone https://github.com/nikosdion/asdcontrol.git /tmp/asdcontrol
|
||||
cd /tmp/asdcontrol
|
||||
make
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
BACKGROUNDS_DIR=~/.config/omarchy/backgrounds/
|
||||
|
||||
download_background_image() {
|
||||
local url="$1"
|
||||
local path="$2"
|
||||
gum spin --title "Downloading $url as $path..." -- curl -sL -o "$BACKGROUNDS_DIR/$path" "$url"
|
||||
}
|
||||
|
||||
for t in ~/.local/share/omarchy/themes/*; do source "$t/backgrounds.sh"; done
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install bluetooth controls
|
||||
yay -S --noconfirm --needed blueberry
|
||||
|
||||
|
||||
+6
-7
@@ -1,9 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed \
|
||||
brightnessctl playerctl pamixer pavucontrol wireplumber \
|
||||
fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool \
|
||||
wl-clip-persist \
|
||||
nautilus sushi ffmpegthumbnailer gnome-calculator \
|
||||
1password-beta 1password-cli gnome-keyring \
|
||||
chromium mpv \
|
||||
evince imv \
|
||||
localsend-bin
|
||||
fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool wl-clip-persist \
|
||||
nautilus sushi ffmpegthumbnailer \
|
||||
mpv evince imv \
|
||||
chromium
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed \
|
||||
cargo clang llvm mise \
|
||||
imagemagick \
|
||||
|
||||
+12
-1
@@ -1,4 +1,6 @@
|
||||
yay -S --noconfirm --needed docker docker-compose
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed docker docker-compose docker-buildx
|
||||
|
||||
# Limit log size to avoid running out of disk
|
||||
sudo mkdir -p /etc/docker
|
||||
@@ -9,3 +11,12 @@ sudo systemctl enable docker
|
||||
|
||||
# Give this user privileged Docker access
|
||||
sudo usermod -aG docker ${USER}
|
||||
|
||||
# Prevent Docker from preventing boot for network-online.target
|
||||
sudo mkdir -p /etc/systemd/system/docker.service.d
|
||||
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'
|
||||
[Unit]
|
||||
DefaultDependencies=no
|
||||
EOF
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
if ! command -v ufw &>/dev/null; then
|
||||
yay -Sy --noconfirm --needed ufw ufw-docker
|
||||
|
||||
# Allow nothing in, everything out
|
||||
sudo ufw default deny incoming
|
||||
sudo ufw default allow outgoing
|
||||
|
||||
# Allow ports for LocalSend
|
||||
sudo ufw allow 53317/udp
|
||||
sudo ufw allow 53317/tcp
|
||||
|
||||
# Allow SSH in
|
||||
sudo ufw allow 22/tcp
|
||||
|
||||
# Allow Docker containers to use DNS on host
|
||||
sudo ufw allow in on docker0 to any port 53
|
||||
|
||||
# Turn on the firewall
|
||||
sudo ufw enable
|
||||
|
||||
# Turn on Docker protections
|
||||
sudo ufw-docker install
|
||||
sudo ufw reload
|
||||
fi
|
||||
@@ -1,4 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
|
||||
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
|
||||
sudo mkinitcpio -P
|
||||
|
||||
# Rely on install/plymouth.sh to do the rebuild
|
||||
# sudo mkinitcpio -P
|
||||
fi
|
||||
+11
-1
@@ -1,4 +1,10 @@
|
||||
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
|
||||
#!/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
|
||||
else
|
||||
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji
|
||||
fi
|
||||
|
||||
mkdir -p ~/.local/share/fonts
|
||||
|
||||
@@ -10,6 +16,10 @@ if ! fc-list | grep -qi "CaskaydiaMono Nerd Font"; then
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFont-Bold.ttf ~/.local/share/fonts
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFont-Italic.ttf ~/.local/share/fonts
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFont-BoldItalic.ttf ~/.local/share/fonts
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Regular.ttf ~/.local/share/fonts
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Bold.ttf ~/.local/share/fonts
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Italic.ttf ~/.local/share/fonts
|
||||
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-BoldItalic.ttf ~/.local/share/fonts
|
||||
rm -rf CascadiaMono.zip CascadiaFont
|
||||
fc-cache
|
||||
cd -
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
yay -S --noconfirm --needed \
|
||||
hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \
|
||||
wofi waybar mako swaybg \
|
||||
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk
|
||||
|
||||
# Start Hyprland on first session
|
||||
echo "[[ -z \$DISPLAY && \$(tty) == /dev/tty1 ]] && exec Hyprland" >~/.bash_profile
|
||||
@@ -0,0 +1,126 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
|
||||
yay -S --noconfirm --needed uwsm
|
||||
|
||||
# Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop
|
||||
cat <<'CCODE' >/tmp/seamless-login.c
|
||||
/*
|
||||
* Seamless Login - Minimal SDDM-style Plymouth transition
|
||||
* Replicates SDDM's VT management for seamless auto-login
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/kd.h>
|
||||
#include <linux/vt.h>
|
||||
#include <sys/wait.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int vt_fd;
|
||||
int vt_num = 1; // TTY1
|
||||
char vt_path[32];
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "Usage: %s <session_command>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Open the VT (simple approach like SDDM)
|
||||
snprintf(vt_path, sizeof(vt_path), "/dev/tty%d", vt_num);
|
||||
vt_fd = open(vt_path, O_RDWR);
|
||||
if (vt_fd < 0) {
|
||||
perror("Failed to open VT");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Activate the VT
|
||||
if (ioctl(vt_fd, VT_ACTIVATE, vt_num) < 0) {
|
||||
perror("VT_ACTIVATE failed");
|
||||
close(vt_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Wait for VT to be active
|
||||
if (ioctl(vt_fd, VT_WAITACTIVE, vt_num) < 0) {
|
||||
perror("VT_WAITACTIVE failed");
|
||||
close(vt_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Critical: Set graphics mode to prevent console text
|
||||
if (ioctl(vt_fd, KDSETMODE, KD_GRAPHICS) < 0) {
|
||||
perror("KDSETMODE KD_GRAPHICS failed");
|
||||
close(vt_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Clear VT and close (like SDDM does)
|
||||
const char *clear_seq = "\33[H\33[2J";
|
||||
if (write(vt_fd, clear_seq, strlen(clear_seq)) < 0) {
|
||||
perror("Failed to clear VT");
|
||||
}
|
||||
|
||||
close(vt_fd);
|
||||
|
||||
// Set working directory to user's home
|
||||
const char *home = getenv("HOME");
|
||||
if (home) chdir(home);
|
||||
|
||||
// Now execute the session command
|
||||
execvp(argv[1], &argv[1]);
|
||||
perror("Failed to exec session");
|
||||
return 1;
|
||||
}
|
||||
CCODE
|
||||
|
||||
gcc -o /tmp/seamless-login /tmp/seamless-login.c
|
||||
sudo mv /tmp/seamless-login /usr/local/bin/seamless-login
|
||||
sudo chmod +x /usr/local/bin/seamless-login
|
||||
rm /tmp/seamless-login.c
|
||||
|
||||
cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service
|
||||
[Unit]
|
||||
Description=Omarchy Seamless Auto-Login
|
||||
Documentation=https://github.com/basecamp/omarchy
|
||||
Conflicts=getty@tty1.service
|
||||
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
|
||||
PartOf=graphical.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/seamless-login uwsm start -- hyprland.desktop
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
User=$USER
|
||||
TTYPath=/dev/tty1
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
TTYVTDisallocate=yes
|
||||
StandardInput=tty
|
||||
StandardOutput=journal
|
||||
StandardError=journal+console
|
||||
PAMName=login
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical.target
|
||||
EOF
|
||||
|
||||
# Make plymouth remain until graphical.target
|
||||
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d
|
||||
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
|
||||
[Unit]
|
||||
After=multi-user.target
|
||||
EOF
|
||||
|
||||
# Prevent plymouth-quit-wait.service
|
||||
sudo systemctl mask plymouth-quit-wait.service
|
||||
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable omarchy-seamless-login.service
|
||||
|
||||
# Disable getty@tty1 to prevent conflicts
|
||||
sudo systemctl disable getty@tty1.service
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
update-desktop-database ~/.local/share/applications
|
||||
|
||||
# Open all images with imv
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Install iwd explicitly if it wasn't included in archinstall
|
||||
# This can happen if archinstall used ethernet
|
||||
if ! command -v iwctl &>/dev/null; then
|
||||
yay -S --noconfirm --needed iwd
|
||||
sudo systemctl enable --now iwd.service
|
||||
fi
|
||||
|
||||
# Fix systemd-networkd-wait-online timeout for multiple interfaces
|
||||
# Wait for any interface to be online rather than all interfaces
|
||||
# https://wiki.archlinux.org/title/Systemd-networkd#Multiple_interfaces_that_are_not_connected_all_the_time
|
||||
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
|
||||
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
|
||||
EOF
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ==============================================================================
|
||||
# Hyprland NVIDIA Setup Script for Arch Linux
|
||||
# ==============================================================================
|
||||
|
||||
Loaded 100 of 180 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user