Compare commits
137 Commits
5e4c309b2c
...
master
Author | SHA1 | Date | |
---|---|---|---|
65577c1757 | |||
b50a4e7a74 | |||
b322d1cb47 | |||
d503b0cc37 | |||
eeb784d087 | |||
07a16487c0 | |||
c814aa534d | |||
6de445a2a6 | |||
73d8c70e06 | |||
e3bf801654 | |||
b4d75729d9 | |||
68a221e456 | |||
42963368c0 | |||
cf688baa34 | |||
0a8a502cf2 | |||
9844d4ab22 | |||
cec5482483 | |||
bd43aee907 | |||
6afbff2c27 | |||
cc79664efc | |||
162952f102 | |||
f693c33310 | |||
32aa290af5 | |||
fbdbf852eb | |||
5b654d0282 | |||
4929d3e201 | |||
29bfeba5cc | |||
4e9e13f88d | |||
7f3af84a60 | |||
62fb66a74a | |||
cb48956a37 | |||
4e4e82c5b9 | |||
302e92860e | |||
eace29af7d | |||
51e2fa8598 | |||
c081078e72 | |||
3c2559297d | |||
4aa6b6c1f9 | |||
896ad9d97a | |||
83d43a7d8d | |||
1fa2b62fba | |||
d9f9f5212e | |||
ba75889154 | |||
d6ba2af917 | |||
2f12cdc751 | |||
363a9ae4dc | |||
eefb4638e9 | |||
bb2d21c3b7 | |||
ac935bdaed | |||
f25be1d075 | |||
8336788e0a | |||
d60563fe92 | |||
1066415576 | |||
b5f60f78a8 | |||
92c1db9176 | |||
25acc313b1 | |||
0ead8947f7 | |||
37f4d4a411 | |||
c4a08c3c25 | |||
0c36142f8a | |||
65a5bbad82 | |||
165c940df2 | |||
824ba78000 | |||
6d3df204bc | |||
1c14b8eba2 | |||
e01c1bb139 | |||
466fe6caba | |||
10f71885b2 | |||
19c0d2887e | |||
f2b58c2b8e | |||
46d135025e | |||
46e972172c | |||
79df336854 | |||
0d6ea40252 | |||
a76c7ee33b | |||
674c5bfdda | |||
6cd8955409 | |||
db63219398 | |||
42d80f2ce7 | |||
4578d4e418 | |||
7242a57c18 | |||
2d9ed8720b | |||
205bcd7be8 | |||
70da2ecbe8 | |||
66b0fa0227 | |||
d2fffc40ea | |||
8884cc7a5c | |||
a4e7f41798 | |||
8908ce91f8 | |||
5458b46584 | |||
9b7908d17b | |||
a12cd97922 | |||
9231148cd7 | |||
c4c9cdc0f6 | |||
98f848d4a0 | |||
c36d76bb1c | |||
71ccf9a367 | |||
e1f2cc4d3d | |||
08f187b4ea | |||
35e1d1233e | |||
8f569921b3 | |||
3933cd7c89 | |||
ceb44d7aa1 | |||
fd56404407 | |||
d2763225c3 | |||
2b2103fb66 | |||
11dfeae901 | |||
8c0ac90fe4 | |||
d83a87a01c | |||
f0a9271506 | |||
faaf672eb4 | |||
0058023e85 | |||
4fedfbe9f1 | |||
1976eafbcd | |||
1ebf88bac0 | |||
cce56a2684 | |||
c4b45779fe | |||
d706eda676 | |||
7c75cbbcd5 | |||
69e48758fd | |||
2332a4f6db | |||
bacaabe4a1 | |||
60f5a3b063 | |||
7a7a08f9c3 | |||
4421f20e82 | |||
071be3abcb | |||
771313b836 | |||
dbe3ec8b2f | |||
5be61c17a1 | |||
98f5669637 | |||
bcf0e1ebf9 | |||
f06e11ac47 | |||
03192de90e | |||
c0bb83e76c | |||
da597ac567 | |||
620b397859 | |||
03053626e3 |
14
ansi.sh
@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
|
|
||||||
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███
|
|
||||||
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
|
|
||||||
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
|
||||||
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
|
|
||||||
███ ███ '
|
|
||||||
|
|
||||||
clear
|
|
||||||
echo -e "\n$ansi_art\n"
|
|
51
applications/mpv.desktop
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=Media Player
|
||||||
|
Name[ar]=مشغل وسائط mpv
|
||||||
|
Name[ca]=Reproductor multimèdia mpv
|
||||||
|
Name[cs]=mpv přehrávač
|
||||||
|
Name[da]=mpv-medieafspiller
|
||||||
|
Name[fr]=Lecteur multimédia mpv
|
||||||
|
Name[it]=Lettore multimediale mpv
|
||||||
|
Name[ja]=mpv メディアプレイヤー
|
||||||
|
Name[pl]=Odtwarzacz mpv
|
||||||
|
Name[ru]=Проигрыватель mpv
|
||||||
|
Name[tr]=mpv Ortam Oynatıcı
|
||||||
|
Name[zh_CN]=mpv 媒体播放器
|
||||||
|
Name[zh_TW]=mpv 媒體播放器
|
||||||
|
GenericName=Multimedia player
|
||||||
|
GenericName[ar]=مُشَغِّل وسائط متعددة
|
||||||
|
GenericName[cs]=Multimediální přehrávač
|
||||||
|
GenericName[da]=Multimedieafspiller
|
||||||
|
GenericName[fr]=Lecteur multimédia
|
||||||
|
GenericName[it]=Lettore multimediale
|
||||||
|
GenericName[ja]=マルチメディアプレイヤー
|
||||||
|
GenericName[ru]=Мультимедийный проигрыватель
|
||||||
|
GenericName[tr]=Çoklu ortam oynatıcı
|
||||||
|
GenericName[zh_CN]=多媒体播放器
|
||||||
|
GenericName[zh_TW]=多媒體播放器
|
||||||
|
Comment=Play movies and songs
|
||||||
|
Comment[ar]=شَغِّل الأفلام والأغاني
|
||||||
|
Comment[ca]=Reproduïu vídeos i cançons
|
||||||
|
Comment[cs]=Přehrává filmy a hudbu
|
||||||
|
Comment[da]=Afspil film og sange
|
||||||
|
Comment[de]=Filme und Musik abspielen
|
||||||
|
Comment[es]=Reproduzca vídeos y canciones
|
||||||
|
Comment[fr]=Lire des vidéos et des musiques
|
||||||
|
Comment[ja]=映画や音楽を再生する
|
||||||
|
Comment[it]=Riproduci video e canzoni
|
||||||
|
Comment[pl]=Odtwarzaj filmy i muzykę
|
||||||
|
Comment[ru]=Воспроизведение фильмов и музыки
|
||||||
|
Comment[tr]=Filmleri ve şarkıları oynatın
|
||||||
|
Comment[zh_CN]=播放电影和歌曲
|
||||||
|
Comment[zh_TW]=播放電影和歌曲
|
||||||
|
Icon=mpv
|
||||||
|
TryExec=mpv
|
||||||
|
Exec=mpv --player-operation-mode=pseudo-gui -- %U
|
||||||
|
Terminal=false
|
||||||
|
Categories=AudioVideo;Audio;Video;Player;TV;
|
||||||
|
MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;audio/vnd.wave;video/vnd.avi;
|
||||||
|
X-KDE-Protocols=appending,file,ftp,hls,http,https,mms,mpv,rtmp,rtmps,rtmpt,rtmpts,rtp,rtsp,rtsps,sftp,srt,srtp,webdav,webdavs
|
||||||
|
StartupWMClass=mpv
|
||||||
|
Keywords=mpv;media;player;video;audio;tv;
|
||||||
|
Keywords[ar]=mpv;إم بي في;ام بي في;وسائط;مشغل;فيديو;مرئية;صوتي;تلفاز;
|
28
bin/omarchy
@ -4,7 +4,8 @@ OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/de
|
|||||||
PATH="$PATH:$HOME/.local/share/omarchy/bin"
|
PATH="$PATH:$HOME/.local/share/omarchy/bin"
|
||||||
|
|
||||||
show_ascii_art() {
|
show_ascii_art() {
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
clear
|
||||||
|
tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand
|
||||||
echo " $OMARCHY_VERSION"
|
echo " $OMARCHY_VERSION"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,12 +25,13 @@ main_menu() {
|
|||||||
|
|
||||||
update_menu() {
|
update_menu() {
|
||||||
show_ascii_art
|
show_ascii_art
|
||||||
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "Desktop apps" "Back")
|
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "SwayOSD" "Desktop apps" "Back")
|
||||||
local commands=(
|
local commands=(
|
||||||
"omarchy-update"
|
"omarchy-update"
|
||||||
"omarchy-refresh-waybar"
|
"omarchy-refresh-waybar"
|
||||||
"omarchy-refresh-walker"
|
"omarchy-refresh-walker"
|
||||||
"omarchy-refresh-plymouth"
|
"omarchy-refresh-plymouth"
|
||||||
|
"omarchy-refresh-swayosd"
|
||||||
"omarchy-refresh-applications"
|
"omarchy-refresh-applications"
|
||||||
"main_menu"
|
"main_menu"
|
||||||
)
|
)
|
||||||
@ -94,9 +96,11 @@ remove_theme_prompt() {
|
|||||||
|
|
||||||
setup_menu() {
|
setup_menu() {
|
||||||
show_ascii_art
|
show_ascii_art
|
||||||
local menu=("Dropbox" "Fingerprint sensor" "Fido2 device" "Back")
|
local menu=("Dropbox" "Steam" "Docker DBs" "Fingerprint sensor" "Fido2 device" "Back")
|
||||||
local commands=(
|
local commands=(
|
||||||
"omarchy-setup-dropbox"
|
"omarchy-setup-dropbox"
|
||||||
|
"omarchy-setup-steam"
|
||||||
|
"setup_docker_dbs"
|
||||||
"omarchy-setup-fingerprint"
|
"omarchy-setup-fingerprint"
|
||||||
"omarchy-setup-fido2"
|
"omarchy-setup-fido2"
|
||||||
"main_menu"
|
"main_menu"
|
||||||
@ -117,6 +121,24 @@ setup_menu() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setup_docker_dbs() {
|
||||||
|
options=("MariaDB" "MySQL" "Redis" "PostgreSQL")
|
||||||
|
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
|
||||||
|
|
||||||
|
if [[ -n "$choices" ]]; then
|
||||||
|
for db in $choices; do
|
||||||
|
case $db in
|
||||||
|
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
|
||||||
|
|
||||||
|
main_menu
|
||||||
|
}
|
||||||
|
|
||||||
open_manual() {
|
open_manual() {
|
||||||
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
|
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
|
||||||
clear
|
clear
|
||||||
|
@ -2,8 +2,16 @@
|
|||||||
|
|
||||||
# Set recorder based on GPU
|
# Set recorder based on GPU
|
||||||
|
|
||||||
|
[[ -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() {
|
screenrecording() {
|
||||||
filename="$HOME/Videos/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
||||||
notify-send "Screen recording starting..." -t 1000
|
notify-send "Screen recording starting..." -t 1000
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
@ -17,7 +25,7 @@ screenrecording() {
|
|||||||
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
|
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
|
||||||
pkill -x wl-screenrec
|
pkill -x wl-screenrec
|
||||||
pkill -x wf-recorder
|
pkill -x wf-recorder
|
||||||
notify-send "Screen recording saved to ~/Videos" -t 2000
|
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
|
||||||
elif [[ "$1" == "output" ]]; then
|
elif [[ "$1" == "output" ]]; then
|
||||||
screenrecording
|
screenrecording
|
||||||
else
|
else
|
||||||
|
@ -1,8 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
hyprshot -m ${1:-region} --raw |
|
[[ -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 - \
|
satty --filename - \
|
||||||
--output-filename ~/Pictures/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png \
|
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
|
||||||
--early-exit \
|
--early-exit \
|
||||||
--actions-on-enter save-to-clipboard \
|
--actions-on-enter save-to-clipboard \
|
||||||
--save-after-copy \
|
--save-after-copy \
|
||||||
|
5
bin/omarchy-cmd-tzupdate
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
sudo tzupdate
|
||||||
|
new_timezone=$(timedatectl show -p Timezone --value)
|
||||||
|
notify-send "Timezone has been set to $new_timezone"
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [[ ! -f ~/.local/state/omarchy/after-first-run.mode ]]; then
|
|
||||||
mkdir -p ~/.local/state/omarchy
|
|
||||||
touch ~/.local/state/omarchy/after-first-run.mode
|
|
||||||
uwsm app -- alacritty -e ~/.local/share/omarchy/bin/omarchy-first-run-flow
|
|
||||||
fi
|
|
@ -1,54 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
|
||||||
|
|
||||||
if gum confirm "Install editor in addition to Neovim?"; then
|
|
||||||
options=("VSCode" "Cursor" "Zed" "Helix" "Nevermind")
|
|
||||||
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "Add programming editor") || exit 0
|
|
||||||
|
|
||||||
case "$choice" in
|
|
||||||
VSCode) yay -Sy --noconfirm --needed vscodium-electron-bin ;;
|
|
||||||
Cursor) yay -Sy --noconfirm --needed cursor-bin ;;
|
|
||||||
Zed) yay -Sy --noconfirm --needed zed ;;
|
|
||||||
Helix) yay -Sy --noconfirm --needed helix ;;
|
|
||||||
Nevermind) ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
|
||||||
|
|
||||||
if gum confirm "Setup Dropbox?"; then
|
|
||||||
gtk-launch chromium # FIXME: Workaround for Dropbox to be able to open with the correct scaling during initial setup
|
|
||||||
~/.local/share/omarchy/bin/omarchy-setup-dropbox
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
|
||||||
|
|
||||||
if gum confirm "Login to GitHub?"; then
|
|
||||||
gh auth login
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
|
||||||
|
|
||||||
if gum confirm "Start Docker DBs?"; then
|
|
||||||
options=("MySQL" "Redis" "PostgreSQL")
|
|
||||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install)") || exit 0
|
|
||||||
|
|
||||||
if [[ -n "$choices" ]]; then
|
|
||||||
for db in $choices; do
|
|
||||||
case $db in
|
|
||||||
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
|
|
||||||
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
|
|
||||||
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
|
||||||
echo "Updating all system packages..."
|
|
||||||
yay -Syu --noconfirm
|
|
||||||
|
|
||||||
setsid gtk-launch "Omarchy Manual" >/dev/null 2>&1 &
|
|
||||||
gum spin --spinner "globe" --title "You're all set!" -- sleep 2
|
|
||||||
clear
|
|
@ -10,7 +10,8 @@ mkdir -p ~/.local/share/applications
|
|||||||
cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/
|
cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/
|
||||||
cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/
|
cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/
|
||||||
|
|
||||||
if [ -z "$OMARCHY_BARE" ]; then
|
# 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/
|
cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
13
bin/omarchy-refresh-swayosd
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cp -f ~/.config/swayosd/config.toml ~/.config/swayosd/config.toml.bak 2>/dev/null
|
||||||
|
cp -f ~/.local/share/omarchy/config/swayosd/config.toml ~/.config/swayosd/ 3>/dev/null
|
||||||
|
|
||||||
|
if cmp -s ~/.config/swayosd/config.toml.bak ~/.config/swayosd/config.toml; then
|
||||||
|
rm ~/.config/swayosd//config.toml.bak
|
||||||
|
else
|
||||||
|
echo -e "\e[31mExisting .config/swayosd/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m"
|
||||||
|
fi
|
||||||
|
|
||||||
|
pkill swayosd-server
|
||||||
|
setsid uwsm app -- swayosd-server &>/dev/null &
|
9
bin/omarchy-setup-steam
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
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 &
|
@ -11,7 +11,7 @@ TOTAL=${#BACKGROUNDS[@]}
|
|||||||
if [[ $TOTAL -eq 0 ]]; then
|
if [[ $TOTAL -eq 0 ]]; then
|
||||||
notify-send "No background was found for theme" -t 2000
|
notify-send "No background was found for theme" -t 2000
|
||||||
pkill -x swaybg
|
pkill -x swaybg
|
||||||
uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 &
|
setsid uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 &
|
||||||
else
|
else
|
||||||
# Get current background from symlink
|
# Get current background from symlink
|
||||||
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
||||||
@ -44,5 +44,5 @@ else
|
|||||||
|
|
||||||
# Relaunch swaybg
|
# Relaunch swaybg
|
||||||
pkill -x swaybg
|
pkill -x swaybg
|
||||||
uwsm app -- swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&1 &
|
setsid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
|
||||||
fi
|
fi
|
||||||
|
@ -12,9 +12,6 @@ REPO_URL="$1"
|
|||||||
THEMES_DIR="$HOME/.config/omarchy/themes"
|
THEMES_DIR="$HOME/.config/omarchy/themes"
|
||||||
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
|
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
|
||||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||||
THEME_BACKGROUND_PATH="$THEME_PATH/backgrounds"
|
|
||||||
BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds"
|
|
||||||
BACKGROUNDS_THEME_PATH="$BACKGROUNDS_PATH/$THEME_NAME"
|
|
||||||
|
|
||||||
# Remove existing theme if present
|
# Remove existing theme if present
|
||||||
if [ -d "$THEME_PATH" ]; then
|
if [ -d "$THEME_PATH" ]; then
|
||||||
@ -27,10 +24,5 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Link backgrounds if present
|
|
||||||
if [ -d $THEME_BACKGROUND_PATH ]; then
|
|
||||||
ln -snf $THEME_BACKGROUND_PATH $BACKGROUNDS_THEME_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Apply the new theme with omarchy-theme-set
|
# Apply the new theme with omarchy-theme-set
|
||||||
omarchy-theme-set $THEME_NAME
|
omarchy-theme-set $THEME_NAME
|
||||||
|
@ -14,12 +14,6 @@ CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
|
|||||||
THEME_NAME="$1"
|
THEME_NAME="$1"
|
||||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||||
|
|
||||||
if [[ -d "$HOME/.config/omarchy/themes/$THEME_NAME/backgrounds" ]]; then
|
|
||||||
BACKGROUND_PATH="$HOME/.config/omarchy/themes/$THEME_NAME/backgrounds"
|
|
||||||
else
|
|
||||||
BACKGROUND_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if the theme entered exists
|
# Check if the theme entered exists
|
||||||
if [[ ! -d "$THEME_PATH" ]]; then
|
if [[ ! -d "$THEME_PATH" ]]; then
|
||||||
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
|
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
|
||||||
@ -41,11 +35,11 @@ fi
|
|||||||
# Trigger alacritty config reload
|
# Trigger alacritty config reload
|
||||||
touch "$HOME/.config/alacritty/alacritty.toml"
|
touch "$HOME/.config/alacritty/alacritty.toml"
|
||||||
|
|
||||||
# Trigger btop config reload
|
|
||||||
pkill -SIGUSR2 btop
|
|
||||||
|
|
||||||
# Restart components to apply new theme
|
# Restart components to apply new theme
|
||||||
|
pkill -SIGUSR2 btop
|
||||||
pkill -SIGUSR2 waybar
|
pkill -SIGUSR2 waybar
|
||||||
|
pkill swayosd-server
|
||||||
|
setsid uwsm app -- swayosd-server &>/dev/null &
|
||||||
makoctl reload
|
makoctl reload
|
||||||
hyprctl reload
|
hyprctl reload
|
||||||
|
|
||||||
|
@ -23,8 +23,9 @@ for file in $(git diff --name-only --diff-filter=A $migration_starting_point.. m
|
|||||||
source $file
|
source $file
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Update system packages
|
||||||
|
echo -e "\e[32m\nUpdate system packages\e[0m"
|
||||||
|
yay -Syu --noconfirm
|
||||||
|
|
||||||
# Back to where we came from
|
# Back to where we came from
|
||||||
cd - >/dev/null
|
cd - >/dev/null
|
||||||
|
|
||||||
# Update system packages
|
|
||||||
yay -Syu --noconfirm
|
|
||||||
|
3
boot.sh
@ -10,9 +10,10 @@ ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄
|
|||||||
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
|
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
|
||||||
███ ███ '
|
███ ███ '
|
||||||
|
|
||||||
|
clear
|
||||||
echo -e "\n$ansi_art\n"
|
echo -e "\n$ansi_art\n"
|
||||||
|
|
||||||
pacman -Q git &>/dev/null || sudo pacman -Sy --noconfirm --needed git
|
sudo pacman -Sy --noconfirm --needed git
|
||||||
|
|
||||||
echo -e "\nCloning Omarchy..."
|
echo -e "\nCloning Omarchy..."
|
||||||
rm -rf ~/.local/share/omarchy/
|
rm -rf ~/.local/share/omarchy/
|
||||||
|
@ -2,6 +2,7 @@ general {
|
|||||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
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.
|
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||||
|
on_unlock_cmd = pkill -SIGUSR2 waybar # prevent stacking of waybar when waking
|
||||||
}
|
}
|
||||||
|
|
||||||
listener {
|
listener {
|
||||||
|
4
config/swayosd/config.toml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[server]
|
||||||
|
show_percentage = true
|
||||||
|
max_volume = 150
|
||||||
|
style = "./style.css"
|
28
config/swayosd/style.css
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
@import "../omarchy/current/theme/swayosd.css";
|
||||||
|
|
||||||
|
window {
|
||||||
|
border-radius: 0;
|
||||||
|
opacity: 0.97;
|
||||||
|
border: 2px solid @border-color;
|
||||||
|
|
||||||
|
background-color: @background-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-family: 'CaskaydiaMono Nerd Font', monospace;
|
||||||
|
font-size: 11pt;
|
||||||
|
|
||||||
|
color: @label;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
color: @image;
|
||||||
|
}
|
||||||
|
|
||||||
|
progressbar {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
background-color: @progress;
|
||||||
|
}
|
@ -139,6 +139,7 @@ name = "Calculator"
|
|||||||
icon = "accessories-calculator"
|
icon = "accessories-calculator"
|
||||||
placeholder = "Calculator"
|
placeholder = "Calculator"
|
||||||
min_chars = 3 # Min chars to calculate. 3 allows "3+3"
|
min_chars = 3 # Min chars to calculate. 3 allows "3+3"
|
||||||
|
prefix = "="
|
||||||
|
|
||||||
[builtins.windows]
|
[builtins.windows]
|
||||||
weight = 5
|
weight = 5
|
||||||
|
@ -50,7 +50,8 @@
|
|||||||
"clock": {
|
"clock": {
|
||||||
"format": "{:%A %H:%M}",
|
"format": "{:%A %H:%M}",
|
||||||
"format-alt": "{:%d %B W%V %Y}",
|
"format-alt": "{:%d %B W%V %Y}",
|
||||||
"tooltip": false
|
"tooltip": false,
|
||||||
|
"on-click-right": "~/.local/share/omarchy/bin/omarchy-cmd-tzupdate"
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
"format-icons": ["","","","",""],
|
"format-icons": ["","","","",""],
|
||||||
|
@ -7,8 +7,8 @@ if command -v zoxide &> /dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if command -v fzf &> /dev/null; then
|
if command -v fzf &> /dev/null; then
|
||||||
if [[ -f /usr/share/bash-completion/completions/fzf ]]; then
|
if [[ -f /usr/share/fzf/completion.bash ]]; then
|
||||||
source /usr/share/bash-completion/completions/fzf
|
source /usr/share/fzf/completion.bash
|
||||||
fi
|
fi
|
||||||
if [[ -f /usr/share/fzf/key-bindings.bash ]]; then
|
if [[ -f /usr/share/fzf/key-bindings.bash ]]; then
|
||||||
source /usr/share/fzf/key-bindings.bash
|
source /usr/share/fzf/key-bindings.bash
|
||||||
|
@ -4,4 +4,4 @@ source ~/.local/share/omarchy/default/bash/functions
|
|||||||
source ~/.local/share/omarchy/default/bash/prompt
|
source ~/.local/share/omarchy/default/bash/prompt
|
||||||
source ~/.local/share/omarchy/default/bash/init
|
source ~/.local/share/omarchy/default/bash/init
|
||||||
source ~/.local/share/omarchy/default/bash/envs
|
source ~/.local/share/omarchy/default/bash/envs
|
||||||
bind -f ~/.local/share/omarchy/default/bash/inputrc
|
[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc
|
||||||
|
@ -7,4 +7,3 @@ exec-once = uwsm app -- swayosd-server
|
|||||||
exec-once = uwsm app -- walker --gapplication-service
|
exec-once = uwsm app -- walker --gapplication-service
|
||||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'
|
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'
|
||||||
exec-once = ~/.local/share/omarchy/bin/omarchy-first-run
|
|
||||||
|
@ -1,13 +1,16 @@
|
|||||||
|
# Only display the OSD on the currently focused monitor
|
||||||
|
$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
|
||||||
|
|
||||||
# Laptop multimedia keys for volume and LCD brightness (with OSD)
|
# Laptop multimedia keys for volume and LCD brightness (with OSD)
|
||||||
bindel = ,XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
|
bindel = ,XF86AudioRaiseVolume, exec, $osdclient --output-volume raise
|
||||||
bindel = ,XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
|
bindel = ,XF86AudioLowerVolume, exec, $osdclient --output-volume lower
|
||||||
bindel = ,XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
bindel = ,XF86AudioMute, exec, $osdclient --output-volume mute-toggle
|
||||||
bindel = ,XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
|
bindel = ,XF86AudioMicMute, exec, $osdclient --input-volume mute-toggle
|
||||||
bindel = ,XF86MonBrightnessUp, exec, swayosd-client --brightness raise
|
bindel = ,XF86MonBrightnessUp, exec, $osdclient --brightness raise
|
||||||
bindel = ,XF86MonBrightnessDown, exec, swayosd-client --brightness lower
|
bindel = ,XF86MonBrightnessDown, exec, $osdclient --brightness lower
|
||||||
|
|
||||||
# Requires playerctl
|
# Requires playerctl
|
||||||
bindl = , XF86AudioNext, exec, playerctl next
|
bindl = , XF86AudioNext, exec, $osdclient --playerctl next
|
||||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
bindl = , XF86AudioPause, exec, $osdclient --playerctl play-pause
|
||||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
bindl = , XF86AudioPlay, exec, $osdclient --playerctl play-pause
|
||||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
bindl = , XF86AudioPrev, exec, $osdclient --playerctl previous
|
||||||
|
@ -5,7 +5,7 @@ bind = SUPER, W, killactive,
|
|||||||
bind = SUPER, J, togglesplit, # dwindle
|
bind = SUPER, J, togglesplit, # dwindle
|
||||||
bind = SUPER, P, pseudo, # dwindle
|
bind = SUPER, P, pseudo, # dwindle
|
||||||
bind = SUPER, V, togglefloating,
|
bind = SUPER, V, togglefloating,
|
||||||
bind = , F11, fullscreen, 0
|
bind = SHIFT, F11, fullscreen, 0
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
# Move focus with mainMod + arrow keys
|
||||||
bind = SUPER, left, movefocus, l
|
bind = SUPER, left, movefocus, l
|
||||||
|
@ -6,7 +6,7 @@ windowrule = tile, class:^(Chromium)$
|
|||||||
|
|
||||||
# Float and center settings and previews
|
# Float and center settings and previews
|
||||||
windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
|
windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
|
||||||
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer)$
|
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$
|
||||||
windowrule = size 645 450, class:Omarchy
|
windowrule = size 645 450, class:Omarchy
|
||||||
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
|
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
|
||||||
|
|
||||||
@ -15,7 +15,8 @@ windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Fil
|
|||||||
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
|
||||||
|
|
||||||
# Float Steam, fullscreen RetroArch
|
# Float Steam, fullscreen RetroArch
|
||||||
windowrule = float, class:^(steam)$
|
windowrule = float, class:steam
|
||||||
|
windowrule = center, class:steam
|
||||||
windowrule = fullscreen, class:^(com.libretro.RetroArch)$
|
windowrule = fullscreen, class:^(com.libretro.RetroArch)$
|
||||||
|
|
||||||
# Just dash of opacity
|
# Just dash of opacity
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
|
@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
|
||||||
@import url("file://~/.config/omarchy/current/theme/walker.css");
|
@import url("file://~/.config/omarchy/current/theme/walker.css");
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
|
@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
|
||||||
@import url("file://~/.config/omarchy/current/theme/walker.css");
|
@import url("file://~/.config/omarchy/current/theme/walker.css");
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
|
@import url("file://~/.local/share/omarchy/default/walker/themes/omarchy-default.css");
|
||||||
@import url("file://~/.config/omarchy/current/theme/walker.css");
|
@import url("file://~/.config/omarchy/current/theme/walker.css");
|
||||||
|
72
install.sh
@ -3,6 +3,8 @@
|
|||||||
# Exit immediately if a command exits with a non-zero status
|
# Exit immediately if a command exits with a non-zero status
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
OMARCHY_INSTALL=~/.local/share/omarchy/install
|
||||||
|
|
||||||
# Give people a chance to retry running the installation
|
# Give people a chance to retry running the installation
|
||||||
catch_errors() {
|
catch_errors() {
|
||||||
echo -e "\n\e[31mOmarchy installation failed!\e[0m"
|
echo -e "\n\e[31mOmarchy installation failed!\e[0m"
|
||||||
@ -12,13 +14,69 @@ catch_errors() {
|
|||||||
|
|
||||||
trap catch_errors ERR
|
trap catch_errors ERR
|
||||||
|
|
||||||
# Install everything
|
show_logo() {
|
||||||
for f in ~/.local/share/omarchy/install/*.sh; do
|
clear
|
||||||
echo -e "\nRunning installer: $f"
|
tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand}
|
||||||
source "$f"
|
echo
|
||||||
done
|
}
|
||||||
|
|
||||||
# Ensure locate is up to date now that everything has been installed
|
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
|
||||||
|
|
||||||
|
# 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/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 updatedb
|
||||||
|
sudo pacman -Syu --noconfirm
|
||||||
|
|
||||||
gum confirm "Reboot to apply all settings?" && reboot
|
# Reboot
|
||||||
|
show_logo laseretch 920
|
||||||
|
show_subtext "You're done! So we'll be rebooting now..."
|
||||||
|
sleep 2
|
||||||
|
reboot
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
sudo pacman -S --needed --noconfirm base-devel
|
|
||||||
|
|
||||||
if ! command -v yay &>/dev/null; then
|
|
||||||
cd /tmp
|
|
||||||
git clone https://aur.archlinux.org/yay-bin.git
|
|
||||||
cd yay-bin
|
|
||||||
makepkg -si --noconfirm
|
|
||||||
cd -
|
|
||||||
rm -rf yay-bin
|
|
||||||
cd ~
|
|
||||||
|
|
||||||
# Add fun and color to the pacman installer
|
|
||||||
sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf
|
|
||||||
fi
|
|
@ -12,5 +12,5 @@ if [ -z "$OMARCHY_BARE" ]; then
|
|||||||
web2app "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png
|
web2app "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png
|
||||||
web2app "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png
|
web2app "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png
|
||||||
web2app "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png
|
web2app "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png
|
||||||
web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://manuals.omamix.org/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NDgsInB1ciI6ImJsb2JfaWQifX0=--c26606490139480f5bcb3cf91b09fc45825007f6/omarchy.jpg?disposition=attachment
|
web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/arch-linux.png
|
||||||
fi
|
fi
|
@ -3,9 +3,18 @@
|
|||||||
# Copy over Omarchy configs
|
# Copy over Omarchy configs
|
||||||
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
cp -R ~/.local/share/omarchy/config/* ~/.config/
|
||||||
|
|
||||||
|
# Use default bashrc from Omarchy
|
||||||
|
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
|
||||||
|
|
||||||
# Ensure application directory exists for update-desktop-database
|
# Ensure application directory exists for update-desktop-database
|
||||||
mkdir -p ~/.local/share/applications
|
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
|
# Setup GPG configuration with multiple keyservers for better reliability
|
||||||
sudo mkdir -p /etc/gnupg
|
sudo mkdir -p /etc/gnupg
|
||||||
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
|
||||||
@ -13,8 +22,9 @@ sudo chmod 644 /etc/gnupg/dirmngr.conf
|
|||||||
sudo gpgconf --kill dirmngr || true
|
sudo gpgconf --kill dirmngr || true
|
||||||
sudo gpgconf --launch dirmngr || true
|
sudo gpgconf --launch dirmngr || true
|
||||||
|
|
||||||
# Use default bashrc from Omarchy
|
# Increase lockout limit to 10 and decrease timeout to 2 minutes
|
||||||
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc
|
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
|
# Set common git aliases
|
||||||
git config --global alias.co checkout
|
git config --global alias.co checkout
|
15
install/config/detect-keyboard-layout.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
conf="/etc/vconsole.conf"
|
||||||
|
hyprconf="$HOME/.config/hypr/hyprland.conf"
|
||||||
|
|
||||||
|
layout=$(grep '^XKBLAYOUT=' "$conf" | cut -d= -f2 | tr -d '"')
|
||||||
|
variant=$(grep '^XKBVARIANT=' "$conf" | cut -d= -f2 | tr -d '"')
|
||||||
|
|
||||||
|
if [[ -n "$layout" ]]; then
|
||||||
|
sed -i "/^[[:space:]]*kb_options *=/i\ kb_layout = $layout" "$hyprconf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$variant" ]]; then
|
||||||
|
sed -i "/^[[:space:]]*kb_options *=/i\ kb_variant = $variant" "$hyprconf"
|
||||||
|
fi
|
@ -3,6 +3,6 @@
|
|||||||
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
|
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
|
||||||
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
|
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf
|
||||||
|
|
||||||
# Rely on install/plymouth.sh to do the rebuild
|
# Rely on install/login.sh to do the rebuild
|
||||||
# sudo mkinitcpio -P
|
# sudo mkinitcpio -P
|
||||||
fi
|
fi
|
@ -1,10 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Need gum to query for input
|
|
||||||
yay -S --noconfirm --needed gum
|
|
||||||
|
|
||||||
# Configure identification
|
|
||||||
source ~/.local/share/omarchy/ansi.sh
|
|
||||||
echo -e "\nEnter identification for git and autocomplete..."
|
|
||||||
export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ")
|
export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ")
|
||||||
export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ")
|
export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ")
|
267
install/config/login.sh
Normal file
@ -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 <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/ioctl.h>
|
||||||
|
#include <linux/kd.h>
|
||||||
|
#include <linux/vt.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
int vt_fd;
|
||||||
|
int vt_num = 1; // TTY1
|
||||||
|
char vt_path[32];
|
||||||
|
|
||||||
|
if (argc < 2) {
|
||||||
|
fprintf(stderr, "Usage: %s <session_command>\n", argv[0]);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the VT (simple approach like SDDM)
|
||||||
|
snprintf(vt_path, sizeof(vt_path), "/dev/tty%d", vt_num);
|
||||||
|
vt_fd = open(vt_path, O_RDWR);
|
||||||
|
if (vt_fd < 0) {
|
||||||
|
perror("Failed to open VT");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Activate the VT
|
||||||
|
if (ioctl(vt_fd, VT_ACTIVATE, vt_num) < 0) {
|
||||||
|
perror("VT_ACTIVATE failed");
|
||||||
|
close(vt_fd);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Wait for VT to be active
|
||||||
|
if (ioctl(vt_fd, VT_WAITACTIVE, vt_num) < 0) {
|
||||||
|
perror("VT_WAITACTIVE failed");
|
||||||
|
close(vt_fd);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Critical: Set graphics mode to prevent console text
|
||||||
|
if (ioctl(vt_fd, KDSETMODE, KD_GRAPHICS) < 0) {
|
||||||
|
perror("KDSETMODE KD_GRAPHICS failed");
|
||||||
|
close(vt_fd);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear VT and close (like SDDM does)
|
||||||
|
const char *clear_seq = "\33[H\33[2J";
|
||||||
|
if (write(vt_fd, clear_seq, strlen(clear_seq)) < 0) {
|
||||||
|
perror("Failed to clear VT");
|
||||||
|
}
|
||||||
|
|
||||||
|
close(vt_fd);
|
||||||
|
|
||||||
|
// Set working directory to user's home
|
||||||
|
const char *home = getenv("HOME");
|
||||||
|
if (home) chdir(home);
|
||||||
|
|
||||||
|
// Now execute the session command
|
||||||
|
execvp(argv[1], &argv[1]);
|
||||||
|
perror("Failed to exec session");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
CCODE
|
||||||
|
|
||||||
|
gcc -o /tmp/seamless-login /tmp/seamless-login.c
|
||||||
|
sudo mv /tmp/seamless-login /usr/local/bin/seamless-login
|
||||||
|
sudo chmod +x /usr/local/bin/seamless-login
|
||||||
|
rm /tmp/seamless-login.c
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /etc/systemd/system/omarchy-seamless-login.service ]; then
|
||||||
|
cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service
|
||||||
|
[Unit]
|
||||||
|
Description=Omarchy Seamless Auto-Login
|
||||||
|
Documentation=https://github.com/basecamp/omarchy
|
||||||
|
Conflicts=getty@tty1.service
|
||||||
|
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
|
||||||
|
PartOf=graphical.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/local/bin/seamless-login uwsm start -- hyprland.desktop
|
||||||
|
Restart=always
|
||||||
|
RestartSec=2
|
||||||
|
User=$USER
|
||||||
|
TTYPath=/dev/tty1
|
||||||
|
TTYReset=yes
|
||||||
|
TTYVHangup=yes
|
||||||
|
TTYVTDisallocate=yes
|
||||||
|
StandardInput=tty
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal+console
|
||||||
|
PAMName=login
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=graphical.target
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf ]; then
|
||||||
|
# Make plymouth remain until graphical.target
|
||||||
|
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d
|
||||||
|
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
|
||||||
|
[Unit]
|
||||||
|
After=multi-user.target
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Mask plymouth-quit-wait.service only if not already masked
|
||||||
|
if ! systemctl is-enabled plymouth-quit-wait.service | grep -q masked; then
|
||||||
|
sudo systemctl mask plymouth-quit-wait.service
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable omarchy-seamless-login.service only if not already enabled
|
||||||
|
if ! systemctl is-enabled omarchy-seamless-login.service | grep -q enabled; then
|
||||||
|
sudo systemctl enable omarchy-seamless-login.service
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Disable getty@tty1.service only if not already disabled
|
||||||
|
if ! systemctl is-enabled getty@tty1.service | grep -q disabled; then
|
||||||
|
sudo systemctl disable getty@tty1.service
|
||||||
|
fi
|
@ -12,6 +12,9 @@
|
|||||||
|
|
||||||
# --- GPU Detection ---
|
# --- GPU Detection ---
|
||||||
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
||||||
|
show_logo
|
||||||
|
show_subtext "Install NVIDIA drivers..."
|
||||||
|
|
||||||
# --- Driver Selection ---
|
# --- Driver Selection ---
|
||||||
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
|
# Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules
|
||||||
if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then
|
if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then
|
||||||
@ -35,6 +38,9 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
|||||||
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
|
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# force package database refresh
|
||||||
|
sudo pacman -Syy
|
||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
PACKAGES_TO_INSTALL=(
|
PACKAGES_TO_INSTALL=(
|
||||||
"${KERNEL_HEADERS}"
|
"${KERNEL_HEADERS}"
|
||||||
@ -47,7 +53,7 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
|
|||||||
"qt6-wayland"
|
"qt6-wayland"
|
||||||
)
|
)
|
||||||
|
|
||||||
yay -Syu --needed --noconfirm "${PACKAGES_TO_INSTALL[@]}"
|
yay -S --needed --noconfirm "${PACKAGES_TO_INSTALL[@]}"
|
||||||
|
|
||||||
# Configure modprobe for early KMS
|
# Configure modprobe for early KMS
|
||||||
echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/nvidia.conf >/dev/null
|
echo "options nvidia_drm modeset=1" | sudo tee /etc/modprobe.d/nvidia.conf >/dev/null
|
9
install/config/timezones.sh
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then
|
||||||
|
yay -S --noconfirm --needed tzupdate
|
||||||
|
sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null <<EOF
|
||||||
|
%wheel ALL=(root) NOPASSWD: /usr/bin/tzupdate, /usr/bin/timedatectl
|
||||||
|
EOF
|
||||||
|
sudo chmod 0440 /etc/sudoers.d/omarchy-tzupdate
|
||||||
|
fi
|
@ -1,9 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if [ -z "$OMARCHY_BARE" ]; then
|
if [ -z "$OMARCHY_BARE" ]; then
|
||||||
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
|
yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
|
||||||
else
|
else
|
||||||
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji
|
yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p ~/.local/share/fonts
|
mkdir -p ~/.local/share/fonts
|
@ -1,21 +1,26 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Use dark mode for QT apps too (like kdenlive)
|
# Use dark mode for QT apps too (like kdenlive)
|
||||||
sudo pacman -S --noconfirm kvantum-qt5
|
if ! yay -Q kvantum-qt5 &>/dev/null; then
|
||||||
|
yay -S --noconfirm kvantum-qt5
|
||||||
|
fi
|
||||||
|
|
||||||
# Prefer dark mode everything
|
# Prefer dark mode everything
|
||||||
sudo pacman -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme
|
if ! yay -Q gnome-themes-extra &>/dev/null; then
|
||||||
|
yay -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme
|
||||||
|
fi
|
||||||
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
|
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 color-scheme "prefer-dark"
|
||||||
|
|
||||||
# Setup theme links
|
# Setup theme links
|
||||||
mkdir -p ~/.config/omarchy/themes
|
mkdir -p ~/.config/omarchy/themes
|
||||||
for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes/; done
|
for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done
|
||||||
|
|
||||||
# Set initial theme
|
# Set initial theme
|
||||||
mkdir -p ~/.config/omarchy/current
|
mkdir -p ~/.config/omarchy/current
|
||||||
ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme
|
ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme
|
||||||
ln -snf ~/.config/omarchy/current/theme/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background
|
ln -snf ~/.config/omarchy/current/theme/backgrounds/1-scenery-pink-lakeside-sunset-lake-landscape-scenic-panorama-7680x3215-144.png ~/.config/omarchy/current/background
|
||||||
|
|
||||||
# Set specific app links for current theme
|
# Set specific app links for current theme
|
||||||
ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
|
ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
if ! command -v ufw &>/dev/null; then
|
if ! command -v ufw &>/dev/null; then
|
||||||
yay -Sy --noconfirm --needed ufw ufw-docker
|
yay -S --noconfirm --needed ufw ufw-docker
|
||||||
|
|
||||||
# Allow nothing in, everything out
|
# Allow nothing in, everything out
|
||||||
sudo ufw default deny incoming
|
sudo ufw default deny incoming
|
126
install/login.sh
@ -1,126 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
|
|
||||||
yay -S --noconfirm --needed uwsm
|
|
||||||
|
|
||||||
# Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop
|
|
||||||
cat <<'CCODE' >/tmp/seamless-login.c
|
|
||||||
/*
|
|
||||||
* Seamless Login - Minimal SDDM-style Plymouth transition
|
|
||||||
* Replicates SDDM's VT management for seamless auto-login
|
|
||||||
*/
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#include <linux/kd.h>
|
|
||||||
#include <linux/vt.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[]) {
|
|
||||||
int vt_fd;
|
|
||||||
int vt_num = 1; // TTY1
|
|
||||||
char vt_path[32];
|
|
||||||
|
|
||||||
if (argc < 2) {
|
|
||||||
fprintf(stderr, "Usage: %s <session_command>\n", argv[0]);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Open the VT (simple approach like SDDM)
|
|
||||||
snprintf(vt_path, sizeof(vt_path), "/dev/tty%d", vt_num);
|
|
||||||
vt_fd = open(vt_path, O_RDWR);
|
|
||||||
if (vt_fd < 0) {
|
|
||||||
perror("Failed to open VT");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Activate the VT
|
|
||||||
if (ioctl(vt_fd, VT_ACTIVATE, vt_num) < 0) {
|
|
||||||
perror("VT_ACTIVATE failed");
|
|
||||||
close(vt_fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wait for VT to be active
|
|
||||||
if (ioctl(vt_fd, VT_WAITACTIVE, vt_num) < 0) {
|
|
||||||
perror("VT_WAITACTIVE failed");
|
|
||||||
close(vt_fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Critical: Set graphics mode to prevent console text
|
|
||||||
if (ioctl(vt_fd, KDSETMODE, KD_GRAPHICS) < 0) {
|
|
||||||
perror("KDSETMODE KD_GRAPHICS failed");
|
|
||||||
close(vt_fd);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear VT and close (like SDDM does)
|
|
||||||
const char *clear_seq = "\33[H\33[2J";
|
|
||||||
if (write(vt_fd, clear_seq, strlen(clear_seq)) < 0) {
|
|
||||||
perror("Failed to clear VT");
|
|
||||||
}
|
|
||||||
|
|
||||||
close(vt_fd);
|
|
||||||
|
|
||||||
// Set working directory to user's home
|
|
||||||
const char *home = getenv("HOME");
|
|
||||||
if (home) chdir(home);
|
|
||||||
|
|
||||||
// Now execute the session command
|
|
||||||
execvp(argv[1], &argv[1]);
|
|
||||||
perror("Failed to exec session");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
CCODE
|
|
||||||
|
|
||||||
gcc -o /tmp/seamless-login /tmp/seamless-login.c
|
|
||||||
sudo mv /tmp/seamless-login /usr/local/bin/seamless-login
|
|
||||||
sudo chmod +x /usr/local/bin/seamless-login
|
|
||||||
rm /tmp/seamless-login.c
|
|
||||||
|
|
||||||
cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service
|
|
||||||
[Unit]
|
|
||||||
Description=Omarchy Seamless Auto-Login
|
|
||||||
Documentation=https://github.com/basecamp/omarchy
|
|
||||||
Conflicts=getty@tty1.service
|
|
||||||
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
|
|
||||||
PartOf=graphical.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
ExecStart=/usr/local/bin/seamless-login uwsm start -- hyprland.desktop
|
|
||||||
Restart=always
|
|
||||||
RestartSec=2
|
|
||||||
User=$USER
|
|
||||||
TTYPath=/dev/tty1
|
|
||||||
TTYReset=yes
|
|
||||||
TTYVHangup=yes
|
|
||||||
TTYVTDisallocate=yes
|
|
||||||
StandardInput=tty
|
|
||||||
StandardOutput=journal
|
|
||||||
StandardError=journal+console
|
|
||||||
PAMName=login
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=graphical.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Make plymouth remain until graphical.target
|
|
||||||
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d
|
|
||||||
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
|
|
||||||
[Unit]
|
|
||||||
After=multi-user.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Prevent plymouth-quit-wait.service
|
|
||||||
sudo systemctl mask plymouth-quit-wait.service
|
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable omarchy-seamless-login.service
|
|
||||||
|
|
||||||
# Disable getty@tty1 to prevent conflicts
|
|
||||||
sudo systemctl disable getty@tty1.service
|
|
@ -1,121 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if ! command -v plymouth &>/dev/null; then
|
|
||||||
yay -S --noconfirm --needed plymouth
|
|
||||||
|
|
||||||
# Skip if plymouth already exists for some reason
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Add kernel parameters for Plymouth (systemd-boot only)
|
|
||||||
if [ -d "/boot/loader/entries" ]; then
|
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
||||||
# 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 "Neither systemd-boot nor GRUB detected. Please manually add these kernel parameters:"
|
|
||||||
echo " - splash (to see the graphical splash screen)"
|
|
||||||
echo " - quiet (for silent boot)"
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy and set the Plymouth theme
|
|
||||||
sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/
|
|
||||||
|
|
||||||
sudo plymouth-set-default-theme -R omarchy
|
|
||||||
fi
|
|
41
install/preflight/aur.sh
Normal file
@ -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
|
3
install/preflight/presentation.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
yay -S --noconfirm --needed gum python-terminaltexteffects
|
10
logo.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
▄▄▄
|
||||||
|
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
|
||||||
|
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
||||||
|
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
|
||||||
|
███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███
|
||||||
|
███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
|
||||||
|
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
|
||||||
|
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
|
||||||
|
▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
|
||||||
|
███ █▀
|
@ -1,2 +1,2 @@
|
|||||||
echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)"
|
echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)"
|
||||||
source ~/.local/share/omarchy/install/fix-fkeys.sh
|
source ~/.local/share/omarchy/install/config/fix-fkeys.sh
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
echo "Install Plymouth splash screen"
|
echo "Install Plymouth splash screen"
|
||||||
source "$HOME/.local/share/omarchy/install/plymouth.sh"
|
source "$HOME/.local/share/omarchy/install/login.sh"
|
||||||
|
@ -14,6 +14,5 @@ if ! command -v uwsm &>/dev/null; then
|
|||||||
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
|
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
omarchy-refresh-plymouth -y
|
source ~/.local/share/omarchy/install/config/login.sh
|
||||||
source ~/.local/share/omarchy/install/login.sh
|
|
||||||
fi
|
fi
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
echo "Enable ufw firewall"
|
echo "Enable ufw firewall"
|
||||||
source ~/.local/share/omarchy/install/firewall.sh
|
source ~/.local/share/omarchy/install/development/firewall.sh
|
||||||
|
@ -9,5 +9,5 @@ if ! command -v walker &>/dev/null; then
|
|||||||
mkdir -p ~/.config/walker
|
mkdir -p ~/.config/walker
|
||||||
cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/
|
cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/
|
||||||
|
|
||||||
uwsm app -- walker --gapplication-service
|
setsid uwsm app -- walker --gapplication-service &
|
||||||
fi
|
fi
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
|
if [[ ! -f ~/.local/state/omarchy/bare.mode ]]; then
|
||||||
echo "Add missing installation of Zoom"
|
echo "Add missing installation of Zoom"
|
||||||
|
|
||||||
if ! command -v zoom &>/dev/null; then
|
if ! command -v zoom &>/dev/null; then
|
||||||
yay -S --noconfirm --needed zoom
|
yay -S --noconfirm --needed zoom
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
echo "Ensure first-run flow isn't run for existing installations"
|
|
||||||
|
|
||||||
if [[ ! -f ~/.local/state/omarchy/after-first-run.mode ]]; then
|
|
||||||
mkdir -p ~/.local/state/omarchy
|
|
||||||
touch ~/.local/state/omarchy/after-first-run.mode
|
|
||||||
fi
|
|
@ -1,6 +1,6 @@
|
|||||||
echo "Install swayOSD to show volume status"
|
echo "Install swayOSD to show volume status"
|
||||||
|
|
||||||
if ! command -v swayosd &>/dev/null; then
|
if ! command -v swayosd-server &>/dev/null; then
|
||||||
yay -S --noconfirm --needed swayosd
|
yay -S --noconfirm --needed swayosd
|
||||||
uwsm app -- swayosd-server &>/dev/null &
|
setsid uwsm app -- swayosd-server &>/dev/null &
|
||||||
fi
|
fi
|
||||||
|
9
migrations/1753224615.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
echo "Adding SwayOSD theming"
|
||||||
|
|
||||||
|
if [[ ! -d ~/.config/swayosd ]]; then
|
||||||
|
mkdir -p ~/.config/swayosd
|
||||||
|
cp -r ~/.local/share/omarchy/config/swayosd/* ~/.config/swayosd/
|
||||||
|
|
||||||
|
pkill swayosd-server
|
||||||
|
setsid uwsm app -- swayosd-server &>/dev/null &
|
||||||
|
fi
|
6
migrations/1753286633.sh
Normal file
@ -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
|
8
migrations/1753302134.sh
Normal file
@ -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
|
20
migrations/1753352057.sh
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
chaotic_ok=1
|
||||||
|
else
|
||||||
|
echo "Failed to install Chaotic-AUR, so won't include it in pacman config!"
|
||||||
|
fi
|
||||||
|
fi
|
4
migrations/1753468218.sh
Normal file
@ -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
|
5
migrations/1753495989.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)"
|
||||||
|
if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then
|
||||||
|
bash ~/.local/share/omarchy/install/config/timezones.sh
|
||||||
|
omarchy-refresh-waybar
|
||||||
|
fi
|
4
migrations/1753558374.sh
Normal file
@ -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
|
||||||
|
omarchy-refresh-walker
|
||||||
|
fi
|
1
omarchy.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<svg fill="none" height="285" viewBox="0 0 1215 285" width="1215" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path clip-rule="evenodd" d="m720 120h-15v15h-14.998v14.999l-60.002.001v15.002l90-.002v.002h.002l-.002 89.998h-15v15h-13v15h-17v-89.998h-45v90l-45-.002v-89.998h-14.998v-30h14.998v-15.002h-14.998v-30.001h14.998v-75h15v-14.997h15v-15.002h105.002zm-90-.001h45v-74.997h-45z" fill-rule="evenodd"/><path clip-rule="evenodd" d="m105 30.002h15v14.997h15v180.001h-15v15h-15v15.002h-75v-15.002h-15v-15h-15v-180.001h15v-14.997h15v-15.002h75zm-60 194.998h45v-179.998h-45z" fill-rule="evenodd"/><path d="m300 15h60v15h15v14.999h15v180.001h-15v15h-15v15h-15l-.004-209.998h-44.994v-.002h-.002v210.002h-45v-210h-44.998v179.997h-.002v30.003h-15v-15.002h-15v-15h-14.998v-180.001h14.998v-14.999h15v-15h60v-15h45z"/><path clip-rule="evenodd" d="m555 225h-15v15h-15v15h-15v-105.001l-44.998.001v105.002h-45.002v-105.002h-15v-30.001h15v-75h15.002v-14.997h15v-15.002h105zm-89.998-105.001h44.998v-74.997h-44.998z" fill-rule="evenodd"/><path d="m885 75h-15v15h-15v15h-15v-59.998h-45v179.998h45v-59.998h15v14.997h15v15.001h15v30h-15v15h-15v15.002l-105-.002v-210.001h14.998v-14.997h15.002v-15.002h105z"/><path d="m960 119.999h45v-104.999h15v15h15v14.999h15v75.001h15v15h-15v90h-15v15h-15v15h-15v-105h-45v105.002l-45-.002v-105h-30v-15h15v-15.001h15v-75h15v-14.997h15v-15.002h15z"/><path d="m1125 119.999h45v-104.999h15v15h15v15h15v180h-15v15h-15v15.002l-75-.002v-15h-15v-15h-15v-45.001h15v-14.997-.002h30v60h45v-75h-90v-105.001h15v-14.997h15v-15.002h15z"/></g></svg>
|
After Width: | Height: | Size: 1.5 KiB |
@ -1,8 +1,4 @@
|
|||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
|
|
||||||
$latte_blue = rgb(1e66f5)
|
|
||||||
|
|
||||||
general {
|
general {
|
||||||
col.active_border = $latte_blue
|
col.active_border = rgb(1e66f5)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
text-color=#4c4f69
|
text-color=#4c4f69
|
||||||
border-color=#dce0e8
|
border-color=#1e66f5
|
||||||
background-color=#eff1f5
|
background-color=#eff1f5
|
||||||
width=420
|
width=420
|
||||||
height=110
|
height=110
|
||||||
|
5
themes/catppuccin-latte/swayosd.css
Normal file
@ -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;
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(c6d0f5)
|
col.active_border = rgb(c6d0f5)
|
||||||
}
|
}
|
||||||
|
5
themes/catppuccin/swayosd.css
Normal file
@ -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;
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(d3c6aa)
|
col.active_border = rgb(d3c6aa)
|
||||||
}
|
}
|
||||||
|
6
themes/everforest/swayosd.css
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@define-color background-color #2d353b;
|
||||||
|
@define-color border-color #d3c6aa;
|
||||||
|
@define-color label #d3c6aa;
|
||||||
|
@define-color image #d3c6aa;
|
||||||
|
@define-color progress #d3c6aa;
|
||||||
|
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(a89984)
|
col.active_border = rgb(a89984)
|
||||||
}
|
}
|
||||||
|
6
themes/gruvbox/swayosd.css
Normal file
@ -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;
|
||||||
|
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(dcd7ba)
|
col.active_border = rgb(dcd7ba)
|
||||||
}
|
}
|
||||||
|
6
themes/kanagawa/swayosd.css
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@define-color background-color #1f1f28;
|
||||||
|
@define-color border-color #dcd7ba;
|
||||||
|
@define-color label #dcd7ba;
|
||||||
|
@define-color image #dcd7ba;
|
||||||
|
@define-color progress #dcd7ba;
|
||||||
|
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(8A8A8D)
|
col.active_border = rgb(8A8A8D)
|
||||||
}
|
}
|
||||||
|
@ -1,192 +1,9 @@
|
|||||||
return {
|
return {
|
||||||
"EdenEast/nightfox.nvim",
|
{ "tahayvr/matteblack.nvim", lazy = false, priority = 1000 },
|
||||||
lazy = false,
|
{
|
||||||
priority = 1000,
|
"LazyVim/LazyVim",
|
||||||
dependencies = {
|
opts = {
|
||||||
"folke/snacks.nvim",
|
colorscheme = "matteblack",
|
||||||
"nvim-tree/nvim-web-devicons",
|
|
||||||
"nvim-lualine/lualine.nvim",
|
|
||||||
},
|
},
|
||||||
|
|
||||||
config = function()
|
|
||||||
local nightfox = require('nightfox')
|
|
||||||
local Shade = require('nightfox.lib.shade')
|
|
||||||
local c = require('nightfox.lib.color')
|
|
||||||
|
|
||||||
local matte_black_palette = {
|
|
||||||
-- Base "Matte Black" Palette Overrides
|
|
||||||
bg0 = "#0D0D0D", bg1 = "#121212", bg2 = "#1E1E1E", bg3 = "#2C2C2C", bg4 = "#333333",
|
|
||||||
fg0 = "#FFFFFF", fg1 = "#EAEAEA", fg2 = "#BEBEBE", fg3 = "#8A8A8D",
|
|
||||||
sel0 = "#2C2C2C",
|
|
||||||
sel1 = c.from_hex("#2C2C2C"):blend(c.from_hex("#F59E0B"), 0.2):to_css(),
|
|
||||||
comment = "#8A8A8D",
|
|
||||||
red = Shade.new("#D35F5F", c.from_hex("#D35F5F"):lighten(8):to_css(), "#B91C1C"),
|
|
||||||
orange = Shade.new("#F59E0B", "#FFC107", c.from_hex("#F59E0B"):lighten(-8):to_css()),
|
|
||||||
yellow = Shade.new("#FFC107", c.from_hex("#FFC107"):lighten(10):to_css(), "#F59E0B"),
|
|
||||||
white = Shade.new("#EAEAEA", "#FFFFFF", "#BEBEBE"),
|
|
||||||
black = Shade.new("#333333", "#8A8A8D", "#1E1E1E"),
|
|
||||||
green = Shade.new("#8A9A7B", "#A5B799", "#6F7C62"),
|
|
||||||
cyan = Shade.new("#88AABB", "#A2C4D3", "#6E8A99"),
|
|
||||||
blue = Shade.new("#8A9FBE", "#A4BBDD", "#7084A1"),
|
|
||||||
magenta = Shade.new("#C1A1C1", "#D9B9D9", "#A989A9"),
|
|
||||||
pink = Shade.new("#D398A7", "#EBC0CB", "#B97E8D"),
|
|
||||||
|
|
||||||
-- Lualine Palette Extensions
|
|
||||||
lualine_normal_bg = "#F59E0B",
|
|
||||||
lualine_insert_bg = "#B91C1C",
|
|
||||||
lualine_visual_bg = "#C1A1C1",
|
|
||||||
lualine_command_bg = "#F59E0B",
|
|
||||||
lualine_inactive_bg = c.from_hex("#121212"):lighten(5):to_css(),
|
|
||||||
|
|
||||||
-- Treesitter Palette Extensions
|
|
||||||
ts_parameter = "#D398A7",
|
|
||||||
ts_property = "#EAEAEA",
|
|
||||||
}
|
|
||||||
|
|
||||||
local final_palettes = {
|
|
||||||
carbonfox = require('nightfox.lib.collect').deep_extend(
|
|
||||||
require('nightfox.palette').load('carbonfox'),
|
|
||||||
matte_black_palette
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
local specs = {
|
|
||||||
carbonfox = {
|
|
||||||
syntax = {
|
|
||||||
keyword = "red", -- "local", "function", "if"
|
|
||||||
conditional = "red",
|
|
||||||
statement = "red",
|
|
||||||
func = "orange",
|
|
||||||
string = "orange.dim",
|
|
||||||
number = "orange",
|
|
||||||
operator = "yellow",
|
|
||||||
variable = "white",
|
|
||||||
ident = "white.dim",
|
|
||||||
const = "white",
|
|
||||||
type = "white",
|
|
||||||
field = "white.dim",
|
|
||||||
comment = "comment",
|
|
||||||
},
|
|
||||||
diag = {
|
|
||||||
error = "red",
|
|
||||||
warn = "red",
|
|
||||||
info = "cyan",
|
|
||||||
hint = "magenta",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local groups = {
|
|
||||||
all = {
|
|
||||||
-- Base Groups
|
|
||||||
Whitespace = { fg = "palette.black.bright" },
|
|
||||||
NonText = { fg = "palette.black.bright" },
|
|
||||||
IncSearch = { bg = "palette.sel1" },
|
|
||||||
CursorLine = { bg = "palette.bg2" },
|
|
||||||
Normal = { fg = "palette.fg1" },
|
|
||||||
|
|
||||||
-- Noice Cmdline Overrides
|
|
||||||
NoiceCmdlinePopupBorder = { fg = "palette.fg3" },
|
|
||||||
NoiceCmdlinePopupTitle = { fg = "palette.fg3", style = "bold" },
|
|
||||||
NoiceCmdlinePopupBorderSearch = { fg = "palette.fg3" },
|
|
||||||
NoiceCmdlinePopupTitleSearch = { fg = "palette.fg3", style = "bold" },
|
|
||||||
NoiceCmdLineIcon = { fg = "palette.red" },
|
|
||||||
|
|
||||||
-- Neo-tree overrides
|
|
||||||
NeoTreeNormal = { bg = "palette.bg0" },
|
|
||||||
NeoTreeNormalNC = { link = "NeoTreeNormal" },
|
|
||||||
NeoTreeDirectoryName = { fg = "palette.fg3" },
|
|
||||||
NeoTreeDirectoryIcon = { fg = "palette.fg3" },
|
|
||||||
NeoTreeRootName = { fg = "palette.orange", style = "bold" },
|
|
||||||
NeoTreeGitAdded = { fg = "palette.green" },
|
|
||||||
NeoTreeGitModified = { fg = "palette.yellow" },
|
|
||||||
NeoTreeGitDeleted = { fg = "palette.red" },
|
|
||||||
NeoTreeGitIgnored = { fg = "palette.comment" },
|
|
||||||
NeoTreeC = { fg = "palette.orange", bg = "palette.sel0" },
|
|
||||||
|
|
||||||
-- Dashboard overrides
|
|
||||||
SnacksDashboardHeader = { fg = "palette.fg3" },
|
|
||||||
SnacksDashboardIcon = { fg = "palette.fg1" },
|
|
||||||
SnacksDashboardDir = { fg = "palette.orange" },
|
|
||||||
SnacksDashboardFile = { fg = "palette.fg3" },
|
|
||||||
SnacksDashboardFooter = { fg = "palette.fg3" },
|
|
||||||
SnacksDashboardKey = { fg = "palette.orange" },
|
|
||||||
SnacksDashboardDesc = { fg = "palette.fg1" },
|
|
||||||
SnacksDashboardSpecial = { fg = "palette.fg1" },
|
|
||||||
|
|
||||||
-- Treesitter overrides
|
|
||||||
["@comment"] = { fg = "palette.comment", style = "italic" },
|
|
||||||
["@keyword"] = { fg = "palette.red", style = "bold" },
|
|
||||||
["@keyword.function"] = { fg = "palette.red", style = "bold" },
|
|
||||||
["@keyword.operator"] = { fg = "palette.red", style = "bold" },
|
|
||||||
["@function"] = { fg = "palette.orange", style = "bold" },
|
|
||||||
["@function.builtin"] = { fg = "palette.orange", style = "bold" },
|
|
||||||
["@function.call"] = { fg = "palette.orange" },
|
|
||||||
["@string"] = { fg = "palette.orange" },
|
|
||||||
["@number"] = { fg = "palette.orange" },
|
|
||||||
["@operator"] = { fg = "palette.yellow" },
|
|
||||||
["@variable"] = { fg = "palette.white" },
|
|
||||||
["@constant"] = { fg = "palette.white" },
|
|
||||||
["@type"] = { fg = "palette.white.dim" },
|
|
||||||
["@variable.parameter"] = { fg = "palette.ts_parameter", style = "italic" },
|
|
||||||
["@property"] = { fg = "palette.ts_property" },
|
|
||||||
["@field"] = { fg = "palette.ts_property" },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nightfox.setup({
|
|
||||||
options = {
|
|
||||||
style = "carbonfox",
|
|
||||||
terminal_colors = true,
|
|
||||||
dim_inactive = true,
|
|
||||||
styles = { comments = "italic", functions = "bold", keywords = "bold" },
|
|
||||||
modules = {
|
|
||||||
neotree = true,
|
|
||||||
treesitter = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
palettes = final_palettes,
|
|
||||||
specs = specs,
|
|
||||||
groups = groups
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.cmd("colorscheme carbonfox")
|
|
||||||
|
|
||||||
-- Lualine overrides
|
|
||||||
local lualine_theme = {
|
|
||||||
normal = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_normal_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
insert = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_insert_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
visual = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_visual_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
command = {
|
|
||||||
a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_command_bg, gui = "bold" },
|
|
||||||
b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
|
||||||
inactive = {
|
|
||||||
a = { fg = matte_black_palette.fg3, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
b = { fg = matte_black_palette.fg3, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
c = { fg = matte_black_palette.comment, bg = matte_black_palette.lualine_inactive_bg },
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
require('lualine').setup({
|
|
||||||
options = {
|
|
||||||
theme = lualine_theme,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
end,
|
|
||||||
|
|
||||||
}
|
|
6
themes/matte-black/swayosd.css
Normal file
@ -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;
|
||||||
|
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(D8DEE9)
|
col.active_border = rgb(D8DEE9)
|
||||||
}
|
}
|
||||||
|
6
themes/nord/swayosd.css
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@define-color background-color #2E3440;
|
||||||
|
@define-color border-color #D8DEE9;
|
||||||
|
@define-color label #D8DEE9;
|
||||||
|
@define-color image #D8DEE9;
|
||||||
|
@define-color progress #D8DEE9;
|
||||||
|
|
@ -1,4 +1,3 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgb(575279)
|
col.active_border = rgb(575279)
|
||||||
}
|
}
|
||||||
|
6
themes/rose-pine/swayosd.css
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
@define-color background-color #faf4ed;
|
||||||
|
@define-color border-color #575279;
|
||||||
|
@define-color label #575279;
|
||||||
|
@define-color image #575279;
|
||||||
|
@define-color progress #575279;
|
||||||
|
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 4.6 MiB After Width: | Height: | Size: 4.6 MiB |
Before Width: | Height: | Size: 263 KiB After Width: | Height: | Size: 263 KiB |
@ -1,5 +1,4 @@
|
|||||||
general {
|
general {
|
||||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
|
||||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
}
|
}
|
||||||
|
|
||||||
|