Compare commits

...

107 Commits
main ... fcitx5

Author SHA1 Message Date
7692ad3c41 update: add QT_IM_MODULE=fcitx env 2024-06-16 01:57:22 -04:00
d3277bd7fc Merge branch 'upstream-main' into fcitx5 2024-06-13 21:28:51 -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
c2d2d45546 Merge branch 'upstream-main' into fcitx5 2024-06-05 05:50:50 -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
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
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
b9025fbfb1 fix: fcitx5 conf 2024-04-05 16:13:19 -04:00
7a4d9f7b21 fix: fcitx5 conf 2024-04-05 16:07:36 -04:00
249e71d187 fix: fcitx5 conf 2024-04-05 15:50:00 -04:00
380b43ea30 new feat: fcitx5 install 2024-04-05 15:31:21 -04:00
ee983e39db update: waybar tray 2024-04-05 02:59:46 -04:00
18bed6fbdf update: rofi border-radius and position etc 2024-04-05 01:33:45 -04:00
77cd4cf980 minor: space in cpu module in waybar 2024-04-04 05:10:16 -04:00
f095151882 update: better cpu icon in waybar 2024-04-04 04:52:18 -04:00
bc227bed49 minor: trail space 2024-04-04 04:44:25 -04:00
475fbc55cc update: better battery in waybar 2024-04-04 04:42:52 -04:00
1c96f24b09 update: new battary icons in waybar 2024-04-04 03:17:29 -04:00
71caefa11a update: rm volume number from waybar 2024-04-04 02:29:48 -04:00
4b9812dc7f update: add notify-sent to volume change 2024-04-04 00:02:50 -04:00
20ce47fa20 update: add ~/.local/bin to PATH in bashrc (for zathura-pywal) 2024-04-03 22:27:27 -04:00
1763d37ee4 update: keep memory in waybar 0.1f 2024-04-03 17:31:32 -04:00
b113e1f81d update: keep idle-inh... 2024-04-03 14:34:31 -04:00
289308a542 update: keep idle-inh... 2024-04-03 14:29:05 -04:00
8c2be8fed6 Merge remote-tracking branch 'upstream/main' into upstream-custom 2024-04-03 14:22:56 -04:00
beb717a961 update: custom waybar 2024-04-03 13:25:27 -04:00
2e985927af update: add custom blur waybar themes 2024-03-28 19:30:14 -04:00
8265c9fdea update: add custom waybar themes 2024-03-28 19:26:19 -04:00
c1873060de update: add custom settings 2024-03-28 13:02:10 -04:00
171 changed files with 3699 additions and 1084 deletions

24
.bashrc
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'
@ -45,7 +45,9 @@ 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-sidebar='~/dotfiles/eww/ml4w-sidebar/launch.sh'
alias ml4w-hyprland='~/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage' alias ml4w-hyprland='~/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage'
alias ml4w-diagnosis='~/dotfiles/scripts/diagnosis.sh' 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
@ -57,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"
@ -71,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'
@ -80,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'
@ -95,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."'
@ -113,7 +109,7 @@ alias setkb='setxkbmap de;echo "Keyboard set back to de."'
alias res1='xrandr --output DisplayPort-0 --mode 2560x1440 --rate 120' alias res1='xrandr --output DisplayPort-0 --mode 2560x1440 --rate 120'
alias res2='xrandr --output DisplayPort-0 --mode 1920x1080 --rate 120' alias res2='xrandr --output DisplayPort-0 --mode 1920x1080 --rate 120'
export PATH="/usr/lib/ccache/bin/:$PATH" export PATH="$HOME/.local/bin/:/usr/lib/ccache/bin/:$PATH"
# ----------------------------------------------------- # -----------------------------------------------------
# DEVELOPMENT # DEVELOPMENT
@ -131,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

View File

@ -80,7 +80,7 @@ if [ -d ~/dotfiles ] || ! test -L ~/.bashrc || [ -d ~/.config/hypr ] || [ -d ~/.
if ! test -L ~/.config/swappy && [ -d ~/.config/swappy ] ;then if ! test -L ~/.config/swappy && [ -d ~/.config/swappy ] ;then
echo " - $HOME/.config/swappy/" echo " - $HOME/.config/swappy/"
fi fi
echo
# Start Backup # Start Backup
if gum confirm "Do you want to create a backup?" ;then if gum confirm "Do you want to create a backup?" ;then

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

View File

@ -43,6 +43,10 @@ if [ -f ~/dotfiles/.settings/eww-monitor.sh ] ;then
fi fi
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

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,7 +17,8 @@ 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
exit 130 echo ":: Installation canceled."
exit 130
else else
echo ":: Installation canceled." echo ":: Installation canceled."
exit; exit;
@ -27,7 +27,8 @@ 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
exit 130 echo ":: Update canceled."
exit 130
else else
echo ":: Update canceled." echo ":: Update canceled."
exit; exit;

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
exit 130 echo ":: Installation canceled"
exit 130
else else
echo ":: Installation canceled"
exit exit
fi fi
echo "" echo

View File

@ -4,7 +4,7 @@ echo -e "${NONE}"
echo "The system check will test that essential packages and " echo "The system check will test that essential packages and "
echo "execution commands are available now on your system." echo "execution commands are available now on your system."
echo
if gum confirm "Do you want to run a short system check?" ;then if gum confirm "Do you want to run a short system check?" ;then
_folderExists "$HOME/dotfiles" "Please repeat the installation." _folderExists "$HOME/dotfiles" "Please repeat the installation."

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,12 +31,14 @@ 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?"
echo
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme") 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?"
echo
dmsel=$(gum choose "Keep current setup" "Install sddm and theme") dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
fi fi
else else
@ -43,59 +46,79 @@ else
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?"
echo
dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme") 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?"
echo
dmsel=$(gum choose "Keep current setup" "Install sddm and theme") 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 and theme" ] ;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

24
.install/fcitx5.sh Normal file
View File

@ -0,0 +1,24 @@
# ------------------------------------------------------
# Select fcitx5 or not
# ------------------------------------------------------
echo -e "${GREEN}"
figlet "fcitx5"
echo -e "${NONE}"
if gum confirm "Do you want to install fcitx5 and chinese input method?" ;then
packagesPacman=(
"fcitx5"
"fcitx5-chinese-addons"
"fcitx5-configtool"
"fcitx5-gtk"
"fcitx5-qt"
);
packagesYay=(
"fcitx5-skin-seasons"
);
source .install/install-packages.sh
echo -e "\n# -----------------------------------------------------" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
echo "# fcitx5 support" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
echo "# -----------------------------------------------------" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
echo "source = ~/dotfiles/hypr/conf/fcitx5.conf" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
fi

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

View File

@ -37,8 +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/swappy ]; then if [ -d ~/dotfiles-versions/$version/eww ]; then
_installSymLink eww ~/.config/eww ~/dotfiles/eww/ ~/.config _installSymLink eww ~/.config/eww ~/dotfiles/eww/ ~/.config
fi 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

View File

@ -6,4 +6,5 @@ gtk
README.md README.md
CHANGELOG CHANGELOG
LICENSE LICENSE
install.sh install.sh
setup.sh

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

View File

