Compare commits
No commits in common. "f4dd412733049eda1357c36efc0e8544e01e046a" and "65b334cc99b3fb8ecb4c3c73373aa8e65fdfd616" have entirely different histories.
f4dd412733
...
65b334cc99
2
.bashrc
2
.bashrc
@ -38,7 +38,6 @@ 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
|
||||||
@ -59,7 +58,6 @@ 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
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
#!/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,29 +15,45 @@ 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/ ] ;then
|
if [ -d ~/dotfiles/hypr/settings/modules/waybar/defaults ] ;then
|
||||||
rm -rf ~/dotfiles/hypr/settings
|
rm -rf ~/dotfiles/hypr/settings/modules/waybar/defaults
|
||||||
echo ":: ~/dotfiles/hypr/settings removed."
|
echo "~/dotfiles/hypr/settings/modules/waybar/defaults 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,7 +2,9 @@
|
|||||||
# 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
|
||||||
@ -15,21 +17,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 OF THE ML4W DOTFILES NOW?" ;then
|
if gum confirm "DO YOU WANT TO START THE INSTALLATION 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 OF YOUR ML4W DOTFILES NOW?" ;then
|
if gum confirm "DO YOU WANT TO START THE UPDATE 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
|
# Try to force the installation of sddm-git
|
||||||
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,11 +8,9 @@ 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 [ $neovim == "1" ] ;then
|
|
||||||
if [ -d ~/dotfiles-versions/$version/nvim ]; 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
|
||||||
fi
|
fi
|
||||||
@ -37,5 +35,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
|
@ -1,16 +0,0 @@
|
|||||||
# ------------------------------------------------------
|
|
||||||
# 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,6 +7,7 @@ packagesPacman=(
|
|||||||
"wget"
|
"wget"
|
||||||
"unzip"
|
"unzip"
|
||||||
"alacritty"
|
"alacritty"
|
||||||
|
"rofi"
|
||||||
"chromium"
|
"chromium"
|
||||||
"dunst"
|
"dunst"
|
||||||
"starship"
|
"starship"
|
||||||
@ -48,9 +49,6 @@ packagesPacman=(
|
|||||||
"libadwaita"
|
"libadwaita"
|
||||||
"python-pywal"
|
"python-pywal"
|
||||||
"xdg-desktop-portal"
|
"xdg-desktop-portal"
|
||||||
"qalculate-gtk"
|
|
||||||
"imagemagick"
|
|
||||||
"guvcview"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
packagesYay=(
|
packagesYay=(
|
||||||
@ -58,5 +56,4 @@ packagesYay=(
|
|||||||
"bibata-cursor-theme"
|
"bibata-cursor-theme"
|
||||||
"trizen"
|
"trizen"
|
||||||
"pacseek"
|
"pacseek"
|
||||||
"rofi-lbonn-wayland"
|
|
||||||
);
|
);
|
||||||
|
@ -13,6 +13,4 @@ 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."
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
# ------------------------------------------------------
|
|
||||||
# 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 ""
|
|
@ -1,53 +0,0 @@
|
|||||||
#!/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" "python";
|
_installPackagesPacman "rsync" "gum" "figlet";
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Double check rsync
|
# Double check rsync
|
||||||
|
@ -1,149 +0,0 @@
|
|||||||
# __ __ _ _ ___ __ _
|
|
||||||
# | \/ | | | || \ \ / / _ __ ___ ___| |_ ___ _ __ ___
|
|
||||||
# | |\/| | | | || |\ \ /\ / / | '__/ _ \/ __| __/ _ \| '__/ _ \
|
|
||||||
# | | | | |__|__ _\ 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. ESC/No selection = Skip Restore)"
|
echo "(SPACE = select/unselect a profile. RETURN = confirm. No selection = CANCEL)"
|
||||||
echo ""
|
echo ""
|
||||||
restorelist=""
|
restorelist=""
|
||||||
if [ -f ~/dotfiles/.bashrc ]; then
|
if [ -f ~/dotfiles/.bashrc ]; then
|
||||||
@ -20,13 +20,6 @@ _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,"
|
||||||
@ -75,18 +68,18 @@ _showRestoreOptions() {
|
|||||||
echo "Selected to restore:"
|
echo "Selected to restore:"
|
||||||
echo "$restoreselect"
|
echo "$restoreselect"
|
||||||
echo ""
|
echo ""
|
||||||
confirmrestore=$(gum choose "Start restore" "Change restore" "Skip restore")
|
confirmrestore=$(gum choose "Start restore" "Change restore" "Cancel 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" "Skip restore")
|
confirmrestore=$(gum choose "Change restore" "Cancel restore")
|
||||||
if [ -z "${confirmrestore}" ] ;then
|
if [ -z "${confirmrestore}" ] ;then
|
||||||
echo "Installation canceled."
|
echo "Installation canceled."
|
||||||
exit
|
exit
|
||||||
@ -95,7 +88,7 @@ _showRestoreOptions() {
|
|||||||
echo ""
|
echo ""
|
||||||
_showRestoreOptions
|
_showRestoreOptions
|
||||||
else
|
else
|
||||||
echo ":: Restore skipped."
|
echo "Restore skipped."
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -105,74 +98,68 @@ _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 -avhp -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
|
rsync -a -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
|
||||||
@ -180,7 +167,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
|
||||||
@ -189,6 +176,7 @@ _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}"
|
||||||
@ -197,6 +185,149 @@ if [ -d ~/dotfiles ]; then
|
|||||||
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
|
||||||
|
32
.install/screenlock.sh
Executable file
32
.install/screenlock.sh
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#!/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
|
@ -1,15 +0,0 @@
|
|||||||
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,7 +8,6 @@ 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
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
# ------------------------------------------------------
|
|
||||||
# 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 +0,0 @@
|
|||||||
50x30
|
|
@ -1 +0,0 @@
|
|||||||
mousepad
|
|
BIN
.settings/lockscreen.png
Normal file
BIN
.settings/lockscreen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 MiB |
@ -1 +0,0 @@
|
|||||||
configuration { font: "Fira Sans 11"; }
|
|
@ -1 +1 @@
|
|||||||
2.8.3.4
|
2.8.1
|
@ -1 +1 @@
|
|||||||
2834
|
281
|
42
CHANGELOG
42
CHANGELOG
@ -1,45 +1,3 @@
|
|||||||
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,19 +1,14 @@
|
|||||||
# ML4W Dotfiles 2.8.3.4
|
# ML4W dotfiles 2.8.1
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
[![Screenshot](screenshots/v283/screenshot-283-2.png "Title Text")](screenshots/v283/screenshot-283-2.png)
|
<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>
|
||||||
|
|
||||||
You can find the overview video (Version 2.8.3) on Youtube: [ML4W Dotfiles 2.8.3](https://youtu.be/zM2AYue0o8s)
|
PLEASE NOTE: This branch is the rolling release of the ML4W dotfiles and includes the latest changes.
|
||||||
|
|
||||||
You can find the installation video (Version 2.8.2) on YouTube: [Install/Update the ML4W Dotfiles](https://youtu.be/n6Yg232bCOU)
|
Latest official release 2.8.1: <a href="https://youtu.be/KHwJxpV_L1g" target="_blank">Watch on YouTube</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.
|
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>
|
||||||
|
|
||||||
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]
|
||||||
|
|
||||||
@ -23,56 +18,42 @@ 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)
|
||||||
- EndeavourOS
|
|
||||||
- Arco Linux
|
|
||||||
- Manjaro Linux
|
- Manjaro Linux
|
||||||
|
- Arco Linux
|
||||||
|
- EndeavourOS
|
||||||
|
|
||||||
The installation should work on all Arch Linux based distributions as well.
|
But the installation should work on all Arch Linux based distributions as well.
|
||||||
|
|
||||||
> **For Manjaro users:** Hyprland and required components are under ongoing development. That's why it's possible that some packages are not immediatly available on Manjaro e.g., hyprlock or hypridle. But usually, the packages will be published later.
|
For Arco Linux users: Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
|
||||||
|
|
||||||
> **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 create a backup from an previous dotfiles installation.
|
The installation script will try to create a backup from an previous dotfiles installation.
|
||||||
|
|
||||||
If possible, please create a snapshot of your current system if snapper or Timeshift is installed and available.
|
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.
|
||||||
|
|
||||||
## ML4W Installer App
|
## Reference Installation
|
||||||
|
|
||||||
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...)
|
The reference installation on the dotfiles is based on Arch Linux installed with a minimal profile.
|
||||||
|
|
||||||
```
|
Please watch the video on YouTube: https://youtu.be/kHG5czrQ7WA
|
||||||
# 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 (create the folder if not available)
|
# 1.) Change into your Downloads folder
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
|
|
||||||
# 2.) Clone the dotfiles repository into the Downloads folder
|
# 2.) Clone the dotfiles repository into the Downloads folder
|
||||||
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
|
git clone https://gitlab.com/stephan-raabe/dotfiles.git
|
||||||
|
|
||||||
# 3.) Change into the dotfiles folder
|
# 3.) Change into the dotfiles folder
|
||||||
cd dotfiles
|
cd dotfiles
|
||||||
@ -84,65 +65,54 @@ 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 (create the folder if not available)
|
# 1.) Change into your Downloads folder where you have downloaded the release to
|
||||||
cd ~/Downloads
|
cd ~/Downloads
|
||||||
|
|
||||||
# 2.) Clone the dotfiles repository into the Downloads folder
|
# 2.) Unzip
|
||||||
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.) Checkout the dev branch
|
# 4.) Switch to dev branch
|
||||||
git checkout dev
|
git checkout dev
|
||||||
|
|
||||||
# 4.) Start the installation
|
# 4.) Start the installation to update
|
||||||
./install.sh
|
./install.sh
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update
|
## Update with GIT
|
||||||
|
|
||||||
From 2.8.2 onwards you can use the integrated update feature to update your dotfiles to the main or rolling release whenever you want.
|
|
||||||
|
|
||||||
![Update](screenshots/welcome-update-dotfiles.png "Updates")
|
|
||||||
|
|
||||||
You can also use the ML4W installer to update to the main-release (Latest Version) or the Rolling Release: https://gitlab.com/stephan-raabe/installer
|
|
||||||
|
|
||||||
You can force a clean re-installation of the dotfiles by removing the folder ~/dotfiles before starting the installation.
|
|
||||||
|
|
||||||
> Please note that you can create a backup of your existing configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
|
|
||||||
|
|
||||||
Please follow the steps to update from earlier dotfiles versions to 2.8.3
|
|
||||||
|
|
||||||
```
|
```
|
||||||
# 1.) Remove existing downloaded dotfiles
|
# 1.) Change into your Downloads folder
|
||||||
rm -rf ~/Downloads/dotfiles
|
cd ~/Downloads/dotfiles
|
||||||
|
|
||||||
# 2.) Change into your Downloads folder
|
# Switch to rolling release
|
||||||
cd ~/Downloads
|
# git checkout origin/main
|
||||||
|
|
||||||
# 3.) Clone the dotfiles repository into the Downloads folder
|
# 2.) Pull the latest version and update the repository
|
||||||
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
|
git stash; git pull
|
||||||
|
|
||||||
# 4.) Change into the dotfiles folder
|
# 3.) Start the installation to update
|
||||||
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 copy the files into the final destination in ~/dotfiles
|
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copying into the final destination in ~/dotfiles
|
||||||
|
|
||||||
If you want to modify the installation files just before everytime 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 the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
|
||||||
|
|
||||||
You can for example delete folders and files or update existing configurations.
|
You can delete folders and files or update existing configurations.
|
||||||
|
|
||||||
```
|
```
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@ -156,20 +126,14 @@ 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 because login managers (display managers) are not officially supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
|
The suggested method to start Hyprland is from tty with the command Hyprland bacause login managers (display managers) are not official supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
|
||||||
|
|
||||||
```
|
```
|
||||||
# Start Hyprland
|
# Start Hyprland
|
||||||
@ -194,14 +158,6 @@ 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.
|
||||||
@ -225,9 +181,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
|
||||||
|
|
||||||
- [Hyprland keybindings overview](hypr/conf/keybindings/default.conf)
|
All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/qtile/config.py
|
||||||
- [Qtile keybindings overview](qtile/config.py)
|
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
|
|
||||||
@ -243,13 +199,13 @@ All keybindings for Hyprland with right mouse click on Apps in waybar or here:
|
|||||||
|
|
||||||
## ML4W Welcome App
|
## ML4W Welcome App
|
||||||
|
|
||||||
After starting the ML4W dotfiles for the first time, the ML4W Welcome App opens. This app is the starting point to discover the Hyprland setup.
|
After starting the ML4W dotfiles for the first time, the ML4W Welcome App appears. This app is the starting point to discover the Hyprland setup.
|
||||||
|
|
||||||
<img src="screenshots/screenshot-welcome.app.png" />
|
<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, using the rofi application launcher or by typing 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 or be entering ml4w in your terminal (if you're using the .bashrc from the dotfiles).
|
||||||
|
|
||||||
In the Settings Menu you can access the following functions:
|
In the Settings Menu you can access the following functions:
|
||||||
|
|
||||||
@ -267,31 +223,6 @@ 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/.
|
||||||
@ -304,14 +235,28 @@ 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.
|
||||||
|
|
||||||
[You can find more information here.](waybar/README.md)
|
More information here: https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/waybar
|
||||||
|
|
||||||
|
## Hyprland settings
|
||||||
|
|
||||||
|
You can open the settings script with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to select variations for your hyprland.conf and customize your desktop even more.
|
||||||
|
|
||||||
|
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the settings script in the corresponding section.
|
||||||
|
|
||||||
|
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
|
||||||
|
|
||||||
|
You can also edit the file directly in the settings script in the section Custom.
|
||||||
|
|
||||||
## Screensharing and recording
|
## 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
|
||||||
|
|
||||||
@ -319,7 +264,7 @@ https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
|
|||||||
- Editor: nvim
|
- Editor: nvim
|
||||||
- Prompt: starship
|
- Prompt: starship
|
||||||
- Icons: Font Awesome
|
- Icons: Font Awesome
|
||||||
- Launch Menus: Rofi (Wayland fork)
|
- Launch Menus: Rofi
|
||||||
- Colorscheme: pywal
|
- Colorscheme: pywal
|
||||||
- Browsers: chromium (brave optional)
|
- Browsers: chromium (brave optional)
|
||||||
- Filemanager: Thunar
|
- Filemanager: Thunar
|
||||||
@ -350,7 +295,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 (Wayland fork)
|
- Launch Menus: Rofi
|
||||||
- Colorscheme: pywal
|
- Colorscheme: pywal
|
||||||
- Browsers: chromium (brave optional)
|
- Browsers: chromium (brave optional)
|
||||||
- Filemanager: Thunar
|
- Filemanager: Thunar
|
||||||
@ -362,54 +307,6 @@ 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
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,7 +0,0 @@
|
|||||||
[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
|
|
Binary file not shown.
Before Width: | Height: | Size: 23 KiB |
@ -1,7 +0,0 @@
|
|||||||
[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 = 1
|
frame_width = 3
|
||||||
|
|
||||||
# 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" 9
|
font = "Fira Sans Semibold" 11
|
||||||
|
|
||||||
# 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 = center
|
vertical_alignment = top
|
||||||
|
|
||||||
# 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 = "#000000CC"
|
background = "#00000070"
|
||||||
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 = "#000000CC"
|
background = "#00000070"
|
||||||
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 = "#900000CC"
|
background = "#90000070"
|
||||||
foreground = "#ffffff"
|
foreground = "#ffffff"
|
||||||
frame_color = "#ffffff"
|
frame_color = "#ffffff"
|
||||||
timeout = 6
|
timeout = 6
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
# Configuration Variations
|
|
||||||
|
|
||||||
With configuration variations, you can prepare different settings and configurations for your Hyprland installation.
|
|
||||||
|
|
||||||
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
|
|
||||||
|
|
||||||
## How to use configuration variations
|
|
||||||
|
|
||||||
Open the ML4W dotfiles settings app via the ML4W Welcome App, the application launcher or the wheel icon in Waybar.
|
|
||||||
|
|
||||||
You can find several variation within the three settings pages.
|
|
||||||
|
|
||||||
- Monitor (Screen Resolutions)
|
|
||||||
- Animations
|
|
||||||
- Keybindings
|
|
||||||
- Windows
|
|
||||||
- Window Rules
|
|
||||||
- Decorations
|
|
||||||
- Environments
|
|
||||||
|
|
||||||
Select the variation that you want to use from the corresponding drop down menu.
|
|
||||||
|
|
||||||
Please don't edit the shipped configuration variations. These will be overwritten with every update of the ML4W dotfiles. <b>Create your own custom variation instead.</b>
|
|
||||||
|
|
||||||
## Create your own variation
|
|
||||||
|
|
||||||
Open the ML4W dotfiles settings app via the ML4W Welcome App, the application launcher or the wheel icon in Waybar.
|
|
||||||
|
|
||||||
Select "Open Variation Folder" from the variation context menu.
|
|
||||||
|
|
||||||
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
|
|
||||||
|
|
||||||
Copy an existing variation as a starting point and rename the new file accordingly.
|
|
||||||
|
|
||||||
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations2.png" />
|
|
||||||
|
|
||||||
Edit the configuration of your new variation and save.
|
|
||||||
|
|
||||||
Go back to the ML4W dotfiles settings app and select "Reload Variations" from the variation context menu and select your new variation.
|
|
||||||
|
|
||||||
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations3.png" />
|
|
||||||
|
|
||||||
You can also modify the variation from the settings app directly.
|
|
||||||
|
|
||||||
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations4.png" />
|
|
@ -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 init || swww-daemon --format xrgb
|
exec-once = swww query || swww init
|
||||||
|
|
||||||
# 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,4 +5,3 @@
|
|||||||
|
|
||||||
env = XCURSOR_SIZE,24
|
env = XCURSOR_SIZE,24
|
||||||
env = QT_QPA_PLATFORM,wayland
|
env = QT_QPA_PLATFORM,wayland
|
||||||
|
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
# -----------------------------------------------------
|
|
||||||
# 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/.settings/filemanager.sh
|
bind = $mainMod, E, exec, ~/dotfiles/scripts/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,14 +28,13 @@ 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 -replace -i
|
bind = $mainMod CTRL, RETURN, exec, rofi -show drun
|
||||||
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
|
||||||
@ -43,7 +42,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, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
bind = $mainMod CTRL, S, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/start-settings.sh
|
||||||
|
|
||||||
# Workspaces
|
# Workspaces
|
||||||
bind = $mainMod, 1, workspace, 1
|
bind = $mainMod, 1, workspace, 1
|
||||||
@ -82,7 +81,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, hyprlock
|
bind = , XF86Lock, exec, swaylock
|
||||||
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,7 +9,6 @@ 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,3 +14,7 @@ master {
|
|||||||
gestures {
|
gestures {
|
||||||
workspace_swipe = false
|
workspace_swipe = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
device:epic-mouse-v1 {
|
||||||
|
sensitivity = -0.5
|
||||||
|
}
|
||||||
|
@ -4,22 +4,18 @@
|
|||||||
|
|
||||||
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
|
|
@ -1,6 +0,0 @@
|
|||||||
# -----------------------------------------------------
|
|
||||||
# Monitor Setup
|
|
||||||
# name: "Highres"
|
|
||||||
# -----------------------------------------------------
|
|
||||||
|
|
||||||
monitor=,highres,auto,1
|
|
@ -8,4 +8,3 @@ 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,36 +5,25 @@
|
|||||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||||
# |___/|_|
|
# |___/|_|
|
||||||
#
|
#
|
||||||
# Version 2.8.3
|
|
||||||
# DO NOT REMOVE THE REPLACEMENT COMMENTS
|
|
||||||
# REQUIRED BY THE ML4W SETTINGS APP
|
|
||||||
|
|
||||||
general {
|
general {
|
||||||
ignore_dbus_inhibit = false
|
# lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
|
||||||
|
# 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 {
|
||||||
# HYPRLOCK TIMEOUT
|
timeout = 600 # in seconds
|
||||||
timeout = 600
|
on-timeout = hyprlock # command to run when timeout has passed
|
||||||
# HYPRLOCK ONTIMEOUT
|
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
|
||||||
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 {
|
||||||
# SUSPEND TIMEOUT
|
timeout = 660 # in seconds
|
||||||
timeout = 1800
|
on-timeout = systemctl suspend # command to run when timeout has passed
|
||||||
#SUSPEND ONTIMEOUT
|
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
|
||||||
on-timeout = systemctl suspend
|
|
||||||
}
|
}
|
||||||
|
@ -8,34 +8,32 @@
|
|||||||
|
|
||||||
background {
|
background {
|
||||||
monitor =
|
monitor =
|
||||||
path = $HOME/.cache/blurred_wallpaper.png # only png supported for now
|
path = $HOME/dotfiles/.settings/lockscreen.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 = 3
|
outline_thickness = 1
|
||||||
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
dots_size = 0.2 # 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
|
||||||
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
|
outer_color = rgb(000000)
|
||||||
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
|
||||||
@ -43,26 +41,12 @@ input-field {
|
|||||||
|
|
||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = cmd[update:1000] echo "$TIME"
|
text = Enter your password to unlock
|
||||||
color = rgba(200, 200, 200, 1.0)
|
color = rgba(200, 200, 200, 1.0)
|
||||||
font_size = 55
|
font_size = 25
|
||||||
font_family = Fira Semibold
|
font_family = Noto Sans
|
||||||
position = -100, -200
|
|
||||||
halign = right
|
|
||||||
valign = bottom
|
|
||||||
shadow_passes = 5
|
|
||||||
shadow_size = 10
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
position = 0, 200
|
||||||
monitor =
|
halign = center
|
||||||
text = $USER
|
valign = center
|
||||||
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,5 +30,4 @@ 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"
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
hyprctl reload
|
|
@ -21,16 +21,12 @@ choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/confi
|
|||||||
|
|
||||||
case $choice in
|
case $choice in
|
||||||
$option2)
|
$option2)
|
||||||
grim -g "$(slurp)" "$DIR$NAME"
|
grim -g "$(slurp)" - | swappy -f -
|
||||||
xclip -selection clipboard -t image/png -i "$DIR$NAME"
|
notify-send "Screenshot created" "Mode: Selected area"
|
||||||
notify-send "Screenshot created and copied to clipboard" "Mode: Selected area"
|
|
||||||
swappy -f "$DIR$NAME"
|
|
||||||
;;
|
;;
|
||||||
$option3)
|
$option3)
|
||||||
sleep 3
|
sleep 3
|
||||||
grim "$DIR$NAME"
|
grim - | swappy -f -
|
||||||
xclip -selection clipboard -t image/png -i "$DIR$NAME"
|
notify-send "Screenshot created" "Mode: Fullscreen"
|
||||||
notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen"
|
|
||||||
swappy -f "$DIR$NAME"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
11
hypr/scripts/swayidle.sh
Executable file
11
hypr/scripts/swayidle.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/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,12 +11,7 @@
|
|||||||
|
|
||||||
# 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
|
||||||
@ -36,7 +31,6 @@ 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
|
||||||
@ -46,11 +40,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 -i -replace -config ~/dotfiles/rofi/config-wallpaper.rasi)
|
done | rofi -dmenu -replace -config ~/dotfiles/rofi/config-wallpaper.rasi)
|
||||||
if [ ! "$selected" ]; then
|
if [ ! "$selected" ]; then
|
||||||
echo "No wallpaper selected"
|
echo "No wallpaper selected"
|
||||||
exit
|
exit
|
||||||
@ -69,7 +63,13 @@ 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,44 +95,10 @@ 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
|
||||||
if [ "$1" == "init" ] ;then
|
notify-send "Colors and Wallpaper updated" "with image $newwall"
|
||||||
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!"
|
||||||
|
9
hypr/settings/.library/excludes.txt
Normal file
9
hypr/settings/.library/excludes.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
.gitignore
|
||||||
|
.git
|
||||||
|
.dev
|
||||||
|
README.md
|
||||||
|
CHANGELOG
|
||||||
|
LICENSE
|
||||||
|
install.sh
|
||||||
|
create.sh
|
||||||
|
.target.sh
|
377
hypr/settings/.library/library.sh
Normal file
377
hypr/settings/.library/library.sh
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
# 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
hypr/settings/.library/version.sh
Normal file
1
hypr/settings/.library/version.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
version="2.0"
|
3
hypr/settings/modules/appearance/animations/config.sh
Normal file
3
hypr/settings/modules/appearance/animations/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Animations"
|
||||||
|
order=1
|
||||||
|
author="Stephan Raabe ML4W"
|
7
hypr/settings/modules/appearance/animations/module.sh
Executable file
7
hypr/settings/modules/appearance/animations/module.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
|
||||||
|
sel=""
|
||||||
|
_getConfSelector animation.conf animations
|
||||||
|
_getConfEditor animation.conf $sel animations
|
||||||
|
_reloadModule
|
3
hypr/settings/modules/appearance/config.sh
Normal file
3
hypr/settings/modules/appearance/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Appearance"
|
||||||
|
order=10
|
||||||
|
author="Stephan Raabe ML4W"
|
3
hypr/settings/modules/appearance/decorations/config.sh
Normal file
3
hypr/settings/modules/appearance/decorations/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Decorations"
|
||||||
|
order=1
|
||||||
|
author="Stephan Raabe ML4W"
|
8
hypr/settings/modules/appearance/decorations/module.sh
Executable file
8
hypr/settings/modules/appearance/decorations/module.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/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
|
3
hypr/settings/modules/appearance/module.sh
Executable file
3
hypr/settings/modules/appearance/module.sh
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name"
|
||||||
|
|
3
hypr/settings/modules/appearance/windows/config.sh
Normal file
3
hypr/settings/modules/appearance/windows/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Windows"
|
||||||
|
order=1
|
||||||
|
author="Stephan Raabe ML4W"
|
7
hypr/settings/modules/appearance/windows/module.sh
Executable file
7
hypr/settings/modules/appearance/windows/module.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
|
||||||
|
sel=""
|
||||||
|
_getConfSelector window.conf windows
|
||||||
|
_getConfEditor window.conf $sel windows
|
||||||
|
_reloadModule
|
6
hypr/settings/modules/config.sh
Normal file
6
hypr/settings/modules/config.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
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"
|
0
hypr/settings/modules/init.sh
Normal file
0
hypr/settings/modules/init.sh
Normal file
4
hypr/settings/modules/keybindings/config.sh
Normal file
4
hypr/settings/modules/keybindings/config.sh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
name="Keybindings"
|
||||||
|
order=20
|
||||||
|
author="Stephan Raabe ML4W"
|
||||||
|
|
0
hypr/settings/modules/keybindings/init.sh
Normal file
0
hypr/settings/modules/keybindings/init.sh
Normal file
8
hypr/settings/modules/keybindings/module.sh
Executable file
8
hypr/settings/modules/keybindings/module.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name"
|
||||||
|
|
||||||
|
sel=""
|
||||||
|
_getConfSelector keybinding.conf keybindings
|
||||||
|
_getConfEditor keybinding.conf $sel keybindings
|
||||||
|
_reloadModule
|
||||||
|
|
7
hypr/settings/modules/module.sh
Executable file
7
hypr/settings/modules/module.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
echo "ML4W dotfiles Version" $(cat $HOME/dotfiles/.version/name)
|
||||||
|
echo
|
||||||
|
echo "$homepage ($email)"
|
||||||
|
echo
|
||||||
|
echo $description
|
2
hypr/settings/modules/system/config.sh
Normal file
2
hypr/settings/modules/system/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="System"
|
||||||
|
order=30
|
3
hypr/settings/modules/system/custom/config.sh
Normal file
3
hypr/settings/modules/system/custom/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Custom"
|
||||||
|
order=10
|
||||||
|
author="Stephan Raabe ML4W"
|
6
hypr/settings/modules/system/custom/module.sh
Executable file
6
hypr/settings/modules/system/custom/module.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
vim ~/dotfiles/hypr/conf/custom.conf
|
||||||
|
_goBack
|
||||||
|
|
||||||
|
|
2
hypr/settings/modules/system/defaults/browser/config.sh
Normal file
2
hypr/settings/modules/system/defaults/browser/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="Browser"
|
||||||
|
order=1
|
28
hypr/settings/modules/system/defaults/browser/module.sh
Executable file
28
hypr/settings/modules/system/defaults/browser/module.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/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
|
3
hypr/settings/modules/system/defaults/config.sh
Normal file
3
hypr/settings/modules/system/defaults/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Default Applications"
|
||||||
|
order=1
|
||||||
|
author="Stephan Raabe ML4W"
|
@ -0,0 +1,2 @@
|
|||||||
|
name="Filemanager"
|
||||||
|
order=1
|
23
hypr/settings/modules/system/defaults/filemanager/module.sh
Executable file
23
hypr/settings/modules/system/defaults/filemanager/module.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
|
2
hypr/settings/modules/system/defaults/module.sh
Executable file
2
hypr/settings/modules/system/defaults/module.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name"
|
@ -0,0 +1,2 @@
|
|||||||
|
name="Network"
|
||||||
|
order=1
|
25
hypr/settings/modules/system/defaults/networkmanager/module.sh
Executable file
25
hypr/settings/modules/system/defaults/networkmanager/module.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
|
2
hypr/settings/modules/system/defaults/software/config.sh
Normal file
2
hypr/settings/modules/system/defaults/software/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="Software"
|
||||||
|
order=1
|
23
hypr/settings/modules/system/defaults/software/module.sh
Executable file
23
hypr/settings/modules/system/defaults/software/module.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
|
2
hypr/settings/modules/system/defaults/terminal/config.sh
Normal file
2
hypr/settings/modules/system/defaults/terminal/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="Terminal"
|
||||||
|
order=1
|
23
hypr/settings/modules/system/defaults/terminal/module.sh
Executable file
23
hypr/settings/modules/system/defaults/terminal/module.sh
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
|
3
hypr/settings/modules/system/environment/config.sh
Normal file
3
hypr/settings/modules/system/environment/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Environment"
|
||||||
|
order=05
|
||||||
|
author="Stephan Raabe ML4W"
|
7
hypr/settings/modules/system/environment/module.sh
Executable file
7
hypr/settings/modules/system/environment/module.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
|
||||||
|
sel=""
|
||||||
|
_getConfSelector environment.conf environments
|
||||||
|
_getConfEditor environment.conf $sel environments
|
||||||
|
_reloadModule
|
2
hypr/settings/modules/system/keyboard/config.sh
Normal file
2
hypr/settings/modules/system/keyboard/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="Keyboard"
|
||||||
|
order=30
|
2
hypr/settings/modules/system/keyboard/module.sh
Executable file
2
hypr/settings/modules/system/keyboard/module.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name"
|
@ -0,0 +1,2 @@
|
|||||||
|
name="Natural Scrolling"
|
||||||
|
order=1
|
31
hypr/settings/modules/system/keyboard/naturalscroll/module.sh
Executable file
31
hypr/settings/modules/system/keyboard/naturalscroll/module.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/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
|
2
hypr/settings/modules/system/module.sh
Executable file
2
hypr/settings/modules/system/module.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name"
|
3
hypr/settings/modules/system/monitor/config.sh
Normal file
3
hypr/settings/modules/system/monitor/config.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
name="Monitor"
|
||||||
|
order=01
|
||||||
|
author="Stephan Raabe ML4W"
|
7
hypr/settings/modules/system/monitor/module.sh
Executable file
7
hypr/settings/modules/system/monitor/module.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
|
||||||
|
sel=""
|
||||||
|
_getConfSelector monitor.conf monitors
|
||||||
|
_getConfEditor monitor.conf $sel monitors
|
||||||
|
_reloadModule
|
2
hypr/settings/modules/system/nmapplet/config.sh
Normal file
2
hypr/settings/modules/system/nmapplet/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="nw-applet "
|
||||||
|
order=1
|
35
hypr/settings/modules/system/nmapplet/module.sh
Executable file
35
hypr/settings/modules/system/nmapplet/module.sh
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
#!/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
|
4
hypr/settings/modules/system/windowrules/config.sh
Normal file
4
hypr/settings/modules/system/windowrules/config.sh
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
name="Windowrules"
|
||||||
|
order=09
|
||||||
|
author="Stephan Raabe ML4W"
|
||||||
|
|
7
hypr/settings/modules/system/windowrules/module.sh
Executable file
7
hypr/settings/modules/system/windowrules/module.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
_getHeader "$name" "$author"
|
||||||
|
|
||||||
|
sel=""
|
||||||
|
_getConfSelector windowrule.conf windowrules
|
||||||
|
_getConfEditor windowrule.conf $sel windowrules
|
||||||
|
_reloadModule
|
2
hypr/settings/modules/waybar/appslabel/config.sh
Normal file
2
hypr/settings/modules/waybar/appslabel/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="Apps Label"
|
||||||
|
order=1
|
33
hypr/settings/modules/waybar/appslabel/module.sh
Executable file
33
hypr/settings/modules/waybar/appslabel/module.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/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
|
2
hypr/settings/modules/waybar/bluetooth/config.sh
Normal file
2
hypr/settings/modules/waybar/bluetooth/config.sh
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
name="Show/Hide Bluetooth"
|
||||||
|
order=1
|
44
hypr/settings/modules/waybar/bluetooth/module.sh
Executable file
44
hypr/settings/modules/waybar/bluetooth/module.sh
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
#!/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