Compare commits

...

124 Commits

Author SHA1 Message Date
Stephan Raabe
f4dd412733 Updates 2024-03-27 16:15:27 +01:00
Stephan Raabe
d0323714b4 Updates 2024-03-27 14:11:45 +01:00
Stephan Raabe
ffa3ecafd2 Updates 2024-03-27 13:25:38 +01:00
Stephan Raabe
171c3a1a6a Updates 2024-03-26 21:51:08 +01:00
Stephan Raabe
8cd2a50eda Updates 2024-03-26 21:34:19 +01:00
Stephan Raabe
66c69a874a Updates 2024-03-26 20:47:12 +01:00
Stephan Raabe
adfea0620e Updates 2024-03-26 14:30:58 +01:00
Stephan Raabe
302069f938 Updates 2024-03-26 13:27:58 +01:00
Stephan Raabe
2bbd4cf404 Updates 2024-03-26 12:24:43 +01:00
Stephan Raabe
04b3c75d03 Updates 2024-03-26 11:36:33 +01:00
Stephan Raabe
8f238013a4 Updates 2024-03-21 18:52:39 +01:00
Stephan Raabe
024b6576f7 Updates 2024-03-20 17:00:55 +01:00
Stephan Raabe
c59332a910 Updates 2024-03-20 16:58:42 +01:00
Stephan Raabe
de456d061d Updates 2024-03-20 16:57:39 +01:00
Stephan Raabe
796c4c3f39 Updates 2024-03-20 15:31:56 +01:00
Stephan Raabe
f291d00c3e Updates 2024-03-20 15:05:09 +01:00
Stephan Raabe
e8a1ffa19d Updates 2024-03-20 13:18:13 +01:00
Stephan Raabe
60515b8486 Updates 2024-03-20 12:59:44 +01:00
Stephan Raabe
2b44d0d20d Updates 2024-03-20 11:54:53 +01:00
Stephan Raabe
44933108ce Update README.md 2024-03-20 10:47:10 +00:00
Stephan Raabe
0de2d15a15 Updates 2024-03-20 11:34:07 +01:00
Stephan Raabe
ed1c0d9ce5 Updates 2024-03-20 11:24:31 +01:00
Stephan Raabe
c179958abf Updates 2024-03-20 11:08:37 +01:00
Stephan Raabe
f1e2f2605c Updates 2024-03-20 10:47:10 +01:00
Stephan Raabe
0c8cfa3222 Updates 2024-03-20 10:33:44 +01:00
Stephan Raabe
3f74bfb960 Updates 2024-03-20 10:22:04 +01:00
Stephan Raabe
4eaf9f7b53 Updates 2024-03-20 10:10:25 +01:00
Stephan Raabe
1a051b9e17 Updates 2024-03-20 09:25:52 +01:00
Stephan Raabe
8c10acf039 Updates 2024-03-20 09:14:39 +01:00
Stephan Raabe
79193eaade Updates 2024-03-19 22:03:31 +01:00
Stephan Raabe
62d62dee15 Updates 2024-03-19 20:58:24 +01:00
Stephan Raabe
19e01fc42b Updates 2024-03-19 17:05:38 +01:00
Stephan Raabe
8056a3ca34 Updates 2024-03-19 17:01:01 +01:00
Stephan Raabe
1a96bc81d5 Updates 2024-03-19 16:59:26 +01:00
Stephan Raabe
4ecab902c6 Updates 2024-03-19 16:58:35 +01:00
Stephan Raabe
794be97b6c Updates 2024-03-18 18:24:08 +01:00
Stephan Raabe
823e68c066 Update 2024-03-18 17:14:42 +01:00
Stephan Raabe
c7be4381ed Updates 2024-03-18 17:03:28 +01:00
Stephan Raabe
7d51eaf779 Updates 2024-03-18 16:59:36 +01:00
Stephan Raabe
7ce7c7ef3e Update 2024-03-18 16:37:48 +01:00
Stephan Raabe
8c4c25cbeb Updates 2024-03-18 16:12:48 +01:00
Stephan Raabe
51c5fc1654 Updates 2024-03-18 10:50:51 +01:00
Stephan Raabe
b96d97b70a Updates 2024-03-17 18:21:55 +01:00
Stephan Raabe
001527ba1c Updates 2024-03-17 10:47:38 +01:00
Stephan Raabe
b4e291cc74 Updates 2024-03-16 17:06:01 +01:00
Stephan Raabe
1350de4dd5 Update 2024-03-16 16:25:32 +01:00
Stephan Raabe
4064cfc99c Updates 2024-03-16 16:24:42 +01:00
Stephan Raabe
c5613a3377 Updates 2024-03-16 16:24:24 +01:00
Stephan Raabe
688415017c Updates 2024-03-16 16:23:20 +01:00
Stephan Raabe
75501d5ce0 Updates 2024-03-16 16:21:08 +01:00
Stephan Raabe
472ff20131 Updates 2024-03-16 13:19:33 +01:00
Stephan Raabe
b6a88b123a Updates 2024-03-16 10:48:47 +01:00
Stephan Raabe
30505651f4 Updates 2024-03-15 22:32:51 +01:00
Stephan Raabe
dfa91f0107 Updates 2024-03-15 08:54:25 +01:00
Stephan Raabe
c6139fd816 Updates 2024-03-15 08:49:33 +01:00
Stephan Raabe
c2746d99d9 Updates 2024-03-15 08:47:50 +01:00
Stephan Raabe
0632b6b733 Updates 2024-03-15 08:45:25 +01:00
Stephan Raabe
9cbd58d3c0 Updates 2024-03-15 08:44:26 +01:00
Stephan Raabe
239fe10a3c Update 2024-03-15 08:18:19 +01:00
Stephan Raabe
6bc2f993d0 Updates 2024-03-14 18:29:09 +01:00
Stephan Raabe
ff66140958 Updates 2024-03-14 18:25:46 +01:00
Stephan Raabe
fbc1cc87ea Updates 2024-03-14 18:20:24 +01:00
Stephan Raabe
641073201c Updates 2024-03-14 17:27:15 +01:00
Stephan Raabe
93476ecd9d Updates 2024-03-14 17:18:48 +01:00
Stephan Raabe
3fcda93405 Updates 2024-03-14 13:57:52 +01:00
Stephan Raabe
bccabee855 Updates 2024-03-14 13:51:53 +01:00
Stephan Raabe
4047c73d60 Updates 2024-03-14 13:42:18 +01:00
Stephan Raabe
1bca430e8e Updates 2024-03-09 11:42:41 +01:00
Stephan Raabe
bca185beaa Updates 2024-03-09 09:44:14 +01:00
Stephan Raabe
ea9b6b9dc3 Updates 2024-03-08 10:31:55 +01:00
Stephan Raabe
6e3535fb6c Updates 2024-03-08 10:18:45 +01:00
Stephan Raabe
5a80ddea9d Updates 2024-03-07 21:26:02 +01:00
Stephan Raabe
f3cc851979 Updates 2024-03-07 15:51:34 +01:00
Stephan Raabe
1fe8a3bc7a Updates for hypridle conf 2024-03-05 15:30:32 +01:00
Stephan Raabe
b115ed73ff Updates 2024-03-04 18:37:37 +01:00
Stephan Raabe
0446079d43 Updates 2024-03-04 12:51:30 +01:00
Stephan Raabe
865d51582f Updates 2024-03-04 08:53:40 +01:00
Stephan Raabe
017d27678f Updates 2024-03-03 10:57:38 +01:00
Stephan Raabe
984362208d Updates 2024-03-03 10:56:40 +01:00
Stephan Raabe
c3f9b8605b Updates 2024-03-03 10:54:14 +01:00
Stephan Raabe
a3322b9b47 Updates 2024-03-02 21:19:22 +01:00
Stephan Raabe
39b540ea20 Updates 2024-03-02 21:01:39 +01:00
Stephan Raabe
16eb1b7915 Updates 2024-03-02 08:38:58 +01:00
Stephan Raabe
0c4626c6e1 Updates 2024-03-01 21:42:49 +01:00
Stephan Raabe
cc59007368 Updates 2024-03-01 21:42:25 +01:00
Stephan Raabe
6ecf2bbb07 Updates 2024-03-01 21:23:40 +01:00
Stephan Raabe
a2804a54a7 Update 2024-03-01 21:09:33 +01:00
Stephan Raabe
2741a595d0 Updates 2024-03-01 18:32:57 +01:00
Stephan Raabe
97aa0af0a7 Updates 2024-03-01 13:36:35 +01:00
Stephan Raabe
008df7b755 Updates 2024-03-01 13:00:09 +01:00
Stephan Raabe
091e5bb040 Updates 2024-03-01 11:32:45 +01:00
Stephan Raabe
49f8e87141 Updates 2024-03-01 10:47:14 +01:00
Stephan Raabe
32b5202898 Updates 2024-03-01 10:41:01 +01:00
Stephan Raabe
3398dd1588 Updates 2024-03-01 09:23:51 +01:00
Stephan Raabe
1ff9107fe9 Updates 2024-03-01 08:55:45 +01:00
Stephan Raabe
bf9e9a6f33 Updates 2024-02-29 21:46:01 +01:00
Stephan Raabe
dbf9df8b31 Updates 2024-02-29 17:43:33 +01:00
Stephan Raabe
ebdb149999 Updates 2024-02-29 17:33:59 +01:00
Stephan Raabe
cc53ed0679 Update 2024-02-29 17:18:00 +01:00
Stephan Raabe
202a28bd7f Updates 2024-02-29 17:16:36 +01:00
Stephan Raabe
d65e517dee Updates 2024-02-28 17:02:35 +01:00
Stephan Raabe
4f55f5817f Updates 2024-02-28 17:01:05 +01:00
Stephan Raabe
88451354aa Update 2024-02-28 16:39:23 +01:00
Stephan Raabe
b0ed32719e Updates 2024-02-28 13:58:33 +01:00
Stephan Raabe
087b58e230 nvidia.conf environment variation aded. 2024-02-28 11:13:53 +01:00
Stephan Raabe
02e1336fe0 Updates 2024-02-28 08:37:29 +01:00
Stephan Raabe
69c858fb65 Updates 2024-02-28 08:36:09 +01:00
Stephan Raabe
6ef4bdae25 Updates 2024-02-27 15:57:20 +01:00
Stephan Raabe
4c229fac9a Updates 2024-02-27 15:25:41 +01:00
Stephan Raabe
c6d5376f43 Updates 2024-02-27 15:22:31 +01:00
Stephan Raabe
98d89679b5 Updates 2024-02-27 15:01:00 +01:00
Stephan Raabe
9104834d7f Updates 2024-02-27 14:54:19 +01:00
Stephan Raabe
30913d6938 Updates 2024-02-27 14:22:38 +01:00
Stephan Raabe
6f99f143c6 Update wlogout blur 2024-02-27 13:34:59 +01:00
Stephan Raabe
fec8e9fb96 Autohide for waybar bluetooth module if no device detected 2024-02-27 13:15:56 +01:00
Stephan Raabe
d7aabb2599 Fixed filemanager keybinding 2024-02-27 11:24:52 +01:00
Stephan Raabe
e68481dece Add loadconfig.sh 2024-02-27 11:23:19 +01:00
Stephan Raabe
01c90fa16d Updates 2024-02-27 11:16:40 +01:00
Stephan Raabe
c6ee368c6f Update version 2024-02-27 10:45:16 +01:00
Stephan Raabe
950df3d84c Fixed blurred background for wlogout. Create blurred version with magick 2024-02-27 10:36:51 +01:00
Stephan Raabe
ede46d7ef4 Add qalculate-gtk back and window rule for floating 2024-02-27 08:41:58 +01:00
Stephan Raabe
37a55e74b6 Add keybinding for git credential helper store 2024-02-27 08:38:40 +01:00
Stephan Raabe
05720f7ee6 Update keybinding for hyprlock 2024-02-27 08:38:16 +01:00
Stephan Raabe
5db0a8965a Update 2024-02-26 08:29:47 +01:00
156 changed files with 1107 additions and 1681 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
@ -58,6 +59,7 @@ alias gpl="git pull"
alias gst="git stash"
alias gsp="git stash; git pull"
alias gcheck="git checkout"
alias gcredential="git config credential.helper store"
# -----------------------------------------------------
# SCRIPTS