@ -6,48 +6,85 @@ echo -e "${GREEN}"
figlet "Keyboard" figlet "Keyboard"
echo -e "${NONE}" echo -e "${NONE}"
# Default layout and variants setkeyboard=0
keyboard_layout="us"
_setupKeyboardLayout() {
echo ""
echo "Start typing = Search, RETURN = Confirm, CTRL-C = Cancel"
keyboard_layout=$(localectl list-x11-keymap-layouts | gum filter --height 15 --placeholder "Find your keyboard layout...")
echo ""
echo ":: Keyboard layout changed to $keyboard_layout"
echo ""
_confirmKeyboard
}
_confirmKeyboard() {
echo "Current selected keyboard setup:"
echo "Keyboard layout: $keyboard_layout"
if gum confirm "Do you want proceed with this keyboard setup?" --affirmative "Proceed" --negative "Change" ;then
return 0
elif [ $? -eq 130 ]; then
exit 130
else
_setupKeyboardLayout
fi
}
if [ "$restored" == "1" ]; then if [ "$restored" == "1" ]; then
echo ":: You have already restored your settings into the new installation." echo ":: You have already restored your settings into the new installation."
else echo "You can repeat the keyboard setup again to choose between a desktop and laptop optimized configuration."
echo
if gum confirm "Do you want to setup your keyboard again?" ;then
setkeyboard=0
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
echo ":: Keyboard setup skipped."
setkeyboard=1
fi
fi
if [ "$setkeyboard" == "0" ] ;then
# Default layout and variants
keyboard_layout="us"
keyboard_variant=""
_setupKeyboardLayout() {
keyboard_layout=$(localectl list-x11-keymap-layouts | gum filter --height 15 --placeholder "Find your keyboard layout...")
echo ":: Keyboard layout changed to $keyboard_layout"
_setupKeyboardVariant
}
_setupKeyboardVariant() {
if gum confirm "Do you want to set a variant of the keyboard?" ; then
keyboard_variant=$(localectl list-x11-keymap-variants | gum filter --height 15 --placeholder "Find your keyboard layout...")
echo ":: Keyboard variant changed to $keyboard_variant"
fi
_confirmKeyboard
}
_confirmKeyboard() {
echo
echo "Current selected keyboard setup:"
echo "Keyboard layout: $keyboard_layout"
echo "Keyboard variant: $keyboard_variant"
echo
if gum confirm "Do you want proceed with this keyboard setup?" --affirmative "Proceed" --negative "Change" ;then
return 0
elif [ $? -eq 130 ]; then
exit 130
else
_setupKeyboardLayout
fi
}
_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

View File

@ -7,9 +7,13 @@ echo -e "${GREEN}"
figlet "Neovim" figlet "Neovim"
echo -e "${NONE}" echo -e "${NONE}"
echo ":: The script has detected a nvim folder." echo ":: The script has detected a nvim folder."
echo
if gum confirm "Do you want to install the ML4W Neovim configuration?"; then 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."

View File

