Compare commits
124 Commits
65b334cc99
...
f4dd412733
Author | SHA1 | Date | |
---|---|---|---|
|
f4dd412733 | ||
|
d0323714b4 | ||
|
ffa3ecafd2 | ||
|
171c3a1a6a | ||
|
8cd2a50eda | ||
|
66c69a874a | ||
|
adfea0620e | ||
|
302069f938 | ||
|
2bbd4cf404 | ||
|
04b3c75d03 | ||
|
8f238013a4 | ||
|
024b6576f7 | ||
|
c59332a910 | ||
|
de456d061d | ||
|
796c4c3f39 | ||
|
f291d00c3e | ||
|
e8a1ffa19d | ||
|
60515b8486 | ||
|
2b44d0d20d | ||
|
44933108ce | ||
|
0de2d15a15 | ||
|
ed1c0d9ce5 | ||
|
c179958abf | ||
|
f1e2f2605c | ||
|
0c8cfa3222 | ||
|
3f74bfb960 | ||
|
4eaf9f7b53 | ||
|
1a051b9e17 | ||
|
8c10acf039 | ||
|
79193eaade | ||
|
62d62dee15 | ||
|
19e01fc42b | ||
|
8056a3ca34 | ||
|
1a96bc81d5 | ||
|
4ecab902c6 | ||
|
794be97b6c | ||
|
823e68c066 | ||
|
c7be4381ed | ||
|
7d51eaf779 | ||
|
7ce7c7ef3e | ||
|
8c4c25cbeb | ||
|
51c5fc1654 | ||
|
b96d97b70a | ||
|
001527ba1c | ||
|
b4e291cc74 | ||
|
1350de4dd5 | ||
|
4064cfc99c | ||
|
c5613a3377 | ||
|
688415017c | ||
|
75501d5ce0 | ||
|
472ff20131 | ||
|
b6a88b123a | ||
|
30505651f4 | ||
|
dfa91f0107 | ||
|
c6139fd816 | ||
|
c2746d99d9 | ||
|
0632b6b733 | ||
|
9cbd58d3c0 | ||
|
239fe10a3c | ||
|
6bc2f993d0 | ||
|
ff66140958 | ||
|
fbc1cc87ea | ||
|
641073201c | ||
|
93476ecd9d | ||
|
3fcda93405 | ||
|
bccabee855 | ||
|
4047c73d60 | ||
|
1bca430e8e | ||
|
bca185beaa | ||
|
ea9b6b9dc3 | ||
|
6e3535fb6c | ||
|
5a80ddea9d | ||
|
f3cc851979 | ||
|
1fe8a3bc7a | ||
|
b115ed73ff | ||
|
0446079d43 | ||
|
865d51582f | ||
|
017d27678f | ||
|
984362208d | ||
|
c3f9b8605b | ||
|
a3322b9b47 | ||
|
39b540ea20 | ||
|
16eb1b7915 | ||
|
0c4626c6e1 | ||
|
cc59007368 | ||
|
6ecf2bbb07 | ||
|
a2804a54a7 | ||
|
2741a595d0 | ||
|
97aa0af0a7 | ||
|
008df7b755 | ||
|
091e5bb040 | ||
|
49f8e87141 | ||
|
32b5202898 | ||
|
3398dd1588 | ||
|
1ff9107fe9 | ||
|
bf9e9a6f33 | ||
|
dbf9df8b31 | ||
|
ebdb149999 | ||
|
cc53ed0679 | ||
|
202a28bd7f | ||
|
d65e517dee | ||
|
4f55f5817f | ||
|
88451354aa | ||
|
b0ed32719e | ||
|
087b58e230 | ||
|
02e1336fe0 | ||
|
69c858fb65 | ||
|
6ef4bdae25 | ||
|
4c229fac9a | ||
|
c6d5376f43 | ||
|
98d89679b5 | ||
|
9104834d7f | ||
|
30913d6938 | ||
|
6f99f143c6 | ||
|
fec8e9fb96 | ||
|
d7aabb2599 | ||
|
e68481dece | ||
|
01c90fa16d | ||
|
c6ee368c6f | ||
|
950df3d84c | ||
|
ede46d7ef4 | ||
|
37a55e74b6 | ||
|
05720f7ee6 | ||
|
5db0a8965a |
2
.bashrc
2
.bashrc
@ -38,6 +38,7 @@ alias winclass="xprop | grep 'CLASS'"
|
|||||||
alias dot="cd ~/dotfiles"
|
alias dot="cd ~/dotfiles"
|
||||||
alias cleanup='~/dotfiles/scripts/cleanup.sh'
|
alias cleanup='~/dotfiles/scripts/cleanup.sh'
|
||||||
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
|
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
|
||||||
|
alias ml4w-settings='~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage'
|
||||||
|
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
# Window Managers
|
# Window Managers
|
||||||
@ -58,6 +59,7 @@ alias gpl="git pull"
|
|||||||
alias gst="git stash"
|
alias gst="git stash"
|
||||||
alias gsp="git stash; git pull"
|
alias gsp="git stash; git pull"
|
||||||
alias gcheck="git checkout"
|
alias gcheck="git checkout"
|
||||||
|
alias gcredential="git config credential.helper store"
|
||||||
|
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
# SCRIPTS
|
# SCRIPTS
|
||||||
|
24
.install/apps.sh
Executable file
24
.install/apps.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# ------------------------------------------------------
|
||||||
|
# Apps Installation
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
echo -e "${GREEN}"
|
||||||
|
figlet "ML4W Apps"
|
||||||
|
echo -e "${NONE}"
|
||||||
|
|
||||||
|
if [ ! -d $HOME/.local/share/applications/ ] ;then
|
||||||
|
mkdir $HOME/.local/share/applications
|
||||||
|
echo ":: $HOME/.local/share/applications created"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-welcome.desktop
|
||||||
|
cp $HOME/dotfiles/apps/ml4w-welcome.desktop $HOME/.local/share/applications
|
||||||
|
echo ":: ML4W Welcome App installed successfully"
|
||||||
|
|
||||||
|
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop
|
||||||
|
cp $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop $HOME/.local/share/applications
|
||||||
|
echo ":: ML4W Dotfiles Settings App installed successfully"
|
||||||
|
|
||||||
|
echo
|
@ -15,45 +15,29 @@ fi
|
|||||||
|
|
||||||
# Check for running NetworkManager.service
|
# 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
|
if [[ $(systemctl list-units --all -t service --full --no-legend "NetworkManager.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "NetworkManager.service" ]];then
|
||||||
echo "NetworkManager.service already running."
|
echo ":: NetworkManager.service already running."
|
||||||
else
|
else
|
||||||
sudo systemctl enable NetworkManager.service
|
sudo systemctl enable NetworkManager.service
|
||||||
sudo systemctl start NetworkManager.service
|
sudo systemctl start NetworkManager.service
|
||||||
echo "NetworkManager.service activated successfully."
|
echo ":: NetworkManager.service activated successfully."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for running bluetooth.service
|
# 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
|
if [[ $(systemctl list-units --all -t service --full --no-legend "bluetooth.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "bluetooth.service" ]];then
|
||||||
echo "bluetooth.service already running."
|
echo ":: bluetooth.service already running."
|
||||||
else
|
else
|
||||||
sudo systemctl enable bluetooth.service
|
sudo systemctl enable bluetooth.service
|
||||||
sudo systemctl start bluetooth.service
|
sudo systemctl start bluetooth.service
|
||||||
echo "bluetooth.service activated successfully."
|
echo ":: bluetooth.service activated successfully."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d ~/dotfiles/hypr/settings/modules/waybar/defaults ] ;then
|
if [ -d ~/dotfiles/hypr/settings/ ] ;then
|
||||||
rm -rf ~/dotfiles/hypr/settings/modules/waybar/defaults
|
rm -rf ~/dotfiles/hypr/settings
|
||||||
echo "~/dotfiles/hypr/settings/modules/waybar/defaults removed."
|
echo ":: ~/dotfiles/hypr/settings removed."
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ~/dotfiles/hypr/settings/modules/sddm ] ;then
|
|
||||||
rm -rf ~/dotfiles/hypr/settings/modules/sddm
|
|
||||||
echo "~/dotfiles/hypr/settings/modules/sddm removed."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ~/dotfiles/hypr/settings/modules/appearance/wallpaper ] ;then
|
|
||||||
rm -rf ~/dotfiles/hypr/settings/modules/appearance/wallpaper
|
|
||||||
echo "~/dotfiles/hypr/settings/modules/appearance/wallpaper removed."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d ~/dotfiles/hypr/settings/modules/system/swaylock ] ;then
|
|
||||||
rm -rf ~/dotfiles/hypr/settings/modules/system/swaylock
|
|
||||||
echo "~/dotfiles/hypr/settings/modules/system/swaylock removed."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create default folder structure
|
# Create default folder structure
|
||||||
xdg-user-dirs-update
|
xdg-user-dirs-update
|
||||||
echo "Default folders created..."
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo "Cleanup done."
|
echo ":: Cleanup done."
|
@ -2,9 +2,7 @@
|
|||||||
# Confirm Start
|
# Confirm Start
|
||||||
# ------------------------------------------------------
|
# ------------------------------------------------------
|
||||||
|
|
||||||
echo "IMPORTANT: Please make sure that your system and your packages are up to date (sudo pacman -Syu or yay)."
|
|
||||||
echo "You can cancel the installation at any time with CTRL + C"
|
echo "You can cancel the installation at any time with CTRL + C"
|
||||||
echo "If you have already installed a window manager like sway, please backup your .config folder."
|
|
||||||
SCRIPT=$(realpath "$0")
|
SCRIPT=$(realpath "$0")
|
||||||
SCRIPTPATH=$(dirname "$SCRIPT")
|
SCRIPTPATH=$(dirname "$SCRIPT")
|
||||||
if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
|
if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
|
||||||
@ -17,21 +15,21 @@ if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ ! -d ~/dotfiles ];then
|
if [ ! -d ~/dotfiles ];then
|
||||||
if gum confirm "DO YOU WANT TO START THE INSTALLATION NOW?" ;then
|
if gum confirm "DO YOU WANT TO START THE INSTALLATION OF THE ML4W DOTFILES NOW?" ;then
|
||||||
echo "Installation started."
|
echo "Installation started."
|
||||||
elif [ $? -eq 130 ]; then
|
elif [ $? -eq 130 ]; then
|
||||||
exit 130
|
exit 130
|
||||||
else
|
else
|
||||||
echo "Installation canceled."
|
echo ":: Installation canceled."
|
||||||
exit;
|
exit;
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if gum confirm "DO YOU WANT TO START THE UPDATE 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
|
exit 130
|
||||||
else
|
else
|
||||||
echo "Update canceled."
|
echo ":: Update canceled."
|
||||||
exit;
|
exit;
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -59,7 +59,7 @@ fi
|
|||||||
if [ "$dmsel" == "Install sddm" ] ;then
|
if [ "$dmsel" == "Install sddm" ] ;then
|
||||||
|
|
||||||
disman=0
|
disman=0
|
||||||
# Try to force the installation of sddm-git
|
# 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 sddm-sugar-candy-git --ask 4
|
||||||
|
|
||||||
|
@ -8,8 +8,10 @@ fi
|
|||||||
if [ -d ~/dotfiles-versions/$version/vim ]; then
|
if [ -d ~/dotfiles-versions/$version/vim ]; then
|
||||||
_installSymLink vim ~/.config/vim ~/dotfiles/vim/ ~/.config
|
_installSymLink vim ~/.config/vim ~/dotfiles/vim/ ~/.config
|
||||||
fi
|
fi
|
||||||
if [ -d ~/dotfiles-versions/$version/nvim ]; then
|
if [ $neovim == "1" ] ;then
|
||||||
|
if [ -d ~/dotfiles-versions/$version/nvim ]; then
|
||||||
_installSymLink nvim ~/.config/nvim ~/dotfiles/nvim/ ~/.config
|
_installSymLink nvim ~/.config/nvim ~/dotfiles/nvim/ ~/.config
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -d ~/dotfiles-versions/$version/starship ]; then
|
if [ -d ~/dotfiles-versions/$version/starship ]; then
|
||||||
_installSymLink starship ~/.config/starship.toml ~/dotfiles/starship/starship.toml ~/.config/starship.toml
|
_installSymLink starship ~/.config/starship.toml ~/dotfiles/starship/starship.toml ~/.config/starship.toml
|
||||||
@ -35,5 +37,5 @@ 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
|
||||||
echo "Symbolic links created."
|
echo ":: Symbolic links created."
|
||||||
echo
|
echo
|
16
.install/neovim.sh
Normal file
16
.install/neovim.sh
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# ------------------------------------------------------
|
||||||
|
# Neovim
|
||||||
|
# ------------------------------------------------------
|
||||||
|
neovim=0
|
||||||
|
if [ -d ~/dotfiles/nvim ]; then
|
||||||
|
echo -e "${GREEN}"
|
||||||
|
figlet "Neovim"
|
||||||
|
echo -e "${NONE}"
|
||||||
|
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
|
||||||
|
else
|
||||||
|
rm -rf ~/dotfiles-versions/$version/nvim/
|
||||||
|
echo ":: Installation of ML4W Neovim configuration skipped."
|
||||||
|
fi
|
||||||
|
fi
|
@ -7,7 +7,6 @@ packagesPacman=(
|
|||||||
"wget"
|
"wget"
|
||||||
"unzip"
|
"unzip"
|
||||||
"alacritty"
|
"alacritty"
|
||||||
"rofi"
|
|
||||||
"chromium"
|
"chromium"
|
||||||
"dunst"
|
"dunst"
|
||||||
"starship"
|
"starship"
|
||||||
@ -49,6 +48,9 @@ packagesPacman=(
|
|||||||
"libadwaita"
|
"libadwaita"
|
||||||
"python-pywal"
|
"python-pywal"
|
||||||
"xdg-desktop-portal"
|
"xdg-desktop-portal"
|
||||||
|
"qalculate-gtk"
|
||||||
|
"imagemagick"
|
||||||
|
"guvcview"
|
||||||
);
|
);
|
||||||
|
|
||||||
packagesYay=(
|
packagesYay=(
|
||||||
@ -56,4 +58,5 @@ packagesYay=(
|
|||||||
"bibata-cursor-theme"
|
"bibata-cursor-theme"
|
||||||
"trizen"
|
"trizen"
|
||||||
"pacseek"
|
"pacseek"
|
||||||
|
"rofi-lbonn-wayland"
|
||||||
);
|
);
|
||||||
|
@ -13,4 +13,6 @@ packagesYay=(
|
|||||||
"wlogout"
|
"wlogout"
|
||||||
"nwg-look"
|
"nwg-look"
|
||||||
"emote"
|
"emote"
|
||||||
|
"hypridle"
|
||||||
|
"hyprlock"
|
||||||
);
|
);
|
||||||
|
@ -35,4 +35,4 @@ 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
|
||||||
echo "Symbolic links created."
|
echo ":: Symbolic links created."
|
||||||
|
18
.install/reboot.sh
Normal file
18
.install/reboot.sh
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# ------------------------------------------------------
|
||||||
|
# Reboot
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
echo -e "${GREEN}"
|
||||||
|
figlet "Reboot"
|
||||||
|
echo -e "${NONE}"
|
||||||
|
echo "A reboot of your system is recommended."
|
||||||
|
if gum confirm "Do you want to reboot your system now?" ;then
|
||||||
|
echo ":: Rebooting now ..."
|
||||||
|
sleep 3
|
||||||
|
systemctl reboot
|
||||||
|
elif [ $? -eq 130 ]; then
|
||||||
|
exit 130
|
||||||
|
else
|
||||||
|
echo ":: Reboot skipped"
|
||||||
|
fi
|
||||||
|
echo ""
|
53
.install/remove.sh
Executable file
53
.install/remove.sh
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Remove Rofi Calc
|
||||||
|
if [[ $(_isInstalledPacman "rofi-calc") == 0 ]]; then
|
||||||
|
sudo pacman --noconfirm -Rns rofi-calc
|
||||||
|
echo ":: rofi-calc removed"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove Rofi
|
||||||
|
if [[ $(_isInstalledPacman "rofi") == 0 ]]; then
|
||||||
|
sudo pacman --noconfirm -Rns rofi
|
||||||
|
echo ":: rofi removed"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove Swayidle
|
||||||
|
if [[ $(_isInstalledPacman "swayidle") == 0 ]]; then
|
||||||
|
sudo pacman --noconfirm -Rns swayidle
|
||||||
|
echo ":: swayidle removed"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove Swaylock
|
||||||
|
if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
|
||||||
|
yay --noconfirm -Rns swaylock-effects-git
|
||||||
|
echo ":: swaylock removed"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove hypridle-bin
|
||||||
|
if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
|
||||||
|
yay --noconfirm -Rns hypridle-git
|
||||||
|
if [ -f /usr/lib/debug/usr/bin/hypridle.debug ] ;then
|
||||||
|
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
|
||||||
|
echo ":: /usr/lib/debug/usr/bin/hypridle.debug removed"
|
||||||
|
fi
|
||||||
|
echo ":: hypridle-git uninstalled."
|
||||||
|
echo ":: hypridle can now be installed."
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove hypridle-bin
|
||||||
|
if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then
|
||||||
|
yay --noconfirm -Rns hyprlock-git
|
||||||
|
if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then
|
||||||
|
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
|
||||||
|
echo ":: /usr/lib/debug/usr/bin/hyprlock.debug removed"
|
||||||
|
fi
|
||||||
|
echo ":: hyprlock-git uninstalled."
|
||||||
|
echo ":: hyprlock can now be installed."
|
||||||
|
echo
|
||||||
|
fi
|
@ -8,7 +8,7 @@ echo ""
|
|||||||
|
|
||||||
# Check for required packages
|
# Check for required packages
|
||||||
echo ":: Checking that required packages for the installation are installed..."
|
echo ":: Checking that required packages for the installation are installed..."
|
||||||
_installPackagesPacman "rsync" "gum" "figlet";
|
_installPackagesPacman "rsync" "gum" "figlet" "python";
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Double check rsync
|
# Double check rsync
|
||||||
|
149
.install/restore.py
Normal file
149
.install/restore.py
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
# __ __ _ _ ___ __ _
|
||||||
|
# | \/ | | | || \ \ / / _ __ ___ ___| |_ ___ _ __ ___
|
||||||
|
# | |\/| | | | || |\ \ /\ / / | '__/ _ \/ __| __/ _ \| '__/ _ \
|
||||||
|
# | | | | |__|__ _\ V V / | | | __/\__ \ || (_) | | | __/
|
||||||
|
# |_| |_|_____| |_| \_/\_/ |_| \___||___/\__\___/|_| \___|
|
||||||
|
#
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import subprocess
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
import pathlib
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
# Get script path
|
||||||
|
pathname = os.path.dirname(sys.argv[0])
|
||||||
|
|
||||||
|
class ML4WRestore:
|
||||||
|
|
||||||
|
waybar_themes = [
|
||||||
|
"ml4w-minimal",
|
||||||
|
"ml4w",
|
||||||
|
"ml4w-blur",
|
||||||
|
"ml4w-blur-bottom",
|
||||||
|
"ml4w-bottom"
|
||||||
|
]
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
"waybar_timeformat": "%H:%M",
|
||||||
|
"waybar_dateformat": "%a",
|
||||||
|
"waybar_custom_timedateformat": "",
|
||||||
|
"waybar_workspaces": 5,
|
||||||
|
"rofi_bordersize": 3,
|
||||||
|
"waybar_network": True,
|
||||||
|
"waybar_chatgpt": True,
|
||||||
|
"waybar_systray": True,
|
||||||
|
"waybar_screenlock": True,
|
||||||
|
"waybar_window": True
|
||||||
|
}
|
||||||
|
|
||||||
|
path_name = pathname # Path of Application
|
||||||
|
homeFolder = os.path.expanduser('~') # Path to home folder
|
||||||
|
dotfiles = homeFolder + "/dotfiles/"
|
||||||
|
settings = {}
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
# Load settings.json
|
||||||
|
settings_file = open(self.dotfiles + ".settings/settings.json")
|
||||||
|
settings_arr = json.load(settings_file)
|
||||||
|
for row in settings_arr:
|
||||||
|
self.settings[row["key"]] = row["value"]
|
||||||
|
|
||||||
|
self.loadSwitchAll("waybar_network","network")
|
||||||
|
self.loadSwitchAll("waybar_systray","tray")
|
||||||
|
self.loadSwitchAll("waybar_window","hyprland/window")
|
||||||
|
self.loadSwitchAll("waybar_screenlock","idle_inhibitor")
|
||||||
|
self.loadSwitch("waybar_chatgpt","custom/chatgpt")
|
||||||
|
|
||||||
|
# Waybar Workspaces
|
||||||
|
if "waybar_workspaces" in self.settings:
|
||||||
|
value = int(self.settings["waybar_workspaces"])
|
||||||
|
text = ' "*": ' + str(value)
|
||||||
|
self.replaceInFileNext("waybar/modules.json", "// START WORKSPACES", text)
|
||||||
|
print (":: waybar_workspaces restored")
|
||||||
|
|
||||||
|
# Rofi BorderSize
|
||||||
|
if "rofi_bordersize" in self.settings:
|
||||||
|
value = int(self.settings["rofi_bordersize"])
|
||||||
|
text = "* { border-width: " + str(value) + "px; }"
|
||||||
|
self.overwriteFile(".settings/rofi-border.rasi",text)
|
||||||
|
print (":: rofi_bordersize restored")
|
||||||
|
|
||||||
|
# Time/DateFormat
|
||||||
|
if "waybar_timeformat" in self.settings:
|
||||||
|
timeformat = self.settings["waybar_timeformat"]
|
||||||
|
else:
|
||||||
|
timeformat = self.defaults["waybar_timeformat"]
|
||||||
|
|
||||||
|
if "waybar_dateformat" in self.settings:
|
||||||
|
dateformat = self.settings["waybar_dateformat"]
|
||||||
|
else:
|
||||||
|
dateformat = self.defaults["waybar_dateformat"]
|
||||||
|
|
||||||
|
if "waybar_custom_timedateformat" in self.settings:
|
||||||
|
custom_format = self.settings["waybar_custom_timedateformat"]
|
||||||
|
else:
|
||||||
|
custom_format = self.defaults["waybar_custom_timedateformat"]
|
||||||
|
|
||||||
|
if custom_format != "":
|
||||||
|
timedate = ' "format": "{:' + custom_format + '}",'
|
||||||
|
self.replaceInFileNext("waybar/modules.json", "TIMEDATEFORMAT", timedate)
|
||||||
|
else:
|
||||||
|
timedate = ' "format": "{:' + timeformat + ' - ' + dateformat + '}",'
|
||||||
|
self.replaceInFileNext("waybar/modules.json", "TIMEDATEFORMAT", timedate)
|
||||||
|
print (":: timedate format restored")
|
||||||
|
|
||||||
|
def loadSwitch(self,k,m):
|
||||||
|
if k in self.settings:
|
||||||
|
if not self.settings[k]:
|
||||||
|
self.replaceInFile("waybar/modules.json",'"' + m + '"',' //"' + m + '",')
|
||||||
|
print (":: " + k + " restored")
|
||||||
|
|
||||||
|
def loadSwitchAll(self,k,m):
|
||||||
|
if k in self.settings:
|
||||||
|
if not self.settings[k]:
|
||||||
|
for t in self.waybar_themes:
|
||||||
|
self.replaceInFile("waybar/themes/" + t + "/config",'"' + m + '"',' //"' + m + '",')
|
||||||
|
print (":: " + k + " restored")
|
||||||
|
|
||||||
|
# Overwrite Text in File
|
||||||
|
def overwriteFile(self, f, text):
|
||||||
|
file=open(self.dotfiles + f,"w+")
|
||||||
|
file.write(text)
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
# Replace Text in File
|
||||||
|
def replaceInFile(self, f, search, replace):
|
||||||
|
file = open(self.dotfiles + f, 'r')
|
||||||
|
lines = file.readlines()
|
||||||
|
count = 0
|
||||||
|
found = 0
|
||||||
|
# Strips the newline character
|
||||||
|
for l in lines:
|
||||||
|
count += 1
|
||||||
|
if search in l:
|
||||||
|
found = count
|
||||||
|
if found > 0:
|
||||||
|
lines[found - 1] = replace + "\n"
|
||||||
|
with open(self.dotfiles + f, 'w') as file:
|
||||||
|
file.writelines(lines)
|
||||||
|
|
||||||
|
# Replace Text in File
|
||||||
|
def replaceInFileNext(self, f, search, replace):
|
||||||
|
file = open(self.dotfiles + f, 'r')
|
||||||
|
lines = file.readlines()
|
||||||
|
count = 0
|
||||||
|
found = 0
|
||||||
|
# Strips the newline character
|
||||||
|
for l in lines:
|
||||||
|
count += 1
|
||||||
|
if search in l:
|
||||||
|
found = count
|
||||||
|
if found > 0:
|
||||||
|
lines[found] = replace + "\n"
|
||||||
|
with open(self.dotfiles + f, 'w') as file:
|
||||||
|
file.writelines(lines)
|
||||||
|
|
||||||
|
|
||||||
|
ml4wrestore = ML4WRestore()
|
@ -8,7 +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. No selection = CANCEL)"
|
echo "(SPACE = select/unselect a profile. RETURN = confirm. ESC/No selection = Skip Restore)"
|
||||||
echo ""
|
echo ""
|
||||||
restorelist=""
|
restorelist=""
|
||||||
if [ -f ~/dotfiles/.bashrc ]; then
|
if [ -f ~/dotfiles/.bashrc ]; then
|
||||||
@ -20,6 +20,13 @@ _showRestoreOptions() {
|
|||||||
selectedlist+="~/dotfiles/.settings,"
|
selectedlist+="~/dotfiles/.settings,"
|
||||||
fi
|
fi
|
||||||
if [[ $profile == *"Hyprland"* ]]; then
|
if [[ $profile == *"Hyprland"* ]]; then
|
||||||
|
if [ -f ~/dotfiles/hypr/hypridle.conf ]; then
|
||||||
|
if grep -Fxq "# Version 2.8.3" ~/dotfiles/hypr/hypridle.conf
|
||||||
|
then
|
||||||
|
restorelist+="~/dotfiles/hypr/hypridle.conf "
|
||||||
|
selectedlist+="~/dotfiles/hypr/hypridle.conf,"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
||||||
restorelist+="~/dotfiles/hypr/conf/custom.conf "
|
restorelist+="~/dotfiles/hypr/conf/custom.conf "
|
||||||
selectedlist+="~/dotfiles/hypr/conf/custom.conf,"
|
selectedlist+="~/dotfiles/hypr/conf/custom.conf,"
|
||||||
@ -68,18 +75,18 @@ _showRestoreOptions() {
|
|||||||
echo "Selected to restore:"
|
echo "Selected to restore:"
|
||||||
echo "$restoreselect"
|
echo "$restoreselect"
|
||||||
echo ""
|
echo ""
|
||||||
confirmrestore=$(gum choose "Start restore" "Change restore" "Cancel restore")
|
confirmrestore=$(gum choose "Start restore" "Change restore" "Skip restore")
|
||||||
if [ "$confirmrestore" == "Start restore" ] ;then
|
if [ "$confirmrestore" == "Start restore" ] ;then
|
||||||
_startRestore
|
_startRestore
|
||||||
elif [ "$confirmrestore" == "Change restore" ]; then
|
elif [ "$confirmrestore" == "Change restore" ]; then
|
||||||
_showRestoreOptions
|
_showRestoreOptions
|
||||||
else
|
else
|
||||||
echo "Restore skipped."
|
echo ":: Restore skipped."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "No files selected to restore."
|
echo "No files selected to restore."
|
||||||
confirmrestore=$(gum choose "Change restore" "Cancel restore")
|
confirmrestore=$(gum choose "Change restore" "Skip restore")
|
||||||
if [ -z "${confirmrestore}" ] ;then
|
if [ -z "${confirmrestore}" ] ;then
|
||||||
echo "Installation canceled."
|
echo "Installation canceled."
|
||||||
exit
|
exit
|
||||||
@ -88,7 +95,7 @@ _showRestoreOptions() {
|
|||||||
echo ""
|
echo ""
|
||||||
_showRestoreOptions
|
_showRestoreOptions
|
||||||
else
|
else
|
||||||
echo "Restore skipped."
|
echo ":: Restore skipped."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -98,68 +105,74 @@ _startRestore() {
|
|||||||
if [[ $restoreselect == *"~/dotfiles/.bashrc"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/.bashrc"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/.bashrc ]; then
|
if [ -f ~/dotfiles/.bashrc ]; then
|
||||||
cp ~/dotfiles/.bashrc ~/dotfiles-versions/$version/
|
cp ~/dotfiles/.bashrc ~/dotfiles-versions/$version/
|
||||||
echo ".bashrc restored!"
|
echo ":: .bashrc restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/.settings"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/.settings"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -d ~/dotfiles/.settings ]; then
|
if [ -d ~/dotfiles/.settings ]; then
|
||||||
rsync -a -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
|
rsync -avhp -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
|
||||||
echo ".settings restored!"
|
echo ":: .settings restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $profile == *"Hyprland"* ]]; then
|
if [[ $profile == *"Hyprland"* ]]; then
|
||||||
|
if [[ $restoreselect == *"~/dotfiles/hypr/hypridle.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
|
if [ -f ~/dotfiles/hypr/hypridle.conf ]; then
|
||||||
|
cp ~/dotfiles/hypr/hypridle.conf ~/dotfiles-versions/$version/hypr/
|
||||||
|
echo ":: Hyprland hypridle.conf restored!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/custom.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/custom.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/custom.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/custom.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland custom.conf restored!"
|
echo ":: Hyprland custom.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keyboard.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keyboard.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/keyboard.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/keyboard.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/keyboard.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/keyboard.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland keyboard.conf restored!"
|
echo ":: Hyprland keyboard.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/monitor.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/monitor.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/monitor.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/monitor.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/monitor.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/monitor.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland monitor.conf restored!"
|
echo ":: Hyprland monitor.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keybinding.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keybinding.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/keybinding.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/keybinding.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/keybinding.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/keybinding.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland keybinding.conf restored!"
|
echo ":: Hyprland keybinding.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/environment.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/environment.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/environment.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/environment.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/environment.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/environment.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland environment.conf restored!"
|
echo ":: Hyprland environment.conf restored!"
|
||||||
fi
|
fi
|
||||||
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/
|
||||||
echo "Hyprland windowrule.conf restored!"
|
echo ":: Hyprland windowrule.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/animation.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/animation.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/animation.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/animation.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/animation.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/animation.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland animation.conf restored!"
|
echo ":: Hyprland animation.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/decoration.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/decoration.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/decoration.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/decoration.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/decoration.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/decoration.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland decoration.conf restored!"
|
echo ":: Hyprland decoration.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/window.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/hypr/conf/window.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/hypr/conf/window.conf ]; then
|
if [ -f ~/dotfiles/hypr/conf/window.conf ]; then
|
||||||
cp ~/dotfiles/hypr/conf/window.conf ~/dotfiles-versions/$version/hypr/conf/
|
cp ~/dotfiles/hypr/conf/window.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||||
echo "Hyprland window.conf restored!"
|
echo ":: Hyprland window.conf restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -167,7 +180,7 @@ _startRestore() {
|
|||||||
if [[ $restoreselect == *"~/dotfiles/qtile/autostart.sh"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
if [[ $restoreselect == *"~/dotfiles/qtile/autostart.sh"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||||
if [ -f ~/dotfiles/qtile/autostart.sh ]; then
|
if [ -f ~/dotfiles/qtile/autostart.sh ]; then
|
||||||
cp ~/dotfiles/qtile/autostart.sh ~/dotfiles-versions/$version/qtile/
|
cp ~/dotfiles/qtile/autostart.sh ~/dotfiles-versions/$version/qtile/
|
||||||
echo "Qtile autostart.sh restored!"
|
echo ":: Qtile autostart.sh restored!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -176,158 +189,14 @@ _startRestore() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [ -d ~/dotfiles ]; then
|
if [ -d ~/dotfiles ]; then
|
||||||
|
echo -e "${GREEN}"
|
||||||
echo -e "${GREEN}"
|
figlet "Restore"
|
||||||
figlet "Restore"
|
echo -e "${NONE}"
|
||||||
echo -e "${NONE}"
|
|
||||||
restored=0
|
restored=0
|
||||||
echo "The script will try to restore existing configurations."
|
echo "The script will try to restore existing configurations."
|
||||||
echo "PLEASE NOTE: Restoring is not possible with version < 2.6 of the dotfiles."
|
echo "PLEASE NOTE: Restoring is not possible with version < 2.6 of the dotfiles."
|
||||||
echo "In that case, please use the automated backup or create your own backup manually."
|
echo "In that case, please use the automated backup or create your own backup manually."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
_showRestoreOptions
|
_showRestoreOptions
|
||||||
|
|
||||||
# Restore Waybar Workspaces
|
|
||||||
targetFile="$HOME/dotfiles-versions/$version/waybar/modules.json"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_workspaces"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START WORKSPACE"
|
|
||||||
endMarker="END WORKSPACES"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
|
||||||
echo "Waybar Workspaces restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar Appslabel
|
|
||||||
targetFile="$HOME/dotfiles-versions/$version/waybar/modules.json"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_appslabel"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START APPS LABEL"
|
|
||||||
endMarker="END APPS LABEL"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
|
||||||
echo "Waybar Appslabel restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar ChatGPT
|
|
||||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_chatgpt"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START CHATGPT TOOGLE"
|
|
||||||
endMarker="END CHATGPT TOOGLE"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
|
||||||
echo "Waybar ChatGPT restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar Bluetooth
|
|
||||||
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
|
|
||||||
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
|
|
||||||
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
|
|
||||||
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
|
|
||||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_bluetooth"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START BT TOOGLE"
|
|
||||||
endMarker="END BT TOOGLE"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
|
||||||
echo "Waybar Bluetooth restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar Systray
|
|
||||||
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
|
|
||||||
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
|
|
||||||
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
|
|
||||||
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
|
|
||||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_systray"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START TRAY TOOGLE"
|
|
||||||
endMarker="END TRAY TOOGLE"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
|
||||||
echo "Waybar Systray restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar Network
|
|
||||||
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
|
|
||||||
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
|
|
||||||
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
|
|
||||||
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
|
|
||||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_network"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START NETWORK TOOGLE"
|
|
||||||
endMarker="END NETWORK TOOGLE"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
|
||||||
echo "Waybar Network restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar Idle
|
|
||||||
targetFile1="$HOME/dotfiles/waybar/themes/ml4w/config"
|
|
||||||
targetFile2="$HOME/dotfiles/waybar/themes/ml4w-blur/config"
|
|
||||||
targetFile3="$HOME/dotfiles/waybar/themes/ml4w-blur-bottom/config"
|
|
||||||
targetFile4="$HOME/dotfiles/waybar/themes/ml4w-bottom/config"
|
|
||||||
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_swaylock"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START IDLE TOOGLE"
|
|
||||||
endMarker="END IDLE TOOGLE"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
|
|
||||||
echo "Waybar Idle restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Waybar nmapplet
|
|
||||||
targetFile="$HOME/dotfiles-versions/$version/hypr/conf/autostart.conf"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_nmapplet"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START NM APPLET"
|
|
||||||
endMarker="END NM APPLET"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
|
||||||
echo "nm-applet restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Keyboard natural_scroll
|
|
||||||
targetFile="$HOME/dotfiles-versions/$version/hypr/conf/keyboard.conf"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/keyboard_naturalscroll"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
findMarker="natural_scroll"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceLineInFile "$findMarker" "$customtext" "$targetFile"
|
|
||||||
echo "keyboard natural_scroll restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Restore Start Swaylock
|
|
||||||
targetFile="$HOME/dotfiles/hypr/scripts/lockscreentime.sh"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/hypr_lockscreen"
|
|
||||||
if [ -f $settingsFile ] ;then
|
|
||||||
startMarker="START SWAYIDLE"
|
|
||||||
endMarker="END SWAYIDLE"
|
|
||||||
customtext="$(cat $settingsFile)"
|
|
||||||
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
|
|
||||||
echo "Swaylock start restored."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
echo -e "${GREEN}"
|
|
||||||
figlet "Screen lock"
|
|
||||||
echo -e "${NONE}"
|
|
||||||
if [[ $(_isInstalledYay "hypridle-git") == 1 ]] || [[ $(_isInstalledYay "hyprlock-git") == 1 ]]; then
|
|
||||||
echo "You can install hypridle and hyprlock to lock your screen automatically."
|
|
||||||
echo "These are the new standard screen locking packages of the ML4W dotfiles."
|
|
||||||
echo "Screenlocking will not work anymore if you keep swaylock."
|
|
||||||
echo "The installation is highly recommended."
|
|
||||||
if gum confirm "Do you want to install hypridle and hyprlock?" ;then
|
|
||||||
|
|
||||||
# Install Hypridle and Hyprlock
|
|
||||||
yay --noconfirm -S hypridle-git hyprlock-git
|
|
||||||
|
|
||||||
# Remove Swayidle
|
|
||||||
if [[ $(_isInstalledPacman "swayidle") == 0 ]]; then
|
|
||||||
sudo pacman --noconfirm -Rns swayidle
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove Swaylock
|
|
||||||
if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
|
|
||||||
yay --noconfirm -Rns swaylock-effects-git
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo ":: hypridle and hyprlock are already installed."
|
|
||||||
if gum confirm "Do you want to force a reinstallation to get the latest versions?" ;then
|
|
||||||
yay --noconfirm -S hypridle-git hyprlock-git
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
echo
|
|
15
.install/settings.sh
Normal file
15
.install/settings.sh
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
if [ "$restored" == "1" ]; then
|
||||||
|
echo -e "${GREEN}"
|
||||||
|
figlet "Restore Settings"
|
||||||
|
echo -e "${NONE}"
|
||||||
|
python .install/restore.py
|
||||||
|
else
|
||||||
|
if [ -f ~/dotfiles/.settings/settings.json ] ;then
|
||||||
|
rm ~/dotfiles/.settings/settings.json
|
||||||
|
echo ":: settings.json removed"
|
||||||
|
fi
|
||||||
|
if [ -f ~/.cache/.themestyle.sh ] ;then
|
||||||
|
rm ~/.cache/.themestyle.sh
|
||||||
|
echo ":: .themestyle.sh removed"
|
||||||
|
fi
|
||||||
|
fi
|
@ -8,6 +8,7 @@ input {
|
|||||||
kb_model =
|
kb_model =
|
||||||
kb_options =
|
kb_options =
|
||||||
numlock_by_default = true
|
numlock_by_default = true
|
||||||
|
mouse_refocus=false
|
||||||
|
|
||||||
# For United States
|
# For United States
|
||||||
# kb_layout = us
|
# kb_layout = us
|
||||||
|
11
.install/updatesystem.sh
Normal file
11
.install/updatesystem.sh
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# ------------------------------------------------------
|
||||||
|
# Update System
|
||||||
|
# ------------------------------------------------------
|
||||||
|
|
||||||
|
echo -e "${GREEN}"
|
||||||
|
figlet "System Update"
|
||||||
|
echo -e "${NONE}"
|
||||||
|
echo "It's important that your system is up-to-date before you proceed 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
|
||||||
|
fi
|
1
.settings/blur.sh
Normal file
1
.settings/blur.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
50x30
|
1
.settings/editor.sh
Executable file
1
.settings/editor.sh
Executable file
@ -0,0 +1 @@
|
|||||||
|
mousepad
|
Binary file not shown.
Before Width: | Height: | Size: 14 MiB |
1
.settings/rofi-font.rasi
Normal file
1
.settings/rofi-font.rasi
Normal file
@ -0,0 +1 @@
|
|||||||
|
configuration { font: "Fira Sans 11"; }
|
@ -1 +1 @@
|
|||||||
2.8.1
|
2.8.3.4
|
@ -1 +1 @@
|
|||||||
281
|
2834
|
42
CHANGELOG
42
CHANGELOG
@ -1,3 +1,45 @@
|
|||||||
|
Version 2.8.3.4
|
||||||
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.4
|
||||||
|
--------------------------------------------------------
|
||||||
|
- Fix swww gray background issue. New command on autostart.conf is
|
||||||
|
exec-once = swww init || swww-daemon --format xrgb
|
||||||
|
- Using blurred version of background image for wlogout
|
||||||
|
- Add progress bar to dunst notification for wallpaper change and processing
|
||||||
|
|
||||||
|
Version 2.8.3.2
|
||||||
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.2
|
||||||
|
--------------------------------------------------------
|
||||||
|
- Replace rofi with rofi-lbonn-wayland to get rofi wayland support
|
||||||
|
- Several modifications in the ML4W Welcome App
|
||||||
|
- ML4W Settings App allows to set between 1 and 10 Hyprland workspaces
|
||||||
|
|
||||||
|
Version 2.8.3.1
|
||||||
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.1
|
||||||
|
--------------------------------------------------------
|
||||||
|
- Add compatibility with Hyprland 0.37.1
|
||||||
|
|
||||||
|
Version 2.8.3
|
||||||
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3
|
||||||
|
--------------------------------------------------------
|
||||||
|
- New ML4W Dotfiles Settings App based on GTK4 with many new customization options
|
||||||
|
- Hyprlock with blurred version of the current wallpaper as background. Blur strength can be adjusted in the ML4W Dotfiles Settings app
|
||||||
|
- Hyprlock now showing the current time and username
|
||||||
|
|
||||||
|
Version 2.8.2.1
|
||||||
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
|
||||||
|
--------------------------------------------------------
|
||||||
|
- ML4W Welcome app includes more settings for hypridle. Incl. recommendation from Hyprland Wiki
|
||||||
|
|
||||||
|
Version 2.8.2
|
||||||
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
|
||||||
|
--------------------------------------------------------
|
||||||
|
General:
|
||||||
|
- Force installation of sddm to fix theme issue with sddm-sugar-candy theme. sddm-git doesn't work with themes at the moment
|
||||||
|
- snapshot.sh script check now for required timeshift and (optional) grub-btrfs packages
|
||||||
|
- Waybar Bluetooth module now hides automatically if no bluetooth device is detected. Please check that "bluetooth" is not commented out in ~/dotfiles/waybar/modules.json
|
||||||
|
- Replace hypridle-git with hypridle and hyprlock-git with hyprlock
|
||||||
|
- Desktop file for ML4W Welcome App to be listed in application launcher + icon
|
||||||
|
|
||||||
Version 2.8.1
|
Version 2.8.1
|
||||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.1
|
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.1
|
||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
|
233
README.md
233
README.md
@ -1,14 +1,19 @@
|
|||||||
# ML4W dotfiles 2.8.1
|
# ML4W Dotfiles 2.8.3.4
|
||||||
|
|
||||||
This is my configuration of Hyprland (Wayland) and Qtile (X11) for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
|
An advanced configuration of Hyprland and Qtile for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
|
||||||
|
|
||||||
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v281/screenshot-281-1.png?ref_type=heads" target="_blank"><img src="screenshots/v281/screenshot-281-1.png" /></a>
|
[![Screenshot](screenshots/v283/screenshot-283-2.png "Title Text")](screenshots/v283/screenshot-283-2.png)
|
||||||
|
|
||||||
PLEASE NOTE: This branch is the rolling release of the ML4W dotfiles and includes the latest changes.
|
You can find the overview video (Version 2.8.3) on Youtube: [ML4W Dotfiles 2.8.3](https://youtu.be/zM2AYue0o8s)
|
||||||
|
|
||||||
Latest official release 2.8.1: <a href="https://youtu.be/KHwJxpV_L1g" target="_blank">Watch on YouTube</a>
|
You can find the installation video (Version 2.8.2) on YouTube: [Install/Update the ML4W Dotfiles](https://youtu.be/n6Yg232bCOU)
|
||||||
|
|
||||||
You can find the installation video (Version 2.7.1) on YouTube: <a href="https://youtu.be/kHG5czrQ7WA" target="_blank">Install Arch Linux with Hyprland & Qtile</a>
|
> 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)
|
||||||
|
|
||||||
[TOC]
|
[TOC]
|
||||||
|
|
||||||
@ -18,42 +23,56 @@ To make it easy for you to get started with the ML4W dotfiles, here's a list of
|
|||||||
|
|
||||||
The package includes an installation script install.sh that will guide you through all steps of the installation or update process.
|
The package includes an installation script install.sh 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 smoothly everywhere. Installation on your own risk.
|
||||||
|
|
||||||
## Supported platforms
|
## Supported platforms
|
||||||
|
|
||||||
The dotfiles are tested with the following Arch based distributions:
|
The dotfiles are tested with the following Arch based distributions:
|
||||||
|
|
||||||
- Arch Linux (recommended)
|
- Arch Linux (recommended)
|
||||||
- Manjaro Linux
|
|
||||||
- Arco Linux
|
|
||||||
- EndeavourOS
|
- EndeavourOS
|
||||||
|
- Arco Linux
|
||||||
|
- Manjaro Linux
|
||||||
|
|
||||||
But the installation should work on all Arch Linux based distributions as well.
|
The installation should work on all Arch Linux based distributions as well.
|
||||||
|
|
||||||
For Arco Linux users: Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
|
> **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
|
## Before you start
|
||||||
|
|
||||||
PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.
|
**PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.**
|
||||||
PLEASE READ THIS README until the end before starting the installation.
|
|
||||||
|
|
||||||
The installation script will try to create a backup from an previous dotfiles installation.
|
The installation script will create a backup from an previous dotfiles installation.
|
||||||
|
|
||||||
Please note: To get the default Linux folder structure incl. Downloads, etc please install the packages xdg-user-dirs and run xdg-user-dirs-update.
|
If possible, please create a snapshot of your current system if snapper or Timeshift is installed and available.
|
||||||
|
|
||||||
## Reference Installation
|
## ML4W Installer App
|
||||||
|
|
||||||
The reference installation on the dotfiles is based on Arch Linux installed with a minimal profile.
|
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...)
|
||||||
|
|
||||||
Please watch the video on YouTube: https://youtu.be/kHG5czrQ7WA
|
```
|
||||||
|
# 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
|
||||||
|
```
|
||||||
|
|
||||||
## Installation with GIT
|
## Installation with GIT
|
||||||
|
|
||||||
|
You can also install the dotfiles by cloning the latest main release:
|
||||||
|
|
||||||
```
|
```
|
||||||
# 1.) Change into your Downloads folder
|
# 1.) Change into your Downloads folder (create the folder if not available)
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
|
|
||||||
# 2.) Clone the dotfiles repository into the Downloads folder
|
# 2.) Clone the dotfiles repository into the Downloads folder
|
||||||
git clone https://gitlab.com/stephan-raabe/dotfiles.git
|
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
|
||||||
|
|
||||||
# 3.) Change into the dotfiles folder
|
# 3.) Change into the dotfiles folder
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
@ -65,54 +84,65 @@ cd dotfiles
|
|||||||
|
|
||||||
## Installation with GIT of the rolling release
|
## Installation with GIT of the rolling release
|
||||||
|
|
||||||
|
You can install the dotfiles by cloning the latest development version from the rolling release:
|
||||||
|
|
||||||
```
|
```
|
||||||
# 1.) Change into your Downloads folder where you have downloaded the release to
|
# 1.) Change into your Downloads folder (create the folder if not available)
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
|
|
||||||
# 2.) Unzip
|
# 2.) Clone the dotfiles repository into the Downloads folder
|
||||||
git clone https://gitlab.com/stephan-raabe/dotfiles.git
|
git clone https://gitlab.com/stephan-raabe/dotfiles.git
|
||||||
|
|
||||||
# 3.) Change into the new dotfiles folder
|
# 3.) Change into the new dotfiles folder
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
|
|
||||||
# 4.) Switch to dev branch
|
# 4.) Checkout the dev branch
|
||||||
git checkout dev
|
git checkout dev
|
||||||
|
|
||||||
# 4.) Start the installation to update
|
# 4.) Start the installation
|
||||||
./install.sh
|
./install.sh
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update with GIT
|
## 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.) Change into your Downloads folder
|
# 1.) Remove existing downloaded dotfiles
|
||||||
cd ~/Downloads/dotfiles
|
rm -rf ~/Downloads/dotfiles
|
||||||
|
|
||||||
# Switch to rolling release
|
# 2.) Change into your Downloads folder
|
||||||
# git checkout origin/main
|
cd ~/Downloads
|
||||||
|
|
||||||
# 2.) Pull the latest version and update the repository
|
# 3.) Clone the dotfiles repository into the Downloads folder
|
||||||
git stash; git pull
|
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
|
||||||
|
|
||||||
# 3.) Start the installation to update
|
# 4.) Change into the dotfiles folder
|
||||||
|
cd dotfiles
|
||||||
|
|
||||||
|
# 5.) Start the installation
|
||||||
./install.sh
|
./install.sh
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
You can create a clean reinstallation by removing the folder ~/dotfiles Please note that you can create a backup of your exsiting configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
|
|
||||||
|
|
||||||
## Dotfiles Installer
|
|
||||||
|
|
||||||
You can also use the dotfiles installer script to download and install the latest release: https://gitlab.com/stephan-raabe/installer
|
|
||||||
|
|
||||||
## Installation Hook
|
## Installation Hook
|
||||||
|
|
||||||
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copying into the final destination in ~/dotfiles
|
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 the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
|
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 delete folders and files or update existing configurations.
|
You can for example delete folders and files or update existing configurations.
|
||||||
|
|
||||||
```
|
```
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@ -126,14 +156,20 @@ You can find a template in .install/templates/hook.sh
|
|||||||
|
|
||||||
## Hyprland & NVIDIA
|
## Hyprland & NVIDIA
|
||||||
|
|
||||||
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
|
|
||||||
|
|
||||||
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
|
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
|
||||||
https://wiki.hyprland.org/Nvidia/
|
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
|
## Launch Hyprland from tty
|
||||||
|
|
||||||
The suggested method to start Hyprland is from tty with the command Hyprland bacause login managers (display managers) are not official supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
|
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
|
# Start Hyprland
|
||||||
@ -158,6 +194,14 @@ With the Hyprland settings script you can copy the current wallpaper into SDDM a
|
|||||||
|
|
||||||
Please check the troubleshooting section in case of issues.
|
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
|
## 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.
|
Qtile X11 works fine in a KVM virtual machine. The Hyprland performance is low but it's enough for testing new features.
|
||||||
@ -181,9 +225,9 @@ If you want to install only the core packages of Hyprland as a starting point fo
|
|||||||
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>B</kbd>: Reload waybar 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:
|
All keybindings for Hyprland with right mouse click on Apps in waybar or here:
|
||||||
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/keybindings.conf
|
|
||||||
|
|
||||||
All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/qtile/config.py
|
- [Hyprland keybindings overview](hypr/conf/keybindings/default.conf)
|
||||||
|
- [Qtile keybindings overview](qtile/config.py)
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
|
|
||||||
@ -199,13 +243,13 @@ All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main
|
|||||||
|
|
||||||
## ML4W Welcome App
|
## ML4W Welcome App
|
||||||
|
|
||||||
After starting the ML4W dotfiles for the first time, the ML4W Welcome App appears. This app is the starting point to discover the Hyprland setup.
|
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" />
|
<img src="screenshots/screenshot-welcome.app.png" />
|
||||||
|
|
||||||
The welcome screen includes the most important keybindings to open a terminal or a browser.
|
The welcome screen includes the most important keybindings to open a terminal or a browser.
|
||||||
|
|
||||||
You can start the ML4W Welcome App by clicking on the L icon on the right side in waybar or be entering ml4w in your terminal (if you're using the .bashrc from the dotfiles).
|
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:
|
In the Settings Menu you can access the following functions:
|
||||||
|
|
||||||
@ -223,6 +267,31 @@ In the Settings Menu you can access the following functions:
|
|||||||
You can find the sourcecode of the ML4W Welcome App in this repository:
|
You can find the sourcecode of the ML4W Welcome App in this repository:
|
||||||
https://gitlab.com/stephan-raabe/ml4w-welcome
|
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
|
## 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/.
|
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/.
|
||||||
@ -235,28 +304,14 @@ In addition, you can switch the Waybar Template with <kbd>SUPER</kbd> + <kbd>CTR
|
|||||||
|
|
||||||
The templates are available in ~/dotfiles/waybar/themes. You can add your own personal themes into this folder.
|
The templates are available in ~/dotfiles/waybar/themes. You can add your own personal themes into this folder.
|
||||||
|
|
||||||
More information here: https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/waybar
|
[You can find more information here.](waybar/README.md)
|
||||||
|
|
||||||
## Hyprland settings
|
|
||||||
|
|
||||||
You can open the settings script with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to select variations for your hyprland.conf and customize your desktop even more.
|
|
||||||
|
|
||||||
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the settings script in the corresponding section.
|
|
||||||
|
|
||||||
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
|
|
||||||
|
|
||||||
You can also edit the file directly in the settings script in the section Custom.
|
|
||||||
|
|
||||||
## Screensharing and recording
|
## Screensharing and recording
|
||||||
|
|
||||||
In case you have issues with starting Waybar please make sure that only one xdg-desktop-portal-x is installed additionally to xdg-desktop-portal.
|
|
||||||
|
|
||||||
I had several issues with xdg-desktop-portal-wlr on Hyprland and Waybar. Please make sure that xdg-desktop-portal-wlr is uninstalled and xdg-desktop-portal-hyprland is installed.
|
|
||||||
|
|
||||||
More information you can find here:
|
More information you can find here:
|
||||||
https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
|
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.
|
> Please note that every Arch Linux system is different and I cannot guarantee that everything works fine on your system.
|
||||||
|
|
||||||
## Main packages
|
## Main packages
|
||||||
|
|
||||||
@ -264,7 +319,7 @@ Please note that every Arch Linux system is different and I cannot guarantee tha
|
|||||||
- Editor: nvim
|
- Editor: nvim
|
||||||
- Prompt: starship
|
- Prompt: starship
|
||||||
- Icons: Font Awesome
|
- Icons: Font Awesome
|
||||||
- Launch Menus: Rofi
|
- Launch Menus: Rofi (Wayland fork)
|
||||||
- Colorscheme: pywal
|
- Colorscheme: pywal
|
||||||
- Browsers: chromium (brave optional)
|
- Browsers: chromium (brave optional)
|
||||||
- Filemanager: Thunar
|
- Filemanager: Thunar
|
||||||
@ -295,7 +350,7 @@ Included is a pywal configuration that changes the color scheme based on a rando
|
|||||||
- Editor: nvim
|
- Editor: nvim
|
||||||
- Prompt: starship
|
- Prompt: starship
|
||||||
- Icons: Font Awesome
|
- Icons: Font Awesome
|
||||||
- Launch Menus: Rofi
|
- Launch Menus: Rofi (Wayland fork)
|
||||||
- Colorscheme: pywal
|
- Colorscheme: pywal
|
||||||
- Browsers: chromium (brave optional)
|
- Browsers: chromium (brave optional)
|
||||||
- Filemanager: Thunar
|
- Filemanager: Thunar
|
||||||
@ -307,6 +362,54 @@ Included is a pywal configuration that changes the color scheme based on a rando
|
|||||||
|
|
||||||
# Troubleshooting
|
# 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
|
## 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
|
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
|
||||||
|
BIN
apps/ML4W_Dotfiles_Installer.AppImage
Executable file
BIN
apps/ML4W_Dotfiles_Installer.AppImage
Executable file
Binary file not shown.
BIN
apps/ML4W_Dotfiles_Settings-x86_64.AppImage
Executable file
BIN
apps/ML4W_Dotfiles_Settings-x86_64.AppImage
Executable file
Binary file not shown.
Binary file not shown.
7
apps/ml4w-dotfiles-settings.desktop
Executable file
7
apps/ml4w-dotfiles-settings.desktop
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=ML4W Dotfiles Settings App
|
||||||
|
Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
||||||
|
Icon=HOME/dotfiles/apps/ml4w-icon.png
|
||||||
|
Terminal=false
|
||||||
|
Categories=Utility
|
BIN
apps/ml4w-icon.png
Normal file
BIN
apps/ml4w-icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
7
apps/ml4w-welcome.desktop
Executable file
7
apps/ml4w-welcome.desktop
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=ML4W Welcome App
|
||||||
|
Exec=HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage
|
||||||
|
Icon=HOME/dotfiles/apps/ml4w-icon.png
|
||||||
|
Terminal=false
|
||||||
|
Categories=Utility
|
@ -102,7 +102,7 @@
|
|||||||
|
|
||||||
# Defines width in pixels of frame around the notification window.
|
# Defines width in pixels of frame around the notification window.
|
||||||
# Set to 0 to disable.
|
# Set to 0 to disable.
|
||||||
frame_width = 3
|
frame_width = 1
|
||||||
|
|
||||||
# Defines color of the frame around the notification window.
|
# Defines color of the frame around the notification window.
|
||||||
frame_color = "#ffffff"
|
frame_color = "#ffffff"
|
||||||
@ -133,7 +133,7 @@
|
|||||||
|
|
||||||
### Text ###
|
### Text ###
|
||||||
|
|
||||||
font = "Fira Sans Semibold" 11
|
font = "Fira Sans Semibold" 9
|
||||||
|
|
||||||
# The spacing between lines. If the height is smaller than the
|
# The spacing between lines. If the height is smaller than the
|
||||||
# font height, it will get raised to the font height.
|
# font height, it will get raised to the font height.
|
||||||
@ -181,7 +181,7 @@
|
|||||||
|
|
||||||
# Vertical alignment of message text and icon.
|
# Vertical alignment of message text and icon.
|
||||||
# Possible values are "top", "center" and "bottom".
|
# Possible values are "top", "center" and "bottom".
|
||||||
vertical_alignment = top
|
vertical_alignment = center
|
||||||
|
|
||||||
# Show age of message if message is older than show_age_threshold
|
# Show age of message if message is older than show_age_threshold
|
||||||
# seconds.
|
# seconds.
|
||||||
@ -323,21 +323,21 @@
|
|||||||
[urgency_low]
|
[urgency_low]
|
||||||
# IMPORTANT: colors have to be defined in quotation marks.
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
# Otherwise the "#" and following would be interpreted as a comment.
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
background = "#00000070"
|
background = "#000000CC"
|
||||||
foreground = "#888888"
|
foreground = "#888888"
|
||||||
timeout = 6
|
timeout = 6
|
||||||
# Icon for notifications with low urgency, uncomment to enable
|
# Icon for notifications with low urgency, uncomment to enable
|
||||||
#default_icon = /path/to/icon
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
[urgency_normal]
|
[urgency_normal]
|
||||||
background = "#00000070"
|
background = "#000000CC"
|
||||||
foreground = "#ffffff"
|
foreground = "#ffffff"
|
||||||
timeout = 6
|
timeout = 6
|
||||||
# Icon for notifications with normal urgency, uncomment to enable
|
# Icon for notifications with normal urgency, uncomment to enable
|
||||||
#default_icon = /path/to/icon
|
#default_icon = /path/to/icon
|
||||||
|
|
||||||
[urgency_critical]
|
[urgency_critical]
|
||||||
background = "#90000070"
|
background = "#900000CC"
|
||||||
foreground = "#ffffff"
|
foreground = "#ffffff"
|
||||||
frame_color = "#ffffff"
|
frame_color = "#ffffff"
|
||||||
timeout = 6
|
timeout = 6
|
||||||
|
45
hypr/conf/README.md
Normal file
45
hypr/conf/README.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# 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" />
|
@ -27,7 +27,7 @@ exec-once = hypridle
|
|||||||
exec-once = wl-paste --watch cliphist store
|
exec-once = wl-paste --watch cliphist store
|
||||||
|
|
||||||
# Initialize swww
|
# Initialize swww
|
||||||
exec-once = swww query || swww init
|
exec-once = swww init || swww-daemon --format xrgb
|
||||||
|
|
||||||
# Load last wallpaper and waybar with pywal colors
|
# Load last wallpaper and waybar with pywal colors
|
||||||
exec-once = ~/dotfiles/hypr/scripts/wallpaper.sh init
|
exec-once = ~/dotfiles/hypr/scripts/wallpaper.sh init
|
||||||
|
@ -5,3 +5,4 @@
|
|||||||
|
|
||||||
env = XCURSOR_SIZE,24
|
env = XCURSOR_SIZE,24
|
||||||
env = QT_QPA_PLATFORM,wayland
|
env = QT_QPA_PLATFORM,wayland
|
||||||
|
|
||||||
|
15
hypr/conf/environments/nvidia.conf
Normal file
15
hypr/conf/environments/nvidia.conf
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Environment Variables
|
||||||
|
# name: "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 = XDG_SESSION_TYPE,wayland
|
||||||
|
env = GBM_BACKEND,nvidia-drm
|
||||||
|
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||||
|
# env = __GL_VRR_ALLOWED,1
|
||||||
|
# env = WLR_DRM_NO_ATOMIC,1
|
@ -14,7 +14,7 @@ bind = $mainMod, period, exec, emote
|
|||||||
# Windows
|
# Windows
|
||||||
bind = $mainMod, Q, killactive
|
bind = $mainMod, Q, killactive
|
||||||
bind = $mainMod, F, fullscreen
|
bind = $mainMod, F, fullscreen
|
||||||
bind = $mainMod, E, exec, ~/dotfiles/scripts/filemanager.sh
|
bind = $mainMod, E, exec, ~/dotfiles/.settings/filemanager.sh
|
||||||
bind = $mainMod, T, togglefloating
|
bind = $mainMod, T, togglefloating
|
||||||
bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh
|
bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh
|
||||||
bind = $mainMod, J, togglesplit
|
bind = $mainMod, J, togglesplit
|
||||||
@ -28,13 +28,14 @@ bind = $mainMod SHIFT, right, resizeactive, 100 0
|
|||||||
bind = $mainMod SHIFT, left, resizeactive, -100 0
|
bind = $mainMod SHIFT, left, resizeactive, -100 0
|
||||||
bind = $mainMod SHIFT, up, resizeactive, 0 -100
|
bind = $mainMod SHIFT, up, resizeactive, 0 -100
|
||||||
bind = $mainMod SHIFT, down, resizeactive, 0 100
|
bind = $mainMod SHIFT, down, resizeactive, 0 100
|
||||||
|
bind = $mainMod, G, togglegroup
|
||||||
|
|
||||||
# Actions
|
# Actions
|
||||||
bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh
|
bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh
|
||||||
bind = $mainMod CTRL, Q, exec, wlogout
|
bind = $mainMod CTRL, Q, exec, wlogout
|
||||||
bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh
|
bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh
|
||||||
bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select
|
bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select
|
||||||
bind = $mainMod CTRL, RETURN, exec, rofi -show drun
|
bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i
|
||||||
bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh
|
bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh
|
||||||
bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh
|
bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh
|
||||||
bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh
|
bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh
|
||||||
@ -42,7 +43,7 @@ bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh
|
|||||||
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh
|
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh
|
||||||
bind = $mainMod, V, 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, T, exec, ~/dotfiles/waybar/themeswitcher.sh
|
||||||
bind = $mainMod CTRL, S, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/start-settings.sh
|
bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
||||||
|
|
||||||
# Workspaces
|
# Workspaces
|
||||||
bind = $mainMod, 1, workspace, 1
|
bind = $mainMod, 1, workspace, 1
|
||||||
@ -81,7 +82,7 @@ bind = , XF86AudioNext, exec, playerctl next
|
|||||||
bind = , XF86AudioPrev, exec, playerctl previous
|
bind = , XF86AudioPrev, exec, playerctl previous
|
||||||
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||||
bind = , XF86Calculator, exec, qalculate-gtk
|
bind = , XF86Calculator, exec, qalculate-gtk
|
||||||
bind = , XF86Lock, exec, swaylock
|
bind = , XF86Lock, exec, hyprlock
|
||||||
bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/settings/settings.sh
|
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
|
||||||
|
@ -9,6 +9,7 @@ input {
|
|||||||
kb_options =
|
kb_options =
|
||||||
numlock_by_default = true
|
numlock_by_default = true
|
||||||
follow_mouse = 1
|
follow_mouse = 1
|
||||||
|
mouse_refocus=false
|
||||||
touchpad {
|
touchpad {
|
||||||
natural_scroll = false
|
natural_scroll = false
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,3 @@ master {
|
|||||||
gestures {
|
gestures {
|
||||||
workspace_swipe = false
|
workspace_swipe = false
|
||||||
}
|
}
|
||||||
|
|
||||||
device:epic-mouse-v1 {
|
|
||||||
sensitivity = -0.5
|
|
||||||
}
|
|
||||||
|
@ -4,18 +4,22 @@
|
|||||||
|
|
||||||
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 = nomaximizerequest,class:(com.ml4w.welcome)
|
|
||||||
windowrulev2 = nofullscreenrequest,class:(com.ml4w.welcome)
|
|
||||||
windowrulev2 = center,class:(com.ml4w.welcome)
|
windowrulev2 = center,class:(com.ml4w.welcome)
|
||||||
|
|
||||||
windowrulev2 = float,class:(ml4w-welcome.py)
|
windowrulev2 = float,class:(ml4w-welcome.py)
|
||||||
windowrulev2 = size 400 500,class:(ml4w-welcome.py)
|
windowrulev2 = size 400 500,class:(ml4w-welcome.py)
|
||||||
windowrulev2 = nomaximizerequest,class:(ml4w-welcome.py)
|
|
||||||
windowrulev2 = nofullscreenrequest,class:(ml4w-welcome.py)
|
|
||||||
windowrulev2 = center,class:(ml4w-welcome.py)
|
windowrulev2 = center,class:(ml4w-welcome.py)
|
||||||
|
|
||||||
|
windowrulev2 = float,class:(com.ml4w.dotfilessettings)
|
||||||
|
windowrulev2 = size 700 600,class:(com.ml4w.dotfilessettings)
|
||||||
|
windowrulev2 = move 10% 20%,class:(com.ml4w.dotfilessettings)
|
||||||
|
|
||||||
|
windowrulev2 = float,class:(ml4w-dotfiles-settings.py)
|
||||||
|
windowrulev2 = size 400 500,class:(ml4w-dotfiles-settings.py)
|
||||||
|
windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py)
|
||||||
|
|
||||||
windowrulev2 = float,class:(dotfiles-floating)
|
windowrulev2 = float,class:(dotfiles-floating)
|
||||||
windowrulev2 = size 1000 800,class:(dotfiles-floating)
|
windowrulev2 = size 1000 800,class:(dotfiles-floating)
|
||||||
windowrulev2 = nomaximizerequest,class:(dotfiles-floating)
|
|
||||||
windowrulev2 = nofullscreenrequest,class:(dotfiles-floating)
|
|
||||||
windowrulev2 = center,class:(dotfiles-floating)
|
windowrulev2 = center,class:(dotfiles-floating)
|
||||||
|
|
||||||
|
env = APPIMAGELAUNCHER_DISABLE,1
|
6
hypr/conf/monitors/highres.conf
Normal file
6
hypr/conf/monitors/highres.conf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# -----------------------------------------------------
|
||||||
|
# Monitor Setup
|
||||||
|
# name: "Highres"
|
||||||
|
# -----------------------------------------------------
|
||||||
|
|
||||||
|
monitor=,highres,auto,1
|
@ -8,3 +8,4 @@ windowrule = tile,^(Chromium)$
|
|||||||
windowrule = float,^(pavucontrol)$
|
windowrule = float,^(pavucontrol)$
|
||||||
windowrule = float,^(blueman-manager)$
|
windowrule = float,^(blueman-manager)$
|
||||||
windowrule = float,^(nm-connection-editor)$
|
windowrule = float,^(nm-connection-editor)$
|
||||||
|
windowrule = float,^(qalculate-gtk)$
|
||||||
|
@ -5,25 +5,36 @@
|
|||||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||||
# |___/|_|
|
# |___/|_|
|
||||||
#
|
#
|
||||||
|
# Version 2.8.3
|
||||||
|
# DO NOT REMOVE THE REPLACEMENT COMMENTS
|
||||||
|
# REQUIRED BY THE ML4W SETTINGS APP
|
||||||
|
|
||||||
general {
|
general {
|
||||||
# lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
|
ignore_dbus_inhibit = false
|
||||||
# unlock_cmd = notify-send "unlock!" # same as above, but unlock
|
|
||||||
# before_sleep_cmd = notify-send "Zzz" # command ran before sleep
|
|
||||||
# after_sleep_cmd = notify-send "Awake!" # command ran after sleep
|
|
||||||
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Screenlock
|
# Screenlock
|
||||||
listener {
|
listener {
|
||||||
timeout = 600 # in seconds
|
# HYPRLOCK TIMEOUT
|
||||||
on-timeout = hyprlock # command to run when timeout has passed
|
timeout = 600
|
||||||
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
|
# HYPRLOCK ONTIMEOUT
|
||||||
|
on-timeout = hyprlock
|
||||||
|
}
|
||||||
|
|
||||||
|
# dpms
|
||||||
|
listener {
|
||||||
|
# DPMS TIMEOUT
|
||||||
|
timeout = 660
|
||||||
|
# DPMS ONTIMEOUT
|
||||||
|
on-timeout = hyprctl dispatch dpms off
|
||||||
|
# DPMS ONRESUME
|
||||||
|
on-resume = hyprctl dispatch dpms on
|
||||||
}
|
}
|
||||||
|
|
||||||
# Suspend
|
# Suspend
|
||||||
listener {
|
listener {
|
||||||
timeout = 660 # in seconds
|
# SUSPEND TIMEOUT
|
||||||
on-timeout = systemctl suspend # command to run when timeout has passed
|
timeout = 1800
|
||||||
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
|
#SUSPEND ONTIMEOUT
|
||||||
|
on-timeout = systemctl suspend
|
||||||
}
|
}
|
||||||
|
@ -8,32 +8,34 @@
|
|||||||
|
|
||||||
background {
|
background {
|
||||||
monitor =
|
monitor =
|
||||||
path = $HOME/dotfiles/.settings/lockscreen.png # only png supported for now
|
path = $HOME/.cache/blurred_wallpaper.png # only png supported for now
|
||||||
color = rgba(25, 20, 20, 1.0)
|
|
||||||
|
|
||||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
|
||||||
blur_passes = 4 # 0 disables blurring
|
|
||||||
blur_size = 2
|
|
||||||
noise = 0.0117
|
|
||||||
contrast = 0.8916
|
|
||||||
brightness = 0.8172
|
|
||||||
vibrancy = 0.1696
|
|
||||||
vibrancy_darkness = 0.0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
input-field {
|
input-field {
|
||||||
monitor =
|
monitor =
|
||||||
size = 200, 50
|
size = 200, 50
|
||||||
outline_thickness = 1
|
outline_thickness = 3
|
||||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||||||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||||
dots_center = true
|
dots_center = true
|
||||||
outer_color = rgb(000000)
|
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
||||||
|
outer_color = rgb(151515)
|
||||||
inner_color = rgb(200, 200, 200)
|
inner_color = rgb(200, 200, 200)
|
||||||
font_color = rgb(10, 10, 10)
|
font_color = rgb(10, 10, 10)
|
||||||
fade_on_empty = true
|
fade_on_empty = true
|
||||||
|
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
|
||||||
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||||
hide_input = false
|
hide_input = false
|
||||||
|
rounding = -1 # -1 means complete rounding (circle/oval)
|
||||||
|
check_color = rgb(204, 136, 34)
|
||||||
|
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
|
||||||
|
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
|
||||||
|
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||||
|
capslock_color = -1
|
||||||
|
numlock_color = -1
|
||||||
|
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||||
|
invert_numlock = false # change color if numlock is off
|
||||||
|
swap_font_color = false # see below
|
||||||
position = 0, -20
|
position = 0, -20
|
||||||
halign = center
|
halign = center
|
||||||
valign = center
|
valign = center
|
||||||
@ -41,12 +43,26 @@ input-field {
|
|||||||
|
|
||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = Enter your password to unlock
|
text = cmd[update:1000] echo "$TIME"
|
||||||
color = rgba(200, 200, 200, 1.0)
|
color = rgba(200, 200, 200, 1.0)
|
||||||
font_size = 25
|
font_size = 55
|
||||||
font_family = Noto Sans
|
font_family = Fira Semibold
|
||||||
|
position = -100, -200
|
||||||
position = 0, 200
|
halign = right
|
||||||
halign = center
|
valign = bottom
|
||||||
valign = center
|
shadow_passes = 5
|
||||||
|
shadow_size = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
monitor =
|
||||||
|
text = $USER
|
||||||
|
color = rgba(200, 200, 200, 1.0)
|
||||||
|
font_size = 20
|
||||||
|
font_family = Fira Semibold
|
||||||
|
position = -100, 160
|
||||||
|
halign = right
|
||||||
|
valign = bottom
|
||||||
|
shadow_passes = 5
|
||||||
|
shadow_size = 10
|
||||||
}
|
}
|
@ -30,4 +30,5 @@ keybinds=$(echo "$keybinds" | sed 's/$mainMod/SUPER/g'| sed 's/,\([^,]*\)$/ = \
|
|||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
# Show keybindings in rofi
|
# Show keybindings in rofi
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
|
sleep 0.2
|
||||||
rofi -dmenu -i -replace -p "Keybinds" -config ~/dotfiles/rofi/config-compact.rasi <<< "$keybinds"
|
rofi -dmenu -i -replace -p "Keybinds" -config ~/dotfiles/rofi/config-compact.rasi <<< "$keybinds"
|
2
hypr/scripts/loadconfig.sh
Executable file
2
hypr/scripts/loadconfig.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
hyprctl reload
|
@ -21,12 +21,16 @@ choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/confi
|
|||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
$option2)
|
$option2)
|
||||||
grim -g "$(slurp)" - | swappy -f -
|
grim -g "$(slurp)" "$DIR$NAME"
|
||||||
notify-send "Screenshot created" "Mode: Selected area"
|
xclip -selection clipboard -t image/png -i "$DIR$NAME"
|
||||||
|
notify-send "Screenshot created and copied to clipboard" "Mode: Selected area"
|
||||||
|
swappy -f "$DIR$NAME"
|
||||||
;;
|
;;
|
||||||
$option3)
|
$option3)
|
||||||
sleep 3
|
sleep 3
|
||||||
grim - | swappy -f -
|
grim "$DIR$NAME"
|
||||||
notify-send "Screenshot created" "Mode: Fullscreen"
|
xclip -selection clipboard -t image/png -i "$DIR$NAME"
|
||||||
|
notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen"
|
||||||
|
swappy -f "$DIR$NAME"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
pgrep_output=$(pgrep swayidle)
|
|
||||||
pgrep_arr=($pgrep_output)
|
|
||||||
if [[ "${#pgrep_arr[@]}" == "1" ]] || [[ "${#pgrep_arr[@]}" == "0" ]]; then
|
|
||||||
echo "Swayidle is not running. Starting Swayidle."
|
|
||||||
./lockscreentime.sh
|
|
||||||
else
|
|
||||||
echo "Swayidle is running. Killing swayidle."
|
|
||||||
killall swayidle
|
|
||||||
fi
|
|
@ -11,7 +11,12 @@
|
|||||||
|
|
||||||
# Cache file for holding the current wallpaper
|
# Cache file for holding the current wallpaper
|
||||||
cache_file="$HOME/.cache/current_wallpaper"
|
cache_file="$HOME/.cache/current_wallpaper"
|
||||||
|
blurred="$HOME/.cache/blurred_wallpaper.png"
|
||||||
rasi_file="$HOME/.cache/current_wallpaper.rasi"
|
rasi_file="$HOME/.cache/current_wallpaper.rasi"
|
||||||
|
blur_file="$HOME/dotfiles/.settings/blur.sh"
|
||||||
|
|
||||||
|
blur="50x30"
|
||||||
|
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
|
||||||
@ -31,6 +36,7 @@ case $1 in
|
|||||||
|
|
||||||
# Load wallpaper from .cache of last session
|
# Load wallpaper from .cache of last session
|
||||||
"init")
|
"init")
|
||||||
|
sleep 1
|
||||||
if [ -f $cache_file ]; then
|
if [ -f $cache_file ]; then
|
||||||
wal -q -i $current_wallpaper
|
wal -q -i $current_wallpaper
|
||||||
else
|
else
|
||||||
@ -40,11 +46,11 @@ case $1 in
|
|||||||
|
|
||||||
# Select wallpaper with rofi
|
# Select wallpaper with rofi
|
||||||
"select")
|
"select")
|
||||||
|
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 "$HOME/wallpaper" -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$HOME/wallpaper/${rfile}\n"
|
||||||
done | rofi -dmenu -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
|
||||||
@ -63,13 +69,7 @@ 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"
|
echo ":: Wallpaper: $wallpaper"
|
||||||
|
|
||||||
# -----------------------------------------------------
|
|
||||||
# Write selected wallpaper into .cache files
|
|
||||||
# -----------------------------------------------------
|
|
||||||
echo "$wallpaper" > "$cache_file"
|
|
||||||
echo "* { current-image: url(\"$wallpaper\", height); }" > "$rasi_file"
|
|
||||||
|
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
# get wallpaper image name
|
# get wallpaper image name
|
||||||
@ -95,10 +95,44 @@ swww img $wallpaper \
|
|||||||
--transition-duration=0.7 \
|
--transition-duration=0.7 \
|
||||||
--transition-pos "$( hyprctl cursorpos )"
|
--transition-pos "$( hyprctl cursorpos )"
|
||||||
|
|
||||||
|
if [ "$1" == "init" ] ;then
|
||||||
|
echo ":: Init"
|
||||||
|
else
|
||||||
|
sleep 1
|
||||||
|
dunstify "Changing wallpaper ..." "with image $newwall" -h int:value:33 -h string:x-dunst-stack-tag:wallpaper
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Created blurred wallpaper
|
||||||
|
# -----------------------------------------------------
|
||||||
|
if [ "$1" == "init" ] ;then
|
||||||
|
echo ":: Init"
|
||||||
|
else
|
||||||
|
dunstify "Creating blurred version ..." "with image $newwall" -h int:value:66 -h string:x-dunst-stack-tag:wallpaper
|
||||||
|
fi
|
||||||
|
|
||||||
|
magick $wallpaper -resize 75% $blurred
|
||||||
|
echo ":: Resized to 75%"
|
||||||
|
if [ ! "$blur" == "0x0" ] ;then
|
||||||
|
magick $blurred -blur $blur $blurred
|
||||||
|
echo ":: Blurred"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# -----------------------------------------------------
|
||||||
|
# Write selected wallpaper into .cache files
|
||||||
|
# -----------------------------------------------------
|
||||||
|
echo "$wallpaper" > "$cache_file"
|
||||||
|
echo "* { current-image: url(\"$blurred\", height); }" > "$rasi_file"
|
||||||
|
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
# Send notification
|
# Send notification
|
||||||
# -----------------------------------------------------
|
# -----------------------------------------------------
|
||||||
sleep 1
|
|
||||||
notify-send "Colors and Wallpaper updated" "with image $newwall"
|
if [ "$1" == "init" ] ;then
|
||||||
|
echo ":: Init"
|
||||||
|
else
|
||||||
|
dunstify "Wallpaper procedure complete!" "with image $newwall" -h int:value:100 -h string:x-dunst-stack-tag:wallpaper
|
||||||
|
fi
|
||||||
|
|
||||||
echo "DONE!"
|
echo "DONE!"
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
.gitignore
|
|
||||||
.git
|
|
||||||
.dev
|
|
||||||
README.md
|
|
||||||
CHANGELOG
|
|
||||||
LICENSE
|
|
||||||
install.sh
|
|
||||||
create.sh
|
|
||||||
.target.sh
|
|
@ -1,377 +0,0 @@
|
|||||||
# Settings Library
|
|
||||||
|
|
||||||
# Load module
|
|
||||||
_getModules() {
|
|
||||||
clear
|
|
||||||
|
|
||||||
# Get path to parent folder to go back
|
|
||||||
back="$(dirname "$1")"
|
|
||||||
|
|
||||||
# Load module config
|
|
||||||
if [ -f $1/init.sh ]; then
|
|
||||||
source $1/init.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Load module config
|
|
||||||
if [ -f $1/config.sh ]; then
|
|
||||||
source $1/config.sh
|
|
||||||
else
|
|
||||||
echo "ERROR: config.sh doesn't exists in $1"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
clickArr+=("/")
|
|
||||||
clickArr+=("$name")
|
|
||||||
echo "You are here:" ${clickArr[@]}
|
|
||||||
|
|
||||||
# Load module
|
|
||||||
if [ -f $1/module.sh ]; then
|
|
||||||
source $1/module.sh
|
|
||||||
else
|
|
||||||
echo "ERROR: module.sh doesn't exists in $1"
|
|
||||||
# exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Read folder
|
|
||||||
modules=$(find $1 -maxdepth 1 -type d)
|
|
||||||
count=0
|
|
||||||
|
|
||||||
# Check if subfolders exists
|
|
||||||
for value in $modules
|
|
||||||
do
|
|
||||||
if [[ ! "$value" == "$1" ]]; then
|
|
||||||
# Check if custom version of module exists and skip original module
|
|
||||||
if [ ! -d "$value-custom" ]; then
|
|
||||||
((count++))
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# Create Navigation
|
|
||||||
unset modulesArr
|
|
||||||
if [[ ! $count == 0 ]]; then
|
|
||||||
|
|
||||||
# Get modules folders
|
|
||||||
for value in $modules
|
|
||||||
do
|
|
||||||
if [[ ! "$value" == "$1" ]]; then
|
|
||||||
if [[ ! $value == *"-custom" ]]; then
|
|
||||||
if [ ! -d "$value-custom" ]; then
|
|
||||||
if [ -f $value/config.sh ]; then
|
|
||||||
source $value/config.sh
|
|
||||||
modulesArr+=("$order:$name:$value")
|
|
||||||
else
|
|
||||||
echo "ERROR: config.sh doesn't exists in $value"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ -f $value-custom/config.sh ]; then
|
|
||||||
source $value-custom/config.sh
|
|
||||||
modulesArr+=("$order:$name:$value-custom")
|
|
||||||
else
|
|
||||||
echo "ERROR: config.sh doesn't exists in $value-custom"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
# Sort array by order
|
|
||||||
IFS=$'\n' modulesArr=($(sort <<<"${modulesArr[*]}"))
|
|
||||||
unset nameList
|
|
||||||
unset pathList
|
|
||||||
|
|
||||||
# Output
|
|
||||||
for value in "${modulesArr[@]}"
|
|
||||||
do
|
|
||||||
name="$(cut -d':' -f2 <<<"$value")"
|
|
||||||
path="$(cut -d':' -f3 <<<"$value")"
|
|
||||||
nameList+=("$name")
|
|
||||||
pathList+=("$path")
|
|
||||||
done
|
|
||||||
if [[ "$back" == "$installFolder/settings" ]]; then
|
|
||||||
nameList+=("EXIT")
|
|
||||||
else
|
|
||||||
nameList+=("BACK")
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
selected=$(gum choose --height 12 ${nameList[@]})
|
|
||||||
case $selected in
|
|
||||||
BACK)
|
|
||||||
_goBack
|
|
||||||
break;;
|
|
||||||
EXIT)
|
|
||||||
clear
|
|
||||||
exit
|
|
||||||
break;;
|
|
||||||
* )
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [ ! -z $selected ] ;then
|
|
||||||
for i in "${!nameList[@]}"; do
|
|
||||||
if [[ "${nameList[$i]}" = "${selected}" ]]; then
|
|
||||||
nameIndex="${i}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
current="${pathList[$nameIndex]}"
|
|
||||||
_getModules "$current"
|
|
||||||
else
|
|
||||||
if [[ "$back" == "$installFolder/settings" ]]; then
|
|
||||||
clear
|
|
||||||
exit
|
|
||||||
else
|
|
||||||
_goBack
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# _getConfSelector conf/monitor.conf conf/monitors/
|
|
||||||
_getConfSelector() {
|
|
||||||
cur=$(cat $installFolder/conf/$1)
|
|
||||||
echo "Folder: $installFolder/conf/$2"
|
|
||||||
echo "In use: ${cur##*/}"
|
|
||||||
echo ""
|
|
||||||
echo "Select a file to load (RETURN = Confirm, ESC = Cancel/Back):"
|
|
||||||
echo ""
|
|
||||||
sel=$(gum choose $(ls $installFolder/conf/$2))
|
|
||||||
|
|
||||||
if [ -z $sel ] ;then
|
|
||||||
_goBack
|
|
||||||
fi
|
|
||||||
echo "File $sel selected."
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
_getConfEditor() {
|
|
||||||
selected=$(gum choose "EXECUTE" "EDIT" "COPY" "DELETE" "CANCEL")
|
|
||||||
case $selected in
|
|
||||||
EXECUTE)
|
|
||||||
_writeConf $1 $2 $3
|
|
||||||
break;;
|
|
||||||
EDIT)
|
|
||||||
vim $installFolder/conf/$3/$2
|
|
||||||
sleep 1
|
|
||||||
_reloadModule
|
|
||||||
break;;
|
|
||||||
COPY)
|
|
||||||
echo "Define the new file name. Please use *.conf"
|
|
||||||
filename=$(gum input --value="custom-${sel##*/}" --placeholder "Enter your filename")
|
|
||||||
if [ -z $filename ] ;then
|
|
||||||
echo "ERROR: No filename specified."
|
|
||||||
else
|
|
||||||
if ! [[ $filename =~ [^\s]+.conf ]]; then
|
|
||||||
echo "ERROR: Wrong filename format. Please use *.conf"
|
|
||||||
else
|
|
||||||
if [ -f $(dirname $sel)/$filename ] ;then
|
|
||||||
echo "ERROR: File already exists."
|
|
||||||
else
|
|
||||||
cp $installFolder/conf/$3/$sel $installFolder/conf/$3/$filename
|
|
||||||
_reloadModule
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
_getConfEditor $1 $2 $3
|
|
||||||
break;;
|
|
||||||
DELETE)
|
|
||||||
if gum confirm "Do you really want to delete the file $sel?" ;then
|
|
||||||
rm $installFolder/conf/$3/$sel
|
|
||||||
_reloadModule
|
|
||||||
else
|
|
||||||
_getConfEditor $1 $2 $3
|
|
||||||
fi
|
|
||||||
break;;
|
|
||||||
* )
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# _writeConf conf/monitor.conf $sel
|
|
||||||
_writeConf() {
|
|
||||||
if [ ! -z $2 ] ;then
|
|
||||||
editsel=$(echo "$installFolder/conf/$3/$2" | sed "s+"\/home\/$USER"+~+")
|
|
||||||
echo "source = $editsel" > $installFolder/conf/$1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# _replaceInFile $startMarket $endMarker $customtext $targetFile
|
|
||||||
_replaceInFile() {
|
|
||||||
|
|
||||||
# Set function parameters
|
|
||||||
start_string=$1
|
|
||||||
end_string=$2
|
|
||||||
new_string="$3"
|
|
||||||
file_path=$4
|
|
||||||
|
|
||||||
# Counters
|
|
||||||
start_line_counter=0
|
|
||||||
end_line_counter=0
|
|
||||||
start_found=0
|
|
||||||
end_found=0
|
|
||||||
|
|
||||||
if [ -f $file_path ] ;then
|
|
||||||
|
|
||||||
# Detect Start String
|
|
||||||
while read -r line
|
|
||||||
do
|
|
||||||
((start_line_counter++))
|
|
||||||
if [[ $line = *$start_string* ]]; then
|
|
||||||
# echo "Start found in $start_line_counter"
|
|
||||||
start_found=$start_line_counter
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done < "$file_path"
|
|
||||||
|
|
||||||
# Detect End String
|
|
||||||
while read -r line
|
|
||||||
do
|
|
||||||
((end_line_counter++))
|
|
||||||
if [[ $line = *$end_string* ]]; then
|
|
||||||
# echo "End found in $end_line_counter"
|
|
||||||
end_found=$end_line_counter
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done < "$file_path"
|
|
||||||
|
|
||||||
# Check that deliminters exists
|
|
||||||
if [[ "$start_found" == "0" ]] ;then
|
|
||||||
echo "ERROR: Start deliminter not found."
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
if [[ "$end_found" == "0" ]] ;then
|
|
||||||
echo "ERROR: End deliminter not found."
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Replace text between delimiters
|
|
||||||
if [[ ! "$start_found" == "0" ]] && [[ ! "$end_found" == "0" ]] && [ "$start_found" -le "$end_found" ] ;then
|
|
||||||
# Remove the old line
|
|
||||||
((start_found++))
|
|
||||||
|
|
||||||
if [ ! "$start_found" == "$end_found" ] ;then
|
|
||||||
((end_found--))
|
|
||||||
sed -i "$start_found,$end_found d" $file_path
|
|
||||||
fi
|
|
||||||
# Add the new line
|
|
||||||
sed -i "$start_found i $new_string" $file_path
|
|
||||||
else
|
|
||||||
echo "ERROR: Delimiters syntax."
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "ERROR: Target file not found."
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# replaceLineInFile $findText $customtext $targetFile
|
|
||||||
_replaceLineInFile() {
|
|
||||||
# Set function parameters
|
|
||||||
find_string="$1"
|
|
||||||
new_string="$2"
|
|
||||||
file_path=$3
|
|
||||||
|
|
||||||
# Counters
|
|
||||||
find_line_counter=0
|
|
||||||
line_found=0
|
|
||||||
|
|
||||||
if [ -f $file_path ] ;then
|
|
||||||
|
|
||||||
# Detect Line
|
|
||||||
while read -r line
|
|
||||||
do
|
|
||||||
((find_line_counter++))
|
|
||||||
if [[ $line = *$find_string* ]]; then
|
|
||||||
# echo "Start found in $start_line_counter"
|
|
||||||
line_found=$find_line_counter
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done < "$file_path"
|
|
||||||
|
|
||||||
if [[ ! "$line_found" == "0" ]] ;then
|
|
||||||
|
|
||||||
#Remove the line
|
|
||||||
sed -i "$line_found d" $file_path
|
|
||||||
|
|
||||||
# Add the new line
|
|
||||||
sed -i "$line_found i $new_string" $file_path
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "ERROR: Target line not found."
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
echo "ERROR: Target file not found."
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# _writeSettings $settingsFile $customtext
|
|
||||||
_writeSettings() {
|
|
||||||
if [ ! -f $1 ] ;then
|
|
||||||
touch $1
|
|
||||||
fi
|
|
||||||
echo "$2" > $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Return the version of the hyprland-settings script
|
|
||||||
_getVersion() {
|
|
||||||
echo $version
|
|
||||||
}
|
|
||||||
|
|
||||||
# Write the header to a page
|
|
||||||
_getHeader() {
|
|
||||||
figlet -w 100 "$1"
|
|
||||||
if [ ! -z "$2" ]; then
|
|
||||||
echo "by $2"
|
|
||||||
fi
|
|
||||||
echo ""
|
|
||||||
}
|
|
||||||
|
|
||||||
# Update the breadcrumb and opens parent page
|
|
||||||
_goBack() {
|
|
||||||
unset clickArr[-1]
|
|
||||||
unset clickArr[-1]
|
|
||||||
unset clickArr[-1]
|
|
||||||
unset clickArr[-1]
|
|
||||||
_getModules "$back"
|
|
||||||
}
|
|
||||||
|
|
||||||
_reloadModule() {
|
|
||||||
unset clickArr[-1]
|
|
||||||
unset clickArr[-1]
|
|
||||||
_getModules "$current"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Replace the variables in a template and publish to location
|
|
||||||
_replaceByTemplate() {
|
|
||||||
template=$1
|
|
||||||
variables=$2
|
|
||||||
values=$3
|
|
||||||
publishto=$4
|
|
||||||
}
|
|
||||||
|
|
||||||
# Back Button
|
|
||||||
_getBackBtn() {
|
|
||||||
echo ""
|
|
||||||
gum choose "Back"
|
|
||||||
_goBack
|
|
||||||
}
|
|
||||||
|
|
||||||
_getBackRepeatBtn() {
|
|
||||||
echo ""
|
|
||||||
selected=$(gum choose "REPEAT" "BACK")
|
|
||||||
case $selected in
|
|
||||||
BACK)
|
|
||||||
_goBack
|
|
||||||
break;;
|
|
||||||
REPEAT)
|
|
||||||
_getModules "$current"
|
|
||||||
break;;
|
|
||||||
* )
|
|
||||||
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
version="2.0"
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Animations"
|
|
||||||
order=1
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector animation.conf animations
|
|
||||||
_getConfEditor animation.conf $sel animations
|
|
||||||
_reloadModule
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Appearance"
|
|
||||||
order=10
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Decorations"
|
|
||||||
order=1
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector decoration.conf decorations
|
|
||||||
_getConfEditor decoration.conf $sel decorations
|
|
||||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
|
||||||
_reloadModule
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name"
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Windows"
|
|
||||||
order=1
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector window.conf windows
|
|
||||||
_getConfEditor window.conf $sel windows
|
|
||||||
_reloadModule
|
|
@ -1,6 +0,0 @@
|
|||||||
name="Settings"
|
|
||||||
description="The settings script will help you to configure your Hyprland installation."
|
|
||||||
author="Stephan Raabe ML4W"
|
|
||||||
order=1
|
|
||||||
email="mail@ml4w.com"
|
|
||||||
homepage="https://gitlab.com/stephan-raabe/dotfiles"
|
|
@ -1,4 +0,0 @@
|
|||||||
name="Keybindings"
|
|
||||||
order=20
|
|
||||||
author="Stephan Raabe ML4W"
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector keybinding.conf keybindings
|
|
||||||
_getConfEditor keybinding.conf $sel keybindings
|
|
||||||
_reloadModule
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
echo "ML4W dotfiles Version" $(cat $HOME/dotfiles/.version/name)
|
|
||||||
echo
|
|
||||||
echo "$homepage ($email)"
|
|
||||||
echo
|
|
||||||
echo $description
|
|
@ -1,2 +0,0 @@
|
|||||||
name="System"
|
|
||||||
order=30
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Custom"
|
|
||||||
order=10
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
vim ~/dotfiles/hypr/conf/custom.conf
|
|
||||||
_goBack
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Browser"
|
|
||||||
order=1
|
|
@ -1,28 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Define the start command to start your preferred browser (Default: chromium)."
|
|
||||||
echo
|
|
||||||
echo "Executable (if installed) are:"
|
|
||||||
echo "chromium for Chromium"
|
|
||||||
echo "google-chrome-stable for Google Chrome"
|
|
||||||
echo "brave for Brave"
|
|
||||||
echo "firefox for Firefox"
|
|
||||||
echo
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/.settings/browser.sh"
|
|
||||||
|
|
||||||
# Current Value
|
|
||||||
echo "Current Value: $(cat $targetFile)"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum input --placeholder "Command to start")
|
|
||||||
if [ ! -z $customvalue ] ;then
|
|
||||||
# Write into file
|
|
||||||
echo "$customvalue" > $targetFile
|
|
||||||
else
|
|
||||||
echo "Please define a command"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
_goBack
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Default Applications"
|
|
||||||
order=1
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Filemanager"
|
|
||||||
order=1
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Define the start command to start the filemanager (Default: thunar)."
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/.settings/filemanager.sh"
|
|
||||||
|
|
||||||
# Current Value
|
|
||||||
echo "Current Value: $(cat $targetFile)"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum input --placeholder "Command to start")
|
|
||||||
if [ ! -z $customvalue ] ;then
|
|
||||||
# Write into file
|
|
||||||
echo "$customvalue" > $targetFile
|
|
||||||
else
|
|
||||||
echo "Please define a command"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
_goBack
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name"
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Network"
|
|
||||||
order=1
|
|
@ -1,25 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Define the start command to start the networkmanager (Must be installed on your system)."
|
|
||||||
echo "(Default: nm-connection-editor)"
|
|
||||||
echo "Possible values: alacritty -e nmtui, nm-connection-editor, etc."
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/.settings/networkmanager.sh"
|
|
||||||
|
|
||||||
# Current Value
|
|
||||||
echo "Current Value: $(cat $targetFile)"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum input --placeholder "Command to start")
|
|
||||||
if [ ! -z $customvalue ] ;then
|
|
||||||
# Write into file
|
|
||||||
echo "$customvalue" > $targetFile
|
|
||||||
else
|
|
||||||
echo "Please define a command"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
_goBack
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Software"
|
|
||||||
order=1
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Define the start command to start the software manager (Default: alacritty -e pacseek)."
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/.settings/software.sh"
|
|
||||||
|
|
||||||
# Current Value
|
|
||||||
echo "Current Value: $(cat $targetFile)"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum input --placeholder "Command to start")
|
|
||||||
if [ ! -z $customvalue ] ;then
|
|
||||||
# Write into file
|
|
||||||
echo "$customvalue" > $targetFile
|
|
||||||
else
|
|
||||||
echo "Please define a command"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
_goBack
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Terminal"
|
|
||||||
order=1
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Define the command to open the terminal (Default: alacritty)."
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/.settings/terminal.sh"
|
|
||||||
|
|
||||||
# Current Value
|
|
||||||
echo "Current Value: $(cat $targetFile)"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum input --placeholder "Command to start")
|
|
||||||
if [ ! -z $customvalue ] ;then
|
|
||||||
# Write into file
|
|
||||||
echo "$customvalue" > $targetFile
|
|
||||||
else
|
|
||||||
echo "Please define a command"
|
|
||||||
sleep 1
|
|
||||||
fi
|
|
||||||
_goBack
|
|
||||||
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Environment"
|
|
||||||
order=05
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector environment.conf environments
|
|
||||||
_getConfEditor environment.conf $sel environments
|
|
||||||
_reloadModule
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Keyboard"
|
|
||||||
order=30
|
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name"
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Natural Scrolling"
|
|
||||||
order=1
|
|
@ -1,31 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Enable/Disable the natural scrolling for touchpads."
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/hypr/conf/keyboard.conf"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/keyboard_naturalscroll"
|
|
||||||
|
|
||||||
# Define Markers
|
|
||||||
findMarker="natural_scroll"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum choose "Enable" "Disable")
|
|
||||||
|
|
||||||
if [ ! -z $customvalue ]; then
|
|
||||||
if [ "$customvalue" == "Enable" ] ;then
|
|
||||||
customtext=" natural_scroll = true"
|
|
||||||
else
|
|
||||||
customtext=" natural_scroll = false"
|
|
||||||
fi
|
|
||||||
_replaceLineInFile "$findMarker" "$customtext" "$targetFile"
|
|
||||||
_writeSettings "$settingsFile" "$customtext"
|
|
||||||
echo "Keyboard settings changed."
|
|
||||||
sleep 2
|
|
||||||
_goBack
|
|
||||||
else
|
|
||||||
echo "ERROR: Define a value."
|
|
||||||
sleep 2
|
|
||||||
_goBack
|
|
||||||
fi
|
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name"
|
|
@ -1,3 +0,0 @@
|
|||||||
name="Monitor"
|
|
||||||
order=01
|
|
||||||
author="Stephan Raabe ML4W"
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector monitor.conf monitors
|
|
||||||
_getConfEditor monitor.conf $sel monitors
|
|
||||||
_reloadModule
|
|
@ -1,2 +0,0 @@
|
|||||||
name="nw-applet "
|
|
||||||
order=1
|
|
@ -1,35 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Enable or disable the network manager applet (nw-applet) in the Systray."
|
|
||||||
echo "(nw-applet must be installed on your system)"
|
|
||||||
echo "IMPORTANT: Please reboot your system after a change."
|
|
||||||
echo
|
|
||||||
# Define File
|
|
||||||
targetFile1="$HOME/dotfiles/hypr/conf/autostart.conf"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_nmapplet"
|
|
||||||
|
|
||||||
# Define Markers
|
|
||||||
startMarker="START NM APPLET"
|
|
||||||
endMarker="END NM APPLET"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum choose "Enable" "Disable")
|
|
||||||
|
|
||||||
if [ ! -z $customvalue ]; then
|
|
||||||
if [ "$customvalue" == "Enable" ] ;then
|
|
||||||
customtext="exec-once = nm-applet"
|
|
||||||
else
|
|
||||||
customtext="# exec-once = nm-applet"
|
|
||||||
fi
|
|
||||||
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile1
|
|
||||||
_writeSettings $settingsFile $customtext
|
|
||||||
|
|
||||||
# Reload Waybar
|
|
||||||
_goBack
|
|
||||||
else
|
|
||||||
echo "ERROR: Define a value."
|
|
||||||
sleep 2
|
|
||||||
_goBack
|
|
||||||
fi
|
|
@ -1,4 +0,0 @@
|
|||||||
name="Windowrules"
|
|
||||||
order=09
|
|
||||||
author="Stephan Raabe ML4W"
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
sel=""
|
|
||||||
_getConfSelector windowrule.conf windowrules
|
|
||||||
_getConfEditor windowrule.conf $sel windowrules
|
|
||||||
_reloadModule
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Apps Label"
|
|
||||||
order=1
|
|
@ -1,33 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Define the label of the Apps Starter (Default is Apps). "
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_appslabel"
|
|
||||||
|
|
||||||
# Define Markers
|
|
||||||
startMarker="START APPS LABEL"
|
|
||||||
endMarker="END APPS LABEL"
|
|
||||||
|
|
||||||
# Define Replacement Template
|
|
||||||
customtemplate="\"format\": \"VALUE\","
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum input --placeholder="Define the Apps label")
|
|
||||||
|
|
||||||
if [ ! -z $customvalue ]; then
|
|
||||||
# Replace in Template
|
|
||||||
customtext="${customtemplate/VALUE/"$customvalue"}"
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile
|
|
||||||
_writeSettings $settingsFile $customtext
|
|
||||||
|
|
||||||
# Reload Waybar
|
|
||||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
|
||||||
_goBack
|
|
||||||
else
|
|
||||||
echo "ERROR: Define a value."
|
|
||||||
sleep 2
|
|
||||||
_goBack
|
|
||||||
fi
|
|
@ -1,2 +0,0 @@
|
|||||||
name="Show/Hide Bluetooth"
|
|
||||||
order=1
|
|
@ -1,44 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
_getHeader "$name" "$author"
|
|
||||||
|
|
||||||
echo "Hide or show the bluetooth module in ML4W waybar themes."
|
|
||||||
|
|
||||||
# Define File
|
|
||||||
targetFile1="$HOME/dotfiles/waybar/themes/ml4w/config"
|
|
||||||
targetFile2="$HOME/dotfiles/waybar/themes/ml4w-blur/config"
|
|
||||||
targetFile3="$HOME/dotfiles/waybar/themes/ml4w-blur-bottom/config"
|
|
||||||
targetFile4="$HOME/dotfiles/waybar/themes/ml4w-bottom/config"
|
|
||||||
targetFile5="$HOME/dotfiles/waybar/themes/ml4w-minimal/config"
|
|
||||||
settingsFile="$HOME/dotfiles/.settings/waybar_bluetooth"
|
|
||||||
|
|
||||||
# Define Markers
|
|
||||||
startMarker="START BT TOOGLE"
|
|
||||||
endMarker="END BT TOOGLE"
|
|
||||||
|
|
||||||
# Select Value
|
|
||||||
customvalue=$(gum choose "SHOW" "HIDE" "DEFAULT")
|
|
||||||
|
|
||||||
if [ ! -z $customvalue ]; then
|
|
||||||
if [ "$customvalue" == "SHOW" ] ;then
|
|
||||||
customtext=" \"bluetooth\","
|
|
||||||
elif [ "$customvalue" == "DEFAULT" ] ;then
|
|
||||||
customtext=" \"bluetooth\","
|
|
||||||
else
|
|
||||||
customtext=" \/\/\"bluetooth\","
|
|
||||||
fi
|
|
||||||
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile1
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile2
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile3
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile4
|
|
||||||
_replaceInFile $startMarker $endMarker $customtext $targetFile5
|
|
||||||
_writeSettings $settingsFile $customtext
|
|
||||||
|
|
||||||
# Reload Waybar
|
|
||||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
|
||||||
_goBack
|
|
||||||
else
|
|
||||||
echo "ERROR: Define a value."
|
|
||||||
sleep 2
|
|
||||||
_goBack
|
|
||||||
fi
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user