24
.install/apps.sh Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
# ------------------------------------------------------
# Apps Installation
# ------------------------------------------------------
echo -e "${GREEN}"
figlet "ML4W Apps"
echo -e "${NONE}"
if [ ! -d $HOME/.local/share/applications/ ] ;then
mkdir $HOME/.local/share/applications
echo ":: $HOME/.local/share/applications created"
fi
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-welcome.desktop
cp $HOME/dotfiles/apps/ml4w-welcome.desktop $HOME/.local/share/applications
echo ":: ML4W Welcome App installed successfully"
sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop
cp $HOME/dotfiles/apps/ml4w-dotfiles-settings.desktop $HOME/.local/share/applications
echo ":: ML4W Dotfiles Settings App installed successfully"
echo

View File

@ -15,45 +15,29 @@ fi
# Check for running NetworkManager.service
if [[ $(systemctl list-units --all -t service --full --no-legend "NetworkManager.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "NetworkManager.service" ]];then
echo "NetworkManager.service already running."
echo ":: NetworkManager.service already running."
else
sudo systemctl enable NetworkManager.service
sudo systemctl start NetworkManager.service
echo "NetworkManager.service activated successfully."
echo ":: NetworkManager.service activated successfully."
fi
# Check for running bluetooth.service
if [[ $(systemctl list-units --all -t service --full --no-legend "bluetooth.service" | sed 's/^\s*//g' | cut -f1 -d' ') == "bluetooth.service" ]];then
echo "bluetooth.service already running."
echo ":: bluetooth.service already running."
else
sudo systemctl enable bluetooth.service
sudo systemctl start bluetooth.service
echo "bluetooth.service activated successfully."
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."
if [ -d ~/dotfiles/hypr/settings/ ] ;then
rm -rf ~/dotfiles/hypr/settings
echo ":: ~/dotfiles/hypr/settings removed."
fi
# Create default folder structure
xdg-user-dirs-update
echo "Default folders created..."
echo
echo "Cleanup done."
echo ":: Cleanup done."

View File

@ -2,9 +2,7 @@
# Confirm Start
# ------------------------------------------------------
echo "IMPORTANT: Please make sure that your system and your packages are up to date (sudo pacman -Syu or yay)."
echo "You can cancel the installation at any time with CTRL + C"
echo "If you have already installed a window manager like sway, please backup your .config folder."
SCRIPT=$(realpath "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
@ -17,21 +15,21 @@ if [ $SCRIPTPATH = "/home/$USER/dotfiles" ]; then
fi
fi
if [ ! -d ~/dotfiles ];then
if gum confirm "DO YOU WANT TO START THE INSTALLATION NOW?" ;then
if gum confirm "DO YOU WANT TO START THE INSTALLATION OF THE ML4W DOTFILES NOW?" ;then
echo "Installation started."
elif [ $? -eq 130 ]; then
exit 130
else
echo "Installation canceled."
echo ":: Installation canceled."
exit;
fi
else
if gum confirm "DO YOU WANT TO START THE UPDATE NOW?" ;then
echo "Update started."
if gum confirm "DO YOU WANT TO START THE UPDATE OF YOUR ML4W DOTFILES NOW?" ;then
echo ":: Update started."
elif [ $? -eq 130 ]; then
exit 130
else
echo "Update canceled."
echo ":: Update canceled."
exit;
fi
fi

View File

@ -59,7 +59,7 @@ fi
if [ "$dmsel" == "Install sddm" ] ;then
disman=0
# Try to force the installation of sddm-git
# Try to force the installation of sddm
echo "Install sddm"
yay -S --noconfirm sddm sddm-sugar-candy-git --ask 4

View File

@ -8,8 +8,10 @@ fi
if [ -d ~/dotfiles-versions/$version/vim ]; then
_installSymLink vim ~/.config/vim ~/dotfiles/vim/ ~/.config
fi
if [ -d ~/dotfiles-versions/$version/nvim ]; then
if [ $neovim == "1" ] ;then
if [ -d ~/dotfiles-versions/$version/nvim ]; then
_installSymLink nvim ~/.config/nvim ~/dotfiles/nvim/ ~/.config
fi
fi
if [ -d ~/dotfiles-versions/$version/starship ]; then
_installSymLink starship ~/.config/starship.toml ~/dotfiles/starship/starship.toml ~/.config/starship.toml
@ -35,5 +37,5 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi
echo "Symbolic links created."
echo ":: Symbolic links created."
echo

16
.install/neovim.sh Normal file
View File

@ -0,0 +1,16 @@
# ------------------------------------------------------
# Neovim
# ------------------------------------------------------
neovim=0
if [ -d ~/dotfiles/nvim ]; then
echo -e "${GREEN}"
figlet "Neovim"
echo -e "${NONE}"
if gum confirm "Do you want to install the ML4W Neovim configuration and overwrite your existing configuration?"; then
echo ":: ML4W Neovim configuration will be installed"
neovim=1
else
rm -rf ~/dotfiles-versions/$version/nvim/
echo ":: Installation of ML4W Neovim configuration skipped."
fi
fi

View File

@ -7,7 +7,6 @@ packagesPacman=(
"wget"
"unzip"
"alacritty"
"rofi"
"chromium"
"dunst"
"starship"
@ -49,6 +48,9 @@ packagesPacman=(
"libadwaita"
"python-pywal"
"xdg-desktop-portal"
"qalculate-gtk"
"imagemagick"
"guvcview"
);
packagesYay=(
@ -56,4 +58,5 @@ packagesYay=(
"bibata-cursor-theme"
"trizen"
"pacseek"
"rofi-lbonn-wayland"
);

View File

@ -13,4 +13,6 @@ packagesYay=(
"wlogout"
"nwg-look"
"emote"
"hypridle"
"hyprlock"
);

View File

@ -35,4 +35,4 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi
echo "Symbolic links created."
echo ":: Symbolic links created."

18
.install/reboot.sh Normal file
View File

@ -0,0 +1,18 @@
# ------------------------------------------------------
# Reboot
# ------------------------------------------------------
echo -e "${GREEN}"
figlet "Reboot"
echo -e "${NONE}"
echo "A reboot of your system is recommended."
if gum confirm "Do you want to reboot your system now?" ;then
echo ":: Rebooting now ..."
sleep 3
systemctl reboot
elif [ $? -eq 130 ]; then
exit 130
else
echo ":: Reboot skipped"
fi
echo ""

53
.install/remove.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/bash
# Remove Rofi Calc
if [[ $(_isInstalledPacman "rofi-calc") == 0 ]]; then
sudo pacman --noconfirm -Rns rofi-calc
echo ":: rofi-calc removed"
echo
fi
# Remove Rofi
if [[ $(_isInstalledPacman "rofi") == 0 ]]; then
sudo pacman --noconfirm -Rns rofi
echo ":: rofi removed"
echo
fi
# Remove Swayidle
if [[ $(_isInstalledPacman "swayidle") == 0 ]]; then
sudo pacman --noconfirm -Rns swayidle
echo ":: swayidle removed"
echo
fi
# Remove Swaylock
if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
yay --noconfirm -Rns swaylock-effects-git
echo ":: swaylock removed"
echo
fi
# Remove hypridle-bin
if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
yay --noconfirm -Rns hypridle-git
if [ -f /usr/lib/debug/usr/bin/hypridle.debug ] ;then
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
echo ":: /usr/lib/debug/usr/bin/hypridle.debug removed"
fi
echo ":: hypridle-git uninstalled."
echo ":: hypridle can now be installed."
echo
fi
# Remove hypridle-bin
if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then
yay --noconfirm -Rns hyprlock-git
if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
echo ":: /usr/lib/debug/usr/bin/hyprlock.debug removed"
fi
echo ":: hyprlock-git uninstalled."
echo ":: hyprlock can now be installed."
echo
fi

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

149
.install/restore.py Normal file
View File

@ -0,0 +1,149 @@
# __ __ _ _ ___ __ _
# | \/ | | | || \ \ / / _ __ ___ ___| |_ ___ _ __ ___
# | |\/| | | | || |\ \ /\ / / | '__/ _ \/ __| __/ _ \| '__/ _ \
# | | | | |__|__ _\ V V / | | | __/\__ \ || (_) | | | __/
# |_| |_|_____| |_| \_/\_/ |_| \___||___/\__\___/|_| \___|
#
import sys
import subprocess
import os
import json
import pathlib
import shutil
# Get script path
pathname = os.path.dirname(sys.argv[0])
class ML4WRestore:
waybar_themes = [
"ml4w-minimal",
"ml4w",
"ml4w-blur",
"ml4w-blur-bottom",
"ml4w-bottom"
]
defaults = {
"waybar_timeformat": "%H:%M",
"waybar_dateformat": "%a",
"waybar_custom_timedateformat": "",
"waybar_workspaces": 5,
"rofi_bordersize": 3,
"waybar_network": True,
"waybar_chatgpt": True,
"waybar_systray": True,
"waybar_screenlock": True,
"waybar_window": True
}
path_name = pathname # Path of Application
homeFolder = os.path.expanduser('~') # Path to home folder
dotfiles = homeFolder + "/dotfiles/"
settings = {}
def __init__(self):
# Load settings.json
settings_file = open(self.dotfiles + ".settings/settings.json")
settings_arr = json.load(settings_file)
for row in settings_arr:
self.settings[row["key"]] = row["value"]
self.loadSwitchAll("waybar_network","network")
self.loadSwitchAll("waybar_systray","tray")
self.loadSwitchAll("waybar_window","hyprland/window")
self.loadSwitchAll("waybar_screenlock","idle_inhibitor")
self.loadSwitch("waybar_chatgpt","custom/chatgpt")
# Waybar Workspaces
if "waybar_workspaces" in self.settings:
value = int(self.settings["waybar_workspaces"])
text = ' "*": ' + str(value)
self.replaceInFileNext("waybar/modules.json", "// START WORKSPACES", text)
print (":: waybar_workspaces restored")
# Rofi BorderSize
if "rofi_bordersize" in self.settings:
value = int(self.settings["rofi_bordersize"])
text = "* { border-width: " + str(value) + "px; }"
self.overwriteFile(".settings/rofi-border.rasi",text)
print (":: rofi_bordersize restored")
# Time/DateFormat
if "waybar_timeformat" in self.settings:
timeformat = self.settings["waybar_timeformat"]
else:
timeformat = self.defaults["waybar_timeformat"]
if "waybar_dateformat" in self.settings:
dateformat = self.settings["waybar_dateformat"]
else:
dateformat = self.defaults["waybar_dateformat"]
if "waybar_custom_timedateformat" in self.settings:
custom_format = self.settings["waybar_custom_timedateformat"]
else:
custom_format = self.defaults["waybar_custom_timedateformat"]
if custom_format != "":
timedate = ' "format": "{:' + custom_format + '}",'
self.replaceInFileNext("waybar/modules.json", "TIMEDATEFORMAT", timedate)
else:
timedate = ' "format": "{:' + timeformat + ' - ' + dateformat + '}",'
self.replaceInFileNext("waybar/modules.json", "TIMEDATEFORMAT", timedate)
print (":: timedate format restored")
def loadSwitch(self,k,m):
if k in self.settings:
if not self.settings[k]:
self.replaceInFile("waybar/modules.json",'"' + m + '"',' //"' + m + '",')
print (":: " + k + " restored")
def loadSwitchAll(self,k,m):
if k in self.settings:
if not self.settings[k]:
for t in self.waybar_themes:
self.replaceInFile("waybar/themes/" + t + "/config",'"' + m + '"',' //"' + m + '",')
print (":: " + k + " restored")
# Overwrite Text in File
def overwriteFile(self, f, text):
file=open(self.dotfiles + f,"w+")
file.write(text)
file.close()
# Replace Text in File
def replaceInFile(self, f, search, replace):
file = open(self.dotfiles + f, 'r')
lines = file.readlines()
count = 0
found = 0
# Strips the newline character
for l in lines:
count += 1
if search in l:
found = count
if found > 0:
lines[found - 1] = replace + "\n"
with open(self.dotfiles + f, 'w') as file:
file.writelines(lines)
# Replace Text in File
def replaceInFileNext(self, f, search, replace):
file = open(self.dotfiles + f, 'r')
lines = file.readlines()
count = 0
found = 0
# Strips the newline character
for l in lines:
count += 1
if search in l:
found = count
if found > 0:
lines[found] = replace + "\n"
with open(self.dotfiles + f, 'w') as file:
file.writelines(lines)
ml4wrestore = ML4WRestore()

View File

@ -8,7 +8,7 @@ monitorrestored=0
_showRestoreOptions() {
echo "The following configurations can be transferred into the new installation."
echo "(SPACE = select/unselect a profile. RETURN = confirm. No selection = CANCEL)"
echo "(SPACE = select/unselect a profile. RETURN = confirm. ESC/No selection = Skip Restore)"
echo ""
restorelist=""
if [ -f ~/dotfiles/.bashrc ]; then
@ -20,6 +20,13 @@ _showRestoreOptions() {
selectedlist+="~/dotfiles/.settings,"
fi
if [[ $profile == *"Hyprland"* ]]; then
if [ -f ~/dotfiles/hypr/hypridle.conf ]; then
if grep -Fxq "# Version 2.8.3" ~/dotfiles/hypr/hypridle.conf
then
restorelist+="~/dotfiles/hypr/hypridle.conf "
selectedlist+="~/dotfiles/hypr/hypridle.conf,"
fi
fi
if [ -f ~/dotfiles/hypr/conf/custom.conf ]; then
restorelist+="~/dotfiles/hypr/conf/custom.conf "
selectedlist+="~/dotfiles/hypr/conf/custom.conf,"
@ -68,18 +75,18 @@ _showRestoreOptions() {
echo "Selected to restore:"
echo "$restoreselect"
echo ""
confirmrestore=$(gum choose "Start restore" "Change restore" "Cancel restore")
confirmrestore=$(gum choose "Start restore" "Change restore" "Skip restore")
if [ "$confirmrestore" == "Start restore" ] ;then
_startRestore
elif [ "$confirmrestore" == "Change restore" ]; then
_showRestoreOptions
else
echo "Restore skipped."
echo ":: Restore skipped."
return 0
fi
else
echo "No files selected to restore."
confirmrestore=$(gum choose "Change restore" "Cancel restore")
confirmrestore=$(gum choose "Change restore" "Skip restore")
if [ -z "${confirmrestore}" ] ;then
echo "Installation canceled."
exit
@ -88,7 +95,7 @@ _showRestoreOptions() {
echo ""
_showRestoreOptions
else
echo "Restore skipped."
echo ":: Restore skipped."
return 0
fi
fi
@ -98,68 +105,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!"
rsync -avhp -I ~/dotfiles/.settings/ ~/dotfiles-versions/$version/.settings/
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!"
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
@ -167,7 +180,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
@ -176,158 +189,14 @@ _startRestore() {
}
if [ -d ~/dotfiles ]; then
echo -e "${GREEN}"
figlet "Restore"
echo -e "${NONE}"
echo -e "${GREEN}"
figlet "Restore"
echo -e "${NONE}"
restored=0
echo "The script will try to restore existing configurations."
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 Bluetooth
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
settingsFile="$HOME/dotfiles/.settings/waybar_bluetooth"
if [ -f $settingsFile ] ;then
startMarker="START BT TOOGLE"
endMarker="END BT TOOGLE"
customtext="$(cat $settingsFile)"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
echo "Waybar Bluetooth restored."
fi
# Restore Waybar Systray
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
settingsFile="$HOME/dotfiles/.settings/waybar_systray"
if [ -f $settingsFile ] ;then
startMarker="START TRAY TOOGLE"
endMarker="END TRAY TOOGLE"
customtext="$(cat $settingsFile)"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
echo "Waybar Systray restored."
fi
# Restore Waybar Network
targetFile1="$HOME/dotfiles-versions/$version/waybar/themes/ml4w/config"
targetFile2="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur/config"
targetFile3="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-blur-bottom/config"
targetFile4="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-bottom/config"
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
settingsFile="$HOME/dotfiles/.settings/waybar_network"
if [ -f $settingsFile ] ;then
startMarker="START NETWORK TOOGLE"
endMarker="END NETWORK TOOGLE"
customtext="$(cat $settingsFile)"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
echo "Waybar Network restored."
fi
# Restore Waybar Idle
targetFile1="$HOME/dotfiles/waybar/themes/ml4w/config"
targetFile2="$HOME/dotfiles/waybar/themes/ml4w-blur/config"
targetFile3="$HOME/dotfiles/waybar/themes/ml4w-blur-bottom/config"
targetFile4="$HOME/dotfiles/waybar/themes/ml4w-bottom/config"
targetFile5="$HOME/dotfiles-versions/$version/waybar/themes/ml4w-minimal/config"
settingsFile="$HOME/dotfiles/.settings/waybar_swaylock"
if [ -f $settingsFile ] ;then
startMarker="START IDLE TOOGLE"
endMarker="END IDLE TOOGLE"
customtext="$(cat $settingsFile)"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile1"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile2"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile3"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile4"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile5"
echo "Waybar Idle restored."
fi
# Restore Waybar nmapplet
targetFile="$HOME/dotfiles-versions/$version/hypr/conf/autostart.conf"
settingsFile="$HOME/dotfiles/.settings/waybar_nmapplet"
if [ -f $settingsFile ] ;then
startMarker="START NM APPLET"
endMarker="END NM APPLET"
customtext="$(cat $settingsFile)"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
echo "nm-applet restored."
fi
# Restore Keyboard natural_scroll
targetFile="$HOME/dotfiles-versions/$version/hypr/conf/keyboard.conf"
settingsFile="$HOME/dotfiles/.settings/keyboard_naturalscroll"
if [ -f $settingsFile ] ;then
findMarker="natural_scroll"
customtext="$(cat $settingsFile)"
_replaceLineInFile "$findMarker" "$customtext" "$targetFile"
echo "keyboard natural_scroll restored."
fi
# Restore Start Swaylock
targetFile="$HOME/dotfiles/hypr/scripts/lockscreentime.sh"
settingsFile="$HOME/dotfiles/.settings/hypr_lockscreen"
if [ -f $settingsFile ] ;then
startMarker="START SWAYIDLE"
endMarker="END SWAYIDLE"
customtext="$(cat $settingsFile)"
_replaceInFile "$startMarker" "$endMarker" "$customtext" "$targetFile"
echo "Swaylock start restored."
fi
echo ""
fi

View File

@ -1,32 +0,0 @@
#!/bin/bash
echo -e "${GREEN}"
figlet "Screen lock"
echo -e "${NONE}"
if [[ $(_isInstalledYay "hypridle-git") == 1 ]] || [[ $(_isInstalledYay "hyprlock-git") == 1 ]]; then
echo "You can install hypridle and hyprlock to lock your screen automatically."
echo "These are the new standard screen locking packages of the ML4W dotfiles."
echo "Screenlocking will not work anymore if you keep swaylock."
echo "The installation is highly recommended."
if gum confirm "Do you want to install hypridle and hyprlock?" ;then
# Install Hypridle and Hyprlock
yay --noconfirm -S hypridle-git hyprlock-git
# Remove Swayidle
if [[ $(_isInstalledPacman "swayidle") == 0 ]]; then
sudo pacman --noconfirm -Rns swayidle
fi
# Remove Swaylock
if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
yay --noconfirm -Rns swaylock-effects-git
fi
fi
else
echo ":: hypridle and hyprlock are already installed."
if gum confirm "Do you want to force a reinstallation to get the latest versions?" ;then
yay --noconfirm -S hypridle-git hyprlock-git
fi
fi
echo

15
.install/settings.sh Normal file
View File

@ -0,0 +1,15 @@
if [ "$restored" == "1" ]; then
echo -e "${GREEN}"
figlet "Restore Settings"
echo -e "${NONE}"
python .install/restore.py
else
if [ -f ~/dotfiles/.settings/settings.json ] ;then
rm ~/dotfiles/.settings/settings.json
echo ":: settings.json removed"
fi
if [ -f ~/.cache/.themestyle.sh ] ;then
rm ~/.cache/.themestyle.sh
echo ":: .themestyle.sh removed"
fi
fi

View File

@ -8,6 +8,7 @@ input {
kb_model =
kb_options =
numlock_by_default = true
mouse_refocus=false
# For United States
# kb_layout = us

11
.install/updatesystem.sh Normal file
View File

@ -0,0 +1,11 @@
# ------------------------------------------------------
# Update System
# ------------------------------------------------------
echo -e "${GREEN}"
figlet "System Update"
echo -e "${NONE}"
echo "It's important that your system is up-to-date before you proceed with the installation of the ML4W Dotfiles."
if gum confirm "Do you want to update the packages of your system with yay now?" ;then
yay
fi

1
.settings/blur.sh Normal file
View File

@ -0,0 +1 @@
50x30

1
.settings/editor.sh Executable file
View File

@ -0,0 +1 @@
mousepad

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

1
.settings/rofi-font.rasi Normal file
View File

@ -0,0 +1 @@
configuration { font: "Fira Sans 11"; }

View File

@ -1 +1 @@
2.8.1
2.8.3.4

View File

@ -1 +1 @@
281
2834

View File

@ -1,3 +1,45 @@
Version 2.8.3.4
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.4
--------------------------------------------------------
- Fix swww gray background issue. New command on autostart.conf is
exec-once = swww init || swww-daemon --format xrgb
- Using blurred version of background image for wlogout
- Add progress bar to dunst notification for wallpaper change and processing
Version 2.8.3.2
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.2
--------------------------------------------------------
- Replace rofi with rofi-lbonn-wayland to get rofi wayland support
- Several modifications in the ML4W Welcome App
- ML4W Settings App allows to set between 1 and 10 Hyprland workspaces
Version 2.8.3.1
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3.1
--------------------------------------------------------
- Add compatibility with Hyprland 0.37.1
Version 2.8.3
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.3
--------------------------------------------------------
- New ML4W Dotfiles Settings App based on GTK4 with many new customization options
- Hyprlock with blurred version of the current wallpaper as background. Blur strength can be adjusted in the ML4W Dotfiles Settings app
- Hyprlock now showing the current time and username
Version 2.8.2.1
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
--------------------------------------------------------
- ML4W Welcome app includes more settings for hypridle. Incl. recommendation from Hyprland Wiki
Version 2.8.2
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.2
--------------------------------------------------------
General:
- Force installation of sddm to fix theme issue with sddm-sugar-candy theme. sddm-git doesn't work with themes at the moment
- snapshot.sh script check now for required timeshift and (optional) grub-btrfs packages
- Waybar Bluetooth module now hides automatically if no bluetooth device is detected. Please check that "bluetooth" is not commented out in ~/dotfiles/waybar/modules.json
- Replace hypridle-git with hypridle and hyprlock-git with hyprlock
- Desktop file for ML4W Welcome App to be listed in application launcher + icon
Version 2.8.1
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.1
--------------------------------------------------------

233
README.md
View File

@ -1,14 +1,19 @@
# ML4W dotfiles 2.8.1
# ML4W Dotfiles 2.8.3.4
This is my configuration of Hyprland (Wayland) and Qtile (X11) for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
An advanced configuration of Hyprland and Qtile for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v281/screenshot-281-1.png?ref_type=heads" target="_blank"><img src="screenshots/v281/screenshot-281-1.png" /></a>
[![Screenshot](screenshots/v283/screenshot-283-2.png "Title Text")](screenshots/v283/screenshot-283-2.png)
PLEASE NOTE: This branch is the rolling release of the ML4W dotfiles and includes the latest changes.
You can find the overview video (Version 2.8.3) on Youtube: [ML4W Dotfiles 2.8.3](https://youtu.be/zM2AYue0o8s)
Latest official release 2.8.1: <a href="https://youtu.be/KHwJxpV_L1g" target="_blank">Watch on YouTube</a>
You can find the installation video (Version 2.8.2) on YouTube: [Install/Update the ML4W Dotfiles](https://youtu.be/n6Yg232bCOU)
You can find the installation video (Version 2.7.1) on YouTube: <a href="https://youtu.be/kHG5czrQ7WA" target="_blank">Install Arch Linux with Hyprland & Qtile</a>
> PLEASE NOTE: In case of issues with the latest Hyprland version 0.37.1, please update your ML4W Dotfiles installation to the latest version. See the troubleshooting section for more information.
The ML4W Dotfiles are available as
- main release (Official release): [https://gitlab.com/stephan-raabe/dotfiles](https://gitlab.com/stephan-raabe/dotfiles)
- rolling release (Development release): [https://gitlab.com/stephan-raabe/dotfiles/-/tree/dev](https://gitlab.com/stephan-raabe/dotfiles/-/tree/dev)
[TOC]
@ -18,42 +23,56 @@ To make it easy for you to get started with the ML4W dotfiles, here's a list of
The package includes an installation script install.sh that will guide you through all steps of the installation or update process.
> PLEASE NOTE: Every Linux distribution and setup can be different. Therefore, I cannot guarantee that the installation will work smoothly everywhere. Installation on your own risk.
## Supported platforms
The dotfiles are tested with the following Arch based distributions:
- Arch Linux (recommended)
- Manjaro Linux
- Arco Linux
- EndeavourOS
- Arco Linux
- Manjaro Linux
But the installation should work on all Arch Linux based distributions as well.
The installation should work on all Arch Linux based distributions as well.
For Arco Linux users: Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
> **For Manjaro users:** Hyprland and required components are under ongoing development. That's why it's possible that some packages are not immediatly available on Manjaro e.g., hyprlock or hypridle. But usually, the packages will be published later.
> **For Arco Linux users:** Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
## Before you start
PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.
PLEASE READ THIS README until the end before starting the installation.
**PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.**
The installation script will try to create a backup from an previous dotfiles installation.
The installation script will create a backup from an previous dotfiles installation.
Please note: To get the default Linux folder structure incl. Downloads, etc please install the packages xdg-user-dirs and run xdg-user-dirs-update.
If possible, please create a snapshot of your current system if snapper or Timeshift is installed and available.
## Reference Installation
## ML4W Installer App
The reference installation on the dotfiles is based on Arch Linux installed with a minimal profile.
The easiest way to install the ML4W Dotfiles is to use the ML4W Dotfiles Installer App. [You can download the app here.](https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/ML4W_Dotfiles_Installer.AppImage) (Right click + Save link as...)
Please watch the video on YouTube: https://youtu.be/kHG5czrQ7WA
```
# Change to the download location (normally the Downloads folder)
cd ~/Downloads
# Make the file executable
chmod +x ML4W_Dotfiles_Installer.AppImage
# Start the App from your terminal with
./ML4W_Dotfiles_Installer.AppImage
```
## Installation with GIT
You can also install the dotfiles by cloning the latest main release:
```
# 1.) Change into your Downloads folder
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
# 2.) Clone the dotfiles repository into the Downloads folder
git clone https://gitlab.com/stephan-raabe/dotfiles.git
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 3.) Change into the dotfiles folder
cd dotfiles
@ -65,54 +84,65 @@ cd dotfiles
## Installation with GIT of the rolling release
You can install the dotfiles by cloning the latest development version from the rolling release:
```
# 1.) Change into your Downloads folder where you have downloaded the release to
# 1.) Change into your Downloads folder (create the folder if not available)
cd ~/Downloads
# 2.) Unzip
# 2.) Clone the dotfiles repository into the Downloads folder
git clone https://gitlab.com/stephan-raabe/dotfiles.git
# 3.) Change into the new dotfiles folder
cd dotfiles
# 4.) Switch to dev branch
# 4.) Checkout the dev branch
git checkout dev
# 4.) Start the installation to update
# 4.) Start the installation
./install.sh
```
## Update with GIT
## Update
From 2.8.2 onwards you can use the integrated update feature to update your dotfiles to the main or rolling release whenever you want.
![Update](screenshots/welcome-update-dotfiles.png "Updates")
You can also use the ML4W installer to update to the main-release (Latest Version) or the Rolling Release: https://gitlab.com/stephan-raabe/installer
You can force a clean re-installation of the dotfiles by removing the folder ~/dotfiles before starting the installation.
> Please note that you can create a backup of your existing configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
Please follow the steps to update from earlier dotfiles versions to 2.8.3
```
# 1.) Change into your Downloads folder
cd ~/Downloads/dotfiles
# 1.) Remove existing downloaded dotfiles
rm -rf ~/Downloads/dotfiles
# Switch to rolling release
# git checkout origin/main
# 2.) Change into your Downloads folder
cd ~/Downloads
# 2.) Pull the latest version and update the repository
git stash; git pull
# 3.) Clone the dotfiles repository into the Downloads folder
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 3.) Start the installation to update
# 4.) Change into the dotfiles folder
cd dotfiles
# 5.) Start the installation
./install.sh
```
You can create a clean reinstallation by removing the folder ~/dotfiles Please note that you can create a backup of your exsiting configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
## Dotfiles Installer
You can also use the dotfiles installer script to download and install the latest release: https://gitlab.com/stephan-raabe/installer
## Installation Hook
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copying into the final destination in ~/dotfiles
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copy the files into the final destination in ~/dotfiles
If you want to modify the installation files just before the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
If you want to modify the installation files just before everytime the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
You can delete folders and files or update existing configurations.
You can for example delete folders and files or update existing configurations.
```
#!/bin/bash
@ -126,14 +156,20 @@ You can find a template in .install/templates/hook.sh
## Hyprland & NVIDIA
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
https://wiki.hyprland.org/Nvidia/
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
Please select the following variation in the settings script (system/environment):
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/environments/nvidia.conf
Or set the included environment variables in hyprland.conf
## Launch Hyprland from tty
The suggested method to start Hyprland is from tty with the command Hyprland bacause login managers (display managers) are not official supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
The suggested method to start Hyprland is from tty with the command Hyprland because login managers (display managers) are not officially supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
```
# Start Hyprland
@ -158,6 +194,14 @@ With the Hyprland settings script you can copy the current wallpaper into SDDM a
Please check the troubleshooting section in case of issues.
## Screenlock, suspend and DPMS
Hypridle will start Hyprlock after 10 minutes of inactivity and will try to suspend one minutes later.
In the ML4W Dotfiles Settings App you can define the timeouts for Hyprlock, suspend and DPSM.
The selected hypridle configuration can be restored from the ML4W installer during a dotfiles update.
## Installation in a KVM virtual machine
Qtile X11 works fine in a KVM virtual machine. The Hyprland performance is low but it's enough for testing new features.
@ -181,9 +225,9 @@ If you want to install only the core packages of Hyprland as a starting point fo
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>B</kbd>: Reload waybar on Hyprland
All keybindings for Hyprland with right mouse click on Apps in waybar or here:
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/keybindings.conf
All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/qtile/config.py
- [Hyprland keybindings overview](hypr/conf/keybindings/default.conf)
- [Qtile keybindings overview](qtile/config.py)
# Hyprland
@ -199,13 +243,13 @@ All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main
## ML4W Welcome App
After starting the ML4W dotfiles for the first time, the ML4W Welcome App appears. This app is the starting point to discover the Hyprland setup.
After starting the ML4W dotfiles for the first time, the ML4W Welcome App opens. This app is the starting point to discover the Hyprland setup.
<img src="screenshots/screenshot-welcome.app.png" />
The welcome screen includes the most important keybindings to open a terminal or a browser.
You can start the ML4W Welcome App by clicking on the L icon on the right side in waybar or be entering ml4w in your terminal (if you're using the .bashrc from the dotfiles).
You can start the ML4W Welcome App by clicking on the L icon on the right side in waybar, using the rofi application launcher or by typing ml4w in your terminal (if you're using the .bashrc from the dotfiles).
In the Settings Menu you can access the following functions:
@ -223,6 +267,31 @@ In the Settings Menu you can access the following functions:
You can find the sourcecode of the ML4W Welcome App in this repository:
https://gitlab.com/stephan-raabe/ml4w-welcome
## ML4W Dotfiles Settings App
You can open the ML4W dotfiles settings app with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to change selected dotfiles configurations and choose from variations for your hyprland.conf to customize your desktop even more.
<img src="screenshots/screenshot-dotfiles-settings-app.png" />
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the dotfiles settings app in the corresponding section.
> The ML4W Dotfiles Settings App replaces strings from several configuration files directly or based on replacement comments e.g., // START WORKSPACES That's why you shouldn't remove any of theses comments or markers to ensure full functionality of the app.
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
You can find the sourcecode of the ML4W Dotfiles Settings App in this repository:
https://gitlab.com/stephan-raabe/ml4w-dotfiles-settings
## Hyprland Configuration Variations
With configuration variations, you can customize settings and configurations for your Hyprland installation. You can manage, create and edit Hyprland Configuration Variations in the ML4W Dotfiles Settings App.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
[You can find more information here.](hypr/conf/README.md)
> Please don't edit the shipped configuration variations. These will be overwritten with every update of the ML4W dotfiles. <b>Create your own custom variation instead.</b>
## Wallpaper and Pywal
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
@ -235,28 +304,14 @@ In addition, you can switch the Waybar Template with <kbd>SUPER</kbd> + <kbd>CTR
The templates are available in ~/dotfiles/waybar/themes. You can add your own personal themes into this folder.
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.
[You can find more information here.](waybar/README.md)
## Screensharing and recording
In case you have issues with starting Waybar please make sure that only one xdg-desktop-portal-x is installed additionally to xdg-desktop-portal.
I had several issues with xdg-desktop-portal-wlr on Hyprland and Waybar. Please make sure that xdg-desktop-portal-wlr is uninstalled and xdg-desktop-portal-hyprland is installed.
More information you can find here:
https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
Please note that every Arch Linux system is different and I cannot guarantee that everything works fine on your system.
> Please note that every Arch Linux system is different and I cannot guarantee that everything works fine on your system.
## Main packages
@ -264,7 +319,7 @@ Please note that every Arch Linux system is different and I cannot guarantee tha
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
- Launch Menus: Rofi
- Launch Menus: Rofi (Wayland fork)
- Colorscheme: pywal
- Browsers: chromium (brave optional)
- Filemanager: Thunar
@ -295,7 +350,7 @@ Included is a pywal configuration that changes the color scheme based on a rando
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
- Launch Menus: Rofi
- Launch Menus: Rofi (Wayland fork)
- Colorscheme: pywal
- Browsers: chromium (brave optional)
- Filemanager: Thunar
@ -307,6 +362,54 @@ Included is a pywal configuration that changes the color scheme based on a rando
# Troubleshooting
## Wallpaper issues (grey or distroyed image) with latest swww 0.9.1
Please install the latest version of the ML4W Dotfiles > 2.8.3.4
Or replace the swww launch command in /dotfiles/hypr/conf/autostart.conf with
```
exec-once = swww init || swww-daemon --format xrgb
```
swww is currently extremly under development. Upcoming updates could require different launch commands. I will monitor the development as well and update the dotfiles accordingly.
## Issues after Hyprland 0.37.1 Updates
Hyprland has released the version 0.37.1. This comes with many changes of the system and required dependencies.
Please update to the latest version of the ML4W Dotfiles 2.8.3.2
If you don't have access to Waybar because of overlayed error messages you can start the ML4W app with the application launcher <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>RETURN</kbd> and search for the ML4W Welcome App.
Or you open a terminal with <kbd>SUPER</kbd> + <kbd>RETURN</kbd> and enter
```
ml4w
```
Then select in the upper right side menu the entry "Update/ Dotfiles"
## hypridle and hyprlock is not starting after an update of the dotfiles
Please make sure that hypridle and hyprlock has been installed successfully with
```
yay -S hypridle hyprlock
```
If there is an file conflict the remove the files manually with:
```
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
```
and start the installation again with
```
yay -S hypridle hyprlock
```
## Missing icons in waybar
In case of missing icons on waybar, it's due to a conflict between several installed fonts (can happen especially on Arco Linux). Please make sure that ttf-ms-fonts is uninstalled and ttf-font-awesome and otf-font-awesome are installed with

Binary file not shown.

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

BIN
apps/ml4w-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

7
apps/ml4w-welcome.desktop Executable file
View File

@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=ML4W Welcome App
Exec=HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage
Icon=HOME/dotfiles/apps/ml4w-icon.png
Terminal=false
Categories=Utility

View File

@ -102,7 +102,7 @@
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 3
frame_width = 1
# Defines color of the frame around the notification window.
frame_color = "#ffffff"
@ -133,7 +133,7 @@
### Text ###
font = "Fira Sans Semibold" 11
font = "Fira Sans Semibold" 9
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
@ -181,7 +181,7 @@
# Vertical alignment of message text and icon.
# Possible values are "top", "center" and "bottom".
vertical_alignment = top
vertical_alignment = center
# Show age of message if message is older than show_age_threshold
# seconds.
@ -323,21 +323,21 @@
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#00000070"
background = "#000000CC"
foreground = "#888888"
timeout = 6
# Icon for notifications with low urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_normal]
background = "#00000070"
background = "#000000CC"
foreground = "#ffffff"
timeout = 6
# Icon for notifications with normal urgency, uncomment to enable
#default_icon = /path/to/icon
[urgency_critical]
background = "#90000070"
background = "#900000CC"
foreground = "#ffffff"
frame_color = "#ffffff"
timeout = 6

45
hypr/conf/README.md Normal file
View File

@ -0,0 +1,45 @@
# Configuration Variations
With configuration variations, you can prepare different settings and configurations for your Hyprland installation.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
## How to use configuration variations
Open the ML4W dotfiles settings app via the ML4W Welcome App, the application launcher or the wheel icon in Waybar.
You can find several variation within the three settings pages.
- Monitor (Screen Resolutions)
- Animations
- Keybindings
- Windows
- Window Rules
- Decorations
- Environments
Select the variation that you want to use from the corresponding drop down menu.
Please don't edit the shipped configuration variations. These will be overwritten with every update of the ML4W dotfiles. <b>Create your own custom variation instead.</b>
## Create your own variation
Open the ML4W dotfiles settings app via the ML4W Welcome App, the application launcher or the wheel icon in Waybar.
Select "Open Variation Folder" from the variation context menu.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations1.png" />
Copy an existing variation as a starting point and rename the new file accordingly.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations2.png" />
Edit the configuration of your new variation and save.
Go back to the ML4W dotfiles settings app and select "Reload Variations" from the variation context menu and select your new variation.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations3.png" />
You can also modify the variation from the settings app directly.
<img src="https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/screenshots/variations/variations4.png" />

View File

@ -27,7 +27,7 @@ exec-once = hypridle
exec-once = wl-paste --watch cliphist store
# Initialize swww
exec-once = swww query || swww init
exec-once = swww init || swww-daemon --format xrgb
# Load last wallpaper and waybar with pywal colors
exec-once = ~/dotfiles/hypr/scripts/wallpaper.sh init

View File

@ -5,3 +5,4 @@
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORM,wayland

View File

@ -0,0 +1,15 @@
# -----------------------------------------------------
# Environment Variables
# name: "Nvidia"
# -----------------------------------------------------
# https://wiki.hyprland.org/Nvidia/
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORM,wayland
env = WLR_NO_HARDWARE_CURSORS,1
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# env = __GL_VRR_ALLOWED,1
# env = WLR_DRM_NO_ATOMIC,1

View File

@ -14,7 +14,7 @@ bind = $mainMod, period, exec, emote
# Windows
bind = $mainMod, Q, killactive
bind = $mainMod, F, fullscreen
bind = $mainMod, E, exec, ~/dotfiles/scripts/filemanager.sh
bind = $mainMod, E, exec, ~/dotfiles/.settings/filemanager.sh
bind = $mainMod, T, togglefloating
bind = $mainMod SHIFT, T, exec, ~/dotfiles/hypr/scripts/toggleallfloat.sh
bind = $mainMod, J, togglesplit
@ -28,13 +28,14 @@ bind = $mainMod SHIFT, right, resizeactive, 100 0
bind = $mainMod SHIFT, left, resizeactive, -100 0
bind = $mainMod SHIFT, up, resizeactive, 0 -100
bind = $mainMod SHIFT, down, resizeactive, 0 100
bind = $mainMod, G, togglegroup
# Actions
bind = $mainMod, PRINT, exec, ~/dotfiles/hypr/scripts/screenshot.sh
bind = $mainMod CTRL, Q, exec, wlogout
bind = $mainMod SHIFT, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh
bind = $mainMod CTRL, W, exec, ~/dotfiles/hypr/scripts/wallpaper.sh select
bind = $mainMod CTRL, RETURN, exec, rofi -show drun
bind = $mainMod CTRL, RETURN, exec, rofi -show drun -replace -i
bind = $mainMod CTRL, H, exec, ~/dotfiles/hypr/scripts/keybindings.sh
bind = $mainMod SHIFT, B, exec, ~/dotfiles/waybar/launch.sh
bind = $mainMod SHIFT, R, exec, ~/dotfiles/hypr/scripts/loadconfig.sh
@ -42,7 +43,7 @@ bind = $mainMod CTRL, F, exec, ~/dotfiles/scripts/filemanager.sh
bind = $mainMod CTRL, C, exec, ~/dotfiles/scripts/cliphist.sh
bind = $mainMod, 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
@ -81,7 +82,7 @@ bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bind = , XF86Calculator, exec, qalculate-gtk
bind = , XF86Lock, exec, swaylock
bind = , XF86Lock, exec, hyprlock
bind = , XF86Tools, exec, alacritty --class dotfiles-floating -e ~/dotfiles/hypr/settings/settings.sh
# Passthrough SUPER KEY to Virtual Machine

View File

@ -9,6 +9,7 @@ input {
kb_options =
numlock_by_default = true
follow_mouse = 1
mouse_refocus=false
touchpad {
natural_scroll = false
}

View File

@ -14,7 +14,3 @@ master {
gestures {
workspace_swipe = false
}
device:epic-mouse-v1 {
sensitivity = -0.5
}

View File

@ -4,18 +4,22 @@
windowrulev2 = float,class:(com.ml4w.welcome)
windowrulev2 = size 700 600,class:(com.ml4w.welcome)
windowrulev2 = nomaximizerequest,class:(com.ml4w.welcome)
windowrulev2 = nofullscreenrequest,class:(com.ml4w.welcome)
windowrulev2 = center,class:(com.ml4w.welcome)
windowrulev2 = float,class:(ml4w-welcome.py)
windowrulev2 = size 400 500,class:(ml4w-welcome.py)
windowrulev2 = nomaximizerequest,class:(ml4w-welcome.py)
windowrulev2 = nofullscreenrequest,class:(ml4w-welcome.py)
windowrulev2 = center,class:(ml4w-welcome.py)
windowrulev2 = float,class:(com.ml4w.dotfilessettings)
windowrulev2 = size 700 600,class:(com.ml4w.dotfilessettings)
windowrulev2 = move 10% 20%,class:(com.ml4w.dotfilessettings)
windowrulev2 = float,class:(ml4w-dotfiles-settings.py)
windowrulev2 = size 400 500,class:(ml4w-dotfiles-settings.py)
windowrulev2 = move 10% 20%,class:(ml4w-dotfiles-settings.py)
windowrulev2 = float,class:(dotfiles-floating)
windowrulev2 = size 1000 800,class:(dotfiles-floating)
windowrulev2 = nomaximizerequest,class:(dotfiles-floating)
windowrulev2 = nofullscreenrequest,class:(dotfiles-floating)
windowrulev2 = center,class:(dotfiles-floating)
env = APPIMAGELAUNCHER_DISABLE,1

View File

@ -0,0 +1,6 @@
# -----------------------------------------------------
# Monitor Setup
# name: "Highres"
# -----------------------------------------------------
monitor=,highres,auto,1

View File

@ -8,3 +8,4 @@ windowrule = tile,^(Chromium)$
windowrule = float,^(pavucontrol)$
windowrule = float,^(blueman-manager)$
windowrule = float,^(nm-connection-editor)$
windowrule = float,^(qalculate-gtk)$

View File

@ -5,25 +5,36 @@
# |_| |_|\__, | .__/|_| |_|\__,_|_|\___|
# |___/|_|
#
# Version 2.8.3
# DO NOT REMOVE THE REPLACEMENT COMMENTS
# REQUIRED BY THE ML4W SETTINGS APP
general {
# lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
# unlock_cmd = notify-send "unlock!" # same as above, but unlock
# before_sleep_cmd = notify-send "Zzz" # command ran before sleep
# after_sleep_cmd = notify-send "Awake!" # command ran after sleep
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
ignore_dbus_inhibit = false
}
# Screenlock
listener {
timeout = 600 # in seconds
on-timeout = hyprlock # command to run when timeout has passed
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
# HYPRLOCK TIMEOUT
timeout = 600
# HYPRLOCK ONTIMEOUT
on-timeout = hyprlock
}
# dpms
listener {
# DPMS TIMEOUT
timeout = 660
# DPMS ONTIMEOUT
on-timeout = hyprctl dispatch dpms off
# DPMS ONRESUME
on-resume = hyprctl dispatch dpms on
}
# Suspend
listener {
timeout = 660 # in seconds
on-timeout = systemctl suspend # command to run when timeout has passed
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
# SUSPEND TIMEOUT
timeout = 1800
#SUSPEND ONTIMEOUT
on-timeout = systemctl suspend
}

View File

@ -8,32 +8,34 @@
background {
monitor =
path = $HOME/dotfiles/.settings/lockscreen.png # only png supported for now
color = rgba(25, 20, 20, 1.0)
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
blur_passes = 4 # 0 disables blurring
blur_size = 2
noise = 0.0117
contrast = 0.8916
brightness = 0.8172
vibrancy = 0.1696
vibrancy_darkness = 0.0
path = $HOME/.cache/blurred_wallpaper.png # only png supported for now
}
input-field {
monitor =
size = 200, 50
outline_thickness = 1
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
outline_thickness = 3
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgb(000000)
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = rgb(151515)
inner_color = rgb(200, 200, 200)
font_color = rgb(10, 10, 10)
fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval)
check_color = rgb(204, 136, 34)
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
capslock_color = -1
numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false # change color if numlock is off
swap_font_color = false # see below
position = 0, -20
halign = center
valign = center
@ -41,12 +43,26 @@ input-field {
label {
monitor =
text = Enter your password to unlock
text = cmd[update:1000] echo "$TIME"
color = rgba(200, 200, 200, 1.0)
font_size = 25
font_family = Noto Sans
position = 0, 200
halign = center
valign = center
font_size = 55
font_family = Fira Semibold
position = -100, -200
halign = right
valign = bottom
shadow_passes = 5
shadow_size = 10
}
label {
monitor =
text = $USER
color = rgba(200, 200, 200, 1.0)
font_size = 20
font_family = Fira Semibold
position = -100, 160
halign = right
valign = bottom
shadow_passes = 5
shadow_size = 10
}

View File

@ -30,4 +30,5 @@ keybinds=$(echo "$keybinds" | sed 's/$mainMod/SUPER/g'| sed 's/,\([^,]*\)$/ = \
# -----------------------------------------------------
# Show keybindings in rofi
# -----------------------------------------------------
sleep 0.2
rofi -dmenu -i -replace -p "Keybinds" -config ~/dotfiles/rofi/config-compact.rasi <<< "$keybinds"

2
hypr/scripts/loadconfig.sh Executable file
View File

@ -0,0 +1,2 @@
#!/bin/bash
hyprctl reload

View File

@ -21,12 +21,16 @@ choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/confi
case $choice in
$option2)
grim -g "$(slurp)" - | swappy -f -
notify-send "Screenshot created" "Mode: Selected area"
grim -g "$(slurp)" "$DIR$NAME"
xclip -selection clipboard -t image/png -i "$DIR$NAME"
notify-send "Screenshot created and copied to clipboard" "Mode: Selected area"
swappy -f "$DIR$NAME"
;;
$option3)
sleep 3
grim - | swappy -f -
notify-send "Screenshot created" "Mode: Fullscreen"
grim "$DIR$NAME"
xclip -selection clipboard -t image/png -i "$DIR$NAME"
notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen"
swappy -f "$DIR$NAME"
;;
esac

View File

@ -1,11 +0,0 @@
#!/bin/bash
pgrep_output=$(pgrep swayidle)
pgrep_arr=($pgrep_output)
if [[ "${#pgrep_arr[@]}" == "1" ]] || [[ "${#pgrep_arr[@]}" == "0" ]]; then
echo "Swayidle is not running. Starting Swayidle."
./lockscreentime.sh
else
echo "Swayidle is running. Killing swayidle."
killall swayidle
fi

View File

@ -11,7 +11,12 @@
# 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"
blur_file="$HOME/dotfiles/.settings/blur.sh"
blur="50x30"
blur=$(cat $blur_file)
# Create cache file if not exists
if [ ! -f $cache_file ] ;then
@ -31,6 +36,7 @@ case $1 in
# Load wallpaper from .cache of last session
"init")
sleep 1
if [ -f $cache_file ]; then
wal -q -i $current_wallpaper
else
@ -40,11 +46,11 @@ case $1 in
# Select wallpaper with rofi
"select")
sleep 0.2
selected=$( find "$HOME/wallpaper" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -exec basename {} \; | sort -R | while read rfile
do
echo -en "$rfile\x00icon\x1f$HOME/wallpaper/${rfile}\n"
done | rofi -dmenu -replace -config ~/dotfiles/rofi/config-wallpaper.rasi)
done | rofi -dmenu -i -replace -config ~/dotfiles/rofi/config-wallpaper.rasi)
if [ ! "$selected" ]; then
echo "No wallpaper selected"
exit
@ -63,13 +69,7 @@ esac
# Load current pywal color scheme
# -----------------------------------------------------
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"
echo ":: Wallpaper: $wallpaper"
# -----------------------------------------------------
# get wallpaper image name
@ -95,10 +95,44 @@ swww img $wallpaper \
--transition-duration=0.7 \
--transition-pos "$( hyprctl cursorpos )"
if [ "$1" == "init" ] ;then
echo ":: Init"
else
sleep 1
dunstify "Changing wallpaper ..." "with image $newwall" -h int:value:33 -h string:x-dunst-stack-tag:wallpaper
sleep 2
fi
# -----------------------------------------------------
# Created blurred wallpaper
# -----------------------------------------------------
if [ "$1" == "init" ] ;then
echo ":: Init"
else
dunstify "Creating blurred version ..." "with image $newwall" -h int:value:66 -h string:x-dunst-stack-tag:wallpaper
fi
magick $wallpaper -resize 75% $blurred
echo ":: Resized to 75%"
if [ ! "$blur" == "0x0" ] ;then
magick $blurred -blur $blur $blurred
echo ":: Blurred"
fi
# -----------------------------------------------------
# Write selected wallpaper into .cache files
# -----------------------------------------------------
echo "$wallpaper" > "$cache_file"
echo "* { current-image: url(\"$blurred\", height); }" > "$rasi_file"
# -----------------------------------------------------
# Send notification
# -----------------------------------------------------
sleep 1
notify-send "Colors and Wallpaper updated" "with image $newwall"
if [ "$1" == "init" ] ;then
echo ":: Init"
else
dunstify "Wallpaper procedure complete!" "with image $newwall" -h int:value:100 -h string:x-dunst-stack-tag:wallpaper
fi
echo "DONE!"

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 Bluetooth"
order=1

View File

@ -1,44 +0,0 @@
#!/bin/bash
_getHeader "$name" "$author"
echo "Hide or show the bluetooth module in ML4W waybar themes."
# Define File
targetFile1="$HOME/dotfiles/waybar/themes/ml4w/config"
targetFile2="$HOME/dotfiles/waybar/themes/ml4w-blur/config"
targetFile3="$HOME/dotfiles/waybar/themes/ml4w-blur-bottom/config"
targetFile4="$HOME/dotfiles/waybar/themes/ml4w-bottom/config"
targetFile5="$HOME/dotfiles/waybar/themes/ml4w-minimal/config"
settingsFile="$HOME/dotfiles/.settings/waybar_bluetooth"
# Define Markers
startMarker="START BT TOOGLE"
endMarker="END BT TOOGLE"
# Select Value
customvalue=$(gum choose "SHOW" "HIDE" "DEFAULT")
if [ ! -z $customvalue ]; then
if [ "$customvalue" == "SHOW" ] ;then
customtext=" \"bluetooth\","
elif [ "$customvalue" == "DEFAULT" ] ;then
customtext=" \"bluetooth\","
else
customtext=" \/\/\"bluetooth\","
fi
_replaceInFile $startMarker $endMarker $customtext $targetFile1
_replaceInFile $startMarker $endMarker $customtext $targetFile2
_replaceInFile $startMarker $endMarker $customtext $targetFile3
_replaceInFile $startMarker $endMarker $customtext $targetFile4
_replaceInFile $startMarker $endMarker $customtext $targetFile5
_writeSettings $settingsFile $customtext
# Reload Waybar
setsid $HOME/dotfiles/waybar/launch.sh 1>/dev/null 2>&1 &
_goBack
else
echo "ERROR: Define a value."
sleep 2
_goBack
fi

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