@ -11,7 +11,8 @@ packagesPacman=(
"dunst" "dunst"
"starship" "starship"
"mpv" "mpv"
"thunar" "thunar"
"nautilus"
"mousepad" "mousepad"
"noto-fonts" "noto-fonts"
"otf-font-awesome" "otf-font-awesome"
@ -29,7 +30,6 @@ packagesPacman=(
"python-gobject" "python-gobject"
"pavucontrol" "pavucontrol"
"tumbler" "tumbler"
"blueman"
"papirus-icon-theme" "papirus-icon-theme"
"breeze-icons" "breeze-icons"
"polkit-gnome" "polkit-gnome"
@ -39,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"
@ -53,10 +54,11 @@ packagesPacman=(
"guvcview" "guvcview"
"jq" "jq"
"rofi-wayland" "rofi-wayland"
"fastfetch"
"blueman"
); );
packagesYay=( packagesYay=(
"pfetch"
"bibata-cursor-theme" "bibata-cursor-theme"
"trizen" "trizen"
"pacseek" "pacseek"

View File

@ -1,20 +1,19 @@
packagesPacman=( packagesPacman=(
"hyprland" "hyprland"
"hyprpaper" "hyprpaper"
"hyprlock"
"hypridle"
"xdg-desktop-portal-hyprland" "xdg-desktop-portal-hyprland"
"waybar" "waybar"
"grim" "grim"
"slurp" "slurp"
"swappy" "swappy"
"cliphist" "cliphist"
"hyprlock"
"hypridle"
); );
packagesYay=( packagesYay=(
"swww"
"wlogout" "wlogout"
"nwg-look" "nwg-look"
"emote"
"eww" "eww"
"hyprshade"
); );

55
.install/paralleldownloads.sh Executable file
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

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

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

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. CTRL-C/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/

View File

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

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
}

View File

@ -6,12 +6,14 @@ 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." echo "It's important that your system is up-to-date before you proceed."
echo
if gum confirm "Do you want to update your system with yay now?" ;then if gum confirm "Do you want to update your system with yay now?" ;then
echo ":: Update started" echo ":: Update started"
yay yay
elif [ $? -eq 130 ]; then elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130 exit 130
else else
echo ":: System update skipped" echo ":: System update skipped"
fi fi
echo echo

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."

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

View File

@ -1 +1 @@
thunar nautilus

1
.settings/hyprshade.sh Normal file
View File

@ -0,0 +1 @@
hyprshade_filter="blue-light-filter"

View File

@ -1 +1,4 @@
* { border-width: 3px; } * {
border-width: 2px;
border-radius: 15px;
}

View File

@ -0,0 +1 @@
off

View File

@ -0,0 +1,2 @@
# Enter the path to the folder that includes your wallpapers
wallpaper_folder=$HOME/wallpaper

View File

@ -1 +1 @@
2.9 2.9.1.2

View File

@ -1 +1 @@
2900 2912

View File

@ -1,3 +1,39 @@
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 Version 2.9
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9 https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9
-------------------------------------------------------- --------------------------------------------------------

534
README.md
View File

@ -1,538 +1,53 @@
# ML4W Dotfiles 2.9 # 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/v29/screenshot-29-1.png "Screenshot")](screenshots/v29/screenshot-29-1.png) [![Screenshot](screenshots/screenshot2.png "Screenshot")](screenshots/screenshot2.png)
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)
YouTube Video [https://youtu.be/HMxHUvN6VGo](https://youtu.be/HMxHUvN6VGo) YouTube Video [https://youtu.be/HMxHUvN6VGo](https://youtu.be/HMxHUvN6VGo)
[TOC]
# Installation
The package includes an installation script that will guide you through all steps of the installation or update process.
> PLEASE NOTE: Every Linux distribution and setup can be different. Therefore, I cannot guarantee that the installation will work everywhere. Installation on your own risk.
## Supported platforms
The dotfiles are tested with the following Arch based distributions:
- Arch Linux (recommended)
- EndeavourOS
- Garuda Linux
- Arco Linux
The installation should work on all Arch Linux based distributions as well.
> **For Manjaro users:** Hyprland and required packages are under ongoing development. That's why it could be possible that some packages are not immediatly available on Manjaro. But usually, the packages will be published later. Maybe you can install required packages manually.
> **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 backups from configurations of your .config folder that will be overwritten from the installation procedure and previous ML4W Dotfiles installation.
If possible, please create a snapshot of your current system if snapper or Timeshift is installed and available.
## Installation ## Installation
The easiest way to install the ML4W Dotfiles is to use the ML4W Dotfiles Installer App. The installation should work on all Arch Linux based distributions. [You can find more information here](https://gitlab.com/stephan-raabe/dotfiles/-/wikis/home).
[You can download the app here.](https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/installer.AppImage) (Right click + Save link as... into your Downloads Folder) The easiest way is to use the setup.sh script. The script will download all files from GitLab and start the installation automatically.
Just copy/enter the following command into your terminal.
``` ```
# 1.) Change to the Downloads folder bash <(curl -s https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/setup.sh)
cd ~/Downloads
# 2.) Make the file executable
chmod +x installer.AppImage
# 3.) Start the App from your terminal with
./installer.AppImage
``` ```
Or with download the Installer App with wget if your starting point is a minimal Arch Linux with without DE from tty: > 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.
``` ## Wiki
# 0.) Install required packages
sudo pacman -S wget fuse2 # Only required for Minimal Arch installations. If wget or libfuse.so.2 is not installed.
# 1.) Create Downloads folder 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>
mkdir ~/Downloads # If Downloads folder doesn't exists
# 2.) Download the installer ## Contributing
wget -P ~/Downloads/ https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/installer.AppImage
# 3.) Change to the Downloads 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 ~/Downloads
# 4.) Make the file executable You can also visit the [ML4W Discord Server](https://discord.gg/c4fJK7Za3g) to start a discussion with other users.
chmod +x installer.AppImage
# 5.) Start the App from your terminal with ## Screenshots
./installer.AppImage
``` [![Screenshot](screenshots/screenshot1.png "Screenshot")](screenshots/screenshot1.png)
Alternatively you can install with GIT. [![Screenshot](screenshots/screenshot3.png "Screenshot")](screenshots/screenshot3.png)
## Update [![Screenshot](screenshots/screenshot4.png "Screenshot")](screenshots/screenshot5.png)
You can use the integrated update feature to update your dotfiles to the main or rolling release whenever you want. ## Wallpaper repository
![Update](screenshots/welcome-update-dotfiles.png "Updates")
Start the ML4W Welcome App. You will see a notification when an update is available. You can start the update or re-installation of the ML4W Dotfiles at any time.
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.
## Uninstall
You can use the integrated uninstallation function (ML4W Dotfiles Uninstaller App) to remove the ML4W Dotfiles from your system.
Please select "Uninstall Dotfiles" from the ML4W Welcome App or execute ~/dotfiles/uninstall.sh
The ML4W Dotfiles Uninstaller App will remove the dotfiles folder, related symbolic links and the desktop files of the ML4W Apps.
The script will also try to restore old configurations back into .config if available and restored during the installation of the ML4W Dotfiles.
## 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
## 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
## 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
## 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.
The ML4W Dotfiles are using the recommended configuration from https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
# 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
[![Screenshot](screenshots/v29/screenshot-29-2.png "Screenshot")](screenshots/v29/screenshot-29-2.png)
[![Screenshot](screenshots/v29/screenshot-29-3.png "Screenshot")](screenshots/v29/screenshot-29-3.png)
<a href="https://youtu.be/HMxHUvN6VGo" target="_blank">Watch on YouTube</a>
## ML4W Sidebar
With the ML4W Sidebar you have access to all included ML4W Applications and some system information. In addition, you start the main power features for your system.
You can also start the sidebar from the terminal with
```
ml4w-sidebar
```
<img src="screenshots/screenshot-sidebar.png" />
## 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.
You can also start the Welcome App from the terminal with
```
ml4w
```
<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
You can also start the Dotfiles App from the terminal with
```
ml4w-settings
```
## ML4W Hyprland Settings App
This applications supports you to customize your Hyprland installation. You can overwrite the existing configuration with custom values without adding complex configuration files.
[![Screenshot](screenshots/screenshot-hyprland-settings.png "ML4W Hyprland Settings")](screenshots/screenshot.png)
YOu can start the application from the application launcher, the ML4W Sidebar by clicking the ML4W Logo or from the welcome app.
The app shows variables and current values of your running Hyprland.
You can change the values and overwrite the existing values. The change will be axecuted immediatly.
In the Set Variables tab you can see which values you have overwritten and can restore the old values be removing the entry.
You can also start the Hyprland App from the terminal with
```
ml4w-hyprland
```
You can find the sourcecode of the ML4W Hyprland Settings App in this repository:
https://gitlab.com/stephan-raabe/ml4w-hyprland-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 with swww or hyprpaper 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.
In case of issues with swww, you can switch between the Wallpaper application swww and hyprpaper. Open the ML4W Dotfiles Settings app and select the tab system. At the top you can find the Wallpaper Engine Selector.
> PLEASE NOTE: A logout and login is required to activate the new wallpaper application.
The hyprpaper engine uses a template stored in dotfiles/.settings/hyprpaper.tpl You can add additional configurations there. The WALLPAPER placeholder will be replaced with the current wallpaper.
## 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
- Wallpaper: hyprpaper (swww optional)
- Icons: Font Awesome
- Launch Menus: Rofi (Wayland)
- Colorscheme: pywal
- Browsers: Chromium
- 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
- Colorscheme: pywal
- Browsers: Chromium
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
- Status Bar: Qtile status bar
- Compositor: picom (optional)
- Screenshots: scrot
# Installation/Update with GIT
## Installation with GIT
You can also install the dotfiles by cloning the latest main release:
```
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
# 2.) Clone the dotfiles repository into the Downloads folder
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 3.) Change into the dotfiles folder
cd dotfiles
# 4.) Start the installation
./install.sh
```
## Installation with GIT (Rolling release)
You can install the dotfiles by cloning the latest development version from the rolling release:
```
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
# 2.) Clone the dotfiles repository into the Downloads folder
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 with GIT
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
```
# Base Hyprland installation with Hyperland Starter Package
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
# Troubleshooting
The ML4W Welcome App includes a system diagnosis feature available in the menu with the three dots.
Please run the diagnosis to see if all essential packages and related commands are available on your system.
If not, you need to install the missing packages manually.
## rofi (application launcher) is not working
If the installation of rofi-wayland fails in the installation/update procedure please try to install it manually:
```
yay -S rofi-wayland
```
If rofi-wayland isn't available please try rofi:
```
yay -S rofi
```
## 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 or xdg-desktop-portal-gnome. 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:
@ -540,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...

Binary file not shown.

Binary file not shown.

View File

@ -36,7 +36,7 @@
(box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false" (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" (box :class "res_circle" :orientation "v" :valign "center" :halign "center"
(circular-progress :class "res_cpu" :value CPU_USAGE :thickness 15 (circular-progress :class "res_cpu" :value CPU_USAGE :thickness 15
(label :class "res_circle_small" :text "CPU") (label :class "res_circle_small" :text "CPU" :show-truncated false)
) )
) )
(label :class "res_text" :valign "end" :halign "center" :text "${CPU_USAGE}%") (label :class "res_text" :valign "end" :halign "center" :text "${CPU_USAGE}%")
@ -44,7 +44,7 @@
(box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false" (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" (box :class "res_circle" :orientation "v" :valign "center" :halign "center"
(circular-progress :class "res_mem" :value MEM_USAGE :thickness 15 (circular-progress :class "res_mem" :value MEM_USAGE :thickness 15
(label :class "res_circle_small" :text "MEMORY") (label :class "res_circle_small" :text "MEMORY" :show-truncated false)
) )
) )
(label :class "res_text" :valign "end" :halign "center" :text "${MEM_USAGE}%") (label :class "res_text" :valign "end" :halign "center" :text "${MEM_USAGE}%")
@ -52,7 +52,7 @@
(box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false" (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" (box :class "res_circle" :orientation "v" :valign "center" :halign "center"
(circular-progress :class "res_disk" :value DISK_USAGE :thickness 15 (circular-progress :class "res_disk" :value DISK_USAGE :thickness 15
(label :class "res_circle_small" :text "DISK") (label :class "res_circle_small" :text "DISK" :show-truncated false)
) )
) )
(label :class "res_text" :valign "end" :halign "center" :text "${DISK_USAGE}%") (label :class "res_text" :valign "end" :halign "center" :text "${DISK_USAGE}%")
@ -70,31 +70,31 @@
;; powermenus ;; powermenus
(defwidget logout [] (defwidget logout []
(box :class "winbox" (box :class "winbox"
(button :tooltip "Logout" :style "background-image: url('../assets/application-exit-symbolic-rtl.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh logout &") (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 [] (defwidget suspend []
(box :class "winbox" (box :class "winbox"
(button :tooltip "Suspend" :style "background-image: url('../assets/media-playback-pause-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh suspend &") (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 [] (defwidget lock []
(box :class "winbox" (box :class "winbox"
(button :tooltip "Lock" :style "background-image: url('../assets/system-lock-screen-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh lock &") (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 [] (defwidget reboot []
(box :class "winbox" (box :class "winbox"
(button :tooltip "Reboot" :style "background-image: url('../assets/system-reboot-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh reboot &") (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 [] (defwidget shutdown []
(box :class "winbox" (box :class "winbox"
(button :tooltip "Shutdown" :style "background-image: url('../assets/system-shutdown-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh shutdown &") (button :tooltip "Shutdown" :style "background-image: url('../assets/system-shutdown-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../../hypr/scripts/power.sh shutdown &")
) )
) )

View File

@ -1,11 +1,12 @@
#!/bin/bash #!/bin/bash
if [[ "$1" == "--welcome" ]]; then if [[ "$1" == "--welcome" ]]; then
$HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage $HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage &
elif [[ "$1" == "--dotfiles" ]]; then elif [[ "$1" == "--dotfiles" ]]; then
$HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage $HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage &
elif [[ "$1" == "--hyprland" ]]; then elif [[ "$1" == "--hyprland" ]]; then
$HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage $HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage &
else else
echo "ERROR: $1 not found" echo "ERROR: $1 not found"
fi fi
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh &

110
fastfetch/config.jsonc Normal file
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",
]
}

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" />

View File

@ -1 +1 @@
source = ~/dotfiles/hypr/conf/animations/default.conf source = ~/dotfiles/hypr/conf/animations/animation-moving.conf

View File

@ -16,7 +16,6 @@ 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 cliphist history # Load cliphist history
exec-once = wl-paste --watch cliphist store exec-once = wl-paste --watch cliphist store
@ -27,8 +26,11 @@ exec-once = ~/dotfiles/hypr/scripts/init-wallpaper-engine.sh
# Autostart ML4W App # Autostart ML4W App
exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh
# Load configuration from ML4W Hyprland Settings App
exec-once = ~/.config/ml4w-hyprland-settings/hyprctl.sh
# Start ewww daemon # Start ewww daemon
exec-once = ~/dotfiles/hypr/scripts/eww.sh 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

View File

@ -1 +1 @@
source = ~/dotfiles/hypr/conf/decorations/default.conf source = ~/dotfiles/hypr/conf/decorations/custom.conf

View File

@ -0,0 +1,25 @@
# -----------------------------------------------------
# General window decoration
# name: "Default"
# -----------------------------------------------------
decoration {
rounding = 10
blur {
enabled = true
size = 10
passes = 3
new_optimizations = on
ignore_opacity = true
xray = false
blurls = waybar
}
active_opacity = 1.0
inactive_opacity = 0.8
fullscreen_opacity = 1.0
drop_shadow = true
shadow_range = 30
shadow_render_power = 3
col.shadow = 0x66000000
}

View File

@ -3,8 +3,6 @@
# name: "Default" # name: "Default"
# ----------------------------------------------------- # -----------------------------------------------------
env = XCURSOR_SIZE,24
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORM,wayland

View File

@ -3,8 +3,6 @@
# name: "KVM" # name: "KVM"
# ----------------------------------------------------- # -----------------------------------------------------
env = XCURSOR_SIZE,24
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORM,wayland
@ -12,5 +10,5 @@ env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = MOZ_ENABLE_WAYLAND,1 env = MOZ_ENABLE_WAYLAND,1
env = GDK_SCALE,1 env = GDK_SCALE,1
env = WLR_NO_HARDWARE_CURSORS, 1
env = WLR_RENDERER_ALLOW_SOFTWARE, 1 env = WLR_RENDERER_ALLOW_SOFTWARE, 1
env = WLR_NO_HARDWARE_CURSORS, 1

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

7
hypr/conf/fcitx5.conf Normal file
View File

@ -0,0 +1,7 @@
exec-once = fcitx5-remote -r
exec-once = fcitx5 -d --replace
exec-once = fcitx5-remote -r
bind=$mainMod CTRL, E, exec, pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r
env=QT_IM_MODULE,fcitx

View File

@ -1 +1 @@
source = ~/dotfiles/hypr/conf/keybindings/default.conf source = ~/dotfiles/hypr/conf/keybindings/custom.conf

View File

@ -0,0 +1,94 @@
# -----------------------------------------------------
# Key bindings
# name: "Default"
# -----------------------------------------------------
# SUPER KEY
$mainMod = SUPER
# Applications
bind = $mainMod, RETURN, exec, ~/dotfiles/.settings/terminal.sh
bind = $mainMod, B, exec, ~/dotfiles/.settings/browser.sh
bind = $mainMod, period, exec, emote
# Windows
bind = $mainMod, Q, killactive
bind = $mainMod, F, fullscreen
bind = $mainMod, E, exec, ~/dotfiles/.settings/filemanager.sh
bind = $mainMod, T, togglefloating
bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh
bind = $mainMod, J, togglesplit
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bind = $mainMod SHIFT, right, resizeactive, 100 0
bind = $mainMod SHIFT, left, resizeactive, -100 0
bind = $mainMod SHIFT, up, resizeactive, 0 -100
bind = $mainMod SHIFT, down, resizeactive, 0 100
bind = $mainMod, G, togglegroup
# Actions
bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh
bind = $mainMod CTRL, Q, exec, wlogout
bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh
bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select
bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i
bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh
bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh
bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh
bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh
bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh
bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh
bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
# Workspaces
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod CTRL, down, workspace, empty
bind = $mainMod CTRL, left, workspace, e-1
bind = $mainMod CTRL, right, workspace, e+1
# 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% && notify-send -t 400 "Volume: $(pactl get-sink-volume @DEFAULT_SINK@ | awk '/front-left/ {print $5}')"
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5% && notify-send -t 400 "Volume: $(pactl get-sink-volume @DEFAULT_SINK@ | awk '/front-left/ {print $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
bind = $mainMod, P, submap, passthru
submap = passthru
bind = SUPER, Escape, submap, reset
submap = reset

View File

@ -7,87 +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 SHIFT, A, exec, ~/dotfiles/hypr/scripts/toggle-animations.sh bind = $mainMod SHIFT, A, exec, ~/dotfiles/hypr/scripts/toggle-animations.sh # Toggle animations
bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh # Take a screenshot
bind = $mainMod CTRL, Q, exec, wlogout bind = $mainMod CTRL, Q, exec, wlogout # Start wlogout
bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh # Change the wallpaper
bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select # Open wallpaper selector
bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i # Open application launcher
bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh # Show keybindings
bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh # Reload waybar
bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh bind = $mainMod CTRL, B, exec, ~/dotfiles/waybar/toggle.sh # Toggle waybar
bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh # Reload hyprland config
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh # Open clipboard manager
bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh # Open waybar theme switcher
bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage # Open ML4W Dotfiles Settings app
bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage 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

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
}

View File

@ -0,0 +1,16 @@
# -----------------------------------------------------
# Layouts
# -----------------------------------------------------
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_is_master = true
}
gestures {
workspace_swipe = false
}

View File

@ -0,0 +1,16 @@
# -----------------------------------------------------
# Layouts
# -----------------------------------------------------
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_is_master = true
}
gestures {
workspace_swipe = true
}

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,9 +22,9 @@ 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.hyprlandsettings) windowrulev2 = float,class:(com.ml4w.hyprland.settings)
windowrulev2 = size 700 600,class:(com.ml4w.hyprlandsettings) windowrulev2 = size 700 600,class:(com.ml4w.hyprland.settings)
windowrulev2 = center,class:(com.ml4w.hyprlandsettings) windowrulev2 = center,class:(com.ml4w.hyprland.settings)
windowrulev2 = float,class:(ml4w-hyprland-settings.py) windowrulev2 = float,class:(ml4w-hyprland-settings.py)
windowrulev2 = size 700 600,class:(ml4w-hyprland-settings.py) windowrulev2 = size 700 600,class:(ml4w-hyprland-settings.py)
@ -31,4 +35,5 @@ 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

View File

@ -0,0 +1,7 @@
# -----------------------------------------------------
# Monitor Setup
# name: "Default"
# -----------------------------------------------------
monitor=DP-1,preferred,0x0,2
monitor=HDMI-A-1,3840x2160,1920x-180,2,transform,1

View File

@ -1 +1 @@
source = ~/dotfiles/hypr/conf/windowrules/default.conf source = ~/dotfiles/hypr/conf/windowrules/custom.conf

View File

@ -0,0 +1,18 @@
# -----------------------------------------------------
# Window rules
# -----------------------------------------------------
windowrule = tile,^(Microsoft-edge)$
windowrule = tile,^(Brave-browser)$
windowrule = tile,^(Chromium)$
windowrule = float,^(pavucontrol)$
windowrule = float,^(blueman-manager)$
windowrule = float,^(nm-connection-editor)$
windowrule = float,^(qalculate-gtk)$
windowrule = float,^(showmethekey-gtk)$
windowrule = pin,^(showmethekey-gtk)$
layerrule = blur, gtk-layer-shell
layerrule = blur, logout_dialog
windowrule = float,title=^(Mathematica)$
windowrule = opacity 0.75, ^(Code)$

View File

@ -6,7 +6,7 @@
general { general {
gaps_in = 10 gaps_in = 10
gaps_out = 14 gaps_out = 14
border_size = 3 border_size = 2
col.active_border = $color11 col.active_border = $color11
col.inactive_border = rgba(ffffffff) col.inactive_border = rgba(ffffffff)
layout = dwindle layout = dwindle

View File

@ -0,0 +1 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -blur "50x30" $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -set colorspace Gray -separate -average $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper

View File

@ -0,0 +1 @@
magick $wallpaper -blur "50x30" $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -blur "50x30" $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper

View File

@ -0,0 +1 @@
magick $wallpaper -blur "10x30" $used_wallpaper

View File

@ -0,0 +1 @@
magick $wallpaper -negate $used_wallpaper

View File

@ -0,0 +1,2 @@
magick $wallpaper -negate $used_wallpaper
magick $used_wallpaper -brightness-contrast -20% $used_wallpaper

7
hypr/scripts/cleanup.sh Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
# Remove gamemode flag
if [ -f ~/.cache/gamemode ] ;then
rm ~/.cache/gamemode
echo ":: ~/.cache/gamemode removed"
fi

View File

@ -1,4 +1,12 @@
#!/bin/bash #!/bin/bash
# ____ _ _
# | _ \(_) __ _ __ _ _ __ ___ ___(_)___
# | | | | |/ _` |/ _` | '_ \ / _ \/ __| / __|
# | |_| | | (_| | (_| | | | | (_) \__ \ \__ \
# |____/|_|\__,_|\__, |_| |_|\___/|___/_|___/
# |___/
#
clear clear
sleep 0.5 sleep 0.5
figlet "Diagnosis" figlet "Diagnosis"
@ -36,8 +44,8 @@ _commandExists "gum" "gum"
_commandExists "wlogout" "wlogout" _commandExists "wlogout" "wlogout"
_commandExists "swww" "swww" _commandExists "swww" "swww"
_commandExists "eww" "eww" _commandExists "eww" "eww"
_commandExists "magick2" "imagemagick" _commandExists "magick" "imagemagick"
_commandExists "figlet2" "figlet" _commandExists "figlet" "figlet"
echo echo
echo "Press return to exit" echo "Press return to exit"

View File

@ -1,6 +1,5 @@
#!/bin/bash #!/bin/bash
clear clear
cat <<"EOF" cat <<"EOF"
____ _ _ _ ____ __ __ ____ _ _ _ ____ __ __
| _ \(_)___ __ _| |__ | | ___| _ \| \/ | | _ \(_)___ __ _| |__ | | ___| _ \| \/ |

View File

@ -1,4 +1,9 @@
#!/bin/bash #!/bin/bash
# _____ ____ __
# / _ \ \ /\ / /\ \ /\ / /
# | __/\ V V / \ V V /
# \___| \_/\_/ \_/\_/
#
EWW=`which eww` EWW=`which eww`
if [[ ! `pidof eww` ]]; then if [[ ! `pidof eww` ]]; then
${EWW} daemon ${EWW} daemon

View File

@ -1,3 +0,0 @@
#!/bin/bash
sleep 0.5
killall -9 Hyprland sleep 2

24
hypr/scripts/gamemode.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# ____ _
# / ___| __ _ _ __ ___ ___ _ __ ___ ___ __| | ___
# | | _ / _` | '_ ` _ \ / _ \ '_ ` _ \ / _ \ / _` |/ _ \
# | |_| | (_| | | | | | | __/ | | | | | (_) | (_| | __/
# \____|\__,_|_| |_| |_|\___|_| |_| |_|\___/ \__,_|\___|
#
if [ -f ~/.cache/gamemode ] ;then
hyprctl reload
rm ~/.cache/gamemode
notify-send "Gamemode deactivated" "Animations and blur enabled"
else
hyprctl --batch "\
keyword animations:enabled 0;\
keyword decoration:drop_shadow 0;\
keyword decoration:blur:enabled 0;\
keyword general:gaps_in 0;\
keyword general:gaps_out 0;\
keyword general:border_size 1;\
keyword decoration:rounding 0"
touch ~/.cache/gamemode
notify-send "Gamemode activated" "Animations and blur disabled"
fi

View File

@ -1,4 +1,10 @@
#!/bin/bash #!/bin/bash
# ____ _____ _ __
# / ___|_ _| |/ /
# | | _ | | | ' /
# | |_| | | | | . \
# \____| |_| |_|\_\
#
# Source: https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland # Source: https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
config="$HOME/.config/gtk-3.0/settings.ini" config="$HOME/.config/gtk-3.0/settings.ini"

25
hypr/scripts/hypridle.sh Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
# _ _ _ _ _
# | | | |_ _ _ __ _ __(_) __| | | ___
# | |_| | | | | '_ \| '__| |/ _` | |/ _ \
# | _ | |_| | |_) | | | | (_| | | __/
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
# |___/|_|
#
SERVICE="hypridle"
if [[ "$1" == "status" ]]; then
sleep 1
if pgrep -x "$SERVICE" >/dev/null ;then
echo '{"text": "RUNNING", "class": "active", "tooltip": "Screen locking active"}'
else
echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "Screen locking deactivated"}'
fi
fi
if [[ "$1" == "toggle" ]]; then
if pgrep -x "$SERVICE" >/dev/null ;then
killall hypridle
else
hypridle
fi
fi

52
hypr/scripts/hyprshade.sh Executable file
View File

@ -0,0 +1,52 @@
#!/bin/bash
# _ _ _ _
# | | | |_ _ _ __ _ __ ___| |__ __ _ __| | ___
# | |_| | | | | '_ \| '__/ __| '_ \ / _` |/ _` |/ _ \
# | _ | |_| | |_) | | \__ \ | | | (_| | (_| | __/
# |_| |_|\__, | .__/|_| |___/_| |_|\__,_|\__,_|\___|
# |___/|_|
#
if [[ "$1" == "rofi" ]]; then
# Open rofi to select the Hyprshade filter for toggle
options="$(hyprshade ls)\noff"
# Open rofi
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-hyprshade.rasi -i -no-show-icons -l 4 -width 30 -p "Hyprshade")
if [ ! -z $choice ] ;then
echo "hyprshade_filter=\"$choice\"" > ~/dotfiles/.settings/hyprshade.sh
dunstify "Changing Hyprshade to $choice" "Toggle shader with SUPER+SHIFT+S"
fi
else
# Toggle Hyprshade based on the selected filter
hyprshade_filter="blue-light-filter"
# Check if hyprshade.sh settings file exists and load
if [ -f ~/dotfiles/.settings/hyprshade.sh ] ;then
source ~/dotfiles/.settings/hyprshade.sh
fi
# Toggle Hyprshade
if [ "$hyprshade_filter" != "off" ] ;then
if [ -z $(hyprshade current) ] ;then
echo ":: hyprshade is not running"
hyprshade on $hyprshade_filter
notify-send "Hyprshade activated" "with $(hyprshade current)"
echo ":: hyprshade started with $(hyprshade current)"
else
notify-send "Hyprshade deactivated"
echo ":: Current hyprshade $(hyprshade current)"
echo ":: Switching hyprshade off"
hyprshade off
fi
else
if [ -z $(hyprshade current) ] ;then
hyprshade off
fi
echo ":: hyprshade turned off"
fi
fi

View File

@ -1,4 +1,12 @@
#!/bin/bash #!/bin/bash
# __ ______ _____ _
# \ \ / / _ \ | ____|_ __ __ _(_)_ __ ___
# \ \ /\ / /| |_) | | _| | '_ \ / _` | | '_ \ / _ \
# \ V V / | __/ | |___| | | | (_| | | | | | __/
# \_/\_/ |_| |_____|_| |_|\__, |_|_| |_|\___|
# |___/
#
wallpaper_engine=$(cat $HOME/dotfiles/.settings/wallpaper-engine.sh) wallpaper_engine=$(cat $HOME/dotfiles/.settings/wallpaper-engine.sh)
if [ "$wallpaper_engine" == "swww" ] ;then if [ "$wallpaper_engine" == "swww" ] ;then
# swww # swww

View File

@ -21,14 +21,29 @@ config_file=${config_file/source=~/}
config_file="/home/$USER$config_file" config_file="/home/$USER$config_file"
echo "Reading from: $config_file" echo "Reading from: $config_file"
# ----------------------------------------------------- keybinds=""
# Parse keybindings
# ----------------------------------------------------- # Detect Start String
keybinds=$(grep -oP '(?<=bind = ).*' $config_file) while read -r line
keybinds=$(echo "$keybinds" | sed 's/$mainMod/SUPER/g'| sed 's/,\([^,]*\)$/ = \1/' | sed 's/, exec//g' | sed 's/^,//g') do
if [[ "$line" == "bind"* ]]; then
line="$(echo "$line" | sed 's/$mainMod/SUPER/g')"
line="$(echo "$line" | sed 's/bind = //g')"
line="$(echo "$line" | sed 's/bindm = //g')"
IFS='#'
read -a strarr <<<"$line"
kb_str=${strarr[0]}
cm_str=${strarr[1]}
IFS=','
read -a kbarr <<<"$kb_str"
item="${kbarr[0]} + ${kbarr[1]}"$'\r'"${cm_str:1}"
keybinds=$keybinds$item$'\n'
fi
done < "$config_file"
# -----------------------------------------------------
# Show keybindings in rofi
# -----------------------------------------------------
sleep 0.2 sleep 0.2
rofi -dmenu -i -replace -p "Keybinds" -config ~/dotfiles/rofi/config-compact.rasi <<< "$keybinds" rofi -dmenu -i -markup -eh 2 -replace -p "Keybinds" -config ~/dotfiles/rofi/config-compact.rasi <<< "$keybinds"

View File

@ -1,3 +0,0 @@
#!/bin/bash
sleep 0.5
hyprlock

View File

@ -1,33 +0,0 @@
#!/bin/bash
# __ __ _ _ ___ __ _ _
# | \/ | | | || \ \ / / | | __ _ _ _ _ __ ___| |__ ___ _ __
# | |\/| | | | || |\ \ /\ / / | | / _` | | | | '_ \ / __| '_ \ / _ \ '__|
# | | | | |__|__ _\ V V / | |__| (_| | |_| | | | | (__| | | | __/ |
# |_| |_|_____| |_| \_/\_/ |_____\__,_|\__,_|_| |_|\___|_| |_|\___|_|
#
option1="ML4W Dotfiles Settings"
option2="Hyprland Settings"
option3="Change Wallpaper"
option4="Change Waybar Theme"
option5="ML4W Welcome App"
options="$option1\n"
options="$options$option2\n"
options="$options$option3\n"
options="$options$option4\n$option5"
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-ml4w-launcher.rasi -l 5)
case $choice in
$option1)
$HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage ;;
$option2)
$HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage ;;
$option3)
$HOME/dotfiles/hypr/scripts/wallpaper.sh select ;;
$option4)
$HOME/dotfiles/waybar/themeswitcher.sh ;;
$option5)
$HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage ;;
esac

View File

@ -1,14 +1,14 @@
#!/bin/bash #!/bin/bash
if [ ! -f $HOME/.cache/ml4w-welcome-autostart ] ;then if [ ! -f $HOME/.cache/ml4w-welcome-autostart ] ;then
echo "Autostart of ML4W Welcome App enabled." echo ":: Autostart of ML4W Welcome App enabled."
if [ -f $HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage ] ;then if [ -f $HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage ] ;then
echo "Starting ML4W Welcome App ..." echo ":: Starting ML4W Welcome App ..."
sleep 2 sleep 2
$HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage $HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage
else else
echo "ML4W Welcome App not found." echo ":: ML4W Welcome App not found."
fi fi
else else
echo "Autostart of ML4W Welcome App disabled." echo ":: Autostart of ML4W Welcome App disabled."
fi fi

43
hypr/scripts/power.sh Executable file
View File

@ -0,0 +1,43 @@
#!/bin/bash
# ____
# | _ \ _____ _____ _ __
# | |_) / _ \ \ /\ / / _ \ '__|
# | __/ (_) \ V V / __/ |
# |_| \___/ \_/\_/ \___|_|
#
if [[ "$1" == "exit" ]]; then
echo ":: Exit"
sleep 0.5
killall -9 Hyprland sleep 2
fi
if [[ "$1" == "lock" ]]; then
echo ":: Lock"
sleep 0.5
hyprlock
fi
if [[ "$1" == "reboot" ]]; then
echo ":: Reboot"
sleep 0.5
systemctl reboot
fi
if [[ "$1" == "shutdown" ]]; then
echo ":: Shutdown"
sleep 0.5
systemctl poweroff
fi
if [[ "$1" == "suspend" ]]; then
echo ":: Suspend"
sleep 0.5
systemctl suspend
fi
if [[ "$1" == "hibernate" ]]; then
echo ":: Hibernate"
sleep 1;
systemctl hibernate
fi

View File

@ -1,3 +0,0 @@
#!/bin/bash
sleep 0.5
systemctl reboot

View File

@ -14,10 +14,11 @@ NAME="screenshot_$(date +%d%m%Y_%H%M%S).png"
option2="Selected area" option2="Selected area"
option3="Fullscreen (delay 3 sec)" option3="Fullscreen (delay 3 sec)"
option4="Current display (delay 3 sec)"
options="$option2\n$option3" options="$option2\n$option3\n$option4"
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-screenshot.rasi -i -no-show-icons -l 2 -width 30 -p "Take Screenshot") choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-screenshot.rasi -i -no-show-icons -l 3 -width 30 -p "Take Screenshot")
case $choice in case $choice in
$option2) $option2)
@ -33,4 +34,12 @@ case $choice in
notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen" notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen"
swappy -f "$DIR$NAME" swappy -f "$DIR$NAME"
;; ;;
esac $option4)
sleep 3
monitor="$(hyprctl monitors | awk '/Monitor/{monitor=$2} /focused: yes/{print monitor; exit}')"
grim -o "$monitor" "$DIR$NAME"
xclip -selection clipboard -t image/png -i "$DIR$NAME"
notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen"
swappy -f "$DIR$NAME"
;;
esac

View File

@ -1,3 +0,0 @@
#!/bin/bash
sleep 0.5
systemctl poweroff

View File

@ -1,3 +0,0 @@
#!/bin/bash
sleep 0.5
systemctl suspend

View File

@ -0,0 +1,12 @@
#!/bin/bash
# Open rofi to select the Hyprshade filter for toggle
options="$(ls ~/dotfiles/hypr/effects/wallpaper/)\noff"
# Open rofi
choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-themes.rasi -i -no-show-icons -l 5 -width 30 -p "Hyprshade")
if [ ! -z $choice ] ;then
echo "$choice" > ~/dotfiles/.settings/wallpaper-effect.sh
dunstify "Changing Wallpaper Effect to " "$choice"
~/dotfiles/hypr/scripts/wallpaper.sh init
fi

View File

@ -6,10 +6,15 @@
# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_| # \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_|
# |_| |_| # |_| |_|
# #
# by Stephan Raabe (2023) # by Stephan Raabe (2024)
# ----------------------------------------------------- # -----------------------------------------------------
# Cache file for holding the current wallpaper # Cache file for holding the current wallpaper
wallpaper_folder="$HOME/wallpaper"
if [ -f ~/dotfiles/.settings/wallpaper-folder.sh ] ;then
source ~/dotfiles/.settings/wallpaper-folder.sh
fi
used_wallpaper="$HOME/.cache/used_wallpaper"
cache_file="$HOME/.cache/current_wallpaper" cache_file="$HOME/.cache/current_wallpaper"
blurred="$HOME/.cache/blurred_wallpaper.png" blurred="$HOME/.cache/blurred_wallpaper.png"
square="$HOME/.cache/square_wallpaper.png" square="$HOME/.cache/square_wallpaper.png"
@ -22,13 +27,13 @@ blur=$(cat $blur_file)
# Create cache file if not exists # Create cache file if not exists
if [ ! -f $cache_file ] ;then if [ ! -f $cache_file ] ;then
touch $cache_file touch $cache_file
echo "$HOME/wallpaper/default.jpg" > "$cache_file" echo "$wallpaper_folder/default.jpg" > "$cache_file"
fi fi
# Create rasi file if not exists # Create rasi file if not exists
if [ ! -f $rasi_file ] ;then if [ ! -f $rasi_file ] ;then
touch $rasi_file touch $rasi_file
echo "* { current-image: url(\"$HOME/wallpaper/default.jpg\", height); }" > "$rasi_file" echo "* { current-image: url(\"$wallpaper_folder/default.jpg\", height); }" > "$rasi_file"
fi fi
current_wallpaper=$(cat "$cache_file") current_wallpaper=$(cat "$cache_file")
@ -41,27 +46,27 @@ case $1 in
if [ -f $cache_file ]; then if [ -f $cache_file ]; then
wal -q -i $current_wallpaper wal -q -i $current_wallpaper
else else
wal -q -i ~/wallpaper/ wal -q -i $wallpaper_folder/
fi fi
;; ;;
# Select wallpaper with rofi # Select wallpaper with rofi
"select") "select")
sleep 0.2 sleep 0.2
selected=$( find "$HOME/wallpaper" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -exec basename {} \; | sort -R | while read rfile selected=$( find "$wallpaper_folder" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -exec basename {} \; | sort -R | while read rfile
do do
echo -en "$rfile\x00icon\x1f$HOME/wallpaper/${rfile}\n" echo -en "$rfile\x00icon\x1f$wallpaper_folder/${rfile}\n"
done | rofi -dmenu -i -replace -config ~/dotfiles/rofi/config-wallpaper.rasi) done | rofi -dmenu -i -replace -config ~/dotfiles/rofi/config-wallpaper.rasi)
if [ ! "$selected" ]; then if [ ! "$selected" ]; then
echo "No wallpaper selected" echo "No wallpaper selected"
exit exit
fi fi
wal -q -i ~/wallpaper/$selected wal -q -i $wallpaper_folder/$selected
;; ;;
# Randomly select wallpaper # Randomly select wallpaper
*) *)
wal -q -i ~/wallpaper/ wal -q -i $wallpaper_folder/
;; ;;
esac esac
@ -70,12 +75,11 @@ esac
# Load current pywal color scheme # Load current pywal color scheme
# ----------------------------------------------------- # -----------------------------------------------------
source "$HOME/.cache/wal/colors.sh" source "$HOME/.cache/wal/colors.sh"
echo ":: Wallpaper: $wallpaper"
# ----------------------------------------------------- # -----------------------------------------------------
# get wallpaper image name # get wallpaper image name
# ----------------------------------------------------- # -----------------------------------------------------
newwall=$(echo $wallpaper | sed "s|$HOME/wallpaper/||g") newwall=$(echo $wallpaper | sed "s|$wallpaper_folder/||g")
# ----------------------------------------------------- # -----------------------------------------------------
# Reload waybar with new colors # Reload waybar with new colors
@ -89,11 +93,27 @@ transition_type="wipe"
# transition_type="outer" # transition_type="outer"
# transition_type="random" # transition_type="random"
cp $wallpaper $HOME/.cache/
mv $HOME/.cache/$newwall $used_wallpaper
# Load Wallpaper Effect
if [ -f $HOME/dotfiles/.settings/wallpaper-effect.sh ] ;then
effect=$(cat $HOME/dotfiles/.settings/wallpaper-effect.sh)
if [ ! "$effect" == "off" ] ;then
if [ "$1" == "init" ] ;then
echo ":: Init"
else
dunstify "Using wallpaper effect $effect..." "with image $newwall" -h int:value:10 -h string:x-dunst-stack-tag:wallpaper
fi
source $HOME/dotfiles/hypr/effects/wallpaper/$effect
fi
fi
wallpaper_engine=$(cat $HOME/dotfiles/.settings/wallpaper-engine.sh) wallpaper_engine=$(cat $HOME/dotfiles/.settings/wallpaper-engine.sh)
if [ "$wallpaper_engine" == "swww" ] ;then if [ "$wallpaper_engine" == "swww" ] ;then
# swww # swww
echo ":: Using swww" echo ":: Using swww"
swww img $wallpaper \ swww img $used_wallpaper \
--transition-bezier .43,1.19,1,.4 \ --transition-bezier .43,1.19,1,.4 \
--transition-fps=60 \ --transition-fps=60 \
--transition-type=$transition_type \ --transition-type=$transition_type \
@ -104,7 +124,7 @@ elif [ "$wallpaper_engine" == "hyprpaper" ] ;then
echo ":: Using hyprpaper" echo ":: Using hyprpaper"
killall hyprpaper killall hyprpaper
wal_tpl=$(cat $HOME/dotfiles/.settings/hyprpaper.tpl) wal_tpl=$(cat $HOME/dotfiles/.settings/hyprpaper.tpl)
output=${wal_tpl//WALLPAPER/$wallpaper} output=${wal_tpl//WALLPAPER/$used_wallpaper}
echo "$output" > $HOME/dotfiles/hypr/hyprpaper.conf echo "$output" > $HOME/dotfiles/hypr/hyprpaper.conf
hyprpaper & hyprpaper &
else else
@ -132,7 +152,7 @@ else
dunstify "Creating blurred version ..." "with image $newwall" -h int:value:50 -h string:x-dunst-stack-tag:wallpaper dunstify "Creating blurred version ..." "with image $newwall" -h int:value:50 -h string:x-dunst-stack-tag:wallpaper
fi fi
magick $wallpaper -resize 75% $blurred magick $used_wallpaper -resize 75% $blurred
echo ":: Resized to 75%" echo ":: Resized to 75%"
if [ ! "$blur" == "0x0" ] ;then if [ ! "$blur" == "0x0" ] ;then
magick $blurred -blur $blur $blurred magick $blurred -blur $blur $blurred

View File

@ -9,12 +9,12 @@
sleep 1 sleep 1
# kill all possible running xdg-desktop-portals # kill all possible running xdg-desktop-portals
killall xdg-desktop-portal-hyprland killall -e xdg-desktop-portal-hyprland
killall xdg-desktop-portal-gnome killall -e xdg-desktop-portal-gnome
killall xdg-desktop-portal-kde killall -e xdg-desktop-portal-kde
killall xdg-desktop-portal-lxqt killall -e xdg-desktop-portal-lxqt
killall xdg-desktop-portal-wlr killall -e xdg-desktop-portal-wlr
killall xdg-desktop-portal-gtk killall -e xdg-desktop-portal-gtk
killall xdg-desktop-portal killall xdg-desktop-portal
sleep 1 sleep 1

View File

@ -0,0 +1,8 @@
precision highp float;
varying vec2 v_texcoord;
uniform sampler2D tex;
void main() {
vec4 pixColor = texture2D(tex, v_texcoord);
gl_FragColor = vec4(1.0 - pixColor.r, 1.0 - pixColor.g, 1.0 - pixColor.b, pixColor.a);
}

View File

@ -27,14 +27,15 @@ echo "Version: $version"
echo "by Stephan Raabe 2024" echo "by Stephan Raabe 2024"
echo "" echo ""
if [ -d ~/dotfiles ] ;then if [ -d ~/dotfiles ] ;then
echo "A ML4W Dotfiles installation has been detected." echo ":: An existing ML4W Dotfiles installation has been detected."
echo "This script will guide you through the update process of the ML4W Dotfiles." echo ":: This script will guide you through the update process of the ML4W Dotfiles."
else else
echo "This script will guide you through the installation process of the ML4W dotfiles." echo ":: This script will guide you through the installation process of the ML4W dotfiles."
fi fi
echo "" echo ""
source .install/required.sh source .install/required.sh
source .install/confirm-start.sh source .install/confirm-start.sh
source .install/paralleldownloads.sh
source .install/yay.sh source .install/yay.sh
source .install/updatesystem.sh source .install/updatesystem.sh
source .install/backup.sh source .install/backup.sh
@ -44,6 +45,7 @@ source .install/remove.sh
source .install/general.sh source .install/general.sh
source .install/packages/general-packages.sh source .install/packages/general-packages.sh
source .install/install-packages.sh source .install/install-packages.sh
source .install/fcitx5.sh
source .install/profile.sh source .install/profile.sh
if [[ $profile == *"Hyprland"* ]]; then if [[ $profile == *"Hyprland"* ]]; then
echo -e "${GREEN}" echo -e "${GREEN}"
@ -63,8 +65,8 @@ source .install/wallpaper.sh
source .install/displaymanager.sh source .install/displaymanager.sh
source .install/issue.sh source .install/issue.sh
source .install/restore.sh source .install/restore.sh
source .install/neovim.sh
source .install/keyboard.sh source .install/keyboard.sh
source .install/neovim.sh
source .install/hook.sh source .install/hook.sh
source .install/vm.sh source .install/vm.sh
source .install/copy.sh source .install/copy.sh

View File

@ -31,3 +31,13 @@ set ttyfast " Speed up scrolling in Vim
" set spell " enable spell check (may need to download language package) " set spell " enable spell check (may need to download language package)
" set noswapfile " disable creating swap file " set noswapfile " disable creating swap file
" set backupdir=~/.cache/vim " Directory to store backup files. " set backupdir=~/.cache/vim " Directory to store backup files.
hi NonText ctermbg=none guibg=NONE
hi Normal guibg=NONE ctermbg=NONE
hi NormalNC guibg=NONE ctermbg=NONE
hi SignColumn ctermbg=NONE ctermfg=NONE guibg=NONE
hi Pmenu ctermbg=NONE ctermfg=NONE guibg=NONE
hi FloatBorder ctermbg=NONE ctermfg=NONE guibg=NONE
hi NormalFloat ctermbg=NONE ctermfg=NONE guibg=NONE
hi TabLine ctermbg=None ctermfg=None guibg=None

37
qtile/scripts/diagnosis.sh Executable file
View File

@ -0,0 +1,37 @@
#!/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 "wal" "python-pywal"
_commandExists "gum" "gum"
_commandExists "magick" "imagemagick"
_commandExists "figlet" "figlet"
echo
echo "Press return to exit"
read

View File

@ -9,11 +9,7 @@
# by Stephan Raabe (2023) # by Stephan Raabe (2023)
# ----------------------------------------------------- # -----------------------------------------------------
echo $XDG_SESSION_TYPE echo $XDG_SESSION_TYPE
if [ $XDG_SESSION_TYPE == "wayland" ]; then lockapp=slock
lockapp=swaylock
else
lockapp=slock
fi
echo "Using $lockapp to lock the screen." echo "Using $lockapp to lock the screen."
option1=" lock" option1=" lock"

View File

@ -10,6 +10,10 @@
# ----------------------------------------------------- # -----------------------------------------------------
# Cache file for holding the current wallpaper # Cache file for holding the current wallpaper
wallpaper_folder="$HOME/wallpaper"
if [ -f ~/dotfiles/.settings/wallpaper-folder.sh ] ;then
source ~/dotfiles/.settings/wallpaper-folder.sh
fi
cache_file="$HOME/.cache/current_wallpaper" cache_file="$HOME/.cache/current_wallpaper"
blurred="$HOME/.cache/blurred_wallpaper.png" blurred="$HOME/.cache/blurred_wallpaper.png"
rasi_file="$HOME/.cache/current_wallpaper.rasi" rasi_file="$HOME/.cache/current_wallpaper.rasi"
@ -17,13 +21,13 @@ rasi_file="$HOME/.cache/current_wallpaper.rasi"
# Create cache file if not exists # Create cache file if not exists
if [ ! -f $cache_file ] ;then if [ ! -f $cache_file ] ;then
touch $cache_file touch $cache_file
echo "$HOME/wallpaper/default.jpg" > "$cache_file" echo "$wallpaper_folder/default.jpg" > "$cache_file"
fi fi
# Create rasi file if not exists # Create rasi file if not exists
if [ ! -f $rasi_file ] ;then if [ ! -f $rasi_file ] ;then
touch $rasi_file touch $rasi_file
echo "* { current-image: url(\"$HOME/wallpaper/default.jpg\", height); }" > "$rasi_file" echo "* { current-image: url(\"$wallpaper_folder/default.jpg\", height); }" > "$rasi_file"
fi fi
current_wallpaper=$(cat "$cache_file") current_wallpaper=$(cat "$cache_file")
@ -35,26 +39,26 @@ case $1 in
if [ -f $cache_file ]; then if [ -f $cache_file ]; then
wal -q -i $current_wallpaper wal -q -i $current_wallpaper
else else
wal -q -i ~/wallpaper/ wal -q -i $wallpaper_folder
fi fi
;; ;;
# Select wallpaper with rofi # Select wallpaper with rofi
"select") "select")
selected=$( find "$HOME/wallpaper" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -exec basename {} \; | sort -R | while read rfile selected=$( find "$wallpaper_folder" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -exec basename {} \; | sort -R | while read rfile
do do
echo -en "$rfile\x00icon\x1f$HOME/wallpaper/${rfile}\n" echo -en "$rfile\x00icon\x1f$wallpaper_folder/${rfile}\n"
done | rofi -dmenu -replace -l 6 -config ~/dotfiles/rofi/config-wallpaper.rasi) done | rofi -dmenu -replace -l 6 -config ~/dotfiles/rofi/config-wallpaper.rasi)
if [ ! "$selected" ]; then if [ ! "$selected" ]; then
echo "No wallpaper selected" echo "No wallpaper selected"
exit exit
fi fi
wal -q -i ~/wallpaper/$selected wal -q -i $wallpaper_folder/$selected
;; ;;
# Randomly select wallpaper # Randomly select wallpaper
*) *)
wal -q -i ~/wallpaper/ wal -q -i $wallpaper_folder/
;; ;;
esac esac

