commit 9ac907761cf0938c543c079efe9213382791dcca Author: Javier Feliz Date: Thu Aug 7 18:19:16 2025 -0400 Init diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f12cfa7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) David Heinemeier Hansson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..92f9f9a --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# Arch Hyprland Setup + +Based on [omarchy.org](https://omarchy.org). + +Set up a fresh arch install. + +## License + +Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT). + diff --git a/applications/About.desktop b/applications/About.desktop new file mode 100644 index 0000000..3e674d7 --- /dev/null +++ b/applications/About.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=About +Comment=System information from Fastfetch +Exec=alacritty --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s' +Terminal=false +Type=Application +Icon=Arch +Categories=GTK; +StartupNotify=false + diff --git a/applications/Activity.desktop b/applications/Activity.desktop new file mode 100644 index 0000000..7f3d665 --- /dev/null +++ b/applications/Activity.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Activity +Comment=System activity from btop +Exec=alacritty --class=Activity --title=Activity -e btop +Terminal=false +Type=Application +Icon=Activity +Categories=GTK; +StartupNotify=false + diff --git a/applications/Docker.desktop b/applications/Docker.desktop new file mode 100644 index 0000000..72e17e6 --- /dev/null +++ b/applications/Docker.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Docker +Comment=Manage Docker containers with LazyDocker +Exec=alacritty --class=Docker --title=Docker -e lazydocker +Terminal=false +Type=Application +Icon=Docker +Categories=GTK; +StartupNotify=false + diff --git a/applications/btop.desktop b/applications/btop.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/btop.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/chromium.desktop b/applications/chromium.desktop new file mode 100644 index 0000000..5327cb5 --- /dev/null +++ b/applications/chromium.desktop @@ -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 diff --git a/applications/hidden/avahi-discover.desktop b/applications/hidden/avahi-discover.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/avahi-discover.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/bssh.desktop b/applications/hidden/bssh.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/bssh.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/bvnc.desktop b/applications/hidden/bvnc.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/bvnc.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/cmake-gui.desktop b/applications/hidden/cmake-gui.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/cmake-gui.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/cups.desktop b/applications/hidden/cups.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/cups.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/electron34.desktop b/applications/hidden/electron34.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/electron34.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/fcitx5-configtool.desktop b/applications/hidden/fcitx5-configtool.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/fcitx5-configtool.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/kbd-layout-viewer5.desktop b/applications/hidden/kbd-layout-viewer5.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/kbd-layout-viewer5.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/kcm_fcitx5.desktop b/applications/hidden/kcm_fcitx5.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/kcm_fcitx5.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/kcm_kaccounts.desktop b/applications/hidden/kcm_kaccounts.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/kcm_kaccounts.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/kvantummanager.desktop b/applications/hidden/kvantummanager.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/kvantummanager.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/org.fcitx.Fcitx5.desktop b/applications/hidden/org.fcitx.Fcitx5.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/org.fcitx.Fcitx5.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/org.fcitx.fcitx5-config-qt.desktop b/applications/hidden/org.fcitx.fcitx5-config-qt.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/org.fcitx.fcitx5-config-qt.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/org.fcitx.fcitx5-migrator.desktop b/applications/hidden/org.fcitx.fcitx5-migrator.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/org.fcitx.fcitx5-migrator.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/org.fcitx.fcitx5-qt5-gui-wrapper.desktop b/applications/hidden/org.fcitx.fcitx5-qt5-gui-wrapper.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/org.fcitx.fcitx5-qt5-gui-wrapper.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/org.fcitx.fcitx5-qt6-gui-wrapper.desktop b/applications/hidden/org.fcitx.fcitx5-qt6-gui-wrapper.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/org.fcitx.fcitx5-qt6-gui-wrapper.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/qv4l2.desktop b/applications/hidden/qv4l2.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/qv4l2.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/qvidcap.desktop b/applications/hidden/qvidcap.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/qvidcap.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/uuctl.desktop b/applications/hidden/uuctl.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/uuctl.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/xgps.desktop b/applications/hidden/xgps.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/xgps.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/hidden/xgpsspeed.desktop b/applications/hidden/xgpsspeed.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/hidden/xgpsspeed.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/icons/Activity.png b/applications/icons/Activity.png new file mode 100644 index 0000000..e0713bf Binary files /dev/null and b/applications/icons/Activity.png differ diff --git a/applications/icons/Arch.png b/applications/icons/Arch.png new file mode 100644 index 0000000..909f1b7 Binary files /dev/null and b/applications/icons/Arch.png differ diff --git a/applications/icons/Docker.png b/applications/icons/Docker.png new file mode 100644 index 0000000..c025759 Binary files /dev/null and b/applications/icons/Docker.png differ diff --git a/applications/icons/imv.png b/applications/icons/imv.png new file mode 100644 index 0000000..f9cac35 Binary files /dev/null and b/applications/icons/imv.png differ diff --git a/applications/imv.desktop b/applications/imv.desktop new file mode 100644 index 0000000..293afc8 --- /dev/null +++ b/applications/imv.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Image Viewer +Exec=imv %F +Icon=imv +Type=Application +MimeType=image/png;image/jpeg;image/jpg;image/gif;image/bmp;image/webp;image/tiff;image/x-xcf;image/x-portable-pixmap;image/x-xbitmap; +Terminal=false +Categories=Graphics;Viewer; diff --git a/applications/mpv.desktop b/applications/mpv.desktop new file mode 100644 index 0000000..776e2c9 --- /dev/null +++ b/applications/mpv.desktop @@ -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;إم بي في;ام بي في;وسائط;مشغل;فيديو;مرئية;صوتي;تلفاز; diff --git a/applications/nvim.desktop b/applications/nvim.desktop new file mode 100644 index 0000000..ce0a131 --- /dev/null +++ b/applications/nvim.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Neovim +GenericName=Text Editor +Comment=Edit text files +Exec=alacritty --class=nvim --title=nvim -e nvim -- %F +Terminal=false +Type=Application +Keywords=Text;editor; +Icon=nvim +Categories=Utility;TextEditor; +StartupNotify=false +MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; diff --git a/applications/wiremix.desktop b/applications/wiremix.desktop new file mode 100644 index 0000000..6b7be68 --- /dev/null +++ b/applications/wiremix.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Audio Settings +Comment=Using Wiremix +Exec=alacritty --class=Wiremix --title=Wiremix -e wiremix +Icon=audio-card +Type=Application +Terminal=false diff --git a/applications/xtras/Zoom.desktop b/applications/xtras/Zoom.desktop new file mode 100644 index 0000000..8bce96d --- /dev/null +++ b/applications/xtras/Zoom.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Zoom +Comment=Zoom Video Conference +Exec=env QT_SCALE_FACTOR=2 /usr/bin/zoom %U +Icon=Zoom +Terminal=false +Type=Application +Encoding=UTF-8 +Categories=Network;Application; +StartupWMClass=zoom +MimeType=x-scheme-handler/zoommtg;x-scheme-handler/zoomus;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/zoomphonecall;x-scheme-handler/zoomphonesms;x-scheme-handler/zoomcontactcentercall;application/x-zoom +X-KDE-Protocols=zoommtg;zoomus;tel;callto;zoomphonecall;zoomphonesms;zoomcontactcentercall; diff --git a/applications/xtras/dropbox.desktop b/applications/xtras/dropbox.desktop new file mode 100644 index 0000000..e1e3e17 --- /dev/null +++ b/applications/xtras/dropbox.desktop @@ -0,0 +1,2 @@ +[Desktop Entry] +Hidden=true diff --git a/applications/xtras/typora.desktop b/applications/xtras/typora.desktop new file mode 100644 index 0000000..c1af035 --- /dev/null +++ b/applications/xtras/typora.desktop @@ -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; + diff --git a/bin/omarchy-battery-monitor b/bin/omarchy-battery-monitor new file mode 100755 index 0000000..05f4a44 --- /dev/null +++ b/bin/omarchy-battery-monitor @@ -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 "󱐋 Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000 +} + +BATTERY_LEVEL=$(get_battery_percentage) +BATTERY_STATE=$(get_battery_state) + +if [[ "$BATTERY_STATE" == "discharging" && "$BATTERY_LEVEL" -le "$BATTERY_THRESHOLD" ]]; then + if [[ ! -f "$NOTIFICATION_FLAG" ]]; then + send_notification "$BATTERY_LEVEL" + touch "$NOTIFICATION_FLAG" + fi +else + rm -f "$NOTIFICATION_FLAG" +fi diff --git a/bin/omarchy-cmd-apple-display-brightness b/bin/omarchy-cmd-apple-display-brightness new file mode 100755 index 0000000..e611e8b --- /dev/null +++ b/bin/omarchy-cmd-apple-display-brightness @@ -0,0 +1,7 @@ +#!/bin/bash + +if [[ $# -eq 0 ]]; then + echo "Adjust Apple Display Brightness by passing +5000 or -5000 (or any range from 0-60000)" +else + sudo asdcontrol $(sudo asdcontrol --detect /dev/usb/hiddev* | grep ^/dev/usb/hiddev | cut -d: -f1) -- "$1" +fi diff --git a/bin/omarchy-cmd-screenrecord b/bin/omarchy-cmd-screenrecord new file mode 100755 index 0000000..1d05fae --- /dev/null +++ b/bin/omarchy-cmd-screenrecord @@ -0,0 +1,32 @@ +#!/bin/bash + +[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs +OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000 + exit 1 +fi + +screenrecording() { + filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" + notify-send "Screen recording starting..." -t 1000 + sleep 1 + + 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 || pgrep -x wf-recorder >/dev/null; then + pkill -x wl-screenrec + pkill -x wf-recorder + notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000 +elif [[ "$1" == "output" ]]; then + screenrecording +else + region=$(slurp) || exit 1 + screenrecording -g "$region" +fi diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver new file mode 100755 index 0000000..65bbce2 --- /dev/null +++ b/bin/omarchy-cmd-screensaver @@ -0,0 +1,20 @@ +#!/bin/bash + +if command -v tte &>/dev/null; then + while true; do + effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1) + tte -i ~/.local/share/omarchy/logo.txt \ + --frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \ + "$effect" & + + while pgrep tte >/dev/null; do + if read -n 1 -t 0.01; then + pkill tte 2>/dev/null + pkill -f "alacritty --class Screensaver" 2>/dev/null + exit 0 + fi + done + done +else + gum spin --title "Can't find tte. Try: pip install terminaltexteffects" -- sleep 2 +fi diff --git a/bin/omarchy-cmd-screenshot b/bin/omarchy-cmd-screenshot new file mode 100755 index 0000000..330dde3 --- /dev/null +++ b/bin/omarchy-cmd-screenshot @@ -0,0 +1,17 @@ +#!/bin/bash + +[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs +OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000 + exit 1 +fi + +pkill slurp || hyprshot -m ${1:-region} --raw | + satty --filename - \ + --output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \ + --early-exit \ + --actions-on-enter save-to-clipboard \ + --save-after-copy \ + --copy-command 'wl-copy' diff --git a/bin/omarchy-cmd-tzupdate b/bin/omarchy-cmd-tzupdate new file mode 100755 index 0000000..1c5d0ac --- /dev/null +++ b/bin/omarchy-cmd-tzupdate @@ -0,0 +1,5 @@ +#!/bin/bash + +sudo tzupdate +new_timezone=$(timedatectl show -p Timezone --value) +notify-send "Timezone has been set to $new_timezone" diff --git a/bin/omarchy-dev-add-migration b/bin/omarchy-dev-add-migration new file mode 100755 index 0000000..21eea4f --- /dev/null +++ b/bin/omarchy-dev-add-migration @@ -0,0 +1,6 @@ +#!/bin/bash + +cd ~/.local/share/omarchy +migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh" +touch $migration_file +nvim $migration_file diff --git a/bin/omarchy-font-list b/bin/omarchy-font-list new file mode 100755 index 0000000..6bf504b --- /dev/null +++ b/bin/omarchy-font-list @@ -0,0 +1,3 @@ +#!/bin/bash + +fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | sort -u diff --git a/bin/omarchy-font-set b/bin/omarchy-font-set new file mode 100755 index 0000000..c34cb9e --- /dev/null +++ b/bin/omarchy-font-set @@ -0,0 +1,23 @@ +#!/bin/bash + +font_name="$1" + +if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then + if fc-list | grep -iq "$font_name"; then + sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml + sed -i "s/font-family: .*/font-family: $font_name;/g" ~/.config/waybar/style.css + sed -i "s/font-family: .*/font-family: $font_name;/g" ~/.config/swayosd/style.css + xmlstarlet ed -L \ + -u '//match[@target="pattern"][test/string="monospace"]/edit[@name="family"]/string' \ + -v "$font_name" \ + ~/.config/fontconfig/fonts.conf + + ~/.local/share/omarchy/bin/omarchy-restart-waybar + ~/.local/share/omarchy/bin/omarchy-restart-swayosd + else + echo "Font '$font_name' not found." + exit 1 + fi +else + echo "Usage: omarchy-font-set " +fi diff --git a/bin/omarchy-launch-screensaver b/bin/omarchy-launch-screensaver new file mode 100755 index 0000000..b557f13 --- /dev/null +++ b/bin/omarchy-launch-screensaver @@ -0,0 +1,16 @@ +#!/bin/bash + +# Exit early if screensave is already running +pgrep -f "alacritty --class Screensaver" && exit 0 + +focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name') + +for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do + hyprctl dispatch focusmonitor $m + hyprctl dispatch exec -- \ + alacritty --class Screensaver \ + --config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \ + -e ~/.local/share/omarchy/bin/omarchy-cmd-screensaver +done + +hyprctl dispatch focusmonitor $focused diff --git a/bin/omarchy-menu b/bin/omarchy-menu new file mode 100755 index 0000000..fa6c576 --- /dev/null +++ b/bin/omarchy-menu @@ -0,0 +1,258 @@ +#!/bin/bash + +OMARCHY_BIN_PATH=~/.local/share/omarchy/bin + +menu() { + echo -e "$2" | walker --dmenu --theme dmenu_250 -p "$1…" $3 +} + +terminal() { + alacritty --class Omarchy -e $1 +} + +present_terminal() { + alacritty --class Omarchy -e bash -c "~/.local/share/omarchy/bin/omarchy-show-logo; eval \"$1\"; ~/.local/share/omarchy/bin/omarchy-show-done;" +} + +edit_in_nvim() { + notify-send "Editing config file" "$1" + alacritty -e nvim "$1" +} + +install_and_launch() { + present_terminal "echo 'Installing $1...'; yay -Sy --noconfirm $2 && gtk-launch $3" +} + +install_font() { + present_terminal "echo 'Installing $1...'; yay -Sy --noconfirm --needed $2 && sleep 2 && ~/.local/share/omarchy/bin/omarchy-font-set '$3'" +} + +show_learn_menu() { + case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n Neovim\n󱆃 Bash") in + *Keybindings*) $OMARCHY_BIN_PATH/omarchy-menu-keybindings ;; + *Omarchy*) setsid chromium --new-window --app="https://manuals.omamix.org/2/the-omarchy-manual" & ;; + *Hyprland*) setsid chromium --new-window --app="https://wiki.hypr.land/" & ;; + *Arch*) setsid chromium --new-window --app="https://wiki.archlinux.org/title/Main_page" & ;; + *Bash*) setsid chromium --new-window --app="https://devhints.io/bash" & ;; + *Neovim*) setsid chromium --new-window --app="https://www.lazyvim.org/keymaps" & ;; + *) show_main_menu ;; + esac +} + +show_style_menu() { + case $(menu "Style" "󰸌 Theme\n Font\n Background") in + *Theme*) show_theme_menu ;; + *Font*) show_font_menu ;; + *Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;; + *) show_main_menu ;; + esac +} + +show_theme_menu() { + theme=$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)") + if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then + show_main_menu + else + $OMARCHY_BIN_PATH/omarchy-theme-set "$theme" + fi +} + +show_font_menu() { + theme=$(menu "Font" "$($OMARCHY_BIN_PATH/omarchy-font-list)" "-w 350") + if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then + show_main_menu + else + $OMARCHY_BIN_PATH/omarchy-font-set "$theme" + fi +} + +show_capture_menu() { + case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in + *Screenshot*) show_screenshot_menu ;; + *Screenrecord*) show_screenrecord_menu ;; + *Color*) pkill hyprpicker || hyprpicker -a ;; + *) show_main_menu ;; + esac +} + +show_screenshot_menu() { + case $(menu "Screenshot" " Region\n Window\n Display") in + *Region*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot ;; + *Window*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot window ;; + *Display*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot output ;; + *) show_capture_menu ;; + esac +} + +show_screenrecord_menu() { + case $(menu "Screenrecord" " Region\n Display") in + *Region*) $OMARCHY_BIN_PATH/omarchy-cmd-screenrecord ;; + *Display*) $OMARCHY_BIN_PATH/omarchy-cmd-screenrecord output ;; + *) show_capture_menu ;; + esac +} + +show_toggle_menu() { + case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar") in + *Screensaver*) $OMARCHY_BIN_PATH/omarchy-launch-screensaver ;; + *Nightlight*) $OMARCHY_BIN_PATH/omarchy-toggle-nightlight ;; + *Idle*) $OMARCHY_BIN_PATH/omarchy-toggle-idle ;; + *Bar*) pkill -SIGUSR1 waybar ;; + *) show_main_menu ;; + esac +} + +show_setup_menu() { + local options=" Audio\n Wifi\n󰂯 Bluetooth\n󱐋 Power Profile\n󰍹 Monitors" + [ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings" + [ -f ~/.config/hypr/input.conf ] && options="$options\n Input" + options="$options\n Configs\n󰈷 Fingerprint\n Fido2" + + case $(menu "Setup" "$options") in + *Audio*) alacritty --class=Wiremix -e wiremix ;; + *Wifi*) alacritty --class=Impala -e impala ;; + *Bluetooth*) blueberry ;; + *Power*) show_setup_power_menu ;; + *Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;; + *Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;; + *Input*) edit_in_nvim ~/.config/hypr/input.conf ;; + *Configs*) show_setup_configs_menu ;; + *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; + *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; + *) show_main_menu ;; + esac +} + +show_setup_power_menu() { + current_profile=$(powerprofilesctl get) + new_profile=$(menu "Power Profile" "$($OMARCHY_BIN_PATH/omarchy-powerprofiles-list)" "-a '${current_profile}'") + + if [[ "$new_profile" == "CNCLD" || -z "$new_profile" ]]; then + show_main_menu + else + powerprofilesctl set "$new_profile" + fi +} + +show_setup_configs_menu() { + case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar\n󰞅 XCompose") in + *Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;; + *Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && ~/.local/share/omarchy/bin/omarchy-restart-hypridle ;; + *Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;; + *Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && ~/.local/share/omarchy/bin/omarchy-restart-hyprsunset ;; + *Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && ~/.local/share/omarchy/bin/omarchy-restart-swayosd ;; + *Walker*) edit_in_nvim ~/.config/walker/config.toml && ~/.local/share/omarchy/bin/omarchy-restart-walker ;; + *Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && ~/.local/share/omarchy/bin/omarchy-restart-waybar ;; + *XCompose*) edit_in_nvim ~/.XCompose && ~/.local/share/omarchy/bin/omarchy-restart-xcompose ;; + *) show_main_menu ;; + esac +} + +show_install_menu() { + case $(menu "Install" "󰣇 Package\n Web App\n Editor\n󰸌 Theme\n Background\n Font\n Dropbox\n Steam\n Docker DBs") in + *Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-install ;; + *Web*) terminal $OMARCHY_BIN_PATH/omarchy-webapp-install ;; + *Editor*) show_install_editor_menu ;; + *Theme*) terminal $OMARCHY_BIN_PATH/omarchy-theme-install ;; + *Background*) nautilus ~/.config/omarchy/current/theme/backgrounds ;; + *Font*) show_install_font_menu ;; + *Dropbox*) terminal $OMARCHY_BIN_PATH/omarchy-setup-dropbox ;; + *Steam*) terminal $OMARCHY_BIN_PATH/omarchy-setup-steam ;; + *Docker*) terminal $OMARCHY_BIN_PATH/omarchy-setup-docker-dbs ;; + *) show_main_menu ;; + esac +} + +show_install_editor_menu() { + case $(menu "Install" " VSCode\n Cursor\n Zed") in + *VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;; + *Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor-cursor" ;; + *Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; + *) show_install_menu ;; + esac +} + +show_install_font_menu() { + case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono" "-w 350") in + *Meslo*) install_font "Meslo LG Mono" "ttf-meslo-nerd" "MesloLGL Nerd Font" ;; + *Fira*) install_font "Fira Code" "ttf-firacode-nerd" "FiraCode Nerd Font" ;; + *Victor*) install_font "Victor Code" "ttf-victor-mono-nerd" "VictorMono Nerd Font" ;; + *Bistream*) install_font "Bistream Vera Code" "ttf-bitstream-vera-mono-nerd" "BitstromWera Nerd Font" ;; + *) show_install_menu ;; + esac +} + +show_remove_menu() { + case $(menu "Remove" "󰣇 Package\n Web App\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in + *Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-remove ;; + *Web*) terminal $OMARCHY_BIN_PATH/omarchy-webapp-remove ;; + *Theme*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-remove ;; + *Fingerprint*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fingerprint --remove" ;; + *Fido2*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fido2 --remove" ;; + *) show_main_menu ;; + esac +} + +show_update_menu() { + case $(menu "Update" "󰣇 Omarchy\n Configs\n󰸌 Themes\n Timezone") in + *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; + *Configs*) show_update_configs_menu ;; + *Themes*) terminal $OMARCHY_BIN_PATH/omarchy-theme-update ;; + *Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;; + *) show_main_menu ;; + esac +} + +show_update_configs_menu() { + case $(menu "Use default config" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n󱣴 Plymouth\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in + *Hyprland*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprland ;; + *Hypridle*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hypridle ;; + *Hyprlock*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprlock ;; + *Hyprsunset*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprsunset ;; + *Plymouth*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-plymouth ;; + *Swayosd*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-swayosd ;; + *Walker*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-walker ;; + *Waybar*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-waybar ;; + *) show_main_menu ;; + esac +} + +show_system_menu() { + case $(menu "System" " Lock\n󰤄 Suspend\n Relaunch\n󰜉 Restart\n󰐥 Shutdown") in + *Lock*) hyprlock ;; + *Suspend*) systemctl suspend ;; + *Relaunch*) uwsm stop ;; + *Restart*) systemctl reboot ;; + *Shutdown*) systemctl poweroff ;; + *) show_main_menu ;; + esac +} + +show_main_menu() { + go_to_menu "$(menu "Go" "󰀻 Apps\n󰧑 Learn\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n About\n System")" +} + +go_to_menu() { + case "${1,,}" in + *apps*) walker -p "Launch…" ;; + *learn*) show_learn_menu ;; + *style*) show_style_menu ;; + *theme*) show_theme_menu ;; + *capture*) show_capture_menu ;; + *screenshot*) show_screenshot_menu ;; + *screenrecord*) show_screenrecord_menu ;; + *toggle*) show_toggle_menu ;; + *setup*) show_setup_menu ;; + *install*) show_install_menu ;; + *remove*) show_remove_menu ;; + *update*) show_update_menu ;; + *system*) show_system_menu ;; + *about*) gtk-launch About.desktop ;; + esac +} + +if [[ -n "$1" ]]; then + go_to_menu "$1" +else + show_main_menu +fi diff --git a/bin/omarchy-menu-keybindings b/bin/omarchy-menu-keybindings new file mode 100755 index 0000000..a851871 --- /dev/null +++ b/bin/omarchy-menu-keybindings @@ -0,0 +1,86 @@ +#!/bin/bash + +# A script to display Hyprland keybindings defined in your configuration +# using walker for an interactive search menu. + +# Fetch dynamic keybindings from Hyprland +# +# Also do some pre-processing: +# - Remove standard Omarchy bin path prefix +# - Remove uwsm prefix +# - Map numeric modifier key mask to a textual rendition +# - Output comma-separated values that the parser can understand +dynamic_bindings() { + hyprctl -j binds | \ + jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' | \ + sed -r \ + -e 's/null//' \ + -e 's,~/.local/share/omarchy/bin/,,' \ + -e 's,uwsm app -- ,,' \ + -e 's/@0//' \ + -e 's/,@/,code:/' \ + -e 's/^0,/,/' \ + -e 's/^1,/SHIFT,/' \ + -e 's/^4,/CTRL,/' \ + -e 's/^5,/SHIFT CTRL,/' \ + -e 's/^8,/ALT,/' \ + -e 's/^9,/SHIFT ALT,/' \ + -e 's/^12,/CTRL ALT,/' \ + -e 's/^13,/SHIFT CTRL ALT,/' \ + -e 's/^64,/SUPER,/' \ + -e 's/^65,/SUPER SHIFT,/' \ + -e 's/^68,/SUPER CTRL,/' \ + -e 's/^69,/SUPER SHIFT CTRL,/' \ + -e 's/^72,/SUPER ALT,/' +} + +# Parse and format keybindings +# +# `awk` does the heavy lifting: +# - Set the field separator to a comma ','. +# - Joins the key combination (e.g., "SUPER + Q"). +# - Joins the command that the key executes. +# - Prints everything in a nicely aligned format. +parse_bindings() { + awk -F, ' +{ + # Combine the modifier and key (first two fields) + key_combo = $1 " + " $2; + + # Clean up: strip leading "+" if present, trim spaces + gsub(/^[ \t]*\+?[ \t]*/, "", key_combo); + gsub(/[ \t]+$/, "", key_combo); + + # Use description, if set + action = $3; + + if (action == "") { + # Reconstruct the command from the remaining fields + for (i = 4; i <= NF; i++) { + action = action $i (i < NF ? "," : ""); + } + + # Clean up trailing commas, remove leading "exec, ", and trim + sub(/,$/, "", action); + gsub(/(^|,)[[:space:]]*exec[[:space:]]*,?/, "", action); + gsub(/^[ \t]+|[ \t]+$/, "", action); + gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one + + # Escape XML entities + gsub(/&/, "\\&", action); + gsub(//, "\\>", action); + gsub(/"/, "\\"", action); + gsub(/'"'"'/, "\\'", action); + } + + if (action != "") { + printf "%-35s → %s\n", key_combo, action; + } +}' +} + +dynamic_bindings | \ + sort -u | \ + parse_bindings | \ + walker --dmenu --theme keybindings -p 'Keybindings' diff --git a/bin/omarchy-migrate b/bin/omarchy-migrate new file mode 100755 index 0000000..00e6556 --- /dev/null +++ b/bin/omarchy-migrate @@ -0,0 +1,18 @@ +#!/bin/bash + +set -e + +# Where we store an empty file for each migration that has already been performed. +STATE_DIR="$HOME/.local/state/omarchy/migrations" +mkdir -p "$STATE_DIR" + +# Run any pending migrations +for file in ~/.local/share/omarchy/migrations/*.sh; do + filename=$(basename "$file") + + if [[ ! -f "$STATE_DIR/$filename" ]]; then + echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m" + source $file + touch "$STATE_DIR/$filename" + fi +done diff --git a/bin/omarchy-pkg-install b/bin/omarchy-pkg-install new file mode 100755 index 0000000..b407e35 --- /dev/null +++ b/bin/omarchy-pkg-install @@ -0,0 +1,9 @@ +#!/bin/bash + +pkg_name=$(yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75%) + +if [[ -n "$pkg_name" ]]; then + yay -Sy --noconfirm "$pkg_name" + sudo updatedb + ~/.local/share/omarchy/bin/omarchy-show-done +fi diff --git a/bin/omarchy-pkg-remove b/bin/omarchy-pkg-remove new file mode 100755 index 0000000..c9286c2 --- /dev/null +++ b/bin/omarchy-pkg-remove @@ -0,0 +1,9 @@ +#!/bin/bash + +pkg_name=$(yay -Qqe | fzf --multi --preview 'yay -Qi {1}' --preview-window=down:75%) + +if [[ -n "$pkg_name" ]]; then + yay -Rns --noconfirm "$pkg_name" + sudo updatedb + ~/.local/share/omarchy/bin/omarchy-show-done +fi diff --git a/bin/omarchy-powerprofiles-list b/bin/omarchy-powerprofiles-list new file mode 100755 index 0000000..b0b5d82 --- /dev/null +++ b/bin/omarchy-powerprofiles-list @@ -0,0 +1,5 @@ +#!/bin/bash + +powerprofilesctl list | + awk '/^\s*[* ]\s*[a-zA-Z0-9\-]+:$/ { gsub(/^[*[:space:]]+|:$/,""); print }' | + tac diff --git a/bin/omarchy-refresh-applications b/bin/omarchy-refresh-applications new file mode 100755 index 0000000..429cbb8 --- /dev/null +++ b/bin/omarchy-refresh-applications @@ -0,0 +1,18 @@ +#!/bin/bash + +# Copy and sync icon files +mkdir -p ~/.local/share/icons/hicolor/48x48/apps/ +cp ~/.local/share/omarchy/applications/icons/*.png ~/.local/share/icons/hicolor/48x48/apps/ +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/ + +# Only copy xtras if user is not in bare mode +if [[ ! -f ~/.local/state/omarchy/bare.mode ]] && [ -z "$OMARCHY_BARE" ]; then + cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/ +fi + +update-desktop-database ~/.local/share/applications diff --git a/bin/omarchy-refresh-config b/bin/omarchy-refresh-config new file mode 100755 index 0000000..b60df74 --- /dev/null +++ b/bin/omarchy-refresh-config @@ -0,0 +1,40 @@ +#!/bin/bash + +# This script deploys ~/.local/share/omarchy/config/X/Y/Z -> ~/.config/X/Y/Z +config_file=$1 + +if [[ -z "$config_file" ]]; then + cat </dev/null + + # Replace config with new default + cp -f "$default_config_file" "$user_config_file" 2>/dev/null + + # Compare and delete/inform accordingly + if cmp -s "$user_config_file" "$backup_config_file"; then + rm "$backup_config_file" + else + echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m" + diff "$user_config_file" "$backup_config_file" + fi +else + # Config file did not exist already + cp -f "$default_config_file" "$user_config_file" 2>/dev/null +fi diff --git a/bin/omarchy-refresh-hypridle b/bin/omarchy-refresh-hypridle new file mode 100755 index 0000000..7821e43 --- /dev/null +++ b/bin/omarchy-refresh-hypridle @@ -0,0 +1,4 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hypridle.conf +~/.local/share/omarchy/bin/omarchy-restart-hypridle diff --git a/bin/omarchy-refresh-hyprland b/bin/omarchy-refresh-hyprland new file mode 100755 index 0000000..e62134c --- /dev/null +++ b/bin/omarchy-refresh-hyprland @@ -0,0 +1,7 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/autostart.conf +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/bindings.conf +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/envs.conf +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/input.conf +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprland.conf diff --git a/bin/omarchy-refresh-hyprlock b/bin/omarchy-refresh-hyprlock new file mode 100755 index 0000000..345d6ae --- /dev/null +++ b/bin/omarchy-refresh-hyprlock @@ -0,0 +1,3 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprlock.conf diff --git a/bin/omarchy-refresh-hyprsunset b/bin/omarchy-refresh-hyprsunset new file mode 100755 index 0000000..fb458af --- /dev/null +++ b/bin/omarchy-refresh-hyprsunset @@ -0,0 +1,4 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprsunset.conf +~/.local/share/omarchy/bin/omarchy-restart-hyprsunset diff --git a/bin/omarchy-refresh-plymouth b/bin/omarchy-refresh-plymouth new file mode 100755 index 0000000..deb2852 --- /dev/null +++ b/bin/omarchy-refresh-plymouth @@ -0,0 +1,6 @@ +#!/bin/bash + +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 diff --git a/bin/omarchy-refresh-swayosd b/bin/omarchy-refresh-swayosd new file mode 100755 index 0000000..c290373 --- /dev/null +++ b/bin/omarchy-refresh-swayosd @@ -0,0 +1,5 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config swayosd/config.toml +~/.local/share/omarchy/bin/omarchy-refresh-config swayosd/style.css +~/.local/share/omarchy/bin/omarchy-restart-swayosd diff --git a/bin/omarchy-refresh-walker b/bin/omarchy-refresh-walker new file mode 100755 index 0000000..90053ac --- /dev/null +++ b/bin/omarchy-refresh-walker @@ -0,0 +1,4 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config walker/config.toml +~/.local/share/omarchy/bin/omarchy-restart-walker diff --git a/bin/omarchy-refresh-waybar b/bin/omarchy-refresh-waybar new file mode 100755 index 0000000..3401efd --- /dev/null +++ b/bin/omarchy-refresh-waybar @@ -0,0 +1,5 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-refresh-config waybar/config.jsonc +~/.local/share/omarchy/bin/omarchy-refresh-config waybar/style.css +~/.local/share/omarchy/bin/omarchy-restart-waybar diff --git a/bin/omarchy-restart-app b/bin/omarchy-restart-app new file mode 100755 index 0000000..8cf2a03 --- /dev/null +++ b/bin/omarchy-restart-app @@ -0,0 +1,4 @@ +#!/bin/bash + +pkill -x $1 +setsid uwsm app -- $1 >/dev/null 2>&1 & diff --git a/bin/omarchy-restart-hypridle b/bin/omarchy-restart-hypridle new file mode 100755 index 0000000..501440c --- /dev/null +++ b/bin/omarchy-restart-hypridle @@ -0,0 +1,3 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-restart-app hypridle diff --git a/bin/omarchy-restart-hyprsunset b/bin/omarchy-restart-hyprsunset new file mode 100755 index 0000000..01b2fa7 --- /dev/null +++ b/bin/omarchy-restart-hyprsunset @@ -0,0 +1,3 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-restart-app hyprsunset diff --git a/bin/omarchy-restart-swayosd b/bin/omarchy-restart-swayosd new file mode 100755 index 0000000..4a1af50 --- /dev/null +++ b/bin/omarchy-restart-swayosd @@ -0,0 +1,3 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-restart-app swayosd-server diff --git a/bin/omarchy-restart-walker b/bin/omarchy-restart-walker new file mode 100755 index 0000000..2d4aa4b --- /dev/null +++ b/bin/omarchy-restart-walker @@ -0,0 +1,4 @@ +#!/bin/bash + +pkill walker +setsid uwsm app -- walker --gapplication-service & diff --git a/bin/omarchy-restart-waybar b/bin/omarchy-restart-waybar new file mode 100755 index 0000000..9e3a181 --- /dev/null +++ b/bin/omarchy-restart-waybar @@ -0,0 +1,3 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-restart-app waybar diff --git a/bin/omarchy-restart-xcompose b/bin/omarchy-restart-xcompose new file mode 100755 index 0000000..c1714a5 --- /dev/null +++ b/bin/omarchy-restart-xcompose @@ -0,0 +1,3 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-restart-app fcitx5 diff --git a/bin/omarchy-setup-docker-dbs b/bin/omarchy-setup-docker-dbs new file mode 100755 index 0000000..ead59c3 --- /dev/null +++ b/bin/omarchy-setup-docker-dbs @@ -0,0 +1,19 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-show-logo + +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 + 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 ;; + 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 ;; + 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 ;; + Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;; + esac + done +fi + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-dropbox b/bin/omarchy-setup-dropbox new file mode 100755 index 0000000..000e24b --- /dev/null +++ b/bin/omarchy-setup-dropbox @@ -0,0 +1,13 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-show-logo + +echo "Installing all dependencies..." +yay -S --noconfirm --needed \ + dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox + +echo "Starting Dropbox..." +uwsm app -- dropbox-cli start &>/dev/null & +echo "See Dropbox icon behind  hover tray in top right and right-click for setup." + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-fido2 b/bin/omarchy-setup-fido2 new file mode 100755 index 0000000..11f29df --- /dev/null +++ b/bin/omarchy-setup-fido2 @@ -0,0 +1,43 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-show-logo + +if [[ "--remove" == "$1" ]]; then + echo -e "\e[32mLet's remove your Fido2 device from sudo authentication.\n\e[0m" + 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 + echo -e "\e[32mLet's setup your Fido2 device for sudo authentication.\n\e[0m" + 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 + if [ $? -ne 0 ]; then + echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m" + exit 1 + fi + 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 + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-fingerprint b/bin/omarchy-setup-fingerprint new file mode 100755 index 0000000..6e512db --- /dev/null +++ b/bin/omarchy-setup-fingerprint @@ -0,0 +1,49 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-show-logo + +if [[ "--remove" == "$1" ]]; then + echo -e "\e[32mLet's remove your fingerprint scanner from authentication.\n\e[0m" + 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 + echo -e "\e[32mLet's setup your fingerprint scanner for authentication.\n\e[0m" + 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 + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-steam b/bin/omarchy-setup-steam new file mode 100755 index 0000000..da99e6a --- /dev/null +++ b/bin/omarchy-setup-steam @@ -0,0 +1,13 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-show-logo + +echo "Adding multilib repository for 32-bit compatibility" +sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf +sudo pacman -Sy + +echo "Now pick dependencies matching your graphics card" +yay -S steam +gtk-launch steam >/dev/null 2>&1 & + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-show-done b/bin/omarchy-show-done new file mode 100755 index 0000000..a00d7b6 --- /dev/null +++ b/bin/omarchy-show-done @@ -0,0 +1,5 @@ +#!/bin/bash + +echo +gum spin --spinner "globe" --title "Done!" -- sleep 2 +clear diff --git a/bin/omarchy-show-logo b/bin/omarchy-show-logo new file mode 100755 index 0000000..fbaf38d --- /dev/null +++ b/bin/omarchy-show-logo @@ -0,0 +1,7 @@ +#!/bin/bash + +clear +echo -e "\033[32m" +cat <~/.local/share/omarchy/logo.txt +echo -e "\033[0m" +echo diff --git a/bin/omarchy-theme-bg-next b/bin/omarchy-theme-bg-next new file mode 100755 index 0000000..21cddf9 --- /dev/null +++ b/bin/omarchy-theme-bg-next @@ -0,0 +1,48 @@ +#!/bin/bash + +# Cycles through the background images available + +BACKGROUNDS_DIR="$HOME/.config/omarchy/current/theme/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 uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 & +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 uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & +fi diff --git a/bin/omarchy-theme-install b/bin/omarchy-theme-install new file mode 100755 index 0000000..a7c1884 --- /dev/null +++ b/bin/omarchy-theme-install @@ -0,0 +1,34 @@ +#!/bin/bash + +# omarchy-theme-install: Install a new theme from a git repo for Omarchy +# Usage: omarchy-theme-install + +if [ -z "$1" ]; then + ~/.local/share/omarchy/bin/omarchy-show-logo + echo -e "\e[32mSee https://manuals.omamix.org/2/the-omarchy-manual/90/extra-themes\n\e[0m" + REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="") +else + REPO_URL="$1" +fi + +if [ -z "$REPO_URL" ]; then + exit 1 +fi + +THEMES_DIR="$HOME/.config/omarchy/themes" +THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//') +THEME_PATH="$THEMES_DIR/$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 + +# Apply the new theme with omarchy-theme-set +~/.local/share/omarchy/bin/omarchy-theme-set $THEME_NAME diff --git a/bin/omarchy-theme-list b/bin/omarchy-theme-list new file mode 100755 index 0000000..91f5252 --- /dev/null +++ b/bin/omarchy-theme-list @@ -0,0 +1,21 @@ +#!/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 \) | sort | 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 "$display_name" + else + echo "$display_name" + fi + done +) + +printf '%s\n' "${themes[@]}" diff --git a/bin/omarchy-theme-next b/bin/omarchy-theme-next new file mode 100755 index 0000000..fb42add --- /dev/null +++ b/bin/omarchy-theme-next @@ -0,0 +1,34 @@ +#!/bin/bash + +THEMES_DIR="$HOME/.config/omarchy/themes/" +CURRENT_THEME_LINK="$HOME/.config/omarchy/current/theme" + +THEMES=($(find "$THEMES_DIR" -mindepth 1 -maxdepth 1 | sort)) +TOTAL=${#THEMES[@]} + +# Get current theme from symlink +if [[ -L "$CURRENT_THEME_LINK" ]]; then + CURRENT_THEME=$(realpath "$CURRENT_THEME_LINK") +else + # Default to first theme if no symlink exists + 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 + fi +done + +# Get next theme (wrap around) +NEXT_INDEX=$(((INDEX + 1) % TOTAL)) +NEW_THEME=${THEMES[$NEXT_INDEX]} +NEW_THEME_NAME=$(basename "$NEW_THEME") + +~/.local/share/omarchy/bin/omarchy-theme-set $NEW_THEME_NAME +notify-send "Theme changed to $NEW_THEME_NAME" -t 2000 diff --git a/bin/omarchy-theme-remove b/bin/omarchy-theme-remove new file mode 100755 index 0000000..0fcc00d --- /dev/null +++ b/bin/omarchy-theme-remove @@ -0,0 +1,40 @@ +#!/bin/bash + +# omarchy-theme-remove: Remove a theme from Omarchy by name +# Usage: omarchy-theme-remove + +if [ -z "$1" ]; then + mapfile -t extra_themes < <(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n') + + if [[ ${#extra_themes[@]} -gt 0 ]]; then + THEME_NAME=$(gum choose --header="Remove extra theme" "${extra_themes[@]}") + else + echo "No extra themes installed." + exit 1 + fi +else + THEME_NAME="$1" +fi + +THEMES_DIR="$HOME/.config/omarchy/themes" +CURRENT_DIR="$HOME/.config/omarchy/current" +THEME_PATH="$THEMES_DIR/$THEME_NAME" + +# Ensure a theme was set +if [ -z "$THEME_NAME" ]; then + exit 1 +fi + +# Check if theme exists before attempting removal +if [ ! -d "$THEME_PATH" ]; then + echo "Error: Theme '$THEME_NAME' not found." + exit 1 +fi + +# Move to the next theme if the current theme is the one being removed +if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then + ~/.local/share/omarchy/bin/omarchy-theme-next +fi + +# Now remove the theme directory for THEME_NAME +rm -rf "$THEME_PATH" diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set new file mode 100755 index 0000000..ee60d1f --- /dev/null +++ b/bin/omarchy-theme-set @@ -0,0 +1,54 @@ +#!/bin/bash + +# omarchy-theme-set: Set a theme, specified by its name. +# Usage: omarchy-theme-set + +if [[ -z "$1" && "$1" != "CNCLD" ]]; then + echo "Usage: omarchy-theme-set " >&2 + exit 1 +fi + +THEMES_DIR="$HOME/.config/omarchy/themes/" +CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" + +THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-') +THEME_PATH="$THEMES_DIR/$THEME_NAME" + +# 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 "$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 + +# Change gnome icon theme color +if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then + gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)" +else + gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue" +fi + +# Trigger alacritty config reload +touch "$HOME/.config/alacritty/alacritty.toml" + +# Restart components to apply new theme +pkill -SIGUSR2 btop +~/.local/share/omarchy/bin/omarchy-restart-waybar +pkill swayosd-server +setsid uwsm app -- swayosd-server &>/dev/null & +makoctl reload +hyprctl reload + +# Set new background +~/.local/share/omarchy/bin/omarchy-theme-bg-next diff --git a/bin/omarchy-theme-update b/bin/omarchy-theme-update new file mode 100755 index 0000000..33c7318 --- /dev/null +++ b/bin/omarchy-theme-update @@ -0,0 +1,9 @@ +#!/bin/bash + +~/.local/share/omarchy/bin/omarchy-show-logo + +for dir in ~/.config/omarchy/themes/*/; do + [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull +done + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-toggle-idle b/bin/omarchy-toggle-idle new file mode 100755 index 0000000..a195461 --- /dev/null +++ b/bin/omarchy-toggle-idle @@ -0,0 +1,9 @@ +#!/bin/bash + +if pgrep -x hypridle >/dev/null; then + pkill -x hypridle + notify-send "Stop locking computer when idle" +else + uwsm app -- hypridle >/dev/null 2>&1 & + notify-send "Now locking computer when idle" +fi diff --git a/bin/omarchy-toggle-nightlight b/bin/omarchy-toggle-nightlight new file mode 100755 index 0000000..2ab2deb --- /dev/null +++ b/bin/omarchy-toggle-nightlight @@ -0,0 +1,30 @@ +#!/bin/bash + +# Default temperature values +ON_TEMP=4000 +OFF_TEMP=6000 + +# Ensure hyprsunset is running +if ! pgrep -x hyprsunset; then + setsid uwsm app -- hyprsunset & + sleep 1 # Give it time to register +fi + +# Query the current temperature +CURRENT_TEMP=$(hyprctl hyprsunset temperature 2>/dev/null | grep -oE '[0-9]+') + +restart_nightlighted_waybar() { + if grep -q "custom/nightlight" ~/.config/waybar/config.jsonc; then + omarchy-restart-waybar # restart waybar in case user has waybar module for hyprsunset + fi +} + +if [[ "$CURRENT_TEMP" == "$OFF_TEMP" ]]; then + hyprctl hyprsunset temperature $ON_TEMP + notify-send " Nightlight screen temperature" + restart_nightlighted_waybar +else + hyprctl hyprsunset temperature $OFF_TEMP + notify-send " Daylight screen temperature" + restart_nightlighted_waybar +fi diff --git a/bin/omarchy-update b/bin/omarchy-update new file mode 100755 index 0000000..191b2e0 --- /dev/null +++ b/bin/omarchy-update @@ -0,0 +1,27 @@ +#!/bin/bash + +# Exit immediately if a command exits with a non-zero status +set -e + +# Show logo +clear +cat <~/.local/share/omarchy/logo.txt + +# Get the latest while trying to preserve any modifications +omarchy_path=~/.local/share/omarchy +git -C $omarchy_path pull --autostash +git -C $omarchy_path diff --check || git -C $omarchy_path reset --merge + +# Run migrations +~/.local/share/omarchy/bin/omarchy-migrate + +# Update system packages +echo -e "\e[32m\nUpdate system packages\e[0m" +yay -Syu --noconfirm + +# Offer to reboot if the kernel has been changed +if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then + gum confirm "Linux kernel has been updated. Reboot?" && sudo reboot now +fi + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-update-available b/bin/omarchy-update-available new file mode 100755 index 0000000..3eb20a0 --- /dev/null +++ b/bin/omarchy-update-available @@ -0,0 +1,20 @@ +#!/bin/bash + +omarchy_path="$HOME/.local/share/omarchy" + +# Ensure remote is reachable +if ! git -C "$omarchy_path" ls-remote &>/dev/null; then + echo "Error: Unable to reach remote repository." + exit 1 +fi + +latest_tag=$(git -C "$omarchy_path" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1) +current_tag=$(git -C "$omarchy_path" describe --tags $(git -C "$omarchy_path" rev-list --tags --max-count=1)) + +if [[ "$current_tag" != "$latest_tag" ]]; then + echo "Omarchy update available ($latest_tag)" + exit 0 +else + echo "Omarchy is up to date ($current_tag)" + exit 1 +fi diff --git a/bin/omarchy-webapp-install b/bin/omarchy-webapp-install new file mode 100755 index 0000000..1e4cb17 --- /dev/null +++ b/bin/omarchy-webapp-install @@ -0,0 +1,48 @@ +#!/bin/bash + +if [ "$#" -ne 3 ]; then + ~/.local/share/omarchy/bin/omarchy-show-logo + echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m" + APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app") + APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com") + ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)") +else + APP_NAME="$1" + APP_URL="$2" + ICON_URL="$3" +fi + +if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then + echo "You must set app name, app URL, and icon URL!" + exit 1 +fi + +ICON_DIR="$HOME/.local/share/applications/icons" +DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop" +ICON_PATH="$ICON_DIR/$APP_NAME.png" + +mkdir -p "$ICON_DIR" + +if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then + echo "Error: Failed to download icon." + return 1 +fi + +cat >"$DESKTOP_FILE" </dev/null + +# Use custom branch if instructed +if [[ -n "$OMARCHY_REF" ]]; then + echo -e "\eUsing branch: $OMARCHY_REF" + cd ~/.local/share/omarchy + git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}" + cd - +fi + +echo -e "\nInstallation starting..." +source ~/.local/share/omarchy/install.sh diff --git a/config/Typora/themes/ia_typora.css b/config/Typora/themes/ia_typora.css new file mode 100644 index 0000000..231ca17 --- /dev/null +++ b/config/Typora/themes/ia_typora.css @@ -0,0 +1,309 @@ +:root { + --accent-color: #aeb1b5; /* #'s before H1-3 */ + --background-color: white; + --border-color: #ddd; + --code-bg-color: #f8f8f8; + --font-color: #42464c; + --header-color: #222324; + --link-color: #2077b2; + --control-text-color: #667176; + --side-bar-bg-color: #fafafa; + --body-font: "iA Writer Mono S"; + --border-radius: 2px; + --document-horizontal-margin: 80px; + --document-padding-x: 10ch; + --font-size: 20px; + --h1-fontsize: 20px; /* 1,5 rem = 24px */ + --h2-fontsize: 20px; /* 1,375 rem = 22px */ + --h3-fontsize: 20px; /* 1,25 rem = 20px */ + --h4-fontsize: 20px; /* 1,125 rem = 18px */ + --line-height: 1.8; + --main-content-margin: 0 auto; + --main-content-max-width: 85ch; + --monospace-font-size: 20px; + --monospace-font: "iA Writer Mono S"; + --monospace-line-height: 1.6; + --monospace: var(--monospace-font); /* Fixes source code mode */ + --nav-width: 200px; + --vertical-padding: 40px; +} + +/* Narrow layout styles */ +@media (max-width: 640px) { + :root { + --document-padding-x: 4ch; + } +} + +html { + font-size: var(--font-size); + background-color: var(--background-color); +} + +html, +body { + color: var(--font-color); + font-family: var(--body-font); + line-height: var(--line-height); +} + +#write { + /* size of writing area: */ + padding-left: var(--document-padding-x); + padding-right: var(--document-padding-x); + max-width: var(--main-content-max-width); + box-sizing: border-box; +} + +/** + * --------------------- + * Block Elements + */ + +/* yaml */ +pre.md-meta-block { + background-color: var(--background-color); + padding-bottom: .5rem; + color: var(--accent-color); + border-bottom: 2px solid var(--border-color); + font-family: var(--monospace-font); +} + +/* headings */ +h1, h2, h3 { + font-weight: bold; + color: var(--header-color); +} + +h1 { + margin-top: 1rem; + margin-bottom: 1rem; + font-size: var(--h1-fontsize); +} + +h1:not(:first-child) { + margin-top: 1rem; +} + +h2 { + margin-top: 1rem; + margin-bottom: 0rem; + font-size: var(--h2-fontsize); +} + +h3 { + margin-top: 1rem; + margin-bottom: 0rem; + font-size: var(--h3-fontsize); +} + +h4, h5, h6 { + color: var(--header-color); + margin-top: 1rem; + margin-bottom: 0rem; + font-size: 1rem; +} + +h4 { + font-size: var(--h4-fontsize); +} + +h6 { + color: var(--control-text-color); +} + +h1::before, +h2::before, +h3::before { + font-weight: 400; + text-align: right; + width: 5ch; + padding-right: 1ch; + margin-left: -5ch; + color: var(--accent-color); + display: inline-block; +} + +h1::before { + content: '#'; +} + +h2::before { + content: '##'; +} + +h3::before { + content: '###'; +} + +h1 tt, +h1 code { + font-size: inherit; +} +h2 tt, +h2 code { + font-size: inherit; +} +h3 tt, +h3 code { + font-size: inherit; +} +h4 tt, +h4 code { + font-size: inherit; +} +h5 tt, +h5 code { + font-size: inherit; +} +h6 tt, +h6 code { + font-size: inherit; +} + +/* table */ +table { + margin-top: 1rem; + margin-bottom: 1rem; +} + +table tr:nth-child(2n), +thead { + background-color: var(--side-bar-bg-color); +} + +td, +th { + border-style: solid; + border-color: var(--border-color); + border-width: 1px; + padding: .35rem .7rem +} + +li p { + margin: 0; +} + +.task-list { + padding-left: 0; +} + +.task-list-item { + padding-left: 1.5em; + margin-bottom: 0rem; +} + +#write input[type='checkbox'] { + margin-top: 5px; +} + +blockquote { + margin: 1rem 0; + padding-left: 2ch; + margin-left: .5ch; + position: relative; + overflow: hidden; + border-left: 2px solid var(--border-color); + color: var(--accent-color); +} + +/* horizontal line */ +hr { + border: none; + border-bottom: 2px solid var(--border-color); + margin-top: 1.4rem; + margin-bottom: 1.4rem; +} + +p { + margin: 2rem 0; +} + +/** + * Code Fences + * see http:/*support.typora.io/Code-Block-Styles + */ + +.cm-s-inner .CodeMirror-gutters { + background: var(--code-bg-color); +} + +.code-tooltip { + box-shadow: none; + border-radius: var(--border-radius); + background-color: var(--code-bg-color); + border-color: var(--border-color); + border-style: solid; + border-width: 1px; +} + +.code-tooltip input { + outline: none; + width: 20ch; +} + +.md-fences .code-tooltip { + bottom: -1.8rem; + padding: none; +} + +.md-fences.md-focus .cm-s-inner { + /* Remove bottom right border radius when tooltip is shown */ + border-bottom-right-radius: 0; +} + +/* code tooltip autocomplete list */ + +.autoComplt-hint { + background-color: transparent !important; + margin: 0 !important; + padding: 0.125rem 0.375rem !important; + color: var(--text-color) !important; + line-height: var(--line-height) !important; + height: 1.4rem !important; +} + +.autoComplt-hint-selected { + background-color: var(--link-color) !important; + color: var(--background-color) !important; +} + +/* basic styles */ + +.md-fences, +code, +tt { + border: 1px solid var(--border-color); + background-color: var(--code-bg-color); + font-family: var(--monospace-font); + font-size: var(--monospace-font-size); + border-radius: .25rem; + padding: 0 .125rem; + line-height: var(--monospace-line-height); +} + +.md-fences { + margin-bottom: 18px; + margin-top: 15px; + padding: 0.2em 1em; + padding-top: 8px; + padding-bottom: 6px; +} + +a { + color: var(--link-color); +} + + +/** + * Control UI (optional) + */ + +.outline-item:hover { + color: var(--header-color); +} + +#write div.md-toc-tooltip { + background-color: var(--background-color); +} + diff --git a/config/Typora/themes/ia_typora_night.css b/config/Typora/themes/ia_typora_night.css new file mode 100644 index 0000000..d783d20 --- /dev/null +++ b/config/Typora/themes/ia_typora_night.css @@ -0,0 +1,95 @@ +@import 'night/codeblock.dark.css'; +@import 'night/mermaid.dark.css'; +@import 'night/sourcemode.dark.css'; +@import 'ia_typora.css'; + +:root { + --accented-background-color: #1e1e1e; + --light-header-color: #dbdbdb; /* H1-H3 */ + --select-text-bg-color: #186a9a; + --accent-color: #4f525a; + --background-color: #101010; + --font-color: #bbbcbc; + --header-color: #bebebe; /* H4-H6 */ + --border-color: #232629; + --link-color: #5584aa; + --code-bg-color: #1c1a1a; + --hover-bg-color: #050505; + --control-text-color: var(--font-color); + --side-bar-bg-color: var(--accented-background-color); + --control-text-hover-color: var(--header-color); + --item-hover-text-color: var(--header-color); + --item-hover-bg-color: var(--hover-bg-color); + --bg-color: var(--background-color); + --text-color: var(--font-color); + --meta-content-color: var(--accent-color); + --md-char-color: var(--accent-color); + --window-border: 1px solid rgba(0,0,0,.07); + --active-file-bg-color: var(--hover-bg-color); +} + +.outline-item:hover { + background-color: var(--hover-bg-color); +} + +#write { + cursor: -webkit-image-set(url("night/cursor.png") 1x, url("night/cursor@2x.png") 2x) 8 8, auto; +} + +h1, +h2, +h3 { + color: var(--light-header-color); +} + +mark { + background: #b8b80a +} + +table tr:nth-child(2n), +thead { + background-color: #141313; +} + +sup.md-footnote { + background-color: var(--code-bg-color); + color: var(--font-color); +} + +/* right click menu */ +.context-menu { + background-color: #141313; +} + +.context-menu.dropdown-menu .divider { + background-color: #232629; +} + +/* focus mode */ +.on-focus-mode .md-end-block:not(.md-focus):not(.md-focus-container) * { + color: #4f525a !important; +} + +.on-focus-mode .md-end-block:not(.md-focus) img, +.on-focus-mode .md-task-list-item:not(.md-focus-container)>input { + opacity: #4f525a !important; +} + +.on-focus-mode li[cid]:not(.md-focus-container){ + color: #4f525a; +} + +.on-focus-mode .md-fences.md-focus .CodeMirror-code>*:not(.CodeMirror-activeline) *, +.on-focus-mode .CodeMirror.cm-s-inner:not(.CodeMirror-focused) * { + color: #4f525a !important; +} + +.on-focus-mode .md-focus, +.on-focus-mode .md-focus-container { + color: var(--light-header-color); +} + +.on-focus-mode #typora-source .CodeMirror-code>*:not(.CodeMirror-activeline) * { + color: #4f525a !important; +} + diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml new file mode 100644 index 0000000..05ec994 --- /dev/null +++ b/config/alacritty/alacritty.toml @@ -0,0 +1,21 @@ +general.import = [ "~/.config/omarchy/current/theme/alacritty.toml" ] + +[env] +TERM = "xterm-256color" + +[font] +normal = { family = "CaskaydiaMono Nerd Font", style = "Regular" } +bold = { family = "CaskaydiaMono Nerd Font", style = "Bold" } +italic = { family = "CaskaydiaMono Nerd Font", style = "Italic" } +size = 9 + +[window] +padding.x = 14 +padding.y = 14 +decorations = "None" +opacity = 0.98 + +[keyboard] +bindings = [ +{ key = "F11", action = "ToggleFullscreen" } +] diff --git a/config/btop/btop.conf b/config/btop/btop.conf new file mode 100644 index 0000000..c510f3e --- /dev/null +++ b/config/btop/btop.conf @@ -0,0 +1,246 @@ +#? Config file for btop + +#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. +#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" +color_theme = "current" + +#* If the theme set background should be shown, set to False if you want terminal background transparency. +theme_background = True + +#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. +truecolor = True + +#* Set to true to force tty mode regardless if a real tty has been detected or not. +#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. +force_tty = False + +#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. +#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. +#* Use whitespace " " as separator between different presets. +#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" +presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" + +#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. +#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. +vim_keys = False + +#* Rounded corners on boxes, is ignored if TTY mode is ON. +rounded_corners = True + +#* Default symbols to use for graph creation, "braille", "block" or "tty". +#* "braille" offers the highest resolution but might not be included in all fonts. +#* "block" has half the resolution of braille but uses more common characters. +#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. +#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. +graph_symbol = "braille" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_cpu = "default" + +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_mem = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_net = "default" + +# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". +graph_symbol_proc = "default" + +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. +shown_boxes = "cpu mem net proc" + +#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. +update_ms = 2000 + +#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", +#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. +proc_sorting = "cpu lazy" + +#* Reverse sorting order, True or False. +proc_reversed = False + +#* Show processes as a tree. +proc_tree = False + +#* Use the cpu graph colors in the process list. +proc_colors = True + +#* Use a darkening gradient in the process list. +proc_gradient = True + +#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. +proc_per_core = False + +#* Show process memory as bytes instead of percent. +proc_mem_bytes = True + +#* Show cpu graph for each process. +proc_cpu_graphs = True + +#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) +proc_info_smaps = False + +#* Show proc box on left side of screen instead of right. +proc_left = False + +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False + +#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_upper = "Auto" + +#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. +#* Select from a list of detected attributes from the options menu. +cpu_graph_lower = "Auto" + +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + +#* Toggles if the lower CPU graph should be inverted. +cpu_invert_lower = True + +#* Set to True to completely disable the lower CPU graph. +cpu_single_graph = False + +#* Show cpu box at bottom of screen instead of top. +cpu_bottom = False + +#* Shows the system uptime in the CPU box. +show_uptime = True + +#* Show cpu temperature. +check_temp = True + +#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. +cpu_sensor = "Auto" + +#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. +show_coretemp = True + +#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. +#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. +#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. +#* Example: "4:0 5:1 6:3" +cpu_core_map = "" + +#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". +temp_scale = "celsius" + +#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. +base_10_sizes = False + +#* Show CPU frequency. +show_cpu_freq = True + +#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. +#* Special formatting: /host = hostname | /user = username | /uptime = system uptime +clock_format = "%X" + +#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. +background_update = True + +#* Custom cpu model name, empty string to disable. +custom_cpu_name = "" + +#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". +#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". +disks_filter = "" + +#* Show graphs instead of meters for memory values. +mem_graphs = True + +#* Show mem box below net box instead of above. +mem_below_net = False + +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + +#* If swap memory should be shown in memory box. +show_swap = True + +#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. +swap_disk = True + +#* If mem box should be split to also show disks info. +show_disks = True + +#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. +only_physical = True + +#* Read disks list from /etc/fstab. This also disables only_physical. +use_fstab = True + +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + +#* Set to true to show available disk space for privileged users. +disk_free_priv = False + +#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. +show_io_stat = True + +#* Toggles io mode for disks, showing big graphs for disk read/write speeds. +io_mode = False + +#* Set to True to show combined read/write io graphs in io mode. +io_graph_combined = False + +#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". +#* Example: "/mnt/media:100 /:20 /boot:1". +io_graph_speeds = "" + +#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. +net_download = 100 + +net_upload = 100 + +#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. +net_auto = True + +#* Sync the auto scaling for download and upload to whichever currently has the highest scale. +net_sync = True + +#* Starts with the Network Interface specified here. +net_iface = "" + +#* Show battery stats in top right if battery is present. +show_battery = True + +#* Which battery to use if multiple are present. "Auto" for auto detection. +selected_battery = "Auto" + +#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". +#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" + diff --git a/config/chromium-flags.conf b/config/chromium-flags.conf new file mode 100644 index 0000000..d6d120e --- /dev/null +++ b/config/chromium-flags.conf @@ -0,0 +1,3 @@ +--ozone-platform=wayland +--ozone-platform-hint=wayland +--enable-features=TouchpadOverscrollHistoryNavigation diff --git a/config/environment.d/fcitx.conf b/config/environment.d/fcitx.conf new file mode 100644 index 0000000..ecedbcc --- /dev/null +++ b/config/environment.d/fcitx.conf @@ -0,0 +1,4 @@ +INPUT_METHOD=fcitx +QT_IM_MODULE=fcitx +XMODIFIERS=@im=fcitx +SDL_IM_MODULE=fcitx diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc new file mode 100644 index 0000000..66a3689 --- /dev/null +++ b/config/fastfetch/config.jsonc @@ -0,0 +1,149 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "padding": { + "top": 5, + "right": 6 + } + }, + "modules": [ + "break", + { + "type": "custom", + "format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐" + }, + { + "type": "host", + "key": " PC", + "keyColor": "green" + }, + { + "type": "cpu", + "key": "│ ├", + "showPeCoreCount": true, + "keyColor": "green" + }, + { + "type": "gpu", + "key": "│ ├", + "detectionMethod": "pci", + "keyColor": "green" + }, + { + "type": "display", + "key": "│ ├󱄄", + "keyColor": "green" + }, + { + "type": "disk", + "key": "│ ├󰋊", + "keyColor": "green" + }, + { + "type": "memory", + "key": "│ ├", + "keyColor": "green" + }, + { + "type": "swap", + "key": "└ └󰓡 ", + "keyColor": "green" + }, + { + "type": "custom", + "format": "\u001b[90m└────────────────────────────────────────────────────┘" + }, + "break", + { + "type": "custom", + "format": "\u001b[90m┌──────────────────────Software──────────────────────┐" + }, + { + "type": "os", + "key": " OS", + "keyColor": "yellow" + }, + { + "type": "kernel", + "key": "│ ├", + "keyColor": "yellow" + }, + { + "type": "packages", + "key": "│ ├󰏖", + "keyColor": "yellow" + }, + { + "type": "shell", + "key": "└ └", + "keyColor": "yellow" + }, + "break", + { + "type": "command", + "key": "│ ├Ø", + "keyColor": "blue", + "text": "version=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null); echo \"Omarchy $version\"" + }, + { + "type": "de", + "key": " DE", + "keyColor": "blue" + }, + { + "type": "wm", + "key": "│ ├", + "keyColor": "blue" + }, + { + "type": "wmtheme", + "key": "│ ├󰉼", + "keyColor": "blue" + }, + { + "type": "icons", + "key": "│ ├󰀻", + "keyColor": "blue" + }, + { + "type": "cursor", + "key": "│ ├", + "keyColor": "blue" + }, + { + "type": "terminalfont", + "key": "│ ├", + "keyColor": "blue" + }, + { + "type": "terminal", + "key": "└ └", + "keyColor": "blue" + }, + { + "type": "custom", + "format": "\u001b[90m└────────────────────────────────────────────────────┘" + }, + "break", + { + "type": "custom", + "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" + }, + { + "type": "command", + "key": " OS Age ", + "keyColor": "magenta", + "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" + }, + { + "type": "uptime", + "key": " Uptime ", + "keyColor": "magenta" + }, + { + "type": "custom", + "format": "\u001b[90m└────────────────────────────────────────────────────┘" + }, + "break" + ] +} diff --git a/config/fontconfig/fonts.conf b/config/fontconfig/fonts.conf new file mode 100644 index 0000000..85c37b9 --- /dev/null +++ b/config/fontconfig/fonts.conf @@ -0,0 +1,58 @@ + + + + + + sans-serif + + + Liberation Sans + + + + + + serif + + + Liberation Serif + + + + + + monospace + + + CaskaydiaMono Nerd Font + + + + + system-ui + + Liberation Sans + + + + + ui-monospace + + monospace + + + + + -apple-system + + Liberation Sans + + + + + BlinkMacSystemFont + + Liberation Sans + + + diff --git a/config/hypr/autostart.conf b/config/hypr/autostart.conf new file mode 100644 index 0000000..3b7c62d --- /dev/null +++ b/config/hypr/autostart.conf @@ -0,0 +1,2 @@ +# Extra autostart processes +# exec-once = uwsm app -- my-service diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf new file mode 100644 index 0000000..b1d97d4 --- /dev/null +++ b/config/hypr/bindings.conf @@ -0,0 +1,25 @@ +# Application bindings +$terminal = uwsm app -- alacritty +$browser = uwsm app -- chromium --new-window --ozone-platform=wayland +$webapp = $browser --app + +bindd = SUPER, return, Terminal, exec, $terminal +bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window +bindd = SUPER, B, Browser, exec, $browser +bindd = SUPER, M, Music, exec, uwsm app -- spotify +bindd = SUPER, N, Neovim, exec, $terminal -e nvim +bindd = SUPER, T, Activity, exec, $terminal -e btop +bindd = SUPER, D, Docker, exec, $terminal -e lazydocker +bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop +bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu +bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password + +bindd = SUPER, A, ChatGPT, exec, $webapp="https://chatgpt.com" +bindd = SUPER SHIFT, A, Grok, exec, $webapp="https://grok.com" +bindd = SUPER, C, Calendar, exec, $webapp="https://app.hey.com/calendar/weeks/" +bindd = SUPER, E, Email, exec, $webapp="https://app.hey.com" +bindd = SUPER, Y, YouTube, exec, $webapp="https://youtube.com/" +bindd = SUPER SHIFT, G, WhatsApp, exec, $webapp="https://web.whatsapp.com/" +bindd = SUPER ALT, G, Google Messages, exec, $webapp="https://messages.google.com/web/conversations" +bindd = SUPER, X, X, exec, $webapp="https://x.com/" +bindd = SUPER SHIFT, X, X Post, exec, $webapp="https://x.com/compose/post" diff --git a/config/hypr/envs.conf b/config/hypr/envs.conf new file mode 100644 index 0000000..53e0825 --- /dev/null +++ b/config/hypr/envs.conf @@ -0,0 +1,3 @@ +# Extra env variables +# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch) +# env = MY_GLOBAL_ENV,setting diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf new file mode 100644 index 0000000..2c568e3 --- /dev/null +++ b/config/hypr/hypridle.conf @@ -0,0 +1,23 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. + on_lock_cmd = pkill -f "alacritty --class Screensaver" # avoid running screensaver when locked + on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking +} + +listener { + timeout = 150 # 2.5min + on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already) +} + +listener { + timeout = 300 # 5min + on-timeout = loginctl lock-session # lock screen when timeout has passed +} + +listener { + timeout = 330 # 5.5min + on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed + on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected +} diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100644 index 0000000..e03c300 --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,19 @@ +# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/ + +# Use defaults Omarchy defaults (but don't edit these directly!) +source = ~/.local/share/omarchy/default/hypr/autostart.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 + +# Change your own setup in these files (and overwrite any settings from defaults!) +source = ~/.config/hypr/monitors.conf +source = ~/.config/hypr/input.conf +source = ~/.config/hypr/bindings.conf +source = ~/.config/hypr/envs.conf +source = ~/.config/hypr/autostart.conf diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf new file mode 100644 index 0000000..f3e8159 --- /dev/null +++ b/config/hypr/hyprlock.conf @@ -0,0 +1,37 @@ +source = ~/.config/omarchy/current/theme/hyprlock.conf + +background { + monitor = + color = $color +} + +animations { + enabled = false +} + +input-field { + monitor = + size = 600, 100 + position = 0, 0 + halign = center + valign = center + + inner_color = $inner_color + outer_color = $outer_color + outline_thickness = 4 + + font_family = CaskaydiaMono Nerd Font + font_color = $font_color + + placeholder_text =   Enter Password 󰈷  + check_color = $check_color + fail_text = $PAMFAIL ($ATTEMPTS) + + rounding = 0 + shadow_passes = 0 + fade_on_empty = false +} + +auth { + fingerprint:enabled = true +} diff --git a/config/hypr/hyprsunset.conf b/config/hypr/hyprsunset.conf new file mode 100644 index 0000000..1827445 --- /dev/null +++ b/config/hypr/hyprsunset.conf @@ -0,0 +1,6 @@ +# Makes hyprsunset do nothing to the screen by default +# Without this, the default applies some tint to the monitor +profile { + time = 00:00 + identity = true +} \ No newline at end of file diff --git a/config/hypr/input.conf b/config/hypr/input.conf new file mode 100644 index 0000000..274d80d --- /dev/null +++ b/config/hypr/input.conf @@ -0,0 +1,28 @@ +# Control your input devices +# See https://wiki.hypr.land/Configuring/Variables/#input +input { + # Use multiple keyboard layouts and switch between them with Alt + Space + # kb_layout = us,dk + kb_options = compose:caps # ,grp:alt_space_toggle + + # Change speed of keyboard repeat + repeat_rate = 40 + repeat_delay = 600 + + # Increase sensitity for mouse/trackpack (default: 0) + # sensitivity = 0.35 + + touchpad { + # Use natural (inverse) scrolling + # natural_scroll = true + + # Use two-finger clicks for right-click instead of lower-right corner + # clickfinger_behavior = true + + # Control the speed of your scrolling + scroll_factor = 0.4 + } +} + +# Scroll faster in the terminal +windowrule = scrolltouchpad 1.5, class:Alacritty diff --git a/config/hypr/monitors.conf b/config/hypr/monitors.conf new file mode 100644 index 0000000..6fc1387 --- /dev/null +++ b/config/hypr/monitors.conf @@ -0,0 +1,20 @@ +# See https://wiki.hyprland.org/Configuring/Monitors/ +# List current monitors and resolutions possible: hyprctl monitors +# Format: monitor = [port], resolution, position, scale +# You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch) + +# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K. +env = GDK_SCALE,2 +monitor=,preferred,auto,auto + +# Good compromise for 27" or 32" 4K monitors (but fractional!) +# env = GDK_SCALE,1.75 +# monitor=,preferred,auto,1.666667 + +# Straight 1x setup for low-resolution displays like 1080p or 1440p +# env = GDK_SCALE,1 +# monitor=,preferred,auto,1 + +# Example for Framework 13 w/ 6K XDR Apple display +# monitor = DP-5, 6016x3384@60, auto, 2 +# monitor = eDP-1, 2880x1920@120, auto, 2 diff --git a/config/lazygit/config.yml b/config/lazygit/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/config/nvim/lazyvim.json b/config/nvim/lazyvim.json new file mode 100644 index 0000000..71fc832 --- /dev/null +++ b/config/nvim/lazyvim.json @@ -0,0 +1,10 @@ +{ + "extras": [ + "lazyvim.plugins.extras.editor.neo-tree" + ], + "install_version": 8, + "news": { + "NEWS.md": "10960" + }, + "version": 8 +} \ No newline at end of file diff --git a/config/nvim/lua/plugins/snacks-animated-scrolling-off.lua b/config/nvim/lua/plugins/snacks-animated-scrolling-off.lua new file mode 100644 index 0000000..cbb0a58 --- /dev/null +++ b/config/nvim/lua/plugins/snacks-animated-scrolling-off.lua @@ -0,0 +1,8 @@ +return { + "folke/snacks.nvim", + opts = { + scroll = { + enabled = false, -- Disable scrolling animations + }, + }, +} diff --git a/config/nvim/lua/plugins/theme.lua b/config/nvim/lua/plugins/theme.lua new file mode 100644 index 0000000..dad2d30 --- /dev/null +++ b/config/nvim/lua/plugins/theme.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "tokyonight", + }, + }, +} diff --git a/config/nvim/plugin/after/transparency.lua b/config/nvim/plugin/after/transparency.lua new file mode 100644 index 0000000..d0090f0 --- /dev/null +++ b/config/nvim/plugin/after/transparency.lua @@ -0,0 +1,45 @@ +-- transparent background +vim.api.nvim_set_hl(0, "Normal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" }) +vim.api.nvim_set_hl(0, "FloatBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "Pmenu", { bg = "none" }) +vim.api.nvim_set_hl(0, "Terminal", { bg = "none" }) +vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = "none" }) +vim.api.nvim_set_hl(0, "FoldColumn", { bg = "none" }) +vim.api.nvim_set_hl(0, "Folded", { bg = "none" }) +vim.api.nvim_set_hl(0, "SignColumn", { bg = "none" }) +vim.api.nvim_set_hl(0, "NormalNC", { bg = "none" }) +vim.api.nvim_set_hl(0, "WhichKeyFloat", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopeBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopePromptBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "TelescopePromptTitle", { bg = "none" }) + +-- transparent background for neotree +vim.api.nvim_set_hl(0, "NeoTreeNormal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeNormalNC", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeVertSplit", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeWinSeparator", { bg = "none" }) +vim.api.nvim_set_hl(0, "NeoTreeEndOfBuffer", { bg = "none" }) + +-- transparent background for nvim-tree +vim.api.nvim_set_hl(0, "NvimTreeNormal", { bg = "none" }) +vim.api.nvim_set_hl(0, "NvimTreeVertSplit", { bg = "none" }) +vim.api.nvim_set_hl(0, "NvimTreeEndOfBuffer", { bg = "none" }) + +-- transparent notify background +vim.api.nvim_set_hl(0, "NotifyINFOBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyERRORBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyWARNBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyTRACEBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyDEBUGBody", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyINFOTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyERRORTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyWARNTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyTRACETitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyDEBUGTitle", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyINFOBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyERRORBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyWARNBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyTRACEBorder", { bg = "none" }) +vim.api.nvim_set_hl(0, "NotifyDEBUGBorder", { bg = "none" }) diff --git a/config/swayosd/config.toml b/config/swayosd/config.toml new file mode 100644 index 0000000..598c1f2 --- /dev/null +++ b/config/swayosd/config.toml @@ -0,0 +1,4 @@ +[server] +show_percentage = true +max_volume = 100 +style = "./style.css" diff --git a/config/swayosd/style.css b/config/swayosd/style.css new file mode 100644 index 0000000..3c372e6 --- /dev/null +++ b/config/swayosd/style.css @@ -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'; + font-size: 11pt; + + color: @label; +} + +image { + color: @image; +} + +progressbar { + border-radius: 0; +} + +progress { + background-color: @progress; +} diff --git a/config/systemd/user/omarchy-battery-monitor.service b/config/systemd/user/omarchy-battery-monitor.service new file mode 100644 index 0000000..3c47283 --- /dev/null +++ b/config/systemd/user/omarchy-battery-monitor.service @@ -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 \ No newline at end of file diff --git a/config/systemd/user/omarchy-battery-monitor.timer b/config/systemd/user/omarchy-battery-monitor.timer new file mode 100644 index 0000000..dc43763 --- /dev/null +++ b/config/systemd/user/omarchy-battery-monitor.timer @@ -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 \ No newline at end of file diff --git a/config/walker/config.toml b/config/walker/config.toml new file mode 100644 index 0000000..ff6708f --- /dev/null +++ b/config/walker/config.toml @@ -0,0 +1,293 @@ +app_launch_prefix = "uwsm app -- " +terminal_title_flag = "" +locale = "" +close_when_open = true # Toggle on reopen +theme = "omarchy-default" +theme_base = [] +theme_location = ["~/.local/share/omarchy/default/walker/themes/"] +monitor = "" +hotreload_theme = true +as_window = false +timeout = 0 +disable_click_to_close = false +force_keyboard_focus = true + +[keys] +accept_typeahead = ["tab"] +trigger_labels = "lalt" +next = ["down"] +prev = ["up"] +close = ["esc"] +remove_from_history = ["shift backspace"] +resume_query = ["ctrl r"] +toggle_exact_search = ["ctrl m"] + +[keys.activation_modifiers] +keep_open = "shift" +alternate = "alt" + +[keys.ai] +clear_session = ["ctrl x"] +copy_last_response = ["ctrl c"] +resume_session = ["ctrl r"] +run_last_responstruee = ["ctrl e"] + +[events] +on_activate = "" +on_selection = "" +on_exit = "" +on_launch = "" +on_query_change = "" + +[list] +dynamic_sub = true +keyboard_scroll_style = "emacs" +max_entries = 200 +show_initial_entries = true +single_click = true +visibility_threshold = 20 +placeholder = "No Results" + +[search] +argument_delimiter = "#" +placeholder = " Search..." +delay = 0 +resume_last_query = false + +[activation_mode] +labels = "jkl;asdf" + +[builtins.hyprland_keybinds] +show_sub_when_single = true +path = "~/.config/hypr/hyprland.conf" +weight = 5 +name = "hyprland_keybinds" +placeholder = "Hyprland Keybinds" +switcher_only = true +hidden = true + +[builtins.applications] +weight = 5 +name = "applications" +placeholder = " Search..." +prioritize_new = false +hide_actions_with_empty_query = true +context_aware = false +refresh = true +show_sub_when_single = false +show_icon_when_single = true +show_generic = true +history = false +icon = "" +hidden = true + +[builtins.applications.actions] +enabled = false +hide_category = true +hide_without_query = true + +[builtins.bookmarks] +weight = 5 +placeholder = "Bookmarks" +name = "bookmarks" +icon = "bookmark" +switcher_only = true +hidden = true + +[[builtins.bookmarks.entries]] +label = "Walker" +url = "https://github.com/abenz1267/walker" +keywords = ["walker", "github"] + +[[builtins.bookmarks.entries]] +label = "Omarchy - Github" +url = "https://github.com/basecamp/omarchy" +keywords = ["omarchy", "github"] + +[[builtins.bookmarks.entries]] +label = "Omarchy Manual" +url = "https://manuals.omamix.org/2/the-omarchy-manual" +keywords = ["omarchy"] + +[builtins.xdph_picker] +hidden = true +weight = 5 +placeholder = "Screen/Window Picker" +show_sub_when_single = true +name = "xdphpicker" +switcher_only = true + +[builtins.ai] +weight = 5 +placeholder = "AI" +name = "ai" +icon = "help-browser" +switcher_only = true +show_sub_when_single = true + +[[builtins.ai.anthropic.prompts]] +model = "claude-3-7-sonnet-20250219" +temperature = 1 +max_tokens = 1_000 +label = "General Assistant" +prompt = "You are a helpful general assistant. Keep your answers short and precise." + +[builtins.calc] +require_number = true +weight = 5 +name = "Calculator" +icon = "accessories-calculator" +placeholder = "Calculator" +min_chars = 3 # Min chars to calculate. 3 allows "3+3" +prefix = "=" + +[builtins.windows] +weight = 5 +icon = "view-restore" +name = "windows" +placeholder = "Windows" +show_icon_when_single = true +switcher_only = true +hidden = true + +[builtins.clipboard] +always_put_new_on_top = true +exec = "wl-copy" +weight = 5 +name = "clipboard" +avoid_line_breaks = true +placeholder = "Clipboard" +image_height = 300 +max_entries = 10 +switcher_only = true +hidden = true + +[builtins.commands] +weight = 5 +icon = "utilities-terminal" +switcher_only = true +name = "commands" +placeholder = "Commands" +hidden = true + +[builtins.custom_commands] +weight = 5 +icon = "utilities-terminal" +name = "custom_commands" +placeholder = "Custom Commands" +hidden = true + +[builtins.emojis] +exec = "wl-copy" +weight = 5 +name = "Emojis" +placeholder = "Emojis" +switcher_only = true +history = true +typeahead = true +show_unqualified = false +prefix = ":" + +[builtins.symbols] +after_copy = "" +weight = 5 +name = "symbols" +placeholder = "Symbols" +switcher_only = true +history = true +typeahead = true +hidden = true + +[builtins.finder] +use_fd = true +fd_flags = "--ignore-vcs --type file --type directory" +cmd_alt = "xdg-open $(dirname ~/%RESULT%)" +weight = 5 +icon = "file" +name = "Finder" +placeholder = "Finder" +switcher_only = true +ignore_gitignore = true +refresh = true +concurrency = 8 +show_icon_when_single = true +preview_images = true +hidden = false +prefix = "." + +[builtins.runner] +eager_loading = true +weight = 5 +icon = "utilities-terminal" +name = "runner" +placeholder = "Runner" +typeahead = true +history = true +generic_entry = false # Generic command runner +shell_config = "" # Path to shell to parse for aliases +refresh = true +use_fd = false +switcher_only = true +hidden = true + +[builtins.ssh] +weight = 5 +icon = "preferences-system-network" +name = "ssh" +placeholder = "SSH" +switcher_only = true +history = true +refresh = true +hidden = true + +[builtins.switcher] +weight = 5 +name = "switcher" +placeholder = "Switcher" +prefix = "/" + +[builtins.websearch] +keep_selection = true +weight = 5 +icon = "applications-internet" +name = "websearch" +placeholder = "Websearch" +switcher_only = true +hidden = true + +[[builtins.websearch.entries]] +name = "Google" +url = "https://www.google.com/search?q=%TERM%" + +[[builtins.websearch.entries]] +name = "DuckDuckGo" +url = "https://duckduckgo.com/?q=%TERM%" +switcher_only = true + +[[builtins.websearch.entries]] +name = "Ecosia" +url = "https://www.ecosia.org/search?q=%TERM%" +switcher_only = true + +[[builtins.websearch.entries]] +name = "Yandex" +url = "https://yandex.com/search/?text=%TERM%" +switcher_only = true + +[builtins.dmenu] +hidden = true +weight = 5 +name = "dmenu" +placeholder = "Dmenu" +switcher_only = true +show_icon_when_single = true + +[builtins.translation] +delay = 1000 +weight = 5 +name = "translation" +icon = "accessories-dictionary" +placeholder = "Translation" +switcher_only = true +provider = "googlefree" +hidden = true diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc new file mode 100644 index 0000000..7523702 --- /dev/null +++ b/config/waybar/config.jsonc @@ -0,0 +1,141 @@ +{ + "reload_style_on_change": true, + "layer": "top", + "position": "top", + "spacing": 0, + "height": 26, + "modules-left": [ + "custom/omarchy", + "hyprland/workspaces" + ], + "modules-center": [ + "clock", + "custom/update" + ], + "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": [] + } + }, + "custom/omarchy": { + "format": "", + "on-click": "~/.local/share/omarchy/bin/omarchy-menu", + "tooltip-format": "SUPER + ALT + SPACE" + }, + "custom/update": { + "format": "", + "exec": "~/.local/share/omarchy/bin/omarchy-update-available", + "on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update", + "interval": 3600 + }, + "cpu": { + "interval": 5, + "format": "󰍛", + "on-click": "alacritty -e btop" + }, + "clock": { + "format": "{:%A %H:%M}", + "format-alt": "{:%d %B W%V %Y}", + "tooltip": false, + "on-click-right": "~/.local/share/omarchy/bin/omarchy-cmd-tzupdate" + }, + "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": "alacritty --class=Wiremix -e wiremix", + "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 + } +} diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100644 index 0000000..841ba60 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,51 @@ +@import "../omarchy/current/theme/waybar.css"; + +* { + background-color: @background; + color: @foreground; + + border: none; + border-radius: 0; + min-height: 0; + font-family: CaskaydiaMono Nerd Font Propo; + font-size: 12px; +} + +.modules-left { + margin-left: 8px; +} + +.modules-right { + margin-right: 8px; +} + +#workspaces button { + all: initial; + padding: 0 6px; + margin: 0 1.5px; + min-width: 9px; +} + +#workspaces button.empty { + opacity: 0.5; +} + +#tray, +#cpu, +#battery, +#network, +#bluetooth, +#pulseaudio, +#clock, +#custom-omarchy { + min-width: 12px; + margin: 0 7.5px; +} + +#custom-expand-icon { + margin-right: 12px; +} + +tooltip { + padding: 2px; +} diff --git a/config/xournalpp/settings.xml b/config/xournalpp/settings.xml new file mode 100644 index 0000000..5f98a90 --- /dev/null +++ b/config/xournalpp/settings.xml @@ -0,0 +1,268 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/default/alacritty/screensaver.toml b/default/alacritty/screensaver.toml new file mode 100644 index 0000000..7db389e --- /dev/null +++ b/default/alacritty/screensaver.toml @@ -0,0 +1,11 @@ +[colors.primary] +background = "0x000000" + +[colors.cursor] +cursor = "0x000000" + +[font] +size = 18.0 + +[window] +opacity = 1.0 diff --git a/default/bash/aliases b/default/bash/aliases new file mode 100644 index 0000000..c5a40ae --- /dev/null +++ b/default/bash/aliases @@ -0,0 +1,38 @@ +# File system +alias ls='eza -lh --group-directories-first --icons=auto' +alias lsa='ls -a' +alias lt='eza --tree --level=2 --long --icons --git' +alias lta='lt -a' +alias ff="fzf --preview 'bat --style=numbers --color=always {}'" +alias cd="zd" +zd() { + if [ $# -eq 0 ]; then + builtin cd ~ && return + elif [ -d "$1" ]; then + builtin cd "$1" + else + z "$@" && printf " \U000F17A9 " && pwd || echo "Error: Directory not found" + fi +} +open() { + xdg-open "$@" >/dev/null 2>&1 & +} + +# Directories +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' + +# Tools +alias g='git' +alias d='docker' +alias r='rails' +n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } + +# Git +alias gcm='git commit -m' +alias gcam='git commit -a -m' +alias gcad='git commit -a --amend' + +# Find packages without leaving the terminal +alias yayf="yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75% | xargs -ro yay -S" diff --git a/default/bash/envs b/default/bash/envs new file mode 100644 index 0000000..603a896 --- /dev/null +++ b/default/bash/envs @@ -0,0 +1,4 @@ +# Editor used by CLI +export EDITOR="nvim" +export SUDO_EDITOR="$EDITOR" +export BAT_THEME=ansi diff --git a/default/bash/functions b/default/bash/functions new file mode 100644 index 0000000..670c77d --- /dev/null +++ b/default/bash/functions @@ -0,0 +1,52 @@ +# Compression +compress() { tar -czf "${1%/}.tar.gz" "${1%/}"; } +alias decompress="tar -xzf" + +# Write iso file to sd card +iso2sd() { + if [ $# -ne 2 ]; then + echo "Usage: iso2sd " + echo "Example: iso2sd ~/Downloads/ubuntu-25.04-desktop-amd64.iso /dev/sda" + echo -e "\nAvailable SD cards:" + lsblk -d -o NAME | grep -E '^sd[a-z]' | awk '{print "/dev/"$1}' + else + sudo dd bs=4M status=progress oflag=sync if="$1" of="$2" + sudo eject $2 + fi +} + +# Format an entire drive for a single partition using ext4 +format-drive() { + if [ $# -ne 2 ]; then + echo "Usage: format-drive " + echo "Example: format-drive /dev/sda 'My Stuff'" + echo -e "\nAvailable drives:" + lsblk -d -o NAME -n | awk '{print "/dev/"$1}' + else + echo "WARNING: This will completely erase all data on $1 and label it '$2'." + read -rp "Are you sure you want to continue? (y/N): " confirm + if [[ "$confirm" =~ ^[Yy]$ ]]; then + sudo wipefs -a "$1" + sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress + sudo parted -s "$1" mklabel gpt + sudo parted -s "$1" mkpart primary ext4 1MiB 100% + sudo mkfs.ext4 -L "$2" "$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")" + echo "Drive $1 formatted and labeled '$2'." + fi + fi +} + +# Transcode a video to a good-balance 1080p that's great for sharing online +transcode-video-1080p() { + ffmpeg -i $1 -vf scale=1920:1080 -c:v libx264 -preset fast -crf 23 -c:a copy ${1%.*}-1080p.mp4 +} + +# Transcode a video to a good-balance 4K that's great for sharing online +transcode-video-4K() { + ffmpeg -i $1 -c:v libx265 -preset slow -crf 24 -c:a aac -b:a 192k ${1%.*}-optimized.mp4 +} + +# Transcode PNG to JPG image that's great for shrinking wallpapers +transcode-png2jpg() { + magick $1 -quality 95 -strip ${1%.*}.jpg +} diff --git a/default/bash/init b/default/bash/init new file mode 100644 index 0000000..7e1db9e --- /dev/null +++ b/default/bash/init @@ -0,0 +1,16 @@ +if command -v mise &> /dev/null; then + eval "$(mise activate bash)" +fi + +if command -v zoxide &> /dev/null; then + eval "$(zoxide init bash)" +fi + +if command -v fzf &> /dev/null; then + if [[ -f /usr/share/fzf/completion.bash ]]; then + source /usr/share/fzf/completion.bash + fi + if [[ -f /usr/share/fzf/key-bindings.bash ]]; then + source /usr/share/fzf/key-bindings.bash + fi +fi diff --git a/default/bash/inputrc b/default/bash/inputrc new file mode 100644 index 0000000..11146d6 --- /dev/null +++ b/default/bash/inputrc @@ -0,0 +1,39 @@ +set meta-flag on +set input-meta on +set output-meta on +set convert-meta off +set completion-ignore-case on +set completion-prefix-display-length 2 +set show-all-if-ambiguous on +set show-all-if-unmodified on + +# Arrow keys match what you've typed so far against your command history +"\e[A": history-search-backward +"\e[B": history-search-forward +"\e[C": forward-char +"\e[D": backward-char + +# Immediately add a trailing slash when autocompleting symlinks to directories +set mark-symlinked-directories on + +# Do not autocomplete hidden files unless the pattern explicitly begins with a dot +set match-hidden-files off + +# Show all autocomplete results at once +set page-completions off + +# If there are more than 200 possible completions for a word, ask to show them all +set completion-query-items 200 + +# Show extra file information when completing, like `ls -F` does +set visible-stats 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 diff --git a/default/bash/prompt b/default/bash/prompt new file mode 100644 index 0000000..4901a58 --- /dev/null +++ b/default/bash/prompt @@ -0,0 +1,7 @@ +# Technicolor dreams +force_color_prompt=yes +color_prompt=yes + +# Simple prompt with path in the window/pane title and caret for typing line +PS1=$'\uf0a9 ' +PS1="\[\e]0;\w\a\]$PS1" diff --git a/default/bash/rc b/default/bash/rc new file mode 100644 index 0000000..b0b572c --- /dev/null +++ b/default/bash/rc @@ -0,0 +1,7 @@ +source ~/.local/share/omarchy/default/bash/shell +source ~/.local/share/omarchy/default/bash/aliases +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 +[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc diff --git a/default/bash/shell b/default/bash/shell new file mode 100644 index 0000000..8b39d84 --- /dev/null +++ b/default/bash/shell @@ -0,0 +1,17 @@ +# History control +shopt -s histappend +HISTCONTROL=ignoreboth +HISTSIZE=32768 +HISTFILESIZE="${HISTSIZE}" + +# Autocompletion +if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_completion ]]; then + source /usr/share/bash-completion/bash_completion +fi + +# Set complete path +export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omarchy/bin:$PATH" +set +h + +# Omarchy path +export OMARCHY_PATH="/home/$USER/.local/share/omarchy" diff --git a/default/bashrc b/default/bashrc new file mode 100644 index 0000000..03fb323 --- /dev/null +++ b/default/bashrc @@ -0,0 +1,14 @@ +# All the default Omarchy aliases and functions +# (don't mess with these directly, just overwrite them here!) +source ~/.local/share/omarchy/default/bash/rc + +# Add your own exports, aliases, and functions here. +# +# Make an alias for invoking commands you use constantly +# alias p='python' +# +# Use VSCode instead of neovim as your default editor +# export EDITOR="code" +# +# Set a custom prompt with the directory revealed (alternatively use https://starship.rs) +# PS1="\W \[\e]0;\w\a\]$PS1" diff --git a/default/gpg/dirmngr.conf b/default/gpg/dirmngr.conf new file mode 100644 index 0000000..8d32790 --- /dev/null +++ b/default/gpg/dirmngr.conf @@ -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 diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf new file mode 100644 index 0000000..faf1448 --- /dev/null +++ b/default/hypr/apps.conf @@ -0,0 +1,8 @@ +# App-specific tweaks +source = ~/.local/share/omarchy/default/hypr/apps/pip.conf +source = ~/.local/share/omarchy/default/hypr/apps/chromium.conf +source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf +source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf +source = ~/.local/share/omarchy/default/hypr/apps/steam.conf +source = ~/.local/share/omarchy/default/hypr/apps/system.conf +source = ~/.local/share/omarchy/default/hypr/apps/walker.conf diff --git a/default/hypr/apps/chromium.conf b/default/hypr/apps/chromium.conf new file mode 100644 index 0000000..af69071 --- /dev/null +++ b/default/hypr/apps/chromium.conf @@ -0,0 +1,6 @@ +# Force chromium into a tile to deal with --app bug +windowrule = tile, class:^(Chromium)$ + +# Only slight opacity when unfocused +windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable)$ +windowrule = opacity 1 1, initialTitle:^(youtube.com_/)$ # Youtube diff --git a/default/hypr/apps/hyprshot.conf b/default/hypr/apps/hyprshot.conf new file mode 100644 index 0000000..c900320 --- /dev/null +++ b/default/hypr/apps/hyprshot.conf @@ -0,0 +1,2 @@ +# Remove 1px border around hyprshot screenshots +layerrule = noanim, selection diff --git a/default/hypr/apps/pip.conf b/default/hypr/apps/pip.conf new file mode 100644 index 0000000..363c1ed --- /dev/null +++ b/default/hypr/apps/pip.conf @@ -0,0 +1,9 @@ +# Picture-in-picture overlays +windowrule = tag +pip, title:(Picture.{0,1}in.{0,1}[Pp]icture) +windowrule = float, tag:pip +windowrule = pin, tag:pip +windowrule = size 600 338, tag:pip +windowrule = keepaspectratio, tag:pip +windowrule = noborder, tag:pip +windowrule = opacity 1 1, tag:pip +windowrule = move 100%-w-40 4%, tag:pip diff --git a/default/hypr/apps/retroarch.conf b/default/hypr/apps/retroarch.conf new file mode 100644 index 0000000..2c019de --- /dev/null +++ b/default/hypr/apps/retroarch.conf @@ -0,0 +1,3 @@ +windowrule = fullscreen, class:com.libretro.RetroArch +windowrule = opacity 1 1, class:com.libretro.RetroArch + diff --git a/default/hypr/apps/steam.conf b/default/hypr/apps/steam.conf new file mode 100644 index 0000000..be76209 --- /dev/null +++ b/default/hypr/apps/steam.conf @@ -0,0 +1,4 @@ +# Float Steam, fullscreen RetroArch +windowrule = float, class:steam +windowrule = center, class:steam, title:Steam +windowrule = opacity 1 1, class:steam diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf new file mode 100644 index 0000000..9f3af5f --- /dev/null +++ b/default/hypr/apps/system.conf @@ -0,0 +1,16 @@ +# Float and center settings and previews +windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy|About)$ +windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy|About)$ +windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$ +windowrule = size 600 470, class:Omarchy +windowrule = size 700 470 class:About + +# 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) + +# Fullscreen screensaver +windowrule = fullscreen, class:Screensaver + +# No transparency on media windows +windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ diff --git a/default/hypr/apps/walker.conf b/default/hypr/apps/walker.conf new file mode 100644 index 0000000..9681c09 --- /dev/null +++ b/default/hypr/apps/walker.conf @@ -0,0 +1,2 @@ +# Application-sepcific animation +layerrule = noanim, walker diff --git a/default/hypr/autostart.conf b/default/hypr/autostart.conf new file mode 100644 index 0000000..ae9b084 --- /dev/null +++ b/default/hypr/autostart.conf @@ -0,0 +1,9 @@ +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 = 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).+' diff --git a/default/hypr/bindings.conf b/default/hypr/bindings.conf new file mode 100644 index 0000000..0f8e77e --- /dev/null +++ b/default/hypr/bindings.conf @@ -0,0 +1,16 @@ +# Deprecated bindings file. New installations include everything directly. + +bindd = SUPER, return, Terminal, exec, $terminal +bindd = SUPER, F, File manager, exec, $fileManager +bindd = SUPER, B, Web browser, exec, $browser +bindd = SUPER, M, Music player, exec, $music +bindd = SUPER, N, Neovim, exec, $terminal -e nvim +bindd = SUPER, T, Top, exec, $terminal -e btop +bindd = SUPER, D, Lazy Docker, exec, $terminal -e lazydocker +bindd = SUPER, G, Messenger, exec, $messenger +bindd = SUPER, O, Obsidian, exec, obsidian -disable-gpu +bindd = SUPER, slash, Pasword manager, exec, $passwordManager + +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 diff --git a/default/hypr/bindings/media.conf b/default/hypr/bindings/media.conf new file mode 100644 index 0000000..cb2c1f8 --- /dev/null +++ b/default/hypr/bindings/media.conf @@ -0,0 +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) +bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise +bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower +bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle +bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle +bindeld = ,XF86MonBrightnessUp, Brightness up, exec, $osdclient --brightness raise +bindeld = ,XF86MonBrightnessDown, Brightness down, exec, $osdclient --brightness lower + +# Requires playerctl +bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next +bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause +bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause +bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf new file mode 100644 index 0000000..748db35 --- /dev/null +++ b/default/hypr/bindings/tiling.conf @@ -0,0 +1,62 @@ +# Close window +bindd = SUPER, W, Close active window, killactive, + +# Control tiling +bindd = SUPER, J, Toggle split, togglesplit, # dwindle +bindd = SUPER, P, Pseudo window, pseudo, # dwindle +bindd = SUPER, V, Toggle floating, togglefloating, +bindd = SHIFT, F11, Force full screen, fullscreen, 0 + +# Move focus with SUPER + arrow keys +bindd = SUPER, left, Move focus left, movefocus, l +bindd = SUPER, right, Move focus right, movefocus, r +bindd = SUPER, up, Move focus up, movefocus, u +bindd = SUPER, down, Move focus down, movefocus, d + +# Switch workspaces with SUPER + [0-9] +bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 +bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 +bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 +bindd = SUPER, code:13, Switch to workspace 4, workspace, 4 +bindd = SUPER, code:14, Switch to workspace 5, workspace, 5 +bindd = SUPER, code:15, Switch to workspace 6, workspace, 6 +bindd = SUPER, code:16, Switch to workspace 7, workspace, 7 +bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 +bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 +bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 + +# Move active window to a workspace with SUPER + SHIFT + [0-9] +bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 +bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 +bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 +bindd = SUPER SHIFT, code:13, Move window to workspace 4, movetoworkspace, 4 +bindd = SUPER SHIFT, code:14, Move window to workspace 5, movetoworkspace, 5 +bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6 +bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 +bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 +bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 +bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 + +# Swap active window with the one next to it with SUPER + SHIFT + arrow keys +bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l +bindd = SUPER SHIFT, right, Swap window to the right, swapwindow, r +bindd = SUPER SHIFT, up, Swap window up, swapwindow, u +bindd = SUPER SHIFT, down, Swap window down, swapwindow, d + +# Cycle through applications on active workspace +bindd = ALT, Tab, Cycle to next window, cyclenext +bindd = ALT, Tab, Reveal active window on top, bringactivetotop + +# Resize active window +bindd = SUPER, minus, Expand window left, resizeactive, -100 0 +bindd = SUPER, equal, Shrink window left, resizeactive, 100 0 +bindd = SUPER SHIFT, minus, Shrink window up, resizeactive, 0 -100 +bindd = SUPER SHIFT, equal, Expand window down, resizeactive, 0 100 + +# Scroll through existing workspaces with SUPER + scroll +bindd = SUPER, mouse_down, Scroll active workspace forward, workspace, e+1 +bindd = SUPER, mouse_up, Scroll active workspace backward, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindmd = SUPER, mouse:272, Move window, movewindow +bindmd = SUPER, mouse:273, Resize window, resizewindow diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf new file mode 100644 index 0000000..0075b2c --- /dev/null +++ b/default/hypr/bindings/utilities.conf @@ -0,0 +1,38 @@ +# Menus +bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…" +bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu +bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu system +bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings + +# Aesthetics +bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, pkill -SIGUSR1 waybar +bindd = SUPER CTRL, SPACE, Next background in theme, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next +bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, ~/.local/share/omarchy/bin/omarchy-menu theme + +# Notifications +bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss +bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all +bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications" + +# Toggle idling +bindd = SUPER CTRL, I, Toggle locking on idle, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle + +# Toggle nightlight +bindd = SUPER CTRL, N, Toggle nightlight, exec, ~/.local/share/omarchy/bin/omarchy-toggle-nightlight + +# Control Apple Display brightness +bindd = CTRL, F1, Apple Display brightness down, exec, ~/.local/share/omarchy/bin/omarchy-cmd-apple-display-brightness -5000 +bindd = CTRL, F2, Apple Display brightness up, exec, ~/.local/share/omarchy/bin/omarchy-cmd-apple-display-brightness +5000 +bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, ~/.local/share/omarchy/bin/omarchy-cmd-apple-display-brightness +60000 + +# Screenshots +bindd = , PRINT, Screenshot of region, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenshot +bindd = SHIFT, PRINT, Screenshot of window, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenshot window +bindd = CTRL, PRINT, Screenshot of display, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenshot output + +# Screen recordings +bindd = ALT, PRINT, Screen record a region, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord +bindd = CTRL ALT, PRINT, Screen record display, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord output + +# Color picker +bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a diff --git a/default/hypr/envs.conf b/default/hypr/envs.conf new file mode 100644 index 0000000..83f11ed --- /dev/null +++ b/default/hypr/envs.conf @@ -0,0 +1,24 @@ +# Cursor size +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +# Force all apps to use 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 +env = ELECTRON_OZONE_PLATFORM_HINT,wayland +env = OZONE_PLATFORM,wayland + +xwayland { + force_zero_scaling = true +} + +# Use XCompose file +env = XCOMPOSEFILE,~/.XCompose + +# Don't show update on first launch +ecosystem { + no_update_news = true +} diff --git a/default/hypr/input.conf b/default/hypr/input.conf new file mode 100644 index 0000000..0f9a5d6 --- /dev/null +++ b/default/hypr/input.conf @@ -0,0 +1,21 @@ +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = compose:caps + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = false +} diff --git a/default/hypr/looknfeel.conf b/default/hypr/looknfeel.conf new file mode 100644 index 0000000..d73f677 --- /dev/null +++ b/default/hypr/looknfeel.conf @@ -0,0 +1,99 @@ +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 10 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 0 + + shadow { + enabled = true + range = 2 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 3 + passes = 1 + + vibrancy = 0.1696 + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 0, 0, ease +} + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrule = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrule = rounding 0, floating:0, onworkspace:w[tv1] +# windowrule = bordersize 0, floating:0, onworkspace:f[1] +# windowrule = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this + force_split = 2 # Always split on the right +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + focus_on_activate = true +} diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf new file mode 100644 index 0000000..bc665b2 --- /dev/null +++ b/default/hypr/windows.conf @@ -0,0 +1,11 @@ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +windowrule = suppressevent maximize, class:.* + +# Just dash of opacity by default +windowrule = opacity 0.97 0.9, class:.* + +# Fix some dragging issues with XWayland +windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + +# App-specific tweaks +source = ~/.local/share/omarchy/default/hypr/apps.conf diff --git a/default/plymouth/bullet.png b/default/plymouth/bullet.png new file mode 100644 index 0000000..62249b3 Binary files /dev/null and b/default/plymouth/bullet.png differ diff --git a/default/plymouth/entry.png b/default/plymouth/entry.png new file mode 100644 index 0000000..5c78917 Binary files /dev/null and b/default/plymouth/entry.png differ diff --git a/default/plymouth/lock.png b/default/plymouth/lock.png new file mode 100644 index 0000000..3046de1 Binary files /dev/null and b/default/plymouth/lock.png differ diff --git a/default/plymouth/logo.png b/default/plymouth/logo.png new file mode 100644 index 0000000..f185b26 Binary files /dev/null and b/default/plymouth/logo.png differ diff --git a/default/plymouth/omarchy.plymouth b/default/plymouth/omarchy.plymouth new file mode 100644 index 0000000..9b45fc3 --- /dev/null +++ b/default/plymouth/omarchy.plymouth @@ -0,0 +1,9 @@ +[Plymouth Theme] +Name=Omarchy +Description=Omarchy splash screen. +ModuleName=script + +[script] +ImageDir=/usr/share/plymouth/themes/omarchy +ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script +ConsoleLogBackgroundColor=0x1a1b26 diff --git a/default/plymouth/omarchy.script b/default/plymouth/omarchy.script new file mode 100644 index 0000000..df0c298 --- /dev/null +++ b/default/plymouth/omarchy.script @@ -0,0 +1,257 @@ +# Omarchy Plymouth Theme Script + +Window.SetBackgroundTopColor(0.101, 0.105, 0.149); +Window.SetBackgroundBottomColor(0.101, 0.105, 0.149); + +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); + +# Use these to adjust the progress bar timing +global.fake_progress_limit = 0.7; # Target percentage for fake progress (0.0 to 1.0) +global.fake_progress_duration = 15.0; # Duration in seconds to reach limit + +# Progress bar animation variables +global.fake_progress = 0.0; +global.real_progress = 0.0; +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 () + { + global.animation_frame++; + + # Animate fake progress to limit over time with easing + if (global.fake_progress_active == 1) + { + # Calculate elapsed time since start + elapsed_time = global.animation_frame / 50.0; # Convert frames to seconds (50 FPS) + + # Calculate linear progress ratio (0 to 1) based on time + time_ratio = elapsed_time / global.fake_progress_duration; + if (time_ratio > 1.0) + time_ratio = 1.0; + + # Apply easing curve: ease-out quadratic + # Formula: 1 - (1 - x)^2 + eased_ratio = 1 - ((1 - time_ratio) * (1 - time_ratio)); + + # Calculate fake progress based on eased ratio + global.fake_progress = eased_ratio * global.fake_progress_limit; + + # Update progress bar with fake progress + update_progress_bar(global.fake_progress); + } + } + + +Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Helper Functions -------------------------------- + +fun update_progress_bar(progress) + { + # 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() + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + } + +fun hide_progress_bar() + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + } + +fun show_password_dialog() + { + lock.sprite.SetOpacity(1); + entry.sprite.SetOpacity(1); + } + +fun hide_password_dialog() + { + lock.sprite.SetOpacity(0); + entry.sprite.SetOpacity(0); + for (index = 0; bullet.sprites[index]; index++) + bullet.sprites[index].SetOpacity(0); + } + +fun start_fake_progress() + { + # 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; + } + +fun stop_fake_progress() + { + global.fake_progress_active = 0; + } + +#----------------------------------------- Dialogue -------------------------------- + +lock.image = Image("lock.png"); +entry.image = Image("entry.png"); +bullet.image = Image("bullet.png"); + +entry.sprite = Sprite(entry.image); +entry.x = Window.GetWidth()/2 - entry.image.GetWidth() / 2; +entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; +entry.sprite.SetPosition(entry.x, entry.y, 10001); +entry.sprite.SetOpacity(0); + +# Scale lock to be slightly shorter than entry field height +# Original lock is 84x96, entry height determines scale +lock_height = entry.image.GetHeight() * 0.8; +lock_scale = lock_height / 96; +lock_width = 84 * lock_scale; + +scaled_lock = lock.image.Scale(lock_width, lock_height); +lock.sprite = Sprite(scaled_lock); +lock.x = entry.x - lock_width - 15; +lock.y = entry.y + entry.image.GetHeight()/2 - lock_height/2; +lock.sprite.SetPosition(lock.x, lock.y, 10001); +lock.sprite.SetOpacity(0); + +# Bullet array +bullet.sprites = []; + +fun display_normal_callback () + { + hide_password_dialog(); + + # Get current mode + mode = Plymouth.GetMode(); + + # Only show progress bar for boot and resume modes + if ((mode == "boot" || mode == "resume") && global.password_shown == 1) + { + show_progress_bar(); + start_fake_progress(); + } + } + +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 + for (index = 0; bullet.sprites[index]; index++) + bullet.sprites[index].SetOpacity(0); + + # Create and show bullets for current password (max 21) + max_bullets = 21; + bullets_to_show = bullets; + if (bullets_to_show > max_bullets) + bullets_to_show = max_bullets; + + for (index = 0; index < bullets_to_show; index++) + { + if (!bullet.sprites[index]) + { + # Scale bullet image to 7x7 pixels + scaled_bullet = bullet.image.Scale(7, 7); + bullet.sprites[index] = Sprite(scaled_bullet); + bullet.x = entry.x + 20 + index * (7 + 5); + bullet.y = entry.y + entry.image.GetHeight() / 2 - 3.5; + bullet.sprites[index].SetPosition(bullet.x, bullet.y, 10002); + } + bullet.sprites[index].SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = entry.y + entry.image.GetHeight() / 2 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); +progress_bar.image = progress_bar.original_image.Scale(1, progress_bar.original_image.GetHeight()); + +progress_bar.x = Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = progress_box.y + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +fun progress_callback (duration, progress) + { + global.real_progress = progress; + + # If real progress is above limit, stop fake progress and use real progress + if (progress > global.fake_progress_limit) + { + stop_fake_progress(); + update_progress_bar(progress); + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/default/plymouth/progress_bar.png b/default/plymouth/progress_bar.png new file mode 100644 index 0000000..dbb9fd7 Binary files /dev/null and b/default/plymouth/progress_bar.png differ diff --git a/default/plymouth/progress_box.png b/default/plymouth/progress_box.png new file mode 100644 index 0000000..6a263f2 Binary files /dev/null and b/default/plymouth/progress_box.png differ diff --git a/default/walker/themes/dmenu_150.css b/default/walker/themes/dmenu_150.css new file mode 100644 index 0000000..14bafe7 --- /dev/null +++ b/default/walker/themes/dmenu_150.css @@ -0,0 +1,2 @@ +@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css"); +@import url("file://~/.config/omarchy/current/theme/walker.css"); diff --git a/default/walker/themes/dmenu_150.toml b/default/walker/themes/dmenu_150.toml new file mode 100644 index 0000000..3c13997 --- /dev/null +++ b/default/walker/themes/dmenu_150.toml @@ -0,0 +1,10 @@ +[ui.window.box] +width = 150 + +[ui.window.box.scroll.list] +max_width = 150 +min_width = 150 +width = 150 + +[ui.window.box.search] +hide = false diff --git a/default/walker/themes/dmenu_250.css b/default/walker/themes/dmenu_250.css new file mode 100644 index 0000000..14bafe7 --- /dev/null +++ b/default/walker/themes/dmenu_250.css @@ -0,0 +1,2 @@ +@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css"); +@import url("file://~/.config/omarchy/current/theme/walker.css"); diff --git a/default/walker/themes/dmenu_250.toml b/default/walker/themes/dmenu_250.toml new file mode 100644 index 0000000..b9ffc1e --- /dev/null +++ b/default/walker/themes/dmenu_250.toml @@ -0,0 +1,11 @@ +[ui.window.box] +width = 250 + +[ui.window.box.scroll.list] +max_width = 250 +min_width = 250 +width = 250 +max_height = 600 + +[ui.window.box.search] +hide = false diff --git a/default/walker/themes/keybindings.css b/default/walker/themes/keybindings.css new file mode 100644 index 0000000..14bafe7 --- /dev/null +++ b/default/walker/themes/keybindings.css @@ -0,0 +1,2 @@ +@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css"); +@import url("file://~/.config/omarchy/current/theme/walker.css"); diff --git a/default/walker/themes/keybindings.toml b/default/walker/themes/keybindings.toml new file mode 100644 index 0000000..c5d1b78 --- /dev/null +++ b/default/walker/themes/keybindings.toml @@ -0,0 +1,48 @@ +[ui.window.box] +width = 964 +min_width = 964 +max_width = 964 + +height = 664 +min_height = 664 +max_height = 664 + +[ui.window.box.search] +hide = false + +[ui.window.box.scroll] +v_align = "fill" +h_align = "fill" +min_width = 964 +width = 964 +max_width = 964 +min_height = 664 +height = 664 +max_height = 664 + +[ui.window.box.scroll.list] +v_align = "fill" +h_align = "fill" +min_width = 900 +width = 900 +max_width = 900 +min_height = 600 +height = 600 +max_height = 600 + +[ui.window.box.scroll.list.item] +h_align = "fill" +min_width = 900 +width = 900 +max_width = 900 + +[ui.window.box.scroll.list.item.activation_label] +hide = true + +[ui.window.box.scroll.list.placeholder] +v_align = "start" +h_align = "fill" +hide = false +min_width = 900 +width = 900 +max_width = 900 diff --git a/default/walker/themes/omarchy-default.css b/default/walker/themes/omarchy-default.css new file mode 100644 index 0000000..e0f9a0c --- /dev/null +++ b/default/walker/themes/omarchy-default.css @@ -0,0 +1,166 @@ +@import url("file://~/.config/omarchy/current/theme/walker.css"); + +/* Reset all elements */ +#window, +#box, +#search, +#password, +#input, +#prompt, +#clear, +#typeahead, +#list, +child, +scrollbar, +slider, +#item, +#text, +#label, +#sub, +#activationlabel { + all: unset; +} + +* { + font-family: 'CaskaydiaMono Nerd Font', monospace; + font-size: 18px; +} + +/* Window */ +#window { + background: transparent; + color: @text; +} + +/* Main box container */ +#box { + background: alpha(@base, 0.95); + padding: 20px; + border: 2px solid @border; + border-radius: 0px; +} + +/* Search container */ +#search { + background: @base; + padding: 10px; + margin-bottom: 0; +} + +/* Hide prompt icon */ +#prompt { + opacity: 0; + min-width: 0; + margin: 0; +} + +/* Hide clear button */ +#clear { + opacity: 0; + min-width: 0; +} + +/* Input field */ +#input { + background: none; + color: @text; + padding: 0; +} + +#input placeholder { + opacity: 0.5; + color: @text; +} + +/* Hide typeahead */ +#typeahead { + opacity: 0; +} + +/* List */ +#list { + background: transparent; +} + +/* List items */ +child { + padding: 0px 12px; + background: transparent; + border-radius: 0; +} + +child:selected, +child:hover { + background: transparent; +} + +/* Item layout */ +#item { + padding: 0; +} + +/* Icon */ +#icon { + margin-right: 10px; + -gtk-icon-transform: scale(0.7); +} + +/* Text */ +#text { + color: @text; + padding: 14px 0; +} + +#label { + font-weight: normal; +} + +/* Selected state */ +child:selected #text, +child:selected #label, +child:hover #text, +child:hover #label { + color: @selected-text; +} + +/* Hide sub text */ +#sub { + opacity: 0; + font-size: 0; + min-height: 0; +} + +/* Hide activation label */ +#activationlabel { + opacity: 0; + min-width: 0; +} + +/* Scrollbar styling */ +scrollbar { + opacity: 0; +} + +/* Hide spinner */ +#spinner { + opacity: 0; +} + +/* Hide AI elements */ +#aiScroll, +#aiList, +.aiItem { + opacity: 0; + min-height: 0; +} + +/* Bar entry (switcher) */ +#bar { + opacity: 0; + min-height: 0; +} + +.barentry { + opacity: 0; +} + diff --git a/default/walker/themes/omarchy-default.toml b/default/walker/themes/omarchy-default.toml new file mode 100644 index 0000000..9abc5d8 --- /dev/null +++ b/default/walker/themes/omarchy-default.toml @@ -0,0 +1,16 @@ +[ui.window.box] +width = 664 +min_width = 664 +max_width = 664 +height = 396 +min_height = 396 +max_height = 396 + +# List constraints are critical - without these, the window shrinks when empty +[ui.window.box.scroll.list] +height = 300 +min_height = 300 +max_height = 300 + +[ui.window.box.scroll.list.item.icon] +pixel_size = 40 diff --git a/default/xcompose b/default/xcompose new file mode 100644 index 0000000..a45c5be --- /dev/null +++ b/default/xcompose @@ -0,0 +1,29 @@ +include "%L" + +# Emoji + : "😄" # smile + : "😂" # cry + : "😍" # love + : "✌️" # victory + : "❤️" # heart + : "👍" # yes + : "👎" # no + : "🖕" # fuck + : "🤞" # wish + : "🤘" # rock + : "😘" # kiss + : "🙄" # eyeroll + : "🤤" # droll + : "💰" # money + : "🎉" # xellebrate + <1> : "💯" # 100% + : "🥂" # toast +

