Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f176886688 | ||
|
|
0c738fdb67 | ||
|
|
526979a9f9 | ||
|
|
adab24d93f | ||
|
|
d5051c5c96 | ||
|
|
95ff240509 | ||
|
|
d6fce7ecd3 | ||
|
|
44b52eecb4 | ||
|
|
fc346fe68d | ||
|
|
0a6879e9ab | ||
|
|
e5fbdb7de0 | ||
|
|
26f42750d7 | ||
|
|
e6c2420ef4 | ||
|
|
338f34b28d | ||
|
|
6c3bef60c6 | ||
|
|
ce02d5357b | ||
|
|
113c023b3c | ||
|
|
f85d049cbd | ||
|
|
49fd73e67b | ||
|
|
16a504966c | ||
|
|
972d49978c | ||
|
|
a23f49bcaf | ||
|
|
41b6b496c1 | ||
|
|
7f945d3143 | ||
|
|
973e77cb30 | ||
|
|
d595873e47 | ||
|
|
13cc39cc68 | ||
|
|
b5ad437427 | ||
|
|
f31d3bec55 | ||
|
|
3d75bf0254 | ||
|
|
b7226e9e6b | ||
|
|
4336be911c | ||
|
|
afa4baf647 | ||
|
|
f2e76f6045 | ||
|
|
5221986db5 | ||
|
|
edd8af5c36 | ||
|
|
d4b0465130 | ||
|
|
1841fb7ba9 | ||
|
|
54473c0440 | ||
|
|
e0ec9425fb | ||
|
|
31f116a202 | ||
|
|
43169fa507 | ||
|
|
c2b5c2e1ad | ||
|
|
16078963fd | ||
|
|
900d4c0c29 | ||
|
|
488887a276 | ||
|
|
6e0bacd4f6 | ||
|
|
6304aea7d5 | ||
|
|
8f1a563bf0 | ||
|
|
5e1835d57a | ||
|
|
81f502a3b1 | ||
|
|
2802fc7999 | ||
|
|
17cad59b89 | ||
|
|
69e2e118b2 | ||
|
|
d56e32eb82 | ||
|
|
2f595ae7f6 | ||
|
|
f515d7b616 | ||
|
|
097cd4f43f | ||
|
|
2ec2da73b3 | ||
|
|
45bea3effa | ||
|
|
a5cff60489 | ||
|
|
93ca44f1ad | ||
|
|
3b4a5a5ff1 | ||
|
|
498fd92a12 | ||
|
|
c375c92d6f | ||
|
|
b84745d88a | ||
|
|
afdc595f1b | ||
|
|
e00c9635cd | ||
|
|
6fa297d705 | ||
|
|
363b349915 | ||
|
|
99e132b989 | ||
|
|
565d99a103 | ||
|
|
932ce5aa6e | ||
|
|
1748e42b4d | ||
|
|
150616996f | ||
|
|
004702f450 | ||
|
|
4fea3df1cd | ||
|
|
d1cdc5d648 | ||
|
|
478a02e483 | ||
|
|
477d486818 | ||
|
|
5c860b4c89 | ||
|
|
84e8646802 | ||
|
|
55bf15494a | ||
|
|
d9bdf7e748 | ||
|
|
001a9b14e9 | ||
|
|
05f91083dc | ||
|
|
27646d04c5 | ||
|
|
e1e9431555 | ||
|
|
171bbc50df | ||
|
|
314c642857 | ||
|
|
c3ac8c64a8 | ||
|
|
16f0558315 | ||
|
|
350f0e2be0 | ||
|
|
efc6157a48 | ||
|
|
72fca9a386 | ||
|
|
176a8671f4 | ||
|
|
735eaa9fcb | ||
|
|
93964f35fd | ||
|
|
8c80af8bb4 | ||
|
|
621ffd5b70 | ||
|
|
b6f81adc5d | ||
|
|
cfb1f1c047 | ||
|
|
1e12fa0dde | ||
|
|
e99f976b65 | ||
|
|
a86d7b405b | ||
|
|
40a5a58e49 | ||
|
|
32bcdb5b3f | ||
|
|
3d84b89e9a | ||
|
|
207732dae4 | ||
|
|
ec9914bdd8 | ||
|
|
81fdf76484 | ||
|
|
bbfa43dde9 | ||
|
|
77e1addb79 | ||
|
|
7bc0591f27 | ||
|
|
cb19006150 | ||
|
|
90ad0e5667 | ||
|
|
3bbbd148a0 | ||
|
|
87fc11d2dd | ||
|
|
53ad524aff | ||
|
|
0806192575 | ||
|
|
6032c57720 | ||
|
|
b7a46d3e25 | ||
|
|
2e813c99f0 | ||
|
|
98f9c6905b | ||
|
|
e03fd1873c | ||
|
|
a620ab6b3e | ||
|
|
0828e88abd | ||
|
|
5371e8dfc2 | ||
|
|
181e2ab7cc | ||
|
|
bf967e3441 | ||
|
|
41a2d95a3b | ||
|
|
a760eba53a | ||
|
|
4ee14513e8 | ||
|
|
7093c2651b | ||
|
|
5da5231276 | ||
|
|
7cbb584d37 | ||
|
|
36ed47bf73 | ||
|
|
1ee73645e1 | ||
|
|
be8b15c1a0 | ||
|
|
1b36fb7b1b | ||
|
|
55f7feea4f | ||
|
|
9b12ae080e | ||
|
|
32a6c0326d | ||
|
|
a2e12e02cc | ||
|
|
c10f12bf71 | ||
|
|
899301889b | ||
|
|
1e8ec3ff14 | ||
|
|
325eacb0cc | ||
|
|
4539e17b07 | ||
|
|
3236e20add | ||
|
|
7c2c3cc12d | ||
|
|
1e3a95c99a | ||
|
|
bd59b5e2a1 | ||
|
|
f0761aed82 | ||
|
|
2e70df898a | ||
|
|
198578784a | ||
|
|
39d5de6c82 | ||
|
|
3cad6da6c9 | ||
|
|
31806accea | ||
|
|
71979b7975 | ||
|
|
7254ff2796 | ||
|
|
f19d8db9da | ||
|
|
d6c2fde672 | ||
|
|
6c5b29a35b | ||
|
|
ea03b1cdb7 | ||
|
|
859d1a12d8 | ||
|
|
5c0a5028fe | ||
|
|
60f2229b42 | ||
|
|
534656ce9f | ||
|
|
594543bc7d | ||
|
|
17690a3cc7 | ||
|
|
04ac911a5f | ||
|
|
f4dd412733 | ||
|
|
d0323714b4 | ||
|
|
ffa3ecafd2 | ||
|
|
171c3a1a6a | ||
|
|
8cd2a50eda | ||
|
|
66c69a874a | ||
|
|
adfea0620e | ||
|
|
302069f938 | ||
|
|
2bbd4cf404 | ||
|
|
04b3c75d03 | ||
|
|
8f238013a4 | ||
|
|
024b6576f7 | ||
|
|
c59332a910 | ||
|
|
de456d061d | ||
|
|
796c4c3f39 | ||
|
|
f291d00c3e | ||
|
|
e8a1ffa19d | ||
|
|
60515b8486 | ||
|
|
2b44d0d20d | ||
|
|
44933108ce | ||
|
|
0de2d15a15 | ||
|
|
ed1c0d9ce5 | ||
|
|
c179958abf | ||
|
|
f1e2f2605c | ||
|
|
0c8cfa3222 | ||
|
|
3f74bfb960 | ||
|
|
4eaf9f7b53 | ||
|
|
1a051b9e17 | ||
|
|
8c10acf039 | ||
|
|
79193eaade | ||
|
|
62d62dee15 | ||
|
|
19e01fc42b | ||
|
|
8056a3ca34 | ||
|
|
1a96bc81d5 | ||
|
|
4ecab902c6 | ||
|
|
794be97b6c | ||
|
|
823e68c066 | ||
|
|
c7be4381ed | ||
|
|
7d51eaf779 | ||
|
|
7ce7c7ef3e | ||
|
|
8c4c25cbeb | ||
|
|
51c5fc1654 | ||
|
|
b96d97b70a | ||
|
|
001527ba1c | ||
|
|
b4e291cc74 | ||
|
|
1350de4dd5 | ||
|
|
4064cfc99c | ||
|
|
c5613a3377 | ||
|
|
688415017c | ||
|
|
75501d5ce0 | ||
|
|
472ff20131 | ||
|
|
b6a88b123a | ||
|
|
30505651f4 | ||
|
|
dfa91f0107 | ||
|
|
c6139fd816 | ||
|
|
c2746d99d9 | ||
|
|
0632b6b733 | ||
|
|
9cbd58d3c0 | ||
|
|
239fe10a3c | ||
|
|
6bc2f993d0 | ||
|
|
ff66140958 | ||
|
|
fbc1cc87ea | ||
|
|
641073201c | ||
|
|
93476ecd9d | ||
|
|
3fcda93405 | ||
|
|
bccabee855 | ||
|
|
4047c73d60 | ||
|
|
1bca430e8e | ||
|
|
bca185beaa | ||
|
|
ea9b6b9dc3 | ||
|
|
6e3535fb6c | ||
|
|
5a80ddea9d | ||
|
|
f3cc851979 | ||
|
|
1fe8a3bc7a | ||
|
|
b115ed73ff | ||
|
|
0446079d43 | ||
|
|
865d51582f | ||
|
|
017d27678f | ||
|
|
984362208d | ||
|
|
c3f9b8605b | ||
|
|
a3322b9b47 | ||
|
|
39b540ea20 | ||
|
|
16eb1b7915 | ||
|
|
0c4626c6e1 | ||
|
|
cc59007368 | ||
|
|
6ecf2bbb07 | ||
|
|
a2804a54a7 | ||
|
|
2741a595d0 | ||
|
|
97aa0af0a7 | ||
|
|
008df7b755 | ||
|
|
091e5bb040 | ||
|
|
49f8e87141 | ||
|
|
32b5202898 | ||
|
|
3398dd1588 | ||
|
|
1ff9107fe9 | ||
|
|
bf9e9a6f33 | ||
|
|
dbf9df8b31 | ||
|
|
ebdb149999 | ||
|
|
cc53ed0679 | ||
|
|
202a28bd7f | ||
|
|
d65e517dee | ||
|
|
4f55f5817f | ||
|
|
88451354aa | ||
|
|
b0ed32719e | ||
|
|
087b58e230 | ||
|
|
02e1336fe0 | ||
|
|
69c858fb65 | ||
|
|
6ef4bdae25 | ||
|
|
4c229fac9a | ||
|
|
c6d5376f43 | ||
|
|
98d89679b5 | ||
|
|
9104834d7f | ||
|
|
30913d6938 | ||
|
|
6f99f143c6 | ||
|
|
fec8e9fb96 | ||
|
|
d7aabb2599 | ||
|
|
e68481dece | ||
|
|
01c90fa16d | ||
|
|
c6ee368c6f | ||
|
|
950df3d84c | ||
|
|
ede46d7ef4 | ||
|
|
37a55e74b6 | ||
|
|
05720f7ee6 | ||
|
|
5db0a8965a | ||
|
|
65b334cc99 | ||
|
|
67584262d5 | ||
|
|
91d5a3101f | ||
|
|
ce7fc3ba27 | ||
|
|
0dd9f9b74d | ||
|
|
3acfb56e52 | ||
|
|
c599054e50 | ||
|
|
0c12a540d3 | ||
|
|
6afddd30ed | ||
|
|
42d3c5d8f9 | ||
|
|
f6564b4b75 | ||
|
|
ff2c592c8d | ||
|
|
7da7e49d9e | ||
|
|
878c084eab | ||
|
|
a83fde0282 | ||
|
|
515292ef95 | ||
|
|
91d497ff07 | ||
|
|
d82c423eb9 | ||
|
|
68436e2b26 | ||
|
|
6418e82a54 | ||
|
|
bc72d070fa | ||
|
|
cc5a6e7d4c | ||
|
|
b67525df47 | ||
|
|
846583599f | ||
|
|
46a5b072e1 | ||
|
|
8e096f83e2 | ||
|
|
e70c440de0 | ||
|
|
ad8b401fc4 | ||
|
|
ea26ad635b | ||
|
|
ca85294d10 | ||
|
|
957eaaa77d | ||
|
|
056f8179ca | ||
|
|
e8df6aa245 | ||
|
|
a10107f4ff | ||
|
|
36f3e944be | ||
|
|
bf73eca7be | ||
|
|
746f764953 | ||
|
|
6dcc6f951c | ||
|
|
ba2f805b5f | ||
|
|
ed8c75ee82 | ||
|
|
e127983f13 | ||
|
|
526f27d930 | ||
|
|
ab573d476d | ||
|
|
fea911b0bb | ||
|
|
15da4d2371 | ||
|
|
d2f055f39e |
@@ -19,15 +19,16 @@ export EDITOR=nvim
|
||||
# -----------------------------------------------------
|
||||
# ALIASES
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias c='clear'
|
||||
alias nf='neofetch'
|
||||
alias pf='pfetch'
|
||||
alias nf='fastfetch'
|
||||
alias pf='fastfetch'
|
||||
alias ff='fastfetch'
|
||||
alias ls='eza -a --icons'
|
||||
alias ll='eza -al --icons'
|
||||
alias lt='eza -a --tree --level=1 --icons'
|
||||
alias shutdown='systemctl poweroff'
|
||||
alias v='$EDITOR'
|
||||
alias vim='$EDITOR'
|
||||
alias ts='~/dotfiles/scripts/snapshot.sh'
|
||||
alias matrix='cmatrix'
|
||||
alias wifi='nmtui'
|
||||
@@ -36,7 +37,17 @@ alias rw='~/dotfiles/waybar/reload.sh'
|
||||
alias winclass="xprop | grep 'CLASS'"
|
||||
alias dot="cd ~/dotfiles"
|
||||
alias cleanup='~/dotfiles/scripts/cleanup.sh'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# ML4W Apps
|
||||
# -----------------------------------------------------
|
||||
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
|
||||
alias ml4w-settings='~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage'
|
||||
alias ml4w-sidebar='~/dotfiles/eww/ml4w-sidebar/launch.sh'
|
||||
alias ml4w-hyprland='~/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage'
|
||||
alias ml4w-diagnosis='~/dotfiles/hypr/scripts/diagnosis.sh'
|
||||
alias ml4w-hyprland-diagnosis='~/dotfiles/hypr/scripts/diagnosis.sh'
|
||||
alias ml4w-qtile-diagnosis='~/dotfiles/qtile/scripts/diagnosis.sh'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Window Managers
|
||||
@@ -48,7 +59,6 @@ alias Qtile='startx'
|
||||
# -----------------------------------------------------
|
||||
# GIT
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias gs="git status"
|
||||
alias ga="git add"
|
||||
alias gc="git commit -m"
|
||||
@@ -57,11 +67,11 @@ alias gpl="git pull"
|
||||
alias gst="git stash"
|
||||
alias gsp="git stash; git pull"
|
||||
alias gcheck="git checkout"
|
||||
alias gcredential="git config credential.helper store"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# SCRIPTS
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias gr='python ~/dotfiles/scripts/growthrate.py'
|
||||
alias ChatGPT='python ~/mychatgpt/mychatgpt.py'
|
||||
alias chat='python ~/mychatgpt/mychatgpt.py'
|
||||
@@ -70,16 +80,12 @@ alias ascii='~/dotfiles/scripts/figlet.sh'
|
||||
# -----------------------------------------------------
|
||||
# VIRTUAL MACHINE
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias vm='~/private/launchvm.sh'
|
||||
alias lg='~/dotfiles/scripts/looking-glass.sh'
|
||||
alias vmstart='virsh --connect qemu:///system start win11'
|
||||
alias vmstop='virsh --connect qemu:///system destroy win11'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# EDIT CONFIG FILES
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias confq='$EDITOR ~/dotfiles/qtile/config.py'
|
||||
alias confp='$EDITOR ~/dotfiles/picom/picom.conf'
|
||||
alias confb='$EDITOR ~/dotfiles/.bashrc'
|
||||
@@ -87,13 +93,11 @@ alias confb='$EDITOR ~/dotfiles/.bashrc'
|
||||
# -----------------------------------------------------
|
||||
# EDIT NOTES
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias notes='$EDITOR ~/notes.txt'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# SYSTEM
|
||||
# -----------------------------------------------------
|
||||
|
||||
alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg'
|
||||
alias setkb='setxkbmap de;echo "Keyboard set back to de."'
|
||||
|
||||
@@ -107,6 +111,11 @@ alias res2='xrandr --output DisplayPort-0 --mode 1920x1080 --rate 120'
|
||||
|
||||
export PATH="/usr/lib/ccache/bin/:$PATH"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# DEVELOPMENT
|
||||
# -----------------------------------------------------
|
||||
alias dotsync="~/dotfiles-versions/dotfiles/.dev/sync.sh dotfiles"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# START STARSHIP
|
||||
# -----------------------------------------------------
|
||||
@@ -118,12 +127,12 @@ eval "$(starship init bash)"
|
||||
cat ~/.cache/wal/sequences
|
||||
|
||||
# -----------------------------------------------------
|
||||
# PFETCH if on wm
|
||||
# Fastfetch if on wm
|
||||
# -----------------------------------------------------
|
||||
echo ""
|
||||
if [[ $(tty) == *"pts"* ]]; then
|
||||
pfetch
|
||||
fastfetch --config examples/13
|
||||
else
|
||||
echo
|
||||
if [ -f /bin/qtile ]; then
|
||||
echo "Start Qtile X11 with command Qtile"
|
||||
fi
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
if [ ! -z $1 ] ;then
|
||||
if [ -d ~/dotfiles-versions/"$1" ] ;then
|
||||
echo "Folder exists. Start rsync now ..."
|
||||
rsync -avhp -I --exclude-from=excludes.txt ~/dotfiles-versions/$1/ ~/dotfiles
|
||||
rsync -avhp -I --exclude-from=$HOME/dotfiles-versions/$1/.dev/excludes.txt ~/dotfiles-versions/$1/ ~/dotfiles
|
||||
else
|
||||
echo "Folder ~/dotfiles-versions/$1 not found."
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Apps Installation
|
||||
# ------------------------------------------------------
|
||||
|
||||
echo -e "${GREEN}"
|
||||
figlet "ML4W Apps"
|
||||
echo -e "${NONE}"
|
||||
|
||||
if [ ! -d $HOME/.local/share/applications/ ] ;then
|
||||
mkdir $HOME/.local/share/applications
|
||||
echo ":: $HOME/.local/share/applications created"
|
||||
fi
|
||||
|
||||
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-welcome.desktop
|
||||
cp $HOME/dotfiles/apps/ml4w-welcome.desktop $HOME/.local/share/applications
|
||||
echo ":: ML4W Welcome App installed successfully"
|
||||
|
||||
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop
|
||||
cp $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop $HOME/.local/share/applications
|
||||
echo ":: ML4W Dotfiles Settings App installed successfully"
|
||||
|
||||
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-hyprland-settings.desktop
|
||||
cp $HOME/dotfiles/apps/ml4w-hyprland-settings.desktop $HOME/.local/share/applications
|
||||
echo ":: ML4W Hyprland Settings App installed successfully"
|
||||
echo
|
||||
if [ -f ~/.config/ml4w-hyprland-settings/hyprctl.sh ] ;then
|
||||
echo ":: Starting restore from ML4W Hyprland Settings App"
|
||||
~/.config/ml4w-hyprland-settings/hyprctl.sh
|
||||
fi
|
||||
echo
|
||||
@@ -3,43 +3,167 @@
|
||||
# ------------------------------------------------------
|
||||
|
||||
datets=$(date '+%Y%m%d%H%M%S')
|
||||
if [ -d ~/dotfiles ] || [ -f ~/.bashrc ]; then
|
||||
echo -e "${GREEN}"
|
||||
figlet "Backup"
|
||||
echo -e "${NONE}"
|
||||
if [ -d ~/dotfiles ]; then
|
||||
echo ":: The script has detected an existing dotfiles folder and will try to create a backup into the folder:"
|
||||
echo " ~/dotfiles-versions/backups/$datets"
|
||||
fi
|
||||
if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
|
||||
echo ":: The script has detected an existing .bashrc file and will try to create a backup to:"
|
||||
echo " ~/dotfiles-versions/backups/$datets/.bashrc-old"
|
||||
fi
|
||||
if gum confirm "Do you want to create a backup?" ;then
|
||||
|
||||
# Create Backup File Structure
|
||||
|
||||
if [ ! -d ~/dotfiles-versions ]; then
|
||||
mkdir ~/dotfiles-versions
|
||||
echo "~/dotfiles-versions created."
|
||||
fi
|
||||
if [ ! -d ~/dotfiles-versions/backups ]; then
|
||||
mkdir ~/dotfiles-versions/backups
|
||||
echo "~/dotfiles-versions/backups created"
|
||||
if [ ! -d ~/dotfiles-versions/backup ]; then
|
||||
mkdir ~/dotfiles-versions/backup
|
||||
echo "~/dotfiles-versions/backup created"
|
||||
fi
|
||||
if [ -d ~/dotfiles-versions/backups ]; then
|
||||
mv ~/dotfiles-versions/backups ~/dotfiles-versions/archive
|
||||
echo ":: Existing backups moved into ~/dotfiles-versions/archive"
|
||||
fi
|
||||
if [ ! -d ~/dotfiles-versions/archive ]; then
|
||||
mkdir ~/dotfiles-versions/archive
|
||||
echo "~/dotfiles-versions/archive created"
|
||||
fi
|
||||
|
||||
# Backup Existing Dotfiles
|
||||
|
||||
if [ -d ~/dotfiles ] || ! test -L ~/.bashrc || [ -d ~/.config/hypr ] || [ -d ~/.config/qtile ]; then
|
||||
|
||||
echo -e "${GREEN}"
|
||||
figlet "Backup"
|
||||
echo -e "${NONE}"
|
||||
echo "The script has detected the following files and folders for a backup:"
|
||||
|
||||
if [ -d ~/dotfiles ]; then
|
||||
echo " - $HOME/dotfiles"
|
||||
fi
|
||||
if ! test -L ~/.bashrc ;then
|
||||
echo " - $HOME/.bashrc"
|
||||
fi
|
||||
if ! test -L ~/.config/qtile && [ -d ~/.config/qtile ] ;then
|
||||
echo " - $HOME/.config/qtile/"
|
||||
fi
|
||||
if ! test -L ~/.config/hypr && [ -d ~/.config/hypr ] ;then
|
||||
echo " - $HOME/.config/hypr/"
|
||||
fi
|
||||
if ! test -L ~/.config/ml4w-hyprland-settings && [ -d ~/.config/ml4w-hyprland-settings ] ;then
|
||||
echo " - $HOME/.config/ml4w-hyprland-settings/"
|
||||
fi
|
||||
if ! test -L ~/.config/rofi && [ -d ~/.config/rofi ] ;then
|
||||
echo " - $HOME/.config/rofi/"
|
||||
fi
|
||||
if ! test -L ~/.config/wal && [ -d ~/.config/wal ] ;then
|
||||
echo " - $HOME/.config/wal/"
|
||||
fi
|
||||
if ! test -L ~/.config/waybar && [ -d ~/.config/waybar ] ;then
|
||||
echo " - $HOME/.config/waybar/"
|
||||
fi
|
||||
if ! test -L ~/.config/wlogout && [ -d ~/.config/wlogout ] ;then
|
||||
echo " - $HOME/.config/wlogout/"
|
||||
fi
|
||||
if ! test -L ~/.config/alacritty && [ -d ~/.config/alacritty ] ;then
|
||||
echo " - $HOME/.config/alacritty/"
|
||||
fi
|
||||
if ! test -L ~/.config/starship && [ -d ~/.config/starship ] ;then
|
||||
echo " - $HOME/.config/starship/"
|
||||
fi
|
||||
if ! test -L ~/.config/picom && [ -d ~/.config/picom ] ;then
|
||||
echo " - $HOME/.config/picom/"
|
||||
fi
|
||||
if ! test -L ~/.config/nvim && [ -d ~/.config/nvim ] ;then
|
||||
echo " - $HOME/.config/nvim/"
|
||||
fi
|
||||
if ! test -L ~/.config/vim && [ -d ~/.config/vim ] ;then
|
||||
echo " - $HOME/.config/vim/"
|
||||
fi
|
||||
if ! test -L ~/.config/dunst && [ -d ~/.config/dunst ] ;then
|
||||
echo " - $HOME/.config/dunst/"
|
||||
fi
|
||||
if ! test -L ~/.config/swappy && [ -d ~/.config/swappy ] ;then
|
||||
echo " - $HOME/.config/swappy/"
|
||||
fi
|
||||
echo
|
||||
# Start Backup
|
||||
|
||||
if gum confirm "Do you want to create a backup?" ;then
|
||||
|
||||
if [ ! -z "$(ls -A ~/dotfiles-versions/backup)" ] ;then
|
||||
if gum confirm "Do you want to archive the existing backup?" ;then
|
||||
rsync -a ~/dotfiles-versions/backup/ ~/dotfiles-versions/archive/$datets/
|
||||
echo ":: Current backup archived in ~/dotfiles-versions/archive/$datets"
|
||||
fi
|
||||
if [ ! -d ~/dotfiles-versions/backups/$datets ]; then
|
||||
mkdir ~/dotfiles-versions/backups/$datets
|
||||
echo "~/dotfiles-versions/backups/$datets created"
|
||||
fi
|
||||
if [ -d ~/dotfiles ]; then
|
||||
rsync -a ~/dotfiles/ ~/dotfiles-versions/backups/$datets/
|
||||
echo ":: Backup of your current dotfiles in ~/dotfiles-versions/backups/$datets created."
|
||||
rsync -a ~/dotfiles ~/dotfiles-versions/backup/
|
||||
echo ":: Backup of $HOME/dotfiles created in ~/dotfiles-versions/backup"
|
||||
fi
|
||||
if [ -f ~/.bashrc ]; then
|
||||
cp ~/.bashrc ~/dotfiles-versions/backups/$datets/.bashrc-old
|
||||
echo ":: Existing .bashrc file found in homefolder. .bashrc-old created"
|
||||
if ! test -L ~/.bashrc ;then
|
||||
cp ~/.bashrc ~/dotfiles-versions/backup
|
||||
echo ":: Backup of $HOME/.bashrc created in ~/dotfiles-versions/backup"
|
||||
fi
|
||||
if [ ! -d ~/dotfiles-versions/backup/config ] ;then
|
||||
mkdir ~/dotfiles-versions/backup/config
|
||||
fi
|
||||
if ! test -L ~/.config/qtile && [ -d ~/.config/qtile ] ;then
|
||||
cp -r ~/.config/qtile ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/qtile created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/hypr && [ -d ~/.config/hypr ] ;then
|
||||
cp -r ~/.config/hypr ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/hypr created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/ml4w-hyprland-settings && [ -d ~/.config/ml4w-hyprland-settings ] ;then
|
||||
cp -r ~/.config/ml4w-hyprland-settings ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/ml4w-hyprland-settings created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/qtile && [ -d ~/.config/rofi ] ;then
|
||||
cp -r ~/.config/rofi ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/rofi created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/wal && [ -d ~/.config/wal ] ;then
|
||||
cp -r ~/.config/wal ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/wal created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/waybar && [ -d ~/.config/waybar ] ;then
|
||||
cp -r ~/.config/waybar ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/waybar created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/wlogout && [ -d ~/.config/wlogout ] ;then
|
||||
cp -r ~/.config/wlogout ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/wlogout created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/alacritty && [ -d ~/.config/alacritty ] ;then
|
||||
cp -r ~/.config/alacritty ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/alacritty created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/starship && [ -d ~/.config/starship ] ;then
|
||||
cp -r ~/.config/starship ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/starship created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/picom && [ -d ~/.config/picom ] ;then
|
||||
cp -r ~/.config/picom ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/picom created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/nvim && [ -d ~/.config/nvim ] ;then
|
||||
cp -r ~/.config/nvim ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/nvim created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/vim && [ -d ~/.config/vim ] ;then
|
||||
cp -r ~/.config/vim ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/vim created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/dunst && [ -d ~/.config/dunst ] ;then
|
||||
cp -r ~/.config/dunst ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/dunst created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
if ! test -L ~/.config/swappy && [ -d ~/.config/swappy ] ;then
|
||||
cp -r ~/.config/swappy ~/dotfiles-versions/backup/config
|
||||
echo ":: Backup of $HOME/.config/swappy created in ~/dotfiles-versions/backup/config/"
|
||||
fi
|
||||
elif [ $? -eq 130 ]; then
|
||||
exit 130
|
||||
else
|
||||
echo ":: Backup skipped."
|
||||
fi
|
||||
echo ""
|
||||
else
|
||||
echo ":: Nothing to backup"
|
||||
fi
|
||||
echo
|
||||
@@ -11,8 +11,9 @@ fi
|
||||
if [ -f ~/dotfiles-versions/backups/$datets/.bashrc-old ]; then
|
||||
echo "Backup is already available here ~/dotfiles-versions/backups/$datets/.bashrc-old"
|
||||
fi
|
||||
echo
|
||||
if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
|
||||
bash_confirm="Do you want to replace your existing .bashrc file with the dotfiles .bashrc file?"
|
||||
bash_confirm="Do you want to replace your existing .bashrc file with the ML4W dotfiles .bashrc file?"
|
||||
if gum confirm "$bash_confirm" ;then
|
||||
rm ~/.bashrc
|
||||
_installSymLink .bashrc ~/.bashrc ~/dotfiles/.bashrc ~/.bashrc
|
||||
@@ -22,7 +23,7 @@ if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
|
||||
echo "Installation of the .bashrc file skipped."
|
||||
fi
|
||||
else
|
||||
bash_confirm="Do you want to install the dotfiles .bashrc file now?"
|
||||
bash_confirm="Do you want to install the ML4W dotfiles .bashrc file now?"
|
||||
if gum confirm "$bash_confirm" ;then
|
||||
if [ -L ~/.bashrc ] || [ -f ~/.bashrc ]; then
|
||||
rm ~/.bashrc
|
||||
|
||||
@@ -15,30 +15,40 @@ fi
|
||||
|
||||
# Check for running NetworkManager.service
|
||||
if [[ $(systemctl list-units --all -t service --full --no-legend "NetworkManager.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "NetworkManager.service" ]];then
|
||||
echo "NetworkManager.service already running."
|
||||
echo ":: NetworkManager.service already running."
|
||||
else
|
||||
sudo systemctl enable NetworkManager.service
|
||||
sudo systemctl start NetworkManager.service
|
||||
echo "NetworkManager.service activated successfully."
|
||||
echo ":: NetworkManager.service activated successfully."
|
||||
fi
|
||||
|
||||
# Check for running bluetooth.service
|
||||
if [[ $(systemctl list-units --all -t service --full --no-legend "bluetooth.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "bluetooth.service" ]];then
|
||||
echo "bluetooth.service already running."
|
||||
echo ":: bluetooth.service already running."
|
||||
else
|
||||
sudo systemctl enable bluetooth.service
|
||||
sudo systemctl start bluetooth.service
|
||||
echo "bluetooth.service activated successfully."
|
||||
echo ":: bluetooth.service activated successfully."
|
||||
fi
|
||||
|
||||
if [ -d ~/dotfiles/hypr/settings/modules/waybar/defaults ] ;then
|
||||
rm -rf ~/dotfiles/hypr/settings/modules/waybar/defaults
|
||||
echo "~/dotfiles/hypr/settings/modules/waybar/defaults removed."
|
||||
if [ -d ~/dotfiles/hypr/settings/ ] ;then
|
||||
rm -rf ~/dotfiles/hypr/settings
|
||||
echo ":: ~/dotfiles/hypr/settings removed."
|
||||
fi
|
||||
|
||||
if [ -f ~/dotfiles/.settings/eww-monitor.sh ] ;then
|
||||
if grep -q "echo" $HOME/dotfiles/.settings/eww-monitor.sh ; then
|
||||
rm ~/dotfiles/.settings/eww-monitor.sh
|
||||
echo ":: ~/dotfiles/.settings/eww-monitor.sh removed."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Replace pfetch and neofetch with fastfetch
|
||||
sed -i "s/pfetch/fastfetch/g" ~/dotfiles/.bashrc
|
||||
sed -i "s/neofetch/fastfetch/g" ~/dotfiles/.bashrc
|
||||
|
||||
# Create default folder structure
|
||||
xdg-user-dirs-update
|
||||
echo "Default folders created..."
|
||||
echo
|
||||
|
||||
echo "Cleanup done."
|
||||
echo ":: Cleanup done."
|
||||
@@ -1,11 +0,0 @@
|
||||
# ------------------------------------------------------
|
||||
# Create .config folder
|
||||
# ------------------------------------------------------
|
||||
|
||||
if [ -d ~/.config ]; then
|
||||
echo ".config folder already exists."
|
||||
else
|
||||
mkdir ~/.config
|
||||
echo ".config folder created."
|
||||
fi
|
||||
echo ""
|
||||
@@ -2,9 +2,6 @@
|
||||
# Confirm Start
|
||||
# ------------------------------------------------------
|
||||
|
||||
echo "IMPORTANT: Please make sure that your system and your packages are up to date (sudo pacman -Syu or yay)."
|
||||
echo "You can cancel the installation at any time with CTRL + C"
|
||||
echo "If you have already installed a window manager like sway, please backup your .config folder."
|
||||
SCRIPT=$(realpath "$0")
|
||||
SCRIPTPATH=$(dirname "$SCRIPT")
|
||||
if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
|
||||
@@ -17,21 +14,23 @@ if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
|
||||
fi
|
||||
fi
|
||||
if [ ! -d ~/dotfiles ];then
|
||||
if gum confirm "DO YOU WANT TO START THE INSTALLATION NOW?" ;then
|
||||
if gum confirm "DO YOU WANT TO START THE INSTALLATION OF THE ML4W DOTFILES NOW?" ;then
|
||||
echo "Installation started."
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
echo "Installation canceled."
|
||||
echo ":: Installation canceled."
|
||||
exit;
|
||||
fi
|
||||
else
|
||||
if gum confirm "DO YOU WANT TO START THE UPDATE NOW?" ;then
|
||||
echo "Update started."
|
||||
if gum confirm "DO YOU WANT TO START THE UPDATE OF YOUR ML4W DOTFILES NOW?" ;then
|
||||
echo ":: Update started."
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Update canceled."
|
||||
exit 130
|
||||
else
|
||||
echo "Update canceled."
|
||||
echo ":: Update canceled."
|
||||
exit;
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -13,22 +13,23 @@ fi
|
||||
if [ ! -d ~/dotfiles ]; then
|
||||
echo "The script will now remove existing directories and files from ~/.config/"
|
||||
echo "and copy your prepared configuration from ~/dotfiles-versions/$version to ~/dotfiles"
|
||||
echo ""
|
||||
echo
|
||||
echo "Symbolic links will then be created from ~/dotfiles into your ~/.config/ directory."
|
||||
echo ""
|
||||
echo
|
||||
fi
|
||||
if [[ ! $(tty) == *"pts"* ]] && [ -d ~/dotfiles ]; then
|
||||
echo "You're running the script in tty. You can delete the existing ~/dotfiles folder now for a clean installation."
|
||||
echo "If not, the script will overwrite existing files but will not remove additional files or folders of your custom configuration."
|
||||
echo ""
|
||||
echo
|
||||
else
|
||||
if [ -d ~/dotfiles ]; then
|
||||
echo "The script will overwrite existing files but will not remove additional files or folders from your custom configuration."
|
||||
echo
|
||||
fi
|
||||
fi
|
||||
if [ ! -d ~/dotfiles ]; then
|
||||
echo "PLEASE BACKUP YOUR EXISTING CONFIGURATIONS in .config IF NEEDED!"
|
||||
echo ""
|
||||
echo
|
||||
fi
|
||||
|
||||
if gum confirm "Do you want to install the prepared dotfiles now?" ;then
|
||||
@@ -50,8 +51,10 @@ if gum confirm "Do you want to install the prepared dotfiles now?" ;then
|
||||
echo "Skipped: DEV MODE!"
|
||||
fi
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled"
|
||||
exit 130
|
||||
else
|
||||
echo ":: Installation canceled"
|
||||
exit
|
||||
fi
|
||||
echo ""
|
||||
echo
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
echo -e "${GREEN}"
|
||||
figlet "System check"
|
||||
echo -e "${NONE}"
|
||||
|
||||
echo "The system check will test that essential packages and "
|
||||
echo "execution commands are available now on your system."
|
||||
echo
|
||||
if gum confirm "Do you want to run a short system check?" ;then
|
||||
|
||||
_folderExists "$HOME/dotfiles" "Please repeat the installation."
|
||||
_commandExists "rofi" "rofi-wayland"
|
||||
_commandExists "dunst" "dunst"
|
||||
_commandExists "waybar" "waybar"
|
||||
_commandExists "hyprpaper" "hyprpaper"
|
||||
_commandExists "hyprlock" "hyprpaper"
|
||||
_commandExists "hypridle" "hyprpaper"
|
||||
_commandExists "wal" "python-pywal"
|
||||
_commandExists "gum" "gum"
|
||||
_commandExists "wlogout" "wlogout"
|
||||
_commandExists "eww" "eww"
|
||||
_commandExists "magick" "imagemagick"
|
||||
|
||||
elif [ $? -eq 130 ]; then
|
||||
exit 130
|
||||
else
|
||||
echo ":: System check skipped"
|
||||
fi
|
||||
echo ""
|
||||
@@ -2,12 +2,13 @@
|
||||
# Disable display manager
|
||||
# ------------------------------------------------------
|
||||
disman=0
|
||||
profile="Hyprland"
|
||||
echo -e "${GREEN}"
|
||||
figlet "Display Manager"
|
||||
echo -e "${NONE}"
|
||||
if [[ $profile == *"Hyprland"* ]]; then
|
||||
echo "IMPORTANT: Starting Hyprland works from tty (terminal) with command Hyprland (recommended)."
|
||||
echo "or you can try the display manager SDDM (> 0.20.0 already installed) or the latest git version (yay -S sddm-git)."
|
||||
echo "or you can try the display manager SDDM (> 0.20.0 already installed) or the latest git version (yay -S sddm)."
|
||||
echo "Please check: https://wiki.hyprland.org/hyprland-wiki/pages/Getting-Started/Master-Tutorial/#launching-hyprland"
|
||||
echo "Login with other display managers could fail and could have negative side effects on some devices."
|
||||
echo "If you have issues with SDDM or other display managers, you can deactivate the display manager"
|
||||
@@ -29,69 +30,95 @@ if [ ! -d ~/dotfiles ];then
|
||||
if [ -f /etc/systemd/system/display-manager.service ]; then
|
||||
disman=0
|
||||
echo "You have already installed a display manager on your system."
|
||||
echo "How do you want to proceed? (ESC = Keep current setup)"
|
||||
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm-git")
|
||||
echo "How do you want to proceed?"
|
||||
echo
|
||||
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme")
|
||||
else
|
||||
disman=1
|
||||
echo "There is no display manager installed on your system."
|
||||
echo "After the installation/update of the dotfiles, you can start Hyprland with command Hyprland and Qtile with commmand Qtile (or startx)."
|
||||
echo "How do you want to proceed? (ESC = Keep current setup)"
|
||||
dmsel=$(gum choose "Keep current setup" "Install sddm-git")
|
||||
echo "How do you want to proceed?"
|
||||
echo
|
||||
dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
|
||||
fi
|
||||
else
|
||||
if [ -f /etc/systemd/system/display-manager.service ]; then
|
||||
disman=0
|
||||
echo "You have already installed a display manager. If your display manager is working fine, you can keep the current setup."
|
||||
echo "How do you want to proceed? (ESC = Keep current setup)"
|
||||
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm-git")
|
||||
echo "How do you want to proceed?"
|
||||
echo
|
||||
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme")
|
||||
else
|
||||
disman=1
|
||||
echo "There is no display manager installed on your system. You're starting Hyprland/Qtile with commands on tty."
|
||||
echo "How do you want to proceed? (ESC = Keep current setup)"
|
||||
dmsel=$(gum choose "Keep current setup" "Install sddm-git")
|
||||
echo "How do you want to proceed?"
|
||||
echo
|
||||
dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$dmsel" == "Install sddm-git" ] ;then
|
||||
if [ -z "${dmsel}" ] ;then
|
||||
echo ":: Installation canceled."
|
||||
exit
|
||||
fi
|
||||
if [ "$dmsel" == "Install sddm and theme" ] ;then
|
||||
|
||||
disman=0
|
||||
# Try to force the installation of sddm-git
|
||||
echo "Install sddm-git"
|
||||
yay -S --noconfirm sddm-git sddm-sugar-candy-git --ask 4
|
||||
# Try to force the installation of sddm
|
||||
echo ":: Install sddm"
|
||||
yay -S --noconfirm sddm --ask 4
|
||||
|
||||
# Enable sddm
|
||||
if [ -f /etc/systemd/system/display-manager.service ]; then
|
||||
sudo rm /etc/systemd/system/display-manager.service
|
||||
fi
|
||||
sudo systemctl enable sddm.service
|
||||
|
||||
# Create sddm.conf.d folder
|
||||
if [ ! -d /etc/sddm.conf.d/ ]; then
|
||||
sudo mkdir /etc/sddm.conf.d
|
||||
echo "Folder /etc/sddm.conf.d created."
|
||||
echo ":: Folder /etc/sddm.conf.d created."
|
||||
fi
|
||||
|
||||
# Copy sddm.conf
|
||||
sudo cp sddm/sddm.conf /etc/sddm.conf.d/
|
||||
echo "File /etc/sddm.conf.d/sddm.conf updated."
|
||||
echo ":: File /etc/sddm.conf.d/sddm.conf updated."
|
||||
|
||||
# Download and install sugar candy theme if not exists
|
||||
if [ ! -d /usr/share/sddm/themes/sugar-candy ]; then
|
||||
if [ -f ~/Downloads/sddm-sugar-candy-master.zip ] ;then
|
||||
rm ~/Downloads/sddm-sugar-candy-master.zip
|
||||
fi
|
||||
wget -P ~/Downloads/ https://framagit.org/MarianArlt/sddm-sugar-candy/-/archive/master/sddm-sugar-candy-master.zip
|
||||
if [ -f ~/Downloads/sddm-sugar-candy-master.zip ] ;then
|
||||
unzip -o -q ~/Downloads/sddm-sugar-candy-master.zip -d ~/Downloads/
|
||||
if [ ! -d /usr/share/sddm/themes/sugar-candy ] ;then
|
||||
sudo mkdir -p /usr/share/sddm/themes/sugar-candy
|
||||
fi
|
||||
sudo cp -r ~/Downloads/sddm-sugar-candy-master/* /usr/share/sddm/themes/sugar-candy
|
||||
echo ":: SDDM Sugar Candy Theme installed"
|
||||
else
|
||||
echo "ERROR: Sugar Candy Download not found"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install background wallpaper for sddm
|
||||
if [ -f /usr/share/sddm/themes/sugar-candy/theme.conf ]; then
|
||||
|
||||
# Cache file for holding the current wallpaper
|
||||
sudo cp wallpapers/default.jpg /usr/share/sddm/themes/sugar-candy/Backgrounds/current_wallpaper.jpg
|
||||
echo "Default wallpaper copied into /usr/share/sddm/themes/sugar-candy/Backgrounds/"
|
||||
|
||||
echo ":: Default wallpaper copied into /usr/share/sddm/themes/sugar-candy/Backgrounds/"
|
||||
sudo cp sddm/theme.conf /usr/share/sddm/themes/sugar-candy/
|
||||
sudo sed -i 's/CURRENTWALLPAPER/'"current_wallpaper.jpg"'/' /usr/share/sddm/themes/sugar-candy/theme.conf
|
||||
echo "File theme.conf updated in /usr/share/sddm/themes/sugar-candy/"
|
||||
|
||||
echo ":: File theme.conf updated in /usr/share/sddm/themes/sugar-candy/"
|
||||
fi
|
||||
|
||||
elif [ "$dmsel" == "Deactivate current display manager" ] ;then
|
||||
|
||||
sudo rm /etc/systemd/system/display-manager.service
|
||||
echo "Current display manager deactivated."
|
||||
echo ":: Current display manager deactivated."
|
||||
disman=1
|
||||
|
||||
elif [ "$dmsel" == "Keep current setup" ] ;then
|
||||
echo "Keep current setup."
|
||||
echo ":: sddm setup skipped."
|
||||
else
|
||||
echo "Keep current setup."
|
||||
echo ":: sddm setup skipped."
|
||||
fi
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
# ------------------------------------------------------
|
||||
# DONE
|
||||
# install fish
|
||||
# ------------------------------------------------------
|
||||
|
||||
echo -e "${GREEN}"
|
||||
figlet "Done"
|
||||
echo -e "${NONE}"
|
||||
echo "Please reboot your system!"
|
||||
echo ""
|
||||
packagesPacman=("fish");
|
||||
packagesYay=();
|
||||
source .install/install-packages.sh
|
||||
@@ -6,9 +6,13 @@ echo -e "${GREEN}"
|
||||
figlet "Hook"
|
||||
echo -e "${NONE}"
|
||||
echo ":: The script has detected a hook.sh script."
|
||||
echo
|
||||
if gum confirm "Do you want to run the script now?"; then
|
||||
source ~/dotfiles-versions/hook.sh
|
||||
echo ":: hook.sh executed!"
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
echo ":: Execution of hook.sh skipped."
|
||||
fi
|
||||
|
||||
@@ -2,16 +2,17 @@
|
||||
# Install dotfiles
|
||||
# ------------------------------------------------------
|
||||
|
||||
if [ ! $mode == "dev" ]; then
|
||||
if [ -d ~/dotfiles-versions/$version/alacritty ]; then
|
||||
_installSymLink alacritty ~/.config/alacritty ~/dotfiles/alacritty/ ~/.config
|
||||
fi
|
||||
if [ -d ~/dotfiles-versions/$version/vim ]; then
|
||||
_installSymLink vim ~/.config/vim ~/dotfiles/vim/ ~/.config
|
||||
fi
|
||||
if [ $neovim == "1" ] ;then
|
||||
if [ -d ~/dotfiles-versions/$version/nvim ]; then
|
||||
_installSymLink nvim ~/.config/nvim ~/dotfiles/nvim/ ~/.config
|
||||
fi
|
||||
fi
|
||||
if [ -d ~/dotfiles-versions/$version/starship ]; then
|
||||
_installSymLink starship ~/.config/starship.toml ~/dotfiles/starship/starship.toml ~/.config/starship.toml
|
||||
fi
|
||||
@@ -36,21 +37,11 @@ if [ ! $mode == "dev" ]; then
|
||||
if [ -d ~/dotfiles-versions/$version/swappy ]; then
|
||||
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
|
||||
fi
|
||||
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink .gtkrc-2.0 ~/.gtkrc-2.0 ~/dotfiles/gtk/.gtkrc-2.0 ~/.gtkrc-2.0
|
||||
#fi
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink .Xresources ~/.Xresources ~/dotfiles/gtk/.Xresources ~/.Xresources
|
||||
#fi
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink gtk-3.0 ~/.config/gtk-3.0 ~/dotfiles/gtk/gtk-3.0/ ~/.config/
|
||||
#fi
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink gtk-4.0 ~/.config/gtk-4.0 ~/dotfiles/gtk/gtk-4.0/ ~/.config/
|
||||
#fi
|
||||
else
|
||||
echo "Skipped: DEV MODE!"
|
||||
if [ -d ~/dotfiles-versions/$version/eww ]; then
|
||||
_installSymLink eww ~/.config/eww ~/dotfiles/eww/ ~/.config
|
||||
fi
|
||||
echo "Symbolic links created."
|
||||
echo ""
|
||||
if [ -d ~/dotfiles-versions/$version/fastfetch ]; then
|
||||
_installSymLink fastfetch ~/.config/fastfetch ~/dotfiles/fastfetch/ ~/.config
|
||||
fi
|
||||
echo ":: Symbolic links created."
|
||||
echo
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
packagesPacman=(
|
||||
"xdg-desktop-portal-hyprland"
|
||||
"waybar"
|
||||
"grim"
|
||||
"slurp"
|
||||
"swayidle"
|
||||
"swappy"
|
||||
"cliphist"
|
||||
);
|
||||
|
||||
packagesYay=(
|
||||
"swww"
|
||||
"swaylock-effects-git"
|
||||
"wlogout"
|
||||
);
|
||||
|
||||
if [[ $(_isInstalledYay "nwg-look") == 0 ]]; then
|
||||
echo ":: nwg-look is already installed."
|
||||
else
|
||||
if [[ $(_isInstalledYay "nwg-look-bin") == 0 ]]; then
|
||||
echo ":: nwg-look-bin is already installed."
|
||||
else
|
||||
echo ":: Starting installation of nwg-look-bin"
|
||||
yay --noconfirm -S nwg-look-bin
|
||||
fi
|
||||
fi
|
||||
@@ -1,61 +0,0 @@
|
||||
# ------------------------------------------------------
|
||||
# Select installation profile
|
||||
# ------------------------------------------------------
|
||||
echo -e "${GREEN}"
|
||||
figlet "Hyprland"
|
||||
echo -e "${NONE}"
|
||||
|
||||
hyprland_installed=0
|
||||
hyprlandgit_installed=0
|
||||
hyprland_package=""
|
||||
echo "Hyprland is available in two different versions: "
|
||||
echo "hyprland with the lastest official release "
|
||||
echo "hyprland-git compiled from latest source."
|
||||
echo
|
||||
echo "Check for installed hyprland package..."
|
||||
if [[ $(_isInstalledYay "hyprland-git") == 0 ]]; then
|
||||
echo "hyprland-git already installed!"
|
||||
hyprlandgit_installed=1
|
||||
elif [[ $(_isInstalledPacman "hyprland") == 0 ]]; then
|
||||
echo "hyprland already installed!"
|
||||
hyprland_installed=1
|
||||
else
|
||||
echo "hyprland NOT installed!"
|
||||
fi
|
||||
echo
|
||||
if [ $hyprland_installed == "1" ] ;then
|
||||
echo "Hyprland is already installed with the package hyprland on your system. How do you want to proceed?"
|
||||
echo "RETURN = confirm. ESC = Keep hyprland"
|
||||
hyprsel=$(gum choose "KEEP hyprland" "Replace with hyprland-git")
|
||||
if [ "$hyprsel" == "Replace with hyprland-git" ] ;then
|
||||
echo "Replace hyprland with hyprland-git."
|
||||
yay --noconfirm -R hyprland
|
||||
_forcePackagesYay "hyprland-git";
|
||||
else
|
||||
echo "Keep current hyprland installation."
|
||||
fi
|
||||
elif [ $hyprlandgit_installed == "1" ] ;then
|
||||
echo "Hyprland is already installed with the package hyprland-git on your system. How do you want to proceed?"
|
||||
echo "RETURN = confirm. ESC = Keep hyprland-git"
|
||||
hyprsel=$(gum choose "KEEP hyprland-git" "Replace with hyprland")
|
||||
if [ "$hyprsel" == "Replace with hyprland" ] ;then
|
||||
echo "Replace hyprland-git with hyprland."
|
||||
yay --noconfirm -R hyprland-git
|
||||
_forcePackagesYay "hyprland";
|
||||
else
|
||||
echo "Keep current hyprland installation."
|
||||
fi
|
||||
else
|
||||
# No hyprland found on the system
|
||||
echo "RETURN = confirm. No selection = CANCEL"
|
||||
hypr_version=$(gum choose "hyprland" "hyprland-git")
|
||||
if [ -z $hypr_version ] ;then
|
||||
echo "No profile selected. Installation canceled."
|
||||
exit
|
||||
fi
|
||||
if [ "$hypr_version" == "hyprland" ] ;then
|
||||
_installPackagesYay "hyprland";
|
||||
else
|
||||
_installPackagesYay "hyprland-git";
|
||||
fi
|
||||
fi
|
||||
@@ -1,3 +0,0 @@
|
||||
echo -e "${GREEN}"
|
||||
figlet "Hyprland"
|
||||
echo -e "${NONE}"
|
||||
@@ -7,3 +7,4 @@ README.md
|
||||
CHANGELOG
|
||||
LICENSE
|
||||
install.sh
|
||||
setup.sh
|
||||
@@ -25,7 +25,7 @@ _isInstalledPacman() {
|
||||
|
||||
_isInstalledYay() {
|
||||
package="$1";
|
||||
check="$(yay -Qs --color always "${package}" | grep "local" | grep "${package} ")";
|
||||
check="$(yay -Qs --color always "${package}" | grep "local" | grep "\." | grep "${package} ")";
|
||||
if [ -n "${check}" ] ; then
|
||||
echo 0; #'0' means 'true' in Bash
|
||||
return; #true
|
||||
@@ -273,3 +273,25 @@ _replaceLineInFile() {
|
||||
sleep 2
|
||||
fi
|
||||
}
|
||||
|
||||
# ------------------------------------------------------
|
||||
# System check
|
||||
# ------------------------------------------------------
|
||||
|
||||
_commandExists() {
|
||||
package="$1";
|
||||
if ! type $package > /dev/null 2>&1; then
|
||||
echo ":: ERROR: $package doesn't exists. Please install it with yay -S $2"
|
||||
else
|
||||
echo ":: OK: $package command found."
|
||||
fi
|
||||
}
|
||||
|
||||
_folderExists() {
|
||||
folder="$1";
|
||||
if [ ! -d $folder ]; then
|
||||
echo ":: ERROR: $folder doesn't exists. $2"
|
||||
else
|
||||
echo ":: OK: $folder found."
|
||||
fi
|
||||
}
|
||||
@@ -7,4 +7,4 @@ echo "Install only missing packages..."
|
||||
_installPackagesPacman "${packagesPacman[@]}";
|
||||
_installPackagesYay "${packagesYay[@]}";
|
||||
fi
|
||||
echo ""
|
||||
echo
|
||||
@@ -7,10 +7,11 @@ echo -e "${NONE}"
|
||||
if [ -d ~/dotfiles ] ;then
|
||||
echo "Do you want to check for new packages only (faster installation)"
|
||||
echo "or do you want to reinstall all packages again? (more robust and can help to fix issues)"
|
||||
echo
|
||||
if gum confirm "How do you want to proceed?" --affirmative "New packages only" --negative "Force reinstallation" ;then
|
||||
force_install=0
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo "Installation canceled."
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
force_install=1
|
||||
@@ -18,10 +19,11 @@ if [ -d ~/dotfiles ] ;then
|
||||
else
|
||||
echo "Do you want to reinstall all already installed packages and install the required new packages? (recommended and more robust)"
|
||||
echo "or do you want to install the new required packages only? (could be faster installation)"
|
||||
echo
|
||||
if gum confirm "How do you want to proceed?" --affirmative "Reinstall all packages" --negative "Install new packages only" ;then
|
||||
force_install=1
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo "Installation canceled."
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
force_install=0
|
||||
|
||||
@@ -6,22 +6,48 @@ echo -e "${GREEN}"
|
||||
figlet "Keyboard"
|
||||
echo -e "${NONE}"
|
||||
|
||||
setkeyboard=0
|
||||
if [ "$restored" == "1" ]; then
|
||||
echo ":: You have already restored your settings into the new installation."
|
||||
echo "You can repeat the keyboard setup again to choose between a desktop and laptop optimized configuration."
|
||||
echo
|
||||
if gum confirm "Do you want to setup your keyboard again?" ;then
|
||||
setkeyboard=0
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
echo ":: Keyboard setup skipped."
|
||||
setkeyboard=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$setkeyboard" == "0" ] ;then
|
||||
|
||||
# Default layout and variants
|
||||
keyboard_layout="us"
|
||||
keyboard_variant=""
|
||||
|
||||
_setupKeyboardLayout() {
|
||||
echo ""
|
||||
echo "Start typing = Search, RETURN = Confirm, CTRL-C = Cancel"
|
||||
keyboard_layout=$(localectl list-x11-keymap-layouts | gum filter --height 15 --placeholder "Find your keyboard layout...")
|
||||
echo ""
|
||||
echo ":: Keyboard layout changed to $keyboard_layout"
|
||||
echo ""
|
||||
_setupKeyboardVariant
|
||||
}
|
||||
|
||||
_setupKeyboardVariant() {
|
||||
if gum confirm "Do you want to set a variant of the keyboard?" ; then
|
||||
keyboard_variant=$(localectl list-x11-keymap-variants | gum filter --height 15 --placeholder "Find your keyboard layout...")
|
||||
echo ":: Keyboard variant changed to $keyboard_variant"
|
||||
fi
|
||||
_confirmKeyboard
|
||||
}
|
||||
|
||||
_confirmKeyboard() {
|
||||
echo
|
||||
echo "Current selected keyboard setup:"
|
||||
echo "Keyboard layout: $keyboard_layout"
|
||||
echo "Keyboard variant: $keyboard_variant"
|
||||
echo
|
||||
if gum confirm "Do you want proceed with this keyboard setup?" --affirmative "Proceed" --negative "Change" ;then
|
||||
return 0
|
||||
elif [ $? -eq 130 ]; then
|
||||
@@ -31,23 +57,34 @@ _confirmKeyboard() {
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$restored" == "1" ]; then
|
||||
echo ":: You have already restored your settings into the new installation."
|
||||
else
|
||||
_confirmKeyboard
|
||||
|
||||
cp .install/templates/keyboard.conf ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
|
||||
if gum confirm "Are you using a laptop and would you like to enable the laptop presets?"; then
|
||||
cp .install/templates/keyboard-laptop.conf ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
|
||||
echo "source = ~/dotfiles/hypr/conf/layouts/laptop.conf" > ~/dotfiles-versions/$version/hypr/conf/layout.conf
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
cp .install/templates/keyboard-default.conf ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
|
||||
fi
|
||||
cp .install/templates/autostart.sh ~/dotfiles-versions/$version/qtile/autostart.sh
|
||||
|
||||
SEARCH="KEYBOARD_LAYOUT"
|
||||
REPLACE="$keyboard_layout"
|
||||
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
|
||||
|
||||
SEARCH="KEYBOARD_VARIANT"
|
||||
REPLACE="$keyboard_variant"
|
||||
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
|
||||
|
||||
SEARCH="KEYBOARD_LAYOUT"
|
||||
REPLACE="$keyboard_layout"
|
||||
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/qtile/autostart.sh
|
||||
|
||||
echo ""
|
||||
echo ":: Keyboard setup updated successfully."
|
||||
echo
|
||||
echo ":: Keyboard setup complete."
|
||||
echo
|
||||
echo "PLEASE NOTE: You can update your keyboard layout later in ~/dotfiles/hypr/conf/keyboard.conf"
|
||||
|
||||
fi
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
# ------------------------------------------------------
|
||||
# Monitor
|
||||
# ------------------------------------------------------
|
||||
|
||||
if [[ $profile == *"Hyprland"* ]]; then
|
||||
echo -e "${GREEN}"
|
||||
figlet "Monitor"
|
||||
echo -e "${NONE}"
|
||||
if [ "$monitorrestored" == "1" ]; then
|
||||
echo "Monitor settings could already be restored".
|
||||
echo ""
|
||||
else
|
||||
echo "Hyprland will use the following monitor setup from ~/dotfiles/hypr/conf/monitors/default.conf"
|
||||
echo "monitor=,preferred,auto,1"
|
||||
echo ""
|
||||
echo "You can create your own monitor configuration by adding a new variation file ~/dotfiles/hypr/conf/monitors/mymonitor.conf"
|
||||
echo "Add there your monitor configuration."
|
||||
echo ""
|
||||
echo "After starting Hyprland, you can select your custom monitor variation with SUPER+CMD+S (or by clicking on the settings icon in WayBar)."
|
||||
echo "Select Monitors and then your custom monitor variation: ~/dotfiles/hypr/conf/monitors/mymonitor.conf"
|
||||
echo ""
|
||||
echo "Or overwrite the path on ~/dotfiles/hypr/conf/monitor.conf and replace it with your custom variation."
|
||||
echo ""
|
||||
echo "More information on how to setup your monitor in the Hyprland Wiki: https://wiki.hyprland.org/Configuring/Monitors/"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1,21 @@
|
||||
# ------------------------------------------------------
|
||||
# Neovim
|
||||
# ------------------------------------------------------
|
||||
neovim=0
|
||||
if [ -d ~/dotfiles/nvim ]; then
|
||||
echo -e "${GREEN}"
|
||||
figlet "Neovim"
|
||||
echo -e "${NONE}"
|
||||
echo ":: The script has detected a nvim folder."
|
||||
echo
|
||||
if gum confirm "Do you want to install the ML4W Neovim configuration?"; then
|
||||
echo ":: ML4W Neovim configuration will be installed"
|
||||
neovim=1
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
rm -rf ~/dotfiles-versions/$version/nvim/
|
||||
echo ":: Installation of ML4W Neovim configuration skipped."
|
||||
fi
|
||||
fi
|
||||
@@ -7,13 +7,12 @@ packagesPacman=(
|
||||
"wget"
|
||||
"unzip"
|
||||
"alacritty"
|
||||
"rofi"
|
||||
"chromium"
|
||||
"dunst"
|
||||
"starship"
|
||||
"mpv"
|
||||
"freerdp"
|
||||
"thunar"
|
||||
"nautilus"
|
||||
"mousepad"
|
||||
"noto-fonts"
|
||||
"otf-font-awesome"
|
||||
@@ -27,32 +26,40 @@ packagesPacman=(
|
||||
"python-psutil"
|
||||
"python-rich"
|
||||
"python-click"
|
||||
"python-pywal"
|
||||
"python-gobject"
|
||||
"pavucontrol"
|
||||
"tumbler"
|
||||
"blueman"
|
||||
"papirus-icon-theme"
|
||||
"breeze-icons"
|
||||
"polkit-gnome"
|
||||
"brightnessctl"
|
||||
"gum"
|
||||
"man-pages"
|
||||
"xdg-desktop-portal"
|
||||
"nm-connection-editor"
|
||||
"gvfs"
|
||||
"xdg-user-dirs"
|
||||
"xdg-desktop-portal-gtk"
|
||||
"networkmanager"
|
||||
"network-manager-applet"
|
||||
"xarchiver"
|
||||
"thunar-archive-plugin"
|
||||
"zip"
|
||||
"fuse2"
|
||||
"gtk4"
|
||||
"libadwaita"
|
||||
"xdg-desktop-portal"
|
||||
"qalculate-gtk"
|
||||
"imagemagick"
|
||||
"guvcview"
|
||||
"jq"
|
||||
"rofi-wayland"
|
||||
"fastfetch"
|
||||
"blueman"
|
||||
);
|
||||
|
||||
packagesYay=(
|
||||
"pfetch"
|
||||
"bibata-cursor-theme"
|
||||
"trizen"
|
||||
"pacseek"
|
||||
);
|
||||
|
||||
# Removed packages
|
||||
# "xfce4-power-manager"
|
||||
# "ttf-font-awesome"
|
||||
@@ -0,0 +1,19 @@
|
||||
packagesPacman=(
|
||||
"hyprland"
|
||||
"hyprpaper"
|
||||
"hyprlock"
|
||||
"hypridle"
|
||||
"xdg-desktop-portal-hyprland"
|
||||
"waybar"
|
||||
"grim"
|
||||
"slurp"
|
||||
"swappy"
|
||||
"cliphist"
|
||||
);
|
||||
|
||||
packagesYay=(
|
||||
"wlogout"
|
||||
"nwg-look"
|
||||
"eww"
|
||||
"hyprshade"
|
||||
);
|
||||
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
# ------------------------------------------------------
|
||||
# Activate parallel downloads
|
||||
# ------------------------------------------------------
|
||||
|
||||
# Search for the line containing "ParallelDownloads = 5"
|
||||
line=$(grep "ParallelDownloads = 5" /etc/pacman.conf)
|
||||
|
||||
# Check if the line starts with a '#' character
|
||||
if [[ $line == \#* ]]; then
|
||||
echo -e "${GREEN}"
|
||||
figlet "Downloads"
|
||||
echo -e "${NONE}"
|
||||
echo ":: You can activate parallel downloads in pacman.conf to speedup the download of packages?"
|
||||
if gum confirm "Do you want to activate parallel downloads?"; then
|
||||
|
||||
# Remove the '#' character from the beginning of the line
|
||||
echo ":: Modifying pacman.conf to enable parallel downloads."
|
||||
new_line=$(echo $line | sed 's/^#//')
|
||||
|
||||
# Replace the original line with the new line in the configuration file
|
||||
sudo sed -i "s/$line/$new_line/g" /etc/pacman.conf
|
||||
|
||||
# Display a message indicating that the line was modified
|
||||
echo ":: Modified line: $new_line"
|
||||
elif [ $? -eq 130 ]; then
|
||||
exit
|
||||
else
|
||||
echo ":: Activation of parallel downloads skipped."
|
||||
fi
|
||||
else
|
||||
# Check if the line is already uncommented
|
||||
if [[ $line == ParallelDownloads\ =\ 5 ]]; then
|
||||
# Display a message indicating that the line does not need to be modified
|
||||
echo ":: pacman.conf already optimized for parallel downloads."
|
||||
else
|
||||
# Display a message indicating that the line is missing or commented out
|
||||
echo ":: Parallel downloads could not be activated. Required configuration in /etc/pacman.conf could not found."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Activate Color in pacman.conf
|
||||
if grep -Fxq "#Color" /etc/pacman.conf
|
||||
then
|
||||
sudo sed -i 's/^#Color/Color/' /etc/pacman.conf
|
||||
echo ":: Color activated in pacman.conf"
|
||||
else
|
||||
echo ":: Color is already activated in pacman.conf"
|
||||
fi
|
||||
if grep -Fxq "# Color" /etc/pacman.conf
|
||||
then
|
||||
sudo sed -i 's/^# Color/Color/' /etc/pacman.conf
|
||||
echo ":: Color activated in pacman.conf"
|
||||
fi
|
||||
echo
|
||||
@@ -4,7 +4,14 @@
|
||||
echo -e "${GREEN}"
|
||||
figlet "Preparation"
|
||||
echo -e "${NONE}"
|
||||
echo ":: Preparing temporary folders for the installation."
|
||||
if [ -d ~/.config ]; then
|
||||
echo ":: $HOME/.config folder already exists."
|
||||
else
|
||||
mkdir ~/.config
|
||||
echo ":: $HOME/.config folder created."
|
||||
fi
|
||||
echo
|
||||
echo "Preparing temporary folders for the installation."
|
||||
if [ ! -d ~/dotfiles-versions ]; then
|
||||
mkdir ~/dotfiles-versions
|
||||
echo ":: ~/dotfiles-versions folder created."
|
||||
@@ -18,12 +25,12 @@ else
|
||||
mkdir ~/dotfiles-versions/$version
|
||||
echo ":: Clean build prepared for the installation."
|
||||
fi
|
||||
rsync -a -I --exclude-from=.install/excludes.txt . ~/dotfiles-versions/$version/
|
||||
rsync -a -I --exclude-from=.install/includes/excludes.txt . ~/dotfiles-versions/$version/
|
||||
if [[ $(_isFolderEmpty ~/dotfiles-versions/$version/) == 0 ]] ;then
|
||||
echo "AN ERROR HAS OCCURED. Preparation of ~/dotfiles-versions/$version/ failed"
|
||||
echo "Please check that rsync is installad on your system."
|
||||
echo "Execution of rsync -a -I --exclude-from=.install/excludes.txt . ~/dotfiles-versions/$version/ is required."
|
||||
echo "Execution of rsync -a -I --exclude-from=.install/includes/excludes.txt . ~/dotfiles-versions/$version/ is required."
|
||||
exit
|
||||
fi
|
||||
echo ":: dotfiles $version successfully prepared in ~/dotfiles-versions/$version/"
|
||||
echo ""
|
||||
echo ":: ML4W Dotfiles $version successfully prepared in ~/dotfiles-versions/$version/"
|
||||
echo
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
echo -e "${GREEN}"
|
||||
figlet "Profile"
|
||||
echo -e "${NONE}"
|
||||
|
||||
echo "SPACE = select/unselect a profile. RETURN = confirm. No selection = CANCEL"
|
||||
echo "Please select your installation profile."
|
||||
echo
|
||||
profile=$(gum choose --no-limit --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "Hyprland" "Qtile")
|
||||
|
||||
if [ -z "${profile}" ] ;then
|
||||
echo "No profile selected. Installation canceled."
|
||||
echo ":: No profile selected. Installation canceled."
|
||||
exit
|
||||
else
|
||||
echo "Profile/s selected:" $profile
|
||||
echo ":: Profile/s selected:" $profile
|
||||
fi
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# ------------------------------------------------------
|
||||
# Install pywal
|
||||
# ------------------------------------------------------
|
||||
echo -e "${GREEN}"
|
||||
figlet "Pywal"
|
||||
echo -e "${NONE}"
|
||||
if [ -f /usr/bin/wal ]; then
|
||||
echo "pywal already installed. Trying to force the installation with python-pywal"
|
||||
yay -S --noconfirm python-pywal --ask 4
|
||||
else
|
||||
yay -S --noconfirm python-pywal
|
||||
echo "Pywal installed."
|
||||
fi
|
||||
echo ""
|
||||
@@ -2,7 +2,6 @@
|
||||
# Install dotfiles
|
||||
# ------------------------------------------------------
|
||||
|
||||
if [ ! $mode == "dev" ]; then
|
||||
if [ -d ~/dotfiles-versions/$version/alacritty ]; then
|
||||
_installSymLink alacritty ~/.config/alacritty ~/dotfiles/alacritty/ ~/.config
|
||||
fi
|
||||
@@ -24,9 +23,6 @@ if [ ! $mode == "dev" ]; then
|
||||
if [ -d ~/dotfiles-versions/$version/qtile ]; then
|
||||
_installSymLink qtile ~/.config/qtile ~/dotfiles/qtile/ ~/.config
|
||||
fi
|
||||
if [ -d ~/dotfiles-versions/$version/polybar ]; then
|
||||
_installSymLink polybar ~/.config/polybar ~/dotfiles/polybar/ ~/.config
|
||||
fi
|
||||
if [ -d ~/dotfiles-versions/$version/picom ]; then
|
||||
_installSymLink picom ~/.config/picom ~/dotfiles/picom/ ~/.config
|
||||
fi
|
||||
@@ -39,17 +35,4 @@ if [ ! $mode == "dev" ]; then
|
||||
if [ -d ~/dotfiles-versions/$version/swappy ]; then
|
||||
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
|
||||
fi
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink .gtkrc-2.0 ~/.gtkrc-2.0 ~/dotfiles/gtk/.gtkrc-2.0 ~/.gtkrc-2.0
|
||||
#fi
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink .Xresources ~/.Xresources ~/dotfiles/gtk/.Xresources ~/.Xresources
|
||||
#fi
|
||||
#if [ -d ~/dotfiles-versions/$version/gtk ]; then
|
||||
# _installSymLink gtk-3.0 ~/.config/gtk-3.0 ~/dotfiles/gtk/gtk-3.0/ ~/.config/
|
||||
#fi
|
||||
else
|
||||
echo "Skipped: DEV MODE!"
|
||||
fi
|
||||
echo "Symbolic links created."
|
||||
echo ""
|
||||
echo ":: Symbolic links created."
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
echo -e "${GREEN}"
|
||||
figlet "Qtile"
|
||||
echo -e "${NONE}"
|
||||
@@ -0,0 +1,18 @@
|
||||
# ------------------------------------------------------
|
||||
# Reboot
|
||||
# ------------------------------------------------------
|
||||
|
||||
echo -e "${GREEN}"
|
||||
figlet "Reboot"
|
||||
echo -e "${NONE}"
|
||||
echo "A reboot of your system is recommended."
|
||||
echo
|
||||
if gum confirm "Do you want to reboot your system now?" ;then
|
||||
gum spin --spinner dot --title "Rebooting now..." -- sleep 3
|
||||
systemctl reboot
|
||||
elif [ $? -eq 130 ]; then
|
||||
exit 130
|
||||
else
|
||||
echo ":: Reboot skipped"
|
||||
fi
|
||||
echo ""
|
||||
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Remove Rofi Calc
|
||||
if [[ $(_isInstalledPacman "rofi-calc") == 0 ]]; then
|
||||
sudo pacman --noconfirm -Rns rofi-calc
|
||||
echo ":: rofi-calc removed"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Remove Rofi
|
||||
if [[ $(_isInstalledPacman "rofi") == 0 ]]; then
|
||||
sudo pacman --noconfirm -Rns rofi
|
||||
echo ":: rofi removed"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Remove Swayidle
|
||||
if [[ $(_isInstalledPacman "swayidle") == 0 ]]; then
|
||||
sudo pacman --noconfirm -Rns swayidle
|
||||
echo ":: swayidle removed"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Remove Swaylock
|
||||
if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
|
||||
yay --noconfirm -Rns swaylock-effects-git
|
||||
echo ":: swaylock removed"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Remove rofi-lbonn-wayland
|
||||
if [[ $(_isInstalledYay "rofi-lbonn-wayland") == 0 ]]; then
|
||||
yay --noconfirm -Rns rofi-lbonn-wayland
|
||||
echo ":: rofi-lbonn-wayland removed"
|
||||
echo
|
||||
fi
|
||||
|
||||
# Remove hypridle-bin
|
||||
if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
|
||||
yay --noconfirm -Rns hypridle-git
|
||||
if [ -f /usr/lib/debug/usr/bin/hypridle.debug ] ;then
|
||||
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
|
||||
echo ":: /usr/lib/debug/usr/bin/hypridle.debug removed"
|
||||
fi
|
||||
echo ":: hypridle-git uninstalled."
|
||||
echo ":: hypridle can now be installed."
|
||||
echo
|
||||
fi
|
||||
|
||||
# Remove hyprlock-bin
|
||||
if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then
|
||||
yay --noconfirm -Rns hyprlock-git
|
||||
if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then
|
||||
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
|
||||
echo ":: /usr/lib/debug/usr/bin/hyprlock.debug removed"
|
||||
fi
|
||||
echo ":: hyprlock-git uninstalled."
|
||||
echo ":: hyprlock can now be installed."
|
||||
echo
|
||||
fi
|
||||
@@ -4,12 +4,11 @@
|
||||
|
||||
# Synchronize packages
|
||||
sudo pacman -Sy
|
||||
echo ""
|
||||
echo
|
||||
|
||||
# Check for required packages
|
||||
echo ":: Checking that required packages for the installation are installed..."
|
||||
_installPackagesPacman "rsync" "gum" "figlet";
|
||||
echo ""
|
||||
echo "Checking that required packages for the installation are installed..."
|
||||
_installPackagesPacman "rsync" "gum" "figlet" "python";
|
||||
|
||||
# Double check rsync
|
||||
if ! command -v rsync &> /dev/null; then
|
||||
@@ -18,4 +17,4 @@ if ! command -v rsync &> /dev/null; then
|
||||
else
|
||||
echo ":: rsync double checked"
|
||||
fi
|
||||
echo ""
|
||||
echo
|
||||
@@ -0,0 +1,149 @@
|
||||
# __ __ _ _ ___ __ _
|
||||
# | \/ | | | || \ \ / / _ __ ___ ___| |_ ___ _ __ ___
|
||||
# | |\/| | | | || |\ \ /\ / / | '__/ _ \/ __| __/ _ \| '__/ _ \
|
||||
# | | | | |__|__ _\ V V / | | | __/\__ \ || (_) | | | __/
|
||||
# |_| |_|_____| |_| \_/\_/ |_| \___||___/\__\___/|_| \___|
|
||||
#
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
import os
|
||||
import json
|
||||
import pathlib
|
||||
import shutil
|
||||
|
||||
# Get script path
|
||||
pathname = os.path.dirname(sys.argv[0])
|
||||
|
||||
class ML4WRestore:
|
||||
|
||||
waybar_themes = [
|
||||
"ml4w-minimal",
|
||||
"ml4w",
|
||||
"ml4w-blur",
|
||||
"ml4w-blur-bottom",
|
||||
"ml4w-bottom"
|
||||
]
|
||||
|
||||
defaults = {
|
||||
"waybar_timeformat": "%H:%M",
|
||||
"waybar_dateformat": "%a",
|
||||
"waybar_custom_timedateformat": "",
|
||||
"waybar_workspaces": 5,
|
||||
"rofi_bordersize": 3,
|
||||
"waybar_network": True,
|
||||
"waybar_chatgpt": True,
|
||||
"waybar_systray": True,
|
||||
"waybar_screenlock": True,
|
||||
"waybar_window": True
|
||||
}
|
||||
|
||||
path_name = pathname # Path of Application
|
||||
homeFolder = os.path.expanduser('~') # Path to home folder
|
||||
dotfiles = homeFolder + "/dotfiles/"
|
||||
settings = {}
|
||||
|
||||
def __init__(self):
|
||||
# Load settings.json
|
||||
settings_file = open(self.dotfiles + ".settings/settings.json")
|
||||
settings_arr = json.load(settings_file)
|
||||
for row in settings_arr:
|
||||
self.settings[row["key"]] = row["value"]
|
||||
|
||||
self.loadSwitchAll("waybar_network","network")
|
||||
self.loadSwitchAll("waybar_systray","tray")
|
||||
self.loadSwitchAll("waybar_window","hyprland/window")
|
||||
self.loadSwitchAll("waybar_screenlock","idle_inhibitor")
|
||||
self.loadSwitch("waybar_chatgpt","custom/chatgpt")
|
||||
|
||||
# Waybar Workspaces
|
||||
if "waybar_workspaces" in self.settings:
|
||||
value = int(self.settings["waybar_workspaces"])
|
||||
text = ' "*": ' + str(value)
|
||||
self.replaceInFileNext("waybar/modules.json", "// START WORKSPACES", text)
|
||||
print (":: waybar_workspaces restored")
|
||||
|
||||
# Rofi BorderSize
|
||||
if "rofi_bordersize" in self.settings:
|
||||
value = int(self.settings["rofi_bordersize"])
|
||||
text = "* { border-width: " + str(value) + "px; }"
|
||||
self.overwriteFile(".settings/rofi-border.rasi",text)
|
||||
print (":: rofi_bordersize restored")
|
||||
|
||||
# Time/DateFormat
|
||||
if "waybar_timeformat" in self.settings:
|
||||
timeformat = self.settings["waybar_timeformat"]
|
||||
else:
|
||||
timeformat = self.defaults["waybar_timeformat"]
|
||||
|
||||
if "waybar_dateformat" in self.settings:
|
||||
dateformat = self.settings["waybar_dateformat"]
|
||||
else:
|
||||
dateformat = self.defaults["waybar_dateformat"]
|
||||
|
||||
if "waybar_custom_timedateformat" in self.settings:
|
||||
custom_format = self.settings["waybar_custom_timedateformat"]
|
||||
else:
|
||||
custom_format = self.defaults["waybar_custom_timedateformat"]
|
||||
|
||||
if custom_format != "":
|
||||
timedate = ' "format": "{:' + custom_format + '}",'
|
||||
self.replaceInFileNext("waybar/modules.json", "TIMEDATEFORMAT", timedate)
|
||||
else:
|
||||
timedate = ' "format": "{:' + timeformat + ' - ' + dateformat + '}",'
|
||||
self.replaceInFileNext("waybar/modules.json", "TIMEDATEFORMAT", timedate)
|
||||
print (":: timedate format restored")
|
||||
|
||||
def loadSwitch(self,k,m):
|
||||
if k in self.settings:
|
||||
if not self.settings[k]:
|
||||
self.replaceInFile("waybar/modules.json",'"' + m + '"',' //"' + m + '",')
|
||||
print (":: " + k + " restored")
|
||||
|
||||
def loadSwitchAll(self,k,m):
|
||||
if k in self.settings:
|
||||
if not self.settings[k]:
|
||||
for t in self.waybar_themes:
|
||||
self.replaceInFile("waybar/themes/" + t + "/config",'"' + m + '"',' //"' + m + '",')
|
||||
print (":: " + k + " restored")
|
||||
|
||||
# Overwrite Text in File
|
||||
def overwriteFile(self, f, text):
|
||||
file=open(self.dotfiles + f,"w+")
|
||||
file.write(text)
|
||||
file.close()
|
||||
|
||||
# Replace Text in File
|
||||
def replaceInFile(self, f, search, replace):
|
||||
file = open(self.dotfiles + f, 'r')
|
||||
lines = file.readlines()
|
||||
count = 0
|
||||
found = 0
|
||||
# Strips the newline character
|
||||
for l in lines:
|
||||
count += 1
|
||||
if search in l:
|
||||
found = count
|
||||
if found > 0:
|
||||
lines[found - 1] = replace + "\n"
|
||||
with open(self.dotfiles + f, 'w') as file:
|
||||
file.writelines(lines)
|
||||
|
||||
# Replace Text in File
|
||||
def replaceInFileNext(self, f, search, replace):
|
||||
file = open(self.dotfiles + f, 'r')
|
||||
lines = file.readlines()
|
||||
count = 0
|
||||
found = 0
|
||||
# Strips the newline character
|
||||
for l in lines:
|
||||
count += 1
|
||||
if search in l:
|
||||
found = count
|
||||
if found > 0:
|
||||
lines[found] = replace + "\n"
|
||||
with open(self.dotfiles + f, 'w') as file:
|
||||
file.writelines(lines)
|
||||
|
||||
|
||||
ml4wrestore = ML4WRestore()
|
||||
@@ -8,18 +8,32 @@ monitorrestored=0
|
||||
|
||||
_showRestoreOptions() {
|
||||
echo "The following configurations can be transferred into the new installation."
|
||||
echo "(SPACE = select/unselect a profile. RETURN = confirm. No selection = CANCEL)"
|
||||
echo ""
|
||||
echo
|
||||
restorelist=""
|
||||
if [ -f ~/dotfiles/.bashrc ]; then
|
||||
restorelist+="~/dotfiles/.bashrc "
|
||||
selectedlist+="~/dotfiles/.bashrc,"
|
||||
fi
|
||||
if [ -f ~/dotfiles/.zshrc ]; then
|
||||
restorelist+="~/dotfiles/.zshrc "
|
||||
selectedlist+="~/dotfiles/.zshrc,"
|
||||
fi
|
||||
if [ -f ~/dotfiles/.p10k.zsh ]; then
|
||||
restorelist+="~/dotfiles/.p10k.zsh "
|
||||
selectedlist+="~/dotfiles/.p10k.zsh,"
|
||||
fi
|
||||
if [ -d ~/dotfiles/.settings ]; then
|
||||
restorelist+="~/dotfiles/.settings "
|
||||
selectedlist+="~/dotfiles/.settings,"
|
||||
fi
|
||||
if [[ $profile == *"Hyprland"* ]]; then
|
||||
if [ -f ~/dotfiles/hypr/hypridle.conf ]; then
|
||||
if grep -Fxq "# Version 2.8.3" ~/dotfiles/hypr/hypridle.conf
|
||||
then
|
||||
restorelist+="~/dotfiles/hypr/hypridle.conf "
|
||||
selectedlist+="~/dotfiles/hypr/hypridle.conf,"
|
||||
fi
|
||||
fi
|
||||
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
||||
restorelist+="~/dotfiles/hypr/conf/custom.conf "
|
||||
selectedlist+="~/dotfiles/hypr/conf/custom.conf,"
|
||||
@@ -36,6 +50,10 @@ _showRestoreOptions() {
|
||||
restorelist+="~/dotfiles/hypr/conf/environment.conf "
|
||||
selectedlist+="~/dotfiles/hypr/conf/environment.conf,"
|
||||
fi
|
||||
if [ -f ~/dotfiles/hypr/conf/layout.conf ] && [ -d ~/dotfiles/hypr/conf/layouts/ ]; then
|
||||
restorelist+="~/dotfiles/hypr/conf/layout.conf "
|
||||
selectedlist+="~/dotfiles/hypr/conf/layout.conf,"
|
||||
fi
|
||||
if [ -f ~/dotfiles/hypr/conf/windowrule.conf ] && [ -d ~/dotfiles/hypr/conf/windowrules/ ]; then
|
||||
restorelist+="~/dotfiles/hypr/conf/windowrule.conf "
|
||||
selectedlist+="~/dotfiles/hypr/conf/windowrule.conf,"
|
||||
@@ -43,7 +61,6 @@ _showRestoreOptions() {
|
||||
if [ -f ~/dotfiles/hypr/conf/monitor.conf ] && [ -d ~/dotfiles/hypr/conf/monitors/ ]; then
|
||||
restorelist+="~/dotfiles/hypr/conf/monitor.conf "
|
||||
selectedlist+="~/dotfiles/hypr/conf/monitor.conf,"
|
||||
monitorrestored=1
|
||||
fi
|
||||
if [ -f ~/dotfiles/hypr/conf/animation.conf ] && [ -d ~/dotfiles/hypr/conf/animations/ ]; then
|
||||
restorelist+="~/dotfiles/hypr/conf/animation.conf "
|
||||
@@ -69,23 +86,27 @@ _showRestoreOptions() {
|
||||
echo "Selected to restore:"
|
||||
echo "$restoreselect"
|
||||
echo ""
|
||||
confirmrestore=$(gum choose "Start restore" "Change restore" "Cancel restore")
|
||||
confirmrestore=$(gum choose "Start restore" "Change restore" "Skip restore")
|
||||
if [ "$confirmrestore" == "Start restore" ] ;then
|
||||
_startRestore
|
||||
elif [ "$confirmrestore" == "Change restore" ]; then
|
||||
_showRestoreOptions
|
||||
else
|
||||
echo "Restore skipped."
|
||||
echo ":: Restore skipped."
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
echo "No files selected to restore."
|
||||
confirmrestore=$(gum choose "Change restore" "Cancel restore")
|
||||
confirmrestore=$(gum choose "Change restore" "Skip restore")
|
||||
if [ -z "${confirmrestore}" ] ;then
|
||||
echo ":: Installation canceled."
|
||||
exit
|
||||
fi
|
||||
if [ "$confirmrestore" == "Change restore" ]; then
|
||||
echo ""
|
||||
_showRestoreOptions
|
||||
else
|
||||
echo "Restore skipped."
|
||||
echo ":: Restore skipped."
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
@@ -95,68 +116,80 @@ _startRestore() {
|
||||
if [[ $restoreselect == *"~/dotfiles/.bashrc"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/.bashrc ]; then
|
||||
cp ~/dotfiles/.bashrc ~/dotfiles-versions/$version/
|
||||
echo ".bashrc restored!"
|
||||
echo ":: .bashrc restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/.settings"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -d ~/dotfiles/.settings ]; then
|
||||
rsync -a -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
|
||||
echo ".settings restored!"
|
||||
rsync -avhp -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
|
||||
echo ":: .settings restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $profile == *"Hyprland"* ]]; then
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/hypridle.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/hypridle.conf ]; then
|
||||
cp ~/dotfiles/hypr/hypridle.conf ~/dotfiles-versions/$version/hypr/
|
||||
echo ":: Hyprland hypridle.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/custom.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/custom.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland custom.conf restored!"
|
||||
echo ":: Hyprland custom.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keyboard.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/keyboard.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/keyboard.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland keyboard.conf restored!"
|
||||
echo ":: Hyprland keyboard.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/monitor.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/monitor.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/monitor.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland monitor.conf restored!"
|
||||
echo ":: Hyprland monitor.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keybinding.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/keybinding.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/keybinding.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland keybinding.conf restored!"
|
||||
echo ":: Hyprland keybinding.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/environment.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/environment.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/environment.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland environment.conf restored!"
|
||||
echo ":: Hyprland environment.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/layout.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/layout.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/layout.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo ":: Hyprland layout.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/windowrule.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/windowrule.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/windowrule.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland windowrule.conf restored!"
|
||||
echo ":: Hyprland windowrule.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/animation.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/animation.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/animation.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland animation.conf restored!"
|
||||
echo ":: Hyprland animation.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/decoration.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/decoration.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/decoration.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland decoration.conf restored!"
|
||||
echo ":: Hyprland decoration.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/window.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/window.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/window.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland window.conf restored!"
|
||||
echo ":: Hyprland window.conf restored!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -164,7 +197,7 @@ _startRestore() {
|
||||
if [[ $restoreselect == *"~/dotfiles/qtile/autostart.sh"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/qtile/autostart.sh ]; then
|
||||
cp ~/dotfiles/qtile/autostart.sh ~/dotfiles-versions/$version/qtile/
|
||||
echo "Qtile autostart.sh restored!"
|
||||
echo ":: Qtile autostart.sh restored!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -173,7 +206,6 @@ _startRestore() {
|
||||
}
|
||||
|
||||
if [ -d ~/dotfiles ]; then
|
||||
|
||||
echo -e "${GREEN}"
|
||||
figlet "Restore"
|
||||
echo -e "${NONE}"
|
||||
@@ -182,149 +214,6 @@ echo -e "${NONE}"
|
||||
echo "PLEASE NOTE: Restoring is not possible with version < 2.6 of the dotfiles."
|
||||
echo "In that case, please use the automated backup or create your own backup manually."
|
||||
echo ""
|
||||
|
||||
_showRestoreOptions
|
||||
|
||||
# Restore Waybar Workspaces
|
||||
targetFile="$HOME/dotfiles-versions/$version/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_workspaces"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START WORKSPACE"
|
||||
endMarker="END WORKSPACES"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
||||
echo "Waybar Workspaces restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar Appslabel
|
||||
targetFile="$HOME/dotfiles-versions/$version/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_appslabel"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START APPS LABEL"
|
||||
endMarker="END APPS LABEL"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
||||
echo "Waybar Appslabel restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar ChatGPT
|
||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_chatgpt"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START CHATGPT TOOGLE"
|
||||
endMarker="END CHATGPT TOOGLE"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
||||
echo "Waybar ChatGPT restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar Bluetooth
|
||||
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
|
||||
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
|
||||
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
|
||||
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
|
||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_bluetooth"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START BT TOOGLE"
|
||||
endMarker="END BT TOOGLE"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
||||
echo "Waybar Bluetooth restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar Systray
|
||||
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
|
||||
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
|
||||
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
|
||||
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
|
||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_systray"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START TRAY TOOGLE"
|
||||
endMarker="END TRAY TOOGLE"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
||||
echo "Waybar Systray restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar Network
|
||||
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
|
||||
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
|
||||
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
|
||||
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
|
||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_network"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START NETWORK TOOGLE"
|
||||
endMarker="END NETWORK TOOGLE"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
||||
echo "Waybar Network restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar Idle
|
||||
targetFile1="$HOME/dotfiles/waybar/themes/ml4w/config"
|
||||
targetFile2="$HOME/dotfiles/waybar/themes/ml4w-blur/config"
|
||||
targetFile3="$HOME/dotfiles/waybar/themes/ml4w-blur-bottom/config"
|
||||
targetFile4="$HOME/dotfiles/waybar/themes/ml4w-bottom/config"
|
||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_swaylock"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START IDLE TOOGLE"
|
||||
endMarker="END IDLE TOOGLE"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
||||
echo "Waybar Idle restored."
|
||||
fi
|
||||
|
||||
# Restore Waybar nmapplet
|
||||
targetFile="$HOME/dotfiles-versions/$version/hypr/conf/autostart.conf"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_nmapplet"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START NM APPLET"
|
||||
endMarker="END NM APPLET"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
||||
echo "nm-applet restored."
|
||||
fi
|
||||
|
||||
# Restore Keyboard natural_scroll
|
||||
targetFile="$HOME/dotfiles-versions/$version/hypr/conf/keyboard.conf"
|
||||
settingsFile="$HOME/dotfiles/.settings/keyboard_naturalscroll"
|
||||
if [ -f $settingsFile ] ;then
|
||||
findMarker="natural_scroll"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceLineInFile "$findMarker" "$customtext" "$targetFile"
|
||||
echo "keyboard natural_scroll restored."
|
||||
fi
|
||||
|
||||
# Restore Start Swaylock
|
||||
targetFile="$HOME/dotfiles/hypr/scripts/lockscreentime.sh"
|
||||
settingsFile="$HOME/dotfiles/.settings/hypr_lockscreen"
|
||||
if [ -f $settingsFile ] ;then
|
||||
startMarker="START SWAYIDLE"
|
||||
endMarker="END SWAYIDLE"
|
||||
customtext="$(cat $settingsFile)"
|
||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
||||
echo "Swaylock start restored."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
if [ "$restored" == "1" ]; then
|
||||
if [ -f ~/dotfiles/.settings/settings.json ] ;then
|
||||
echo -e "${GREEN}"
|
||||
figlet "Restore Settings"
|
||||
echo -e "${NONE}"
|
||||
python .install/restore.py
|
||||
fi
|
||||
else
|
||||
if [ -f ~/dotfiles/.settings/settings.json ] ;then
|
||||
rm ~/dotfiles/.settings/settings.json
|
||||
echo ":: settings.json removed"
|
||||
fi
|
||||
if [ -f ~/.cache/.themestyle.sh ] ;then
|
||||
rm ~/.cache/.themestyle.sh
|
||||
echo ":: .themestyle.sh removed"
|
||||
fi
|
||||
fi
|
||||
@@ -19,7 +19,7 @@
|
||||
setxkbmap KEYBOARD_LAYOUT
|
||||
|
||||
# Load picom
|
||||
picom &
|
||||
# picom &
|
||||
|
||||
# Load power manager
|
||||
xfce4-power-manager &
|
||||
|
||||
@@ -4,9 +4,11 @@
|
||||
# -----------------------------------------------------
|
||||
input {
|
||||
kb_layout = KEYBOARD_LAYOUT
|
||||
kb_variant =
|
||||
kb_variant = KEYBOARD_VARIANT
|
||||
kb_model =
|
||||
kb_options =
|
||||
numlock_by_default = true
|
||||
mouse_refocus = false
|
||||
|
||||
# For United States
|
||||
# kb_layout = us
|
||||
@@ -16,7 +18,17 @@ input {
|
||||
|
||||
follow_mouse = 1
|
||||
touchpad {
|
||||
# for desktop
|
||||
natural_scroll = false
|
||||
|
||||
# for laptop
|
||||
# natural_scroll = yes
|
||||
# middle_button_emulation = true
|
||||
# clickfinger_behavior = 1
|
||||
}
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
# -----------------------------------------------------
|
||||
# Keyboard Layout
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
# -----------------------------------------------------
|
||||
input {
|
||||
kb_layout = KEYBOARD_LAYOUT
|
||||
kb_variant = KEYBOARD_VARIANT
|
||||
kb_model =
|
||||
kb_options =
|
||||
numlock_by_default = true
|
||||
mouse_refocus = false
|
||||
|
||||
# For United States
|
||||
# kb_layout = us
|
||||
# kb_variant = intl
|
||||
# kb_model = pc105
|
||||
# kb_options =
|
||||
|
||||
follow_mouse = 1
|
||||
touchpad {
|
||||
# for desktop
|
||||
# natural_scroll = false
|
||||
|
||||
# for laptop
|
||||
natural_scroll = true
|
||||
middle_button_emulation = true
|
||||
clickfinger_behavior = true
|
||||
disable_while_typing = true
|
||||
}
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
# ------------------------------------------------------
|
||||
# Update System
|
||||
# ------------------------------------------------------
|
||||
|
||||
echo -e "${GREEN}"
|
||||
figlet "System Update"
|
||||
echo -e "${NONE}"
|
||||
echo "It's important that your system is up-to-date before you proceed."
|
||||
echo
|
||||
if gum confirm "Do you want to update your system with yay now?" ;then
|
||||
echo ":: Update started"
|
||||
yay
|
||||
elif [ $? -eq 130 ]; then
|
||||
echo ":: Installation canceled."
|
||||
exit 130
|
||||
else
|
||||
echo ":: System update skipped"
|
||||
fi
|
||||
echo
|
||||
@@ -4,11 +4,21 @@ echo -e "${GREEN}"
|
||||
figlet "KVM VM"
|
||||
echo -e "${NONE}"
|
||||
echo "The script has detected that you run the installation in a KVM virtual machine."
|
||||
echo
|
||||
if grep -Fxq "kvm.conf" ~/dotfiles-versions/$version/hypr/conf/environment.conf
|
||||
then
|
||||
echo ":: KVM Environment already set."
|
||||
else
|
||||
if gum confirm "Do you want to install the KVM environment variables?" ;then
|
||||
echo "source = ~/dotfiles/hypr/conf/environments/kvm.conf" > ~/dotfiles-versions/$version/hypr/conf/environment.conf
|
||||
echo "Environment set to KVM."
|
||||
fi
|
||||
fi
|
||||
if [[ $(_isInstalledPacman "${pkg}") == 0 ]]; then
|
||||
echo ":: Qemu Guest Agent already installed"
|
||||
else
|
||||
if gum confirm "Do you want to install the QEMU guest agent?" ;then
|
||||
_installPackagesPacman "qemu-guest-agent";
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# ------------------------------------------------------
|
||||
# Check if yay is installed
|
||||
# ------------------------------------------------------
|
||||
echo -e "${GREEN}"
|
||||
figlet "yay"
|
||||
echo -e "${NONE}"
|
||||
if sudo pacman -Qs yay > /dev/null ; then
|
||||
echo ":: yay is already installed!"
|
||||
else
|
||||
echo -e "${GREEN}"
|
||||
figlet "yay"
|
||||
echo -e "${NONE}"
|
||||
echo ":: yay is not installed. Starting the installation!"
|
||||
_installPackagesPacman "base-devel"
|
||||
SCRIPT=$(realpath "$0")
|
||||
@@ -18,4 +18,4 @@ else
|
||||
cd $temp_path
|
||||
echo ":: yay has been installed successfully."
|
||||
fi
|
||||
echo ""
|
||||
echo
|
||||
@@ -0,0 +1,22 @@
|
||||
# ------------------------------------------------------
|
||||
# install zsh and zinit
|
||||
# ------------------------------------------------------
|
||||
packagesPacman=("zsh");
|
||||
|
||||
echo "Please select the zsh plugin manager:"
|
||||
zsh_manager=$(gum choose --limit=1 --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "oh my zsh" "zinit")
|
||||
if [[ "${zsh_manager}" == *"oh my zsh"* ]]; then
|
||||
source .install/install-packages.sh
|
||||
if [ ! -d ~/.oh-my-zsh ]; then
|
||||
RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
||||
fi
|
||||
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||||
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
|
||||
_installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc_ohmyzsh ~/.zshrc
|
||||
else
|
||||
packagesYay=("zinit");
|
||||
source .install/install-packages.sh
|
||||
_installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc_zinit ~/.zshrc
|
||||
fi
|
||||
_installSymLink p10k ~/.p10k.zsh ~/dotfiles/.p10k.zsh ~/
|
||||
@@ -0,0 +1,25 @@
|
||||
# ------------------------------------------------------
|
||||
# Select additional shell
|
||||
# ------------------------------------------------------
|
||||
echo -e "${GREEN}"
|
||||
figlet "Zsh Fish"
|
||||
echo -e "${NONE}"
|
||||
echo "Please select if you want to install zsh or fish."
|
||||
echo
|
||||
zshfish=$(gum choose --no-limit --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "zsh" "fish")
|
||||
|
||||
if [ -z "${zshfish}" ] ;then
|
||||
echo ":: No shell selected. Keep using bash."
|
||||
else
|
||||
echo "Please select your default shell."
|
||||
echo
|
||||
shell=$(echo -e "bash\n$zshfish" | gum choose --limit=1 --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) ")
|
||||
if [[ $zshfish == *"zsh"* ]]; then
|
||||
echo ":: zsh selected"
|
||||
source .install/zsh.sh
|
||||
fi
|
||||
if [[ $zshfish == *"fish"* ]]; then
|
||||
echo ":: fish selected"
|
||||
source .install/fish.sh
|
||||
fi
|
||||
fi
|
||||
@@ -0,0 +1 @@
|
||||
50x30
|
||||
@@ -0,0 +1 @@
|
||||
mousepad
|
||||
@@ -0,0 +1 @@
|
||||
auto
|
||||
@@ -1 +1 @@
|
||||
thunar
|
||||
nautilus
|
||||
@@ -0,0 +1,8 @@
|
||||
# Preload Wallpapers
|
||||
preload = WALLPAPER
|
||||
|
||||
# Set Wallpapers
|
||||
wallpaper = ,WALLPAPER
|
||||
|
||||
# Disable Splash
|
||||
splash = false
|
||||
@@ -0,0 +1 @@
|
||||
hyprshade_filter="blue-light-filter"
|
||||
@@ -0,0 +1 @@
|
||||
* { border-width: 3px; }
|
||||
@@ -0,0 +1 @@
|
||||
configuration { font: "Fira Sans 11"; }
|
||||
@@ -1,2 +0,0 @@
|
||||
timeswaylock=600
|
||||
timeoff=660
|
||||
@@ -0,0 +1 @@
|
||||
off
|
||||
@@ -0,0 +1 @@
|
||||
hyprpaper
|
||||
@@ -0,0 +1,2 @@
|
||||
# Enter the path to the folder that includes your wallpapers
|
||||
wallpaper_folder=$HOME/wallpaper
|
||||
@@ -1 +1 @@
|
||||
2.8RC1
|
||||
2.9.1.2
|
||||
@@ -1 +1 @@
|
||||
280
|
||||
2912
|
||||
@@ -0,0 +1,88 @@
|
||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||
# Initialization code that may require console input (password prompts, [y/n]
|
||||
# confirmations, etc.) must go above this block; everything else may go below.
|
||||
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Oh my zsh settings
|
||||
# -----------------------------------------------------
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
# ZSH_THEME="robbyrussell"
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
zstyle ':omz:update' mode auto
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# You can also set it to another string to have that shown instead of the default red dots.
|
||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||
COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Plugins
|
||||
# -----------------------------------------------------
|
||||
plugins=(git colored-man-pages eza z sudo zsh-autosuggestions fast-syntax-highlighting)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Variables
|
||||
# -----------------------------------------------------
|
||||
export PATH=$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
export EDITOR='nvim'
|
||||
|
||||
export MAKEFLAGS='-j$(nproc)'
|
||||
export CFLAGS='-march=native -O2 -pipe'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Alias
|
||||
# -----------------------------------------------------
|
||||
alias sshkoko="TERM=xterm-256color ssh ywang2020@koko-login.hpc.fau.edu"
|
||||
alias wakemac="wakeonlan 18:C0:4D:8D:56:0E"
|
||||
alias ls="eza --icons=auto"
|
||||
alias githashselector="git log --oneline | gum filter | cut -d' ' -f1"
|
||||
alias bat="bat --paging=never"
|
||||
alias code="code --ozone-platform=wayland --enable-wayland-ime"
|
||||
# fix ssh if in kitty
|
||||
if [[ "$TERM" == "xterm-kitty" && -z "$SSH_CONNECTION" ]]; then
|
||||
alias ssh="kitty +kitten ssh"
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Completion
|
||||
# -----------------------------------------------------
|
||||
[[ -f /home/wyj/.dart-cli-completion/zsh-config.zsh ]] && . /home/wyj/.dart-cli-completion/zsh-config.zsh || true
|
||||
|
||||
# -----------------------------------------------------
|
||||
# evals
|
||||
# -----------------------------------------------------
|
||||
eval $(thefuck --alias)
|
||||
eval "$(fzf --zsh)"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# PYWAL
|
||||
# -----------------------------------------------------
|
||||
cat ~/.cache/wal/sequences
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Custom
|
||||
# -----------------------------------------------------
|
||||
[[ ! -f ~/.custom.zsh ]] || source ~/.custom.zsh
|
||||
|
||||
# -----------------------------------------------------
|
||||
# miscs
|
||||
# -----------------------------------------------------
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
@@ -0,0 +1,64 @@
|
||||
# ---------------------------------------------------
|
||||
# Zinit and plugins
|
||||
# ---------------------------------------------------
|
||||
source /usr/share/zinit/zinit.zsh
|
||||
|
||||
# Load powerlevel10k theme
|
||||
zinit ice depth"1" # git clone depth
|
||||
zinit light romkatv/powerlevel10k
|
||||
|
||||
# Load plugins
|
||||
zinit light zsh-users/zsh-autosuggestions
|
||||
zinit light zdharma-continuum/fast-syntax-highlighting
|
||||
# oh-my-zsh plugins
|
||||
zi snippet OMZL::git.zsh
|
||||
zi snippet OMZP::git
|
||||
zi snippet OMZP::sudo
|
||||
zi snippet OMZP::colored-man-pages
|
||||
zi snippet OMZP::eza
|
||||
zi snippet OMZP::z
|
||||
# others
|
||||
zplugin ice as"program" pick"bin/git-dsf"
|
||||
zplugin light zdharma-continuum/zsh-diff-so-fancy
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Variables
|
||||
# ----------------------------------------------------
|
||||
export PATH=$HOME/bin:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$PATH
|
||||
export EDITOR=vim
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Alias
|
||||
# ----------------------------------------------------
|
||||
alias sshkoko="TERM=xterm-256color ssh ywang2020@koko-login.hpc.fau.edu"
|
||||
alias wakemac="wakeonlan 18:C0:4D:8D:56:0E"
|
||||
alias eza="eza --icons=auto"
|
||||
alias githashselector="git log --oneline | gum filter | cut -d' ' -f1"
|
||||
alias bat="bat --paging=never"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# evals
|
||||
# -----------------------------------------------------
|
||||
eval $(thefuck --alias)
|
||||
eval "$(fzf --zsh)"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Miscs
|
||||
# -----------------------------------------------------
|
||||
# fix ssh if in kitty
|
||||
if [[ "$TERM" == "xterm-kitty" && -z "$SSH_CONNECTION" ]]; then
|
||||
alias ssh="kitty +kitten ssh"
|
||||
fi
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
|
||||
# -----------------------------------------------------
|
||||
# PYWAL
|
||||
# -----------------------------------------------------
|
||||
cat ~/.cache/wal/sequences
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Custom
|
||||
# -----------------------------------------------------
|
||||
[[ ! -f ~/.custom.zsh ]] || source ~/.custom.zsh
|
||||
@@ -1,3 +1,127 @@
|
||||
Version 2.9.1.2
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9.1.1
|
||||
--------------------------------------------------------
|
||||
- Workspaces module in waybar updated to enable scroll to change the workspace https://gitlab.com/stephan-raabe/dotfiles/-/merge_requests/114
|
||||
- More functions deactivated in Game Mode (SUPER+ALT+G)
|
||||
- Keybindings rofi menu updated with keybinding description. Open with right mouse click on Apps waybar module
|
||||
- Fixed bug of ML4W Hyprland Settings App with Hyprland 0.41.0
|
||||
|
||||
Version 2.9.1.1
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9.1.1
|
||||
--------------------------------------------------------
|
||||
- New installation method for sddm sugar candy theme. Instead of using yay, the installer will download the ZIP from the repository, extract it to the Downloads folder and copy the files to the destination folder.
|
||||
- A gamemode can be toggled with SUPER+ALT+G. The gaming mode will disable the animations and blur.
|
||||
- Added a black ML4W Icon for black waybar themes
|
||||
|
||||
Version 2.9.1
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9.1
|
||||
--------------------------------------------------------
|
||||
- Hyprpaper is the default wallpaper engine. swww will not be installed by the installer anymore. You can still switch to swww in the Dotfiles Settings App (System tab) but you need to install swww manually with yay -S swww
|
||||
- pfetch has been replaced with fastfetch (requires an update of the .bashrc) https://gitlab.com/stephan-raabe/dotfiles/-/issues/315
|
||||
- Directory for wallpapers can be customized with new .settings/wallpaper-folder.sh https://gitlab.com/stephan-raabe/dotfiles/-/issues/325
|
||||
- Screen shading possible with hyprshade. SUPER+SHIFT+S to toggle hyprshade. The shader can be defined with the shader module in waybar or in ~/dotfiles/.settings/hyprshade.sh
|
||||
For auto-activation at a dedicated time please set the filter to off and follow the instructions here https://github.com/loqusion/hyprshade. https://gitlab.com/stephan-raabe/dotfiles/-/issues/329
|
||||
- Nautilus defined as the new default file manager. Thunar is still available.
|
||||
- Waybar can be toggles with SUPER+CTRL+B https://gitlab.com/stephan-raabe/dotfiles/-/issues/299
|
||||
- Installation script optimized for new gum
|
||||
- During the installation of the keyboard, it can be selected between a desktop and laptop optimized configuration https://gitlab.com/stephan-raabe/dotfiles/-/issues/319.
|
||||
- RDP launch script updated https://gitlab.com/stephan-raabe/dotfiles/-/issues/336
|
||||
- Nvidia environment configuration updated https://gitlab.com/stephan-raabe/dotfiles/-/issues/327
|
||||
- Pacman can be configured for parallel downloads, colors and more during the installation and with the ML4W Settings app https://gitlab.com/stephan-raabe/dotfiles/-/issues/316
|
||||
- Image conversions with imagemagick can be enabled for wallpapers. Right click on wallpaper module in waybar. You can add more effects in ~/dotfiles/hypr/effects/wallpaper
|
||||
- ChatGPT Window opens on the left screen side in floating mode
|
||||
- New default wallpaper
|
||||
- Added hypridle inhibitor waybar module to toggle screen locking with hyprlock
|
||||
- Tooltips added to all waybar modules
|
||||
|
||||
Version 2.9
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9
|
||||
--------------------------------------------------------
|
||||
- New Hyprland Settings App. Can be launched from the App Launcher, the ML4W Welcome App or the new ML4W logo context menu (right click)
|
||||
- Added sidebar menu. Start with click on ML4W Logo in Waybar. Right click starts the welcome app
|
||||
- Updated hyprlock screen showing the wallpaper in a circle. hyprlock 3 required
|
||||
- Waybar Taskbar Module hidden by default. Can be enabled again in the ML4W Settings App
|
||||
- Hyprpaper is now the default wallpaper engine. swww can be activiated
|
||||
- Animations can be disabled in the Dotfiles Settings app
|
||||
- Animations can be toggled (enabled/disabled) temporarily with SUPER + SHIFT + A
|
||||
- Keyboard layout is part of the system information module of waybar
|
||||
- nm-applet can be started from the ML4W Welcome App menu Settings/System
|
||||
- New diagnosis features checks that essential command are available. Enter ml4w-diagnosis in a terminal or from the ML4W Welcome App
|
||||
|
||||
Version 2.8.4
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.4
|
||||
--------------------------------------------------------
|
||||
- In the ML4W Dotfiles Settings App you can now switch between the wallpaper applications swww or hyprpaper. In case of issues with the default application swww you can select hyprpaper. The wallpaper application can also be disabled but background images for wlogout, hyprlock and rofi will be generated with the selected wallpaper.
|
||||
PLEASE NOTE: Logout & Login is required after a change.
|
||||
- New folder structure for backups: dotfiles-versions/backup holds the latest backup, dotfiles-versions/archive stores archived backups
|
||||
- Installer can now backup configurations in .config before overwriting by dotfiles
|
||||
- You can uninstall the ML4W dotfiles with the new uninstaller script starting from the ML4W dotfiles or by executing ~/dotfiles/uninstall.sh
|
||||
- Using the hypridle.conf suggested by https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
|
||||
|
||||
Version 2.8.3.4
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.4
|
||||
--------------------------------------------------------
|
||||
- Fix swww gray background issue. New command on autostart.conf is
|
||||
exec-once = swww init || swww-daemon --format xrgb
|
||||
- Using blurred version of background image for wlogout
|
||||
- Add progress bar to dunst notification for wallpaper change and processing
|
||||
|
||||
Version 2.8.3.2
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.2
|
||||
--------------------------------------------------------
|
||||
- Replace rofi with rofi-lbonn-wayland to get rofi wayland support
|
||||
- Several modifications in the ML4W Welcome App
|
||||
- ML4W Settings App allows to set between 1 and 10 Hyprland workspaces
|
||||
|
||||
Version 2.8.3.1
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.1
|
||||
--------------------------------------------------------
|
||||
- Add compatibility with Hyprland 0.37.1
|
||||
|
||||
Version 2.8.3
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3
|
||||
--------------------------------------------------------
|
||||
- New ML4W Dotfiles Settings App based on GTK4 with many new customization options
|
||||
- Hyprlock with blurred version of the current wallpaper as background. Blur strength can be adjusted in the ML4W Dotfiles Settings app
|
||||
- Hyprlock now showing the current time and username
|
||||
|
||||
Version 2.8.2.1
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
|
||||
--------------------------------------------------------
|
||||
- ML4W Welcome app includes more settings for hypridle. Incl. recommendation from Hyprland Wiki
|
||||
|
||||
Version 2.8.2
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
|
||||
--------------------------------------------------------
|
||||
General:
|
||||
- Force installation of sddm to fix theme issue with sddm-sugar-candy theme. sddm-git doesn't work with themes at the moment
|
||||
- snapshot.sh script check now for required timeshift and (optional) grub-btrfs packages
|
||||
- Waybar Bluetooth module now hides automatically if no bluetooth device is detected. Please check that "bluetooth" is not commented out in ~/dotfiles/waybar/modules.json
|
||||
- Replace hypridle-git with hypridle and hyprlock-git with hyprlock
|
||||
- Desktop file for ML4W Welcome App to be listed in application launcher + icon
|
||||
|
||||
Version 2.8.1
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.1
|
||||
--------------------------------------------------------
|
||||
General:
|
||||
- Swayidle replaced with hypridle (config in dotfiles/hypr/hypridle.conf)
|
||||
- Swaylock replaced with hyprlock (config in dotfiles/hypr/hyprlock.conf)
|
||||
- New default wallpaper in Hyprland style
|
||||
- xarchiver and zip added for thunar
|
||||
- Rofi border width can be adjusted in dotfiles/.settings/rofi-border.rasi
|
||||
- emote added to select Emojis (SUPER+.)
|
||||
|
||||
ML4W Welcome App:
|
||||
- Opens Hyprland systeminfo from the about menu
|
||||
- Timeshift can be installed from the settings menu
|
||||
- Terminal for Thunar can be set from the settings menu
|
||||
|
||||
Hyprland:
|
||||
- Bugfix timeshift detection in installupdates.sh
|
||||
|
||||
Qtile:
|
||||
- Polybar removed from the dotfiles
|
||||
|
||||
Version 2.8
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8
|
||||
--------------------------------------------------------
|
||||
@@ -8,6 +132,8 @@ Hyprland:
|
||||
- New waybar idle-inhibator icon
|
||||
- New waybar theme ml4w-minimal
|
||||
- New window animation variation animation-moving.conf
|
||||
- New AI icon to open ChatGPT
|
||||
- Hyprland installation with hyprland package only. hyprland-git removed from the installer
|
||||
|
||||
Version 2.7.2
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.7.2
|
||||
@@ -1,345 +1,53 @@
|
||||
# ML4W dotfiles 2.8RC1
|
||||
# ML4W Dotfiles 2.9.1.2
|
||||
|
||||
This is my configuration of Hyprland (Wayland) and Qtile (X11) for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
|
||||
An advanced configuration of Hyprland for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v28/screenshot-28-1.png" alt="Click to watch on YouTube" /></a>
|
||||
[](screenshots/screenshot2.png)
|
||||
|
||||
PLEASE NOTE: This branch is the rolling release of the ML4W dotfiles and includes the latest changes.
|
||||
The ML4W Dotfiles are available as
|
||||
|
||||
Latest official release
|
||||
- main release (Official release): [https://gitlab.com/stephan-raabe/dotfiles](https://gitlab.com/stephan-raabe/dotfiles)
|
||||
- rolling release (Development release): [https://gitlab.com/stephan-raabe/dotfiles/-/tree/dev](https://gitlab.com/stephan-raabe/dotfiles/-/tree/dev)
|
||||
|
||||
You can find the installation video on YouTube: <a href="https://youtu.be/kHG5czrQ7WA" target="_blank">Install Arch Linux with Hyprland & Qtile</a>
|
||||
YouTube Video [https://youtu.be/HMxHUvN6VGo](https://youtu.be/HMxHUvN6VGo)
|
||||
|
||||
[TOC]
|
||||
## Installation
|
||||
|
||||
# Installation
|
||||
The installation should work on all Arch Linux based distributions. [You can find more information here](https://gitlab.com/stephan-raabe/dotfiles/-/wikis/home).
|
||||
|
||||
To make it easy for you to get started with the ML4W dotfiles, here's a list of recommended next steps.
|
||||
The easiest way is to use the setup.sh script. The script will download all files from GitLab and start the installation automatically.
|
||||
|
||||
The package includes an installation script install.sh that will guide you through all steps of the installation or update process.
|
||||
|
||||
## Supported platforms
|
||||
|
||||
The dotfiles are tested with the following Arch based distributions:
|
||||
|
||||
- Arch Linux (recommended)
|
||||
- Manjaro Linux
|
||||
- Arco Linux
|
||||
- EndeavourOS
|
||||
|
||||
But the installation should work on all Arch Linux based distributions as well.
|
||||
|
||||
For Arco Linux users: Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
|
||||
|
||||
## Before you start
|
||||
|
||||
PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.
|
||||
PLEASE READ THIS README until the end before starting the installation.
|
||||
|
||||
The installation script will try to create a backup from an previous dotfiles installation.
|
||||
|
||||
Please note: To get the default Linux folder structure incl. Downloads, etc please install the packages xdg-user-dirs and run xdg-user-dirs-update.
|
||||
|
||||
## Reference Installation
|
||||
|
||||
The reference installation on the dotfiles is based on Arch Linux installed with a minimal profile.
|
||||
|
||||
Please watch the video on YouTube: https://youtu.be/kHG5czrQ7WA
|
||||
|
||||
## Installation with GIT of Rolling Release
|
||||
Just copy/enter the following command into your terminal.
|
||||
|
||||
```
|
||||
# 1.) Change into your Downloads folder
|
||||
cd ~/Downloads
|
||||
|
||||
# 2.) Clone the dotfiles repository into the Downloads folder
|
||||
git clone https://gitlab.com/stephan-raabe/dotfiles.git
|
||||
|
||||
# 3.) Change into the dotfiles folder
|
||||
cd dotfiles
|
||||
|
||||
# 4.) Start the installation
|
||||
./install.sh
|
||||
|
||||
bash <(curl -s https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/setup.sh)
|
||||
```
|
||||
|
||||
## Installation with GIT of the latest release
|
||||
> PLEASE NOTE: Every Linux distribution, setup and personal configuration can be different. Therefore, I cannot guarantee that the ML4W Dotfiles will work everywhere. Installation at your own risk.
|
||||
|
||||
```
|
||||
# 1.) Change into your Downloads folder where you have downloaded the release to
|
||||
cd ~/Downloads
|
||||
## Wiki
|
||||
|
||||
# 2.) Unzip
|
||||
git clone --branch 2.7.2 https://gitlab.com/stephan-raabe/dotfiles.git
|
||||
You can find the complete documentation of the ML4W Dotfiles in the Wiki. <b>[Open the Wiki here](https://gitlab.com/stephan-raabe/dotfiles/-/wikis/home)</b>
|
||||
|
||||
# 3.) Change into the new dotfiles folder
|
||||
cd dotfiles
|
||||
## Contributing
|
||||
|
||||
# 4.) Start the installation to update
|
||||
./install.sh
|
||||
Thanks for using the ML4W Dotfiles on your system. If you find a problem or a bug, please [report your issue on this page](https://gitlab.com/stephan-raabe/dotfiles/-/issues/?sort=created_date&state=opened).
|
||||
|
||||
```
|
||||
You can also visit the [ML4W Discord Server](https://discord.gg/c4fJK7Za3g) to start a discussion with other users.
|
||||
|
||||
## Update with GIT
|
||||
## Screenshots
|
||||
|
||||
```
|
||||
# 1.) Change into your Downloads folder
|
||||
cd ~/Downloads/dotfiles
|
||||
[](screenshots/screenshot1.png)
|
||||
|
||||
# Switch to rolling release
|
||||
# git checkout origin/main
|
||||
[](screenshots/screenshot3.png)
|
||||
|
||||
# Switch to other version
|
||||
# git checkout 2.7.2
|
||||
[](screenshots/screenshot5.png)
|
||||
|
||||
# 2.) Pull the latest version and update the repository
|
||||
git stash; git pull
|
||||
|
||||
# 3.) Start the installation to update
|
||||
./install.sh
|
||||
|
||||
```
|
||||
|
||||
## Dotfiles Installer
|
||||
|
||||
You can also use the dotfiles installer script to download and install the latest release: https://gitlab.com/stephan-raabe/installer
|
||||
|
||||
## Installation Hook
|
||||
|
||||
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copying into the final destination in ~/dotfiles
|
||||
|
||||
If you want to modify the installation files just before the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
|
||||
|
||||
You can delete folders and files or update existing configurations.
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
rm -rf ~/dotfiles-versions/$version/vim/
|
||||
rm -rf ~/dotfiles-versions/$version/nvim/
|
||||
```
|
||||
|
||||
This script will for example remove the vim and nvim folder before the installation. The symbolic link will not be created because the source folder doesn't exits.
|
||||
|
||||
You can find a template in .install/templates/hook.sh
|
||||
|
||||
## Hyprland & NVIDIA
|
||||
|
||||
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
|
||||
|
||||
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
|
||||
https://wiki.hyprland.org/Nvidia/
|
||||
|
||||
## Launch Hyprland from tty
|
||||
|
||||
The suggested method to start Hyprland is from tty with the command Hyprland bacause login managers (display managers) are not official supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
|
||||
|
||||
```
|
||||
# Start Hyprland
|
||||
Hyprland
|
||||
```
|
||||
|
||||
You can install a custom tty login issue (layout) with the dotfiles installer.
|
||||
|
||||
## Launch Hyprland with a Display Manager
|
||||
|
||||
I made good experiences with the Display Manager SDDM (https://github.com/sddm/sddm). Also gdm could work.
|
||||
|
||||
Important is that you use the package sddm-git. You can replace sddm with sddm-git with
|
||||
|
||||
```
|
||||
yay -S sddm-git
|
||||
```
|
||||
|
||||
The dotfiles installation script will offer to deactivate the installed display manager and to activate SDDM.
|
||||
|
||||
The dotfiles package also includes a configuration for the SDDM theme sdd-sugar-candy (https://github.com/Kangie/sddm-sugar-candy) and a configuration to run SDDM in X11 mode to get the best compatibility.
|
||||
|
||||
With the Hyprland settings script you can copy the current wallpaper into SDDM and use it as a background.
|
||||
|
||||
Please check the troubleshooting section in case of issues.
|
||||
|
||||
## Installation in a KVM virtual machine
|
||||
|
||||
Qtile X11 works fine in a KVM virtual machine. The Hyprland performance is low but it's enough for testing new features.
|
||||
|
||||
In virt-manager please make sure that 3D acceleration is enabled in Video Virtio and the Listen type is set to None in Display Spice.
|
||||
|
||||
To fix the mouse issue on Hyprland, open the Hyprland settings with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> and select in Environments the variation kvm.conf
|
||||
|
||||
## Base Hyprland installation with Hyperland Starter
|
||||
|
||||
If you want to install only the core packages of Hyprland as a starting point for your Hyprland experiments please also try my Hyprland Starter script: https://gitlab.com/stephan-raabe/hyprland-starter
|
||||
|
||||
# Some important key bindings
|
||||
|
||||
- <kbd>SUPER</kbd> + <kbd>RETURN</kbd>: Alacritty
|
||||
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>RETURN</kbd>: rofi application launcher
|
||||
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd>: Change wallpaper
|
||||
- <kbd>SUPER</kbd> + <kbd>PRINT</kbd>: Screenshot
|
||||
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>Q</kbd>: Logout screen
|
||||
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd>: Settings script on Hyprland
|
||||
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>B</kbd>: Reload waybar on Hyprland
|
||||
|
||||
All keybindings for Hyprland with right mouse click on Apps in waybar or here:
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/keybindings.conf
|
||||
|
||||
All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/qtile/config.py
|
||||
|
||||
# Hyprland
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v28/screenshot-28-1.png" alt="Click to watch on YouTube" /></a>
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v28/screenshot-28-2.png" alt="Click to watch on YouTube" /></a>
|
||||
|
||||
<b><a href="https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/screenshots?ref_type=heads">You can find more screenshots here.</a></b>
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank">Watch on YouTube</a>
|
||||
|
||||
## ML4W Welcome App
|
||||
|
||||
After starting the ML4W dotfiles for the first time, the ML4W Welcome App appears. This app is the starting point to discover the Hyprland setup.
|
||||
|
||||
<img src="screenshots/screenshot-welcome.app.png" />
|
||||
|
||||
The welcome screen includes the most important keybindings to open a terminal or a browser.
|
||||
|
||||
You can start the ML4W Welcome App by clicking on the L icon on the right side in waybar or be entering ml4w in your terminal (if you're using the .bashrc from the dotfiles).
|
||||
|
||||
In the Settings Menu you can access the following functions:
|
||||
|
||||
- Update Wallpaper: Opens the wallpaper selector
|
||||
- Change Waybar Theme: Opens the waybar theme switcher and gives access to the available themes for the waybar status bar
|
||||
- Change GTK Theme: Opens nwg-look to select the theme for GTK 3 applications incl. widgets, icons and cursors
|
||||
- Refresh GTK Settings: Reloads the Hyprland GTK configuration (required when changing the mouse cursor)
|
||||
- Hyprland Settings: Opens the Hyprland Settings script to customize the look and feel, environment variables, monitor resolution, etc.
|
||||
- Network Settings: Select your network configuration incl. WiFi
|
||||
- Update your System: Starts the terminal application to update your Arch packages (pacman & yay)
|
||||
- Cleanup your System: Removes old orphans and cached files generated during previous installations
|
||||
- Reload Waybar: Reloads the waybar
|
||||
- Toggle Waybar: You can hide or show waybar when you want to try our other status bars.
|
||||
|
||||
You can find the sourcecode of the ML4W Welcome App in this repository:
|
||||
https://gitlab.com/stephan-raabe/ml4w-welcome
|
||||
|
||||
## Wallpaper and Pywal
|
||||
|
||||
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
|
||||
|
||||
<kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>W</kbd> opens rofi with a list of installed wallpapers in ~/wallpaper/ for your individual selection.
|
||||
|
||||
## Waybar themes and themeswitcher
|
||||
|
||||
In addition, you can switch the Waybar Template with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>T</kbd> or by pressing the "..." icon in Waybar with the themeswitcher.
|
||||
|
||||
The templates are available in ~/dotfiles/waybar/themes. You can add your own personal themes into this folder.
|
||||
|
||||
More information here: https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/waybar
|
||||
|
||||
## Hyprland settings
|
||||
|
||||
You can open the settings script with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to select variations for your hyprland.conf and customize your desktop even more.
|
||||
|
||||
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the settings script in the corresponding section.
|
||||
|
||||
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
|
||||
|
||||
You can also edit the file directly in the settings script in the section Custom.
|
||||
|
||||
## Screensharing and recording
|
||||
|
||||
In case you have issues with starting Waybar please make sure that only one xdg-desktop-portal-x is installed additionally to xdg-desktop-portal.
|
||||
|
||||
I had several issues with xdg-desktop-portal-wlr on Hyprland and Waybar. Please make sure that xdg-desktop-portal-wlr is uninstalled and xdg-desktop-portal-hyprland is installed.
|
||||
|
||||
More information you can find here:
|
||||
https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
|
||||
|
||||
Please note that every Arch Linux system is different and I cannot guarantee that everything works fine on your system.
|
||||
|
||||
## Main packages
|
||||
|
||||
- Terminal: alacritty
|
||||
- Editor: nvim
|
||||
- Prompt: starship
|
||||
- Icons: Font Awesome
|
||||
- Launch Menus: Rofi
|
||||
- Colorscheme: pywal
|
||||
- Browsers: chromium (brave optional)
|
||||
- Filemanager: Thunar
|
||||
- Cursor: Bibata Modern Ice
|
||||
- Icons: Papirus-Icon-Theme
|
||||
- Status Bar: waybar
|
||||
- Screenshots: grim & slurp
|
||||
- Clipboard Manager: cliphist
|
||||
- Logout: wlogout
|
||||
- Screenlock: swaylock-effects
|
||||
|
||||
# Qtile X11
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v27/screenshot-27-3.png" alt="Click to watch on YouTube" /></a>
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v27/screenshot-27-4.png" alt="Click to watch on YouTube" /></a>
|
||||
|
||||
## Wallpaper and Pywal
|
||||
|
||||
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
|
||||
|
||||
<kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>W</kbd> opens rofi with a list of installed wallpapers in ~/wallpaper/ for your individual selection.
|
||||
|
||||
## Main Packages
|
||||
|
||||
- Terminal: alacritty
|
||||
- Editor: nvim
|
||||
- Prompt: starship
|
||||
- Icons: Font Awesome
|
||||
- Launch Menus: Rofi
|
||||
- Colorscheme: pywal
|
||||
- Browsers: chromium (brave optional)
|
||||
- Filemanager: Thunar
|
||||
- Cursor: Bibata Modern Ice
|
||||
- Icons: Papirus-Icon-Theme
|
||||
- Status Bar: Qtile status bar
|
||||
- Compositor: picom
|
||||
- Screenshots: scrot
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## Missing icons in waybar
|
||||
|
||||
In case of missing icons on waybar, it's due to a conflict between several installed fonts (can happen especially on Arco Linux). Please make sure that ttf-ms-fonts is uninstalled and ttf-font-awesome and otf-font-awesome are installed with
|
||||
|
||||
```
|
||||
yay -R ttf-ms-fonts
|
||||
yay -S ttf-font-awesome otf-font-awesome
|
||||
```
|
||||
|
||||
## SDDM not showing (only black screen with cursor)
|
||||
|
||||
Switch to another tty with <kbd>CTRL</kbd> + <kbd>ALT</kbd> + <kbd>F3</kbd> Now you can login with your user.
|
||||
|
||||
Start Hyprland with Hyprland.
|
||||
|
||||
You can try to reinstall all sddm related packages.
|
||||
|
||||
```
|
||||
yay -S sddm-git sddm-sugar-candy-git
|
||||
```
|
||||
|
||||
Or you can install another display manager.
|
||||
|
||||
To stop, disable and remove sddm service.
|
||||
|
||||
```
|
||||
sudo systemctl stop sddm.service
|
||||
sudo systemctl disable sddm.service
|
||||
sudo rm /etc/systemd/system/display-manager.service
|
||||
```
|
||||
|
||||
# Wallpaper repository
|
||||
## Wallpaper repository
|
||||
|
||||
You can find my wallpaper collection in the repository https://gitlab.com/stephan-raabe/wallpaper
|
||||
|
||||
# Special Thanks
|
||||
## Special Thanks
|
||||
|
||||
THANK YOU very much for all your support, contributions and ideas:
|
||||
|
||||
@@ -347,17 +55,20 @@ THANK YOU very much for all your support, contributions and ideas:
|
||||
- Don Williams: https://github.com/dwilliam62
|
||||
- Teodor Orzechowski: https://gitlab.com/sq6gtt
|
||||
- Jamie Deppeler: https://gitlab.com/bknight2k
|
||||
- Yingjie Wang: https://gitlab.com/GaugeAndGravity
|
||||
- Daniel Gerber: https://gitlab.com/dan.john.gerber
|
||||
- https://gitlab.com/muee
|
||||
|
||||
and many more...
|
||||
|
||||
Thanks to all YouTube subscribers for all your great feedback.
|
||||
|
||||
# Inspirations
|
||||
## Inspirations
|
||||
|
||||
The following projects have inspired me:
|
||||
|
||||
- https://github.com/dianaw353/hyprland-configuration-rootfs
|
||||
- https://github.com/prasanthrangan/hyprdots
|
||||
- https://github.com/sudo-harun/dotfiles
|
||||
- https://github.com/dianaw353/hyprland-configuration-rootfs
|
||||
|
||||
and many more...
|
||||
|
||||
@@ -1,905 +0,0 @@
|
||||
# _ _ _ _ _
|
||||
# / \ | | __ _ ___ _ __(_) |_| |_ _ _
|
||||
# / _ \ | |/ _` |/ __| '__| | __| __| | | |
|
||||
# / ___ \| | (_| | (__| | | | |_| |_| |_| |
|
||||
# /_/ \_\_|\__,_|\___|_| |_|\__|\__|\__, |
|
||||
# |___/
|
||||
# by Stephan Raabe (2023)
|
||||
# -----------------------------------------------------
|
||||
#
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
#
|
||||
# Import additional configuration files
|
||||
#
|
||||
# Imports are loaded in order, skipping all missing files, with the importing
|
||||
# file being loaded last. If a field is already present in a previous import, it
|
||||
# will be replaced.
|
||||
#
|
||||
# All imports must either be absolute paths starting with `/`, or paths relative
|
||||
# to the user's home directory starting with `~/`.
|
||||
#import:
|
||||
# - /path/to/alacritty.yml
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
#env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
#TERM: alacritty
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Number of lines/columns (not pixels) in the terminal. Both lines and columns
|
||||
# must be non-zero for this to take effect. The number of columns must be at
|
||||
# least `2`, while using a value of `0` for columns and lines will fall back
|
||||
# to the window manager's recommended size
|
||||
#dimensions:
|
||||
# columns: 0
|
||||
# lines: 0
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
padding:
|
||||
x: 15
|
||||
y: 15
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
#dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background and no title bar buttons
|
||||
#decorations: full
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
opacity: 0.7
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
#startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
#dynamic_title: true
|
||||
|
||||
# Window class (Linux/BSD only):
|
||||
#class:
|
||||
# Application instance name
|
||||
#instance: Alacritty
|
||||
# General application class
|
||||
#general: Alacritty
|
||||
|
||||
# Decorations theme variant (Linux/BSD only)
|
||||
#
|
||||
# Override the variant of the GTK theme/Wayland client side decorations.
|
||||
# Commonly supported values are `dark` and `light`. Set this to `None` to use
|
||||
# the default theme variant.
|
||||
#decorations_theme_variant: None
|
||||
|
||||
#scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
#history: 10000
|
||||
|
||||
# Scrolling distance multiplier.
|
||||
#multiplier: 3
|
||||
|
||||
# Font configuration
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux/BSD) monospace
|
||||
# - (Windows) Consolas
|
||||
family: FiraCode Nerd Font
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
style: Regular
|
||||
|
||||
# Bold font face
|
||||
#bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold
|
||||
|
||||
# Italic font face
|
||||
#italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Italic
|
||||
|
||||
# Bold italic font face
|
||||
#bold_italic:
|
||||
# Font family
|
||||
#
|
||||
# If the bold italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold Italic
|
||||
|
||||
# Point size
|
||||
size: 12.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought
|
||||
# of as modifying the line spacing, and `offset.x` as modifying the letter
|
||||
# spacing.
|
||||
#offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the
|
||||
# right, increasing `y` moves the glyph upward.
|
||||
#glyph_offset:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Use built-in font for box drawing characters.
|
||||
#
|
||||
# If `true`, Alacritty will use a custom built-in font for box drawing
|
||||
# characters (Unicode points 2500 - 259f).
|
||||
#
|
||||
#builtin_box_drawing: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
#draw_bold_text_with_bright_colors: false
|
||||
|
||||
# Colors (Tomorrow Night)
|
||||
# colors:
|
||||
# Default colors
|
||||
# primary:
|
||||
# background: '#1d1f21'
|
||||
# background: '#000000'
|
||||
# foreground: '#c5c8c6'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not
|
||||
# present. If the bright foreground color is not set, or
|
||||
# `draw_bold_text_with_bright_colors` is `false`, the normal foreground
|
||||
# color will be used.
|
||||
#dim_foreground: '#828482'
|
||||
#bright_foreground: '#eaeaea'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor.
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#cursor:
|
||||
# text: CellBackground
|
||||
# cursor: CellForeground
|
||||
|
||||
# Vi mode cursor colors
|
||||
#
|
||||
# Colors for the cursor when the vi mode is active.
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#vi_mode_cursor:
|
||||
# text: CellBackground
|
||||
# cursor: CellForeground
|
||||
|
||||
# Search colors
|
||||
#
|
||||
# Colors used for the search bar and match highlighting.
|
||||
#search:
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#matches:
|
||||
# foreground: '#000000'
|
||||
# background: '#ffffff'
|
||||
#focused_match:
|
||||
# foreground: '#ffffff'
|
||||
# background: '#000000'
|
||||
|
||||
# Keyboard hints
|
||||
#hints:
|
||||
# First character in the hint label
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#start:
|
||||
# foreground: '#1d1f21'
|
||||
# background: '#e9ff5e'
|
||||
|
||||
# All characters after the first one in the hint label
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#end:
|
||||
# foreground: '#e9ff5e'
|
||||
# background: '#1d1f21'
|
||||
|
||||
# Line indicator
|
||||
#
|
||||
# Color used for the indicator displaying the position in history during
|
||||
# search and vi mode.
|
||||
#
|
||||
# By default, these will use the opposing primary color.
|
||||
#line_indicator:
|
||||
# foreground: None
|
||||
# background: None
|
||||
|
||||
# Footer bar
|
||||
#
|
||||
# Color used for the footer bar on the bottom, used by search regex input,
|
||||
# hyperlink URI preview, etc.
|
||||
#
|
||||
#footer_bar:
|
||||
# background: '#c5c8c6'
|
||||
# foreground: '#1d1f21'
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area.
|
||||
#
|
||||
# Allowed values are CellForeground/CellBackground, which reference the
|
||||
# affected cell, or hexadecimal colors like #ff00ff.
|
||||
#selection:
|
||||
# text: CellBackground
|
||||
# background: CellForeground
|
||||
|
||||
# Normal colors
|
||||
#normal:
|
||||
# black: '#1d1f21'
|
||||
# red: '#cc6666'
|
||||
# green: '#b5bd68'
|
||||
# yellow: '#f0c674'
|
||||
# blue: '#81a2be'
|
||||
# magenta: '#b294bb'
|
||||
# cyan: '#8abeb7'
|
||||
# white: '#c5c8c6'
|
||||
|
||||
# Bright colors
|
||||
#bright:
|
||||
# black: '#666666'
|
||||
# red: '#d54e53'
|
||||
# green: '#b9ca4a'
|
||||
# yellow: '#e7c547'
|
||||
# blue: '#7aa6da'
|
||||
# magenta: '#c397d8'
|
||||
# cyan: '#70c0b1'
|
||||
# white: '#eaeaea'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '#131415'
|
||||
# red: '#864343'
|
||||
# green: '#777c44'
|
||||
# yellow: '#9e824c'
|
||||
# blue: '#556a7d'
|
||||
# magenta: '#75617b'
|
||||
# cyan: '#5b7d78'
|
||||
# white: '#828482'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '#ff00ff' }`
|
||||
#
|
||||
#indexed_colors: []
|
||||
|
||||
# Transparent cell backgrounds
|
||||
#
|
||||
# Whether or not `window.opacity` applies to all cell backgrounds or only to
|
||||
# the default background. When set to `true` all cells will be transparent
|
||||
# regardless of their background color.
|
||||
#transparent_background_colors: false
|
||||
|
||||
# Bell
|
||||
#
|
||||
# The bell is rung every time the BEL control character is received.
|
||||
#bell:
|
||||
# Visual Bell Animation
|
||||
#
|
||||
# Animation effect for flashing the screen when the visual bell is rung.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#animation: EaseOutExpo
|
||||
|
||||
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
||||
# disable the visual bell animation.
|
||||
#duration: 0
|
||||
|
||||
# Visual bell animation color.
|
||||
#color: '#ffffff'
|
||||
|
||||
# Bell Command
|
||||
#
|
||||
# This program is executed whenever the bell is rung.
|
||||
#
|
||||
# When set to `command: None`, no command will be executed.
|
||||
#
|
||||
# Example:
|
||||
# command:
|
||||
# program: notify-send
|
||||
# args: ["Hello, World!"]
|
||||
#
|
||||
#command: None
|
||||
|
||||
#selection:
|
||||
# This string contains all characters that are used as separators for
|
||||
# "semantic words" in Alacritty.
|
||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
#save_to_clipboard: false
|
||||
|
||||
#cursor:
|
||||
# Cursor style
|
||||
#style:
|
||||
# Cursor shape
|
||||
#
|
||||
# Values for `shape`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
#shape: Block
|
||||
|
||||
# Cursor blinking state
|
||||
#
|
||||
# Values for `blinking`:
|
||||
# - Never: Prevent the cursor from ever blinking
|
||||
# - Off: Disable blinking by default
|
||||
# - On: Enable blinking by default
|
||||
# - Always: Force the cursor to always blink
|
||||
#blinking: Off
|
||||
|
||||
# Vi mode cursor style
|
||||
#
|
||||
# If the vi mode cursor style is `None` or not specified, it will fall back to
|
||||
# the style of the active value of the normal cursor.
|
||||
#
|
||||
# See `cursor.style` for available options.
|
||||
#vi_mode_style: None
|
||||
|
||||
# Cursor blinking interval in milliseconds.
|
||||
#blink_interval: 750
|
||||
|
||||
# Time after which cursor stops blinking, in seconds.
|
||||
#
|
||||
# Specifying '0' will disable timeout for blinking.
|
||||
#blink_timeout: 5
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
#unfocused_hollow: true
|
||||
|
||||
# Thickness of the cursor relative to the cell width as floating point number
|
||||
# from `0.0` to `1.0`.
|
||||
#thickness: 0.15
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
#live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g.
|
||||
# `/bin/fish`. Entries in `shell.args` are passed unmodified as arguments to the
|
||||
# shell.
|
||||
#
|
||||
# Default:
|
||||
# - (Linux/BSD/macOS) `$SHELL` or the user's login shell, if `$SHELL` is unset
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
#working_directory: None
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
#alt_send_esc: true
|
||||
|
||||
# Offer IPC using `alacritty msg` (unix only)
|
||||
#ipc_socket: true
|
||||
|
||||
#mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
#double_click: { threshold: 300 }
|
||||
#triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
#hide_when_typing: false
|
||||
|
||||
# Hints
|
||||
#
|
||||
# Terminal hints can be used to find text or hyperlink in the visible part of
|
||||
# the terminal and pipe it to other applications.
|
||||
#hints:
|
||||
# Keys used for the hint labels.
|
||||
#alphabet: "jfkdls;ahgurieowpq"
|
||||
|
||||
# List with all available hints
|
||||
#
|
||||
# Each hint must have any of `regex` or `hyperlinks` field and either an
|
||||
# `action` or a `command` field. The fields `mouse`, `binding` and
|
||||
# `post_processing` are optional.
|
||||
#
|
||||
# The `hyperlinks` option will cause OSC 8 escape sequence hyperlinks to be
|
||||
# highlighted.
|
||||
#
|
||||
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
||||
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
||||
#
|
||||
# The `mouse.enabled` field controls if the hint should be underlined while
|
||||
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
||||
#
|
||||
# If the `post_processing` field is set to `true`, heuristics will be used to
|
||||
# shorten the match if there are characters likely not to be part of the hint
|
||||
# (e.g. a trailing `.`). This is most useful for URIs and applies only to
|
||||
# `regex` matches.
|
||||
#
|
||||
# Values for `action`:
|
||||
# - Copy
|
||||
# Copy the hint's text to the clipboard.
|
||||
# - Paste
|
||||
# Paste the hint's text to the terminal or search.
|
||||
# - Select
|
||||
# Select the hint's text.
|
||||
# - MoveViModeCursor
|
||||
# Move the vi mode cursor to the beginning of the hint.
|
||||
#enabled:
|
||||
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
||||
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
||||
# hyperlinks: true
|
||||
# command: xdg-open
|
||||
# post_processing: true
|
||||
# mouse:
|
||||
# enabled: true
|
||||
# mods: None
|
||||
# binding:
|
||||
# key: U
|
||||
# mods: Control|Shift
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Mouse bindings are specified as a list of objects, much like the key
|
||||
# bindings further below.
|
||||
#
|
||||
# To trigger mouse bindings when an application running within Alacritty
|
||||
# captures the mouse, the `Shift` modifier is automatically added as a
|
||||
# requirement.
|
||||
#
|
||||
# Each mouse binding will specify a:
|
||||
#
|
||||
# - `mouse`:
|
||||
#
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# - `action` (see key bindings for actions not exclusive to mouse mode)
|
||||
#
|
||||
# - Mouse exclusive actions:
|
||||
#
|
||||
# - ExpandSelection
|
||||
# Expand the selection to the current mouse cursor location.
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods` (see key bindings)
|
||||
#mouse_bindings:
|
||||
# - { mouse: Right, action: ExpandSelection }
|
||||
# - { mouse: Right, mods: Control, action: ExpandSelection }
|
||||
# - { mouse: Middle, mode: ~Vi, action: PasteSelection }
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. For example, this is the
|
||||
# default paste binding:
|
||||
#
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Each key binding will specify a:
|
||||
#
|
||||
# - `key`: Identifier of the key pressed
|
||||
#
|
||||
# - A-Z
|
||||
# - F1-F24
|
||||
# - Key0-Key9
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/event/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number. This command will allow you to display the hex scancodes
|
||||
# for certain keys:
|
||||
#
|
||||
# `showkey --scancodes`.
|
||||
#
|
||||
# Then exactly one of:
|
||||
#
|
||||
# - `chars`: Send a byte sequence to the running application
|
||||
#
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences. To find escape codes for bindings
|
||||
# like `PageUp` (`"\x1b[5~"`), you can run the command `showkey -a` outside
|
||||
# of tmux. Note that applications use terminfo to map escape sequences back
|
||||
# to keys. It is therefore required to update the terminfo when changing an
|
||||
# escape sequence.
|
||||
#
|
||||
# - `action`: Execute a predefined action
|
||||
#
|
||||
# - ToggleViMode
|
||||
# - SearchForward
|
||||
# Start searching toward the right of the search origin.
|
||||
# - SearchBackward
|
||||
# Start searching toward the left of the search origin.
|
||||
# - Copy
|
||||
# - Paste
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollHalfPageUp
|
||||
# - ScrollHalfPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# Remove the terminal's scrollback history.
|
||||
# - Hide
|
||||
# Hide the Alacritty window.
|
||||
# - Minimize
|
||||
# Minimize the Alacritty window.
|
||||
# - Quit
|
||||
# Quit Alacritty.
|
||||
# - ToggleFullscreen
|
||||
# - SpawnNewInstance
|
||||
# Spawn a new instance of Alacritty.
|
||||
# - CreateNewWindow
|
||||
# Create a new Alacritty window from the current process.
|
||||
# - ClearLogNotice
|
||||
# Clear Alacritty's UI warning and error notice.
|
||||
# - ClearSelection
|
||||
# Remove the active selection.
|
||||
# - ReceiveChar
|
||||
# - None
|
||||
#
|
||||
# - Vi mode exclusive actions:
|
||||
#
|
||||
# - Open
|
||||
# Perform the action of the first matching hint under the vi mode cursor
|
||||
# with `mouse.enabled` set to `true`.
|
||||
# - ToggleNormalSelection
|
||||
# - ToggleLineSelection
|
||||
# - ToggleBlockSelection
|
||||
# - ToggleSemanticSelection
|
||||
# Toggle semantic selection based on `selection.semantic_escape_chars`.
|
||||
# - CenterAroundViCursor
|
||||
# Center view around vi mode cursor
|
||||
#
|
||||
# - Vi mode exclusive cursor motion actions:
|
||||
#
|
||||
# - Up
|
||||
# One line up.
|
||||
# - Down
|
||||
# One line down.
|
||||
# - Left
|
||||
# One character left.
|
||||
# - Right
|
||||
# One character right.
|
||||
# - First
|
||||
# First column, or beginning of the line when already at the first column.
|
||||
# - Last
|
||||
# Last column, or beginning of the line when already at the last column.
|
||||
# - FirstOccupied
|
||||
# First non-empty cell in this terminal row, or first non-empty cell of
|
||||
# the line when already at the first cell of the row.
|
||||
# - High
|
||||
# Top of the screen.
|
||||
# - Middle
|
||||
# Center of the screen.
|
||||
# - Low
|
||||
# Bottom of the screen.
|
||||
# - SemanticLeft
|
||||
# Start of the previous semantically separated word.
|
||||
# - SemanticRight
|
||||
# Start of the next semantically separated word.
|
||||
# - SemanticLeftEnd
|
||||
# End of the previous semantically separated word.
|
||||
# - SemanticRightEnd
|
||||
# End of the next semantically separated word.
|
||||
# - WordLeft
|
||||
# Start of the previous whitespace separated word.
|
||||
# - WordRight
|
||||
# Start of the next whitespace separated word.
|
||||
# - WordLeftEnd
|
||||
# End of the previous whitespace separated word.
|
||||
# - WordRightEnd
|
||||
# End of the next whitespace separated word.
|
||||
# - Bracket
|
||||
# Character matching the bracket at the cursor's location.
|
||||
# - SearchNext
|
||||
# Beginning of the next match.
|
||||
# - SearchPrevious
|
||||
# Beginning of the previous match.
|
||||
# - SearchStart
|
||||
# Start of the match to the left of the vi mode cursor.
|
||||
# - SearchEnd
|
||||
# End of the match to the right of the vi mode cursor.
|
||||
#
|
||||
# - Search mode exclusive actions:
|
||||
# - SearchFocusNext
|
||||
# Move the focus to the next search match.
|
||||
# - SearchFocusPrevious
|
||||
# Move the focus to the previous search match.
|
||||
# - SearchConfirm
|
||||
# - SearchCancel
|
||||
# - SearchClear
|
||||
# Reset the search regex.
|
||||
# - SearchDeleteWord
|
||||
# Delete the last word in the search regex.
|
||||
# - SearchHistoryPrevious
|
||||
# Go to the previous regex in the search history.
|
||||
# - SearchHistoryNext
|
||||
# Go to the next regex in the search history.
|
||||
#
|
||||
# - macOS exclusive actions:
|
||||
# - ToggleSimpleFullscreen
|
||||
# Enter fullscreen without occupying another space.
|
||||
#
|
||||
# - Linux/BSD exclusive actions:
|
||||
#
|
||||
# - CopySelection
|
||||
# Copy from the selection buffer.
|
||||
# - PasteSelection
|
||||
# Paste from the selection buffer.
|
||||
#
|
||||
# - `command`: Fork and execute a specified command plus arguments
|
||||
#
|
||||
# The `command` field must be a map containing a `program` string and an
|
||||
# `args` array of command line parameter strings. For example:
|
||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# And optionally:
|
||||
#
|
||||
# - `mods`: Key modifiers to filter binding actions
|
||||
#
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this:
|
||||
# `mods: Control|Shift`.
|
||||
# Whitespace and capitalization are relevant and must match the example.
|
||||
#
|
||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
||||
#
|
||||
# This is mainly used to send applications the correct escape sequences
|
||||
# when in different modes.
|
||||
#
|
||||
# - AppCursor
|
||||
# - AppKeypad
|
||||
# - Search
|
||||
# - Alt
|
||||
# - Vi
|
||||
#
|
||||
# A `~` operator can be used before a mode to apply the binding whenever
|
||||
# the mode is *not* active, e.g. `~Alt`.
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new
|
||||
# binding with the same triggers is defined. To unset a default binding, it can
|
||||
# be mapped to the `ReceiveChar` action. Alternatively, you can use `None` for
|
||||
# a no-op if you do not wish to receive input characters for that binding.
|
||||
#
|
||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
||||
# in the order they were defined in.
|
||||
#key_bindings:
|
||||
#- { key: Paste, action: Paste }
|
||||
#- { key: Copy, action: Copy }
|
||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
||||
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp }
|
||||
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
||||
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop }
|
||||
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
||||
|
||||
# Vi Mode
|
||||
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
||||
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
||||
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
||||
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
||||
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
||||
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
||||
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
||||
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
||||
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
||||
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
||||
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
||||
#- { key: Y, mode: Vi|~Search, action: Copy }
|
||||
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
||||
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
||||
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
||||
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
||||
#- { key: Return, mode: Vi|~Search, action: Open }
|
||||
#- { key: Z, mode: Vi|~Search, action: CenterAroundViCursor }
|
||||
#- { key: K, mode: Vi|~Search, action: Up }
|
||||
#- { key: J, mode: Vi|~Search, action: Down }
|
||||
#- { key: H, mode: Vi|~Search, action: Left }
|
||||
#- { key: L, mode: Vi|~Search, action: Right }
|
||||
#- { key: Up, mode: Vi|~Search, action: Up }
|
||||
#- { key: Down, mode: Vi|~Search, action: Down }
|
||||
#- { key: Left, mode: Vi|~Search, action: Left }
|
||||
#- { key: Right, mode: Vi|~Search, action: Right }
|
||||
#- { key: Key0, mode: Vi|~Search, action: First }
|
||||
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
||||
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
||||
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
||||
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
||||
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
||||
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
||||
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
||||
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
||||
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
||||
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
||||
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
||||
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
||||
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
||||
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
||||
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
||||
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
||||
|
||||
# Search Mode
|
||||
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
||||
#- { key: Escape, mode: Search, action: SearchCancel }
|
||||
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
||||
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
||||
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
||||
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
||||
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
||||
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
||||
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
||||
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
||||
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
||||
|
||||
# (Windows, Linux, and BSD only)
|
||||
#- { key: V, mods: Control|Shift, mode: ~Vi, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
||||
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
||||
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Plus, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
||||
|
||||
# (Windows only)
|
||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
||||
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Plus, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
|
||||
#- { key: M, mods: Command, action: Minimize }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
#- { key: N, mods: Command, action: SpawnNewInstance }
|
||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
||||
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
||||
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
||||
|
||||
#debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
#render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
#persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - Off
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
#log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
#print_events: false
|
||||
|
||||
# Highlight window damage information.
|
||||
#highlight_damage: false
|
||||
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=ML4W Dotfiles Settings App
|
||||
Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
||||
Icon=HOME/dotfiles/apps/ml4w-dotfiles-settings.png
|
||||
Terminal=false
|
||||
Categories=Utility
|
||||
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=ML4W Hyprland Settings App
|
||||
Exec=HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage
|
||||
Icon=HOME/dotfiles/apps/ml4w-hyprland-settings.png
|
||||
Terminal=false
|
||||
Categories=Utility
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 23 KiB |
@@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=ML4W Welcome App
|
||||
Exec=HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage
|
||||
Icon=HOME/dotfiles/apps/ml4w-icon.png
|
||||
Terminal=false
|
||||
Categories=Utility
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -102,7 +102,7 @@
|
||||
|
||||
# Defines width in pixels of frame around the notification window.
|
||||
# Set to 0 to disable.
|
||||
frame_width = 3
|
||||
frame_width = 1
|
||||
|
||||
# Defines color of the frame around the notification window.
|
||||
frame_color = "#ffffff"
|
||||
@@ -133,7 +133,7 @@
|
||||
|
||||
### Text ###
|
||||
|
||||
font = "Fira Sans Semibold" 11
|
||||
font = "Fira Sans Semibold" 9
|
||||
|
||||
# The spacing between lines. If the height is smaller than the
|
||||
# font height, it will get raised to the font height.
|
||||
@@ -181,7 +181,7 @@
|
||||
|
||||
# Vertical alignment of message text and icon.
|
||||
# Possible values are "top", "center" and "bottom".
|
||||
vertical_alignment = top
|
||||
vertical_alignment = center
|
||||
|
||||
# Show age of message if message is older than show_age_threshold
|
||||
# seconds.
|
||||
@@ -323,21 +323,21 @@
|
||||
[urgency_low]
|
||||
# IMPORTANT: colors have to be defined in quotation marks.
|
||||
# Otherwise the "#" and following would be interpreted as a comment.
|
||||
background = "#00000070"
|
||||
background = "#000000CC"
|
||||
foreground = "#888888"
|
||||
timeout = 6
|
||||
# Icon for notifications with low urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_normal]
|
||||
background = "#00000070"
|
||||
background = "#000000CC"
|
||||
foreground = "#ffffff"
|
||||
timeout = 6
|
||||
# Icon for notifications with normal urgency, uncomment to enable
|
||||
#default_icon = /path/to/icon
|
||||
|
||||
[urgency_critical]
|
||||
background = "#90000070"
|
||||
background = "#900000CC"
|
||||
foreground = "#ffffff"
|
||||
frame_color = "#ffffff"
|
||||
timeout = 6
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path style="fill:#dfdfdf" d="m 3 5 v 0.003906 c -0.265625 0 -0.519531 0.105469 -0.707031 0.289063 l -2 2 c -0.3906252 0.390625 -0.3906252 1.023437 0 1.414062 l 2 2 c 0.1875 0.183594 0.441406 0.289063 0.707031 0.285157 v 0.007812 h 1 v -2 h 5 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 h -5 v -2 z m 0 0"/>
|
||||
<path style="fill:#dfdfdf" d="m 12 1 c 1.644531 0 3 1.355469 3 3 v 8 c 0 1.644531 -1.355469 3 -3 3 h -4 c -1.644531 0 -3 -1.355469 -3 -3 v -1 c 0 -0.550781 0.449219 -1 1 -1 s 1 0.449219 1 1 v 1 c 0 0.570312 0.429688 1 1 1 h 4 c 0.570312 0 1 -0.429688 1 -1 v -8 c 0 -0.570312 -0.429688 -1 -1 -1 h -4 c -0.570312 0 -1 0.429688 -1 1 v 1 c 0 0.550781 -0.449219 1 -1 1 s -1 -0.449219 -1 -1 v -1 c 0 -1.644531 1.355469 -3 3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 929 B |
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path style="fill:#dfdfdf" d="m 3 1 h 3 c 0.550781 0 1 0.449219 1 1 v 12 c 0 0.550781 -0.449219 1 -1 1 h -3 c -0.550781 0 -1 -0.449219 -1 -1 v -12 c 0 -0.550781 0.449219 -1 1 -1 z m 0 0"/>
|
||||
<path style="fill:#dfdfdf" d="m 10 1 h 3 c 0.550781 0 1 0.449219 1 1 v 12 c 0 0.550781 -0.449219 1 -1 1 h -3 c -0.550781 0 -1 -0.449219 -1 -1 v -12 c 0 -0.550781 0.449219 -1 1 -1 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 561 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 8 1 c -2.199219 0 -4 1.800781 -4 4 v 2 c -1.109375 0 -2 0.890625 -2 2 v 5 c 0 0.554688 0.445312 1 1 1 h 10 c 0.554688 0 1 -0.445312 1 -1 v -5 c 0 -1.109375 -0.890625 -2 -2 -2 v -2 c 0 -2.199219 -1.800781 -4 -4 -4 z m 0 2 c 1.125 0 2 0.875 2 2 v 2 h -4 v -2 c 0 -1.125 0.875 -2 2 -2 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 478 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 8 0 c -0.550781 0 -1 0.449219 -1 1 v 5 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -5 c 0 -0.550781 -0.449219 -1 -1 -1 z m -7 1 l 2.050781 2.050781 c -2.117187 2.117188 -2.652343 5.355469 -1.332031 8.039063 c 1.324219 2.683594 4.214844 4.238281 7.179688 3.851562 c 2.96875 -0.386718 5.367187 -2.625 5.960937 -5.554687 c 0.59375 -2.933594 -0.75 -5.929688 -3.335937 -7.433594 c -0.476563 -0.28125 -1.089844 -0.117187 -1.367188 0.359375 s -0.117188 1.089844 0.359375 1.367188 c 1.851563 1.078124 2.808594 3.207031 2.382813 5.3125 c -0.421876 2.101562 -2.128907 3.691406 -4.253907 3.96875 c -2.128906 0.273437 -4.183593 -0.828126 -5.128906 -2.753907 s -0.566406 -4.226562 0.949219 -5.742187 l 1.535156 1.535156 v -4.003906 c 0 -0.519532 -0.449219 -0.996094 -1 -0.996094 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 967 B |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 8 0 c -0.550781 0 -1 0.449219 -1 1 v 5 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -5 c 0 -0.550781 -0.449219 -1 -1 -1 z m -3.136719 1.816406 c -0.128906 0.015625 -0.253906 0.058594 -0.367187 0.125 c -2.734375 1.582032 -4.074219 4.816406 -3.257813 7.871094 c 0.820313 3.050781 3.59375 5.183594 6.75 5.1875 c 3.160157 0.003906 5.941407 -2.121094 6.765625 -5.167969 c 0.828125 -3.050781 -0.5 -6.289062 -3.230468 -7.878906 c -0.476563 -0.28125 -1.089844 -0.121094 -1.367188 0.359375 c -0.132812 0.226562 -0.171875 0.5 -0.105469 0.757812 c 0.070313 0.257813 0.234375 0.476563 0.464844 0.609376 c 1.957031 1.140624 2.902344 3.441406 2.3125 5.628906 c -0.59375 2.183594 -2.570313 3.695312 -4.832031 3.691406 c -2.265625 -0.003906 -4.238282 -1.519531 -4.824219 -3.707031 s 0.363281 -4.488281 2.324219 -5.621094 c 0.476562 -0.277344 0.640625 -0.886719 0.363281 -1.363281 c -0.132813 -0.230469 -0.347656 -0.398438 -0.605469 -0.464844 c -0.125 -0.035156 -0.257812 -0.042969 -0.390625 -0.027344 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 4 4 h 1 h 0.03125 c 0.253906 0.011719 0.511719 0.128906 0.6875 0.3125 l 2.28125 2.28125 l 2.3125 -2.28125 c 0.265625 -0.230469 0.445312 -0.304688 0.6875 -0.3125 h 1 v 1 c 0 0.285156 -0.035156 0.550781 -0.25 0.75 l -2.28125 2.28125 l 2.25 2.25 c 0.1875 0.1875 0.28125 0.453125 0.28125 0.71875 v 1 h -1 c -0.265625 0 -0.53125 -0.09375 -0.71875 -0.28125 l -2.28125 -2.28125 l -2.28125 2.28125 c -0.1875 0.1875 -0.453125 0.28125 -0.71875 0.28125 h -1 v -1 c 0 -0.265625 0.09375 -0.53125 0.28125 -0.71875 l 2.28125 -2.25 l -2.28125 -2.28125 c -0.210938 -0.195312 -0.304688 -0.46875 -0.28125 -0.75 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 788 B |
@@ -0,0 +1,78 @@
|
||||
*{
|
||||
all: unset;
|
||||
font-family: "Fira Sans";
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.winbox {
|
||||
background-color: #242424;
|
||||
opacity: 0.85;
|
||||
border: 1px solid #444444;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 0 4px 2px #000000;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.res_box {
|
||||
background-color: #242424;
|
||||
border-radius: 12px;
|
||||
padding: 14px 18px 14px 18px;
|
||||
}
|
||||
|
||||
.res_circle {
|
||||
background-color: #FFFFFF;
|
||||
border: 0px solid #161616;
|
||||
color:#FFFFFF;
|
||||
border-radius: 100%;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.ml4w_icon {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 48px;
|
||||
min-height: 48px;
|
||||
min-width: 48px;
|
||||
}
|
||||
|
||||
.res_circle_small {
|
||||
background-color: #242424;
|
||||
border: 0px solid #161616;
|
||||
border-radius: 100%;
|
||||
padding: 40px;
|
||||
color:#FFFFFF;
|
||||
}
|
||||
|
||||
.res_text {
|
||||
border-radius: 16px;
|
||||
color: #FFFFFF;
|
||||
font-size : 16px;
|
||||
padding: 0px 8px 0px 8px;
|
||||
margin: 0px 0px 0px 0px;
|
||||
font-weight : bold;
|
||||
}
|
||||
|
||||
.res_cpu {
|
||||
color: #19cddb;
|
||||
}
|
||||
|
||||
.res_mem {
|
||||
color: #a5deb7;
|
||||
}
|
||||
|
||||
.res_disk {
|
||||
color: #cfb3ff;
|
||||
}
|
||||
|
||||
.powericons {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 30px;
|
||||
min-height: 30px;
|
||||
min-width: 30px;
|
||||
}
|
||||
|
||||
.closeicon {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 16px;
|
||||
min-height: 16px;
|
||||
min-width: 16px;
|
||||
}
|
||||
@@ -0,0 +1,184 @@
|
||||
;; Icons: https://github.com/GNOME/adwaita-icon-theme/tree/master/Adwaita
|
||||
|
||||
;; Variables
|
||||
|
||||
;; System vars
|
||||
(defpoll HOST :interval "5s" `hostname`)
|
||||
(defpoll CPU_USAGE :interval "1s" `../scripts/sys_info.sh --cpu`)
|
||||
(defpoll MEM_USAGE :interval "1s" `../scripts/sys_info.sh --mem`)
|
||||
(defpoll DISK_USAGE :interval "1s" `../scripts/sys_info.sh --disk`)
|
||||
|
||||
;; Widgets
|
||||
|
||||
;; resources
|
||||
(defwidget ml4wlauncher []
|
||||
(box :class "winbox"
|
||||
(centerbox :orientation "h"
|
||||
(box :class "ml4w-welcome" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
|
||||
(button :style "background-image: url('../../apps/ml4w-welcome.png');" :class "ml4w_icon" :orientation "v" :valign "center" :halign "center" :onclick "../scripts/launch_app.sh --welcome")
|
||||
(label :class "res_text" :valign "end" :halign "center" :text "Welcome App")
|
||||
)
|
||||
(box :class "ml4w-dotfiles" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
|
||||
(button :style "background-image: url('../../apps/ml4w-dotfiles-settings.png');" :class "ml4w_icon" :orientation "v" :valign "center" :halign "center" :onclick "../scripts/launch_app.sh --dotfiles")
|
||||
(label :class "res_text" :valign "end" :halign "center" :text "Dotfiles App")
|
||||
)
|
||||
(box :class "ml4w-hyprland" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
|
||||
(button :style "background-image: url('../../apps/ml4w-hyprland-settings.png');" :class "ml4w_icon" :orientation "v" :valign "center" :halign "center" :onclick "../scripts/launch_app.sh --hyprland")
|
||||
(label :class "res_text" :valign "end" :halign "center" :text "Hyprland App")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget resources []
|
||||
(box :class "winbox"
|
||||
(centerbox :orientation "h"
|
||||
(box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
|
||||
(box :class "res_circle" :orientation "v" :valign "center" :halign "center"
|
||||
(circular-progress :class "res_cpu" :value CPU_USAGE :thickness 15
|
||||
(label :class "res_circle_small" :text "CPU" :show-truncated false)
|
||||
)
|
||||
)
|
||||
(label :class "res_text" :valign "end" :halign "center" :text "${CPU_USAGE}%")
|
||||
)
|
||||
(box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
|
||||
(box :class "res_circle" :orientation "v" :valign "center" :halign "center"
|
||||
(circular-progress :class "res_mem" :value MEM_USAGE :thickness 15
|
||||
(label :class "res_circle_small" :text "MEMORY" :show-truncated false)
|
||||
)
|
||||
)
|
||||
(label :class "res_text" :valign "end" :halign "center" :text "${MEM_USAGE}%")
|
||||
)
|
||||
(box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
|
||||
(box :class "res_circle" :orientation "v" :valign "center" :halign "center"
|
||||
(circular-progress :class "res_disk" :value DISK_USAGE :thickness 15
|
||||
(label :class "res_circle_small" :text "DISK" :show-truncated false)
|
||||
)
|
||||
)
|
||||
(label :class "res_text" :valign "end" :halign "center" :text "${DISK_USAGE}%")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget close []
|
||||
(box :class "winbox"
|
||||
(button :tooltip "Close" :style "background-image: url('../assets/window-close-symbolic.svg');" :class "closeicon" :valign "center" :halign "center" :onclick "../scripts/eww.sh &")
|
||||
)
|
||||
)
|
||||
|
||||
;; powermenus
|
||||
(defwidget logout []
|
||||
(box :class "winbox"
|
||||
(button :tooltip "Logout" :style "background-image: url('../assets/application-exit-symbolic-rtl.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../../hypr/scripts/power.sh exit &")
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget suspend []
|
||||
(box :class "winbox"
|
||||
(button :tooltip "Suspend" :style "background-image: url('../assets/media-playback-pause-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../../hypr/scripts/power.sh suspend &")
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget lock []
|
||||
(box :class "winbox"
|
||||
(button :tooltip "Lock" :style "background-image: url('../assets/system-lock-screen-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../../hypr/scripts/power.sh lock &")
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget reboot []
|
||||
(box :class "winbox"
|
||||
(button :tooltip "Reboot" :style "background-image: url('../assets/system-reboot-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../../hypr/scripts/power.sh reboot &")
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget shutdown []
|
||||
(box :class "winbox"
|
||||
(button :tooltip "Shutdown" :style "background-image: url('../assets/system-shutdown-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../../hypr/scripts/power.sh shutdown &")
|
||||
)
|
||||
)
|
||||
|
||||
;; ** Windows *************************************************************************
|
||||
|
||||
(defwindow close
|
||||
:geometry (geometry :x "455px"
|
||||
:y "-7px"
|
||||
:width "44px"
|
||||
:height "44px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(close))
|
||||
|
||||
(defwindow ml4wlauncher
|
||||
:geometry (geometry :x "5px"
|
||||
:y "5px"
|
||||
:width "480px"
|
||||
:height "140px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(ml4wlauncher))
|
||||
|
||||
;; resources
|
||||
(defwindow resources
|
||||
:geometry (geometry :x "5px"
|
||||
:y "140px"
|
||||
:width "480px"
|
||||
:height "180px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(resources))
|
||||
|
||||
;; powermenu
|
||||
(defwindow logout
|
||||
:geometry (geometry :x "5px"
|
||||
:y "318px"
|
||||
:width "80px"
|
||||
:height "80px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(logout))
|
||||
|
||||
(defwindow suspend
|
||||
:geometry (geometry :x "102px"
|
||||
:y "318px"
|
||||
:width "80px"
|
||||
:height "80px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(suspend))
|
||||
|
||||
(defwindow lock
|
||||
:geometry (geometry :x "204px"
|
||||
:y "318px"
|
||||
:width "80px"
|
||||
:height "80px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(lock))
|
||||
|
||||
(defwindow reboot
|
||||
:geometry (geometry :x "305px"
|
||||
:y "318px"
|
||||
:width "80px"
|
||||
:height "80px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(reboot))
|
||||
|
||||
(defwindow shutdown
|
||||
:geometry (geometry :x "405px"
|
||||
:y "318px"
|
||||
:width "80px"
|
||||
:height "80px"
|
||||
:anchor "top right")
|
||||
:stacking "fg"
|
||||
:wm-ignore false
|
||||
(shutdown))
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
FILE="$HOME/.cache/ml4w_sidebar"
|
||||
CFG="$HOME/dotfiles/eww/ml4w-sidebar"
|
||||
EWW=`which eww`
|
||||
|
||||
if [[ ! `pidof eww` ]]; then
|
||||
${EWW} daemon
|
||||
sleep 0.5
|
||||
fi
|
||||
|
||||
if [ -f $HOME/dotfiles/.settings/eww-monitor.sh ] && [ $(cat $HOME/dotfiles/.settings/eww-monitor.sh) != "auto" ] ;then
|
||||
echo ":: Using monitor id from $HOME/dotfiles/.settings/eww-monitor.sh"
|
||||
sc=$(cat $HOME/dotfiles/.settings/eww-monitor.sh)
|
||||
else
|
||||
echo ":: Autodetect current focused monitor."
|
||||
sc=$(python $HOME/dotfiles/hypr/scripts/active-monitor.py)
|
||||
fi
|
||||
if [[ ! -f "$FILE" ]]; then
|
||||
touch "$FILE"
|
||||
echo ":: Opening on Monitor $sc"
|
||||
${EWW} --config "$CFG" open ml4wlauncher --screen $sc
|
||||
${EWW} --config "$CFG" open resources --screen $sc
|
||||
${EWW} --config "$CFG" open logout --screen $sc
|
||||
${EWW} --config "$CFG" open suspend --screen $sc
|
||||
${EWW} --config "$CFG" open lock --screen $sc
|
||||
${EWW} --config "$CFG" open reboot --screen $sc
|
||||
${EWW} --config "$CFG" open shutdown --screen $sc
|
||||
${EWW} --config "$CFG" open close --screen $sc
|
||||
else
|
||||
${EWW} --config "$CFG" close resources ml4wlauncher logout suspend lock reboot shutdown close
|
||||
echo ":: Closing widgets"
|
||||
rm "$FILE"
|
||||
fi
|
||||
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 0.3
|
||||
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
|
||||
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
if [[ "$1" == "--welcome" ]]; then
|
||||
$HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage &
|
||||
elif [[ "$1" == "--dotfiles" ]]; then
|
||||
$HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage &
|
||||
elif [[ "$1" == "--hyprland" ]]; then
|
||||
$HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage &
|
||||
else
|
||||
echo "ERROR: $1 not found"
|
||||
fi
|
||||
|
||||
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh &
|
||||
@@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
## Files and Data
|
||||
PREV_TOTAL=0
|
||||
PREV_IDLE=0
|
||||
cpuFile="/tmp/.cpu_usage"
|
||||
|
||||
## Get CPU usage
|
||||
get_cpu() {
|
||||
if [[ -f "${cpuFile}" ]]; then
|
||||
fileCont=$(cat "${cpuFile}")
|
||||
PREV_TOTAL=$(echo "${fileCont}" | head -n 1)
|
||||
PREV_IDLE=$(echo "${fileCont}" | tail -n 1)
|
||||
fi
|
||||
|
||||
CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics.
|
||||
unset CPU[0] # Discard the "cpu" prefix.
|
||||
IDLE=${CPU[4]} # Get the idle CPU time.
|
||||
|
||||
# Calculate the total CPU time.
|
||||
TOTAL=0
|
||||
|
||||
for VALUE in "${CPU[@]:0:4}"; do
|
||||
let "TOTAL=$TOTAL+$VALUE"
|
||||
done
|
||||
|
||||
if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then
|
||||
# Calculate the CPU usage since we last checked.
|
||||
let "DIFF_IDLE=$IDLE-$PREV_IDLE"
|
||||
let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
|
||||
let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
|
||||
echo "${DIFF_USAGE}"
|
||||
else
|
||||
echo "?"
|
||||
fi
|
||||
|
||||
# Remember the total and idle CPU times for the next check.
|
||||
echo "${TOTAL}" > "${cpuFile}"
|
||||
echo "${IDLE}" >> "${cpuFile}"
|
||||
}
|
||||
|
||||
## Get Used memory
|
||||
get_mem() {
|
||||
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||
}
|
||||
|
||||
## Get Brightness
|
||||
get_blight() {
|
||||
CARD=`ls /sys/class/backlight | head -n 1`
|
||||
|
||||
if [[ "$CARD" == *"intel_"* ]]; then
|
||||
BNESS=`xbacklight -get`
|
||||
LIGHT=${BNESS%.*}
|
||||
else
|
||||
BNESS=`blight -d $CARD get brightness`
|
||||
PERC="$(($BNESS*100/255))"
|
||||
LIGHT=${PERC%.*}
|
||||
fi
|
||||
|
||||
echo "$LIGHT"
|
||||
}
|
||||
|
||||
## Get Battery
|
||||
get_battery() {
|
||||
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||
cat /sys/class/power_supply/${BAT}/capacity
|
||||
}
|
||||
|
||||
## Get Disk Usage
|
||||
get_disk() {
|
||||
df -h / | awk '{print $5}' | tail -n1 | sed 's/%//g'
|
||||
}
|
||||
|
||||
## Execute accordingly
|
||||
if [[ "$1" == "--cpu" ]]; then
|
||||
get_cpu
|
||||
elif [[ "$1" == "--mem" ]]; then
|
||||
get_mem
|
||||
elif [[ "$1" == "--blight" ]]; then
|
||||
get_blight
|
||||
elif [[ "$1" == "--bat" ]]; then
|
||||
get_battery
|
||||
elif [[ "$1" == "--disk" ]]; then
|
||||
get_disk
|
||||
fi
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
sleep 0.3
|
||||
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
|
||||
|
||||
if [[ "$1" == "reboot" ]]; then
|
||||
$HOME/dotfiles/hypr/scripts/reboot.sh
|
||||
elif [[ "$1" == "shutdown" ]]; then
|
||||
$HOME/dotfiles/hypr/scripts/shutdown.sh
|
||||
elif [[ "$1" == "lock" ]]; then
|
||||
$HOME/dotfiles/hypr/scripts/lock.sh
|
||||
elif [[ "$1" == "suspend" ]]; then
|
||||
$HOME/dotfiles/hypr/scripts/suspend.sh
|
||||
elif [[ "$1" == "logout" ]]; then
|
||||
$HOME/dotfiles/hypr/scripts/exit.sh
|
||||
fi
|
||||
@@ -0,0 +1,110 @@
|
||||
// Thanks to Bina
|
||||
{
|
||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
|
||||
"logo": {
|
||||
"padding": {
|
||||
"top": 2
|
||||
}
|
||||
},
|
||||
"display": {
|
||||
"separator": " ➜ "
|
||||
},
|
||||
"modules": [
|
||||
"break",
|
||||
"break",
|
||||
"break",
|
||||
{
|
||||
"type": "os",
|
||||
"key": "OS ",
|
||||
"keyColor": "31", // = color1
|
||||
},
|
||||
{
|
||||
"type": "kernel",
|
||||
"key": " ├ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
{
|
||||
"type": "packages",
|
||||
"format": "{} (pacman)",
|
||||
"key": " ├ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"key": " └ ",
|
||||
"keyColor": "31",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "wm",
|
||||
"key": "WM ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "wmtheme",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "icons",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "cursor",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminal",
|
||||
"key": " ├ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
{
|
||||
"type": "terminalfont",
|
||||
"key": " └ ",
|
||||
"keyColor": "32",
|
||||
},
|
||||
"break",
|
||||
{
|
||||
"type": "host",
|
||||
"format": "{5} {1} Type {2}",
|
||||
"key": "PC ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "cpu",
|
||||
"format": "{1} ({3}) @ {7} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "gpu",
|
||||
"format": "{1} {2} @ {12} GHz",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "memory",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "swap",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "disk",
|
||||
"key": " ├ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
{
|
||||
"type": "monitor",
|
||||
"key": " └ ",
|
||||
"keyColor": "33",
|
||||
},
|
||||
"break",
|
||||
"break",
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "Default"
|
||||
# -----------------------------------------------------
|
||||
animations {
|
||||
enabled = false
|
||||
}
|
||||
@@ -14,22 +14,23 @@ exec-once = dunst
|
||||
# Load GTK settings
|
||||
exec-once = ~/dotfiles/hypr/scripts/gtk.sh
|
||||
|
||||
# Load swayidle and define the lock screen time
|
||||
exec-once = ~/dotfiles/hypr/scripts/lockscreentime.sh
|
||||
|
||||
# Load network manager applet
|
||||
# START NM APPLET
|
||||
# exec-once = nm-applet --indicator
|
||||
# END NM APPLET
|
||||
# Using hypridle to start hyprlock
|
||||
exec-once = hypridle
|
||||
|
||||
# Load cliphist history
|
||||
exec-once = wl-paste --watch cliphist store
|
||||
|
||||
# Initialize swww
|
||||
exec-once = swww query || swww init
|
||||
# Initialize Wallpaper Engine
|
||||
exec-once = ~/dotfiles/hypr/scripts/init-wallpaper-engine.sh
|
||||
|
||||
# Load last wallpaper and waybar with pywal colors
|
||||
exec-once = ~/dotfiles/hypr/scripts/wallpaper.sh init
|
||||
|
||||
# Start ML4W Welcome App
|
||||
# Autostart ML4W App
|
||||
exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh
|
||||
|
||||
# Start ewww daemon
|
||||
exec-once = ~/dotfiles/hypr/scripts/eww.sh
|
||||
|
||||
# Start autostart cleanup
|
||||
exec-once = ~/dotfiles/hypr/scripts/cleanup.sh
|
||||
|
||||
# Load configuration from ML4W Hyprland Settings App
|
||||
exec = ~/.config/ml4w-hyprland-settings/hyprctl.sh
|
||||
|
||||
@@ -7,3 +7,6 @@
|
||||
# xwayland {
|
||||
# force_zero_scaling = true
|
||||
# }
|
||||
|
||||
# qt5ct environment variable
|
||||
# env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||
@@ -3,5 +3,10 @@
|
||||
# name: "Default"
|
||||
# -----------------------------------------------------
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = GDK_SCALE,1
|
||||
|
||||
@@ -3,7 +3,12 @@
|
||||
# name: "KVM"
|
||||
# -----------------------------------------------------
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = WLR_NO_HARDWARE_CURSORS, 1
|
||||
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
||||
env = MOZ_ENABLE_WAYLAND,1
|
||||
env = GDK_SCALE,1
|
||||
env = WLR_RENDERER_ALLOW_SOFTWARE, 1
|
||||
env = WLR_NO_HARDWARE_CURSORS, 1
|
||||