This commit is contained in:
Stephan Raabe 2024-03-07 15:51:34 +01:00
parent 1fe8a3bc7a
commit f3cc851979
99 changed files with 280 additions and 1423 deletions

View File

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

View File

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

View File

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

View File

@ -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
View 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()

View File

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

View File

@ -1 +1 @@
2.8.2.1
2.8.3BETA

View File

@ -1 +1 @@
2821
2830

View File

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

View File

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

Binary file not shown.

Binary file not shown.

View 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

View File

@ -1,9 +0,0 @@
# _ _ _ _
# | |__ _ _ _ __ _ __(_) __| | | ___
# | '_ \| | | | '_ \| '__| |/ _` | |/ _ \
# | | | | |_| | |_) | | | | (_| | | __/
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
# |___/|_|
#
# Disabled

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +0,0 @@
.gitignore
.git
.dev
README.md
CHANGELOG
LICENSE
install.sh
create.sh
.target.sh

View File

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

View File

@ -1 +0,0 @@
version="2.0"

View File

@ -1,3 +0,0 @@
name="Animations"
order=1
author="Stephan Raabe ML4W"

View File

@ -1,7 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
sel=""
_getConfSelector animation.conf animations
_getConfEditor animation.conf $sel animations
_reloadModule

View File

@ -1,3 +0,0 @@
name="Appearance"
order=10
author="Stephan Raabe ML4W"

View File

@ -1,3 +0,0 @@
name="Decorations"
order=1
author="Stephan Raabe ML4W"

View File

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

View File

@ -1,3 +0,0 @@
#!/bin/bash
_getHeader "$name"

View File

@ -1,3 +0,0 @@
name="Windows"
order=1
author="Stephan Raabe ML4W"

View File

@ -1,7 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
sel=""
_getConfSelector window.conf windows
_getConfEditor window.conf $sel windows
_reloadModule

View File

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

View File

@ -1,4 +0,0 @@
name="Keybindings"
order=20
author="Stephan Raabe ML4W"

View File

@ -1,8 +0,0 @@
#!/bin/bash
_getHeader "$name"
sel=""
_getConfSelector keybinding.conf keybindings
_getConfEditor keybinding.conf $sel keybindings
_reloadModule

View File

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

View File

@ -1,2 +0,0 @@
name="System"
order=30

View File

@ -1,3 +0,0 @@
name="Custom"
order=10
author="Stephan Raabe ML4W"

View File

@ -1,6 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
vim ~/dotfiles/hypr/conf/custom.conf
_goBack

View File

@ -1,2 +0,0 @@
name="Browser"
order=1

View File

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

View File

@ -1,3 +0,0 @@
name="Default Applications"
order=1
author="Stephan Raabe ML4W"

View File

@ -1,2 +0,0 @@
name="Filemanager"
order=1

View File

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

View File

@ -1,2 +0,0 @@
#!/bin/bash
_getHeader "$name"

View File

@ -1,2 +0,0 @@
name="Network"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Software"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Terminal"
order=1

View File

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

View File

@ -1,3 +0,0 @@
name="Environment"
order=05
author="Stephan Raabe ML4W"

View File

@ -1,7 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
sel=""
_getConfSelector environment.conf environments
_getConfEditor environment.conf $sel environments
_reloadModule

View File

@ -1,2 +0,0 @@
name="Keyboard"
order=30

View File

@ -1,2 +0,0 @@
#!/bin/bash
_getHeader "$name"

View File

@ -1,2 +0,0 @@
name="Natural Scrolling"
order=1

View File

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

View File

@ -1,2 +0,0 @@
#!/bin/bash
_getHeader "$name"

View File

@ -1,3 +0,0 @@
name="Monitor"
order=01
author="Stephan Raabe ML4W"

View File

@ -1,7 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
sel=""
_getConfSelector monitor.conf monitors
_getConfEditor monitor.conf $sel monitors
_reloadModule

View File

@ -1,2 +0,0 @@
name="nw-applet "
order=1

View File

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

View File

@ -1,4 +0,0 @@
name="Windowrules"
order=09
author="Stephan Raabe ML4W"

View File

@ -1,7 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
sel=""
_getConfSelector windowrule.conf windowrules
_getConfEditor windowrule.conf $sel windowrules
_reloadModule

View File

@ -1,2 +0,0 @@
name="Apps Label"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Show/Hide ChatGPT"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Waybar"
order=50

View File

@ -1,2 +0,0 @@
name="Date Format"
order=1

View File

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

View File

@ -1,2 +0,0 @@
#!/bin/bash
_getHeader "$name"

View File

@ -1,2 +0,0 @@
name="Show/Hide Network"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Show/Hide Lock"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Show/Hide Systray"
order=1

View File

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

View File

@ -1,2 +0,0 @@
name="Themes"
order=1

View File

@ -1,4 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
setsid $HOME/dotfiles/waybar/themeswitcher.sh 1>/dev/null 2>&1 &
_goBack

View File

@ -1,2 +0,0 @@
name="Workspaces"
order=1

View File

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

View File

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

View File

@ -1,3 +1,2 @@
#!/bin/bash
cd ~/dotfiles/hypr/settings
exec ./settings.sh
$HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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