181 Commits
Author SHA1 Message Date
wyj 4b9e7c6175 fix: rm cursor size in hidpi.sh 2024-08-27 16:49:29 -04:00
wyj eb2d78da76 fix: set cursor size to 32, so x and way looks same 2024-08-27 16:48:04 -04:00
wyj 186fee59c8 fix: use QT_AUTO_SCREEN_SCALE_FACTOR 2024-08-14 19:43:48 -04:00
wyj f631af1696 update: rm GTK_SCALE_FACTOR in default 2024-06-29 18:20:38 -04:00
wyj 13750bb854 Merge branch 'upstream-main' into upstream-hidpi 2024-06-13 21:27:55 -04:00
wyj fa96759ddf update: change hyprcursor size to 32 if hidpi 2024-06-12 23:26:06 -04:00
wyj ea854b83e6 update: hidpi move to hyprland.conf 2024-06-12 23:15:23 -04:00
Stephan Raabe 95ff240509 Updates 2024-06-12 13:02:08 +02:00
Stephan Raabe d6fce7ecd3 Updates 2024-06-12 13:00:40 +02:00
Stephan Raabe 44b52eecb4 Updates 2024-06-12 12:32:03 +02:00
Stephan Raabe fc346fe68d Updates 2024-06-12 10:20:13 +02:00
Stephan Raabe 0a6879e9ab Updates 2024-06-12 07:26:20 +02:00
Stephan Raabe e5fbdb7de0 Updates 2024-06-09 15:33:11 +02:00
Stephan Raabe 26f42750d7 Updates 2024-06-07 22:07:10 +02:00
Stephan Raabe e6c2420ef4 Updates 2024-06-07 21:25:01 +02:00
Stephan Raabe 338f34b28d Updates 2024-06-07 20:53:47 +02:00
Stephan Raabe 972d49978c Updates 2024-06-05 17:05:48 +02:00
wyj 36764c77b3 Merge branch 'upstream-main' into upstream-hidpi 2024-06-05 05:51:38 -04:00
Stephan Raabe 41b6b496c1 Updates 2024-06-05 10:40:53 +02:00
Stephan Raabe 7f945d3143 Updates 2024-06-05 08:55:24 +02:00
Stephan Raabe 973e77cb30 Updates 2024-06-03 21:42:35 +02:00
Stephan Raabe d595873e47 Updates 2024-06-03 21:29:48 +02:00
Stephan Raabe 13cc39cc68 Updates 2024-06-03 21:06:04 +02:00
Stephan Raabe b5ad437427 Update 2024-06-03 21:05:15 +02:00
Stephan Raabe f31d3bec55 Updates 2024-06-03 16:49:29 +02:00
Stephan Raabe 3d75bf0254 Updates 2024-06-03 16:48:13 +02:00
Stephan Raabe b7226e9e6b Updates 2024-06-03 16:27:48 +02:00
Stephan Raabe 4336be911c Updates 2024-06-03 14:24:58 +02:00
Stephan Raabe afa4baf647 Updates 2024-06-03 14:19:06 +02:00
Stephan Raabe f2e76f6045 Updates 2024-06-03 13:34:49 +02:00
Stephan Raabe 5221986db5 Updates 2024-06-02 14:15:00 +02:00
Stephan Raabe edd8af5c36 Updates 2024-06-02 12:23:42 +02:00
Stephan Raabe d4b0465130 Updates 2024-06-01 22:27:17 +02:00
Stephan Raabe 1841fb7ba9 Updates 2024-06-01 21:34:01 +02:00
Stephan Raabe 54473c0440 Updates 2024-06-01 20:47:15 +02:00
Stephan Raabe e0ec9425fb Updates 2024-06-01 14:06:22 +02:00
Stephan Raabe 31f116a202 Updates 2024-06-01 13:16:38 +02:00
Stephan Raabe 43169fa507 Updates 2024-06-01 11:16:08 +02:00
Stephan Raabe c2b5c2e1ad Updates 2024-06-01 10:51:40 +02:00
Stephan Raabe 16078963fd Updates 2024-05-31 11:43:06 +02:00
Stephan Raabe 900d4c0c29 Updates 2024-05-31 11:35:32 +02:00
Stephan Raabe 488887a276 Updates 2024-05-30 14:26:06 +02:00
Stephan Raabe 6e0bacd4f6 Updates 2024-05-30 14:05:19 +02:00
Stephan Raabe 6304aea7d5 Updates 2024-05-29 20:13:30 +02:00
Stephan Raabe 8f1a563bf0 Updates 2024-05-29 16:16:42 +02:00
Stephan Raabe 5e1835d57a Updates 2024-05-29 14:09:01 +02:00
Stephan Raabe 81f502a3b1 Updates 2024-05-29 13:56:22 +02:00
Stephan Raabe 2802fc7999 Updates 2024-05-29 12:41:32 +02:00
Stephan Raabe 17cad59b89 Updates 2024-05-29 11:42:22 +02:00
Stephan Raabe 69e2e118b2 Updates 2024-05-29 09:01:18 +02:00
Stephan Raabe d56e32eb82 Updates 2024-05-28 15:36:42 +02:00
Stephan Raabe 2f595ae7f6 Updates 2024-05-28 15:36:16 +02:00
Stephan Raabe f515d7b616 Updates 2024-05-27 18:03:35 +02:00
Stephan Raabe 097cd4f43f Updates 2024-05-27 18:00:51 +02:00
Stephan Raabe 2ec2da73b3 Updates 2024-05-27 18:00:38 +02:00
Stephan Raabe 45bea3effa Updates 2024-05-27 17:46:33 +02:00
Stephan Raabe a5cff60489 Updates 2024-05-27 17:30:11 +02:00
Stephan Raabe 93ca44f1ad Updates 2024-05-27 17:02:57 +02:00
Stephan Raabe 3b4a5a5ff1 Updates 2024-05-27 16:31:51 +02:00
Stephan Raabe 498fd92a12 Updates 2024-05-27 16:15:06 +02:00
Stephan Raabe c375c92d6f Updates 2024-05-27 15:19:01 +02:00
Stephan Raabe b84745d88a Updates 2024-05-27 15:18:12 +02:00
Stephan Raabe afdc595f1b Updates 2024-05-27 15:10:50 +02:00
Stephan Raabe e00c9635cd Updates 2024-05-27 14:37:48 +02:00
Stephan Raabe 6fa297d705 Updates 2024-05-27 14:29:49 +02:00
Stephan Raabe 363b349915 Updates 2024-05-27 13:50:43 +02:00
Stephan Raabe 99e132b989 Updates 2024-05-27 13:39:44 +02:00
wyj 8828e93f78 update: add an empty line in custum.conf 2024-05-26 01:26:57 -04:00
Stephan Raabe 565d99a103 Updates 2024-05-24 14:57:18 +02:00
Stephan Raabe 932ce5aa6e Updates 2024-05-24 14:40:10 +02:00
Stephan Raabe 1748e42b4d Updates 2024-05-23 15:47:31 +02:00
Stephan Raabe 150616996f Updates 2024-05-23 15:42:03 +02:00
Stephan Raabe 004702f450 Updates 2024-05-23 14:08:47 +02:00
Stephan Raabe 4fea3df1cd Updates 2024-05-23 14:00:01 +02:00
Stephan Raabe d1cdc5d648 Updates 2024-05-23 13:58:08 +02:00
Stephan Raabe 478a02e483 Updates 2024-05-23 08:45:27 +02:00
Stephan Raabe 477d486818 Updates 2024-05-22 17:57:58 +02:00
Stephan Raabe 5c860b4c89 Updates 2024-05-22 17:36:33 +02:00
Stephan Raabe 84e8646802 Updates 2024-05-22 17:11:45 +02:00
Stephan Raabe 55bf15494a Updates 2024-05-22 17:09:11 +02:00
wyj c99a2809ce fix: hidpi.sh 2024-05-18 16:28:58 -04:00
wyj 08096e83ff update: font size=16 for alacritty 2024-05-17 02:09:53 -04:00
wyj a0f43ada10 fix: patch in ~/dotfiles-versions rather than in repository 2024-05-17 01:46:29 -04:00
Stephan Raabe 001a9b14e9 Updates 2024-05-15 22:22:55 +02:00
Stephan Raabe 05f91083dc Updates 2024-05-15 22:17:50 +02:00
Stephan Raabe 27646d04c5 Updates 2024-05-15 17:42:32 +02:00
Stephan Raabe e1e9431555 Updates 2024-05-15 13:55:24 +02:00
Stephan Raabe 171bbc50df Updates 2024-05-15 11:56:26 +02:00
Stephan Raabe 314c642857 Updates 2024-05-15 11:24:37 +02:00
Stephan Raabe c3ac8c64a8 Updates 2024-05-15 11:12:53 +02:00
Stephan Raabe 16f0558315 Updates 2024-05-13 17:53:30 +02:00
Stephan Raabe 350f0e2be0 Updates 2024-05-13 17:49:38 +02:00
Stephan Raabe efc6157a48 Updates 2024-05-07 21:44:14 +02:00
Stephan Raabe 72fca9a386 Updates 2024-05-07 21:02:31 +02:00
wyj b4a5e4d99c Merge branch 'upstream-main' into upstream-hidpi 2024-05-05 16:34:49 -04:00
Stephan Raabe 176a8671f4 Updates 2024-05-04 15:10:09 +02:00
Stephan Raabe 735eaa9fcb Updates 2024-05-04 12:36:11 +02:00
Stephan Raabe 93964f35fd Updates 2024-05-03 10:19:07 +02:00
Stephan Raabe 8c80af8bb4 Updates 2024-05-03 10:14:33 +02:00
Stephan Raabe 621ffd5b70 Updates 2024-05-03 09:40:11 +02:00
Stephan Raabe b6f81adc5d Updates 2024-05-03 09:20:03 +02:00
Stephan Raabe cfb1f1c047 Updates 2024-05-02 16:17:38 +02:00
Stephan Raabe 1e12fa0dde Updates 2024-05-02 16:15:55 +02:00
Stephan Raabe e99f976b65 Updates 2024-05-02 15:59:08 +02:00
Stephan Raabe a86d7b405b Updates 2024-05-01 22:42:58 +02:00
Stephan Raabe 40a5a58e49 Updates 2024-05-01 16:08:42 +02:00
Stephan Raabe 32bcdb5b3f Updates 2024-05-01 13:40:33 +02:00
Stephan Raabe 3d84b89e9a Updates 2024-05-01 12:48:38 +02:00
Stephan Raabe 207732dae4 Updates 2024-05-01 12:39:24 +02:00
Stephan Raabe ec9914bdd8 Updates 2024-05-01 12:31:57 +02:00
Stephan Raabe 81fdf76484 Updates 2024-05-01 12:18:47 +02:00
Stephan Raabe bbfa43dde9 Updates 2024-04-29 18:48:44 +02:00
Stephan Raabe 77e1addb79 Updates 2024-04-29 17:17:53 +02:00
Stephan Raabe 7bc0591f27 Updates 2024-04-29 17:14:48 +02:00
Stephan Raabe cb19006150 Updates 2024-04-29 17:12:13 +02:00
Stephan Raabe 90ad0e5667 Updates 2024-04-29 17:01:51 +02:00
Stephan Raabe 3bbbd148a0 Updates 2024-04-29 16:49:46 +02:00
Stephan Raabe 87fc11d2dd Updates 2024-04-29 13:29:28 +02:00
Stephan Raabe 53ad524aff Updates 2024-04-29 11:24:02 +02:00
Stephan Raabe 0806192575 Updates 2024-04-28 12:26:00 +02:00
Stephan Raabe 6032c57720 Updates 2024-04-28 12:24:22 +02:00
Stephan Raabe b7a46d3e25 Updates 2024-04-28 12:19:31 +02:00
Stephan Raabe 2e813c99f0 Updates 2024-04-28 11:50:04 +02:00
Stephan Raabe 98f9c6905b Updates 2024-04-28 10:41:41 +02:00
Stephan Raabe e03fd1873c Updates 2024-04-26 14:51:10 +02:00
Stephan Raabe a620ab6b3e Updates 2024-04-26 13:06:46 +02:00
Stephan Raabe 0828e88abd Updates 2024-04-25 18:21:46 +02:00
Stephan Raabe 5371e8dfc2 Updates 2024-04-25 18:21:20 +02:00
Stephan Raabe 181e2ab7cc Updates 2024-04-22 21:31:49 +02:00
Stephan Raabe bf967e3441 Updates 2024-04-22 21:21:01 +02:00
Stephan Raabe 41a2d95a3b Delete ML4W_Hyprland_Settings-x86_64.AppImage 2024-04-22 19:12:01 +00:00
Stephan Raabe a760eba53a Updates 2024-04-22 15:55:59 +02:00
Stephan Raabe 4ee14513e8 Updates 2024-04-22 15:52:39 +02:00
Stephan Raabe 7093c2651b Updates 2024-04-22 15:32:53 +02:00
Stephan Raabe 5da5231276 Updates 2024-04-22 14:46:08 +02:00
Stephan Raabe 7cbb584d37 Updates 2024-04-21 12:52:34 +02:00
Stephan Raabe 36ed47bf73 Updates 2024-04-21 10:29:05 +02:00
Stephan Raabe 1ee73645e1 Updates 2024-04-20 17:57:31 +02:00
Stephan Raabe be8b15c1a0 Updates 2024-04-16 21:54:43 +02:00
Stephan Raabe 1b36fb7b1b Updates 2024-04-16 21:46:53 +02:00
Stephan Raabe 55f7feea4f Updates 2024-04-15 16:24:29 +02:00
Stephan Raabe 9b12ae080e Updates 2024-04-15 16:23:56 +02:00
Stephan Raabe 32a6c0326d Updates 2024-04-15 15:49:05 +02:00
Stephan Raabe a2e12e02cc Updates 2024-04-15 14:03:35 +02:00
Stephan Raabe c10f12bf71 Updates Hyprlock 2024-04-14 13:02:32 +02:00
Stephan Raabe 899301889b Updates 2024-04-11 21:09:32 +02:00
Stephan Raabe 1e8ec3ff14 Updates 2024-04-11 21:08:12 +02:00
Stephan Raabe 325eacb0cc Updates 2024-04-11 20:39:24 +02:00
Stephan Raabe 4539e17b07 Updates 2024-04-11 20:38:54 +02:00
Stephan Raabe 3236e20add Updates 2024-04-11 20:32:57 +02:00
Stephan Raabe 7c2c3cc12d Update 2.9 2024-04-11 19:53:34 +02:00
wyj 45214117ef Merge remote-tracking branch 'upstream/main' into upstream-hidpi 2024-04-03 14:22:34 -04:00
Stephan Raabe 1e3a95c99a Updates 2024-04-03 11:32:48 +02:00
Stephan Raabe bd59b5e2a1 Updates 2024-04-03 11:16:33 +02:00
Stephan Raabe f0761aed82 Updates 2024-04-03 11:10:16 +02:00
Stephan Raabe 2e70df898a Updates 2024-04-02 20:07:09 +02:00
Stephan Raabe 198578784a Updates 2024-04-02 19:54:40 +02:00
Stephan Raabe 39d5de6c82 Updates 2024-04-02 15:34:11 +02:00
wyj 0d4b85956e fix: sed need -E 2024-04-01 15:42:06 -04:00
wyj 8565146242 update: change the non-hidpi default font size in alacritty 2024-04-01 15:00:34 -04:00
Stephan Raabe 3cad6da6c9 Updates 2024-04-01 16:48:10 +02:00
Stephan Raabe 31806accea Updates 2024-04-01 13:38:15 +02:00
Stephan Raabe 71979b7975 Updates 2024-04-01 13:37:11 +02:00
Stephan Raabe 7254ff2796 Updates 2024-04-01 13:05:47 +02:00
Stephan Raabe f19d8db9da Updates 2024-04-01 12:49:13 +02:00
Stephan Raabe d6c2fde672 Updates 2024-04-01 12:03:09 +02:00
Stephan Raabe 6c5b29a35b Updates 2024-04-01 12:02:47 +02:00
Stephan Raabe ea03b1cdb7 Updates 2024-04-01 11:57:50 +02:00
Stephan Raabe 859d1a12d8 Updates 2024-04-01 11:36:14 +02:00
Stephan Raabe 5c0a5028fe Updates 2024-03-29 13:08:22 +01:00
Stephan Raabe 60f2229b42 Updates 2024-03-29 10:15:48 +01:00
wyj d2a368d166 fix hidpi.sh: echo -e 2024-03-28 20:46:48 -04:00
wyj c6678dcc96 update hidpi.sh: add finish output 2024-03-28 20:46:48 -04:00
wyj b6156e3233 fix hidpi.sh 2024-03-28 20:46:48 -04:00
wyj 0da2e83f29 fix hidpi.sh: -i instead of -E 2024-03-28 20:46:48 -04:00
wyj 9f8b285ba3 update hidpi.sh: run always 2024-03-28 20:46:48 -04:00
wyj 671a47f09e fix bug: missing fi 2024-03-28 20:46:48 -04:00
Stephan Raabe 534656ce9f Updates 2024-03-28 16:10:36 +01:00
Stephan Raabe 594543bc7d Updates 2024-03-28 15:50:38 +01:00
Stephan Raabe 17690a3cc7 Updates 2024-03-28 12:45:20 +01:00
Stephan Raabe 04ac911a5f Updates 2024-03-28 12:23:11 +01:00
186 changed files with 3047 additions and 1994 deletions
+15 -12
View File
@@ -19,10 +19,10 @@ export EDITOR=nvim
# ----------------------------------------------------- # -----------------------------------------------------
# ALIASES # ALIASES
# ----------------------------------------------------- # -----------------------------------------------------
alias c='clear' alias c='clear'
alias nf='neofetch' alias nf='fastfetch'
alias pf='pfetch' alias pf='fastfetch'
alias ff='fastfetch'
alias ls='eza -a --icons' alias ls='eza -a --icons'
alias ll='eza -al --icons' alias ll='eza -al --icons'
alias lt='eza -a --tree --level=1 --icons' alias lt='eza -a --tree --level=1 --icons'
@@ -37,8 +37,17 @@ alias rw='~/dotfiles/waybar/reload.sh'
alias winclass="xprop | grep 'CLASS'" alias winclass="xprop | grep 'CLASS'"
alias dot="cd ~/dotfiles" alias dot="cd ~/dotfiles"
alias cleanup='~/dotfiles/scripts/cleanup.sh' alias cleanup='~/dotfiles/scripts/cleanup.sh'
# -----------------------------------------------------
# ML4W Apps
# -----------------------------------------------------
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage' alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
alias ml4w-settings='~/dotfiles/apps/ML4W_Dotfiles_Settings-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 # Window Managers
@@ -50,7 +59,6 @@ alias Qtile='startx'
# ----------------------------------------------------- # -----------------------------------------------------
# GIT # GIT
# ----------------------------------------------------- # -----------------------------------------------------
alias gs="git status" alias gs="git status"
alias ga="git add" alias ga="git add"
alias gc="git commit -m" alias gc="git commit -m"
@@ -64,7 +72,6 @@ alias gcredential="git config credential.helper store"
# ----------------------------------------------------- # -----------------------------------------------------
# SCRIPTS # SCRIPTS
# ----------------------------------------------------- # -----------------------------------------------------
alias gr='python ~/dotfiles/scripts/growthrate.py' alias gr='python ~/dotfiles/scripts/growthrate.py'
alias ChatGPT='python ~/mychatgpt/mychatgpt.py' alias ChatGPT='python ~/mychatgpt/mychatgpt.py'
alias chat='python ~/mychatgpt/mychatgpt.py' alias chat='python ~/mychatgpt/mychatgpt.py'
@@ -73,14 +80,12 @@ alias ascii='~/dotfiles/scripts/figlet.sh'
# ----------------------------------------------------- # -----------------------------------------------------
# VIRTUAL MACHINE # VIRTUAL MACHINE
# ----------------------------------------------------- # -----------------------------------------------------
alias vm='~/private/launchvm.sh' alias vm='~/private/launchvm.sh'
alias lg='~/dotfiles/scripts/looking-glass.sh' alias lg='~/dotfiles/scripts/looking-glass.sh'
# ----------------------------------------------------- # -----------------------------------------------------
# EDIT CONFIG FILES # EDIT CONFIG FILES
# ----------------------------------------------------- # -----------------------------------------------------
alias confq='$EDITOR ~/dotfiles/qtile/config.py' alias confq='$EDITOR ~/dotfiles/qtile/config.py'
alias confp='$EDITOR ~/dotfiles/picom/picom.conf' alias confp='$EDITOR ~/dotfiles/picom/picom.conf'
alias confb='$EDITOR ~/dotfiles/.bashrc' alias confb='$EDITOR ~/dotfiles/.bashrc'
@@ -88,13 +93,11 @@ alias confb='$EDITOR ~/dotfiles/.bashrc'
# ----------------------------------------------------- # -----------------------------------------------------
# EDIT NOTES # EDIT NOTES
# ----------------------------------------------------- # -----------------------------------------------------
alias notes='$EDITOR ~/notes.txt' alias notes='$EDITOR ~/notes.txt'
# ----------------------------------------------------- # -----------------------------------------------------
# SYSTEM # SYSTEM
# ----------------------------------------------------- # -----------------------------------------------------
alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg' alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg'
alias setkb='setxkbmap de;echo "Keyboard set back to de."' alias setkb='setxkbmap de;echo "Keyboard set back to de."'
@@ -124,12 +127,12 @@ eval "$(starship init bash)"
cat ~/.cache/wal/sequences cat ~/.cache/wal/sequences
# ----------------------------------------------------- # -----------------------------------------------------
# PFETCH if on wm # Fastfetch if on wm
# ----------------------------------------------------- # -----------------------------------------------------
echo ""
if [[ $(tty) == *"pts"* ]]; then if [[ $(tty) == *"pts"* ]]; then
pfetch fastfetch --config examples/13
else else
echo
if [ -f /bin/qtile ]; then if [ -f /bin/qtile ]; then
echo "Start Qtile X11 with command Qtile" echo "Start Qtile X11 with command Qtile"
fi fi
+8
View File
@@ -21,4 +21,12 @@ 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 cp $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop $HOME/.local/share/applications
echo ":: ML4W Dotfiles Settings App installed successfully" 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 echo
+152 -30
View File
@@ -3,45 +3,167 @@
# ------------------------------------------------------ # ------------------------------------------------------
datets=$(date '+%Y%m%d%H%M%S') datets=$(date '+%Y%m%d%H%M%S')
if [ -d ~/dotfiles ] || [ -f ~/.bashrc ]; then
echo -e "${GREEN}" # Create Backup File Structure
figlet "Backup"
echo -e "${NONE}" if [ ! -d ~/dotfiles-versions ]; then
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
if [ ! -d ~/dotfiles-versions ]; then
mkdir ~/dotfiles-versions mkdir ~/dotfiles-versions
echo "~/dotfiles-versions created." echo "~/dotfiles-versions created."
fi fi
if [ ! -d ~/dotfiles-versions/backups ]; then if [ ! -d ~/dotfiles-versions/backup ]; then
mkdir ~/dotfiles-versions/backups mkdir ~/dotfiles-versions/backup
echo "~/dotfiles-versions/backups created" echo "~/dotfiles-versions/backup created"
fi fi
if [ ! -d ~/dotfiles-versions/backups/$datets ]; then if [ -d ~/dotfiles-versions/backups ]; then
mkdir ~/dotfiles-versions/backups/$datets mv ~/dotfiles-versions/backups ~/dotfiles-versions/archive
echo "~/dotfiles-versions/backups/$datets created" echo ":: Existing backups moved into ~/dotfiles-versions/archive"
fi 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 if [ -d ~/dotfiles ]; then
rsync -a ~/dotfiles/ ~/dotfiles-versions/backups/$datets/ echo " - $HOME/dotfiles"
echo ":: Backup of your current dotfiles in ~/dotfiles-versions/backups/$datets created."
fi fi
if [ -f ~/.bashrc ]; then if ! test -L ~/.bashrc ;then
cp ~/.bashrc ~/dotfiles-versions/backups/$datets/.bashrc-old echo " - $HOME/.bashrc"
echo ":: Existing .bashrc file found in homefolder. .bashrc-old created" 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 fi
echo echo
echo ":: PLEASE NOTE: You can create a fresh installation of teh dotfiles by removing the folder ~/dotfiles" # 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
fi
if [ -d ~/dotfiles ]; then
rsync -a ~/dotfiles ~/dotfiles-versions/backup/
echo ":: Backup of $HOME/dotfiles created in ~/dotfiles-versions/backup"
fi
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 elif [ $? -eq 130 ]; then
exit 130 exit 130
else else
echo ":: Backup skipped." echo ":: Backup skipped."
fi fi
echo "" else
echo ":: Nothing to backup"
fi fi
echo
+3 -2
View File
@@ -11,8 +11,9 @@ fi
if [ -f ~/dotfiles-versions/backups/$datets/.bashrc-old ]; then if [ -f ~/dotfiles-versions/backups/$datets/.bashrc-old ]; then
echo "Backup is already available here ~/dotfiles-versions/backups/$datets/.bashrc-old" echo "Backup is already available here ~/dotfiles-versions/backups/$datets/.bashrc-old"
fi fi
echo
if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then 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 if gum confirm "$bash_confirm" ;then
rm ~/.bashrc rm ~/.bashrc
_installSymLink .bashrc ~/.bashrc ~/dotfiles/.bashrc ~/.bashrc _installSymLink .bashrc ~/.bashrc ~/dotfiles/.bashrc ~/.bashrc
@@ -22,7 +23,7 @@ if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
echo "Installation of the .bashrc file skipped." echo "Installation of the .bashrc file skipped."
fi fi
else 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 gum confirm "$bash_confirm" ;then
if [ -L ~/.bashrc ] || [ -f ~/.bashrc ]; then if [ -L ~/.bashrc ] || [ -f ~/.bashrc ]; then
rm ~/.bashrc rm ~/.bashrc
+11
View File
@@ -36,6 +36,17 @@ if [ -d ~/dotfiles/hypr/settings/ ] ;then
echo ":: ~/dotfiles/hypr/settings removed." echo ":: ~/dotfiles/hypr/settings removed."
fi 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 # Create default folder structure
xdg-user-dirs-update xdg-user-dirs-update
echo echo
+2 -1
View File
@@ -2,7 +2,6 @@
# Confirm Start # Confirm Start
# ------------------------------------------------------ # ------------------------------------------------------
echo "You can cancel the installation at any time with CTRL + C"
SCRIPT=$(realpath "$0") SCRIPT=$(realpath "$0")
SCRIPTPATH=$(dirname "$SCRIPT") SCRIPTPATH=$(dirname "$SCRIPT")
if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
@@ -18,6 +17,7 @@ if [ ! -d ~/dotfiles ];then
if gum confirm "DO YOU WANT TO START THE INSTALLATION OF THE ML4W DOTFILES NOW?" ;then if gum confirm "DO YOU WANT TO START THE INSTALLATION OF THE ML4W DOTFILES NOW?" ;then
echo "Installation started." echo "Installation started."
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130 exit 130
else else
echo ":: Installation canceled." echo ":: Installation canceled."
@@ -27,6 +27,7 @@ else
if gum confirm "DO YOU WANT TO START THE UPDATE OF YOUR ML4W DOTFILES NOW?" ;then if gum confirm "DO YOU WANT TO START THE UPDATE OF YOUR ML4W DOTFILES NOW?" ;then
echo ":: Update started." echo ":: Update started."
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
echo ":: Update canceled."
exit 130 exit 130
else else
echo ":: Update canceled." echo ":: Update canceled."
+8 -5
View File
@@ -13,22 +13,23 @@ fi
if [ ! -d ~/dotfiles ]; then if [ ! -d ~/dotfiles ]; then
echo "The script will now remove existing directories and files from ~/.config/" 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 "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 "Symbolic links will then be created from ~/dotfiles into your ~/.config/ directory."
echo "" echo
fi fi
if [[ ! $(tty) == *"pts"* ]] && [ -d ~/dotfiles ]; then 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 "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 "If not, the script will overwrite existing files but will not remove additional files or folders of your custom configuration."
echo "" echo
else else
if [ -d ~/dotfiles ]; then if [ -d ~/dotfiles ]; then
echo "The script will overwrite existing files but will not remove additional files or folders from your custom configuration." echo "The script will overwrite existing files but will not remove additional files or folders from your custom configuration."
echo
fi fi
fi fi
if [ ! -d ~/dotfiles ]; then if [ ! -d ~/dotfiles ]; then
echo "PLEASE BACKUP YOUR EXISTING CONFIGURATIONS in .config IF NEEDED!" echo "PLEASE BACKUP YOUR EXISTING CONFIGURATIONS in .config IF NEEDED!"
echo "" echo
fi fi
if gum confirm "Do you want to install the prepared dotfiles now?" ;then 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!" echo "Skipped: DEV MODE!"
fi fi
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
echo ":: Installation canceled"
exit 130 exit 130
else else
echo ":: Installation canceled"
exit exit
fi fi
echo "" echo
+28
View File
@@ -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 ""
+42 -19
View File
@@ -2,6 +2,7 @@
# Disable display manager # Disable display manager
# ------------------------------------------------------ # ------------------------------------------------------
disman=0 disman=0
profile="Hyprland"
echo -e "${GREEN}" echo -e "${GREEN}"
figlet "Display Manager" figlet "Display Manager"
echo -e "${NONE}" echo -e "${NONE}"
@@ -30,72 +31,94 @@ if [ ! -d ~/dotfiles ];then
disman=0 disman=0
echo "You have already installed a display manager on your system." echo "You have already installed a display manager on your system."
echo "How do you want to proceed?" echo "How do you want to proceed?"
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm") echo
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme")
else else
disman=1 disman=1
echo "There is no display manager installed on your system." 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 "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?" echo "How do you want to proceed?"
dmsel=$(gum choose "Keep current setup" "Install sddm") echo
dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
fi fi
else else
if [ -f /etc/systemd/system/display-manager.service ]; then if [ -f /etc/systemd/system/display-manager.service ]; then
disman=0 disman=0
echo "You have already installed a display manager. If your display manager is working fine, you can keep the current setup." 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?" echo "How do you want to proceed?"
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm") echo
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme")
else else
disman=1 disman=1
echo "There is no display manager installed on your system. You're starting Hyprland/Qtile with commands on tty." 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?" echo "How do you want to proceed?"
dmsel=$(gum choose "Keep current setup" "Install sddm") echo
dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
fi fi
fi fi
if [ -z "${dmsel}" ] ;then if [ -z "${dmsel}" ] ;then
echo "Installation canceled." echo ":: Installation canceled."
exit exit
fi fi
if [ "$dmsel" == "Install sddm" ] ;then if [ "$dmsel" == "Install sddm and theme" ] ;then
disman=0 disman=0
# Try to force the installation of sddm # Try to force the installation of sddm
echo "Install sddm" echo ":: Install sddm"
yay -S --noconfirm sddm sddm-sugar-candy-git --ask 4 yay -S --noconfirm sddm --ask 4
# Enable sddm
if [ -f /etc/systemd/system/display-manager.service ]; then if [ -f /etc/systemd/system/display-manager.service ]; then
sudo rm /etc/systemd/system/display-manager.service sudo rm /etc/systemd/system/display-manager.service
fi fi
sudo systemctl enable sddm.service sudo systemctl enable sddm.service
# Create sddm.conf.d folder
if [ ! -d /etc/sddm.conf.d/ ]; then if [ ! -d /etc/sddm.conf.d/ ]; then
sudo mkdir /etc/sddm.conf.d sudo mkdir /etc/sddm.conf.d
echo "Folder /etc/sddm.conf.d created." echo ":: Folder /etc/sddm.conf.d created."
fi fi
# Copy sddm.conf
sudo cp sddm/sddm.conf /etc/sddm.conf.d/ 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 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 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 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 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 fi
elif [ "$dmsel" == "Deactivate current display manager" ] ;then elif [ "$dmsel" == "Deactivate current display manager" ] ;then
sudo rm /etc/systemd/system/display-manager.service sudo rm /etc/systemd/system/display-manager.service
echo "Current display manager deactivated." echo ":: Current display manager deactivated."
disman=1 disman=1
elif [ "$dmsel" == "Keep current setup" ] ;then elif [ "$dmsel" == "Keep current setup" ] ;then
echo "Keep current setup." echo ":: sddm setup skipped."
else else
echo "Keep current setup." echo ":: sddm setup skipped."
fi fi
+8 -4
View File
@@ -9,9 +9,13 @@ echo -e "${NONE}"
hidpiconfirm="Do you want 2x hidpi scale?" hidpiconfirm="Do you want 2x hidpi scale?"
if gum confirm "$hidpiconfirm"; then if gum confirm "$hidpiconfirm"; then
sed -i -E 's/size = [0-9]+(\.[0-9]+)?/size = 18/' alacritty/alacritty.toml sed -i -E 's/size = [0-9]+(\.[0-9]+)?/size = 16/' ~/dotfiles-versions/$version/alacritty/alacritty.toml
sed -i -E 's/[0-9]+(\.[0-9]+)?/16/' .settings/rofi-font.rasi sed -i -E 's/[0-9]+(\.[0-9]+)?/16/' ~/dotfiles-versions/$version/.settings/rofi-font.rasi
echo -e '\n# hidpi scale\nsource = ~/dotfiles/hypr/conf/hidpi.conf' >> hypr/conf/custom.conf echo -e '\n# -----------------------------------------------------' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
sed -i -E 's/1/2/' hypr/conf/monitors/default.conf echo -e '# HiDPI Scaling' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
echo -e '# -----------------------------------------------------' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
echo -e 'source = ~/dotfiles/hypr/conf/hidpi.conf' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
sed -i -E 's/1/2/' ~/dotfiles-versions/$version/hypr/conf/monitors/default.conf
#sed -i -E 's/24/32/' ~/dotfiles-versions/$version/hypr/conf/cursor.conf
echo ":: finished hidpi patch." echo ":: finished hidpi patch."
fi fi
+4
View File
@@ -6,9 +6,13 @@ echo -e "${GREEN}"
figlet "Hook" figlet "Hook"
echo -e "${NONE}" echo -e "${NONE}"
echo ":: The script has detected a hook.sh script." echo ":: The script has detected a hook.sh script."
echo
if gum confirm "Do you want to run the script now?"; then if gum confirm "Do you want to run the script now?"; then
source ~/dotfiles-versions/hook.sh source ~/dotfiles-versions/hook.sh
echo ":: hook.sh executed!" echo ":: hook.sh executed!"
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else else
echo ":: Execution of hook.sh skipped." echo ":: Execution of hook.sh skipped."
fi fi
+6
View File
@@ -37,5 +37,11 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config _installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi fi
if [ -d ~/dotfiles-versions/$version/eww ]; then
_installSymLink eww ~/.config/eww ~/dotfiles/eww/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/fastfetch ]; then
_installSymLink fastfetch ~/.config/fastfetch ~/dotfiles/fastfetch/ ~/.config
fi
echo ":: Symbolic links created." echo ":: Symbolic links created."
echo echo
+1
View File
@@ -7,3 +7,4 @@ README.md
CHANGELOG CHANGELOG
LICENSE LICENSE
install.sh install.sh
setup.sh
+22
View File
@@ -273,3 +273,25 @@ _replaceLineInFile() {
sleep 2 sleep 2
fi 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
}
+4 -2
View File
@@ -7,10 +7,11 @@ echo -e "${NONE}"
if [ -d ~/dotfiles ] ;then if [ -d ~/dotfiles ] ;then
echo "Do you want to check for new packages only (faster installation)" 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 "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 if gum confirm "How do you want to proceed?" --affirmative "New packages only" --negative "Force reinstallation" ;then
force_install=0 force_install=0
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
echo "Installation canceled." echo ":: Installation canceled."
exit 130 exit 130
else else
force_install=1 force_install=1
@@ -18,10 +19,11 @@ if [ -d ~/dotfiles ] ;then
else else
echo "Do you want to reinstall all already installed packages and install the required new packages? (recommended and more robust)" 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 "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 if gum confirm "How do you want to proceed?" --affirmative "Reinstall all packages" --negative "Install new packages only" ;then
force_install=1 force_install=1
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
echo "Installation canceled." echo ":: Installation canceled."
exit 130 exit 130
else else
force_install=0 force_install=0
+54 -17
View File
@@ -6,22 +6,48 @@ echo -e "${GREEN}"
figlet "Keyboard" figlet "Keyboard"
echo -e "${NONE}" echo -e "${NONE}"
# Default layout and variants setkeyboard=0
keyboard_layout="us" 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
_setupKeyboardLayout() { if [ "$setkeyboard" == "0" ] ;then
echo ""
echo "Start typing = Search, RETURN = Confirm, CTRL-C = Cancel" # Default layout and variants
keyboard_layout="us"
keyboard_variant=""
_setupKeyboardLayout() {
keyboard_layout=$(localectl list-x11-keymap-layouts | gum filter --height 15 --placeholder "Find your keyboard layout...") 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 ":: Keyboard layout changed to $keyboard_layout"
echo "" _setupKeyboardVariant
_confirmKeyboard }
}
_confirmKeyboard() { _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 "Current selected keyboard setup:"
echo "Keyboard layout: $keyboard_layout" 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 if gum confirm "Do you want proceed with this keyboard setup?" --affirmative "Proceed" --negative "Change" ;then
return 0 return 0
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
@@ -29,25 +55,36 @@ _confirmKeyboard() {
else else
_setupKeyboardLayout _setupKeyboardLayout
fi fi
} }
if [ "$restored" == "1" ]; then
echo ":: You have already restored your settings into the new installation."
else
_confirmKeyboard _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 cp .install/templates/autostart.sh ~/dotfiles-versions/$version/qtile/autostart.sh
SEARCH="KEYBOARD_LAYOUT" SEARCH="KEYBOARD_LAYOUT"
REPLACE="$keyboard_layout" REPLACE="$keyboard_layout"
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/hypr/conf/keyboard.conf 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" SEARCH="KEYBOARD_LAYOUT"
REPLACE="$keyboard_layout" REPLACE="$keyboard_layout"
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/qtile/autostart.sh sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/qtile/autostart.sh
echo "" echo
echo ":: Keyboard setup updated successfully." echo ":: Keyboard setup complete."
echo
echo "PLEASE NOTE: You can update your keyboard layout later in ~/dotfiles/hypr/conf/keyboard.conf" echo "PLEASE NOTE: You can update your keyboard layout later in ~/dotfiles/hypr/conf/keyboard.conf"
fi fi
Regular → Executable
+6 -1
View File
@@ -6,9 +6,14 @@ if [ -d ~/dotfiles/nvim ]; then
echo -e "${GREEN}" echo -e "${GREEN}"
figlet "Neovim" figlet "Neovim"
echo -e "${NONE}" echo -e "${NONE}"
if gum confirm "Do you want to install the ML4W Neovim configuration and overwrite your existing configuration?"; then 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" echo ":: ML4W Neovim configuration will be installed"
neovim=1 neovim=1
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else else
rm -rf ~/dotfiles-versions/$version/nvim/ rm -rf ~/dotfiles-versions/$version/nvim/
echo ":: Installation of ML4W Neovim configuration skipped." echo ":: Installation of ML4W Neovim configuration skipped."
+8 -5
View File
@@ -11,8 +11,8 @@ packagesPacman=(
"dunst" "dunst"
"starship" "starship"
"mpv" "mpv"
"freerdp"
"thunar" "thunar"
"nautilus"
"mousepad" "mousepad"
"noto-fonts" "noto-fonts"
"otf-font-awesome" "otf-font-awesome"
@@ -26,9 +26,10 @@ packagesPacman=(
"python-psutil" "python-psutil"
"python-rich" "python-rich"
"python-click" "python-click"
"python-pywal"
"python-gobject"
"pavucontrol" "pavucontrol"
"tumbler" "tumbler"
"blueman"
"papirus-icon-theme" "papirus-icon-theme"
"breeze-icons" "breeze-icons"
"polkit-gnome" "polkit-gnome"
@@ -38,6 +39,7 @@ packagesPacman=(
"nm-connection-editor" "nm-connection-editor"
"gvfs" "gvfs"
"xdg-user-dirs" "xdg-user-dirs"
"xdg-desktop-portal-gtk"
"networkmanager" "networkmanager"
"network-manager-applet" "network-manager-applet"
"xarchiver" "xarchiver"
@@ -46,17 +48,18 @@ packagesPacman=(
"fuse2" "fuse2"
"gtk4" "gtk4"
"libadwaita" "libadwaita"
"python-pywal"
"xdg-desktop-portal" "xdg-desktop-portal"
"qalculate-gtk" "qalculate-gtk"
"imagemagick" "imagemagick"
"guvcview" "guvcview"
"jq"
"rofi-wayland"
"fastfetch"
"blueman"
); );
packagesYay=( packagesYay=(
"pfetch"
"bibata-cursor-theme" "bibata-cursor-theme"
"trizen" "trizen"
"pacseek" "pacseek"
"rofi-lbonn-wayland"
); );
+5 -4
View File
@@ -1,5 +1,8 @@
packagesPacman=( packagesPacman=(
"hyprland" "hyprland"
"hyprpaper"
"hyprlock"
"hypridle"
"xdg-desktop-portal-hyprland" "xdg-desktop-portal-hyprland"
"waybar" "waybar"
"grim" "grim"
@@ -9,10 +12,8 @@ packagesPacman=(
); );
packagesYay=( packagesYay=(
"swww"
"wlogout" "wlogout"
"nwg-look" "nwg-look"
"emote" "eww"
"hypridle" "hyprshade"
"hyprlock"
); );
+55
View File
@@ -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
+5 -5
View File
@@ -5,13 +5,13 @@ echo -e "${GREEN}"
figlet "Preparation" figlet "Preparation"
echo -e "${NONE}" echo -e "${NONE}"
if [ -d ~/.config ]; then if [ -d ~/.config ]; then
echo ".config folder already exists." echo ":: $HOME/.config folder already exists."
else else
mkdir ~/.config mkdir ~/.config
echo ".config folder created." echo ":: $HOME/.config folder created."
fi fi
echo echo
echo ":: Preparing temporary folders for the installation." echo "Preparing temporary folders for the installation."
if [ ! -d ~/dotfiles-versions ]; then if [ ! -d ~/dotfiles-versions ]; then
mkdir ~/dotfiles-versions mkdir ~/dotfiles-versions
echo ":: ~/dotfiles-versions folder created." echo ":: ~/dotfiles-versions folder created."
@@ -32,5 +32,5 @@ if [[ $(_isFolderEmpty ~/dotfiles-versions/$version/) == 0 ]] ;then
echo "Execution of rsync -a -I --exclude-from=.install/includes/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 exit
fi fi
echo ":: dotfiles $version successfully prepared in ~/dotfiles-versions/$version/" echo ":: ML4W Dotfiles $version successfully prepared in ~/dotfiles-versions/$version/"
echo "" echo
+4 -4
View File
@@ -4,13 +4,13 @@
echo -e "${GREEN}" echo -e "${GREEN}"
figlet "Profile" figlet "Profile"
echo -e "${NONE}" echo -e "${NONE}"
echo "Please select your installation profile."
echo "SPACE = select/unselect a profile. RETURN = confirm. No selection = CANCEL" echo
profile=$(gum choose --no-limit --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "Hyprland" "Qtile") profile=$(gum choose --no-limit --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "Hyprland" "Qtile")
if [ -z "${profile}" ] ;then if [ -z "${profile}" ] ;then
echo "No profile selected. Installation canceled." echo ":: No profile selected. Installation canceled."
exit exit
else else
echo "Profile/s selected:" $profile echo ":: Profile/s selected:" $profile
fi fi
+2 -2
View File
@@ -6,9 +6,9 @@ echo -e "${GREEN}"
figlet "Reboot" figlet "Reboot"
echo -e "${NONE}" echo -e "${NONE}"
echo "A reboot of your system is recommended." echo "A reboot of your system is recommended."
echo
if gum confirm "Do you want to reboot your system now?" ;then if gum confirm "Do you want to reboot your system now?" ;then
echo ":: Rebooting now ..." gum spin --spinner dot --title "Rebooting now..." -- sleep 3
sleep 3
systemctl reboot systemctl reboot
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
exit 130 exit 130
+8 -1
View File
@@ -28,6 +28,13 @@ if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
echo echo
fi 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 # Remove hypridle-bin
if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
yay --noconfirm -Rns hypridle-git yay --noconfirm -Rns hypridle-git
@@ -40,7 +47,7 @@ if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
echo echo
fi fi
# Remove hypridle-bin # Remove hyprlock-bin
if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then
yay --noconfirm -Rns hyprlock-git yay --noconfirm -Rns hyprlock-git
if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then
+3 -4
View File
@@ -4,12 +4,11 @@
# Synchronize packages # Synchronize packages
sudo pacman -Sy sudo pacman -Sy
echo "" echo
# Check for required packages # Check for required packages
echo ":: Checking that required packages for the installation are installed..." echo "Checking that required packages for the installation are installed..."
_installPackagesPacman "rsync" "gum" "figlet" "python"; _installPackagesPacman "rsync" "gum" "figlet" "python";
echo ""
# Double check rsync # Double check rsync
if ! command -v rsync &> /dev/null; then if ! command -v rsync &> /dev/null; then
@@ -18,4 +17,4 @@ if ! command -v rsync &> /dev/null; then
else else
echo ":: rsync double checked" echo ":: rsync double checked"
fi fi
echo "" echo
+12 -3
View File
@@ -8,8 +8,7 @@ monitorrestored=0
_showRestoreOptions() { _showRestoreOptions() {
echo "The following configurations can be transferred into the new installation." echo "The following configurations can be transferred into the new installation."
echo "(SPACE = select/unselect a profile. RETURN = confirm. ESC/No selection = Skip Restore)" echo
echo ""
restorelist="" restorelist=""
if [ -f ~/dotfiles/.bashrc ]; then if [ -f ~/dotfiles/.bashrc ]; then
restorelist+="~/dotfiles/.bashrc " restorelist+="~/dotfiles/.bashrc "
@@ -43,6 +42,10 @@ _showRestoreOptions() {
restorelist+="~/dotfiles/hypr/conf/environment.conf " restorelist+="~/dotfiles/hypr/conf/environment.conf "
selectedlist+="~/dotfiles/hypr/conf/environment.conf," selectedlist+="~/dotfiles/hypr/conf/environment.conf,"
fi 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 if [ -f ~/dotfiles/hypr/conf/windowrule.conf ] && [ -d ~/dotfiles/hypr/conf/windowrules/ ]; then
restorelist+="~/dotfiles/hypr/conf/windowrule.conf " restorelist+="~/dotfiles/hypr/conf/windowrule.conf "
selectedlist+="~/dotfiles/hypr/conf/windowrule.conf," selectedlist+="~/dotfiles/hypr/conf/windowrule.conf,"
@@ -88,7 +91,7 @@ _showRestoreOptions() {
echo "No files selected to restore." echo "No files selected to restore."
confirmrestore=$(gum choose "Change restore" "Skip restore") confirmrestore=$(gum choose "Change restore" "Skip restore")
if [ -z "${confirmrestore}" ] ;then if [ -z "${confirmrestore}" ] ;then
echo "Installation canceled." echo ":: Installation canceled."
exit exit
fi fi
if [ "$confirmrestore" == "Change restore" ]; then if [ "$confirmrestore" == "Change restore" ]; then
@@ -151,6 +154,12 @@ _startRestore() {
echo ":: Hyprland environment.conf restored!" echo ":: Hyprland environment.conf restored!"
fi fi
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 [[ $restoreselect == *"~/dotfiles/hypr/conf/windowrule.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
if [ -f ~/dotfiles/hypr/conf/windowrule.conf ]; then if [ -f ~/dotfiles/hypr/conf/windowrule.conf ]; then
cp ~/dotfiles/hypr/conf/windowrule.conf ~/dotfiles-versions/$version/hypr/conf/ cp ~/dotfiles/hypr/conf/windowrule.conf ~/dotfiles-versions/$version/hypr/conf/
+2
View File
@@ -1,8 +1,10 @@
if [ "$restored" == "1" ]; then if [ "$restored" == "1" ]; then
if [ -f ~/dotfiles/.settings/settings.json ] ;then
echo -e "${GREEN}" echo -e "${GREEN}"
figlet "Restore Settings" figlet "Restore Settings"
echo -e "${NONE}" echo -e "${NONE}"
python .install/restore.py python .install/restore.py
fi
else else
if [ -f ~/dotfiles/.settings/settings.json ] ;then if [ -f ~/dotfiles/.settings/settings.json ] ;then
rm ~/dotfiles/.settings/settings.json rm ~/dotfiles/.settings/settings.json
@@ -4,11 +4,11 @@
# ----------------------------------------------------- # -----------------------------------------------------
input { input {
kb_layout = KEYBOARD_LAYOUT kb_layout = KEYBOARD_LAYOUT
kb_variant = kb_variant = KEYBOARD_VARIANT
kb_model = kb_model =
kb_options = kb_options =
numlock_by_default = true numlock_by_default = true
mouse_refocus=false mouse_refocus = false
# For United States # For United States
# kb_layout = us # kb_layout = us
@@ -18,7 +18,17 @@ input {
follow_mouse = 1 follow_mouse = 1
touchpad { touchpad {
# for desktop
natural_scroll = false 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. sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
} }
gestures {
workspace_swipe = true
}
+35
View File
@@ -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
}
+10 -2
View File
@@ -5,7 +5,15 @@
echo -e "${GREEN}" echo -e "${GREEN}"
figlet "System Update" figlet "System Update"
echo -e "${NONE}" echo -e "${NONE}"
echo "It's important that your system is up-to-date before you proceed with the installation of the ML4W Dotfiles." echo "It's important that your system is up-to-date before you proceed."
if gum confirm "Do you want to update the packages of your system with yay now?" ;then echo
if gum confirm "Do you want to update your system with yay now?" ;then
echo ":: Update started"
yay yay
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
echo ":: System update skipped"
fi fi
echo
+1
View File
@@ -4,6 +4,7 @@ echo -e "${GREEN}"
figlet "KVM VM" figlet "KVM VM"
echo -e "${NONE}" echo -e "${NONE}"
echo "The script has detected that you run the installation in a KVM virtual machine." 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 if grep -Fxq "kvm.conf" ~/dotfiles-versions/$version/hypr/conf/environment.conf
then then
echo ":: KVM Environment already set." echo ":: KVM Environment already set."
+4 -4
View File
@@ -1,12 +1,12 @@
# ------------------------------------------------------ # ------------------------------------------------------
# Check if yay is installed # Check if yay is installed
# ------------------------------------------------------ # ------------------------------------------------------
echo -e "${GREEN}"
figlet "yay"
echo -e "${NONE}"
if sudo pacman -Qs yay > /dev/null ; then if sudo pacman -Qs yay > /dev/null ; then
echo ":: yay is already installed!" echo ":: yay is already installed!"
else else
echo -e "${GREEN}"
figlet "yay"
echo -e "${NONE}"
echo ":: yay is not installed. Starting the installation!" echo ":: yay is not installed. Starting the installation!"
_installPackagesPacman "base-devel" _installPackagesPacman "base-devel"
SCRIPT=$(realpath "$0") SCRIPT=$(realpath "$0")
@@ -18,4 +18,4 @@ else
cd $temp_path cd $temp_path
echo ":: yay has been installed successfully." echo ":: yay has been installed successfully."
fi fi
echo "" echo
+1
View File
@@ -0,0 +1 @@
auto
+1 -1
View File
@@ -1 +1 @@
thunar nautilus
+8
View File
@@ -0,0 +1,8 @@
# Preload Wallpapers
preload = WALLPAPER
# Set Wallpapers
wallpaper = ,WALLPAPER
# Disable Splash
splash = false
+1
View File
@@ -0,0 +1 @@
hyprshade_filter="blue-light-filter"
+1
View File
@@ -0,0 +1 @@
off
+1
View File
@@ -0,0 +1 @@
hyprpaper
+2
View File
@@ -0,0 +1,2 @@
# Enter the path to the folder that includes your wallpapers
wallpaper_folder=$HOME/wallpaper
+1 -1
View File
@@ -1 +1 @@
2.8.3.4 2.9.1.2
+1 -1
View File
@@ -1 +1 @@
2834 2912
+60
View File
@@ -1,3 +1,63 @@
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 Version 2.8.3.4
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.4 https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.4
-------------------------------------------------------- --------------------------------------------------------
+26 -429
View File
@@ -1,459 +1,53 @@
# ML4W Dotfiles 2.8.3.4 # ML4W Dotfiles 2.9.1.2
An advanced configuration of Hyprland and Qtile 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.
[![Screenshot](screenshots/v283/screenshot-283-2.png "Title Text")](screenshots/v283/screenshot-283-2.png) [![Screenshot](screenshots/screenshot2.png "Screenshot")](screenshots/screenshot2.png)
You can find the overview video (Version 2.8.3) on Youtube: [ML4W Dotfiles 2.8.3](https://youtu.be/zM2AYue0o8s)
You can find the installation video (Version 2.8.2) on YouTube: [Install/Update the ML4W Dotfiles](https://youtu.be/n6Yg232bCOU)
> PLEASE NOTE: In case of issues with the latest Hyprland version 0.37.1, please update your ML4W Dotfiles installation to the latest version. See the troubleshooting section for more information.
The ML4W Dotfiles are available as The ML4W Dotfiles are available as
- main release (Official release): [https://gitlab.com/stephan-raabe/dotfiles](https://gitlab.com/stephan-raabe/dotfiles) - 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) - rolling release (Development release): [https://gitlab.com/stephan-raabe/dotfiles/-/tree/dev](https://gitlab.com/stephan-raabe/dotfiles/-/tree/dev)
[TOC] YouTube Video [https://youtu.be/HMxHUvN6VGo](https://youtu.be/HMxHUvN6VGo)
# Installation ## Installation
To make it easy for you to get started with the ML4W dotfiles, here's a list of recommended next steps. The installation should work on all Arch Linux based distributions. [You can find more information here](https://gitlab.com/stephan-raabe/dotfiles/-/wikis/home).
The package includes an installation script install.sh that will guide you through all steps of the installation or update process. The easiest way is to use the setup.sh script. The script will download all files from GitLab and start the installation automatically.
> PLEASE NOTE: Every Linux distribution and setup can be different. Therefore, I cannot guarantee that the installation will work smoothly everywhere. Installation on your own risk. Just copy/enter the following command into your terminal.
## Supported platforms
The dotfiles are tested with the following Arch based distributions:
- Arch Linux (recommended)
- EndeavourOS
- Arco Linux
- Manjaro Linux
The installation should work on all Arch Linux based distributions as well.
> **For Manjaro users:** Hyprland and required components are under ongoing development. That's why it's possible that some packages are not immediatly available on Manjaro e.g., hyprlock or hypridle. But usually, the packages will be published later.
> **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.**
The installation script will create a backup from an previous dotfiles installation.
If possible, please create a snapshot of your current system if snapper or Timeshift is installed and available.
## ML4W Installer App
The easiest way to install the ML4W Dotfiles is to use the ML4W Dotfiles Installer App. [You can download the app here.](https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/ML4W_Dotfiles_Installer.AppImage) (Right click + Save link as...)
``` ```
# Change to the download location (normally the Downloads folder) bash <(curl -s https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/setup.sh)
cd ~/Downloads
# Make the file executable
chmod +x ML4W_Dotfiles_Installer.AppImage
# Start the App from your terminal with
./ML4W_Dotfiles_Installer.AppImage
``` ```
## Installation with GIT > 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.
You can also install the dotfiles by cloning the latest main release: ## Wiki
``` 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>
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
# 2.) Clone the dotfiles repository into the Downloads folder ## Contributing
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 3.) Change into the dotfiles folder 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).
cd dotfiles
# 4.) Start the installation You can also visit the [ML4W Discord Server](https://discord.gg/c4fJK7Za3g) to start a discussion with other users.
./install.sh
``` ## Screenshots
## Installation with GIT of the rolling release [![Screenshot](screenshots/screenshot1.png "Screenshot")](screenshots/screenshot1.png)
You can install the dotfiles by cloning the latest development version from the rolling release: [![Screenshot](screenshots/screenshot3.png "Screenshot")](screenshots/screenshot3.png)
``` [![Screenshot](screenshots/screenshot4.png "Screenshot")](screenshots/screenshot5.png)
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
# 2.) Clone the dotfiles repository into the Downloads folder ## Wallpaper repository
git clone https://gitlab.com/stephan-raabe/dotfiles.git
# 3.) Change into the new dotfiles folder
cd dotfiles
# 4.) Checkout the dev branch
git checkout dev
# 4.) Start the installation
./install.sh
```
## Update
From 2.8.2 onwards you can use the integrated update feature to update your dotfiles to the main or rolling release whenever you want.
![Update](screenshots/welcome-update-dotfiles.png "Updates")
You can also use the ML4W installer to update to the main-release (Latest Version) or the Rolling Release: https://gitlab.com/stephan-raabe/installer
You can force a clean re-installation of the dotfiles by removing the folder ~/dotfiles before starting the installation.
> Please note that you can create a backup of your existing configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
Please follow the steps to update from earlier dotfiles versions to 2.8.3
```
# 1.) Remove existing downloaded dotfiles
rm -rf ~/Downloads/dotfiles
# 2.) Change into your Downloads folder
cd ~/Downloads
# 3.) Clone the dotfiles repository into the Downloads folder
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 4.) Change into the dotfiles folder
cd dotfiles
# 5.) Start the installation
./install.sh
```
## Installation Hook
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copy the files into the final destination in ~/dotfiles
If you want to modify the installation files just before everytime the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
You can for example 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
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
https://wiki.hyprland.org/Nvidia/
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
Please select the following variation in the settings script (system/environment):
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/environments/nvidia.conf
Or set the included environment variables in hyprland.conf
## Launch Hyprland from tty
The suggested method to start Hyprland is from tty with the command Hyprland because login managers (display managers) are not officially 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.
```
yay -S sddm
```
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.
## Screenlock, suspend and DPMS
Hypridle will start Hyprlock after 10 minutes of inactivity and will try to suspend one minutes later.
In the ML4W Dotfiles Settings App you can define the timeouts for Hyprlock, suspend and DPSM.
The selected hypridle configuration can be restored from the ML4W installer during a dotfiles update.
## 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:
- [Hyprland keybindings overview](hypr/conf/keybindings/default.conf)
- [Qtile keybindings overview](qtile/config.py)
# Hyprland
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-1.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-1.png" /></a>
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-2.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-2.png" /></a>
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-3.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-3.png" /></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 opens. 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, using the rofi application launcher or by typing 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
## ML4W Dotfiles Settings App
You can open the ML4W dotfiles settings app with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to change selected dotfiles configurations and choose from variations for your hyprland.conf to customize your desktop even more.
<img src="screenshots/screenshot-dotfiles-settings-app.png" />
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 dotfiles settings app in the corresponding section.
> The ML4W Dotfiles Settings App replaces strings from several configuration files directly or based on replacement comments e.g., // START WORKSPACES That's why you shouldn't remove any of theses comments or markers to ensure full functionality of the app.
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 find the sourcecode of the ML4W Dotfiles Settings App in this repository:
https://gitlab.com/stephan-raabe/ml4w-dotfiles-settings
## Hyprland Configuration Variations
With configuration variations, you can customize settings and configurations for your Hyprland installation. You can manage, create and edit Hyprland Configuration Variations in the ML4W Dotfiles Settings App.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
[You can find more information here.](hypr/conf/README.md)
> Please don't edit the shipped configuration variations. These will be overwritten with every update of the ML4W dotfiles. <b>Create your own custom variation instead.</b>
## 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.
[You can find more information here.](waybar/README.md)
## Screensharing and recording
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 (Wayland fork)
- 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
- Idle Manager: hypridle
- Screenlock: hyprlock
# 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 (Wayland fork)
- 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
## Wallpaper issues (grey or distroyed image) with latest swww 0.9.1
Please install the latest version of the ML4W Dotfiles > 2.8.3.4
Or replace the swww launch command in /dotfiles/hypr/conf/autostart.conf with
```
exec-once = swww init || swww-daemon --format xrgb
```
swww is currently extremly under development. Upcoming updates could require different launch commands. I will monitor the development as well and update the dotfiles accordingly.
## Issues after Hyprland 0.37.1 Updates
Hyprland has released the version 0.37.1. This comes with many changes of the system and required dependencies.
Please update to the latest version of the ML4W Dotfiles 2.8.3.2
If you don't have access to Waybar because of overlayed error messages you can start the ML4W app with the application launcher <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>RETURN</kbd> and search for the ML4W Welcome App.
Or you open a terminal with <kbd>SUPER</kbd> + <kbd>RETURN</kbd> and enter
```
ml4w
```
Then select in the upper right side menu the entry "Update/ Dotfiles"
## hypridle and hyprlock is not starting after an update of the dotfiles
Please make sure that hypridle and hyprlock has been installed successfully with
```
yay -S hypridle hyprlock
```
If there is an file conflict the remove the files manually with:
```
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
```
and start the installation again with
```
yay -S hypridle hyprlock
```
## 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
```
## Waybar is not loading
There could be a conflict with xdg-desktop-portal-gtk. Please try to remove the package if installed with:
```
sudo pacman -R xdg-desktop-portal-gtk
```
# Wallpaper repository
You can find my wallpaper collection in the repository https://gitlab.com/stephan-raabe/wallpaper 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: THANK YOU very much for all your support, contributions and ideas:
@@ -461,17 +55,20 @@ THANK YOU very much for all your support, contributions and ideas:
- Don Williams: https://github.com/dwilliam62 - Don Williams: https://github.com/dwilliam62
- Teodor Orzechowski: https://gitlab.com/sq6gtt - Teodor Orzechowski: https://gitlab.com/sq6gtt
- Jamie Deppeler: https://gitlab.com/bknight2k - 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... and many more...
Thanks to all YouTube subscribers for all your great feedback. Thanks to all YouTube subscribers for all your great feedback.
# Inspirations ## Inspirations
The following projects have inspired me: The following projects have inspired me:
- https://github.com/dianaw353/hyprland-configuration-rootfs
- https://github.com/prasanthrangan/hyprdots - https://github.com/prasanthrangan/hyprdots
- https://github.com/sudo-harun/dotfiles - https://github.com/sudo-harun/dotfiles
- https://github.com/dianaw353/hyprland-configuration-rootfs
and many more... and many more...
+1 -1
View File
@@ -1,5 +1,5 @@
[font] [font]
size = 12.0 size = 16.0
[font.normal] [font.normal]
family = "FiraCode Nerd Font" family = "FiraCode Nerd Font"
-905
View File
@@ -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
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -2,6 +2,6 @@
Type=Application Type=Application
Name=ML4W Dotfiles Settings App Name=ML4W Dotfiles Settings App
Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
Icon=HOME/dotfiles/apps/ml4w-icon.png Icon=HOME/dotfiles/apps/ml4w-dotfiles-settings.png
Terminal=false Terminal=false
Categories=Utility Categories=Utility
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+7
View File
@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

@@ -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

+4
View File
@@ -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

+4
View File
@@ -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

+4
View File
@@ -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

View File
+78
View File
@@ -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;
}
+184
View File
@@ -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))
+33
View File
@@ -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
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
sleep 0.3
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
+12
View File
@@ -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 &
+85
View File
@@ -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
+16
View File
@@ -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
+110
View File
@@ -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",
]
}
-45
View File
@@ -1,45 +0,0 @@
# Configuration Variations
With configuration variations, you can prepare different settings and configurations for your Hyprland installation.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
## How to use configuration variations
Open the ML4W dotfiles settings app via the ML4W Welcome App, the application launcher or the wheel icon in Waybar.
You can find several variation within the three settings pages.
- Monitor (Screen Resolutions)
- Animations
- Keybindings
- Windows
- Window Rules
- Decorations
- Environments
Select the variation that you want to use from the corresponding drop down menu.
Please don't edit the shipped configuration variations. These will be overwritten with every update of the ML4W dotfiles. <b>Create your own custom variation instead.</b>
## Create your own variation
Open the ML4W dotfiles settings app via the ML4W Welcome App, the application launcher or the wheel icon in Waybar.
Select "Open Variation Folder" from the variation context menu.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
Copy an existing variation as a starting point and rename the new file accordingly.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations2.png" />
Edit the configuration of your new variation and save.
Go back to the ML4W dotfiles settings app and select "Reload Variations" from the variation context menu and select your new variation.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations3.png" />
You can also modify the variation from the settings app directly.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations4.png" />
+7
View File
@@ -0,0 +1,7 @@
# -----------------------------------------------------
# Animations
# name "Default"
# -----------------------------------------------------
animations {
enabled = false
}
+12 -12
View File
@@ -16,21 +16,21 @@ exec-once = ~/dotfiles/hypr/scripts/gtk.sh
# Using hypridle to start hyprlock # Using hypridle to start hyprlock
exec-once = hypridle exec-once = hypridle
# exec-once = swayidle -w timeout 600 'swaylock -f' timeout 660 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f'
# Load network manager applet
# START NM APPLET
# exec-once = nm-applet --indicator
# END NM APPLET
# Load cliphist history # Load cliphist history
exec-once = wl-paste --watch cliphist store exec-once = wl-paste --watch cliphist store
# Initialize swww # Initialize Wallpaper Engine
exec-once = swww init || swww-daemon --format xrgb exec-once = ~/dotfiles/hypr/scripts/init-wallpaper-engine.sh
# Load last wallpaper and waybar with pywal colors # Autostart ML4W App
exec-once = ~/dotfiles/hypr/scripts/wallpaper.sh init
# Start ML4W Welcome App
exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh 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
+1 -1
View File
@@ -1 +1 @@
exec-once = hyprctl setcursor Bibata-Modern-Ice 24 exec-once = hyprctl setcursor Bibata-Modern-Ice 32
+5 -2
View File
@@ -3,6 +3,9 @@
# name: "Default" # name: "Default"
# ----------------------------------------------------- # -----------------------------------------------------
env = XCURSOR_SIZE,24 env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORM,wayland
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = MOZ_ENABLE_WAYLAND,1
+7 -2
View File
@@ -3,7 +3,12 @@
# name: "KVM" # name: "KVM"
# ----------------------------------------------------- # -----------------------------------------------------
env = XCURSOR_SIZE,24 env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland 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_RENDERER_ALLOW_SOFTWARE, 1
env = WLR_NO_HARDWARE_CURSORS, 1
+2 -4
View File
@@ -2,14 +2,12 @@
# Environment Variables # Environment Variables
# name: "Nvidia" # name: "Nvidia"
# ----------------------------------------------------- # -----------------------------------------------------
# https://wiki.hyprland.org/Nvidia/ # https://wiki.hyprland.org/Nvidia/
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORM,wayland
env = WLR_NO_HARDWARE_CURSORS,1
env = LIBVA_DRIVER_NAME,nvidia env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# env = __GL_VRR_ALLOWED,1 # env = __GL_VRR_ALLOWED,1
# env = WLR_DRM_NO_ATOMIC,1 # env = WLR_DRM_NO_ATOMIC,1
+1 -1
View File
@@ -3,4 +3,4 @@ xwayland {
} }
env = GDK_SCALE,2 env = GDK_SCALE,2
env = QT_SCALE_FACTOR=2 env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+75 -73
View File
@@ -7,86 +7,88 @@
$mainMod = SUPER $mainMod = SUPER
# Applications # Applications
bind = $mainMod, RETURN, exec, ~/dotfiles/.settings/terminal.sh bind = $mainMod, RETURN, exec, ~/dotfiles/.settings/terminal.sh # Open the terminal
bind = $mainMod, B, exec, ~/dotfiles/.settings/browser.sh bind = $mainMod, B, exec, ~/dotfiles/.settings/browser.sh # Open the browser
bind = $mainMod, period, exec, emote bind = $mainMod, E, exec, ~/dotfiles/.settings/filemanager.sh # Open the filemanager
# Windows # Windows
bind = $mainMod, Q, killactive bind = $mainMod, Q, killactive # Kill active window
bind = $mainMod, F, fullscreen bind = $mainMod, F, fullscreen # Set active window to fullscreen
bind = $mainMod, E, exec, ~/dotfiles/.settings/filemanager.sh bind = $mainMod, T, togglefloating # Toggle active windows into floating mode
bind = $mainMod, T, togglefloating bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh # Toggle all windows into floating mode
bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh bind = $mainMod, J, togglesplit # Toggle split
bind = $mainMod, J, togglesplit bind = $mainMod, left, movefocus, l # Move focus left
bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r # Move focus right
bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u # Move focus up
bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # Move focus down
bind = $mainMod, down, movefocus, d bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
bindm = $mainMod, mouse:273, resizewindow bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
bind = $mainMod SHIFT, right, resizeactive, 100 0 bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
bind = $mainMod SHIFT, left, resizeactive, -100 0 bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
bind = $mainMod SHIFT, up, resizeactive, 0 -100 bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
bind = $mainMod SHIFT, down, resizeactive, 0 100 bind = $mainMod, G, togglegroup # Toggle window group
bind = $mainMod, G, togglegroup
# Actions # Actions
bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh bind = $mainMod SHIFT, A, exec, ~/dotfiles/hypr/scripts/toggle-animations.sh # Toggle animations
bind = $mainMod CTRL, Q, exec, wlogout bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh # Take a screenshot
bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh bind = $mainMod CTRL, Q, exec, wlogout # Start wlogout
bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh # Change the wallpaper
bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select # Open wallpaper selector
bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i # Open application launcher
bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh # Show keybindings
bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh # Reload waybar
bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh bind = $mainMod CTRL, B, exec, ~/dotfiles/waybar/toggle.sh # Toggle waybar
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh # Reload hyprland config
bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh # Open clipboard manager
bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh # Open waybar theme switcher
bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
bind = $mainMod SHIFT, S, exec, ~/dotfiles/hypr/scripts/hyprshade.sh # Toggle screenshader
bind = $mainMod ALT, G, exec, ~/dotfiles/hypr/scripts/gamemode.sh # Toggle game mode
# Workspaces # Workspaces
bind = $mainMod, 1, workspace, 1 bind = $mainMod, 1, workspace, 1 # Open workspace 1
bind = $mainMod, 2, workspace, 2 bind = $mainMod, 2, workspace, 2 # Open workspace 2
bind = $mainMod, 3, workspace, 3 bind = $mainMod, 3, workspace, 3 # Open workspace 3
bind = $mainMod, 4, workspace, 4 bind = $mainMod, 4, workspace, 4 # Open workspace 4
bind = $mainMod, 5, workspace, 5 bind = $mainMod, 5, workspace, 5 # Open workspace 5
bind = $mainMod, 6, workspace, 6 bind = $mainMod, 6, workspace, 6 # Open workspace 6
bind = $mainMod, 7, workspace, 7 bind = $mainMod, 7, workspace, 7 # Open workspace 7
bind = $mainMod, 8, workspace, 8 bind = $mainMod, 8, workspace, 8 # Open workspace 8
bind = $mainMod, 9, workspace, 9 bind = $mainMod, 9, workspace, 9 # Open workspace 9
bind = $mainMod, 0, workspace, 10 bind = $mainMod, 0, workspace, 10 # Open workspace 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 1, movetoworkspace, 1 # Move active window to workspace 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 2, movetoworkspace, 2 # Move active window to workspace 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 3, movetoworkspace, 3 # Move active window to workspace 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 4, movetoworkspace, 4 # Move active window to workspace 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 5, movetoworkspace, 5 # Move active window to workspace 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 6, movetoworkspace, 6 # Move active window to workspace 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 7, movetoworkspace, 7 # Move active window to workspace 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 8, movetoworkspace, 8 # Move active window to workspace 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 9, movetoworkspace, 9 # Move active window to workspace 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Move active window to workspace 10
bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
bind = $mainMod, mouse_up, workspace, e-1 bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
bind = $mainMod CTRL, down, workspace, empty bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace
# Fn keys
bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10%
bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%-
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPause, exec, playerctl pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bind = , XF86Calculator, exec, qalculate-gtk
bind = , XF86Lock, exec, hyprlock
bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/settings/settings.sh
# Passthrough SUPER KEY to Virtual Machine # Passthrough SUPER KEY to Virtual Machine
bind = $mainMod, P, submap, passthru bind = $mainMod, P, submap, passthru # Passthrough SUPER key to virtual machine
submap = passthru submap = passthru
bind = SUPER, Escape, submap, reset bind = SUPER, Escape, submap, reset # Get SUPER key back from virtual machine
submap = reset submap = reset
# Fn keys
bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% # Increase brightness by 10%
bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- # Reduce brightness by 10%
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5% # Increase volume by 5%
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% # Reduce volume by 5%
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # Toggle mute
bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
bind = , XF86AudioPause, exec, playerctl pause # Audio pause
bind = , XF86AudioNext, exec, playerctl next # Audio next
bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
bind = , XF86Calculator, exec, qalculate-gtk # Open calculator
bind = , XF86Lock, exec, hyprlock # Open screenlock
bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
+1 -16
View File
@@ -1,16 +1 @@
# ----------------------------------------------------- source = ~/dotfiles/hypr/conf/layouts/default.conf
# Layouts
# -----------------------------------------------------
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_is_master = true
}
gestures {
workspace_swipe = false
}
+16
View File
@@ -0,0 +1,16 @@
# -----------------------------------------------------
# Layouts
# -----------------------------------------------------
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_is_master = true
}
gestures {
workspace_swipe = false
}
+16
View File
@@ -0,0 +1,16 @@
# -----------------------------------------------------
# Layouts
# -----------------------------------------------------
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_is_master = true
}
gestures {
workspace_swipe = true
}
+14
View File
@@ -2,6 +2,10 @@
# ML4W configurations # ML4W configurations
# ----------------------------------------------------- # -----------------------------------------------------
windowrulev2 = float,class:(.*chat.openai.com.*)
windowrulev2 = size 500 50%,class:(.*chat.openai.com.*)
windowrulev2 = move 20 70,class:(.*chat.openai.com.*)
windowrulev2 = float,class:(com.ml4w.welcome) windowrulev2 = float,class:(com.ml4w.welcome)
windowrulev2 = size 700 600,class:(com.ml4w.welcome) windowrulev2 = size 700 600,class:(com.ml4w.welcome)
windowrulev2 = center,class:(com.ml4w.welcome) windowrulev2 = center,class:(com.ml4w.welcome)
@@ -18,8 +22,18 @@ windowrulev2 = float,class:(ml4w-dotfiles-settings.py)
windowrulev2 = size 400 500,class:(ml4w-dotfiles-settings.py) windowrulev2 = size 400 500,class:(ml4w-dotfiles-settings.py)
windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py) windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py)
windowrulev2 = float,class:(com.ml4w.hyprland.settings)
windowrulev2 = size 700 600,class:(com.ml4w.hyprland.settings)
windowrulev2 = center,class:(com.ml4w.hyprland.settings)
windowrulev2 = float,class:(ml4w-hyprland-settings.py)
windowrulev2 = size 700 600,class:(ml4w-hyprland-settings.py)
windowrulev2 = center,class:(ml4w-hyprland-settings.py)
windowrulev2 = float,class:(dotfiles-floating) windowrulev2 = float,class:(dotfiles-floating)
windowrulev2 = size 1000 800,class:(dotfiles-floating) windowrulev2 = size 1000 800,class:(dotfiles-floating)
windowrulev2 = center,class:(dotfiles-floating) windowrulev2 = center,class:(dotfiles-floating)
env = APPIMAGELAUNCHER_DISABLE,1 env = APPIMAGELAUNCHER_DISABLE,1
env = XCURSOR_SIZE,24
env = XDG_CURRENT_DESKTOP,Hyprland
+1
View File
@@ -0,0 +1 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
+2
View File
@@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -blur "50x30" $used_wallpaper
@@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
+1
View File
@@ -0,0 +1 @@
magick $wallpaper -blur "50x30" $used_wallpaper
@@ -0,0 +1,2 @@
magick $wallpaper -blur "50x30" $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
+1
View File
@@ -0,0 +1 @@
magick $wallpaper -blur "10x30" $used_wallpaper
+1
View File
@@ -0,0 +1 @@
magick $wallpaper -negate $used_wallpaper
@@ -0,0 +1,2 @@
magick $wallpaper -negate $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper
+9 -2
View File
@@ -8,9 +8,16 @@
# Version 2.8.3 # Version 2.8.3
# DO NOT REMOVE THE REPLACEMENT COMMENTS # DO NOT REMOVE THE REPLACEMENT COMMENTS
# REQUIRED BY THE ML4W SETTINGS APP # REQUIRED BY THE ML4W SETTINGS APP
# https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
# general {
# ignore_dbus_inhibit = false
# }
general { general {
ignore_dbus_inhibit = false lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
} }
# Screenlock # Screenlock
@@ -18,7 +25,7 @@ listener {
# HYPRLOCK TIMEOUT # HYPRLOCK TIMEOUT
timeout = 600 timeout = 600
# HYPRLOCK ONTIMEOUT # HYPRLOCK ONTIMEOUT
on-timeout = hyprlock on-timeout = loginctl lock-session
} }
# dpms # dpms
+4 -1
View File
@@ -6,6 +6,9 @@
# |___/|_| # |___/|_|
# #
# ----------------------------------------------------- # -----------------------------------------------------
# IMPORTANT: Don't overwrite ML4W configuration.
# Create your own custom configuration variation instead.
# https://gitlab.com/stephan-raabe/dotfiles#hyprland-configuration-variations
# ----------------------------------------------------- # -----------------------------------------------------
# Monitor # Monitor
@@ -58,7 +61,7 @@ source = ~/dotfiles/hypr/conf/animation.conf
source = ~/dotfiles/hypr/conf/custom.conf source = ~/dotfiles/hypr/conf/custom.conf
# ----------------------------------------------------- # -----------------------------------------------------
# Custom # ML4W Configuration
# ----------------------------------------------------- # -----------------------------------------------------
source = ~/dotfiles/hypr/conf/ml4w.conf source = ~/dotfiles/hypr/conf/ml4w.conf
+17 -2
View File
@@ -20,7 +20,7 @@ input-field {
dots_center = true dots_center = true
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = rgb(151515) outer_color = rgb(151515)
inner_color = rgb(200, 200, 200) inner_color = rgb(FFFFFF)
font_color = rgb(10, 10, 10) font_color = rgb(10, 10, 10)
fade_on_empty = true fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
@@ -47,7 +47,7 @@ label {
color = rgba(200, 200, 200, 1.0) color = rgba(200, 200, 200, 1.0)
font_size = 55 font_size = 55
font_family = Fira Semibold font_family = Fira Semibold
position = -100, -200 position = -100, -40
halign = right halign = right
valign = bottom valign = bottom
shadow_passes = 5 shadow_passes = 5
@@ -66,3 +66,18 @@ label {
shadow_passes = 5 shadow_passes = 5
shadow_size = 10 shadow_size = 10
} }
image {
monitor =
path = $HOME/.cache/square_wallpaper.png
size = 280 # lesser side if not 1:1 ratio
rounding = -1 # negative values mean circle
border_size = 4
border_color = rgb(221, 221, 221)
rotate = 0 # degrees, counter-clockwise
reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
position = 0, 200
halign = center
valign = center
}
+3
View File
@@ -0,0 +1,3 @@
preload = $HOME/wallpaper/hyprland.jpg
wallpaper = ,$HOME/wallpaper/hyprland.jpg
splash = false
+18
View File
@@ -0,0 +1,18 @@
import sys
import subprocess
import os
import json
import pathlib
import shutil
# Get script path
pathname = os.path.dirname(sys.argv[0])
homeFolder = os.path.expanduser('~') # Path to home folder
dotfiles = homeFolder + "/dotfiles/"
result = subprocess.run(["bash", dotfiles + "hypr/scripts/monitors.sh"], capture_output=True, text=True)
monitors_json = result.stdout.strip()
monitors_arr = json.loads(monitors_json)
for row in monitors_arr:
if row["focused"]:
print(row["id"])
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
# Remove gamemode flag
if [ -f ~/.cache/gamemode ] ;then
rm ~/.cache/gamemode
echo ":: ~/.cache/gamemode removed"
fi
+52
View File
@@ -0,0 +1,52 @@
#!/bin/bash
# ____ _ _
# | _ \(_) __ _ __ _ _ __ ___ ___(_)___
# | | | | |/ _` |/ _` | '_ \ / _ \/ __| / __|
# | |_| | | (_| | (_| | | | | (_) \__ \ \__ \
# |____/|_|\__,_|\__, |_| |_|\___/|___/_|___/
# |___/
#
clear
sleep 0.5
figlet "Diagnosis"
echo
echo "This script will check that essential packages and "
echo "execution commands are available on your system."
echo
_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 found."
fi
}
_folderExists() {
folder="$1";
if [ ! -d $folder ]; then
echo ":: ERROR: $folder doesn't exists."
else
echo ":: OK: $folder found."
fi
}
_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 "swww" "swww"
_commandExists "eww" "eww"
_commandExists "magick" "imagemagick"
_commandExists "figlet" "figlet"
echo
echo "Press return to exit"
read
-1
View File
@@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
clear clear
cat <<"EOF" cat <<"EOF"
____ _ _ _ ____ __ __ ____ _ _ _ ____ __ __
| _ \(_)___ __ _| |__ | | ___| _ \| \/ | | _ \(_)___ __ _| |__ | | ___| _ \| \/ |
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
# _____ ____ __
# / _ \ \ /\ / /\ \ /\ / /
# | __/\ V V / \ V V /
# \___| \_/\_/ \_/\_/
#
EWW=`which eww`
if [[ ! `pidof eww` ]]; then
${EWW} daemon
sleep 0.5
fi
-3
View File
@@ -1,3 +0,0 @@
#!/bin/bash
sleep 1
killall -9 Hyprland sleep 2

Some files were not shown because too many files have changed in this diff Show More