7 Commits
Author SHA1 Message Date
wyj 5fe3fed2ea fix: sed need -E 2024-04-01 15:40:33 -04:00
wyj 2b1986edad fix hidpi.sh: echo -e 2024-03-28 03:21:44 -04:00
wyj e6a80c8ad2 update hidpi.sh: add finish output 2024-03-28 02:45:02 -04:00
wyj e2d65b4c3c fix hidpi.sh 2024-03-28 02:42:15 -04:00
wyj 0f69f88603 fix hidpi.sh: -i instead of -E 2024-03-28 02:40:05 -04:00
wyj c63aa2430c update hidpi.sh: run always 2024-03-28 02:31:27 -04:00
wyj 259073e10f fix bug: missing fi 2024-03-28 02:25:56 -04:00
496 changed files with 3595 additions and 24130 deletions
+13 -16
View File
@@ -19,10 +19,10 @@ export EDITOR=nvim
# -----------------------------------------------------
# ALIASES
# -----------------------------------------------------
alias c='clear'
alias nf='fastfetch'
alias pf='fastfetch'
alias ff='fastfetch'
alias nf='neofetch'
alias pf='pfetch'
alias ls='eza -a --icons'
alias ll='eza -al --icons'
alias lt='eza -a --tree --level=1 --icons'
@@ -37,17 +37,8 @@ alias rw='~/dotfiles/waybar/reload.sh'
alias winclass="xprop | grep 'CLASS'"
alias dot="cd ~/dotfiles"
alias cleanup='~/dotfiles/scripts/cleanup.sh'
# -----------------------------------------------------
# ML4W Apps
# -----------------------------------------------------
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
alias ml4w-settings='~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage'
alias ml4w-sidebar='~/dotfiles/eww/ml4w-sidebar/launch.sh'
alias ml4w-hyprland='~/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage'
alias ml4w-diagnosis='~/dotfiles/hypr/scripts/diagnosis.sh'
alias ml4w-hyprland-diagnosis='~/dotfiles/hypr/scripts/diagnosis.sh'
alias ml4w-qtile-diagnosis='~/dotfiles/qtile/scripts/diagnosis.sh'
# -----------------------------------------------------
# Window Managers
@@ -59,6 +50,7 @@ alias Qtile='startx'
# -----------------------------------------------------
# GIT
# -----------------------------------------------------
alias gs="git status"
alias ga="git add"
alias gc="git commit -m"
@@ -72,6 +64,7 @@ alias gcredential="git config credential.helper store"
# -----------------------------------------------------
# SCRIPTS
# -----------------------------------------------------
alias gr='python ~/dotfiles/scripts/growthrate.py'
alias ChatGPT='python ~/mychatgpt/mychatgpt.py'
alias chat='python ~/mychatgpt/mychatgpt.py'
@@ -80,12 +73,14 @@ alias ascii='~/dotfiles/scripts/figlet.sh'
# -----------------------------------------------------
# VIRTUAL MACHINE
# -----------------------------------------------------
alias vm='~/private/launchvm.sh'
alias lg='~/dotfiles/scripts/looking-glass.sh'
# -----------------------------------------------------
# EDIT CONFIG FILES
# -----------------------------------------------------
alias confq='$EDITOR ~/dotfiles/qtile/config.py'
alias confp='$EDITOR ~/dotfiles/picom/picom.conf'
alias confb='$EDITOR ~/dotfiles/.bashrc'
@@ -93,11 +88,13 @@ alias confb='$EDITOR ~/dotfiles/.bashrc'
# -----------------------------------------------------
# EDIT NOTES
# -----------------------------------------------------
alias notes='$EDITOR ~/notes.txt'
# -----------------------------------------------------
# SYSTEM
# -----------------------------------------------------
alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg'
alias setkb='setxkbmap de;echo "Keyboard set back to de."'
@@ -109,7 +106,7 @@ alias setkb='setxkbmap de;echo "Keyboard set back to de."'
alias res1='xrandr --output DisplayPort-0 --mode 2560x1440 --rate 120'
alias res2='xrandr --output DisplayPort-0 --mode 1920x1080 --rate 120'
export PATH="$HOME/.local/bin/:/usr/lib/ccache/bin/:$PATH"
export PATH="/usr/lib/ccache/bin/:$PATH"
# -----------------------------------------------------
# DEVELOPMENT
@@ -127,12 +124,12 @@ eval "$(starship init bash)"
cat ~/.cache/wal/sequences
# -----------------------------------------------------
# Fastfetch if on wm
# PFETCH if on wm
# -----------------------------------------------------
echo ""
if [[ $(tty) == *"pts"* ]]; then
fastfetch --config examples/13
pfetch
else
echo
if [ -f /bin/qtile ]; then
echo "Start Qtile X11 with command Qtile"
fi
-3
View File
@@ -1,3 +0,0 @@
[submodule "yazi/flavors/tokyo-night.yazi"]
path = yazi/flavors/tokyo-night.yazi
url = https://github.com/BennyOe/tokyo-night.yazi.git
-8
View File
@@ -21,12 +21,4 @@ sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop
cp $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop $HOME/.local/share/applications
echo ":: ML4W Dotfiles Settings App installed successfully"
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-hyprland-settings.desktop
cp $HOME/dotfiles/apps/ml4w-hyprland-settings.desktop $HOME/.local/share/applications
echo ":: ML4W Hyprland Settings App installed successfully"
echo
if [ -f ~/.config/ml4w-hyprland-settings/hyprctl.sh ] ;then
echo ":: Starting restore from ML4W Hyprland Settings App"
~/.config/ml4w-hyprland-settings/hyprctl.sh
fi
echo
+30 -152
View File
@@ -3,167 +3,45 @@
# ------------------------------------------------------
datets=$(date '+%Y%m%d%H%M%S')
# Create Backup File Structure
if [ ! -d ~/dotfiles-versions ]; then
if [ -d ~/dotfiles ] || [ -f ~/.bashrc ]; then
echo -e "${GREEN}"
figlet "Backup"
echo -e "${NONE}"
if [ -d ~/dotfiles ]; then
echo ":: The script has detected an existing dotfiles folder and will try to create a backup into the folder:"
echo " ~/dotfiles-versions/backups/$datets"
fi
if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
echo ":: The script has detected an existing .bashrc file and will try to create a backup to:"
echo " ~/dotfiles-versions/backups/$datets/.bashrc-old"
fi
if gum confirm "Do you want to create a backup?" ;then
if [ ! -d ~/dotfiles-versions ]; then
mkdir ~/dotfiles-versions
echo "~/dotfiles-versions created."
fi
if [ ! -d ~/dotfiles-versions/backup ]; then
mkdir ~/dotfiles-versions/backup
echo "~/dotfiles-versions/backup created"
fi
if [ -d ~/dotfiles-versions/backups ]; then
mv ~/dotfiles-versions/backups ~/dotfiles-versions/archive
echo ":: Existing backups moved into ~/dotfiles-versions/archive"
fi
if [ ! -d ~/dotfiles-versions/archive ]; then
mkdir ~/dotfiles-versions/archive
echo "~/dotfiles-versions/archive created"
fi
# Backup Existing Dotfiles
if [ -d ~/dotfiles ] || ! test -L ~/.bashrc || [ -d ~/.config/hypr ] || [ -d ~/.config/qtile ]; then
echo -e "${GREEN}"
figlet "Backup"
echo -e "${NONE}"
echo "The script has detected the following files and folders for a backup:"
fi
if [ ! -d ~/dotfiles-versions/backups ]; then
mkdir ~/dotfiles-versions/backups
echo "~/dotfiles-versions/backups created"
fi
if [ ! -d ~/dotfiles-versions/backups/$datets ]; then
mkdir ~/dotfiles-versions/backups/$datets
echo "~/dotfiles-versions/backups/$datets created"
fi
if [ -d ~/dotfiles ]; then
echo " - $HOME/dotfiles"
rsync -a ~/dotfiles/ ~/dotfiles-versions/backups/$datets/
echo ":: Backup of your current dotfiles in ~/dotfiles-versions/backups/$datets created."
fi
if ! test -L ~/.bashrc ;then
echo " - $HOME/.bashrc"
fi
if ! test -L ~/.config/qtile && [ -d ~/.config/qtile ] ;then
echo " - $HOME/.config/qtile/"
fi
if ! test -L ~/.config/hypr && [ -d ~/.config/hypr ] ;then
echo " - $HOME/.config/hypr/"
fi
if ! test -L ~/.config/ml4w-hyprland-settings && [ -d ~/.config/ml4w-hyprland-settings ] ;then
echo " - $HOME/.config/ml4w-hyprland-settings/"
fi
if ! test -L ~/.config/rofi && [ -d ~/.config/rofi ] ;then
echo " - $HOME/.config/rofi/"
fi
if ! test -L ~/.config/wal && [ -d ~/.config/wal ] ;then
echo " - $HOME/.config/wal/"
fi
if ! test -L ~/.config/waybar && [ -d ~/.config/waybar ] ;then
echo " - $HOME/.config/waybar/"
fi
if ! test -L ~/.config/wlogout && [ -d ~/.config/wlogout ] ;then
echo " - $HOME/.config/wlogout/"
fi
if ! test -L ~/.config/alacritty && [ -d ~/.config/alacritty ] ;then
echo " - $HOME/.config/alacritty/"
fi
if ! test -L ~/.config/starship && [ -d ~/.config/starship ] ;then
echo " - $HOME/.config/starship/"
fi
if ! test -L ~/.config/picom && [ -d ~/.config/picom ] ;then
echo " - $HOME/.config/picom/"
fi
if ! test -L ~/.config/nvim && [ -d ~/.config/nvim ] ;then
echo " - $HOME/.config/nvim/"
fi
if ! test -L ~/.config/vim && [ -d ~/.config/vim ] ;then
echo " - $HOME/.config/vim/"
fi
if ! test -L ~/.config/dunst && [ -d ~/.config/dunst ] ;then
echo " - $HOME/.config/dunst/"
fi
if ! test -L ~/.config/swappy && [ -d ~/.config/swappy ] ;then
echo " - $HOME/.config/swappy/"
if [ -f ~/.bashrc ]; then
cp ~/.bashrc ~/dotfiles-versions/backups/$datets/.bashrc-old
echo ":: Existing .bashrc file found in homefolder. .bashrc-old created"
fi
echo
# Start Backup
if gum confirm "Do you want to create a backup?" ;then
if [ ! -z "$(ls -A ~/dotfiles-versions/backup)" ] ;then
if gum confirm "Do you want to archive the existing backup?" ;then
rsync -a ~/dotfiles-versions/backup/ ~/dotfiles-versions/archive/$datets/
echo ":: Current backup archived in ~/dotfiles-versions/archive/$datets"
fi
fi
if [ -d ~/dotfiles ]; then
rsync -a ~/dotfiles ~/dotfiles-versions/backup/
echo ":: Backup of $HOME/dotfiles created in ~/dotfiles-versions/backup"
fi
if ! test -L ~/.bashrc ;then
cp ~/.bashrc ~/dotfiles-versions/backup
echo ":: Backup of $HOME/.bashrc created in ~/dotfiles-versions/backup"
fi
if [ ! -d ~/dotfiles-versions/backup/config ] ;then
mkdir ~/dotfiles-versions/backup/config
fi
if ! test -L ~/.config/qtile && [ -d ~/.config/qtile ] ;then
cp -r ~/.config/qtile ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/qtile created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/hypr && [ -d ~/.config/hypr ] ;then
cp -r ~/.config/hypr ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/hypr created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/ml4w-hyprland-settings && [ -d ~/.config/ml4w-hyprland-settings ] ;then
cp -r ~/.config/ml4w-hyprland-settings ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/ml4w-hyprland-settings created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/qtile && [ -d ~/.config/rofi ] ;then
cp -r ~/.config/rofi ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/rofi created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/wal && [ -d ~/.config/wal ] ;then
cp -r ~/.config/wal ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/wal created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/waybar && [ -d ~/.config/waybar ] ;then
cp -r ~/.config/waybar ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/waybar created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/wlogout && [ -d ~/.config/wlogout ] ;then
cp -r ~/.config/wlogout ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/wlogout created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/alacritty && [ -d ~/.config/alacritty ] ;then
cp -r ~/.config/alacritty ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/alacritty created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/starship && [ -d ~/.config/starship ] ;then
cp -r ~/.config/starship ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/starship created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/picom && [ -d ~/.config/picom ] ;then
cp -r ~/.config/picom ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/picom created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/nvim && [ -d ~/.config/nvim ] ;then
cp -r ~/.config/nvim ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/nvim created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/vim && [ -d ~/.config/vim ] ;then
cp -r ~/.config/vim ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/vim created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/dunst && [ -d ~/.config/dunst ] ;then
cp -r ~/.config/dunst ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/dunst created in ~/dotfiles-versions/backup/config/"
fi
if ! test -L ~/.config/swappy && [ -d ~/.config/swappy ] ;then
cp -r ~/.config/swappy ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/swappy created in ~/dotfiles-versions/backup/config/"
fi
echo ":: PLEASE NOTE: You can create a fresh installation of teh dotfiles by removing the folder ~/dotfiles"
elif [ $? -eq 130 ]; then
exit 130
else
echo ":: Backup skipped."
fi
else
echo ":: Nothing to backup"
echo ""
fi
echo
+2 -3
View File
@@ -11,9 +11,8 @@ fi
if [ -f ~/dotfiles-versions/backups/$datets/.bashrc-old ]; then
echo "Backup is already available here ~/dotfiles-versions/backups/$datets/.bashrc-old"
fi
echo
if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
bash_confirm="Do you want to replace your existing .bashrc file with the ML4W dotfiles .bashrc file?"
bash_confirm="Do you want to replace your existing .bashrc file with the dotfiles .bashrc file?"
if gum confirm "$bash_confirm" ;then
rm ~/.bashrc
_installSymLink .bashrc ~/.bashrc ~/dotfiles/.bashrc ~/.bashrc
@@ -23,7 +22,7 @@ if [ ! -L ~/.bashrc ] && [ -f ~/.bashrc ]; then
echo "Installation of the .bashrc file skipped."
fi
else
bash_confirm="Do you want to install the ML4W dotfiles .bashrc file now?"
bash_confirm="Do you want to install the dotfiles .bashrc file now?"
if gum confirm "$bash_confirm" ;then
if [ -L ~/.bashrc ] || [ -f ~/.bashrc ]; then
rm ~/.bashrc
+18 -11
View File
@@ -13,22 +13,29 @@ if [[ $(_isInstalledPacman "ttf-ms-fonts") == 0 ]]; then
fi
fi
# Check for running NetworkManager.service
if [[ $(systemctl list-units --all -t service --full --no-legend "NetworkManager.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "NetworkManager.service" ]];then
echo ":: NetworkManager.service already running."
else
sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service
echo ":: NetworkManager.service activated successfully."
fi
# Check for running bluetooth.service
if [[ $(systemctl list-units --all -t service --full --no-legend "bluetooth.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "bluetooth.service" ]];then
echo ":: bluetooth.service already running."
else
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service
echo ":: bluetooth.service activated successfully."
fi
if [ -d ~/dotfiles/hypr/settings/ ] ;then
rm -rf ~/dotfiles/hypr/settings
echo ":: ~/dotfiles/hypr/settings removed."
fi
if [ -f ~/dotfiles/.settings/eww-monitor.sh ] ;then
if grep -q "echo" $HOME/dotfiles/.settings/eww-monitor.sh ; then
rm ~/dotfiles/.settings/eww-monitor.sh
echo ":: ~/dotfiles/.settings/eww-monitor.sh removed."
fi
fi
# Replace pfetch and neofetch with fastfetch
sed -i "s/pfetch/fastfetch/g" ~/dotfiles/.bashrc
sed -i "s/neofetch/fastfetch/g" ~/dotfiles/.bashrc
# Create default folder structure
xdg-user-dirs-update
echo
+1 -2
View File
@@ -2,6 +2,7 @@
# Confirm Start
# ------------------------------------------------------
echo "You can cancel the installation at any time with CTRL + C"
SCRIPT=$(realpath "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
@@ -17,7 +18,6 @@ if [ ! -d ~/dotfiles ];then
if gum confirm "DO YOU WANT TO START THE INSTALLATION OF THE ML4W DOTFILES NOW?" ;then
echo "Installation started."
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
echo ":: Installation canceled."
@@ -27,7 +27,6 @@ else
if gum confirm "DO YOU WANT TO START THE UPDATE OF YOUR ML4W DOTFILES NOW?" ;then
echo ":: Update started."
elif [ $? -eq 130 ]; then
echo ":: Update canceled."
exit 130
else
echo ":: Update canceled."
+5 -8
View File
@@ -13,23 +13,22 @@ fi
if [ ! -d ~/dotfiles ]; then
echo "The script will now remove existing directories and files from ~/.config/"
echo "and copy your prepared configuration from ~/dotfiles-versions/$version to ~/dotfiles"
echo
echo ""
echo "Symbolic links will then be created from ~/dotfiles into your ~/.config/ directory."
echo
echo ""
fi
if [[ ! $(tty) == *"pts"* ]] && [ -d ~/dotfiles ]; then
echo "You're running the script in tty. You can delete the existing ~/dotfiles folder now for a clean installation."
echo "If not, the script will overwrite existing files but will not remove additional files or folders of your custom configuration."
echo
echo ""
else
if [ -d ~/dotfiles ]; then
echo "The script will overwrite existing files but will not remove additional files or folders from your custom configuration."
echo
fi
fi
if [ ! -d ~/dotfiles ]; then
echo "PLEASE BACKUP YOUR EXISTING CONFIGURATIONS in .config IF NEEDED!"
echo
echo ""
fi
if gum confirm "Do you want to install the prepared dotfiles now?" ;then
@@ -51,10 +50,8 @@ if gum confirm "Do you want to install the prepared dotfiles now?" ;then
echo "Skipped: DEV MODE!"
fi
elif [ $? -eq 130 ]; then
echo ":: Installation canceled"
exit 130
else
echo ":: Installation canceled"
exit
fi
echo
echo ""
-28
View File
@@ -1,28 +0,0 @@
echo -e "${GREEN}"
figlet "System check"
echo -e "${NONE}"
echo "The system check will test that essential packages and "
echo "execution commands are available now on your system."
echo
if gum confirm "Do you want to run a short system check?" ;then
_folderExists "$HOME/dotfiles" "Please repeat the installation."
_commandExists "rofi" "rofi-wayland"
_commandExists "dunst" "dunst"
_commandExists "waybar" "waybar"
_commandExists "hyprpaper" "hyprpaper"
_commandExists "hyprlock" "hyprpaper"
_commandExists "hypridle" "hyprpaper"
_commandExists "wal" "python-pywal"
_commandExists "gum" "gum"
_commandExists "wlogout" "wlogout"
_commandExists "eww" "eww"
_commandExists "magick" "imagemagick"
elif [ $? -eq 130 ]; then
exit 130
else
echo ":: System check skipped"
fi
echo ""
+19 -42
View File
@@ -2,7 +2,6 @@
# Disable display manager
# ------------------------------------------------------
disman=0
profile="Hyprland"
echo -e "${GREEN}"
figlet "Display Manager"
echo -e "${NONE}"
@@ -31,94 +30,72 @@ if [ ! -d ~/dotfiles ];then
disman=0
echo "You have already installed a display manager on your system."
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")
else
disman=1
echo "There is no display manager installed on your system."
echo "After the installation/update of the dotfiles, you can start Hyprland with command Hyprland and Qtile with commmand Qtile (or startx)."
echo "How do you want to proceed?"
echo
dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
dmsel=$(gum choose "Keep current setup" "Install sddm")
fi
else
if [ -f /etc/systemd/system/display-manager.service ]; then
disman=0
echo "You have already installed a display manager. If your display manager is working fine, you can keep the current setup."
echo "How do you want to proceed?"
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")
else
disman=1
echo "There is no display manager installed on your system. You're starting Hyprland/Qtile with commands on tty."
echo "How do you want to proceed?"
echo
dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
dmsel=$(gum choose "Keep current setup" "Install sddm")
fi
fi
if [ -z "${dmsel}" ] ;then
echo ":: Installation canceled."
echo "Installation canceled."
exit
fi
if [ "$dmsel" == "Install sddm and theme" ] ;then
if [ "$dmsel" == "Install sddm" ] ;then
disman=0
# Try to force the installation of sddm
echo ":: Install sddm"
yay -S --noconfirm sddm --ask 4
echo "Install sddm"
yay -S --noconfirm sddm sddm-sugar-candy-git --ask 4
# Enable sddm
if [ -f /etc/systemd/system/display-manager.service ]; then
sudo rm /etc/systemd/system/display-manager.service
fi
sudo systemctl enable sddm.service
# Create sddm.conf.d folder
if [ ! -d /etc/sddm.conf.d/ ]; then
sudo mkdir /etc/sddm.conf.d
echo ":: Folder /etc/sddm.conf.d created."
echo "Folder /etc/sddm.conf.d created."
fi
# Copy sddm.conf
sudo cp sddm/sddm.conf /etc/sddm.conf.d/
echo ":: File /etc/sddm.conf.d/sddm.conf updated."
echo "File /etc/sddm.conf.d/sddm.conf updated."
# Download and install sugar candy theme if not exists
if [ ! -d /usr/share/sddm/themes/sugar-candy ]; then
if [ -f ~/Downloads/sddm-sugar-candy-master.zip ] ;then
rm ~/Downloads/sddm-sugar-candy-master.zip
fi
wget -P ~/Downloads/ https://framagit.org/MarianArlt/sddm-sugar-candy/-/archive/master/sddm-sugar-candy-master.zip
if [ -f ~/Downloads/sddm-sugar-candy-master.zip ] ;then
unzip -o -q ~/Downloads/sddm-sugar-candy-master.zip -d ~/Downloads/
if [ ! -d /usr/share/sddm/themes/sugar-candy ] ;then
sudo mkdir -p /usr/share/sddm/themes/sugar-candy
fi
sudo cp -r ~/Downloads/sddm-sugar-candy-master/* /usr/share/sddm/themes/sugar-candy
echo ":: SDDM Sugar Candy Theme installed"
else
echo "ERROR: Sugar Candy Download not found"
fi
fi
# Install background wallpaper for sddm
if [ -f /usr/share/sddm/themes/sugar-candy/theme.conf ]; then
# Cache file for holding the current wallpaper
sudo cp wallpapers/default.jpg /usr/share/sddm/themes/sugar-candy/Backgrounds/current_wallpaper.jpg
echo ":: Default wallpaper copied into /usr/share/sddm/themes/sugar-candy/Backgrounds/"
echo "Default wallpaper copied into /usr/share/sddm/themes/sugar-candy/Backgrounds/"
sudo cp sddm/theme.conf /usr/share/sddm/themes/sugar-candy/
sudo sed -i 's/CURRENTWALLPAPER/'"current_wallpaper.jpg"'/' /usr/share/sddm/themes/sugar-candy/theme.conf
echo ":: File theme.conf updated in /usr/share/sddm/themes/sugar-candy/"
echo "File theme.conf updated in /usr/share/sddm/themes/sugar-candy/"
fi
elif [ "$dmsel" == "Deactivate current display manager" ] ;then
sudo rm /etc/systemd/system/display-manager.service
echo ":: Current display manager deactivated."
echo "Current display manager deactivated."
disman=1
elif [ "$dmsel" == "Keep current setup" ] ;then
echo ":: sddm setup skipped."
echo "Keep current setup."
else
echo ":: sddm setup skipped."
echo "Keep current setup."
fi
-24
View File
@@ -1,24 +0,0 @@
# ------------------------------------------------------
# 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
-6
View File
@@ -1,6 +0,0 @@
# ------------------------------------------------------
# install fish
# ------------------------------------------------------
packagesPacman=("fish");
packagesYay=();
source .install/install-packages.sh
+4 -8
View File
@@ -9,13 +9,9 @@ echo -e "${NONE}"
hidpiconfirm="Do you want 2x hidpi scale?"
if gum confirm "$hidpiconfirm"; then
sed -i -E 's/size = [0-9]+(\.[0-9]+)?/size = 16/' ~/dotfiles-versions/$version/alacritty/alacritty.toml
sed -i -E 's/[0-9]+(\.[0-9]+)?/16/' ~/dotfiles-versions/$version/.settings/rofi-font.rasi
echo -e '\n# -----------------------------------------------------' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
echo -e '# HiDPI Scaling' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
echo -e '# -----------------------------------------------------' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
echo -e 'source = ~/dotfiles/hypr/conf/hidpi.conf' >> ~/dotfiles-versions/$version/hypr/hyprland.conf
sed -i -E 's/1/2/' ~/dotfiles-versions/$version/hypr/conf/monitors/default.conf
#sed -i -E 's/24/32/' ~/dotfiles-versions/$version/hypr/conf/cursor.conf
sed -i -E 's/size = [0-9]+(\.[0-9]+)?/size = 18/' alacritty/alacritty.toml
sed -i -E 's/[0-9]+(\.[0-9]+)?/16/' .settings/rofi-font.rasi
echo -e '\n# hidpi scale\nsource = ~/dotfiles/hypr/conf/hidpi.conf' >> hypr/conf/custom.conf
sed -i -E 's/1/2/' hypr/conf/monitors/default.conf
echo ":: finished hidpi patch."
fi
-4
View File
@@ -6,13 +6,9 @@ echo -e "${GREEN}"
figlet "Hook"
echo -e "${NONE}"
echo ":: The script has detected a hook.sh script."
echo
if gum confirm "Do you want to run the script now?"; then
source ~/dotfiles-versions/hook.sh
echo ":: hook.sh executed!"
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
echo ":: Execution of hook.sh skipped."
fi
-19
View File
@@ -5,9 +5,6 @@
if [ -d ~/dotfiles-versions/$version/alacritty ]; then
_installSymLink alacritty ~/.config/alacritty ~/dotfiles/alacritty/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/kitty ]; then
_installSymLink kitty ~/.config/kitty ~/dotfiles/kitty/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/vim ]; then
_installSymLink vim ~/.config/vim ~/dotfiles/vim/ ~/.config
fi
@@ -40,21 +37,5 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/eww ]; then
_installSymLink eww ~/.config/eww ~/dotfiles/eww/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/fastfetch ]; then
_installSymLink fastfetch ~/.config/fastfetch ~/dotfiles/fastfetch/ ~/.config
fi
if [ -f ~/dotfiles-versions/$version/chrome-flags.conf ]; then
_installSymLink chrome-flags ~/.config/chrome-flags.conf ~/dotfiles/chrome-flags.conf ~/.config
fi
if [ -d ~/dotfiles-versions/$version/Vimix-hyprcursors ]; then
if [ ! -d ~/.local/share/icons ]; then mkdir -pv ~/.local/share/icons; fi
_installSymLink Vimix-hyprcursors ~/.local/share/icons/Vimix-hyprcursors ~/dotfiles/Vimix-hyprcursors ~/.local/share/icons/
fi
if [ -d ~/dotfiles-versions/$version/ranger ]; then
_installSymLink ranger ~/.config/ranger ~/dotfiles/ranger/ ~/.config
fi
echo ":: Symbolic links created."
echo
-1
View File
@@ -7,4 +7,3 @@ README.md
CHANGELOG
LICENSE
install.sh
setup.sh
-22
View File
@@ -273,25 +273,3 @@ _replaceLineInFile() {
sleep 2
fi
}
# ------------------------------------------------------
# System check
# ------------------------------------------------------
_commandExists() {
package="$1";
if ! type $package > /dev/null 2>&1; then
echo ":: ERROR: $package doesn't exists. Please install it with yay -S $2"
else
echo ":: OK: $package command found."
fi
}
_folderExists() {
folder="$1";
if [ ! -d $folder ]; then
echo ":: ERROR: $folder doesn't exists. $2"
else
echo ":: OK: $folder found."
fi
}
+2 -4
View File
@@ -7,11 +7,10 @@ echo -e "${NONE}"
if [ -d ~/dotfiles ] ;then
echo "Do you want to check for new packages only (faster installation)"
echo "or do you want to reinstall all packages again? (more robust and can help to fix issues)"
echo
if gum confirm "How do you want to proceed?" --affirmative "New packages only" --negative "Force reinstallation" ;then
force_install=0
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
echo "Installation canceled."
exit 130
else
force_install=1
@@ -19,11 +18,10 @@ if [ -d ~/dotfiles ] ;then
else
echo "Do you want to reinstall all already installed packages and install the required new packages? (recommended and more robust)"
echo "or do you want to install the new required packages only? (could be faster installation)"
echo
if gum confirm "How do you want to proceed?" --affirmative "Reinstall all packages" --negative "Install new packages only" ;then
force_install=1
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
echo "Installation canceled."
exit 130
else
force_install=0
+16 -53
View File
@@ -6,48 +6,22 @@ echo -e "${GREEN}"
figlet "Keyboard"
echo -e "${NONE}"
setkeyboard=0
if [ "$restored" == "1" ]; then
echo ":: You have already restored your settings into the new installation."
echo "You can repeat the keyboard setup again to choose between a desktop and laptop optimized configuration."
echo
if gum confirm "Do you want to setup your keyboard again?" ;then
setkeyboard=0
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
echo ":: Keyboard setup skipped."
setkeyboard=1
fi
fi
# Default layout and variants
keyboard_layout="us"
if [ "$setkeyboard" == "0" ] ;then
# Default layout and variants
keyboard_layout="us"
keyboard_variant=""
_setupKeyboardLayout() {
_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"
_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
echo ""
_confirmKeyboard
}
}
_confirmKeyboard() {
echo
_confirmKeyboard() {
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
@@ -55,36 +29,25 @@ if [ "$setkeyboard" == "0" ] ;then
else
_setupKeyboardLayout
fi
}
}
if [ "$restored" == "1" ]; then
echo ":: You have already restored your settings into the new installation."
else
_confirmKeyboard
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/keyboard.conf ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
cp .install/templates/autostart.sh ~/dotfiles-versions/$version/qtile/autostart.sh
SEARCH="KEYBOARD_LAYOUT"
REPLACE="$keyboard_layout"
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
SEARCH="KEYBOARD_VARIANT"
REPLACE="$keyboard_variant"
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/hypr/conf/keyboard.conf
SEARCH="KEYBOARD_LAYOUT"
REPLACE="$keyboard_layout"
sed -i "s/$SEARCH/$REPLACE/g" ~/dotfiles-versions/$version/qtile/autostart.sh
echo
echo ":: Keyboard setup complete."
echo
echo ""
echo ":: Keyboard setup updated successfully."
echo "PLEASE NOTE: You can update your keyboard layout later in ~/dotfiles/hypr/conf/keyboard.conf"
fi
Executable → Regular
+1 -6
View File
@@ -6,14 +6,9 @@ if [ -d ~/dotfiles/nvim ]; then
echo -e "${GREEN}"
figlet "Neovim"
echo -e "${NONE}"
echo ":: The script has detected a nvim folder."
echo
if gum confirm "Do you want to install the ML4W Neovim configuration?"; then
if gum confirm "Do you want to install the ML4W Neovim configuration and overwrite your existing configuration?"; then
echo ":: ML4W Neovim configuration will be installed"
neovim=1
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
rm -rf ~/dotfiles-versions/$version/nvim/
echo ":: Installation of ML4W Neovim configuration skipped."
+21 -18
View File
@@ -1,59 +1,62 @@
packagesPacman=(
"pacman-contrib"
"vim"
"bat"
"fzf"
"zsh"
"fastfetch"
"ranger"
"btop"
"bluez"
"bluez-utils"
"neovim"
"wget"
"unzip"
"alacritty"
"chromium"
"dunst"
"starship"
"mpv"
"freerdp"
"thunar"
"nautilus"
"mousepad"
"noto-fonts"
"otf-font-awesome"
"ttf-fira-sans"
"ttf-fira-code"
"ttf-firacode-nerd"
"ttf-firacode-nerd"
"figlet"
"vlc"
"eza"
"python-pip"
"python-psutil"
"python-rich"
"python-pywal"
"python-click"
"pavucontrol"
"tumbler"
"blueman"
"papirus-icon-theme"
"breeze-icons"
"polkit-gnome"
"brightnessctl"
"gum"
"man-pages"
"nm-connection-editor"
"gvfs"
"xdg-user-dirs"
# "xdg-desktop-portal-gtk"
"networkmanager"
"network-manager-applet"
"xarchiver"
"thunar-archive-plugin"
"zip"
"fuse2"
"gtk4"
"libadwaita"
"python-pywal"
"xdg-desktop-portal"
"qalculate-gtk"
"imagemagick"
"jq"
"rofi-wayland"
"fastfetch"
"pipewire-pulse"
"wireplumber"
"guvcview"
);
packagesYay=(
"vimix-cursors"
"orchis-theme"
"pfetch"
"bibata-cursor-theme"
"trizen"
"google-chrome"
"pacseek"
"rofi-lbonn-wayland"
);
+7 -11
View File
@@ -1,22 +1,18 @@
packagesPacman=(
"hyprland"
"hyprpaper"
"hyprlock"
"hypridle"
# "xdg-desktop-portal-hyprland"
"hyprpolkitagent"
"xdg-desktop-portal-hyprland"
"waybar"
"grim"
"slurp"
"swappy"
"cliphist"
"kitty"
)
);
packagesYay=(
"pyprland"
"swww"
"wlogout"
"nwg-look"
"eww"
"hyprshade"
)
"emote"
"hypridle"
"hyprlock"
);
-55
View File
@@ -1,55 +0,0 @@
#!/bin/bash
# ------------------------------------------------------
# Activate parallel downloads
# ------------------------------------------------------
# Search for the line containing "ParallelDownloads = 5"
line=$(grep "ParallelDownloads = 5" /etc/pacman.conf)
# Check if the line starts with a '#' character
if [[ $line == \#* ]]; then
echo -e "${GREEN}"
figlet "Downloads"
echo -e "${NONE}"
echo ":: You can activate parallel downloads in pacman.conf to speedup the download of packages?"
if gum confirm "Do you want to activate parallel downloads?"; then
# Remove the '#' character from the beginning of the line
echo ":: Modifying pacman.conf to enable parallel downloads."
new_line=$(echo $line | sed 's/^#//')
# Replace the original line with the new line in the configuration file
sudo sed -i "s/$line/$new_line/g" /etc/pacman.conf
# Display a message indicating that the line was modified
echo ":: Modified line: $new_line"
elif [ $? -eq 130 ]; then
exit
else
echo ":: Activation of parallel downloads skipped."
fi
else
# Check if the line is already uncommented
if [[ $line == ParallelDownloads\ =\ 5 ]]; then
# Display a message indicating that the line does not need to be modified
echo ":: pacman.conf already optimized for parallel downloads."
else
# Display a message indicating that the line is missing or commented out
echo ":: Parallel downloads could not be activated. Required configuration in /etc/pacman.conf could not found."
fi
fi
# Activate Color in pacman.conf
if grep -Fxq "#Color" /etc/pacman.conf
then
sudo sed -i 's/^#Color/Color/' /etc/pacman.conf
echo ":: Color activated in pacman.conf"
else
echo ":: Color is already activated in pacman.conf"
fi
if grep -Fxq "# Color" /etc/pacman.conf
then
sudo sed -i 's/^# Color/Color/' /etc/pacman.conf
echo ":: Color activated in pacman.conf"
fi
echo
+5 -5
View File
@@ -5,13 +5,13 @@ echo -e "${GREEN}"
figlet "Preparation"
echo -e "${NONE}"
if [ -d ~/.config ]; then
echo ":: $HOME/.config folder already exists."
echo ".config folder already exists."
else
mkdir ~/.config
echo ":: $HOME/.config folder created."
echo ".config folder created."
fi
echo
echo "Preparing temporary folders for the installation."
echo ":: Preparing temporary folders for the installation."
if [ ! -d ~/dotfiles-versions ]; then
mkdir ~/dotfiles-versions
echo ":: ~/dotfiles-versions folder created."
@@ -32,5 +32,5 @@ if [[ $(_isFolderEmpty ~/dotfiles-versions/$version/) == 0 ]] ;then
echo "Execution of rsync -a -I --exclude-from=.install/includes/excludes.txt . ~/dotfiles-versions/$version/ is required."
exit
fi
echo ":: ML4W Dotfiles $version successfully prepared in ~/dotfiles-versions/$version/"
echo
echo ":: dotfiles $version successfully prepared in ~/dotfiles-versions/$version/"
echo ""
+4 -4
View File
@@ -4,13 +4,13 @@
echo -e "${GREEN}"
figlet "Profile"
echo -e "${NONE}"
echo "Please select your installation profile."
echo
echo "SPACE = select/unselect a profile. RETURN = confirm. No selection = CANCEL"
profile=$(gum choose --no-limit --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "Hyprland" "Qtile")
if [ -z "${profile}" ] ;then
echo ":: No profile selected. Installation canceled."
echo "No profile selected. Installation canceled."
exit
else
echo ":: Profile/s selected:" $profile
echo "Profile/s selected:" $profile
fi
-3
View File
@@ -35,7 +35,4 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/fastfetch ]; then
_installSymLink fastfetch ~/.config/fastfetch ~/dotfiles/fastfetch/ ~/.config
fi
echo ":: Symbolic links created."
+2 -2
View File
@@ -6,9 +6,9 @@ echo -e "${GREEN}"
figlet "Reboot"
echo -e "${NONE}"
echo "A reboot of your system is recommended."
echo
if gum confirm "Do you want to reboot your system now?" ;then
gum spin --spinner dot --title "Rebooting now..." -- sleep 3
echo ":: Rebooting now ..."
sleep 3
systemctl reboot
elif [ $? -eq 130 ]; then
exit 130
+1 -8
View File
@@ -28,13 +28,6 @@ if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
echo
fi
# Remove rofi-lbonn-wayland
if [[ $(_isInstalledYay "rofi-lbonn-wayland") == 0 ]]; then
yay --noconfirm -Rns rofi-lbonn-wayland
echo ":: rofi-lbonn-wayland removed"
echo
fi
# Remove hypridle-bin
if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
yay --noconfirm -Rns hypridle-git
@@ -47,7 +40,7 @@ if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
echo
fi
# Remove hyprlock-bin
# Remove hypridle-bin
if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then
yay --noconfirm -Rns hyprlock-git
if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then
+4 -3
View File
@@ -4,11 +4,12 @@
# Synchronize packages
sudo pacman -Sy
echo
echo ""
# Check for required packages
echo "Checking that required packages for the installation are installed..."
echo ":: Checking that required packages for the installation are installed..."
_installPackagesPacman "rsync" "gum" "figlet" "python";
echo ""
# Double check rsync
if ! command -v rsync &> /dev/null; then
@@ -17,4 +18,4 @@ if ! command -v rsync &> /dev/null; then
else
echo ":: rsync double checked"
fi
echo
echo ""
+3 -20
View File
@@ -8,20 +8,13 @@ monitorrestored=0
_showRestoreOptions() {
echo "The following configurations can be transferred into the new installation."
echo
echo "(SPACE = select/unselect a profile. RETURN = confirm. ESC/No selection = Skip Restore)"
echo ""
restorelist=""
if [ -f ~/dotfiles/.bashrc ]; then
restorelist+="~/dotfiles/.bashrc "
selectedlist+="~/dotfiles/.bashrc,"
fi
if [ -f ~/dotfiles/.zshrc ]; then
restorelist+="~/dotfiles/.zshrc "
selectedlist+="~/dotfiles/.zshrc,"
fi
if [ -f ~/dotfiles/.p10k.zsh ]; then
restorelist+="~/dotfiles/.p10k.zsh "
selectedlist+="~/dotfiles/.p10k.zsh,"
fi
if [ -d ~/dotfiles/.settings ]; then
restorelist+="~/dotfiles/.settings "
selectedlist+="~/dotfiles/.settings,"
@@ -50,10 +43,6 @@ _showRestoreOptions() {
restorelist+="~/dotfiles/hypr/conf/environment.conf "
selectedlist+="~/dotfiles/hypr/conf/environment.conf,"
fi
if [ -f ~/dotfiles/hypr/conf/layout.conf ] && [ -d ~/dotfiles/hypr/conf/layouts/ ]; then
restorelist+="~/dotfiles/hypr/conf/layout.conf "
selectedlist+="~/dotfiles/hypr/conf/layout.conf,"
fi
if [ -f ~/dotfiles/hypr/conf/windowrule.conf ] && [ -d ~/dotfiles/hypr/conf/windowrules/ ]; then
restorelist+="~/dotfiles/hypr/conf/windowrule.conf "
selectedlist+="~/dotfiles/hypr/conf/windowrule.conf,"
@@ -99,7 +88,7 @@ _showRestoreOptions() {
echo "No files selected to restore."
confirmrestore=$(gum choose "Change restore" "Skip restore")
if [ -z "${confirmrestore}" ] ;then
echo ":: Installation canceled."
echo "Installation canceled."
exit
fi
if [ "$confirmrestore" == "Change restore" ]; then
@@ -162,12 +151,6 @@ _startRestore() {
echo ":: Hyprland environment.conf restored!"
fi
fi
if [[ $restoreselect == *"~/dotfiles/hypr/conf/layout.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
if [ -f ~/dotfiles/hypr/conf/layout.conf ]; then
cp ~/dotfiles/hypr/conf/layout.conf ~/dotfiles-versions/$version/hypr/conf/
echo ":: Hyprland layout.conf restored!"
fi
fi
if [[ $restoreselect == *"~/dotfiles/hypr/conf/windowrule.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
if [ -f ~/dotfiles/hypr/conf/windowrule.conf ]; then
cp ~/dotfiles/hypr/conf/windowrule.conf ~/dotfiles-versions/$version/hypr/conf/
-2
View File
@@ -1,10 +1,8 @@
if [ "$restored" == "1" ]; then
if [ -f ~/dotfiles/.settings/settings.json ] ;then
echo -e "${GREEN}"
figlet "Restore Settings"
echo -e "${NONE}"
python .install/restore.py
fi
else
if [ -f ~/dotfiles/.settings/settings.json ] ;then
rm ~/dotfiles/.settings/settings.json
-35
View File
@@ -1,35 +0,0 @@
# -----------------------------------------------------
# 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
}
@@ -4,11 +4,11 @@
# -----------------------------------------------------
input {
kb_layout = KEYBOARD_LAYOUT
kb_variant = KEYBOARD_VARIANT
kb_variant =
kb_model =
kb_options =
numlock_by_default = true
mouse_refocus = false
mouse_refocus=false
# For United States
# kb_layout = us
@@ -18,17 +18,7 @@ input {
follow_mouse = 1
touchpad {
# for desktop
natural_scroll = false
# for laptop
# natural_scroll = yes
# middle_button_emulation = true
# clickfinger_behavior = 1
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
gestures {
workspace_swipe = true
}
+2 -10
View File
@@ -5,15 +5,7 @@
echo -e "${GREEN}"
figlet "System Update"
echo -e "${NONE}"
echo "It's important that your system is up-to-date before you proceed."
echo
if gum confirm "Do you want to update your system with yay now?" ;then
echo ":: Update started"
echo "It's important that your system is up-to-date before you proceed with the installation of the ML4W Dotfiles."
if gum confirm "Do you want to update the packages of your system with yay now?" ;then
yay
elif [ $? -eq 130 ]; then
echo ":: Installation canceled."
exit 130
else
echo ":: System update skipped"
fi
echo
-1
View File
@@ -4,7 +4,6 @@ echo -e "${GREEN}"
figlet "KVM VM"
echo -e "${NONE}"
echo "The script has detected that you run the installation in a KVM virtual machine."
echo
if grep -Fxq "kvm.conf" ~/dotfiles-versions/$version/hypr/conf/environment.conf
then
echo ":: KVM Environment already set."
+7 -8
View File
@@ -5,17 +5,16 @@ echo -e "${GREEN}"
figlet "Wallpapers"
echo -e "${NONE}"
if [ ! -d ~/wallpaper ]; then
echo "Do you want to download the wallpapers from repository https://gitea.phywyj.dynv6.net/wyj/wallpaper.git ?"
echo "Do you want to download the wallpapers from repository https://gitlab.com/stephan-raabe/wallpaper/ ?"
echo "If not, the script will install 3 default wallpapers in ~/wallpaper/"
echo ""
if gum confirm "Do you want to download the repository?" ;then
# wget -P ~/Downloads/ https://gitlab.com/stephan-raabe/wallpaper/-/archive/main/wallpaper-main.zip
# unzip -o ~/Downloads/wallpaper-main.zip -d ~/Downloads/
# if [ ! -d ~/wallpaper/ ]; then
# mkdir ~/wallpaper
# fi
# cp ~/Downloads/wallpaper-main/* ~/wallpaper/
git clone https://gitea.phywyj.dynv6.net/wyj/wallpaper.git ~/wallpaper
wget -P ~/Downloads/ https://gitlab.com/stephan-raabe/wallpaper/-/archive/main/wallpaper-main.zip
unzip -o ~/Downloads/wallpaper-main.zip -d ~/Downloads/
if [ ! -d ~/wallpaper/ ]; then
mkdir ~/wallpaper
fi
cp ~/Downloads/wallpaper-main/* ~/wallpaper/
echo "Wallpapers from the repository installed successfully."
elif [ $? -eq 130 ]; then
exit 130
+4 -4
View File
@@ -1,12 +1,12 @@
# ------------------------------------------------------
# Check if yay is installed
# ------------------------------------------------------
echo -e "${GREEN}"
figlet "yay"
echo -e "${NONE}"
if sudo pacman -Qs yay > /dev/null ; then
echo ":: yay is already installed!"
else
echo -e "${GREEN}"
figlet "yay"
echo -e "${NONE}"
echo ":: yay is not installed. Starting the installation!"
_installPackagesPacman "base-devel"
SCRIPT=$(realpath "$0")
@@ -18,4 +18,4 @@ else
cd $temp_path
echo ":: yay has been installed successfully."
fi
echo
echo ""
-22
View File
@@ -1,22 +0,0 @@
# ------------------------------------------------------
# install zsh and zinit
# ------------------------------------------------------
packagesPacman=("zsh");
echo "Please select the zsh plugin manager:"
zsh_manager=$(gum choose --limit=1 --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "oh my zsh" "zinit")
if [[ "${zsh_manager}" == *"oh my zsh"* ]]; then
source .install/install-packages.sh
if [ ! -d ~/.oh-my-zsh ]; then
RUNZSH=no CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fi
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
_installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc_ohmyzsh ~/.zshrc
else
packagesYay=("zinit");
source .install/install-packages.sh
_installSymLink zshrc ~/.zshrc ~/dotfiles/.zshrc_zinit ~/.zshrc
fi
_installSymLink p10k ~/.p10k.zsh ~/dotfiles/.p10k.zsh ~/
-25
View File
@@ -1,25 +0,0 @@
# ------------------------------------------------------
# Select additional shell
# ------------------------------------------------------
echo -e "${GREEN}"
figlet "Zsh Fish"
echo -e "${NONE}"
echo "Please select if you want to install zsh or fish."
echo
zshfish=$(gum choose --no-limit --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) " "zsh" "fish")
if [ -z "${zshfish}" ] ;then
echo ":: No shell selected. Keep using bash."
else
echo "Please select your default shell."
echo
shell=$(echo -e "bash\n$zshfish" | gum choose --limit=1 --cursor-prefix "( ) " --selected-prefix "(x) " --unselected-prefix "( ) ")
if [[ $zshfish == *"zsh"* ]]; then
echo ":: zsh selected"
source .install/zsh.sh
fi
if [[ $zshfish == *"fish"* ]]; then
echo ":: fish selected"
source .install/fish.sh
fi
fi
-1718
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1 +1 @@
google-chrome-stable
chromium
+1 -1
View File
@@ -1 +1 @@
~/dotfiles/.settings/terminal.sh -e vim
mousepad
-1
View File
@@ -1 +0,0 @@
auto
+1 -1
View File
@@ -1 +1 @@
nautilus
thunar
-8
View File
@@ -1,8 +0,0 @@
# Preload Wallpapers
preload = WALLPAPER
# Set Wallpapers
wallpaper = ,WALLPAPER
# Disable Splash
splash = false
-1
View File
@@ -1 +0,0 @@
hyprshade_filter="blue-light-filter"
+1
View File
@@ -0,0 +1 @@
nm-connection-editor
-3
View File
@@ -1,3 +0,0 @@
* {
border-radius: 15px;
}
+1 -3
View File
@@ -1,3 +1 @@
* {
border-width: 2px;
}
* { border-width: 3px; }
+1
View File
@@ -0,0 +1 @@
alacritty -e pacseek
+1 -1
View File
@@ -1 +1 @@
kitty
alacritty
-1
View File
@@ -1 +0,0 @@
off
-1
View File
@@ -1 +0,0 @@
hyprpaper
-2
View File
@@ -1,2 +0,0 @@
# Enter the path to the folder that includes your wallpapers
wallpaper_folder=$HOME/wallpaper
+1 -1
View File
@@ -1 +1 @@
2.9.1.2
2.8.3.4
+1 -1
View File
@@ -1 +1 @@
2912
2834
-88
View File
@@ -1,88 +0,0 @@
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# -----------------------------------------------------
# Oh my zsh settings
# -----------------------------------------------------
# Path to your oh-my-zsh installation.
export ZSH="$HOME/.oh-my-zsh"
# ZSH_THEME="robbyrussell"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
zstyle ':omz:update' mode auto
# Uncomment the following line to display red dots whilst waiting for completion.
# You can also set it to another string to have that shown instead of the default red dots.
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
COMPLETION_WAITING_DOTS="true"
# -----------------------------------------------------
# Plugins
# -----------------------------------------------------
plugins=(git colored-man-pages eza z sudo zsh-autosuggestions fast-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
# -----------------------------------------------------
# Variables
# -----------------------------------------------------
export PATH=$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$PATH
# export MANPATH="/usr/local/man:$MANPATH"
export LANG=en_US.UTF-8
export EDITOR='nvim'
export MAKEFLAGS='-j$(nproc)'
export CFLAGS='-march=native -O2 -pipe'
# -----------------------------------------------------
# Alias
# -----------------------------------------------------
alias sshkoko="TERM=xterm-256color ssh ywang2020@koko-login.hpc.fau.edu"
alias wakemac="wakeonlan 18:C0:4D:8D:56:0E"
alias ls="eza --icons=auto"
alias githashselector="git log --oneline | gum filter | cut -d' ' -f1"
alias bat="bat --paging=never"
alias code="code --ozone-platform=wayland --enable-wayland-ime"
# fix ssh if in kitty
if [[ "$TERM" == "xterm-kitty" && -z "$SSH_CONNECTION" ]]; then
alias ssh="kitty +kitten ssh"
fi
# -----------------------------------------------------
# Completion
# -----------------------------------------------------
[[ -f /home/wyj/.dart-cli-completion/zsh-config.zsh ]] && . /home/wyj/.dart-cli-completion/zsh-config.zsh || true
# -----------------------------------------------------
# evals
# -----------------------------------------------------
eval $(thefuck --alias)
eval "$(fzf --zsh)"
# -----------------------------------------------------
# PYWAL
# -----------------------------------------------------
cat ~/.cache/wal/sequences
# -----------------------------------------------------
# Custom
# -----------------------------------------------------
[[ ! -f ~/.custom.zsh ]] || source ~/.custom.zsh
# -----------------------------------------------------
# miscs
# -----------------------------------------------------
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
-64
View File
@@ -1,64 +0,0 @@
# ---------------------------------------------------
# Zinit and plugins
# ---------------------------------------------------
source /usr/share/zinit/zinit.zsh
# Load powerlevel10k theme
zinit ice depth"1" # git clone depth
zinit light romkatv/powerlevel10k
# Load plugins
zinit light zsh-users/zsh-autosuggestions
zinit light zdharma-continuum/fast-syntax-highlighting
# oh-my-zsh plugins
zi snippet OMZL::git.zsh
zi snippet OMZP::git
zi snippet OMZP::sudo
zi snippet OMZP::colored-man-pages
zi snippet OMZP::eza
zi snippet OMZP::z
# others
zplugin ice as"program" pick"bin/git-dsf"
zplugin light zdharma-continuum/zsh-diff-so-fancy
# ----------------------------------------------------
# Variables
# ----------------------------------------------------
export PATH=$HOME/bin:$HOME/.cargo/bin:$HOME/.local/bin:/usr/local/bin:$PATH
export EDITOR=vim
# ----------------------------------------------------
# Alias
# ----------------------------------------------------
alias sshkoko="TERM=xterm-256color ssh ywang2020@koko-login.hpc.fau.edu"
alias wakemac="wakeonlan 18:C0:4D:8D:56:0E"
alias eza="eza --icons=auto"
alias githashselector="git log --oneline | gum filter | cut -d' ' -f1"
alias bat="bat --paging=never"
# -----------------------------------------------------
# evals
# -----------------------------------------------------
eval $(thefuck --alias)
eval "$(fzf --zsh)"
# -----------------------------------------------------
# Miscs
# -----------------------------------------------------
# fix ssh if in kitty
if [[ "$TERM" == "xterm-kitty" && -z "$SSH_CONNECTION" ]]; then
alias ssh="kitty +kitten ssh"
fi
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# -----------------------------------------------------
# PYWAL
# -----------------------------------------------------
cat ~/.cache/wal/sequences
# -----------------------------------------------------
# Custom
# -----------------------------------------------------
[[ ! -f ~/.custom.zsh ]] || source ~/.custom.zsh
-60
View File
@@ -1,63 +1,3 @@
Version 2.9.1.2
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9.1.1
--------------------------------------------------------
- Workspaces module in waybar updated to enable scroll to change the workspace https://gitlab.com/stephan-raabe/dotfiles/-/merge_requests/114
- More functions deactivated in Game Mode (SUPER+ALT+G)
- Keybindings rofi menu updated with keybinding description. Open with right mouse click on Apps waybar module
- Fixed bug of ML4W Hyprland Settings App with Hyprland 0.41.0
Version 2.9.1.1
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9.1.1
--------------------------------------------------------
- New installation method for sddm sugar candy theme. Instead of using yay, the installer will download the ZIP from the repository, extract it to the Downloads folder and copy the files to the destination folder.
- A gamemode can be toggled with SUPER+ALT+G. The gaming mode will disable the animations and blur.
- Added a black ML4W Icon for black waybar themes
Version 2.9.1
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9.1
--------------------------------------------------------
- Hyprpaper is the default wallpaper engine. swww will not be installed by the installer anymore. You can still switch to swww in the Dotfiles Settings App (System tab) but you need to install swww manually with yay -S swww
- pfetch has been replaced with fastfetch (requires an update of the .bashrc) https://gitlab.com/stephan-raabe/dotfiles/-/issues/315
- Directory for wallpapers can be customized with new .settings/wallpaper-folder.sh https://gitlab.com/stephan-raabe/dotfiles/-/issues/325
- Screen shading possible with hyprshade. SUPER+SHIFT+S to toggle hyprshade. The shader can be defined with the shader module in waybar or in ~/dotfiles/.settings/hyprshade.sh
For auto-activation at a dedicated time please set the filter to off and follow the instructions here https://github.com/loqusion/hyprshade. https://gitlab.com/stephan-raabe/dotfiles/-/issues/329
- Nautilus defined as the new default file manager. Thunar is still available.
- Waybar can be toggles with SUPER+CTRL+B https://gitlab.com/stephan-raabe/dotfiles/-/issues/299
- Installation script optimized for new gum
- During the installation of the keyboard, it can be selected between a desktop and laptop optimized configuration https://gitlab.com/stephan-raabe/dotfiles/-/issues/319.
- RDP launch script updated https://gitlab.com/stephan-raabe/dotfiles/-/issues/336
- Nvidia environment configuration updated https://gitlab.com/stephan-raabe/dotfiles/-/issues/327
- Pacman can be configured for parallel downloads, colors and more during the installation and with the ML4W Settings app https://gitlab.com/stephan-raabe/dotfiles/-/issues/316
- Image conversions with imagemagick can be enabled for wallpapers. Right click on wallpaper module in waybar. You can add more effects in ~/dotfiles/hypr/effects/wallpaper
- ChatGPT Window opens on the left screen side in floating mode
- New default wallpaper
- Added hypridle inhibitor waybar module to toggle screen locking with hyprlock
- Tooltips added to all waybar modules
Version 2.9
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9
--------------------------------------------------------
- New Hyprland Settings App. Can be launched from the App Launcher, the ML4W Welcome App or the new ML4W logo context menu (right click)
- Added sidebar menu. Start with click on ML4W Logo in Waybar. Right click starts the welcome app
- Updated hyprlock screen showing the wallpaper in a circle. hyprlock 3 required
- Waybar Taskbar Module hidden by default. Can be enabled again in the ML4W Settings App
- Hyprpaper is now the default wallpaper engine. swww can be activiated
- Animations can be disabled in the Dotfiles Settings app
- Animations can be toggled (enabled/disabled) temporarily with SUPER + SHIFT + A
- Keyboard layout is part of the system information module of waybar
- nm-applet can be started from the ML4W Welcome App menu Settings/System
- New diagnosis features checks that essential command are available. Enter ml4w-diagnosis in a terminal or from the ML4W Welcome App
Version 2.8.4
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.4
--------------------------------------------------------
- In the ML4W Dotfiles Settings App you can now switch between the wallpaper applications swww or hyprpaper. In case of issues with the default application swww you can select hyprpaper. The wallpaper application can also be disabled but background images for wlogout, hyprlock and rofi will be generated with the selected wallpaper.
PLEASE NOTE: Logout & Login is required after a change.
- New folder structure for backups: dotfiles-versions/backup holds the latest backup, dotfiles-versions/archive stores archived backups
- Installer can now backup configurations in .config before overwriting by dotfiles
- You can uninstall the ML4W dotfiles with the new uninstaller script starting from the ML4W dotfiles or by executing ~/dotfiles/uninstall.sh
- Using the hypridle.conf suggested by https://wiki.hyprland.org/Hypr-Ecosystem/hypridle/
Version 2.8.3.4
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.4
--------------------------------------------------------
+429 -26
View File
@@ -1,53 +1,459 @@
# ML4W Dotfiles 2.9.1.2
# ML4W Dotfiles 2.8.3.4
An advanced configuration of Hyprland for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
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.
[![Screenshot](screenshots/screenshot2.png "Screenshot")](screenshots/screenshot2.png)
[![Screenshot](screenshots/v283/screenshot-283-2.png "Title Text")](screenshots/v283/screenshot-283-2.png)
You can find the overview video (Version 2.8.3) on Youtube: [ML4W Dotfiles 2.8.3](https://youtu.be/zM2AYue0o8s)
You can find the installation video (Version 2.8.2) on YouTube: [Install/Update the ML4W Dotfiles](https://youtu.be/n6Yg232bCOU)
> PLEASE NOTE: In case of issues with the latest Hyprland version 0.37.1, please update your ML4W Dotfiles installation to the latest version. See the troubleshooting section for more information.
The ML4W Dotfiles are available as
- 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)
YouTube Video [https://youtu.be/HMxHUvN6VGo](https://youtu.be/HMxHUvN6VGo)
[TOC]
## Installation
# Installation
The installation should work on all Arch Linux based distributions. [You can find more information here](https://gitlab.com/stephan-raabe/dotfiles/-/wikis/home).
To make it easy for you to get started with the ML4W dotfiles, here's a list of recommended next steps.
The easiest way is to use the setup.sh script. The script will download all files from GitLab and start the installation automatically.
The package includes an installation script install.sh that will guide you through all steps of the installation or update process.
Just copy/enter the following command into your terminal.
> PLEASE NOTE: Every Linux distribution and setup can be different. Therefore, I cannot guarantee that the installation will work smoothly everywhere. Installation on your own risk.
## Supported platforms
The dotfiles are tested with the following Arch based distributions:
- Arch Linux (recommended)
- EndeavourOS
- Arco Linux
- Manjaro Linux
The installation should work on all Arch Linux based distributions as well.
> **For Manjaro users:** Hyprland and required components are under ongoing development. That's why it's possible that some packages are not immediatly available on Manjaro e.g., hyprlock or hypridle. But usually, the packages will be published later.
> **For Arco Linux users:** Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
## Before you start
**PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.**
The installation script will create a backup from an previous dotfiles installation.
If possible, please create a snapshot of your current system if snapper or Timeshift is installed and available.
## ML4W Installer App
The easiest way to install the ML4W Dotfiles is to use the ML4W Dotfiles Installer App. [You can download the app here.](https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/ML4W_Dotfiles_Installer.AppImage) (Right click + Save link as...)
```
bash <(curl -s https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/setup.sh)
# Change to the download location (normally the Downloads folder)
cd ~/Downloads
# Make the file executable
chmod +x ML4W_Dotfiles_Installer.AppImage
# Start the App from your terminal with
./ML4W_Dotfiles_Installer.AppImage
```
> 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.
## Installation with GIT
## Wiki
You can also install the dotfiles by cloning the latest main release:
You can find the complete documentation of the ML4W Dotfiles in the Wiki. <b>[Open the Wiki here](https://gitlab.com/stephan-raabe/dotfiles/-/wikis/home)</b>
```
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
## Contributing
# 2.) Clone the dotfiles repository into the Downloads folder
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
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).
# 3.) Change into the dotfiles folder
cd dotfiles
You can also visit the [ML4W Discord Server](https://discord.gg/c4fJK7Za3g) to start a discussion with other users.
# 4.) Start the installation
./install.sh
## Screenshots
```
[![Screenshot](screenshots/screenshot1.png "Screenshot")](screenshots/screenshot1.png)
## Installation with GIT of the rolling release
[![Screenshot](screenshots/screenshot3.png "Screenshot")](screenshots/screenshot3.png)
You can install the dotfiles by cloning the latest development version from the rolling release:
[![Screenshot](screenshots/screenshot4.png "Screenshot")](screenshots/screenshot5.png)
```
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
## Wallpaper repository
# 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
From 2.8.2 onwards you can use the integrated update feature to update your dotfiles to the main or rolling release whenever you want.
![Update](screenshots/welcome-update-dotfiles.png "Updates")
You can also use the ML4W installer to update to the main-release (Latest Version) or the Rolling Release: https://gitlab.com/stephan-raabe/installer
You can force a clean re-installation of the dotfiles by removing the folder ~/dotfiles before starting the installation.
> Please note that you can create a backup of your existing configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
Please follow the steps to update from earlier dotfiles versions to 2.8.3
```
# 1.) Remove existing downloaded dotfiles
rm -rf ~/Downloads/dotfiles
# 2.) Change into your Downloads folder
cd ~/Downloads
# 3.) Clone the dotfiles repository into the Downloads folder
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 4.) Change into the dotfiles folder
cd dotfiles
# 5.) Start the installation
./install.sh
```
## Installation Hook
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copy the files into the final destination in ~/dotfiles
If you want to modify the installation files just before everytime the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
You can for example delete folders and files or update existing configurations.
```
#!/bin/bash
rm -rf ~/dotfiles-versions/$version/vim/
rm -rf ~/dotfiles-versions/$version/nvim/
```
This script will for example remove the vim and nvim folder before the installation. The symbolic link will not be created because the source folder doesn't exits.
You can find a template in .install/templates/hook.sh
## Hyprland & NVIDIA
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
https://wiki.hyprland.org/Nvidia/
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
Please select the following variation in the settings script (system/environment):
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/environments/nvidia.conf
Or set the included environment variables in hyprland.conf
## Launch Hyprland from tty
The suggested method to start Hyprland is from tty with the command Hyprland because login managers (display managers) are not officially supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
```
# Start Hyprland
Hyprland
```
You can install a custom tty login issue (layout) with the dotfiles installer.
## Launch Hyprland with a Display Manager
I made good experiences with the Display Manager SDDM (https://github.com/sddm/sddm). Also gdm could work.
```
yay -S sddm
```
The dotfiles installation script will offer to deactivate the installed display manager and to activate SDDM.
The dotfiles package also includes a configuration for the SDDM theme sdd-sugar-candy (https://github.com/Kangie/sddm-sugar-candy) and a configuration to run SDDM in X11 mode to get the best compatibility.
With the Hyprland settings script you can copy the current wallpaper into SDDM and use it as a background.
Please check the troubleshooting section in case of issues.
## Screenlock, suspend and DPMS
Hypridle will start Hyprlock after 10 minutes of inactivity and will try to suspend one minutes later.
In the ML4W Dotfiles Settings App you can define the timeouts for Hyprlock, suspend and DPSM.
The selected hypridle configuration can be restored from the ML4W installer during a dotfiles update.
## Installation in a KVM virtual machine
Qtile X11 works fine in a KVM virtual machine. The Hyprland performance is low but it's enough for testing new features.
In virt-manager please make sure that 3D acceleration is enabled in Video Virtio and the Listen type is set to None in Display Spice.
To fix the mouse issue on Hyprland, open the Hyprland settings with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> and select in Environments the variation kvm.conf
## Base Hyprland installation with Hyperland Starter
If you want to install only the core packages of Hyprland as a starting point for your Hyprland experiments please also try my Hyprland Starter script: https://gitlab.com/stephan-raabe/hyprland-starter
# Some important key bindings
- <kbd>SUPER</kbd> + <kbd>RETURN</kbd>: Alacritty
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>RETURN</kbd>: rofi application launcher
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd>: Change wallpaper
- <kbd>SUPER</kbd> + <kbd>PRINT</kbd>: Screenshot
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>Q</kbd>: Logout screen
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd>: Settings script on Hyprland
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>B</kbd>: Reload waybar on Hyprland
All keybindings for Hyprland with right mouse click on Apps in waybar or here:
- [Hyprland keybindings overview](hypr/conf/keybindings/default.conf)
- [Qtile keybindings overview](qtile/config.py)
# Hyprland
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-1.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-1.png" /></a>
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-2.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-2.png" /></a>
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-3.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-3.png" /></a>
<b><a href="https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/screenshots?ref_type=heads">You can find more screenshots here.</a></b>
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank">Watch on YouTube</a>
## ML4W Welcome App
After starting the ML4W dotfiles for the first time, the ML4W Welcome App opens. This app is the starting point to discover the Hyprland setup.
<img src="screenshots/screenshot-welcome.app.png" />
The welcome screen includes the most important keybindings to open a terminal or a browser.
You can start the ML4W Welcome App by clicking on the L icon on the right side in waybar, using the rofi application launcher or by typing ml4w in your terminal (if you're using the .bashrc from the dotfiles).
In the Settings Menu you can access the following functions:
- Update Wallpaper: Opens the wallpaper selector
- Change Waybar Theme: Opens the waybar theme switcher and gives access to the available themes for the waybar status bar
- Change GTK Theme: Opens nwg-look to select the theme for GTK 3 applications incl. widgets, icons and cursors
- Refresh GTK Settings: Reloads the Hyprland GTK configuration (required when changing the mouse cursor)
- Hyprland Settings: Opens the Hyprland Settings script to customize the look and feel, environment variables, monitor resolution, etc.
- Network Settings: Select your network configuration incl. WiFi
- Update your System: Starts the terminal application to update your Arch packages (pacman & yay)
- Cleanup your System: Removes old orphans and cached files generated during previous installations
- Reload Waybar: Reloads the waybar
- Toggle Waybar: You can hide or show waybar when you want to try our other status bars.
You can find the sourcecode of the ML4W Welcome App in this repository:
https://gitlab.com/stephan-raabe/ml4w-welcome
## ML4W Dotfiles Settings App
You can open the ML4W dotfiles settings app with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to change selected dotfiles configurations and choose from variations for your hyprland.conf to customize your desktop even more.
<img src="screenshots/screenshot-dotfiles-settings-app.png" />
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the dotfiles settings app in the corresponding section.
> The ML4W Dotfiles Settings App replaces strings from several configuration files directly or based on replacement comments e.g., // START WORKSPACES That's why you shouldn't remove any of theses comments or markers to ensure full functionality of the app.
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
You can find the sourcecode of the ML4W Dotfiles Settings App in this repository:
https://gitlab.com/stephan-raabe/ml4w-dotfiles-settings
## Hyprland Configuration Variations
With configuration variations, you can customize settings and configurations for your Hyprland installation. You can manage, create and edit Hyprland Configuration Variations in the ML4W Dotfiles Settings App.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
[You can find more information here.](hypr/conf/README.md)
> Please don't edit the shipped configuration variations. These will be overwritten with every update of the ML4W dotfiles. <b>Create your own custom variation instead.</b>
## Wallpaper and Pywal
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
<kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>W</kbd> opens rofi with a list of installed wallpapers in ~/wallpaper/ for your individual selection.
## Waybar themes and themeswitcher
In addition, you can switch the Waybar Template with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>T</kbd> or by pressing the "..." icon in Waybar with the themeswitcher.
The templates are available in ~/dotfiles/waybar/themes. You can add your own personal themes into this folder.
[You can find more information here.](waybar/README.md)
## Screensharing and recording
More information you can find here:
https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
> Please note that every Arch Linux system is different and I cannot guarantee that everything works fine on your system.
## Main packages
- Terminal: alacritty
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
- Launch Menus: Rofi (Wayland fork)
- Colorscheme: pywal
- Browsers: chromium (brave optional)
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
- Status Bar: waybar
- Screenshots: grim & slurp
- Clipboard Manager: cliphist
- Logout: wlogout
- Idle Manager: hypridle
- Screenlock: hyprlock
# Qtile X11
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v27/screenshot-27-3.png" alt="Click to watch on YouTube" /></a>
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v27/screenshot-27-4.png" alt="Click to watch on YouTube" /></a>
## Wallpaper and Pywal
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
<kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>W</kbd> opens rofi with a list of installed wallpapers in ~/wallpaper/ for your individual selection.
## Main Packages
- Terminal: alacritty
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
- Launch Menus: Rofi (Wayland fork)
- Colorscheme: pywal
- Browsers: chromium (brave optional)
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
- Status Bar: Qtile status bar
- Compositor: picom
- Screenshots: scrot
# Troubleshooting
## Wallpaper issues (grey or distroyed image) with latest swww 0.9.1
Please install the latest version of the ML4W Dotfiles > 2.8.3.4
Or replace the swww launch command in /dotfiles/hypr/conf/autostart.conf with
```
exec-once = swww init || swww-daemon --format xrgb
```
swww is currently extremly under development. Upcoming updates could require different launch commands. I will monitor the development as well and update the dotfiles accordingly.
## Issues after Hyprland 0.37.1 Updates
Hyprland has released the version 0.37.1. This comes with many changes of the system and required dependencies.
Please update to the latest version of the ML4W Dotfiles 2.8.3.2
If you don't have access to Waybar because of overlayed error messages you can start the ML4W app with the application launcher <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>RETURN</kbd> and search for the ML4W Welcome App.
Or you open a terminal with <kbd>SUPER</kbd> + <kbd>RETURN</kbd> and enter
```
ml4w
```
Then select in the upper right side menu the entry "Update/ Dotfiles"
## hypridle and hyprlock is not starting after an update of the dotfiles
Please make sure that hypridle and hyprlock has been installed successfully with
```
yay -S hypridle hyprlock
```
If there is an file conflict the remove the files manually with:
```
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
```
and start the installation again with
```
yay -S hypridle hyprlock
```
## Missing icons in waybar
In case of missing icons on waybar, it's due to a conflict between several installed fonts (can happen especially on Arco Linux). Please make sure that ttf-ms-fonts is uninstalled and ttf-font-awesome and otf-font-awesome are installed with
```
yay -R ttf-ms-fonts
yay -S ttf-font-awesome otf-font-awesome
```
## SDDM not showing (only black screen with cursor)
Switch to another tty with <kbd>CTRL</kbd> + <kbd>ALT</kbd> + <kbd>F3</kbd> Now you can login with your user.
Start Hyprland with Hyprland.
You can try to reinstall all sddm related packages.
```
yay -S sddm-git sddm-sugar-candy-git
```
Or you can install another display manager.
To stop, disable and remove sddm service.
```
sudo systemctl stop sddm.service
sudo systemctl disable sddm.service
sudo rm /etc/systemd/system/display-manager.service
```
## Waybar is not loading
There could be a conflict with xdg-desktop-portal-gtk. Please try to remove the package if installed with:
```
sudo pacman -R xdg-desktop-portal-gtk
```
# Wallpaper repository
You can find my wallpaper collection in the repository https://gitlab.com/stephan-raabe/wallpaper
## Special Thanks
# Special Thanks
THANK YOU very much for all your support, contributions and ideas:
@@ -55,20 +461,17 @@ THANK YOU very much for all your support, contributions and ideas:
- Don Williams: https://github.com/dwilliam62
- Teodor Orzechowski: https://gitlab.com/sq6gtt
- Jamie Deppeler: https://gitlab.com/bknight2k
- Yingjie Wang: https://gitlab.com/GaugeAndGravity
- Daniel Gerber: https://gitlab.com/dan.john.gerber
- https://gitlab.com/muee
and many more...
Thanks to all YouTube subscribers for all your great feedback.
## Inspirations
# Inspirations
The following projects have inspired me:
- https://github.com/dianaw353/hyprland-configuration-rootfs
- https://github.com/prasanthrangan/hyprdots
- https://github.com/sudo-harun/dotfiles
- https://github.com/dianaw353/hyprland-configuration-rootfs
and many more...
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

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