: "🙏" # pray + : "😉" # wink + : "👌" # OK + : "👋" # greeting + : "💪" # arm + : "🤯" # blowing + +# Typography + : "—" diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..f2a9f03 --- /dev/null +++ b/install.sh @@ -0,0 +1,84 @@ +#!/bin/bash + +# Exit immediately if a command exits with a non-zero status +set -e + +OMARCHY_INSTALL=~/.local/share/omarchy/install + +# Give people a chance to retry running the installation +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 + +show_logo() { + clear + tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand} + echo +} + +show_subtext() { + echo "$1" | tte --frame-rate ${3:-640} ${2:-wipe} + echo +} + +# Install prerequisites +source $OMARCHY_INSTALL/preflight/aur.sh +source $OMARCHY_INSTALL/preflight/presentation.sh +source $OMARCHY_INSTALL/preflight/migrations.sh + +# Configuration +show_logo beams 240 +show_subtext "Let's install Omarchy! [1/5]" +source $OMARCHY_INSTALL/config/identification.sh +source $OMARCHY_INSTALL/config/config.sh +source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh +source $OMARCHY_INSTALL/config/fix-fkeys.sh +source $OMARCHY_INSTALL/config/network.sh +source $OMARCHY_INSTALL/config/power.sh +source $OMARCHY_INSTALL/config/timezones.sh +source $OMARCHY_INSTALL/config/login.sh +source $OMARCHY_INSTALL/config/nvidia.sh + +# Development +show_logo decrypt 920 +show_subtext "Installing terminal tools [2/5]" +source $OMARCHY_INSTALL/development/terminal.sh +source $OMARCHY_INSTALL/development/development.sh +source $OMARCHY_INSTALL/development/nvim.sh +source $OMARCHY_INSTALL/development/ruby.sh +source $OMARCHY_INSTALL/development/docker.sh +source $OMARCHY_INSTALL/development/firewall.sh + +# Desktop +show_logo slice 60 +show_subtext "Installing desktop tools [3/5]" +source $OMARCHY_INSTALL/desktop/desktop.sh +source $OMARCHY_INSTALL/desktop/hyprlandia.sh +source $OMARCHY_INSTALL/desktop/theme.sh +source $OMARCHY_INSTALL/desktop/bluetooth.sh +source $OMARCHY_INSTALL/desktop/asdcontrol.sh +source $OMARCHY_INSTALL/desktop/fonts.sh +source $OMARCHY_INSTALL/desktop/printer.sh + +# Apps +show_logo expand +show_subtext "Installing default applications [4/5]" +source $OMARCHY_INSTALL/apps/webapps.sh +source $OMARCHY_INSTALL/apps/xtras.sh +source $OMARCHY_INSTALL/apps/mimetypes.sh + +# Updates +show_logo highlight +show_subtext "Updating system packages [5/5]" +sudo updatedb +sudo pacman -Syu --noconfirm + +# Reboot +show_logo laseretch 920 +show_subtext "You're done! So we'll be rebooting now..." +sleep 2 +reboot diff --git a/install/apps/mimetypes.sh b/install/apps/mimetypes.sh new file mode 100644 index 0000000..ee867ab --- /dev/null +++ b/install/apps/mimetypes.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +update-desktop-database ~/.local/share/applications + +# Open all images with imv +xdg-mime default imv.desktop image/png +xdg-mime default imv.desktop image/jpeg +xdg-mime default imv.desktop image/gif +xdg-mime default imv.desktop image/webp +xdg-mime default imv.desktop image/bmp +xdg-mime default imv.desktop image/tiff + +# Open PDFs with the Document Viewer +xdg-mime default org.gnome.Evince.desktop application/pdf + +# Use Chromium as the default browser +xdg-settings set default-web-browser chromium.desktop +xdg-mime default chromium.desktop x-scheme-handler/http +xdg-mime default chromium.desktop x-scheme-handler/https + +# Open video files with mpv +xdg-mime default mpv.desktop video/mp4 +xdg-mime default mpv.desktop video/x-msvideo +xdg-mime default mpv.desktop video/x-matroska +xdg-mime default mpv.desktop video/x-flv +xdg-mime default mpv.desktop video/x-ms-wmv +xdg-mime default mpv.desktop video/mpeg +xdg-mime default mpv.desktop video/ogg +xdg-mime default mpv.desktop video/webm +xdg-mime default mpv.desktop video/quicktime +xdg-mime default mpv.desktop video/3gpp +xdg-mime default mpv.desktop video/3gpp2 +xdg-mime default mpv.desktop video/x-ms-asf +xdg-mime default mpv.desktop video/x-ogm+ogg +xdg-mime default mpv.desktop video/x-theora+ogg +xdg-mime default mpv.desktop application/ogg diff --git a/install/apps/webapps.sh b/install/apps/webapps.sh new file mode 100644 index 0000000..1d23645 --- /dev/null +++ b/install/apps/webapps.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +if [ -z "$OMARCHY_BARE" ]; then + ~/.local/share/omarchy/bin/omarchy-webapp-install "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "Basecamp" https://launchpad.37signals.com https://basecamp.com/assets/images/general/basecamp.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "Figma" https://figma.com/ https://www.veryicon.com/download/png/application/app-icon-7/figma-1?s=256 +fi diff --git a/install/apps/xtras.sh b/install/apps/xtras.sh new file mode 100644 index 0000000..36c88e9 --- /dev/null +++ b/install/apps/xtras.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +if [ -z "$OMARCHY_BARE" ]; then + yay -S --noconfirm --needed \ + gnome-calculator gnome-keyring signal-desktop \ + obsidian-bin libreoffice obs-studio kdenlive \ + xournalpp localsend-bin + + # Packages known to be flaky or having key signing issues are run one-by-one + for pkg in pinta typora spotify zoom; do + yay -S --noconfirm --needed "$pkg" || + echo -e "\e[31mFailed to install $pkg. Continuing without!\e[0m" + done + + yay -S --noconfirm --needed 1password-beta 1password-cli || + echo -e "\e[31mFailed to install 1password. Continuing without!\e[0m" +fi + +# Copy over Omarchy applications +source ~/.local/share/omarchy/bin/omarchy-refresh-applications || true diff --git a/install/config/config.sh b/install/config/config.sh new file mode 100644 index 0000000..4f08303 --- /dev/null +++ b/install/config/config.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Copy over Omarchy configs +cp -R ~/.local/share/omarchy/config/* ~/.config/ + +# Use default bashrc from Omarchy +cp ~/.local/share/omarchy/default/bashrc ~/.bashrc + +# Ensure application directory exists for update-desktop-database +mkdir -p ~/.local/share/applications + +# If bare install, allow a way for its exclusions to not get added in updates +if [ -n "$OMARCHY_BARE" ]; then + mkdir -p ~/.local/state/omarchy + touch ~/.local/state/omarchy/bare.mode +fi + +# 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 + +# 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 +git config --global alias.br branch +git config --global alias.ci commit +git config --global alias.st status +git config --global pull.rebase true +git config --global init.defaultBranch master + +# Set identification from install inputs +if [[ -n "${OMARCHY_USER_NAME//[[:space:]]/}" ]]; then + git config --global user.name "$OMARCHY_USER_NAME" +fi + +if [[ -n "${OMARCHY_USER_EMAIL//[[:space:]]/}" ]]; then + git config --global user.email "$OMARCHY_USER_EMAIL" +fi + +# Set default XCompose that is triggered with CapsLock +tee ~/.XCompose >/dev/null < : "$OMARCHY_USER_NAME" + : "$OMARCHY_USER_EMAIL" +EOF diff --git a/install/config/detect-keyboard-layout.sh b/install/config/detect-keyboard-layout.sh new file mode 100755 index 0000000..d80c8af --- /dev/null +++ b/install/config/detect-keyboard-layout.sh @@ -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 diff --git a/install/config/fix-fkeys.sh b/install/config/fix-fkeys.sh new file mode 100644 index 0000000..1ae71c5 --- /dev/null +++ b/install/config/fix-fkeys.sh @@ -0,0 +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 + + # Rely on install/login.sh to do the rebuild + # sudo mkinitcpio -P +fi diff --git a/install/config/identification.sh b/install/config/identification.sh new file mode 100644 index 0000000..94e9d7b --- /dev/null +++ b/install/config/identification.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") +export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") diff --git a/install/config/login.sh b/install/config/login.sh new file mode 100644 index 0000000..774fa5e --- /dev/null +++ b/install/config/login.sh @@ -0,0 +1,267 @@ +#!/bin/bash + +# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security +if ! command -v uwsm &>/dev/null || ! command -v plymouth &>/dev/null; then + yay -S --noconfirm --needed uwsm plymouth +fi + +# ============================================================================== +# PLYMOUTH SETUP +# ============================================================================== + +if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then + # Backup original mkinitcpio.conf just in case + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}" + + # Add plymouth to HOOKS array after 'base udev' or 'base systemd' + if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then + sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf + elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then + sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf + else + echo "Couldn't add the Plymouth hook" + fi + + # Regenerate initramfs + sudo mkinitcpio -P +fi + +# Add kernel parameters for Plymouth +if [ -d "/boot/loader/entries" ]; then # systemd-boot + echo "Detected systemd-boot" + + for entry in /boot/loader/entries/*.conf; do + if [ -f "$entry" ]; then + # Skip fallback entries + if [[ "$(basename "$entry")" == *"fallback"* ]]; then + echo "Skipped: $(basename "$entry") (fallback entry)" + continue + fi + + # Skip if splash it already present for some reason + if ! grep -q "splash" "$entry"; then + sudo sed -i '/^options/ s/$/ splash quiet/' "$entry" + else + echo "Skipped: $(basename "$entry") (splash already present)" + fi + fi + done +elif [ -f "/etc/default/grub" ]; then # Grub + echo "Detected grub" + + # Backup GRUB config before modifying + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}" + + # Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT + if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then + # Get current GRUB_CMDLINE_LINUX_DEFAULT value + current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2) + + # Add splash and quiet if not present + new_cmdline="$current_cmdline" + if [[ ! "$current_cmdline" =~ splash ]]; then + new_cmdline="$new_cmdline splash" + fi + if [[ ! "$current_cmdline" =~ quiet ]]; then + new_cmdline="$new_cmdline quiet" + fi + + # Trim any leading/trailing spaces + new_cmdline=$(echo "$new_cmdline" | xargs) + + sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub + + # Regenerate grub config + sudo grub-mkconfig -o /boot/grub/grub.cfg + else + echo "GRUB already configured with splash kernel parameters" + fi +elif [ -d "/etc/cmdline.d" ]; then # UKI + echo "Detected a UKI setup" + # Relying on mkinitcpio to assemble a UKI + # https://wiki.archlinux.org/title/Unified_kernel_image + if ! grep -q splash /etc/cmdline.d/*.conf; then + # Need splash, create the omarchy file + echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf + fi + if ! grep -q quiet /etc/cmdline.d/*.conf; then + # Need quiet, create or append the omarchy file + echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf + fi +elif [ -f "/etc/kernel/cmdline" ]; then # UKI Alternate + # Alternate UKI kernel cmdline location + echo "Detected a UKI setup" + + # Backup kernel cmdline config before modifying + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}" + + current_cmdline=$(cat /etc/kernel/cmdline) + + # Add splash and quiet if not present + new_cmdline="$current_cmdline" + if [[ ! "$current_cmdline" =~ splash ]]; then + new_cmdline="$new_cmdline splash" + fi + if [[ ! "$current_cmdline" =~ quiet ]]; then + new_cmdline="$new_cmdline quiet" + fi + + # Trim any leading/trailing spaces + new_cmdline=$(echo "$new_cmdline" | xargs) + + # Write new file + echo $new_cmdline | sudo tee /etc/kernel/cmdline +else + echo "" + echo " None of systemd-boot, GRUB, or UKI detected. Please manually add these kernel parameters:" + echo " - splash (to see the graphical splash screen)" + echo " - quiet (for silent boot)" + echo "" +fi + +if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then + sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/ + sudo plymouth-set-default-theme -R omarchy +fi + +# ============================================================================== +# SEAMLESS LOGIN +# ============================================================================== + +if [ ! -x /usr/local/bin/seamless-login ]; then + # 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 +#include +#include +#include +#include +#include +#include +#include +#include + +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 \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 +fi + +if [ ! -f /etc/systemd/system/omarchy-seamless-login.service ]; then + cat </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 </dev/null; then + KERNEL_HEADERS="linux-zen-headers" + elif pacman -Q linux-lts &>/dev/null; then + KERNEL_HEADERS="linux-lts-headers" + elif pacman -Q linux-hardened &>/dev/null; then + KERNEL_HEADERS="linux-hardened-headers" + fi + + # Enable multilib repository for 32-bit libraries + if ! grep -q "^\[multilib\]" /etc/pacman.conf; then + sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf + fi + + # force package database refresh + sudo pacman -Syy + + # Install packages + PACKAGES_TO_INSTALL=( + "${KERNEL_HEADERS}" + "${NVIDIA_DRIVER_PACKAGE}" + "nvidia-utils" + "lib32-nvidia-utils" + "egl-wayland" + "libva-nvidia-driver" # For VA-API hardware acceleration + "qt5-wayland" + "qt6-wayland" + ) + + yay -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 + + # Configure mkinitcpio for early loading + MKINITCPIO_CONF="/etc/mkinitcpio.conf" + + # Define modules + NVIDIA_MODULES="nvidia nvidia_modeset nvidia_uvm nvidia_drm" + + # Create backup + sudo cp "$MKINITCPIO_CONF" "${MKINITCPIO_CONF}.backup" + + # Remove any old nvidia modules to prevent duplicates + sudo sed -i -E 's/ nvidia_drm//g; s/ nvidia_uvm//g; s/ nvidia_modeset//g; s/ nvidia//g;' "$MKINITCPIO_CONF" + # Add the new modules at the start of the MODULES array + sudo sed -i -E "s/^(MODULES=\\()/\\1${NVIDIA_MODULES} /" "$MKINITCPIO_CONF" + # Clean up potential double spaces + sudo sed -i -E 's/ +/ /g' "$MKINITCPIO_CONF" + + sudo mkinitcpio -P + + # Add NVIDIA environment variables to hyprland.conf + HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf" + if [ -f "$HYPRLAND_CONF" ]; then + cat >>"$HYPRLAND_CONF" <<'EOF' + +# NVIDIA environment variables +env = NVD_BACKEND,direct +env = LIBVA_DRIVER_NAME,nvidia +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +EOF + fi +fi diff --git a/install/config/power.sh b/install/config/power.sh new file mode 100644 index 0000000..34b4852 --- /dev/null +++ b/install/config/power.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Setting the performance profile can make a big difference. By default, most systems seem to start in balanced mode, +# even if they're not running off a battery. So let's make sure that's changed to performance. +yay -S --noconfirm power-profiles-daemon + +if ls /sys/class/power_supply/BAT* &>/dev/null; then + # This computer runs on a battery + powerprofilesctl set balanced || true + + # Enable battery monitoring timer for low battery notifications + systemctl --user enable --now omarchy-battery-monitor.timer || true +else + # This computer runs on power outlet + powerprofilesctl set performance || true +fi diff --git a/install/config/timezones.sh b/install/config/timezones.sh new file mode 100644 index 0000000..d06c3d6 --- /dev/null +++ b/install/config/timezones.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if ! command -v tzupdate &>/dev/null; then + yay -S --noconfirm --needed tzupdate + sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null </dev/null; then + git clone https://github.com/nikosdion/asdcontrol.git /tmp/asdcontrol + cd /tmp/asdcontrol + make + sudo make install + cd - + rm -rf /tmp/asdcontrol + + # Setup sudo-less controls + echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol + sudo chmod 440 /etc/sudoers.d/asdcontrol +fi diff --git a/install/desktop/bluetooth.sh b/install/desktop/bluetooth.sh new file mode 100644 index 0000000..e7b5029 --- /dev/null +++ b/install/desktop/bluetooth.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Install bluetooth controls +yay -S --noconfirm --needed blueberry + +# Turn on bluetooth by default +sudo systemctl enable --now bluetooth.service diff --git a/install/desktop/desktop.sh b/install/desktop/desktop.sh new file mode 100644 index 0000000..626b6c2 --- /dev/null +++ b/install/desktop/desktop.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +yay -S --noconfirm --needed \ + brightnessctl playerctl pamixer wiremix wireplumber \ + fcitx5 fcitx5-gtk fcitx5-qt wl-clip-persist \ + nautilus sushi ffmpegthumbnailer gvfs-mtp \ + 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 diff --git a/install/desktop/fonts.sh b/install/desktop/fonts.sh new file mode 100644 index 0000000..0076417 --- /dev/null +++ b/install/desktop/fonts.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +yay -S --noconfirm --needed ttf-font-awesome ttf-cascadia-mono-nerd ttf-ia-writer noto-fonts noto-fonts-emoji + +if [ -z "$OMARCHY_BARE" ]; then + yay -S --noconfirm --needed ttf-jetbrains-mono noto-fonts-cjk noto-fonts-extra +fi diff --git a/install/desktop/hyprlandia.sh b/install/desktop/hyprlandia.sh new file mode 100644 index 0000000..5a7e916 --- /dev/null +++ b/install/desktop/hyprlandia.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +yay -S --noconfirm --needed \ + hyprland hyprshot hyprpicker hyprlock hypridle hyprsunset polkit-gnome hyprland-qtutils \ + walker-bin libqalculate waybar mako swaybg swayosd \ + xdg-desktop-portal-hyprland xdg-desktop-portal-gtk diff --git a/install/desktop/printer.sh b/install/desktop/printer.sh new file mode 100644 index 0000000..ec379a8 --- /dev/null +++ b/install/desktop/printer.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +sudo pacman -S --noconfirm cups cups-pdf cups-filters cups-browsed system-config-printer avahi nss-mdns +sudo systemctl enable --now cups.service + +# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery +sudo mkdir -p /etc/systemd/resolved.conf.d +echo -e "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf +sudo systemctl enable --now avahi-daemon.service + +# Enable automatically adding remote printers +if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then + echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf +fi + +sudo systemctl enable --now cups-browsed.service diff --git a/install/desktop/theme.sh b/install/desktop/theme.sh new file mode 100644 index 0000000..0076d19 --- /dev/null +++ b/install/desktop/theme.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Use dark mode for QT apps too (like kdenlive) +if ! yay -Q kvantum-qt5 &>/dev/null; then + yay -S --noconfirm kvantum-qt5 +fi + +# Prefer dark mode everything +if ! yay -Q gnome-themes-extra &>/dev/null; then + yay -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme +fi + +# Allow icons to match the theme +if ! yay -! yaru-icon-theme &>/dev/null; then + yay -S --noconfirm yaru-icon-theme +fi + +gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" +gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" +gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue" + +# Setup theme links +mkdir -p ~/.config/omarchy/themes +for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done + +# 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-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 + +mkdir -p ~/.config/btop/themes +ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current.theme + +mkdir -p ~/.config/mako +ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config diff --git a/install/development/development.sh b/install/development/development.sh new file mode 100644 index 0000000..20d8957 --- /dev/null +++ b/install/development/development.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +yay -S --noconfirm --needed \ + cargo clang llvm mise \ + imagemagick \ + mariadb-libs postgresql-libs \ + github-cli \ + lazygit lazydocker-bin diff --git a/install/development/docker.sh b/install/development/docker.sh new file mode 100644 index 0000000..14220d9 --- /dev/null +++ b/install/development/docker.sh @@ -0,0 +1,22 @@ +#!/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 +echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json + +# Start Docker automatically +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 diff --git a/install/development/firewall.sh b/install/development/firewall.sh new file mode 100644 index 0000000..5510434 --- /dev/null +++ b/install/development/firewall.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +if ! command -v ufw &>/dev/null; then + yay -S --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 diff --git a/install/development/nvim.sh b/install/development/nvim.sh new file mode 100644 index 0000000..e8e8560 --- /dev/null +++ b/install/development/nvim.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if ! command -v nvim &>/dev/null; then + yay -S --noconfirm --needed nvim luarocks tree-sitter-cli + + # Install LazyVim + rm -rf ~/.config/nvim + git clone https://github.com/LazyVim/starter ~/.config/nvim + cp -R ~/.local/share/omarchy/config/nvim/* ~/.config/nvim/ + rm -rf ~/.config/nvim/.git + echo "vim.opt.relativenumber = false" >>~/.config/nvim/lua/config/options.lua +fi diff --git a/install/development/ruby.sh b/install/development/ruby.sh new file mode 100644 index 0000000..5ec98a2 --- /dev/null +++ b/install/development/ruby.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# Install Ruby using gcc-14 for compatibility +yay -S --noconfirm --needed gcc14 +mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14" + +# Trust .ruby-version +mise settings add idiomatic_version_file_enable_tools ruby diff --git a/install/development/terminal.sh b/install/development/terminal.sh new file mode 100644 index 0000000..ce2e26f --- /dev/null +++ b/install/development/terminal.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +yay -S --noconfirm --needed \ + wget curl unzip inetutils impala \ + fd eza fzf ripgrep zoxide bat jq xmlstarlet \ + wl-clipboard fastfetch btop \ + man tldr less whois plocate bash-completion \ + alacritty diff --git a/install/preflight/aur.sh b/install/preflight/aur.sh new file mode 100644 index 0000000..525b17c --- /dev/null +++ b/install/preflight/aur.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages +if [[ "$(uname -m)" == "x86_64" ]] && ! command -v yay &>/dev/null; then + # Try installing Chaotic-AUR keyring and mirrorlist + if ! pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1 && + sudo pacman-key --recv-key 3056513887B78AEB && + sudo pacman-key --lsign-key 3056513887B78AEB && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then + + # Add Chaotic-AUR repo to pacman config + if ! grep -q "chaotic-aur" /etc/pacman.conf; then + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + fi + + # Install yay directly from Chaotic-AUR + sudo pacman -Sy --needed --noconfirm yay + else + echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" + fi +fi + +# Manually install yay from AUR if not already available +if ! command -v yay &>/dev/null; then + # Install build tools + sudo pacman -Sy --needed --noconfirm base-devel + cd /tmp + rm -rf yay-bin + git clone https://aur.archlinux.org/yay-bin.git + cd yay-bin + makepkg -si --noconfirm + cd - + rm -rf yay-bin + cd ~ +fi + +# Add fun and color to the pacman installer +if ! grep -q "ILoveCandy" /etc/pacman.conf; then + sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf +fi diff --git a/install/preflight/migrations.sh b/install/preflight/migrations.sh new file mode 100644 index 0000000..8379dc0 --- /dev/null +++ b/install/preflight/migrations.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +omarchy_migrations_state_path=~/.local/state/omarchy/migrations +mkdir -p $omarchy_migrations_state_path + +for file in ~/.local/share/omarchy/migrations/*.sh; do + touch "$omarchy_migrations_state_path/$(basename "$file")" +done diff --git a/install/preflight/presentation.sh b/install/preflight/presentation.sh new file mode 100644 index 0000000..98957ae --- /dev/null +++ b/install/preflight/presentation.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +yay -S --noconfirm --needed gum python-terminaltexteffects diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..fcc164c --- /dev/null +++ b/logo.svg @@ -0,0 +1 @@ + diff --git a/logo.txt b/logo.txt new file mode 100644 index 0000000..47433aa --- /dev/null +++ b/logo.txt @@ -0,0 +1,10 @@ + ▄▄▄ + ▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███ +███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███ +███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███ +███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ + ▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀ + ███ █▀ diff --git a/migrations/1751134568.sh b/migrations/1751134568.sh new file mode 100644 index 0000000..14c8f41 --- /dev/null +++ b/migrations/1751134568.sh @@ -0,0 +1,8 @@ +# Turn on bluetooth service so blueberry works out the box +echo "Let's turn on Bluetooth service so the controls work" +if systemctl is-enabled --quiet bluetooth.service && systemctl is-active --quiet bluetooth.service; then + # Bluetooth is already enabled, nothing to change + : +else + sudo systemctl enable --now bluetooth.service +fi diff --git a/migrations/1751135253.sh b/migrations/1751135253.sh new file mode 100644 index 0000000..677b610 --- /dev/null +++ b/migrations/1751135253.sh @@ -0,0 +1,5 @@ +echo "Add missing installation of bat (used by the ff alias)" +if ! command -v bat &>/dev/null; then + # Add missing installation of bat + yay -S --noconfirm --needed bat +fi diff --git a/migrations/1751225707.sh b/migrations/1751225707.sh new file mode 100644 index 0000000..0ceded1 --- /dev/null +++ b/migrations/1751225707.sh @@ -0,0 +1,6 @@ +echo "Fixing persistent workspaces in waybar config" + +if [[ -f ~/.config/waybar/config ]]; then + sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config + ~/.local/share/omarchy/bin/omarchy-restart-waybar +fi diff --git a/migrations/1751510848.sh b/migrations/1751510848.sh new file mode 100644 index 0000000..4888bb2 --- /dev/null +++ b/migrations/1751510848.sh @@ -0,0 +1,5 @@ +echo "Installing missing fd terminal tool for finding files" + +if ! command -v fd &>/dev/null; then + yay -S --noconfirm --needed fd +fi diff --git a/migrations/1751667620.sh b/migrations/1751667620.sh new file mode 100644 index 0000000..227006f --- /dev/null +++ b/migrations/1751667620.sh @@ -0,0 +1,21 @@ +echo "Switching from vlc to mpv for the default video player" +if ! command -v mpv &>/dev/null; then + yay -Rns --noconfirm vlc + rm ~/.local/share/applications/vlc.desktop + yay -S --noconfirm mpv + xdg-mime default mpv.desktop video/mp4 + xdg-mime default mpv.desktop video/x-msvideo + xdg-mime default mpv.desktop video/x-matroska + xdg-mime default mpv.desktop video/x-flv + xdg-mime default mpv.desktop video/x-ms-wmv + xdg-mime default mpv.desktop video/mpeg + xdg-mime default mpv.desktop video/ogg + xdg-mime default mpv.desktop video/webm + xdg-mime default mpv.desktop video/quicktime + xdg-mime default mpv.desktop video/3gpp + xdg-mime default mpv.desktop video/3gpp2 + xdg-mime default mpv.desktop video/x-ms-asf + xdg-mime default mpv.desktop video/x-ogm+ogg + xdg-mime default mpv.desktop video/x-theora+ogg + xdg-mime default mpv.desktop application/ogg +fi diff --git a/migrations/1751669258.sh b/migrations/1751669258.sh new file mode 100644 index 0000000..fc83f3a --- /dev/null +++ b/migrations/1751669258.sh @@ -0,0 +1,5 @@ +echo "Ensure Docker config is set" +if [[ ! -f /etc/docker/daemon.json ]]; then + sudo mkdir -p /etc/docker + echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json +fi diff --git a/migrations/1751672984.sh b/migrations/1751672984.sh new file mode 100644 index 0000000..056cff7 --- /dev/null +++ b/migrations/1751672984.sh @@ -0,0 +1,5 @@ +echo "Add LocalSend as new default application" + +if ! command -v localsend &>/dev/null; then + yay -S --noconfirm --needed localsend-bin +fi diff --git a/migrations/1751679069.sh b/migrations/1751679069.sh new file mode 100644 index 0000000..57feb12 --- /dev/null +++ b/migrations/1751679069.sh @@ -0,0 +1,5 @@ +echo "Install ffmpegthumbnailer for video thumbnails in the file manager" + +if ! command -v ffmpegthumbnailer &>/dev/null; then + yay -S --noconfirm --needed ffmpegthumbnailer +fi diff --git a/migrations/1751821819.sh b/migrations/1751821819.sh new file mode 100644 index 0000000..a34d82e --- /dev/null +++ b/migrations/1751821819.sh @@ -0,0 +1,5 @@ +echo "Install bash-completion" + +if ! pacman -Q bash-completion &>/dev/null; then + yay -S --noconfirm --needed bash-completion +fi diff --git a/migrations/1751887718.sh b/migrations/1751887718.sh new file mode 100644 index 0000000..dc679be --- /dev/null +++ b/migrations/1751887718.sh @@ -0,0 +1,6 @@ +echo "Install Impala as new wifi selection TUI" +if ! command -v impala &>/dev/null; then + yay -S --noconfirm --needed impala + echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar." + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi diff --git a/migrations/1752081088.sh b/migrations/1752081088.sh new file mode 100644 index 0000000..d72201f --- /dev/null +++ b/migrations/1752081088.sh @@ -0,0 +1,2 @@ +echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)" +source ~/.local/share/omarchy/install/config/fix-fkeys.sh diff --git a/migrations/1752082381.sh b/migrations/1752082381.sh new file mode 100644 index 0000000..a3b937d --- /dev/null +++ b/migrations/1752082381.sh @@ -0,0 +1,5 @@ +echo "Adding gnome-keyring to make 1password work with 2FA codes" + +if ! command -v gnome-keyring &>/dev/null; then + yay -S --noconfirm --needed gnome-keyring +fi diff --git a/migrations/1752091783.sh b/migrations/1752091783.sh new file mode 100644 index 0000000..22625fd --- /dev/null +++ b/migrations/1752091783.sh @@ -0,0 +1,2 @@ +echo "Install Plymouth splash screen" +source "$HOME/.local/share/omarchy/install/config/login.sh" diff --git a/migrations/1752104271.sh b/migrations/1752104271.sh new file mode 100644 index 0000000..b00e99a --- /dev/null +++ b/migrations/1752104271.sh @@ -0,0 +1,8 @@ +echo "Switching to polkit-gnome for better fingerprint authentication compatibility" +if ! command -v /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &>/dev/null; then + yay -S --noconfirm --needed polkit-gnome + systemctl --user stop hyprpolkitagent + systemctl --user disable hyprpolkitagent + yay -Rns --noconfirm hyprpolkitagent + setsid /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & +fi diff --git a/migrations/1752153188.sh b/migrations/1752153188.sh new file mode 100644 index 0000000..fca5ebf --- /dev/null +++ b/migrations/1752153188.sh @@ -0,0 +1,5 @@ +echo "Migrate to the modular implementation of hyprlock" +if [ -L ~/.config/hypr/hyprlock.conf ]; then + rm ~/.config/hypr/hyprlock.conf + cp ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf +fi diff --git a/migrations/1752168292.sh b/migrations/1752168292.sh new file mode 100755 index 0000000..0f52913 --- /dev/null +++ b/migrations/1752168292.sh @@ -0,0 +1,10 @@ +echo "Enable battery low notifications for laptops" + +if ls /sys/class/power_supply/BAT* &>/dev/null && [[ ! -f ~/.local/share/omarchy/config/systemd/user/omarchy-battery-monitor.service ]]; then + mkdir -p ~/.config/systemd/user + + cp ~/.local/share/omarchy/config/systemd/user/omarchy-battery-monitor.* ~/.config/systemd/user/ + + systemctl --user daemon-reload + systemctl --user enable --now omarchy-battery-monitor.timer || true +fi diff --git a/migrations/1752188554.sh b/migrations/1752188554.sh new file mode 100644 index 0000000..ffec2a2 --- /dev/null +++ b/migrations/1752188554.sh @@ -0,0 +1,7 @@ +echo "Update chromium.desktop to ensure we are always using wayland" +if [[ ! -f ~/.local/share/applications/chromium.desktop ]]; then + cp ~/.local/share/omarchy/applications/chromium.desktop ~/.local/share/applications/ + xdg-settings set default-web-browser chromium.desktop + xdg-mime default chromium.desktop x-scheme-handler/http + xdg-mime default chromium.desktop x-scheme-handler/https +fi diff --git a/migrations/1752251002.sh b/migrations/1752251002.sh new file mode 100644 index 0000000..39cb487 --- /dev/null +++ b/migrations/1752251002.sh @@ -0,0 +1,5 @@ +echo "Migrate to the modular, variable-based implementation of waybar style.css" +if [ -L ~/.config/waybar/style.css ]; then + rm ~/.config/waybar/style.css + cp ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/style.css +fi diff --git a/migrations/1752292967.sh b/migrations/1752292967.sh new file mode 100644 index 0000000..ec8643a --- /dev/null +++ b/migrations/1752292967.sh @@ -0,0 +1,18 @@ +echo "Update to use UWSM and seamless login" +if ! command -v uwsm &>/dev/null; then + sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf + sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true + + if [ -f "$HOME/.bash_profile" ]; then + # Remove the specific line + sed -i '/^\[\[ -z \$DISPLAY && \$(tty) == \/dev\/tty1 \]\] && exec Hyprland$/d' "$HOME/.bash_profile" + echo "Cleaned up .bash_profile" + fi + + if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then + echo "Removing GTK_IM_MODULE from fcitx config for Wayland..." + sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf" + fi + + source ~/.local/share/omarchy/install/config/login.sh +fi diff --git a/migrations/1752365998.sh b/migrations/1752365998.sh new file mode 100644 index 0000000..5b759f6 --- /dev/null +++ b/migrations/1752365998.sh @@ -0,0 +1,10 @@ +echo "Add override to only require one network interface to be online" + +if [[ ! -f /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf ]]; then + 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 </dev/null; then + yay -S --noconfirm --needed docker-buildx +fi diff --git a/migrations/1752709610.sh b/migrations/1752709610.sh new file mode 100644 index 0000000..7d1136f --- /dev/null +++ b/migrations/1752709610.sh @@ -0,0 +1,2 @@ +echo "Enable ufw firewall" +source ~/.local/share/omarchy/install/development/firewall.sh diff --git a/migrations/1752725616.sh b/migrations/1752725616.sh new file mode 100644 index 0000000..f7bd296 --- /dev/null +++ b/migrations/1752725616.sh @@ -0,0 +1,15 @@ +echo "Make light themes possible" +if [[ -f ~/.local/share/applications/blueberry.desktop ]]; then + rm -f ~/.local/share/applications/blueberry.desktop + rm -f ~/.local/share/applications/org.pulseaudio.pavucontrol.desktop + update-desktop-database ~/.local/share/applications/ + + gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" + gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" + + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi + +if [[ ! -L "~/.config/omarchy/themes/rose-pine" ]]; then + ln -snf ~/.local/share/omarchy/themes/rose-pine ~/.config/omarchy/themes/ +fi diff --git a/migrations/1752793122.sh b/migrations/1752793122.sh new file mode 100644 index 0000000..fad0646 --- /dev/null +++ b/migrations/1752793122.sh @@ -0,0 +1,4 @@ +echo "Rename waybar config file for syntax highlighting" +if [[ -f ~/.config/waybar/config ]]; then + mv ~/.config/waybar/config ~/.config/waybar/config.jsonc +fi diff --git a/migrations/1752797704.sh b/migrations/1752797704.sh new file mode 100644 index 0000000..f51aa70 --- /dev/null +++ b/migrations/1752797704.sh @@ -0,0 +1,17 @@ +echo "Prevent docker from requiring network readiness on boot" +if [[ ! -f /etc/systemd/system/docker.service.d/no-block-boot.conf ]]; then + 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 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 + + sudo systemctl daemon-reload + sudo systemctl mask plymouth-quit-wait.service +fi diff --git a/migrations/1752874371.sh b/migrations/1752874371.sh new file mode 100644 index 0000000..649adc7 --- /dev/null +++ b/migrations/1752874371.sh @@ -0,0 +1,4 @@ +echo "Add Catppuccin Latte light theme" +if [[ ! -L "~/.config/omarchy/themes/catppuccin-latte" ]]; then + ln -snf ~/.local/share/omarchy/themes/catppuccin-latte ~/.config/omarchy/themes/ +fi diff --git a/migrations/1752885858.sh b/migrations/1752885858.sh new file mode 100644 index 0000000..900d3cf --- /dev/null +++ b/migrations/1752885858.sh @@ -0,0 +1,5 @@ +echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder" + +if ! command -v wl-screenrec &>/dev/null || ! command -v slurp &>/dev/null; then + yay -S --noconfirm --needed slurp wl-screenrec +fi diff --git a/migrations/1752896442.sh b/migrations/1752896442.sh new file mode 100644 index 0000000..f1e16f5 --- /dev/null +++ b/migrations/1752896442.sh @@ -0,0 +1,9 @@ +echo "Replace volume control GUI with a TUI" + +if ! command -v wiremix &>/dev/null; then + yay -S --noconfirm --needed wiremix + yay -Rns --noconfirm pavucontrol + + ~/.local/share/omarchy/bin/omarchy-refresh-applications + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi diff --git a/migrations/1752897642.sh b/migrations/1752897642.sh new file mode 100644 index 0000000..034b78f --- /dev/null +++ b/migrations/1752897642.sh @@ -0,0 +1,4 @@ +echo "Remove needless fcitx5-configtool package" +if yay -Qe fcitx5-configtool &>/dev/null; then + yay -Rns --noconfirm fcitx5-configtool +fi diff --git a/migrations/1752899588.sh b/migrations/1752899588.sh new file mode 100644 index 0000000..32c3ba9 --- /dev/null +++ b/migrations/1752899588.sh @@ -0,0 +1,2 @@ +echo "Update .config/hypr/hyprlock.conf to include failed attempt counter" +~/.local/share/omarchy/bin/omarchy-refresh-hyprlock diff --git a/migrations/1752955912.sh b/migrations/1752955912.sh new file mode 100644 index 0000000..8c59fb2 --- /dev/null +++ b/migrations/1752955912.sh @@ -0,0 +1,5 @@ +echo "Install satty for the new screenshot flow" + +if ! command -v satty &>/dev/null; then + yay -S --noconfirm --needed satty +fi diff --git a/migrations/1752981883.sh b/migrations/1752981883.sh new file mode 100644 index 0000000..73ba041 --- /dev/null +++ b/migrations/1752981883.sh @@ -0,0 +1,13 @@ +echo "Replace wofi with walker as the default launcher" + +if ! command -v walker &>/dev/null; then + yay -Sy --noconfirm --needed walker-bin libqalculate + + yay -Rns --noconfirm wofi + rm -rf ~/.config/wofi + + mkdir -p ~/.config/walker + cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/ + + setsid uwsm app -- walker --gapplication-service & +fi diff --git a/migrations/1752983008.sh b/migrations/1752983008.sh new file mode 100644 index 0000000..a18b072 --- /dev/null +++ b/migrations/1752983008.sh @@ -0,0 +1,7 @@ +if [[ ! -f ~/.local/state/omarchy/bare.mode ]]; then + echo "Add missing installation of Zoom" + + if ! command -v zoom &>/dev/null; then + yay -S --noconfirm --needed zoom + fi +fi diff --git a/migrations/1753062084.sh b/migrations/1753062084.sh new file mode 100644 index 0000000..8040610 --- /dev/null +++ b/migrations/1753062084.sh @@ -0,0 +1,5 @@ +echo "Fix dancing workspace numbers in Waybar" + +if ! grep -q 'min-width: 9px' ~/.config/waybar/style.css; then + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi diff --git a/migrations/1753138691.sh b/migrations/1753138691.sh new file mode 100644 index 0000000..04012e4 --- /dev/null +++ b/migrations/1753138691.sh @@ -0,0 +1,6 @@ +echo "Install swayOSD to show volume status" + +if ! command -v swayosd-server &>/dev/null; then + yay -S --noconfirm --needed swayosd + setsid uwsm app -- swayosd-server &>/dev/null & +fi diff --git a/migrations/1753176520.sh b/migrations/1753176520.sh new file mode 100644 index 0000000..8b21187 --- /dev/null +++ b/migrations/1753176520.sh @@ -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 diff --git a/migrations/1753224615.sh b/migrations/1753224615.sh new file mode 100755 index 0000000..cd6c797 --- /dev/null +++ b/migrations/1753224615.sh @@ -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 diff --git a/migrations/1753286633.sh b/migrations/1753286633.sh new file mode 100644 index 0000000..5c7f2cf --- /dev/null +++ b/migrations/1753286633.sh @@ -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 diff --git a/migrations/1753302134.sh b/migrations/1753302134.sh new file mode 100644 index 0000000..022ce56 --- /dev/null +++ b/migrations/1753302134.sh @@ -0,0 +1,8 @@ +echo "Reload Waybar on unlock to prevent stacking" + +if ! grep -q 'on_unlock_cmd *= *pkill -SIGUSR2 waybar' ~/.config/hypr/hypridle.conf; then + sed -i '/^general[[:space:]]*{/,/^}/ { + /on_unlock_cmd *=/d + /^}$/ i\ on_unlock_cmd = pkill -SIGUSR2 waybar # prevent stacking of waybar when waking + }' ~/.config/hypr/hypridle.conf +fi diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh new file mode 100755 index 0000000..3c3b915 --- /dev/null +++ b/migrations/1753352057.sh @@ -0,0 +1,18 @@ +echo "Add Chaotic-AUR to get compiled binaries" + +if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then + # Try installing Chaotic-AUR keyring and mirrorlist + if sudo pacman-key --recv-key 3056513887B78AEB && + sudo pacman-key --lsign-key 3056513887B78AEB && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then + + # Add Chaotic-AUR repo to pacman config + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + + # Refresh pacman package databases + sudo pacman -Sy + else + echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" + fi +fi diff --git a/migrations/1753468218.sh b/migrations/1753468218.sh new file mode 100644 index 0000000..bf2fab8 --- /dev/null +++ b/migrations/1753468218.sh @@ -0,0 +1,4 @@ +echo "Add Terminal Text Effects for rizzing Omarchy" +if ! yay -Qe python-terminaltexteffects &>/dev/null; then + yay -S --noconfirm --needed python-terminaltexteffects +fi diff --git a/migrations/1753495989.sh b/migrations/1753495989.sh new file mode 100644 index 0000000..cfa411f --- /dev/null +++ b/migrations/1753495989.sh @@ -0,0 +1,5 @@ +echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" +if ! command -v tzupdate &>/dev/null; then + bash ~/.local/share/omarchy/install/config/timezones.sh + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi diff --git a/migrations/1753558374.sh b/migrations/1753558374.sh new file mode 100644 index 0000000..a873546 --- /dev/null +++ b/migrations/1753558374.sh @@ -0,0 +1,4 @@ +echo "Update Walker config to include = as the leader key for the calculator" +if ! grep -q 'prefix = "="' ~/.config/walker/config.toml; then + ~/.local/share/omarchy/bin/omarchy-refresh-walker +fi diff --git a/migrations/1753683888.sh b/migrations/1753683888.sh new file mode 100644 index 0000000..ca08d7b --- /dev/null +++ b/migrations/1753683888.sh @@ -0,0 +1,5 @@ +echo "Adding Omarchy version info to fastfetch" +if ! grep -q "omarchy" ~/.config/fastfetch/config.jsonc; then + cp ~/.local/share/omarchy/config/fastfetch/config.jsonc ~/.config/fastfetch/ +fi + diff --git a/migrations/1753689791.sh b/migrations/1753689791.sh new file mode 100644 index 0000000..d7c3145 --- /dev/null +++ b/migrations/1753689791.sh @@ -0,0 +1,5 @@ +echo "Add the new ristretto theme as an option" + +if [[ ! -L ~/.config/omarchy/themes/ristretto ]]; then + ln -nfs ~/.local/share/omarchy/themes/ristretto ~/.config/omarchy/themes/ +fi diff --git a/migrations/1753908454.sh b/migrations/1753908454.sh new file mode 100644 index 0000000..fdbde67 --- /dev/null +++ b/migrations/1753908454.sh @@ -0,0 +1,12 @@ +echo "Migrate from manually downloaded fonts to font packages" +if ! yay -Q ttf-cascadia-mono-nerd &>/dev/null; then + yay -S --noconfirm ttf-cascadia-mono-nerd + rm -rf ~/.local/share/fonts/Caskaydia* + fc-cache +fi + +if ! yay -Q ttf-ia-writer &>/dev/null; then + yay -S --noconfirm ttf-ia-writer + rm -rf ~/.local/share/fonts/iAWriterMonoS* + fc-cache +fi diff --git a/migrations/1753998861.sh b/migrations/1753998861.sh new file mode 100644 index 0000000..9145ec9 --- /dev/null +++ b/migrations/1753998861.sh @@ -0,0 +1,4 @@ +echo "Update Walker config to include . as the leader key for the finder" +if ! grep -q 'prefix = "\."' ~/.config/walker/config.toml; then + ~/.local/share/omarchy/bin/omarchy-refresh-walker +fi diff --git a/migrations/1754047941.sh b/migrations/1754047941.sh new file mode 100644 index 0000000..39ddd15 --- /dev/null +++ b/migrations/1754047941.sh @@ -0,0 +1,9 @@ +echo "Add icon theme coloring" + +if ! yay -! yaru-icon-theme &>/dev/null; then + yay -S --noconfirm yaru-icon-theme + + if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then + gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)" + fi +fi diff --git a/migrations/1754108993.sh b/migrations/1754108993.sh new file mode 100644 index 0000000..e49eac7 --- /dev/null +++ b/migrations/1754108993.sh @@ -0,0 +1,2 @@ +echo "Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing" +~/.local/share/omarchy/bin/omarchy-refresh-plymouth diff --git a/migrations/1754109724.sh b/migrations/1754109724.sh new file mode 100644 index 0000000..421e37d --- /dev/null +++ b/migrations/1754109724.sh @@ -0,0 +1,6 @@ +echo "Add hyprsunset blue light filter" +if ! command -v hyprsunset &>/dev/null; then + yay -S --noconfirm --needed hyprsunset +fi + +~/.local/share/omarchy/bin/omarchy-refresh-hyprsunset diff --git a/migrations/1754113760.sh b/migrations/1754113760.sh new file mode 100644 index 0000000..de654f5 --- /dev/null +++ b/migrations/1754113760.sh @@ -0,0 +1,10 @@ +echo "Change reload Waybar on unlock command to prevent stacking" + +if ! grep -q 'on_unlock_cmd *= *omarchy-restart-waybar' ~/.config/hypr/hypridle.conf; then + sed -i \ + '/^ on_unlock_cmd = pkill -SIGUSR2 waybar[[:space:]]*# prevent stacking of waybar when waking$/c\ + on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking' \ + ~/.config/hypr/hypridle.conf + + ~/.local/share/omarchy/bin/omarchy-restart-waybar +fi diff --git a/migrations/1754133148.sh b/migrations/1754133148.sh new file mode 100644 index 0000000..010fba7 --- /dev/null +++ b/migrations/1754133148.sh @@ -0,0 +1,6 @@ +echo "Update Waybar CSS to dim unused workspaces" + +if ! grep -q "#workspaces button\.empty" ~/.config/waybar/style.css; then + ~/.local/share/omarchy/bin/omarchy-refresh-config waybar/style.css + ~/.local/share/omarchy/bin/omarchy-restart-waybar +fi diff --git a/migrations/1754136581.sh b/migrations/1754136581.sh new file mode 100644 index 0000000..11dc46d --- /dev/null +++ b/migrations/1754136581.sh @@ -0,0 +1,6 @@ +echo "Start screensaver automatically after 1 minute and stop before locking" + +if ! grep -q "omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then + ~/.local/share/omarchy/bin/omarchy-refresh-hypridle + ~/.local/share/omarchy/bin/omarchy-refresh-hyprlock +fi diff --git a/migrations/1754208139.sh b/migrations/1754208139.sh new file mode 100644 index 0000000..c24407a --- /dev/null +++ b/migrations/1754208139.sh @@ -0,0 +1,5 @@ +echo "Ensure screensaver doesn't start while the computer is locked" + +if ! grep -q "pidof hyprlock || omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then + ~/.local/share/omarchy/bin/omarchy-refresh-hypridle +fi diff --git a/migrations/1754215439.sh b/migrations/1754215439.sh new file mode 100644 index 0000000..f234e1a --- /dev/null +++ b/migrations/1754215439.sh @@ -0,0 +1,5 @@ +echo "Update app launcher config to allow enough entries to show all keybindings on SUPER+K" + +if ! grep "max_entries = 200" ~/.config/walker/config.toml; then + ~/.local/share/omarchy/bin/omarchy-refresh-walker +fi diff --git a/migrations/1754215533.sh b/migrations/1754215533.sh new file mode 100644 index 0000000..05a0774 --- /dev/null +++ b/migrations/1754215533.sh @@ -0,0 +1,17 @@ +echo "Enable auto-discovery of network printers" + +if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then + sudo pacman -S --noconfirm avahi nss-mdns + + # Disable multicast dns in resolved. Avahi will provide this for better network printer discovery + sudo mkdir -p /etc/systemd/resolved.conf.d + echo "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf + sudo systemctl enable --now avahi-daemon.service +fi + +if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then + sudo pacman -S --noconfirm cups-browsed + # Enable automatically adding remote printers + echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf + sudo systemctl enable --now cups-browsed.service +fi diff --git a/migrations/1754221967.sh b/migrations/1754221967.sh new file mode 100644 index 0000000..8225c6d --- /dev/null +++ b/migrations/1754221967.sh @@ -0,0 +1,2 @@ +echo "Add support for accessing Android phone data via file manager" +yay -S --noconfirm --needed gvfs-mtp diff --git a/migrations/1754228071.sh b/migrations/1754228071.sh new file mode 100644 index 0000000..5d6bf95 --- /dev/null +++ b/migrations/1754228071.sh @@ -0,0 +1,5 @@ +echo "Add auto-update icon to waybar when update available" + +if ! grep -q "custom/update" ~/.config/waybar/config.jsonc; then + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi diff --git a/migrations/1754228679.sh b/migrations/1754228679.sh new file mode 100644 index 0000000..3ff2f71 --- /dev/null +++ b/migrations/1754228679.sh @@ -0,0 +1,2 @@ +echo "Increase time before screensaver starts to 2.5 minutes (from 1 minute)" +~/.local/share/omarchy/bin/omarchy-refresh-hypridle diff --git a/migrations/1754265453.sh b/migrations/1754265453.sh new file mode 100644 index 0000000..274aa45 --- /dev/null +++ b/migrations/1754265453.sh @@ -0,0 +1,2 @@ +echo "Add chromium-flags.conf" +~/.local/share/omarchy/bin/omarchy-refresh-config chromium-flags.conf diff --git a/migrations/1754302123.sh b/migrations/1754302123.sh new file mode 100644 index 0000000..5e7ff59 --- /dev/null +++ b/migrations/1754302123.sh @@ -0,0 +1,4 @@ +echo "Change update-available icon in top bar from  to " +if grep -q '"format": "",' ~/.config/waybar/config.jsonc; then + sed -i 's/"format": ""/"format": ""/' ~/.config/waybar/config.jsonc +fi diff --git a/migrations/1754305112.sh b/migrations/1754305112.sh new file mode 100644 index 0000000..5d7e4ba --- /dev/null +++ b/migrations/1754305112.sh @@ -0,0 +1,2 @@ +echo "Restart Walker to pick up menu selections" +~/.local/share/omarchy/bin/omarchy-restart-walker diff --git a/migrations/1754331529.sh b/migrations/1754331529.sh new file mode 100644 index 0000000..8ed51c2 --- /dev/null +++ b/migrations/1754331529.sh @@ -0,0 +1,5 @@ +echo "Update Waybar for new Omarchy menu" + +if ! grep -q "" ~/.config/waybar/config.jsonc; then + ~/.local/share/omarchy/bin/omarchy-refresh-waybar +fi diff --git a/migrations/1754332200.sh b/migrations/1754332200.sh new file mode 100644 index 0000000..b70623b --- /dev/null +++ b/migrations/1754332200.sh @@ -0,0 +1,2 @@ +echo "Remove old Omarchy TUI app now that we have the Omarchy Menu" +rm ~/.local/share/applications/omarchy.desktop diff --git a/migrations/1754389057.sh b/migrations/1754389057.sh new file mode 100644 index 0000000..e1ee7ff --- /dev/null +++ b/migrations/1754389057.sh @@ -0,0 +1,11 @@ +echo "Offer to reorganize hyprland.conf as per new defaults" + +if [[ ! -f ~/.config/hypr/autostarts.conf ]]; then + echo -e "\nOmarchy now splits default .config/hypr/hyprland.conf into sub-configs." + echo -e "Resetting to defaults will overwrite your configuration, but save it as .bak.\n" + if gum confirm "Use new default hyprland.conf config?"; then + ~/.local/share/omarchy/bin/omarchy-refresh-hyprland || true + else + echo "Left your existing configuration in place!" + fi +fi diff --git a/migrations/1754390772.sh b/migrations/1754390772.sh new file mode 100644 index 0000000..943ac65 --- /dev/null +++ b/migrations/1754390772.sh @@ -0,0 +1,6 @@ +echo "Set SwayOSD max volume back to 100" + +if ! grep -q "max_volume = 100" ~/.config/swayosd/config.toml; then + sed -i 's/max_volume = 150/max_volume = 100/' ~/.config/swayosd/config.toml + ~/.local/share/omarchy/bin/omarchy-restart-swayosd +fi diff --git a/migrations/1754509222.sh b/migrations/1754509222.sh new file mode 100644 index 0000000..799cac3 --- /dev/null +++ b/migrations/1754509222.sh @@ -0,0 +1,3 @@ +echo "Add xmlstarlet needed for updating fonts via Omarchy menu" + +yay -Sy --noconfirm --needed xmlstarlet diff --git a/migrations/1754514972.sh b/migrations/1754514972.sh new file mode 100644 index 0000000..787d8bc --- /dev/null +++ b/migrations/1754514972.sh @@ -0,0 +1,3 @@ +echo "Fix multicast dns config for printers" + +echo -e "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf diff --git a/migrations/1754515289.sh b/migrations/1754515289.sh new file mode 100644 index 0000000..82aad35 --- /dev/null +++ b/migrations/1754515289.sh @@ -0,0 +1,4 @@ +echo "Update and restart Walker to resolve stuck Omarchy menu" + +yay -Sy --noconfirm walker-bin +~/.local/share/omarchy/bin/omarchy-restart-walker diff --git a/migrations/1754566681.sh b/migrations/1754566681.sh new file mode 100644 index 0000000..23677dc --- /dev/null +++ b/migrations/1754566681.sh @@ -0,0 +1,7 @@ +echo "Make new Osaka Jade theme available as new default" + +if [[ ! -L ~/.config/omarchy/themes/osaka-jade ]]; then + rm -rf ~/.config/omarchy/themes/osaka-jade + git -C ~/.local/share/omarchy co -f themes/osaka-jade + ln -nfs ~/.local/share/omarchy/themes/osaka-jade ~/.config/omarchy/themes/osaka-jade +fi diff --git a/themes/catppuccin-latte/alacritty.toml b/themes/catppuccin-latte/alacritty.toml new file mode 100644 index 0000000..3fcf61e --- /dev/null +++ b/themes/catppuccin-latte/alacritty.toml @@ -0,0 +1,67 @@ +# https://raw.githubusercontent.com/catppuccin/alacritty/main/catppuccin-latte.toml + +[colors.primary] +background = "#eff1f5" +foreground = "#4c4f69" +dim_foreground = "#8c8fa1" +bright_foreground = "#4c4f69" + +[colors.cursor] +text = "#eff1f5" +cursor = "#dc8a78" + +[colors.vi_mode_cursor] +text = "#eff1f5" +cursor = "#7287fd" + +[colors.search.matches] +foreground = "#eff1f5" +background = "#6c6f85" + +[colors.search.focused_match] +foreground = "#eff1f5" +background = "#40a02b" + +[colors.footer_bar] +foreground = "#eff1f5" +background = "#6c6f85" + +[colors.hints.start] +foreground = "#eff1f5" +background = "#df8e1d" + +[colors.hints.end] +foreground = "#eff1f5" +background = "#6c6f85" + +[colors.selection] +text = "#eff1f5" +background = "#dc8a78" + +[colors.normal] +black = "#bcc0cc" +red = "#d20f39" +green = "#40a02b" +yellow = "#df8e1d" +blue = "#1e66f5" +magenta = "#ea76cb" +cyan = "#179299" +white = "#5c5f77" + +[colors.bright] +black = "#acb0be" +red = "#d20f39" +green = "#40a02b" +yellow = "#df8e1d" +blue = "#1e66f5" +magenta = "#ea76cb" +cyan = "#179299" +white = "#6c6f85" + +[[colors.indexed_colors]] +index = 16 +color = "#fe640b" + +[[colors.indexed_colors]] +index = 17 +color = "#dc8a78" diff --git a/themes/catppuccin-latte/backgrounds/1-catppuccin-latte.png b/themes/catppuccin-latte/backgrounds/1-catppuccin-latte.png new file mode 100644 index 0000000..ee0cd94 Binary files /dev/null and b/themes/catppuccin-latte/backgrounds/1-catppuccin-latte.png differ diff --git a/themes/catppuccin-latte/btop.theme b/themes/catppuccin-latte/btop.theme new file mode 100644 index 0000000..87ed181 --- /dev/null +++ b/themes/catppuccin-latte/btop.theme @@ -0,0 +1,84 @@ +# https://github.com/catppuccin/btop/blob/main/themes/catppuccin_latte.theme +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#eff1f5" + +# Main text color +theme[main_fg]="#4c4f69" + +# Title color for boxes +theme[title]="#4c4f69" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#1e66f5" + +# Background color of selected item in processes box +theme[selected_bg]="#bcc0cc" + +# Foreground color of selected item in processes box +theme[selected_fg]="#1e66f5" + +# Color of inactive/disabled text +theme[inactive_fg]="#8c8fa1" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#dc8a78" + +# Background color of the percentage meters +theme[meter_bg]="#bcc0cc" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#dc8a78" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#8839ef" #Mauve +theme[mem_box]="#40a02b" #Green +theme[net_box]="#e64553" #Maroon +theme[proc_box]="#1e66f5" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#9ca0b0" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#40a02b" +theme[temp_mid]="#df8e1d" +theme[temp_end]="#d20f39" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#179299" +theme[cpu_mid]="#209fb5" +theme[cpu_end]="#7287fd" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#8839ef" +theme[free_mid]="#7287fd" +theme[free_end]="#1e66f5" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#209fb5" +theme[cached_mid]="#1e66f5" +theme[cached_end]="#7287fd" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#fe640b" +theme[available_mid]="#e64553" +theme[available_end]="#d20f39" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#40a02b" +theme[used_mid]="#179299" +theme[used_end]="#04a5e5" + +# Download graph colors (Peach -> Red) +theme[download_start]="#fe640b" +theme[download_mid]="#e64553" +theme[download_end]="#d20f39" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#40a02b" +theme[upload_mid]="#179299" +theme[upload_end]="#04a5e5" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#209fb5" +theme[process_mid]="#7287fd" +theme[process_end]="#8839ef" diff --git a/themes/catppuccin-latte/hyprland.conf b/themes/catppuccin-latte/hyprland.conf new file mode 100644 index 0000000..afc429d --- /dev/null +++ b/themes/catppuccin-latte/hyprland.conf @@ -0,0 +1,4 @@ +general { + col.active_border = rgb(1e66f5) +} + diff --git a/themes/catppuccin-latte/hyprlock.conf b/themes/catppuccin-latte/hyprlock.conf new file mode 100644 index 0000000..c47e518 --- /dev/null +++ b/themes/catppuccin-latte/hyprlock.conf @@ -0,0 +1,6 @@ +$color = rgba(239,241,245,1.0) +$inner_color = rgba(239,241,245,0.8) +$outer_color = rgba(30,102,245,1.0) +$font_color = rgba(76,79,105,1.0) +$check_color = rgba(4,165,229,1.0) + diff --git a/themes/catppuccin-latte/icons.theme b/themes/catppuccin-latte/icons.theme new file mode 100644 index 0000000..6ce2f14 --- /dev/null +++ b/themes/catppuccin-latte/icons.theme @@ -0,0 +1 @@ +Yaru-blue diff --git a/themes/catppuccin-latte/light.mode b/themes/catppuccin-latte/light.mode new file mode 100644 index 0000000..66bb2d0 --- /dev/null +++ b/themes/catppuccin-latte/light.mode @@ -0,0 +1 @@ +# This will set "prefer-light" and use "Adwaita" as the theme diff --git a/themes/catppuccin-latte/mako.ini b/themes/catppuccin-latte/mako.ini new file mode 100644 index 0000000..d19a1c3 --- /dev/null +++ b/themes/catppuccin-latte/mako.ini @@ -0,0 +1,22 @@ +text-color=#4c4f69 +border-color=#1e66f5 +background-color=#eff1f5 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false + diff --git a/themes/catppuccin-latte/neovim.lua b/themes/catppuccin-latte/neovim.lua new file mode 100644 index 0000000..07a53cf --- /dev/null +++ b/themes/catppuccin-latte/neovim.lua @@ -0,0 +1,19 @@ +return { + { + "catppuccin/nvim", + name = "catppuccin", + priority = 1000, + config = function() + require("catppuccin").setup({ + flavour = "latte", -- other options: "mocha", "frappe", "macchiato" + }) + vim.cmd.colorscheme("catppuccin-latte") + end, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin-latte", + }, + }, +} diff --git a/themes/catppuccin-latte/swayosd.css b/themes/catppuccin-latte/swayosd.css new file mode 100644 index 0000000..c5f23aa --- /dev/null +++ b/themes/catppuccin-latte/swayosd.css @@ -0,0 +1,5 @@ +@define-color background-color #eff1f5; +@define-color border-color #1e66f5; +@define-color label #4c4f69; +@define-color image #4c4f69; +@define-color progress #4c4f69; diff --git a/themes/catppuccin-latte/walker.css b/themes/catppuccin-latte/walker.css new file mode 100644 index 0000000..30e54bd --- /dev/null +++ b/themes/catppuccin-latte/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #1e66f5; +@define-color text #4c4f69; +@define-color base #eff1f5; +@define-color border #dce0e8; +@define-color foreground #4c4f69; +@define-color background #eff1f5; diff --git a/themes/catppuccin-latte/waybar.css b/themes/catppuccin-latte/waybar.css new file mode 100644 index 0000000..5918ec6 --- /dev/null +++ b/themes/catppuccin-latte/waybar.css @@ -0,0 +1,4 @@ +@define-color foreground #4c4f69; /* text */ +@define-color background #eff1f5; /* base */ +@define-color border #dce0e8; /* crust */ +@define-color accent #1e66f5; /* blue */ diff --git a/themes/catppuccin/alacritty.toml b/themes/catppuccin/alacritty.toml new file mode 100644 index 0000000..bfa455a --- /dev/null +++ b/themes/catppuccin/alacritty.toml @@ -0,0 +1,76 @@ +[colors.primary] +background = "#24273a" +foreground = "#cad3f5" +dim_foreground = "#8087a2" +bright_foreground = "#cad3f5" + +[colors.cursor] +text = "#24273a" +cursor = "#f4dbd6" + +[colors.vi_mode_cursor] +text = "#24273a" +cursor = "#b7bdf8" + +[colors.search.matches] +foreground = "#24273a" +background = "#a5adcb" + +[colors.search.focused_match] +foreground = "#24273a" +background = "#a6da95" + +[colors.footer_bar] +foreground = "#24273a" +background = "#a5adcb" + +[colors.hints.start] +foreground = "#24273a" +background = "#eed49f" + +[colors.hints.end] +foreground = "#24273a" +background = "#a5adcb" + +[colors.selection] +text = "#24273a" +background = "#f4dbd6" + +[colors.normal] +black = "#494d64" +red = "#ed8796" +green = "#a6da95" +yellow = "#eed49f" +blue = "#8aadf4" +magenta = "#f5bde6" +cyan = "#8bd5ca" +white = "#b8c0e0" + +[colors.bright] +black = "#5b6078" +red = "#ed8796" +green = "#a6da95" +yellow = "#eed49f" +blue = "#8aadf4" +magenta = "#f5bde6" +cyan = "#8bd5ca" +white = "#a5adcb" + +[colors.dim] +black = "#494d64" +red = "#ed8796" +green = "#a6da95" +yellow = "#eed49f" +blue = "#8aadf4" +magenta = "#f5bde6" +cyan = "#8bd5ca" +white = "#b8c0e0" + +[[colors.indexed_colors]] +index = 16 +color = "#f5a97f" + +[[colors.indexed_colors]] +index = 17 +color = "#f4dbd6" + diff --git a/themes/catppuccin/backgrounds/1-catppuccin.png b/themes/catppuccin/backgrounds/1-catppuccin.png new file mode 100644 index 0000000..5fbcebc Binary files /dev/null and b/themes/catppuccin/backgrounds/1-catppuccin.png differ diff --git a/themes/catppuccin/btop.theme b/themes/catppuccin/btop.theme new file mode 100644 index 0000000..18a4ff6 --- /dev/null +++ b/themes/catppuccin/btop.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#24273a" + +# Main text color +theme[main_fg]="#c6d0f5" + +# Title color for boxes +theme[title]="#c6d0f5" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#8caaee" + +# Background color of selected item in processes box +theme[selected_bg]="#51576d" + +# Foreground color of selected item in processes box +theme[selected_fg]="#8caaee" + +# Color of inactive/disabled text +theme[inactive_fg]="#838ba7" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#f2d5cf" + +# Background color of the percentage meters +theme[meter_bg]="#51576d" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#f2d5cf" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#ca9ee6" #Mauve +theme[mem_box]="#a6d189" #Green +theme[net_box]="#ea999c" #Maroon +theme[proc_box]="#8caaee" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#737994" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6d189" +theme[temp_mid]="#e5c890" +theme[temp_end]="#e78284" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#81c8be" +theme[cpu_mid]="#85c1dc" +theme[cpu_end]="#babbf1" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#ca9ee6" +theme[free_mid]="#babbf1" +theme[free_end]="#8caaee" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#85c1dc" +theme[cached_mid]="#8caaee" +theme[cached_end]="#babbf1" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#ef9f76" +theme[available_mid]="#ea999c" +theme[available_end]="#e78284" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6d189" +theme[used_mid]="#81c8be" +theme[used_end]="#99d1db" + +# Download graph colors (Peach -> Red) +theme[download_start]="#ef9f76" +theme[download_mid]="#ea999c" +theme[download_end]="#e78284" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6d189" +theme[upload_mid]="#81c8be" +theme[upload_end]="#99d1db" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#85c1dc" +theme[process_mid]="#babbf1" +theme[process_end]="#ca9ee6" diff --git a/themes/catppuccin/hyprland.conf b/themes/catppuccin/hyprland.conf new file mode 100644 index 0000000..46ff7e6 --- /dev/null +++ b/themes/catppuccin/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(c6d0f5) +} diff --git a/themes/catppuccin/hyprlock.conf b/themes/catppuccin/hyprlock.conf new file mode 100644 index 0000000..4bd905b --- /dev/null +++ b/themes/catppuccin/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(24,24,36,1.0) +$inner_color = rgba(24,24,36,0.8) +$outer_color = rgba(205,214,244,1.0) +$font_color = rgba(205,214,244,1.0) +$check_color = rgba(68, 157, 171, 1.0) diff --git a/themes/catppuccin/icons.theme b/themes/catppuccin/icons.theme new file mode 100644 index 0000000..24a4551 --- /dev/null +++ b/themes/catppuccin/icons.theme @@ -0,0 +1 @@ +Yaru-purple diff --git a/themes/catppuccin/mako.ini b/themes/catppuccin/mako.ini new file mode 100644 index 0000000..1b13e79 --- /dev/null +++ b/themes/catppuccin/mako.ini @@ -0,0 +1,21 @@ +text-color=#cad3f5 +border-color=#c6d0f5 +background-color=#24273a +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/catppuccin/neovim.lua b/themes/catppuccin/neovim.lua new file mode 100644 index 0000000..dbe34f5 --- /dev/null +++ b/themes/catppuccin/neovim.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "catppuccin", + }, + }, +} diff --git a/themes/catppuccin/swayosd.css b/themes/catppuccin/swayosd.css new file mode 100644 index 0000000..0ff80d2 --- /dev/null +++ b/themes/catppuccin/swayosd.css @@ -0,0 +1,5 @@ +@define-color background-color #24273a; +@define-color border-color #c6d0f5; +@define-color label #cad3f5; +@define-color image #cad3f5; +@define-color progress #cad3f5; diff --git a/themes/catppuccin/walker.css b/themes/catppuccin/walker.css new file mode 100644 index 0000000..4b0d346 --- /dev/null +++ b/themes/catppuccin/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #8caaee; +@define-color text #c6d0f5; +@define-color base #24273a; +@define-color border #c6d0f5; +@define-color foreground #c6d0f5; +@define-color background #24273a; diff --git a/themes/catppuccin/waybar.css b/themes/catppuccin/waybar.css new file mode 100644 index 0000000..bf35a40 --- /dev/null +++ b/themes/catppuccin/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #cdd6f4; +@define-color background #181824; diff --git a/themes/everforest/alacritty.toml b/themes/everforest/alacritty.toml new file mode 100644 index 0000000..faf62fa --- /dev/null +++ b/themes/everforest/alacritty.toml @@ -0,0 +1,24 @@ +[colors] +[colors.primary] +background = '#2d353b' +foreground = '#d3c6aa' + +[colors.normal] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' + +[colors.bright] +black = '#475258' +red = '#e67e80' +green = '#a7c080' +yellow = '#dbbc7f' +blue = '#7fbbb3' +magenta = '#d699b6' +cyan = '#83c092' +white = '#d3c6aa' diff --git a/themes/everforest/backgrounds/1-everforest.jpg b/themes/everforest/backgrounds/1-everforest.jpg new file mode 100644 index 0000000..6d75259 Binary files /dev/null and b/themes/everforest/backgrounds/1-everforest.jpg differ diff --git a/themes/everforest/btop.theme b/themes/everforest/btop.theme new file mode 100644 index 0000000..f6aeadf --- /dev/null +++ b/themes/everforest/btop.theme @@ -0,0 +1,92 @@ +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#2d353b" + +# Main text color +theme[main_fg]="#d3c6aa" + +# Title color for boxes +theme[title]="#d3c6aa" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#e67e80" + +# Background color of selected items +theme[selected_bg]="#3d484d" + +# Foreground color of selected items +theme[selected_fg]="#dbbc7f" + +# Color of inactive/disabled text +theme[inactive_fg]="#2d353b" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#d3c6aa" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#a7c080" + +# Cpu box outline color +theme[cpu_box]="#3d484d" + +# Memory/disks box outline color +theme[mem_box]="#3d484d" + +# Net up/down box outline color +theme[net_box]="#3d484d" + +# Processes box outline color +theme[proc_box]="#3d484d" + +# Box divider line and small boxes line color +theme[div_line]="#3d484d" + +# Temperature graph colors +theme[temp_start]="#a7c080" +theme[temp_mid]="#dbbc7f" +theme[temp_end]="#f85552" + +# CPU graph colors +theme[cpu_start]="#a7c080" +theme[cpu_mid]="#dbbc7f" +theme[cpu_end]="#f85552" + +# Mem/Disk free meter +theme[free_start]="#f85552" +theme[free_mid]="#dbbc7f" +theme[free_end]="#a7c080" + +# Mem/Disk cached meter +theme[cached_start]="#7fbbb3" +theme[cached_mid]="#83c092" +theme[cached_end]="#a7c080" + +# Mem/Disk available meter +theme[available_start]="#f85552" +theme[available_mid]="#dbbc7f" +theme[available_end]="#a7c080" + +# Mem/Disk used meter +theme[used_start]="#a7c080" +theme[used_mid]="#dbbc7f" +theme[used_end]="#f85552" + +# Download graph colors +theme[download_start]="#a7c080" +theme[download_mid]="#83c092" +theme[download_end]="#7fbbb3" + +# Upload graph colors +theme[upload_start]="#dbbc7f" +theme[upload_mid]="#e69875" +theme[upload_end]="#e67e80" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#a7c080" +theme[process_mid]="#e67e80" +theme[process_end]="#f85552" + diff --git a/themes/everforest/hyprland.conf b/themes/everforest/hyprland.conf new file mode 100644 index 0000000..e88f030 --- /dev/null +++ b/themes/everforest/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(d3c6aa) +} diff --git a/themes/everforest/hyprlock.conf b/themes/everforest/hyprlock.conf new file mode 100644 index 0000000..1135952 --- /dev/null +++ b/themes/everforest/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(45,53,59,1.0) +$inner_color = rgba(45,53,59,0.8) +$outer_color = rgba(211,198,170,1.0) +$font_color = rgba(211,198,170,1.0) +$check_color = rgba(131, 192, 146, 1.0) diff --git a/themes/everforest/icons.theme b/themes/everforest/icons.theme new file mode 100644 index 0000000..140e422 --- /dev/null +++ b/themes/everforest/icons.theme @@ -0,0 +1 @@ +Yaru-sage diff --git a/themes/everforest/mako.ini b/themes/everforest/mako.ini new file mode 100644 index 0000000..3c1cc74 --- /dev/null +++ b/themes/everforest/mako.ini @@ -0,0 +1,21 @@ +text-color=#d3c6aa +border-color=#d3c6aa +background-color=#2d353b +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/everforest/neovim.lua b/themes/everforest/neovim.lua new file mode 100644 index 0000000..80551c7 --- /dev/null +++ b/themes/everforest/neovim.lua @@ -0,0 +1,10 @@ +return { + { "neanias/everforest-nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "everforest", + background = "soft", + }, + }, +} diff --git a/themes/everforest/swayosd.css b/themes/everforest/swayosd.css new file mode 100644 index 0000000..f0bff40 --- /dev/null +++ b/themes/everforest/swayosd.css @@ -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; + diff --git a/themes/everforest/walker.css b/themes/everforest/walker.css new file mode 100644 index 0000000..56d6e56 --- /dev/null +++ b/themes/everforest/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #dbbc7f; +@define-color text #d3c6aa; +@define-color base #2d353b; +@define-color border #d3c6aa; +@define-color foreground #d3c6aa; +@define-color background #2d353b; diff --git a/themes/everforest/waybar.css b/themes/everforest/waybar.css new file mode 100644 index 0000000..e8249f7 --- /dev/null +++ b/themes/everforest/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #d3c6aa; +@define-color background #2d353b; diff --git a/themes/gruvbox/alacritty.toml b/themes/gruvbox/alacritty.toml new file mode 100644 index 0000000..03f4b61 --- /dev/null +++ b/themes/gruvbox/alacritty.toml @@ -0,0 +1,24 @@ +[colors] +[colors.primary] +background = "0x282828" +foreground = "0xd4be98" + +[colors.normal] +black = "0x3c3836" +red = "0xea6962" +green = "0xa9b665" +yellow = "0xd8a657" +blue = "0x7daea3" +magenta = "0xd3869b" +cyan = "0x89b482" +white = "0xd4be98" + +[colors.bright] +black = "0x3c3836" +red = "0xea6962" +green = "0xa9b665" +yellow = "0xd8a657" +blue = "0x7daea3" +magenta = "0xd3869b" +cyan = "0x89b482" +white = "0xd4be98" diff --git a/themes/gruvbox/backgrounds/1-grubox.jpg b/themes/gruvbox/backgrounds/1-grubox.jpg new file mode 100644 index 0000000..fd31869 Binary files /dev/null and b/themes/gruvbox/backgrounds/1-grubox.jpg differ diff --git a/themes/gruvbox/btop.theme b/themes/gruvbox/btop.theme new file mode 100644 index 0000000..0584954 --- /dev/null +++ b/themes/gruvbox/btop.theme @@ -0,0 +1,92 @@ +#Bashtop gruvbox (https://github.com/morhetz/gruvbox) theme +#by BachoSeven + +# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" +# example for white: "#FFFFFF", "#ff" or "255 255 255". + +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#282828" + +# Main text color +theme[main_fg]="#a89984" + +# Title color for boxes +theme[title]="#ebdbb2" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#d79921" + +# Background color of selected items +theme[selected_bg]="#282828" + +# Foreground color of selected items +theme[selected_fg]="#fabd2f" + +# Color of inactive/disabled text +theme[inactive_fg]="#282828" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#585858" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#98971a" + +# Cpu box outline color +theme[cpu_box]="#a89984" + +# Memory/disks box outline color +theme[mem_box]="#a89984" + +# Net up/down box outline color +theme[net_box]="#a89984" + +# Processes box outline color +theme[proc_box]="#a89984" + +# Box divider line and small boxes line color +theme[div_line]="#a89984" + +# Temperature graph colors +theme[temp_start]="#458588" +theme[temp_mid]="#d3869b" +theme[temp_end]="#fb4394" + +# CPU graph colors +theme[cpu_start]="#b8bb26" +theme[cpu_mid]="#d79921" +theme[cpu_end]="#fb4934" + +# Mem/Disk free meter +theme[free_start]="#4e5900" +theme[free_mid]="" +theme[free_end]="#98971a" + +# Mem/Disk cached meter +theme[cached_start]="#458588" +theme[cached_mid]="" +theme[cached_end]="#83a598" + +# Mem/Disk available meter +theme[available_start]="#d79921" +theme[available_mid]="" +theme[available_end]="#fabd2f" + +# Mem/Disk used meter +theme[used_start]="#cc241d" +theme[used_mid]="" +theme[used_end]="#fb4934" + +# Download graph colors +theme[download_start]="#3d4070" +theme[download_mid]="#6c71c4" +theme[download_end]="#a3a8f7" + +# Upload graph colors +theme[upload_start]="#701c45" +theme[upload_mid]="#b16286" +theme[upload_end]="#d3869b" diff --git a/themes/gruvbox/hyprland.conf b/themes/gruvbox/hyprland.conf new file mode 100644 index 0000000..85dbf14 --- /dev/null +++ b/themes/gruvbox/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(a89984) +} diff --git a/themes/gruvbox/hyprlock.conf b/themes/gruvbox/hyprlock.conf new file mode 100644 index 0000000..1d18e4f --- /dev/null +++ b/themes/gruvbox/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(40,40,40,1.0) +$inner_color = rgba(40,40,40,0.8) +$outer_color = rgba(212,190,152,1.0) +$font_color = rgba(212,190,152,1.0) +$check_color = rgba(214, 153, 92, 1.0) diff --git a/themes/gruvbox/icons.theme b/themes/gruvbox/icons.theme new file mode 100644 index 0000000..7bb20fc --- /dev/null +++ b/themes/gruvbox/icons.theme @@ -0,0 +1 @@ +Yaru-olive diff --git a/themes/gruvbox/mako.ini b/themes/gruvbox/mako.ini new file mode 100644 index 0000000..f0106a9 --- /dev/null +++ b/themes/gruvbox/mako.ini @@ -0,0 +1,21 @@ +text-color=#d4be98 +border-color=#a89984 +background-color=#282828 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/gruvbox/neovim.lua b/themes/gruvbox/neovim.lua new file mode 100644 index 0000000..edaf0d5 --- /dev/null +++ b/themes/gruvbox/neovim.lua @@ -0,0 +1,9 @@ +return { + { "ellisonleao/gruvbox.nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "gruvbox", + }, + }, +} diff --git a/themes/gruvbox/swayosd.css b/themes/gruvbox/swayosd.css new file mode 100644 index 0000000..16240ae --- /dev/null +++ b/themes/gruvbox/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #282828; +@define-color border-color #a89984; +@define-color label #ebdbb2; +@define-color image #ebdbb2; +@define-color progress #ebdbb2; + diff --git a/themes/gruvbox/walker.css b/themes/gruvbox/walker.css new file mode 100644 index 0000000..6192cd6 --- /dev/null +++ b/themes/gruvbox/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #fabd2f; +@define-color text #ebdbb2; +@define-color base #282828; +@define-color border #ebdbb2; +@define-color foreground #ebdbb2; +@define-color background #282828; diff --git a/themes/gruvbox/waybar.css b/themes/gruvbox/waybar.css new file mode 100644 index 0000000..598de57 --- /dev/null +++ b/themes/gruvbox/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #d4be98; +@define-color background #282828; diff --git a/themes/kanagawa/alacritty.toml b/themes/kanagawa/alacritty.toml new file mode 100644 index 0000000..341965c --- /dev/null +++ b/themes/kanagawa/alacritty.toml @@ -0,0 +1,36 @@ +[colors] +[colors.primary] +background = '#1f1f28' +foreground = '#dcd7ba' + +[colors.normal] +black = '#090618' +red = '#c34043' +green = '#76946a' +yellow = '#c0a36e' +blue = '#7e9cd8' +magenta = '#957fb8' +cyan = '#6a9589' +white = '#c8c093' + +[colors.bright] +black = '#727169' +red = '#e82424' +green = '#98bb6c' +yellow = '#e6c384' +blue = '#7fb4ca' +magenta = '#938aa9' +cyan = '#7aa89f' +white = '#dcd7ba' + +[colors.selection] +background = '#2d4f67' +foreground = '#c8c093' + +[[colors.indexed_colors]] +index = 16 +color = '#ffa066' + +[[colors.indexed_colors]] +index = 17 +color = '#ff5d62' diff --git a/themes/kanagawa/backgrounds/1-kanagawa.jpg b/themes/kanagawa/backgrounds/1-kanagawa.jpg new file mode 100644 index 0000000..197c48d Binary files /dev/null and b/themes/kanagawa/backgrounds/1-kanagawa.jpg differ diff --git a/themes/kanagawa/btop.theme b/themes/kanagawa/btop.theme new file mode 100644 index 0000000..5202748 --- /dev/null +++ b/themes/kanagawa/btop.theme @@ -0,0 +1,86 @@ +# Bashtop Kanagawa-wave (https://github.com/rebelot/kanagawa.nvim) theme +# By: philikarus + +# Main bg +theme[main_bg]="#1f1f28" + +# Main text color +theme[main_fg]="#dcd7ba" + +# Title color for boxes +theme[title]="#dcd7ba" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#C34043" + +# Background color of selected item in processes box +theme[selected_bg]="#223249" + +# Foreground color of selected item in processes box +theme[selected_fg]="#dca561" + +# Color of inactive/disabled text +theme[inactive_fg]="#727169" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#7aa89f" + +# Cpu box outline color +theme[cpu_box]="#727169" + +# Memory/disks box outline color +theme[mem_box]="#727169" + +# Net up/down box outline color +theme[net_box]="#727169" + +# Processes box outline color +theme[proc_box]="#727169" + +# Box divider line and small boxes line color +theme[div_line]="#727169" + +# Temperature graph colors +theme[temp_start]="#98BB6C" +theme[temp_mid]="#DCA561" +theme[temp_end]="#E82424" + +# CPU graph colors +theme[cpu_start]="#98BB6C" +theme[cpu_mid]="#DCA561" +theme[cpu_end]="#E82424" + +# Mem/Disk free meter +theme[free_start]="#E82424" +theme[free_mid]="#C34043" +theme[free_end]="#FF5D62" + +# Mem/Disk cached meter +theme[cached_start]="#C0A36E" +theme[cached_mid]="#DCA561" +theme[cached_end]="#FF9E3B" + +# Mem/Disk available meter +theme[available_start]="#938AA9" +theme[available_mid]="#957FBB" +theme[available_end]="#9CABCA" + +# Mem/Disk used meter +theme[used_start]="#658594" +theme[used_mid]="#7E9CDB" +theme[used_end]="#7FB4CA" + +# Download graph colors +theme[download_start]="#7E9CDB" +theme[download_mid]="#938AA9" +theme[download_end]="#957FBB" + +# Upload graph colors +theme[upload_start]="#DCA561" +theme[upload_mid]="#E6C384" +theme[upload_end]="#E82424" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#98BB6C" +theme[process_mid]="#DCA561" +theme[process_end]="#C34043" diff --git a/themes/kanagawa/hyprland.conf b/themes/kanagawa/hyprland.conf new file mode 100644 index 0000000..4972f14 --- /dev/null +++ b/themes/kanagawa/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(dcd7ba) +} diff --git a/themes/kanagawa/hyprlock.conf b/themes/kanagawa/hyprlock.conf new file mode 100644 index 0000000..7608b2c --- /dev/null +++ b/themes/kanagawa/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(31,31,40,1.0) +$inner_color = rgba(31,31,40,0.8) +$outer_color = rgba(220,215,186,1.0) +$font_color = rgba(220,215,186,1.0) +$check_color = rgba(126, 156, 216, 1.0) diff --git a/themes/kanagawa/icons.theme b/themes/kanagawa/icons.theme new file mode 100644 index 0000000..6ce2f14 --- /dev/null +++ b/themes/kanagawa/icons.theme @@ -0,0 +1 @@ +Yaru-blue diff --git a/themes/kanagawa/mako.ini b/themes/kanagawa/mako.ini new file mode 100644 index 0000000..27495bd --- /dev/null +++ b/themes/kanagawa/mako.ini @@ -0,0 +1,21 @@ +text-color=#dcd7ba +border-color=#dcd7ba +background-color=#1f1f28 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/kanagawa/neovim.lua b/themes/kanagawa/neovim.lua new file mode 100644 index 0000000..b31e9e5 --- /dev/null +++ b/themes/kanagawa/neovim.lua @@ -0,0 +1,9 @@ +return { + { "rebelot/kanagawa.nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "kanagawa", + }, + }, +} diff --git a/themes/kanagawa/swayosd.css b/themes/kanagawa/swayosd.css new file mode 100644 index 0000000..1eb5c85 --- /dev/null +++ b/themes/kanagawa/swayosd.css @@ -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; + diff --git a/themes/kanagawa/walker.css b/themes/kanagawa/walker.css new file mode 100644 index 0000000..8284746 --- /dev/null +++ b/themes/kanagawa/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #dca561; +@define-color text #dcd7ba; +@define-color base #1f1f28; +@define-color border #dcd7ba; +@define-color foreground #dcd7ba; +@define-color background #1f1f28; diff --git a/themes/kanagawa/waybar.css b/themes/kanagawa/waybar.css new file mode 100644 index 0000000..029cc07 --- /dev/null +++ b/themes/kanagawa/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #dcd7ba; +@define-color background #1f1f28; diff --git a/themes/matte-black/alacritty.toml b/themes/matte-black/alacritty.toml new file mode 100644 index 0000000..2082409 --- /dev/null +++ b/themes/matte-black/alacritty.toml @@ -0,0 +1,53 @@ +# ──────────────────────────────────────────────────────────── +# Omarchy Matte Black Theme for Alacritty +# By tahayvr +# https://github.com/tahayvr +# ──────────────────────────────────────────────────────────── + +[window] +# window padding {px} +padding.x = 12 +padding.y = 12 + +[font] +size = 12.0 + + + +[colors] +[colors.primary] +background = "#121212" +foreground = "#bebebe" +dim_foreground = "#8a8a8d" + +[colors.cursor] +text = "#121212" +cursor = "#eaeaea" + +[colors.vi_mode_cursor] +text = "#121212" +cursor = "#eaeaea" + +[colors.selection] +text = "CellForeground" +background = "#333333" + +[colors.normal] +black = "#333333" +red = "#D35F5F" +green = "#FFC107" +yellow = "#b91c1c" +blue = "#e68e0d" +magenta = "#D35F5F" +cyan = "#bebebe" +white = "#bebebe" + +[colors.bright] +black = "#8a8a8d" +red = "#B91C1C" +green = "#FFC107" +yellow = "#b90a0a" +blue = "#f59e0b" +magenta = "#B91C1C" +cyan = "#eaeaea" +white = "#ffffff" \ No newline at end of file diff --git a/themes/matte-black/backgrounds/1-matte-black.jpg b/themes/matte-black/backgrounds/1-matte-black.jpg new file mode 100644 index 0000000..2afb1bc Binary files /dev/null and b/themes/matte-black/backgrounds/1-matte-black.jpg differ diff --git a/themes/matte-black/btop.theme b/themes/matte-black/btop.theme new file mode 100644 index 0000000..c8cdcd0 --- /dev/null +++ b/themes/matte-black/btop.theme @@ -0,0 +1,92 @@ +# ──────────────────────────────────────────────────────────── +# Bashtop theme - Omarchy Matte Black +# by tahayvr +# https://github.com/tahayvr +# ──────────────────────────────────────────────────────────── + +# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" +# example for white: "#ffffff", "#ff" or "255 255 255". + +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="" + +# Main text color +theme[main_fg]="#EAEAEA" + +# Title color for boxes +theme[title]="#8a8a8d" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#f59e0b" + +# Background color of selected item in processes box +theme[selected_bg]="#f59e0b" + +# Foreground color of selected item in processes box +theme[selected_fg]="#EAEAEA" + +# Color of inactive/disabled text +theme[inactive_fg]="#333333" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#8a8a8d" + +# Cpu box outline color +theme[cpu_box]="#8a8a8d" + +# Memory/disks box outline color +theme[mem_box]="#8a8a8d" + +# Net up/down box outline color +theme[net_box]="#8a8a8d" + +# Processes box outline color +theme[proc_box]="#8a8a8d" + +# Box divider line and small boxes line color +theme[div_line]="#8a8a8d" + +# Temperature graph colors +theme[temp_start]="#8a8a8d" +theme[temp_mid]="#f59e0b" +theme[temp_end]="#b91c1c" + +# CPU graph colors +theme[cpu_start]="#8a8a8d" +theme[cpu_mid]="#f59e0b" +theme[cpu_end]="#b91c1c" + +# Mem/Disk free meter +theme[free_start]="#8a8a8d" +theme[free_mid]="#f59e0b" +theme[free_end]="#b91c1c" + +# Mem/Disk cached meter +theme[cached_start]="#8a8a8d" +theme[cached_mid]="#f59e0b" +theme[cached_end]="#b91c1c" + +# Mem/Disk available meter +theme[available_start]="#8a8a8d" +theme[available_mid]="#f59e0b" +theme[available_end]="#b91c1c" + +# Mem/Disk used meter +theme[used_start]="#8a8a8d" +theme[used_mid]="#f59e0b" +theme[used_end]="#b91c1c" + +# Download graph colors +theme[download_start]="#8a8a8d" +theme[download_mid]="#f59e0b" +theme[download_end]="#b91c1c" + +# Upload graph colors +theme[upload_start]="#8a8a8d" +theme[upload_mid]="#f59e0b" +theme[upload_end]="#b91c1c" diff --git a/themes/matte-black/hyprland.conf b/themes/matte-black/hyprland.conf new file mode 100644 index 0000000..bb90b38 --- /dev/null +++ b/themes/matte-black/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(8A8A8D) +} diff --git a/themes/matte-black/hyprlock.conf b/themes/matte-black/hyprlock.conf new file mode 100644 index 0000000..54f4947 --- /dev/null +++ b/themes/matte-black/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(12,12,12,1.0) +$inner_color = rgba(138,138,141,0.3) +$outer_color = rgba(234,234,234,0.5) +$font_color = rgba(234,234,234,1.0) +$check_color = rgba(245,158,11,1.0) diff --git a/themes/matte-black/icons.theme b/themes/matte-black/icons.theme new file mode 100644 index 0000000..a3c0a4c --- /dev/null +++ b/themes/matte-black/icons.theme @@ -0,0 +1 @@ +Yaru-red diff --git a/themes/matte-black/mako.ini b/themes/matte-black/mako.ini new file mode 100644 index 0000000..723e855 --- /dev/null +++ b/themes/matte-black/mako.ini @@ -0,0 +1,21 @@ +text-color=#8a8a8d +border-color=#8A8A8D +background-color=#1e1e1e +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/matte-black/neovim.lua b/themes/matte-black/neovim.lua new file mode 100644 index 0000000..7b3f72b --- /dev/null +++ b/themes/matte-black/neovim.lua @@ -0,0 +1,9 @@ +return { + { "tahayvr/matteblack.nvim", lazy = false, priority = 1000 }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "matteblack", + }, + }, +} \ No newline at end of file diff --git a/themes/matte-black/swayosd.css b/themes/matte-black/swayosd.css new file mode 100644 index 0000000..3f24dbb --- /dev/null +++ b/themes/matte-black/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #121212; +@define-color border-color #8A8A8D; +@define-color label #8A8A8D; +@define-color image #8A8A8D; +@define-color progress #8A8A8D; + diff --git a/themes/matte-black/walker.css b/themes/matte-black/walker.css new file mode 100644 index 0000000..d3d606b --- /dev/null +++ b/themes/matte-black/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #B91C1C; +@define-color text #EAEAEA; +@define-color base #121212; +@define-color border #EAEAEA88; +@define-color foreground #EAEAEA; +@define-color background #121212; diff --git a/themes/matte-black/waybar.css b/themes/matte-black/waybar.css new file mode 100644 index 0000000..1b8bb7f --- /dev/null +++ b/themes/matte-black/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #8a8a8d; +@define-color background #1e1e1e; diff --git a/themes/nord/alacritty.toml b/themes/nord/alacritty.toml new file mode 100644 index 0000000..4a08789 --- /dev/null +++ b/themes/nord/alacritty.toml @@ -0,0 +1,47 @@ +[colors] +[colors.primary] +background = "#2e3440" +foreground = "#d8dee9" +dim_foreground = "#a5abb6" + +[colors.cursor] +text = "#2e3440" +cursor = "#d8dee9" + +[colors.vi_mode_cursor] +text = "#2e3440" +cursor = "#d8dee9" + +[colors.selection] +text = "CellForeground" +background = "#4c566a" + +[colors.normal] +black = "#3b4252" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#88c0d0" +white = "#e5e9f0" + +[colors.bright] +black = "#4c566a" +red = "#bf616a" +green = "#a3be8c" +yellow = "#ebcb8b" +blue = "#81a1c1" +magenta = "#b48ead" +cyan = "#8fbcbb" +white = "#eceff4" + +[colors.dim] +black = "#373e4d" +red = "#94545d" +green = "#809575" +yellow = "#b29e75" +blue = "#68809a" +magenta = "#8c738c" +cyan = "#6d96a5" +white = "#aeb3bb" diff --git a/themes/nord/backgrounds/1-nord.png b/themes/nord/backgrounds/1-nord.png new file mode 100644 index 0000000..56dbc1d Binary files /dev/null and b/themes/nord/backgrounds/1-nord.png differ diff --git a/themes/nord/btop.theme b/themes/nord/btop.theme new file mode 100644 index 0000000..fbd0af1 --- /dev/null +++ b/themes/nord/btop.theme @@ -0,0 +1,89 @@ +#Bashtop theme with nord palette (https://www.nordtheme.com) +#by Justin Zobel + +# Colors should be in 6 or 2 character hexadecimal or single spaced rgb decimal: "#RRGGBB", "#BW" or "0-255 0-255 0-255" +# example for white: "#ffffff", "#ff" or "255 255 255". + +# All graphs and meters can be gradients +# For single color graphs leave "mid" and "end" variable empty. +# Use "start" and "end" variables for two color gradient +# Use "start", "mid" and "end" for three color gradient + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#2E3440" + +# Main text color +theme[main_fg]="#D8DEE9" + +# Title color for boxes +theme[title]="#8FBCBB" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#5E81AC" + +# Background color of selected item in processes box +theme[selected_bg]="#4C566A" + +# Foreground color of selected item in processes box +theme[selected_fg]="#ECEFF4" + +# Color of inactive/disabled text +theme[inactive_fg]="#4C566A" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#5E81AC" + +# Cpu box outline color +theme[cpu_box]="#4C566A" + +# Memory/disks box outline color +theme[mem_box]="#4C566A" + +# Net up/down box outline color +theme[net_box]="#4C566A" + +# Processes box outline color +theme[proc_box]="#4C566A" + +# Box divider line and small boxes line color +theme[div_line]="#4C566A" + +# Temperature graph colors +theme[temp_start]="#81A1C1" +theme[temp_mid]="#88C0D0" +theme[temp_end]="#ECEFF4" + +# CPU graph colors +theme[cpu_start]="#81A1C1" +theme[cpu_mid]="#88C0D0" +theme[cpu_end]="#ECEFF4" + +# Mem/Disk free meter +theme[free_start]="#81A1C1" +theme[free_mid]="#88C0D0" +theme[free_end]="#ECEFF4" + +# Mem/Disk cached meter +theme[cached_start]="#81A1C1" +theme[cached_mid]="#88C0D0" +theme[cached_end]="#ECEFF4" + +# Mem/Disk available meter +theme[available_start]="#81A1C1" +theme[available_mid]="#88C0D0" +theme[available_end]="#ECEFF4" + +# Mem/Disk used meter +theme[used_start]="#81A1C1" +theme[used_mid]="#88C0D0" +theme[used_end]="#ECEFF4" + +# Download graph colors +theme[download_start]="#81A1C1" +theme[download_mid]="#88C0D0" +theme[download_end]="#ECEFF4" + +# Upload graph colors +theme[upload_start]="#81A1C1" +theme[upload_mid]="#88C0D0" +theme[upload_end]="#ECEFF4" diff --git a/themes/nord/hyprland.conf b/themes/nord/hyprland.conf new file mode 100644 index 0000000..bce729f --- /dev/null +++ b/themes/nord/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(D8DEE9) +} diff --git a/themes/nord/hyprlock.conf b/themes/nord/hyprlock.conf new file mode 100644 index 0000000..7726df4 --- /dev/null +++ b/themes/nord/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(46,52,64,1.0) +$inner_color = rgba(46,52,64,0.8) +$outer_color = rgba(216,222,233,1.0) +$font_color = rgba(216,222,233,1.0) +$check_color = rgba(136, 192, 208, 1.0) diff --git a/themes/nord/icons.theme b/themes/nord/icons.theme new file mode 100644 index 0000000..6ce2f14 --- /dev/null +++ b/themes/nord/icons.theme @@ -0,0 +1 @@ +Yaru-blue diff --git a/themes/nord/mako.ini b/themes/nord/mako.ini new file mode 100644 index 0000000..0a7dadd --- /dev/null +++ b/themes/nord/mako.ini @@ -0,0 +1,21 @@ +text-color=#d8dee9 +border-color=#D8DEE9 +background-color=#2e3440 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/nord/neovim.lua b/themes/nord/neovim.lua new file mode 100644 index 0000000..27a68b1 --- /dev/null +++ b/themes/nord/neovim.lua @@ -0,0 +1,9 @@ +return { + { "EdenEast/nightfox.nvim" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "nordfox", + }, + }, +} diff --git a/themes/nord/swayosd.css b/themes/nord/swayosd.css new file mode 100644 index 0000000..db1b40d --- /dev/null +++ b/themes/nord/swayosd.css @@ -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; + diff --git a/themes/nord/walker.css b/themes/nord/walker.css new file mode 100644 index 0000000..2e20d17 --- /dev/null +++ b/themes/nord/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #88C0D0; +@define-color text #D8DEE9; +@define-color base #2E3440; +@define-color border #D8DEE9; +@define-color foreground #D8DEE9; +@define-color background #2E3440; diff --git a/themes/nord/waybar.css b/themes/nord/waybar.css new file mode 100644 index 0000000..bc2a99d --- /dev/null +++ b/themes/nord/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #d8dee9; +@define-color background #2e3440; diff --git a/themes/osaka-jade/alacritty.toml b/themes/osaka-jade/alacritty.toml new file mode 100644 index 0000000..6229daa --- /dev/null +++ b/themes/osaka-jade/alacritty.toml @@ -0,0 +1,28 @@ +[colors] +[colors.primary] +background = '#111c18' +foreground = '#C1C497' + +[colors.normal] +black = "#23372B" +red = "#FF5345" +green = "#549e6a" +yellow = "#459451" +blue = "#509475" +magenta = "#D2689C" +cyan = "#2DD5B7" +white = "#F6F5DD" + +[colors.bright] +black = "#53685B" +red = "#db9f9c" +green = "#143614" +yellow = "#E5C736" +blue = "#ACD4CF" +magenta = "#75bbb3" +cyan = "#8CD3CB" +white = "#9eebb3" + +[colors.cursor] +text = "#000000" +cursor = "#D7C995" diff --git a/themes/osaka-jade/backgrounds/osaka-jade-bg.jpg b/themes/osaka-jade/backgrounds/osaka-jade-bg.jpg new file mode 100644 index 0000000..be7d857 Binary files /dev/null and b/themes/osaka-jade/backgrounds/osaka-jade-bg.jpg differ diff --git a/themes/osaka-jade/btop.theme b/themes/osaka-jade/btop.theme new file mode 100644 index 0000000..8e22ec9 --- /dev/null +++ b/themes/osaka-jade/btop.theme @@ -0,0 +1,87 @@ +# Main background +theme[main_bg]="#111c18" + +# Main text color +theme[main_fg]="#F7E8B2" + +# Title color for boxes +theme[title]="#D6D5BC" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#E67D64" + +# Background color of selected items +theme[selected_bg]="#364538" + +# Foreground color of selected items +theme[selected_fg]="#DEB266" + +# Color of inactive/disabled text +theme[inactive_fg]="#32473B" + +# Color of text appearing on top of graphs +theme[graph_text]="#E6D8BA" + +# Misc colors for processes box +theme[proc_misc]="#E6D8BA" + +# Cpu box outline color +theme[cpu_box]="#81B8A8" + +# Memory/disks box outline color +theme[mem_box]="#81B8A8" + +# Net up/down box outline color +theme[net_box]="#81B8A8" + +# Processes box outline color +theme[proc_box]="#81B8A8" + +# Box divider line and small boxes line color +theme[div_line]="#81B8A8" + +# Temperature graph colors +theme[temp_start]="#BFD99A" +theme[temp_mid]="#E1B55E" +theme[temp_end]="#DBB05C" + +# CPU graph colors +theme[cpu_start]="#5F8C86" +theme[cpu_mid]="#629C89" +theme[cpu_end]="#76AD98" + +# Mem/Disk free meter +theme[free_start]="#5F8C86" +theme[free_mid]="#629C89" +theme[free_end]="#76AD98" + +# Mem/Disk cached meter +theme[cached_start]="#5F8C86" +theme[cached_mid]="#629C89" +theme[cached_end]="#76AD98" + +# Mem/Disk available meter +theme[available_start]="#5F8C86" +theme[available_mid]="#629C89" +theme[available_end]="#76AD98" + +# Mem/Disk used meter +theme[used_start]="#5F8C86" +theme[used_mid]="#629C89" +theme[used_end]="#76AD98" + +# Download graph colors +theme[download_start]="#75BBB3" +theme[download_mid]="#61949A" +theme[download_end]="#215866" + +# Upload graph colors +theme[upload_start]="#215866" +theme[upload_mid]="#91C080" +theme[upload_end]="#549E6A" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#72CFA3" +theme[process_mid]="#D0D494" +theme[process_end]="#DB9F9C" + diff --git a/themes/osaka-jade/hyprland.conf b/themes/osaka-jade/hyprland.conf new file mode 100644 index 0000000..1b8b0a9 --- /dev/null +++ b/themes/osaka-jade/hyprland.conf @@ -0,0 +1,4 @@ +# focus window color (border) +general { + col.active_border = rgb(71CEAD) +} diff --git a/themes/osaka-jade/hyprlock.conf b/themes/osaka-jade/hyprlock.conf new file mode 100644 index 0000000..885b89d --- /dev/null +++ b/themes/osaka-jade/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgb(7, 40, 32) +$inner_color = rgb(7, 40, 32) +$outer_color = rgb(167, 172, 132) +$font_color = rgb(167, 172, 132) +$check_color = rgb(131, 162, 152) diff --git a/themes/osaka-jade/icons.theme b/themes/osaka-jade/icons.theme new file mode 100644 index 0000000..140e422 --- /dev/null +++ b/themes/osaka-jade/icons.theme @@ -0,0 +1 @@ +Yaru-sage diff --git a/themes/osaka-jade/mako.ini b/themes/osaka-jade/mako.ini new file mode 100644 index 0000000..c179cd5 --- /dev/null +++ b/themes/osaka-jade/mako.ini @@ -0,0 +1,21 @@ +text-color=#C1C497 +border-color=#214237 +background-color=#11221C +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 12 +anchor=top-right +outer-margin=5 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/osaka-jade/neovim.lua b/themes/osaka-jade/neovim.lua new file mode 100644 index 0000000..b2bd3f2 --- /dev/null +++ b/themes/osaka-jade/neovim.lua @@ -0,0 +1,9 @@ +return { + "ribru17/bamboo.nvim", + lazy = false, + priority = 1000, + config = function() + require("bamboo").setup({}) + require("bamboo").load() + end, +} diff --git a/themes/osaka-jade/swayosd.css b/themes/osaka-jade/swayosd.css new file mode 100644 index 0000000..1558ad4 --- /dev/null +++ b/themes/osaka-jade/swayosd.css @@ -0,0 +1,5 @@ +@define-color background-color #11221C; +@define-color border-color #589A5F; +@define-color label #C0C396; +@define-color image #C0C396; +@define-color progress #C0C396; diff --git a/themes/osaka-jade/walker.css b/themes/osaka-jade/walker.css new file mode 100644 index 0000000..ff99bbb --- /dev/null +++ b/themes/osaka-jade/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #e1b55e; +@define-color text #ebfff2; +@define-color base #11221C; +@define-color border #214237; +@define-color foreground #11221C; +@define-color background #11221C; diff --git a/themes/osaka-jade/waybar.css b/themes/osaka-jade/waybar.css new file mode 100644 index 0000000..7cfd537 --- /dev/null +++ b/themes/osaka-jade/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #e6d8ba; +@define-color background #11221C; diff --git a/themes/ristretto/alacritty.toml b/themes/ristretto/alacritty.toml new file mode 100644 index 0000000..9bfae02 --- /dev/null +++ b/themes/ristretto/alacritty.toml @@ -0,0 +1,33 @@ +[colors] + +[colors.normal] +black = "#2c2525" +red = "#fd6883" +green = "#adda78" +yellow = "#f9cc6c" +blue = "#f38d70" +magenta = "#a8a9eb" +cyan = "#85dacc" +white = "#e6d9db" + +[colors.bright] +black = "#463a3a" +red = "#ff8297" +green = "#c8e292" +yellow = "#fcd675" +blue = "#f8a788" +magenta = "#bebffd" +cyan = "#9bf1e1" +white = "#f1e5e7" + +[colors.cursor] +cursor = '#c3b7b8' +text = '#c3b7b8' + +[colors.primary] +background = '#2c2525' +foreground = '#e6d9db' + +[colors.selection] +background = '#403e41' +text = '#e6d9db' diff --git a/themes/ristretto/backgrounds/1-ristretto.jpg b/themes/ristretto/backgrounds/1-ristretto.jpg new file mode 100644 index 0000000..7618e1b Binary files /dev/null and b/themes/ristretto/backgrounds/1-ristretto.jpg differ diff --git a/themes/ristretto/btop.theme b/themes/ristretto/btop.theme new file mode 100644 index 0000000..c241495 --- /dev/null +++ b/themes/ristretto/btop.theme @@ -0,0 +1,82 @@ +#Btop monokai pro ristretto theme +#Reconfigured from monokai theme + +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#2c2421" + +# Main text color +theme[main_fg]="#e6d9db" + +# Title color for boxes +theme[title]="#e6d9db" + +# Higlight color for keyboard shortcuts +theme[hi_fg]="#fd6883" + +# Background color of selected item in processes box +theme[selected_bg]="#3d2f2a" + +# Foreground color of selected item in processes box +theme[selected_fg]="#e6d9db" + +# Color of inactive/disabled text +theme[inactive_fg]="#72696a" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#adda78" + +# Cpu box outline color +theme[cpu_box]="#5b4a45" + +# Memory/disks box outline color +theme[mem_box]="#5b4a45" + +# Net up/down box outline color +theme[net_box]="#5b4a45" + +# Processes box outline color +theme[proc_box]="#5b4a45" + +# Box divider line and small boxes line color +theme[div_line]="#72696a" + +# Temperature graph colors +theme[temp_start]="#a8a9eb" +theme[temp_mid]="#f38d70" +theme[temp_end]="#fd6a85" + +# CPU graph colors +theme[cpu_start]="#adda78" +theme[cpu_mid]="#f9cc6c" +theme[cpu_end]="#fd6883" + +# Mem/Disk free meter +theme[free_start]="#5b4a45" +theme[free_mid]="#adda78" +theme[free_end]="#c5e2a3" + +# Mem/Disk cached meter +theme[cached_start]="#5b4a45" +theme[cached_mid]="#85dacc" +theme[cached_end]="#b3e8dd" + +# Mem/Disk available meter +theme[available_start]="#5b4a45" +theme[available_mid]="#f9cc6c" +theme[available_end]="#fce2a3" + +# Mem/Disk used meter +theme[used_start]="#5b4a45" +theme[used_mid]="#fd6a85" +theme[used_end]="#feb5c7" + +# Download graph colors +theme[download_start]="#3d2f2a" +theme[download_mid]="#a8a9eb" +theme[download_end]="#c5c6f0" + +# Upload graph colors +theme[upload_start]="#3d2f2a" +theme[upload_mid]="#fd6a85" +theme[upload_end]="#feb5c7" + diff --git a/themes/ristretto/hyprland.conf b/themes/ristretto/hyprland.conf new file mode 100644 index 0000000..d81a993 --- /dev/null +++ b/themes/ristretto/hyprland.conf @@ -0,0 +1,4 @@ +general { + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgb(e6d9db) +} diff --git a/themes/ristretto/hyprlock.conf b/themes/ristretto/hyprlock.conf new file mode 100644 index 0000000..71c8b78 --- /dev/null +++ b/themes/ristretto/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(44,37,37,1.0) +$inner_color = rgba(44,37,37,0.8) +$outer_color = rgba(230,217,219,1.0) +$font_color = rgba(230,217,219,1.0) +$check_color = rgba(253,104,131,1.0) diff --git a/themes/ristretto/icons.theme b/themes/ristretto/icons.theme new file mode 100644 index 0000000..e38b9ce --- /dev/null +++ b/themes/ristretto/icons.theme @@ -0,0 +1 @@ +Yaru-yellow diff --git a/themes/ristretto/mako.ini b/themes/ristretto/mako.ini new file mode 100644 index 0000000..036d9b3 --- /dev/null +++ b/themes/ristretto/mako.ini @@ -0,0 +1,21 @@ +text-color=#e6d9db +border-color=#e6d9db +background-color=#2c2525 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/ristretto/neovim.lua b/themes/ristretto/neovim.lua new file mode 100644 index 0000000..38959d4 --- /dev/null +++ b/themes/ristretto/neovim.lua @@ -0,0 +1,31 @@ +return { + { + "gthelding/monokai-pro.nvim", + config = function() + require("monokai-pro").setup({ + filter = "ristretto", + override = function() + return { + NonText = { fg = "#948a8b" }, + MiniIconsGrey = { fg = "#948a8b" }, + MiniIconsRed = { fg = "#fd6883" }, + MiniIconsBlue = { fg = "#85dacc" }, + MiniIconsGreen = { fg = "#adda78" }, + MiniIconsYellow = { fg = "#f9cc6c" }, + MiniIconsOrange = { fg = "#f38d70" }, + MiniIconsPurple = { fg = "#a8a9eb" }, + MiniIconsAzure = { fg = "#a8a9eb" }, + MiniIconsCyan = { fg = "#85dacc" }, -- same value as MiniIconsBlue for consistency + } + end, + }) + vim.cmd([[colorscheme monokai-pro]]) + end, + }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "monokai-pro", + }, + }, +} diff --git a/themes/ristretto/swayosd.css b/themes/ristretto/swayosd.css new file mode 100644 index 0000000..cd9c576 --- /dev/null +++ b/themes/ristretto/swayosd.css @@ -0,0 +1,5 @@ +@define-color background-color #2c2525; +@define-color border-color #c3b7b8; +@define-color label #c3b7b8; +@define-color image #c3b7b8; +@define-color progress #c3b7b8; diff --git a/themes/ristretto/walker.css b/themes/ristretto/walker.css new file mode 100644 index 0000000..ab2cfd8 --- /dev/null +++ b/themes/ristretto/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #fabd2f; +@define-color text #e6d9db; +@define-color base #2c2525; +@define-color border #e6d9db; +@define-color foreground #e6d9db; +@define-color background #2c2525; diff --git a/themes/ristretto/waybar.css b/themes/ristretto/waybar.css new file mode 100644 index 0000000..a6be70a --- /dev/null +++ b/themes/ristretto/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #e6d9db; +@define-color background #2c2525; diff --git a/themes/rose-pine/alacritty.toml b/themes/rose-pine/alacritty.toml new file mode 100644 index 0000000..947e42d --- /dev/null +++ b/themes/rose-pine/alacritty.toml @@ -0,0 +1,72 @@ +[colors.primary] +foreground = "#575279" +background = "#faf4ed" +dim_foreground = "#797593" +bright_foreground = "#575279" + +[colors.cursor] +text = "#575279" +cursor = "#cecacd" + +[colors.vi_mode_cursor] +text = "#575279" +cursor = "#cecacd" + +[colors.search.matches] +foreground = "#797593" +background = "#f2e9e1" + +[colors.search.focused_match] +foreground = "#faf4ed" +background = "#d7827e" + +[colors.hints.start] +foreground = "#797593" +background = "#fffaf3" + +[colors.hints.end] +foreground = "#9893a5" +background = "#fffaf3" + +[colors.line_indicator] +foreground = "None" +background = "None" + +[colors.footer_bar] +foreground = "#575279" +background = "#fffaf3" + +[colors.selection] +text = "#575279" +background = "#dfdad9" + +[colors.normal] +black = "#f2e9e1" +red = "#b4637a" +green = "#286983" +yellow = "#ea9d34" +blue = "#56949f" +magenta = "#907aa9" +cyan = "#d7827e" +white = "#575279" + +[colors.bright] +black = "#9893a5" +red = "#b4637a" +green = "#286983" +yellow = "#ea9d34" +blue = "#56949f" +magenta = "#907aa9" +cyan = "#d7827e" +white = "#575279" + +[colors.dim] +black = "#9893a5" +red = "#b4637a" +green = "#286983" +yellow = "#ea9d34" +blue = "#56949f" +magenta = "#907aa9" +cyan = "#d7827e" +white = "#575279" + diff --git a/themes/rose-pine/backgrounds/background.jpg b/themes/rose-pine/backgrounds/background.jpg new file mode 100644 index 0000000..adfe242 Binary files /dev/null and b/themes/rose-pine/backgrounds/background.jpg differ diff --git a/themes/rose-pine/btop.theme b/themes/rose-pine/btop.theme new file mode 100644 index 0000000..a992faa --- /dev/null +++ b/themes/rose-pine/btop.theme @@ -0,0 +1,119 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#faf4ed" +# Base + +# Main text color +theme[main_fg]="#575279" +# Text + +# Title color for boxes +theme[title]="#908caa" +# Subtle + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#e0def4" +# Text + +# Background color of selected item in processes box +theme[selected_bg]="#524f67" +# HL High + +# Foreground color of selected item in processes box +theme[selected_fg]="#f6c177" +# Gold + +# Color of inactive/disabled text +theme[inactive_fg]="#403d52" +# HL Med + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#9ccfd8" +# Foam + +# Background color of the percentage meters +theme[meter_bg]="#9ccfd8" +# Foam + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#c4a7e7" +# Iris + +# Cpu box outline color +theme[cpu_box]="#ebbcba" +# Rose + +# Memory/disks box outline color +theme[mem_box]="#31748f" +# Pine + +# Net up/down box outline color +theme[net_box]="#c4a7e7" +# Iris + +# Processes box outline color +theme[proc_box]="#eb6f92" +# Love + +# Box divider line and small boxes line color +theme[div_line]="#6e6a86" +# Muted + +# Temperature graph colors +theme[temp_start]="#ebbcba" +# Rose +theme[temp_mid]="#f6c177" +# Gold +theme[temp_end]="#eb6f92" +# Love + +# CPU graph colors +theme[cpu_start]="#f6c177" +# Gold +theme[cpu_mid]="#ebbcba" +# Rose +theme[cpu_end]="#eb6f92" +# Love + +# Mem/Disk free meter +# all love +theme[free_start]="#eb6f92" +theme[free_mid]="#eb6f92" +theme[free_end]="#eb6f92" + +# Mem/Disk cached meter +# all iris +theme[cached_start]="#c4a7e7" +theme[cached_mid]="#c4a7e7" +theme[cached_end]="#c4a7e7" + +# Mem/Disk available meter +# all pine +theme[available_start]="#31748f" +theme[available_mid]="#31748f" +theme[available_end]="#31748f" + +# Mem/Disk used meter +# all rose +theme[used_start]="#ebbcba" +theme[used_mid]="#ebbcba" +theme[used_end]="#ebbcba" + +# Download graph colors +# Pine for start, foam for the rest +theme[download_start]="#31748f" +theme[download_mid]="#9ccfd8" +theme[download_end]="#9ccfd8" + +# Upload graph colors +theme[upload_start]="#ebbcba" +# Rose for start +theme[upload_mid]="#eb6f92" +# Love for mid and end +theme[upload_end]="#eb6f92" + +# Process box color gradient for threads, mem and cpu usage +theme[process_start]="#31748f" +# Pine +theme[process_mid]="#9ccfd8" +# Foam for mid and end +theme[process_end]="#9ccfd8" diff --git a/themes/rose-pine/hyprland.conf b/themes/rose-pine/hyprland.conf new file mode 100644 index 0000000..ae0f2b6 --- /dev/null +++ b/themes/rose-pine/hyprland.conf @@ -0,0 +1,3 @@ +general { + col.active_border = rgb(575279) +} diff --git a/themes/rose-pine/hyprlock.conf b/themes/rose-pine/hyprlock.conf new file mode 100644 index 0000000..890e7e5 --- /dev/null +++ b/themes/rose-pine/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(250, 244, 237,1.0) +$inner_color = rgba(250, 244, 237,0.8) +$outer_color = rgba(57,52,79,1.0) +$font_color = rgba(57,52,79,1.0) +$check_color = rgba(136, 192, 208, 1.0) diff --git a/themes/rose-pine/icons.theme b/themes/rose-pine/icons.theme new file mode 100644 index 0000000..6ce2f14 --- /dev/null +++ b/themes/rose-pine/icons.theme @@ -0,0 +1 @@ +Yaru-blue diff --git a/themes/rose-pine/light.mode b/themes/rose-pine/light.mode new file mode 100644 index 0000000..66bb2d0 --- /dev/null +++ b/themes/rose-pine/light.mode @@ -0,0 +1 @@ +# This will set "prefer-light" and use "Adwaita" as the theme diff --git a/themes/rose-pine/mako.ini b/themes/rose-pine/mako.ini new file mode 100644 index 0000000..cab1a2e --- /dev/null +++ b/themes/rose-pine/mako.ini @@ -0,0 +1,21 @@ +text-color=#575279 +border-color=#575279 +background-color=#faf4ed +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/rose-pine/neovim.lua b/themes/rose-pine/neovim.lua new file mode 100644 index 0000000..591e8c7 --- /dev/null +++ b/themes/rose-pine/neovim.lua @@ -0,0 +1,9 @@ +return { + { "rose-pine/neovim", name = "rose-pine" }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "rose-pine-dawn", + }, + }, +} diff --git a/themes/rose-pine/swayosd.css b/themes/rose-pine/swayosd.css new file mode 100644 index 0000000..e58cc08 --- /dev/null +++ b/themes/rose-pine/swayosd.css @@ -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; + diff --git a/themes/rose-pine/walker.css b/themes/rose-pine/walker.css new file mode 100644 index 0000000..a6188c8 --- /dev/null +++ b/themes/rose-pine/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #88C0D0; +@define-color text #575279; +@define-color base #faf4ed; +@define-color border #575279; +@define-color foreground #575279; +@define-color background #faf4ed; diff --git a/themes/rose-pine/waybar.css b/themes/rose-pine/waybar.css new file mode 100644 index 0000000..d2e5942 --- /dev/null +++ b/themes/rose-pine/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #575279; +@define-color background #faf4ed; diff --git a/themes/tokyo-night/alacritty.toml b/themes/tokyo-night/alacritty.toml new file mode 100644 index 0000000..19c1e22 --- /dev/null +++ b/themes/tokyo-night/alacritty.toml @@ -0,0 +1,29 @@ +[colors] +[colors.primary] +background = '#1a1b26' +foreground = '#a9b1d6' + +# Normal colors +[colors.normal] +black = '#32344a' +red = '#f7768e' +green = '#9ece6a' +yellow = '#e0af68' +blue = '#7aa2f7' +magenta = '#ad8ee6' +cyan = '#449dab' +white = '#787c99' + +# Bright colors +[colors.bright] +black = '#444b6a' +red = '#ff7a93' +green = '#b9f27c' +yellow = '#ff9e64' +blue = '#7da6ff' +magenta = '#bb9af7' +cyan = '#0db9d7' +white = '#acb0d0' + +[colors.selection] +background = '#7aa2f7' diff --git a/themes/tokyo-night/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png b/themes/tokyo-night/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png new file mode 100644 index 0000000..d806728 Binary files /dev/null and b/themes/tokyo-night/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png differ diff --git a/themes/tokyo-night/backgrounds/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg b/themes/tokyo-night/backgrounds/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg new file mode 100644 index 0000000..2767138 Binary files /dev/null and b/themes/tokyo-night/backgrounds/2-Pawel-Czerwinski-Abstract-Purple-Blue.jpg differ diff --git a/themes/tokyo-night/backgrounds/3--Milad-Fakurian-Abstract-Purple-Blue.jpg b/themes/tokyo-night/backgrounds/3--Milad-Fakurian-Abstract-Purple-Blue.jpg new file mode 100644 index 0000000..b9663ff Binary files /dev/null and b/themes/tokyo-night/backgrounds/3--Milad-Fakurian-Abstract-Purple-Blue.jpg differ diff --git a/themes/tokyo-night/btop.theme b/themes/tokyo-night/btop.theme new file mode 100644 index 0000000..290a3c7 --- /dev/null +++ b/themes/tokyo-night/btop.theme @@ -0,0 +1,82 @@ +# Theme: tokyo-night +# By: Pascal Jaeger + +# Main bg +theme[main_bg]="#1a1b26" + +# Main text color +theme[main_fg]="#cfc9c2" + +# Title color for boxes +theme[title]="#cfc9c2" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#7dcfff" + +# Background color of selected item in processes box +theme[selected_bg]="#414868" + +# Foreground color of selected item in processes box +theme[selected_fg]="#cfc9c2" + +# Color of inactive/disabled text +theme[inactive_fg]="#565f89" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#7dcfff" + +# Cpu box outline color +theme[cpu_box]="#565f89" + +# Memory/disks box outline color +theme[mem_box]="#565f89" + +# Net up/down box outline color +theme[net_box]="#565f89" + +# Processes box outline color +theme[proc_box]="#565f89" + +# Box divider line and small boxes line color +theme[div_line]="#565f89" + +# Temperature graph colors +theme[temp_start]="#9ece6a" +theme[temp_mid]="#e0af68" +theme[temp_end]="#f7768e" + +# CPU graph colors +theme[cpu_start]="#9ece6a" +theme[cpu_mid]="#e0af68" +theme[cpu_end]="#f7768e" + +# Mem/Disk free meter +theme[free_start]="#9ece6a" +theme[free_mid]="#e0af68" +theme[free_end]="#f7768e" + +# Mem/Disk cached meter +theme[cached_start]="#9ece6a" +theme[cached_mid]="#e0af68" +theme[cached_end]="#f7768e" + +# Mem/Disk available meter +theme[available_start]="#9ece6a" +theme[available_mid]="#e0af68" +theme[available_end]="#f7768e" + +# Mem/Disk used meter +theme[used_start]="#9ece6a" +theme[used_mid]="#e0af68" +theme[used_end]="#f7768e" + +# Download graph colors +theme[download_start]="#9ece6a" +theme[download_mid]="#e0af68" +theme[download_end]="#f7768e" + +# Upload graph colors +theme[upload_start]="#9ece6a" +theme[upload_mid]="#e0af68" +theme[upload_end]="#f7768e" + diff --git a/themes/tokyo-night/hyprland.conf b/themes/tokyo-night/hyprland.conf new file mode 100644 index 0000000..f0b824a --- /dev/null +++ b/themes/tokyo-night/hyprland.conf @@ -0,0 +1,4 @@ +general { + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg +} + diff --git a/themes/tokyo-night/hyprlock.conf b/themes/tokyo-night/hyprlock.conf new file mode 100644 index 0000000..7ef8abb --- /dev/null +++ b/themes/tokyo-night/hyprlock.conf @@ -0,0 +1,5 @@ +$color = rgba(26,27,38,1.0) +$inner_color = rgba(26,27,38,0.8) +$outer_color = rgba(205,214,244,1.0) +$font_color = rgba(205,214,244,1.0) +$check_color = rgba(68, 157, 171, 1.0) diff --git a/themes/tokyo-night/icons.theme b/themes/tokyo-night/icons.theme new file mode 100644 index 0000000..5d00638 --- /dev/null +++ b/themes/tokyo-night/icons.theme @@ -0,0 +1 @@ +Yaru-magenta diff --git a/themes/tokyo-night/mako.ini b/themes/tokyo-night/mako.ini new file mode 100644 index 0000000..51af627 --- /dev/null +++ b/themes/tokyo-night/mako.ini @@ -0,0 +1,21 @@ +text-color=#a9b1d6 +border-color=#33ccff +background-color=#1a1b26 +width=420 +height=110 +padding=10 +border-size=2 +font=Liberation Sans 11 +anchor=top-right +outer-margin=20 +default-timeout=5000 +max-icon-size=32 + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false diff --git a/themes/tokyo-night/neovim.lua b/themes/tokyo-night/neovim.lua new file mode 100644 index 0000000..dad2d30 --- /dev/null +++ b/themes/tokyo-night/neovim.lua @@ -0,0 +1,8 @@ +return { + { + "LazyVim/LazyVim", + opts = { + colorscheme = "tokyonight", + }, + }, +} diff --git a/themes/tokyo-night/swayosd.css b/themes/tokyo-night/swayosd.css new file mode 100644 index 0000000..1300b6a --- /dev/null +++ b/themes/tokyo-night/swayosd.css @@ -0,0 +1,6 @@ +@define-color background-color #1a1b26; +@define-color border-color #33ccff; +@define-color label #a9b1d6; +@define-color image #a9b1d6; +@define-color progress #a9b1d6; + diff --git a/themes/tokyo-night/walker.css b/themes/tokyo-night/walker.css new file mode 100644 index 0000000..aeb271d --- /dev/null +++ b/themes/tokyo-night/walker.css @@ -0,0 +1,6 @@ +@define-color selected-text #7dcfff; +@define-color text #cfc9c2; +@define-color base #1a1b26; +@define-color border #33ccff; +@define-color foreground #cfc9c2; +@define-color background #1a1b26; diff --git a/themes/tokyo-night/waybar.css b/themes/tokyo-night/waybar.css new file mode 100644 index 0000000..ecd3da0 --- /dev/null +++ b/themes/tokyo-night/waybar.css @@ -0,0 +1,2 @@ +@define-color foreground #cdd6f4; +@define-color background #1a1b26;