Updates
This commit is contained in:
parent
1fe8a3bc7a
commit
f3cc851979
1
.bashrc
1
.bashrc
@ -38,6 +38,7 @@ alias winclass="xprop | grep 'CLASS'"
|
||||
alias dot="cd ~/dotfiles"
|
||||
alias cleanup='~/dotfiles/scripts/cleanup.sh'
|
||||
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
|
||||
alias ml4w-settings='~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage'
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Window Managers
|
||||
|
@ -16,4 +16,9 @@ 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
|
@ -31,29 +31,9 @@ else
|
||||
echo "bluetooth.service activated successfully."
|
||||
fi
|
||||
|
||||
if [ -d ~/dotfiles/hypr/settings/modules/waybar/defaults ] ;then
|
||||
rm -rf ~/dotfiles/hypr/settings/modules/waybar/defaults
|
||||
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
|
||||
|
||||
if [ -d ~/dotfiles/hypr/settings/modules/waybar/bluetooth ] ;then
|
||||
rm -rf ~/dotfiles/hypr/settings/modules/waybar/bluetooth
|
||||
echo "~/dotfiles/hypr/settings/modules/waybar/bluetooth removed."
|
||||
if [ -d ~/dotfiles/hypr/settings/ ] ;then
|
||||
rm -rf ~/dotfiles/hypr/settings
|
||||
echo "~/dotfiles/hypr/settings removed."
|
||||
fi
|
||||
|
||||
# Create default folder structure
|
||||
|
@ -8,7 +8,7 @@ echo ""
|
||||
|
||||
# Check for required packages
|
||||
echo ":: Checking that required packages for the installation are installed..."
|
||||
_installPackagesPacman "rsync" "gum" "figlet";
|
||||
_installPackagesPacman "rsync" "gum" "figlet" "python";
|
||||
echo ""
|
||||
|
||||
# Double check rsync
|
||||
|
153
.install/restore.py
Normal file
153
.install/restore.py
Normal file
@ -0,0 +1,153 @@
|
||||
# __ __ _ _ ___ __ _
|
||||
# | \/ | | | || \ \ / / _ __ ___ ___| |_ ___ _ __ ___
|
||||
# | |\/| | | | || |\ \ /\ / / | '__/ _ \/ __| __/ _ \| '__/ _ \
|
||||
# | | | | |__|__ _\ 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_toggle": True,
|
||||
"waybar_network": True,
|
||||
"waybar_chatgpt": True,
|
||||
"waybar_systray": True,
|
||||
"waybar_screenlock": True,
|
||||
"waybar_window": True,
|
||||
"hypridle_hyprlock_timeout": 600,
|
||||
"hypridle_dpms_timeout": 680,
|
||||
"hypridle_suspend_timeout": 1800
|
||||
}
|
||||
|
||||
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()
|
@ -102,74 +102,74 @@ _startRestore() {
|
||||
if [[ $restoreselect == *"~/dotfiles/.bashrc"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/.bashrc ]; then
|
||||
cp ~/dotfiles/.bashrc ~/dotfiles-versions/$version/
|
||||
echo ".bashrc restored!"
|
||||
echo ":: .bashrc restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/.settings"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -d ~/dotfiles/.settings ]; then
|
||||
rsync -a -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
|
||||
echo ".settings restored!"
|
||||
echo ":: .settings restored!"
|
||||
fi
|
||||
fi
|
||||
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!"
|
||||
echo ":: Hyprland hypridle.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/custom.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/custom.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland custom.conf restored!"
|
||||
echo ":: Hyprland custom.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keyboard.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/keyboard.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/keyboard.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland keyboard.conf restored!"
|
||||
echo ":: Hyprland keyboard.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/monitor.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/monitor.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/monitor.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland monitor.conf restored!"
|
||||
echo ":: Hyprland monitor.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/keybinding.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/keybinding.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/keybinding.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland keybinding.conf restored!"
|
||||
echo ":: Hyprland keybinding.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/environment.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/environment.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/environment.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland environment.conf restored!"
|
||||
echo ":: Hyprland environment.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/windowrule.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/windowrule.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/windowrule.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland windowrule.conf restored!"
|
||||
echo ":: Hyprland windowrule.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/animation.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/animation.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/animation.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland animation.conf restored!"
|
||||
echo ":: Hyprland animation.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/decoration.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/decoration.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/decoration.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland decoration.conf restored!"
|
||||
echo ":: Hyprland decoration.conf restored!"
|
||||
fi
|
||||
fi
|
||||
if [[ $restoreselect == *"~/dotfiles/hypr/conf/window.conf"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/hypr/conf/window.conf ]; then
|
||||
cp ~/dotfiles/hypr/conf/window.conf ~/dotfiles-versions/$version/hypr/conf/
|
||||
echo "Hyprland window.conf restored!"
|
||||
echo ":: Hyprland window.conf restored!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@ -177,7 +177,7 @@ _startRestore() {
|
||||
if [[ $restoreselect == *"~/dotfiles/qtile/autostart.sh"* ]] || [[ $restoreselect == *"All"* ]] ; then
|
||||
if [ -f ~/dotfiles/qtile/autostart.sh ]; then
|
||||
cp ~/dotfiles/qtile/autostart.sh ~/dotfiles-versions/$version/qtile/
|
||||
echo "Qtile autostart.sh restored!"
|
||||
echo ":: Qtile autostart.sh restored!"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@ -195,130 +195,6 @@ echo -e "${NONE}"
|
||||
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 ""
|
||||
|
||||
_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 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 ""
|
||||
fi
|
||||
|
4
.install/settings.sh
Normal file
4
.install/settings.sh
Normal file
@ -0,0 +1,4 @@
|
||||
echo -e "${GREEN}"
|
||||
figlet "Restore Settings"
|
||||
echo -e "${NONE}"
|
||||
python .install/restore.py
|
Binary file not shown.
Before Width: | Height: | Size: 14 MiB |
@ -1 +1 @@
|
||||
2.8.2.1
|
||||
2.8.3BETA
|
@ -1 +1 @@
|
||||
2821
|
||||
2830
|
@ -1,3 +1,11 @@
|
||||
Version 2.8.3
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3
|
||||
--------------------------------------------------------
|
||||
- New ML4W Dotfiles Settings App based on GTK4
|
||||
- Hyprlock now using a blurred version of the current wallpaper as background
|
||||
- Hyprlock is now showing the current time
|
||||
- Rofi now uses a blurred version of the current wallpaper as background
|
||||
|
||||
Version 2.8.2.1
|
||||
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
|
||||
--------------------------------------------------------
|
||||
|
46
README.md
46
README.md
@ -1,8 +1,8 @@
|
||||
# ML4W dotfiles 2.8.2
|
||||
# ML4W dotfiles 2.8.3 BETA
|
||||
|
||||
An advanced configuration of Hyprland and Qtile for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
|
||||
|
||||
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v281/screenshot-281-1.png?ref_type=heads" target="_blank"><img src="screenshots/v281/screenshot-281-1.png" /></a>
|
||||
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v283/screenshot-283-1.png?ref_type=heads" target="_blank"><img src="screenshots/v283/screenshot-283-1.png" /></a>
|
||||
|
||||
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>
|
||||
|
||||
@ -82,7 +82,17 @@ git checkout dev
|
||||
|
||||
## Update
|
||||
|
||||
Please follow the steps to update from earlier dotfiles versions to 2.8.2
|
||||
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.
|
||||
|
||||
<img src="screenshots/welcome-update-dotfiles.png" />
|
||||
|
||||
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
|
||||
@ -102,16 +112,6 @@ cd dotfiles
|
||||
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
<img src="screenshots/welcome-update-dotfiles.png" />
|
||||
|
||||
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.
|
||||
|
||||
## ML4W dotfiles Installer
|
||||
|
||||
You can also use the ML4W dotfiles installer script to download and install the latest release: https://gitlab.com/stephan-raabe/installer
|
||||
@ -247,6 +247,16 @@ In the Settings Menu you can access the following functions:
|
||||
You can find the sourcecode of the ML4W Welcome App in this repository:
|
||||
https://gitlab.com/stephan-raabe/ml4w-welcome
|
||||
|
||||
## ML4W Dotfiles Settings App
|
||||
|
||||
You can open the ML4W dotfiles settings app with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to change selected dotfiles configurations and choose from variations for your hyprland.conf to customize your desktop even more.
|
||||
|
||||
<img src="screenshots/screenshot-dotfiles-settings-app.png" />
|
||||
|
||||
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the dotfiles settings app in the corresponding section.
|
||||
|
||||
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
|
||||
|
||||
## 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/.
|
||||
@ -261,16 +271,6 @@ The templates are available in ~/dotfiles/waybar/themes. You can add your own pe
|
||||
|
||||
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
|
||||
|
||||
More information you can find here:
|
||||
|
BIN
apps/ML4W_Dotfiles_Settings-x86_64.AppImage
Executable file
BIN
apps/ML4W_Dotfiles_Settings-x86_64.AppImage
Executable file
Binary file not shown.
Binary file not shown.
7
apps/ml4w-dotfiles-settings.desktop
Executable file
7
apps/ml4w-dotfiles-settings.desktop
Executable file
@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=ML4W Dotfiles Settings App
|
||||
Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
||||
Icon=HOME/dotfiles/apps/ml4w-icon.png
|
||||
Terminal=false
|
||||
Categories=Utility
|
@ -1,9 +0,0 @@
|
||||
# _ _ _ _
|
||||
# | |__ _ _ _ __ _ __(_) __| | | ___
|
||||
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
|
||||
# | | | | |_| | |_) | | | | (_| | | __/
|
||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||
# |___/|_|
|
||||
#
|
||||
|
||||
# Disabled
|
@ -1,25 +0,0 @@
|
||||
# _ _ _ _
|
||||
# | |__ _ _ _ __ _ __(_) __| | | ___
|
||||
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
|
||||
# | | | | |_| | |_) | | | | (_| | | __/
|
||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||
# |___/|_|
|
||||
#
|
||||
|
||||
general {
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
# Screenlock
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = hyprlock
|
||||
# on-resume = notify-send "Welcome back to your desktop!"
|
||||
}
|
||||
|
||||
# dpms
|
||||
listener {
|
||||
timeout = 660
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
# _ _ _ _
|
||||
# | |__ _ _ _ __ _ __(_) __| | | ___
|
||||
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
|
||||
# | | | | |_| | |_) | | | | (_| | | __/
|
||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||
# |___/|_|
|
||||
#
|
||||
|
||||
general {
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
# Screenlock
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = hyprlock
|
||||
# on-resume = notify-send "Welcome back to your desktop!"
|
||||
}
|
||||
|
||||
# dpms
|
||||
listener {
|
||||
timeout = 660
|
||||
on-timeout = hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
# Suspend
|
||||
listener {
|
||||
timeout = 1800
|
||||
on-timeout = systemctl suspend
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
# _ _ _ _
|
||||
# | |__ _ _ _ __ _ __(_) __| | | ___
|
||||
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
|
||||
# | | | | |_| | |_) | | | | (_| | | __/
|
||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||
# |___/|_|
|
||||
#
|
||||
|
||||
general {
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
# Screenlock
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = hyprlock
|
||||
# on-resume = notify-send "Welcome back to your desktop!"
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
# _ _ _ _
|
||||
# | |__ _ _ _ __ _ __(_) __| | | ___
|
||||
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
|
||||
# | | | | |_| | |_) | | | | (_| | | __/
|
||||
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
|
||||
# |___/|_|
|
||||
#
|
||||
|
||||
general {
|
||||
ignore_dbus_inhibit = false
|
||||
}
|
||||
|
||||
# Screenlock
|
||||
listener {
|
||||
timeout = 600
|
||||
on-timeout = hyprlock
|
||||
# on-resume = notify-send "Welcome back to your desktop!"
|
||||
}
|
||||
|
||||
# Suspend
|
||||
listener {
|
||||
timeout = 660
|
||||
on-timeout = systemctl suspend
|
||||
}
|
@ -43,7 +43,7 @@ bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh
|
||||
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh
|
||||
bind = $mainMod, V, exec, ~/dotfiles/scripts/cliphist.sh
|
||||
bind = $mainMod CTRL, T, exec, ~/dotfiles/waybar/themeswitcher.sh
|
||||
bind = $mainMod CTRL, S, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/start-settings.sh
|
||||
bind = $mainMod CTRL, S, exec, ~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
||||
|
||||
# Workspaces
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
|
@ -14,6 +14,18 @@ windowrulev2 = nomaximizerequest,class:(ml4w-welcome.py)
|
||||
windowrulev2 = nofullscreenrequest,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 = nomaximizerequest,class:(com.ml4w.dotfilessettings)
|
||||
windowrulev2 = nofullscreenrequest,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 = nomaximizerequest,class:(ml4w-dotfiles-settings.py)
|
||||
windowrulev2 = nofullscreenrequest,class:(ml4w-dotfiles-settings.py)
|
||||
windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py)
|
||||
|
||||
windowrulev2 = float,class:(dotfiles-floating)
|
||||
windowrulev2 = size 1000 800,class:(dotfiles-floating)
|
||||
windowrulev2 = nomaximizerequest,class:(dotfiles-floating)
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/dotfiles/.settings/lockscreen.png # only png supported for now
|
||||
path = $HOME/.cache/blurred_wallpaper.png # only png supported for now
|
||||
color = rgba(25, 20, 20, 1.0)
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
@ -39,12 +39,24 @@ input-field {
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$TIME"
|
||||
color = rgba(200, 200, 200, 1.0)
|
||||
font_size = 55
|
||||
font_family = Fira Semibold
|
||||
|
||||
position = 0, 300
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = Enter your password to unlock
|
||||
color = rgba(200, 200, 200, 1.0)
|
||||
font_size = 25
|
||||
font_family = Noto Sans
|
||||
font_size = 15
|
||||
font_family = Fira Semibold
|
||||
|
||||
position = 0, 200
|
||||
halign = center
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
# Cache file for holding the current wallpaper
|
||||
cache_file="$HOME/.cache/current_wallpaper"
|
||||
blurred="$HOME/.cache/blurred_wallpaper.png"
|
||||
rasi_file="$HOME/.cache/current_wallpaper.rasi"
|
||||
|
||||
# Create cache file if not exists
|
||||
@ -65,12 +66,6 @@ esac
|
||||
source "$HOME/.cache/wal/colors.sh"
|
||||
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
|
||||
# -----------------------------------------------------
|
||||
@ -95,6 +90,17 @@ swww img $wallpaper \
|
||||
--transition-duration=0.7 \
|
||||
--transition-pos "$( hyprctl cursorpos )"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Created blurred wallpaper
|
||||
# -----------------------------------------------------
|
||||
magick $wallpaper -blur 0x20 $blurred
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Write selected wallpaper into .cache files
|
||||
# -----------------------------------------------------
|
||||
echo "$wallpaper" > "$cache_file"
|
||||
echo "* { current-image: url(\"$blurred\", height); }" > "$rasi_file"
|
||||
|
||||
# -----------------------------------------------------
|
||||
# Send notification
|
||||
# -----------------------------------------------------
|
||||
|
@ -1,9 +0,0 @@
|
||||
.gitignore
|
||||
.git
|
||||
.dev
|
||||
README.md
|
||||
CHANGELOG
|
||||
LICENSE
|
||||
install.sh
|
||||
create.sh
|
||||
.target.sh
|
@ -1,377 +0,0 @@
|
||||
# Settings Library
|
||||
|
||||
# Load module
|
||||
_getModules() {
|
||||
clear
|
||||
|
||||
# Get path to parent folder to go back
|
||||
back="$(dirname "$1")"
|
||||
|
||||
# Load module config
|
||||
if [ -f $1/init.sh ]; then
|
||||
source $1/init.sh
|
||||
fi
|
||||
|
||||
# Load module config
|
||||
if [ -f $1/config.sh ]; then
|
||||
source $1/config.sh
|
||||
else
|
||||
echo "ERROR: config.sh doesn't exists in $1"
|
||||
exit
|
||||
fi
|
||||
|
||||
clickArr+=("/")
|
||||
clickArr+=("$name")
|
||||
echo "You are here:" ${clickArr[@]}
|
||||
|
||||
# Load module
|
||||
if [ -f $1/module.sh ]; then
|
||||
source $1/module.sh
|
||||
else
|
||||
echo "ERROR: module.sh doesn't exists in $1"
|
||||
# exit 0
|
||||
fi
|
||||
|
||||
# Read folder
|
||||
modules=$(find $1 -maxdepth 1 -type d)
|
||||
count=0
|
||||
|
||||
# Check if subfolders exists
|
||||
for value in $modules
|
||||
do
|
||||
if [[ ! "$value" == "$1" ]]; then
|
||||
# Check if custom version of module exists and skip original module
|
||||
if [ ! -d "$value-custom" ]; then
|
||||
((count++))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Create Navigation
|
||||
unset modulesArr
|
||||
if [[ ! $count == 0 ]]; then
|
||||
|
||||
# Get modules folders
|
||||
for value in $modules
|
||||
do
|
||||
if [[ ! "$value" == "$1" ]]; then
|
||||
if [[ ! $value == *"-custom" ]]; then
|
||||
if [ ! -d "$value-custom" ]; then
|
||||
if [ -f $value/config.sh ]; then
|
||||
source $value/config.sh
|
||||
modulesArr+=("$order:$name:$value")
|
||||
else
|
||||
echo "ERROR: config.sh doesn't exists in $value"
|
||||
exit
|
||||
fi
|
||||
else
|
||||
if [ -f $value-custom/config.sh ]; then
|
||||
source $value-custom/config.sh
|
||||
modulesArr+=("$order:$name:$value-custom")
|
||||
else
|
||||
echo "ERROR: config.sh doesn't exists in $value-custom"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# Sort array by order
|
||||
IFS=$'\n' modulesArr=($(sort <<<"${modulesArr[*]}"))
|
||||
unset nameList
|
||||
unset pathList
|
||||
|
||||
# Output
|
||||
for value in "${modulesArr[@]}"
|
||||
do
|
||||
name="$(cut -d':' -f2 <<<"$value")"
|
||||
path="$(cut -d':' -f3 <<<"$value")"
|
||||
nameList+=("$name")
|
||||
pathList+=("$path")
|
||||
done
|
||||
if [[ "$back" == "$installFolder/settings" ]]; then
|
||||
nameList+=("EXIT")
|
||||
else
|
||||
nameList+=("BACK")
|
||||
fi
|
||||
echo ""
|
||||
selected=$(gum choose --height 12 ${nameList[@]})
|
||||
case $selected in
|
||||
BACK)
|
||||
_goBack
|
||||
break;;
|
||||
EXIT)
|
||||
clear
|
||||
exit
|
||||
break;;
|
||||
* )
|
||||
|
||||
;;
|
||||
esac
|
||||
if [ ! -z $selected ] ;then
|
||||
for i in "${!nameList[@]}"; do
|
||||
if [[ "${nameList[$i]}" = "${selected}" ]]; then
|
||||
nameIndex="${i}"
|
||||
fi
|
||||
done
|
||||
current="${pathList[$nameIndex]}"
|
||||
_getModules "$current"
|
||||
else
|
||||
if [[ "$back" == "$installFolder/settings" ]]; then
|
||||
clear
|
||||
exit
|
||||
else
|
||||
_goBack
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# _getConfSelector conf/monitor.conf conf/monitors/
|
||||
_getConfSelector() {
|
||||
cur=$(cat $installFolder/conf/$1)
|
||||
echo "Folder: $installFolder/conf/$2"
|
||||
echo "In use: ${cur##*/}"
|
||||
echo ""
|
||||
echo "Select a file to load (RETURN = Confirm, ESC = Cancel/Back):"
|
||||
echo ""
|
||||
sel=$(gum choose $(ls $installFolder/conf/$2))
|
||||
|
||||
if [ -z $sel ] ;then
|
||||
_goBack
|
||||
fi
|
||||
echo "File $sel selected."
|
||||
echo ""
|
||||
}
|
||||
|
||||
_getConfEditor() {
|
||||
selected=$(gum choose "EXECUTE" "EDIT" "COPY" "DELETE" "CANCEL")
|
||||
case $selected in
|
||||
EXECUTE)
|
||||
_writeConf $1 $2 $3
|
||||
break;;
|
||||
EDIT)
|
||||
vim $installFolder/conf/$3/$2
|
||||
sleep 1
|
||||
_reloadModule
|
||||
break;;
|
||||
COPY)
|
||||
echo "Define the new file name. Please use *.conf"
|
||||
filename=$(gum input --value="custom-${sel##*/}" --placeholder "Enter your filename")
|
||||
if [ -z $filename ] ;then
|
||||
echo "ERROR: No filename specified."
|
||||
else
|
||||
if ! [[ $filename =~ [^\s]+.conf ]]; then
|
||||
echo "ERROR: Wrong filename format. Please use *.conf"
|
||||
else
|
||||
if [ -f $(dirname $sel)/$filename ] ;then
|
||||
echo "ERROR: File already exists."
|
||||
else
|
||||
cp $installFolder/conf/$3/$sel $installFolder/conf/$3/$filename
|
||||
_reloadModule
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
_getConfEditor $1 $2 $3
|
||||
break;;
|
||||
DELETE)
|
||||
if gum confirm "Do you really want to delete the file $sel?" ;then
|
||||
rm $installFolder/conf/$3/$sel
|
||||
_reloadModule
|
||||
else
|
||||
_getConfEditor $1 $2 $3
|
||||
fi
|
||||
break;;
|
||||
* )
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# _writeConf conf/monitor.conf $sel
|
||||
_writeConf() {
|
||||
if [ ! -z $2 ] ;then
|
||||
editsel=$(echo "$installFolder/conf/$3/$2" | sed "s+"\/home\/$USER"+~+")
|
||||
echo "source = $editsel" > $installFolder/conf/$1
|
||||
fi
|
||||
}
|
||||
|
||||
# _replaceInFile $startMarket $endMarker $customtext $targetFile
|
||||
_replaceInFile() {
|
||||
|
||||
# Set function parameters
|
||||
start_string=$1
|
||||
end_string=$2
|
||||
new_string="$3"
|
||||
file_path=$4
|
||||
|
||||
# Counters
|
||||
start_line_counter=0
|
||||
end_line_counter=0
|
||||
start_found=0
|
||||
end_found=0
|
||||
|
||||
if [ -f $file_path ] ;then
|
||||
|
||||
# Detect Start String
|
||||
while read -r line
|
||||
do
|
||||
((start_line_counter++))
|
||||
if [[ $line = *$start_string* ]]; then
|
||||
# echo "Start found in $start_line_counter"
|
||||
start_found=$start_line_counter
|
||||
break
|
||||
fi
|
||||
done < "$file_path"
|
||||
|
||||
# Detect End String
|
||||
while read -r line
|
||||
do
|
||||
((end_line_counter++))
|
||||
if [[ $line = *$end_string* ]]; then
|
||||
# echo "End found in $end_line_counter"
|
||||
end_found=$end_line_counter
|
||||
break
|
||||
fi
|
||||
done < "$file_path"
|
||||
|
||||
# Check that deliminters exists
|
||||
if [[ "$start_found" == "0" ]] ;then
|
||||
echo "ERROR: Start deliminter not found."
|
||||
sleep 2
|
||||
fi
|
||||
if [[ "$end_found" == "0" ]] ;then
|
||||
echo "ERROR: End deliminter not found."
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# Replace text between delimiters
|
||||
if [[ ! "$start_found" == "0" ]] && [[ ! "$end_found" == "0" ]] && [ "$start_found" -le "$end_found" ] ;then
|
||||
# Remove the old line
|
||||
((start_found++))
|
||||
|
||||
if [ ! "$start_found" == "$end_found" ] ;then
|
||||
((end_found--))
|
||||
sed -i "$start_found,$end_found d" $file_path
|
||||
fi
|
||||
# Add the new line
|
||||
sed -i "$start_found i $new_string" $file_path
|
||||
else
|
||||
echo "ERROR: Delimiters syntax."
|
||||
sleep 2
|
||||
fi
|
||||
else
|
||||
echo "ERROR: Target file not found."
|
||||
sleep 2
|
||||
fi
|
||||
}
|
||||
|
||||
# replaceLineInFile $findText $customtext $targetFile
|
||||
_replaceLineInFile() {
|
||||
# Set function parameters
|
||||
find_string="$1"
|
||||
new_string="$2"
|
||||
file_path=$3
|
||||
|
||||
# Counters
|
||||
find_line_counter=0
|
||||
line_found=0
|
||||
|
||||
if [ -f $file_path ] ;then
|
||||
|
||||
# Detect Line
|
||||
while read -r line
|
||||
do
|
||||
((find_line_counter++))
|
||||
if [[ $line = *$find_string* ]]; then
|
||||
# echo "Start found in $start_line_counter"
|
||||
line_found=$find_line_counter
|
||||
break
|
||||
fi
|
||||
done < "$file_path"
|
||||
|
||||
if [[ ! "$line_found" == "0" ]] ;then
|
||||
|
||||
#Remove the line
|
||||
sed -i "$line_found d" $file_path
|
||||
|
||||
# Add the new line
|
||||
sed -i "$line_found i $new_string" $file_path
|
||||
|
||||
else
|
||||
echo "ERROR: Target line not found."
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
else
|
||||
echo "ERROR: Target file not found."
|
||||
sleep 2
|
||||
fi
|
||||
}
|
||||
|
||||
# _writeSettings $settingsFile $customtext
|
||||
_writeSettings() {
|
||||
if [ ! -f $1 ] ;then
|
||||
touch $1
|
||||
fi
|
||||
echo "$2" > $1
|
||||
}
|
||||
|
||||
# Return the version of the hyprland-settings script
|
||||
_getVersion() {
|
||||
echo $version
|
||||
}
|
||||
|
||||
# Write the header to a page
|
||||
_getHeader() {
|
||||
figlet -w 100 "$1"
|
||||
if [ ! -z "$2" ]; then
|
||||
echo "by $2"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Update the breadcrumb and opens parent page
|
||||
_goBack() {
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
_getModules "$back"
|
||||
}
|
||||
|
||||
_reloadModule() {
|
||||
unset clickArr[-1]
|
||||
unset clickArr[-1]
|
||||
_getModules "$current"
|
||||
}
|
||||
|
||||
# Replace the variables in a template and publish to location
|
||||
_replaceByTemplate() {
|
||||
template=$1
|
||||
variables=$2
|
||||
values=$3
|
||||
publishto=$4
|
||||
}
|
||||
|
||||
# Back Button
|
||||
_getBackBtn() {
|
||||
echo ""
|
||||
gum choose "Back"
|
||||
_goBack
|
||||
}
|
||||
|
||||
_getBackRepeatBtn() {
|
||||
echo ""
|
||||
selected=$(gum choose "REPEAT" "BACK")
|
||||
case $selected in
|
||||
BACK)
|
||||
_goBack
|
||||
break;;
|
||||
REPEAT)
|
||||
_getModules "$current"
|
||||
break;;
|
||||
* )
|
||||
|
||||
;;
|
||||
esac
|
||||
}
|
@ -1 +0,0 @@
|
||||
version="2.0"
|
@ -1,3 +0,0 @@
|
||||
name="Animations"
|
||||
order=1
|
||||
author="Stephan Raabe ML4W"
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
sel=""
|
||||
_getConfSelector animation.conf animations
|
||||
_getConfEditor animation.conf $sel animations
|
||||
_reloadModule
|
@ -1,3 +0,0 @@
|
||||
name="Appearance"
|
||||
order=10
|
||||
author="Stephan Raabe ML4W"
|
@ -1,3 +0,0 @@
|
||||
name="Decorations"
|
||||
order=1
|
||||
author="Stephan Raabe ML4W"
|
@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
sel=""
|
||||
_getConfSelector decoration.conf decorations
|
||||
_getConfEditor decoration.conf $sel decorations
|
||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
||||
_reloadModule
|
@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name"
|
||||
|
@ -1,3 +0,0 @@
|
||||
name="Windows"
|
||||
order=1
|
||||
author="Stephan Raabe ML4W"
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
sel=""
|
||||
_getConfSelector window.conf windows
|
||||
_getConfEditor window.conf $sel windows
|
||||
_reloadModule
|
@ -1,6 +0,0 @@
|
||||
name="Settings"
|
||||
description="The settings script will help you to configure your Hyprland installation."
|
||||
author="Stephan Raabe ML4W"
|
||||
order=1
|
||||
email="mail@ml4w.com"
|
||||
homepage="https://gitlab.com/stephan-raabe/dotfiles"
|
@ -1,4 +0,0 @@
|
||||
name="Keybindings"
|
||||
order=20
|
||||
author="Stephan Raabe ML4W"
|
||||
|
@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name"
|
||||
|
||||
sel=""
|
||||
_getConfSelector keybinding.conf keybindings
|
||||
_getConfEditor keybinding.conf $sel keybindings
|
||||
_reloadModule
|
||||
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
echo "ML4W dotfiles Version" $(cat $HOME/dotfiles/.version/name)
|
||||
echo
|
||||
echo "$homepage ($email)"
|
||||
echo
|
||||
echo $description
|
@ -1,2 +0,0 @@
|
||||
name="System"
|
||||
order=30
|
@ -1,3 +0,0 @@
|
||||
name="Custom"
|
||||
order=10
|
||||
author="Stephan Raabe ML4W"
|
@ -1,6 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
vim ~/dotfiles/hypr/conf/custom.conf
|
||||
_goBack
|
||||
|
||||
|
@ -1,2 +0,0 @@
|
||||
name="Browser"
|
||||
order=1
|
@ -1,28 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the start command to start your preferred browser (Default: chromium)."
|
||||
echo
|
||||
echo "Executable (if installed) are:"
|
||||
echo "chromium for Chromium"
|
||||
echo "google-chrome-stable for Google Chrome"
|
||||
echo "brave for Brave"
|
||||
echo "firefox for Firefox"
|
||||
echo
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/.settings/browser.sh"
|
||||
|
||||
# Current Value
|
||||
echo "Current Value: $(cat $targetFile)"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder "Command to start")
|
||||
if [ ! -z $customvalue ] ;then
|
||||
# Write into file
|
||||
echo "$customvalue" > $targetFile
|
||||
else
|
||||
echo "Please define a command"
|
||||
sleep 1
|
||||
fi
|
||||
_goBack
|
@ -1,3 +0,0 @@
|
||||
name="Default Applications"
|
||||
order=1
|
||||
author="Stephan Raabe ML4W"
|
@ -1,2 +0,0 @@
|
||||
name="Filemanager"
|
||||
order=1
|
@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the start command to start the filemanager (Default: thunar)."
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/.settings/filemanager.sh"
|
||||
|
||||
# Current Value
|
||||
echo "Current Value: $(cat $targetFile)"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder "Command to start")
|
||||
if [ ! -z $customvalue ] ;then
|
||||
# Write into file
|
||||
echo "$customvalue" > $targetFile
|
||||
else
|
||||
echo "Please define a command"
|
||||
sleep 1
|
||||
fi
|
||||
_goBack
|
||||
|
||||
|
@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name"
|
@ -1,2 +0,0 @@
|
||||
name="Network"
|
||||
order=1
|
@ -1,25 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the start command to start the networkmanager (Must be installed on your system)."
|
||||
echo "(Default: nm-connection-editor)"
|
||||
echo "Possible values: alacritty -e nmtui, nm-connection-editor, etc."
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/.settings/networkmanager.sh"
|
||||
|
||||
# Current Value
|
||||
echo "Current Value: $(cat $targetFile)"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder "Command to start")
|
||||
if [ ! -z $customvalue ] ;then
|
||||
# Write into file
|
||||
echo "$customvalue" > $targetFile
|
||||
else
|
||||
echo "Please define a command"
|
||||
sleep 1
|
||||
fi
|
||||
_goBack
|
||||
|
||||
|
@ -1,2 +0,0 @@
|
||||
name="Software"
|
||||
order=1
|
@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the start command to start the software manager (Default: alacritty -e pacseek)."
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/.settings/software.sh"
|
||||
|
||||
# Current Value
|
||||
echo "Current Value: $(cat $targetFile)"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder "Command to start")
|
||||
if [ ! -z $customvalue ] ;then
|
||||
# Write into file
|
||||
echo "$customvalue" > $targetFile
|
||||
else
|
||||
echo "Please define a command"
|
||||
sleep 1
|
||||
fi
|
||||
_goBack
|
||||
|
||||
|
@ -1,2 +0,0 @@
|
||||
name="Terminal"
|
||||
order=1
|
@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the command to open the terminal (Default: alacritty)."
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/.settings/terminal.sh"
|
||||
|
||||
# Current Value
|
||||
echo "Current Value: $(cat $targetFile)"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder "Command to start")
|
||||
if [ ! -z $customvalue ] ;then
|
||||
# Write into file
|
||||
echo "$customvalue" > $targetFile
|
||||
else
|
||||
echo "Please define a command"
|
||||
sleep 1
|
||||
fi
|
||||
_goBack
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
name="Environment"
|
||||
order=05
|
||||
author="Stephan Raabe ML4W"
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
sel=""
|
||||
_getConfSelector environment.conf environments
|
||||
_getConfEditor environment.conf $sel environments
|
||||
_reloadModule
|
@ -1,2 +0,0 @@
|
||||
name="Keyboard"
|
||||
order=30
|
@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name"
|
@ -1,2 +0,0 @@
|
||||
name="Natural Scrolling"
|
||||
order=1
|
@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Enable/Disable the natural scrolling for touchpads."
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/hypr/conf/keyboard.conf"
|
||||
settingsFile="$HOME/dotfiles/.settings/keyboard_naturalscroll"
|
||||
|
||||
# Define Markers
|
||||
findMarker="natural_scroll"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose "Enable" "Disable")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
if [ "$customvalue" == "Enable" ] ;then
|
||||
customtext=" natural_scroll = true"
|
||||
else
|
||||
customtext=" natural_scroll = false"
|
||||
fi
|
||||
_replaceLineInFile "$findMarker" "$customtext" "$targetFile"
|
||||
_writeSettings "$settingsFile" "$customtext"
|
||||
echo "Keyboard settings changed."
|
||||
sleep 2
|
||||
_goBack
|
||||
else
|
||||
echo "ERROR: Define a value."
|
||||
sleep 2
|
||||
_goBack
|
||||
fi
|
@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name"
|
@ -1,3 +0,0 @@
|
||||
name="Monitor"
|
||||
order=01
|
||||
author="Stephan Raabe ML4W"
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
sel=""
|
||||
_getConfSelector monitor.conf monitors
|
||||
_getConfEditor monitor.conf $sel monitors
|
||||
_reloadModule
|
@ -1,2 +0,0 @@
|
||||
name="nw-applet "
|
||||
order=1
|
@ -1,35 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Enable or disable the network manager applet (nw-applet) in the Systray."
|
||||
echo "(nw-applet must be installed on your system)"
|
||||
echo "IMPORTANT: Please reboot your system after a change."
|
||||
echo
|
||||
# Define File
|
||||
targetFile1="$HOME/dotfiles/hypr/conf/autostart.conf"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_nmapplet"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START NM APPLET"
|
||||
endMarker="END NM APPLET"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose "Enable" "Disable")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
if [ "$customvalue" == "Enable" ] ;then
|
||||
customtext="exec-once = nm-applet"
|
||||
else
|
||||
customtext="# exec-once = nm-applet"
|
||||
fi
|
||||
|
||||
_replaceInFile $startMarker $endMarker $customtext $targetFile1
|
||||
_writeSettings $settingsFile $customtext
|
||||
|
||||
# Reload Waybar
|
||||
_goBack
|
||||
else
|
||||
echo "ERROR: Define a value."
|
||||
sleep 2
|
||||
_goBack
|
||||
fi
|
@ -1,4 +0,0 @@
|
||||
name="Windowrules"
|
||||
order=09
|
||||
author="Stephan Raabe ML4W"
|
||||
|
@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
sel=""
|
||||
_getConfSelector windowrule.conf windowrules
|
||||
_getConfEditor windowrule.conf $sel windowrules
|
||||
_reloadModule
|
@ -1,2 +0,0 @@
|
||||
name="Apps Label"
|
||||
order=1
|
@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the label of the Apps Starter (Default is Apps). "
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_appslabel"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START APPS LABEL"
|
||||
endMarker="END APPS LABEL"
|
||||
|
||||
# Define Replacement Template
|
||||
customtemplate="\"format\": \"VALUE\","
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder="Define the Apps label")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
# Replace in Template
|
||||
customtext="${customtemplate/VALUE/"$customvalue"}"
|
||||
_replaceInFile $startMarker $endMarker $customtext $targetFile
|
||||
_writeSettings $settingsFile $customtext
|
||||
|
||||
# Reload Waybar
|
||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
||||
_goBack
|
||||
else
|
||||
echo "ERROR: Define a value."
|
||||
sleep 2
|
||||
_goBack
|
||||
fi
|
@ -1,2 +0,0 @@
|
||||
name="Show/Hide ChatGPT"
|
||||
order=1
|
@ -1,36 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Hide or show the chatgpt icon in ML4W waybar themes."
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_chatgpt"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START CHATGPT TOOGLE"
|
||||
endMarker="END CHATGPT TOOGLE"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose "SHOW" "HIDE" "DEFAULT")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
if [ "$customvalue" == "SHOW" ] ;then
|
||||
customtext=" \"custom\/chatgpt\","
|
||||
elif [ "$customvalue" == "DEFAULT" ] ;then
|
||||
customtext=" \"custom\/chatgpt\","
|
||||
else
|
||||
customtext=" \/\/\"custom\/chatgpt\","
|
||||
fi
|
||||
|
||||
_replaceInFile $startMarker $endMarker $customtext $targetFile
|
||||
_writeSettings $settingsFile $customtext
|
||||
|
||||
# Reload Waybar
|
||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
||||
_goBack
|
||||
else
|
||||
echo "ERROR: Define a value."
|
||||
sleep 2
|
||||
_goBack
|
||||
fi
|
@ -1,2 +0,0 @@
|
||||
name="Waybar"
|
||||
order=50
|
@ -1,2 +0,0 @@
|
||||
name="Date Format"
|
||||
order=1
|
@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Define the date format for the clock module. Default: {:%Y-%m-%d}"
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_date"
|
||||
|
||||
# Define Markers
|
||||
startMarker="\/\/ START CLOCK FORMAT"
|
||||
endMarker="\/\/ END CLOCK FORMAT"
|
||||
|
||||
# Define Replacement Template
|
||||
customtemplate="\"format-alt\": \"VALUE\""
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum input --placeholder="Define the date format")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
# Replace in Template
|
||||
customtext="${customtemplate/VALUE/"$customvalue"}"
|
||||
|
||||
_replaceInFile $startMarker $endMarker $customtext $targetFile
|
||||
_writeSettings $settingsFile $customtext
|
||||
|
||||
# Reload Waybar
|
||||
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
|
||||
_goBack
|
||||
else
|
||||
echo "ERROR: Define a value."
|
||||
sleep 2
|
||||
_goBack
|
||||
fi
|
@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name"
|
@ -1,2 +0,0 @@
|
||||
name="Show/Hide Network"
|
||||
order=1
|
@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Hide or show the network 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_network"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START NETWORK TOOGLE"
|
||||
endMarker="END NETWORK TOOGLE"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose "SHOW" "HIDE")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
if [ "$customvalue" == "SHOW" ] ;then
|
||||
customtext=" \"network\","
|
||||
else
|
||||
customtext=" \/\/\"network\","
|
||||
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
|
@ -1,2 +0,0 @@
|
||||
name="Show/Hide Lock"
|
||||
order=1
|
@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Hide or show the idle_inhibitor module (lock icon) 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_swaylock"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START IDLE TOOGLE"
|
||||
endMarker="END IDLE TOOGLE"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose "SHOW" "HIDE")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
if [ "$customvalue" == "SHOW" ] ;then
|
||||
customtext=" \"idle_inhibitor\","
|
||||
else
|
||||
customtext=" \/\/\"idle_inhibitor\","
|
||||
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
|
@ -1,2 +0,0 @@
|
||||
name="Show/Hide Systray"
|
||||
order=1
|
@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
echo "Hide or show the systray 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_systray"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START TRAY TOOGLE"
|
||||
endMarker="END TRAY TOOGLE"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose "SHOW" "HIDE")
|
||||
|
||||
if [ ! -z $customvalue ]; then
|
||||
if [ "$customvalue" == "SHOW" ] ;then
|
||||
customtext=" \"tray\","
|
||||
else
|
||||
customtext=" \/\/\"tray\","
|
||||
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
|
@ -1,2 +0,0 @@
|
||||
name="Themes"
|
||||
order=1
|
@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
setsid $HOME/dotfiles/waybar/themeswitcher.sh 1>/dev/null 2>&1 &
|
||||
_goBack
|
@ -1,2 +0,0 @@
|
||||
name="Workspaces"
|
||||
order=1
|
@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
_getHeader "$name" "$author"
|
||||
|
||||
# Define File
|
||||
targetFile="$HOME/dotfiles/waybar/modules.json"
|
||||
settingsFile="$HOME/dotfiles/.settings/waybar_workspaces"
|
||||
|
||||
# Define Markers
|
||||
startMarker="START WORKSPACE"
|
||||
endMarker="END WORKSPACES"
|
||||
|
||||
# Define Replacement Template
|
||||
customtemplate="\"*\": VALUE"
|
||||
|
||||
# Select Value
|
||||
customvalue=$(gum choose 5 6 7 8 9 10)
|
||||
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
|
||||
_goBack
|
||||
fi
|
@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
# ____ _ _ _
|
||||
# / ___| ___| |_| |_(_)_ __ __ _ ___
|
||||
# \___ \ / _ \ __| __| | '_ \ / _` / __|
|
||||
# ___) | __/ |_| |_| | | | | (_| \__ \
|
||||
# |____/ \___|\__|\__|_|_| |_|\__, |___/
|
||||
# |___/
|
||||
# The Hyprland Settings Script
|
||||
# by Stephan Raabe (2023)
|
||||
# -----------------------------------------------------
|
||||
|
||||
clear
|
||||
installFolder=$(dirname "$(pwd)")
|
||||
|
||||
# Source files
|
||||
source .library/version.sh
|
||||
source .library/library.sh
|
||||
|
||||
# Define global variables
|
||||
modules_path="modules"
|
||||
current=""
|
||||
back=""
|
||||
clickArr=""
|
||||
confDir="conf"
|
||||
|
||||
# Start Application
|
||||
_getModules $(pwd)/$modules_path
|
@ -1,3 +1,2 @@
|
||||
#!/bin/bash
|
||||
cd ~/dotfiles/hypr/settings
|
||||
exec ./settings.sh
|
||||
$HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
|
@ -73,6 +73,7 @@ fi
|
||||
if [[ $profile == *"Qtile"* ]]; then
|
||||
source .install/qtile-dotfiles.sh
|
||||
fi
|
||||
source .install/settings.sh
|
||||
source .install/apps.sh
|
||||
source .install/gtk.sh
|
||||
source .install/bashrc.sh
|
||||
|
BIN
screenshots/screenshot-dotfiles-settings-app.png
Normal file
BIN
screenshots/screenshot-dotfiles-settings-app.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 308 KiB |
BIN
screenshots/v283/screenshot-283-1.png
Normal file
BIN
screenshots/v283/screenshot-283-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 MiB |
@ -65,6 +65,11 @@
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
// Empty
|
||||
"custom/empty": {
|
||||
"format": ""
|
||||
},
|
||||
|
||||
// Youtube Subscriber Count
|
||||
"custom/youtube": {
|
||||
"format": " {}",
|
||||
@ -114,7 +119,7 @@
|
||||
// Settings
|
||||
"custom/settings": {
|
||||
"format": "",
|
||||
"on-click": "alacritty --class dotfiles-floating -e ~/dotfiles/hypr/start-settings.sh",
|
||||
"on-click": "~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
@ -218,6 +223,8 @@
|
||||
|
||||
// Clock
|
||||
"clock": {
|
||||
// TIMEDATEFORMAT
|
||||
"format": "{:%H:%M %a}",
|
||||
// "timezone": "America/New_York",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
// START CLOCK FORMAT
|
||||
|
@ -10,17 +10,9 @@
|
||||
//
|
||||
{
|
||||
// General Settings
|
||||
|
||||
// Position TOP
|
||||
// "layer": "top",
|
||||
// "margin-top": 0,
|
||||
// "margin-bottom": 0,
|
||||
|
||||
// Position BOTTOM
|
||||
"position": "bottom",
|
||||
"margin-top": 0,
|
||||
"margin-bottom": 0,
|
||||
|
||||
"layer": "top",
|
||||
"margin-left": 0,
|
||||
"margin-right": 0,
|
||||
@ -33,11 +25,10 @@
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/settings",
|
||||
// START TASK TOOGLE
|
||||
"wlr/taskbar",
|
||||
// END TASK TOOGLE
|
||||
"group/quicklinks",
|
||||
"hyprland/window"
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
],
|
||||
|
||||
// Modules Center
|
||||
@ -49,22 +40,14 @@
|
||||
"modules-right": [
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
// START BT TOOGLE
|
||||
"bluetooth",
|
||||
// END BT TOOGLE
|
||||
"battery",
|
||||
// START NETWORK TOOGLE
|
||||
"network",
|
||||
// END NETWORK TOOGLE
|
||||
"group/hardware",
|
||||
"group/settings",
|
||||
"custom/cliphist",
|
||||
// START IDLE TOOGLE
|
||||
"idle_inhibitor",
|
||||
// END IDLE TOOGLE
|
||||
// START TRAY TOOGLE
|
||||
"tray",
|
||||
// END TRAY TOOGLE
|
||||
"custom/exit",
|
||||
"custom/ml4w-welcome",
|
||||
"clock"
|
||||
|
@ -10,17 +10,9 @@
|
||||
//
|
||||
{
|
||||
// General Settings
|
||||
|
||||
// Position TOP
|
||||
"layer": "top",
|
||||
"margin-top": 0,
|
||||
"margin-bottom": 0,
|
||||
|
||||
// Position BOTTOM
|
||||
// "position": "bottom",
|
||||
// "margin-top": 0,
|
||||
// "margin-bottom": 14,
|
||||
|
||||
"layer": "top",
|
||||
"margin-left": 0,
|
||||
"margin-right": 0,
|
||||
@ -33,11 +25,10 @@
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/settings",
|
||||
// START TASK TOOGLE
|
||||
"wlr/taskbar",
|
||||
// END TASK TOOGLE
|
||||
"group/quicklinks",
|
||||
"hyprland/window"
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
],
|
||||
|
||||
// Modules Center
|
||||
@ -49,21 +40,13 @@
|
||||
"modules-right": [
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
// START BT TOOGLE
|
||||
"bluetooth",
|
||||
// END BT TOOGLE
|
||||
"battery",
|
||||
// START NETWORK TOOGLE
|
||||
"network",
|
||||
// END NETWORK TOOGLE
|
||||
"group/hardware",
|
||||
"custom/cliphist",
|
||||
// START IDLE TOOGLE
|
||||
"idle_inhibitor",
|
||||
// END IDLE TOOGLE
|
||||
// START TRAY TOOGLE
|
||||
"tray",
|
||||
// END TRAY TOOGLE
|
||||
"custom/exit",
|
||||
"custom/ml4w-welcome",
|
||||
"clock"
|
||||
|
@ -10,17 +10,9 @@
|
||||
//
|
||||
{
|
||||
// General Settings
|
||||
|
||||
// Position TOP
|
||||
// "layer": "top",
|
||||
// "margin-top": 14,
|
||||
// "margin-bottom": 0,
|
||||
|
||||
// Position BOTTOM
|
||||
"position": "bottom",
|
||||
"margin-top": 0,
|
||||
"margin-bottom": 14,
|
||||
|
||||
"layer": "top",
|
||||
"margin-left": 0,
|
||||
"margin-right": 0,
|
||||
@ -33,37 +25,28 @@
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/settings",
|
||||
// START TASK TOOGLE
|
||||
"wlr/taskbar",
|
||||
// END TASK TOOGLE
|
||||
"group/quicklinks",
|
||||
"hyprland/window"
|
||||
],
|
||||
|
||||
// Modules Center
|
||||
"modules-center": [
|
||||
"hyprland/workspaces"
|
||||
"hyprland/workspaces",
|
||||
"custom/empty"
|
||||
],
|
||||
|
||||
// Modules Right
|
||||
"modules-right": [
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
// START BT TOOGLE
|
||||
"bluetooth",
|
||||
// END BT TOOGLE
|
||||
"battery",
|
||||
// START NETWORK TOOGLE
|
||||
"network",
|
||||
// END NETWORK TOOGLE
|
||||
"group/hardware",
|
||||
"custom/cliphist",
|
||||
// START IDLE TOOGLE
|
||||
"idle_inhibitor",
|
||||
// END IDLE TOOGLE
|
||||
// START TRAY TOOGLE
|
||||
"tray",
|
||||
// END TRAY TOOGLE
|
||||
"custom/exit",
|
||||
"custom/ml4w-welcome",
|
||||
"clock"
|
||||
|
@ -10,16 +10,8 @@
|
||||
//
|
||||
{
|
||||
// General Settings
|
||||
|
||||
// Position TOP
|
||||
"layer": "top",
|
||||
"margin-bottom": 0,
|
||||
|
||||
// Position BOTTOM
|
||||
// "position": "bottom",
|
||||
// "margin-top": 0,
|
||||
// "margin-bottom": 14,
|
||||
|
||||
"layer": "top",
|
||||
"margin-left": 0,
|
||||
"margin-right": 0,
|
||||
@ -38,30 +30,23 @@
|
||||
|
||||
// Modules Center
|
||||
"modules-center": [
|
||||
"hyprland/window"
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
],
|
||||
|
||||
// Modules Right
|
||||
"modules-right": [
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
// START BT TOOGLE
|
||||
"bluetooth",
|
||||
// END BT TOOGLE
|
||||
"battery",
|
||||
// START NETWORK TOOGLE
|
||||
"network",
|
||||
// END NETWORK TOOGLE
|
||||
"group/hardware",
|
||||
"custom/cliphist",
|
||||
// START IDLE TOOGLE
|
||||
"idle_inhibitor",
|
||||
// END IDLE TOOGLE
|
||||
"custom/exit",
|
||||
"clock",
|
||||
// START TRAY TOOGLE
|
||||
"tray",
|
||||
// END TRAY TOOGLE
|
||||
"custom/ml4w-welcome"
|
||||
]
|
||||
}
|
||||
|
@ -10,17 +10,9 @@
|
||||
//
|
||||
{
|
||||
// General Settings
|
||||
|
||||
// Position TOP
|
||||
"layer": "top",
|
||||
"margin-top": 14,
|
||||
"margin-bottom": 0,
|
||||
|
||||
// Position BOTTOM
|
||||
// "position": "bottom",
|
||||
// "margin-top": 0,
|
||||
// "margin-bottom": 14,
|
||||
|
||||
"layer": "top",
|
||||
"margin-left": 0,
|
||||
"margin-right": 0,
|
||||
@ -33,11 +25,10 @@
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/settings",
|
||||
// START TASK TOOGLE
|
||||
"wlr/taskbar",
|
||||
// END TASK TOOGLE
|
||||
"group/quicklinks",
|
||||
"hyprland/window"
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
],
|
||||
|
||||
// Modules Center
|
||||
@ -49,21 +40,13 @@
|
||||
"modules-right": [
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
// START BT TOOGLE
|
||||
"bluetooth",
|
||||
// END BT TOOGLE
|
||||
"battery",
|
||||
// START NETWORK TOOGLE
|
||||
"network",
|
||||
// END NETWORK TOOGLE
|
||||
"group/hardware",
|
||||
"custom/cliphist",
|
||||
// START IDLE TOOGLE
|
||||
"idle_inhibitor",
|
||||
// END IDLE TOOGLE
|
||||
// START TRAY TOOGLE
|
||||
"tray",
|
||||
// END TRAY TOOGLE
|
||||
"custom/exit",
|
||||
"custom/ml4w-welcome",
|
||||
"clock"
|
||||
|
@ -34,9 +34,7 @@
|
||||
"custom/settings",
|
||||
"custom/waybarthemes",
|
||||
"custom/wallpaper",
|
||||
// START TASK TOOGLE
|
||||
// "wlr/taskbar",
|
||||
// END TASK TOOGLE
|
||||
"group/quicklinks",
|
||||
"hyprland/window",
|
||||
"custom/starter"
|
||||
@ -51,21 +49,13 @@
|
||||
"modules-right": [
|
||||
"custom/updates",
|
||||
"pulseaudio",
|
||||
// START BT TOOGLE
|
||||
"bluetooth",
|
||||
// END BT TOOGLE
|
||||
"battery",
|
||||
// START NETWORK TOOGLE
|
||||
"network",
|
||||
// END NETWORK TOOGLE
|
||||
"group/hardware",
|
||||
"custom/cliphist",
|
||||
// START IDLE TOOGLE
|
||||
"idle_inhibitor",
|
||||
// END IDLE TOOGLE
|
||||
// START TRAY TOOGLE
|
||||
"tray",
|
||||
// END TRAY TOOGLE
|
||||
"custom/exit",
|
||||
"custom/ml4w-welcome",
|
||||
"clock"
|
||||
|
Loading…
Reference in New Issue
Block a user