View File

@ -43,7 +43,7 @@ configuration {
window { window {
width: 400px; width: 400px;
x-offset: -14px; x-offset: -14px;
y-offset: 65px; y-offset: 14px;
spacing: 0px; spacing: 0px;
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
@ -56,7 +56,7 @@ window {
anchor: northeast; anchor: northeast;
fullscreen: false; fullscreen: false;
enabled: true; enabled: true;
border-radius: 10px; border-radius: @border-radius;
background-color: transparent; background-color: transparent;
} }
@ -120,6 +120,7 @@ entry {
cursor: text; cursor: text;
placeholder: "Search"; placeholder: "Search";
placeholder-color: inherit; placeholder-color: inherit;
border-radius: 0px;
} }
/* ---- Mode Switcher ---- */ /* ---- Mode Switcher ---- */
@ -132,7 +133,7 @@ mode-switcher{
button { button {
padding: 10px; padding: 10px;
border-radius: 10px; border-radius: @border-radius;
background-color: @background; background-color: @background;
text-color: inherit; text-color: inherit;
cursor: pointer; cursor: pointer;
@ -160,7 +161,8 @@ listview {
padding: 10px; padding: 10px;
margin: 0px; margin: 0px;
background-color: @background; background-color: @background;
border:0px; border: 0px;
border-radius: 0px;
} }
/* ---- Element ---- */ /* ---- Element ---- */
@ -170,7 +172,7 @@ element {
margin: 5px; margin: 5px;
cursor: pointer; cursor: pointer;
background-color: @background; background-color: @background;
border-radius: 10px; border-radius: @border-radius;
border: @border-width; border: @border-width;
} }

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