diff --git a/.bashrc b/.bashrc
index d4cde4f..123d179 100644
--- a/.bashrc
+++ b/.bashrc
@@ -37,8 +37,15 @@ alias rw='~/dotfiles/waybar/reload.sh'
alias winclass="xprop | grep 'CLASS'"
alias dot="cd ~/dotfiles"
alias cleanup='~/dotfiles/scripts/cleanup.sh'
+
+# -----------------------------------------------------
+# ML4W Apps
+# -----------------------------------------------------
alias ml4w='~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage'
alias ml4w-settings='~/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage'
+alias ml4w-sidebar='~/dotfiles/eww/ml4w-sidebar/launch.sh'
+alias ml4w-hyprland='~/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage'
+alias ml4w-diagnosis='~/dotfiles/scripts/diagnosis.sh'
# -----------------------------------------------------
# Window Managers
diff --git a/.install/apps.sh b/.install/apps.sh
index 7c0ede1..9320358 100755
--- a/.install/apps.sh
+++ b/.install/apps.sh
@@ -21,4 +21,12 @@ 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
\ No newline at end of file
+sed -i "s|HOME|${HOME}|g" $HOME/dotfiles/apps/ml4w-hyprland-settings.desktop
+cp $HOME/dotfiles/apps/ml4w-hyprland-settings.desktop $HOME/.local/share/applications
+echo ":: ML4W Hyprland Settings App installed successfully"
+echo
+if [ -f ~/.config/ml4w-hyprland-settings/hyprctl.sh ] ;then
+ echo ":: Starting restore from ML4W Hyprland Settings App"
+ ~/.config/ml4w-hyprland-settings/hyprctl.sh
+fi
+echo
\ No newline at end of file
diff --git a/.install/backup.sh b/.install/backup.sh
index 877270d..9628e5c 100755
--- a/.install/backup.sh
+++ b/.install/backup.sh
@@ -44,6 +44,9 @@ if [ -d ~/dotfiles ] || ! test -L ~/.bashrc || [ -d ~/.config/hypr ] || [ -d ~/.
if ! test -L ~/.config/hypr && [ -d ~/.config/hypr ] ;then
echo " - $HOME/.config/hypr/"
fi
+ if ! test -L ~/.config/ml4w-hyprland-settings && [ -d ~/.config/ml4w-hyprland-settings ] ;then
+ echo " - $HOME/.config/ml4w-hyprland-settings/"
+ fi
if ! test -L ~/.config/rofi && [ -d ~/.config/rofi ] ;then
echo " - $HOME/.config/rofi/"
fi
@@ -107,6 +110,10 @@ if [ -d ~/dotfiles ] || ! test -L ~/.bashrc || [ -d ~/.config/hypr ] || [ -d ~/.
cp -r ~/.config/hypr ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/hypr created in ~/dotfiles-versions/backup/config/"
fi
+ if ! test -L ~/.config/ml4w-hyprland-settings && [ -d ~/.config/ml4w-hyprland-settings ] ;then
+ cp -r ~/.config/ml4w-hyprland-settings ~/dotfiles-versions/backup/config
+ echo ":: Backup of $HOME/.config/ml4w-hyprland-settings created in ~/dotfiles-versions/backup/config/"
+ fi
if ! test -L ~/.config/qtile && [ -d ~/.config/rofi ] ;then
cp -r ~/.config/rofi ~/dotfiles-versions/backup/config
echo ":: Backup of $HOME/.config/rofi created in ~/dotfiles-versions/backup/config/"
diff --git a/.install/cleanup.sh b/.install/cleanup.sh
index 2de7c8b..86542a6 100644
--- a/.install/cleanup.sh
+++ b/.install/cleanup.sh
@@ -36,6 +36,13 @@ if [ -d ~/dotfiles/hypr/settings/ ] ;then
echo ":: ~/dotfiles/hypr/settings removed."
fi
+if [ -f ~/dotfiles/.settings/eww-monitor.sh ] ;then
+ if grep -q "echo" $HOME/dotfiles/.settings/eww-monitor.sh ; then
+ rm ~/dotfiles/.settings/eww-monitor.sh
+ echo ":: ~/dotfiles/.settings/eww-monitor.sh removed."
+ fi
+fi
+
# Create default folder structure
xdg-user-dirs-update
echo
diff --git a/.install/diagnosis.sh b/.install/diagnosis.sh
new file mode 100644
index 0000000..ff2791c
--- /dev/null
+++ b/.install/diagnosis.sh
@@ -0,0 +1,28 @@
+echo -e "${GREEN}"
+figlet "System check"
+echo -e "${NONE}"
+
+echo "The system check will test that essential packages and "
+echo "execution commands are available now on your system."
+
+if gum confirm "Do you want to run a short system check?" ;then
+
+ _folderExists "$HOME/dotfiles" "Please repeat the installation."
+ _commandExists "rofi" "rofi-wayland"
+ _commandExists "dunst" "dunst"
+ _commandExists "waybar" "waybar"
+ _commandExists "hyprpaper" "hyprpaper"
+ _commandExists "hyprlock" "hyprpaper"
+ _commandExists "hypridle" "hyprpaper"
+ _commandExists "wal" "python-pywal"
+ _commandExists "gum" "gum"
+ _commandExists "wlogout" "wlogout"
+ _commandExists "eww" "eww"
+ _commandExists "magick" "imagemagick"
+
+elif [ $? -eq 130 ]; then
+ exit 130
+else
+ echo ":: System check skipped"
+fi
+echo ""
\ No newline at end of file
diff --git a/.install/displaymanager.sh b/.install/displaymanager.sh
index 4ea9791..5948379 100755
--- a/.install/displaymanager.sh
+++ b/.install/displaymanager.sh
@@ -30,25 +30,25 @@ if [ ! -d ~/dotfiles ];then
disman=0
echo "You have already installed a display manager on your system."
echo "How do you want to proceed?"
- dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm")
+ dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme")
else
disman=1
echo "There is no display manager installed on your system."
echo "After the installation/update of the dotfiles, you can start Hyprland with command Hyprland and Qtile with commmand Qtile (or startx)."
echo "How do you want to proceed?"
- dmsel=$(gum choose "Keep current setup" "Install sddm")
+ dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
fi
else
if [ -f /etc/systemd/system/display-manager.service ]; then
disman=0
echo "You have already installed a display manager. If your display manager is working fine, you can keep the current setup."
echo "How do you want to proceed?"
- dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm")
+ dmsel=$(gum choose "Keep current setup" "Deactivate current display manager" "Install sddm and theme")
else
disman=1
echo "There is no display manager installed on your system. You're starting Hyprland/Qtile with commands on tty."
echo "How do you want to proceed?"
- dmsel=$(gum choose "Keep current setup" "Install sddm")
+ dmsel=$(gum choose "Keep current setup" "Install sddm and theme")
fi
fi
@@ -56,7 +56,7 @@ if [ -z "${dmsel}" ] ;then
echo "Installation canceled."
exit
fi
-if [ "$dmsel" == "Install sddm" ] ;then
+if [ "$dmsel" == "Install sddm and theme" ] ;then
disman=0
# Try to force the installation of sddm
diff --git a/.install/fcitx5.sh b/.install/fcitx5.sh
new file mode 100644
index 0000000..bdc4d92
--- /dev/null
+++ b/.install/fcitx5.sh
@@ -0,0 +1,24 @@
+# ------------------------------------------------------
+# Select fcitx5 or not
+# ------------------------------------------------------
+echo -e "${GREEN}"
+figlet "fcitx5"
+echo -e "${NONE}"
+
+if gum confirm "Do you want to install fcitx5 and chinese input method?" ;then
+ packagesPacman=(
+ "fcitx5"
+ "fcitx5-chinese-addons"
+ "fcitx5-configtool"
+ "fcitx5-gtk"
+ "fcitx5-qt"
+ );
+ packagesYay=(
+ "fcitx5-skin-seasons"
+ );
+ source .install/install-packages.sh
+ echo -e "\n# -----------------------------------------------------" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
+ echo "# fcitx5 support" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
+ echo "# -----------------------------------------------------" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
+ echo "source = ~/dotfiles/hypr/conf/fcitx5.conf" >> ~/dotfiles-versions/${version}/hypr/hyprland.conf
+fi
diff --git a/.install/hidpi.sh b/.install/hidpi.sh
index 1db37e0..b7638ec 100755
--- a/.install/hidpi.sh
+++ b/.install/hidpi.sh
@@ -9,9 +9,9 @@ echo -e "${NONE}"
hidpiconfirm="Do you want 2x hidpi scale?"
if gum confirm "$hidpiconfirm"; then
- sed -i -E 's/size = [0-9]+(\.[0-9]+)?/size = 18/' alacritty/alacritty.toml
- sed -i -E 's/[0-9]+(\.[0-9]+)?/16/' .settings/rofi-font.rasi
- echo -e '\n# hidpi scale\nsource = ~/dotfiles/hypr/conf/hidpi.conf' >> hypr/conf/custom.conf
- sed -i -E 's/1/2/' hypr/conf/monitors/default.conf
+ sed -i -E 's/size = [0-9]+(\.[0-9]+)?/size = 16/' ~/dotfiles-versions/$version/alacritty/alacritty.toml
+ sed -i -E 's/[0-9]+(\.[0-9]+)?/16/' ~/dotfiles-versions/$version/.settings/rofi-font.rasi
+ echo -e '\n# hidpi scale\nsource = ~/dotfiles/hypr/conf/hidpi.conf' >> ~/dotfiles-versions/$version/hypr/conf/custom.conf
+ sed -i -E 's/1/2/' ~/dotfiles-versions/$version/hypr/conf/monitors/default.conf
echo ":: finished hidpi patch."
fi
diff --git a/.install/hyprland-dotfiles.sh b/.install/hyprland-dotfiles.sh
index c916962..022afc4 100644
--- a/.install/hyprland-dotfiles.sh
+++ b/.install/hyprland-dotfiles.sh
@@ -37,5 +37,11 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi
+if [ -d ~/dotfiles-versions/$version/swappy ]; then
+ _installSymLink eww ~/.config/eww ~/dotfiles/eww/ ~/.config
+fi
+if [ -d ~/dotfiles-versions/$version/fastfetch ]; then
+ _installSymLink fastfetch ~/.config/fastfetch ~/dotfiles/fastfetch/ ~/.config
+fi
echo ":: Symbolic links created."
-echo
\ No newline at end of file
+echo
diff --git a/.install/includes/library.sh b/.install/includes/library.sh
index 2d0e938..660807a 100755
--- a/.install/includes/library.sh
+++ b/.install/includes/library.sh
@@ -272,4 +272,26 @@ _replaceLineInFile() {
echo "ERROR: Target file not found."
sleep 2
fi
+}
+
+# ------------------------------------------------------
+# System check
+# ------------------------------------------------------
+
+_commandExists() {
+ package="$1";
+ if ! type $package > /dev/null 2>&1; then
+ echo ":: ERROR: $package doesn't exists. Please install it with yay -S $2"
+ else
+ echo ":: OK: $package command found."
+ fi
+}
+
+_folderExists() {
+ folder="$1";
+ if [ ! -d $folder ]; then
+ echo ":: ERROR: $folder doesn't exists. $2"
+ else
+ echo ":: OK: $folder found."
+ fi
}
\ No newline at end of file
diff --git a/.install/neovim.sh b/.install/neovim.sh
old mode 100644
new mode 100755
index 9e78bd8..5c58e63
--- a/.install/neovim.sh
+++ b/.install/neovim.sh
@@ -6,7 +6,8 @@ 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 ":: The script has detected a nvim folder."
+ if gum confirm "Do you want to install the ML4W Neovim configuration?"; then
echo ":: ML4W Neovim configuration will be installed"
neovim=1
else
diff --git a/.install/packages/general-packages.sh b/.install/packages/general-packages.sh
index 027b799..189a9c0 100644
--- a/.install/packages/general-packages.sh
+++ b/.install/packages/general-packages.sh
@@ -1,6 +1,12 @@
packagesPacman=(
"pacman-contrib"
"vim"
+ "bat"
+ "fzf"
+ "zsh"
+ "fastfetch"
+ "ranger"
+ "btop"
"bluez"
"bluez-utils"
"neovim"
@@ -11,7 +17,6 @@ packagesPacman=(
"dunst"
"starship"
"mpv"
- "freerdp"
"thunar"
"mousepad"
"noto-fonts"
@@ -26,6 +31,8 @@ packagesPacman=(
"python-psutil"
"python-rich"
"python-click"
+ "python-pywal"
+ "python-gobject"
"pavucontrol"
"tumbler"
"blueman"
@@ -46,11 +53,12 @@ packagesPacman=(
"fuse2"
"gtk4"
"libadwaita"
- "python-pywal"
"xdg-desktop-portal"
"qalculate-gtk"
"imagemagick"
"guvcview"
+ "jq"
+ "rofi-wayland"
);
packagesYay=(
@@ -58,5 +66,4 @@ packagesYay=(
"bibata-cursor-theme"
"trizen"
"pacseek"
- "rofi-lbonn-wayland"
);
diff --git a/.install/packages/hyprland-packages.sh b/.install/packages/hyprland-packages.sh
index acf57d0..35c57dc 100644
--- a/.install/packages/hyprland-packages.sh
+++ b/.install/packages/hyprland-packages.sh
@@ -16,4 +16,5 @@ packagesYay=(
"wlogout"
"nwg-look"
"emote"
+ "eww"
);
diff --git a/.install/qtile-dotfiles.sh b/.install/qtile-dotfiles.sh
index 65ae219..fe1bcd0 100644
--- a/.install/qtile-dotfiles.sh
+++ b/.install/qtile-dotfiles.sh
@@ -35,4 +35,7 @@ fi
if [ -d ~/dotfiles-versions/$version/swappy ]; then
_installSymLink swappy ~/.config/swappy ~/dotfiles/swappy/ ~/.config
fi
+if [ -d ~/dotfiles-versions/$version/fastfetch ]; then
+ _installSymLink fastfetch ~/.config/fastfetch ~/dotfiles/fastfetch/ ~/.config
+fi
echo ":: Symbolic links created."
diff --git a/.install/remove.sh b/.install/remove.sh
index 925dbf7..e71a3e9 100755
--- a/.install/remove.sh
+++ b/.install/remove.sh
@@ -28,6 +28,13 @@ if [[ $(_isInstalledYay "swaylock-effects-git") == 0 ]]; then
echo
fi
+# Remove rofi-lbonn-wayland
+if [[ $(_isInstalledYay "rofi-lbonn-wayland") == 0 ]]; then
+ yay --noconfirm -Rns rofi-lbonn-wayland
+ echo ":: rofi-lbonn-wayland removed"
+ echo
+fi
+
# Remove hypridle-bin
if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
yay --noconfirm -Rns hypridle-git
@@ -40,7 +47,7 @@ if [[ $(_isInstalledYay "hypridle-git") == 0 ]]; then
echo
fi
-# Remove hypridle-bin
+# Remove hyprlock-bin
if [[ $(_isInstalledYay "hyprlock-git") == 0 ]]; then
yay --noconfirm -Rns hyprlock-git
if [ -f /usr/lib/debug/usr/bin/hyprlock.debug ] ;then
diff --git a/.install/restore.sh b/.install/restore.sh
index 5149141..178e000 100755
--- a/.install/restore.sh
+++ b/.install/restore.sh
@@ -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. ESC/No selection = Skip Restore)"
+ echo "(SPACE = select/unselect a profile. RETURN = confirm. CTRL-C/No selection = Skip Restore)"
echo ""
restorelist=""
if [ -f ~/dotfiles/.bashrc ]; then
diff --git a/.install/settings.sh b/.install/settings.sh
index 3daf5ea..491a0cb 100644
--- a/.install/settings.sh
+++ b/.install/settings.sh
@@ -1,8 +1,10 @@
if [ "$restored" == "1" ]; then
- echo -e "${GREEN}"
- figlet "Restore Settings"
- echo -e "${NONE}"
- python .install/restore.py
+ if [ -f ~/dotfiles/.settings/settings.json ] ;then
+ echo -e "${GREEN}"
+ figlet "Restore Settings"
+ echo -e "${NONE}"
+ python .install/restore.py
+ fi
else
if [ -f ~/dotfiles/.settings/settings.json ] ;then
rm ~/dotfiles/.settings/settings.json
diff --git a/.settings/eww-monitor.sh b/.settings/eww-monitor.sh
new file mode 100755
index 0000000..4d18c3e
--- /dev/null
+++ b/.settings/eww-monitor.sh
@@ -0,0 +1 @@
+auto
\ No newline at end of file
diff --git a/.settings/rofi-border-radius.rasi b/.settings/rofi-border-radius.rasi
new file mode 100644
index 0000000..0f3cb00
--- /dev/null
+++ b/.settings/rofi-border-radius.rasi
@@ -0,0 +1,3 @@
+* {
+ border-radius: 15px;
+}
diff --git a/.settings/rofi-border.rasi b/.settings/rofi-border.rasi
index e533468..38036b5 100644
--- a/.settings/rofi-border.rasi
+++ b/.settings/rofi-border.rasi
@@ -1 +1,3 @@
-* { border-width: 3px; }
\ No newline at end of file
+* {
+ border-width: 2px;
+}
diff --git a/.settings/wallpaper-engine.sh b/.settings/wallpaper-engine.sh
index 16f3d37..b6923b6 100644
--- a/.settings/wallpaper-engine.sh
+++ b/.settings/wallpaper-engine.sh
@@ -1 +1 @@
-swww
\ No newline at end of file
+hyprpaper
\ No newline at end of file
diff --git a/.version/name b/.version/name
index 0409c16..0a35d8c 100644
--- a/.version/name
+++ b/.version/name
@@ -1 +1 @@
-2.8.4
\ No newline at end of file
+2.9
\ No newline at end of file
diff --git a/.version/version b/.version/version
index 7f9ce49..7b34ebb 100644
--- a/.version/version
+++ b/.version/version
@@ -1 +1 @@
-2840
\ No newline at end of file
+2900
\ No newline at end of file
diff --git a/CHANGELOG b/CHANGELOG
index 3c15f35..bb361da 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,17 @@
+Version 2.9
+https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.9
+--------------------------------------------------------
+- New Hyprland Settings App. Can be launched from the App Launcher, the ML4W Welcome App or the new ML4W logo context menu (right click)
+- Added sidebar menu. Start with click on ML4W Logo in Waybar. Right click starts the welcome app
+- Updated hyprlock screen showing the wallpaper in a circle. hyprlock 3 required
+- Waybar Taskbar Module hidden by default. Can be enabled again in the ML4W Settings App
+- Hyprpaper is now the default wallpaper engine. swww can be activiated
+- Animations can be disabled in the Dotfiles Settings app
+- Animations can be toggled (enabled/disabled) temporarily with SUPER + SHIFT + A
+- Keyboard layout is part of the system information module of waybar
+- nm-applet can be started from the ML4W Welcome App menu Settings/System
+- New diagnosis features checks that essential command are available. Enter ml4w-diagnosis in a terminal or from the ML4W Welcome App
+
Version 2.8.4
https://gitlab.com/stephan-raabe/dotfiles/-/releases/2.8.4
--------------------------------------------------------
diff --git a/README.md b/README.md
index 024e181..f468a6c 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,16 @@
-# ML4W Dotfiles 2.8.4
+# ML4W Dotfiles 2.9
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.
-[![Screenshot](screenshots/v284/screenshot-284-1.png "Title Text")](screenshots/v283/screenshot-284-1.png)
+[![Screenshot](screenshots/v29/screenshot-29-1.png "Screenshot")](screenshots/v29/screenshot-29-1.png)
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)
+YouTube Video [https://youtu.be/HMxHUvN6VGo](https://youtu.be/HMxHUvN6VGo)
+
[TOC]
# Installation
@@ -23,12 +25,12 @@ The dotfiles are tested with the following Arch based distributions:
- Arch Linux (recommended)
- EndeavourOS
+- Garuda Linux
- Arco Linux
-- Manjaro Linux
The installation should work on all Arch Linux based distributions as well.
-> **For Manjaro users:** Hyprland and required components are under ongoing development. That's why it's possible that some packages are not immediatly available on Manjaro e.g., hyprlock or hypridle. But usually, the packages will be published later.
+> **For Manjaro users:** Hyprland and required packages are under ongoing development. That's why it could be possible that some packages are not immediatly available on Manjaro. But usually, the packages will be published later. Maybe you can install required packages manually.
> **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.
@@ -44,25 +46,40 @@ If possible, please create a snapshot of your current system if snapper or Times
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... into your Downloads Folder)
-
-Or with wget if your starting point is a minimal Arch Linux installation without DE:
+[You can download the app here.](https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/installer.AppImage) (Right click + Save link as... into your Downloads Folder)
```
-mkdir ~/Downloads # If Downloads folder doesn't exists
-wget -P ~/Downloads/ https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/ML4W_Dotfiles_Installer.AppImage
-
-```
-
-```
-# Change to the Downloads folder
+# 1.) Change to the Downloads folder
cd ~/Downloads
-# Make the file executable
-chmod +x ML4W_Dotfiles_Installer.AppImage
+# 2.) Make the file executable
+chmod +x installer.AppImage
+
+# 3.) Start the App from your terminal with
+./installer.AppImage
+```
+
+Or with download the Installer App with wget if your starting point is a minimal Arch Linux with without DE from tty:
+
+```
+# 0.) Install required packages
+sudo pacman -S wget fuse2 # Only required for Minimal Arch installations. If wget or libfuse.so.2 is not installed.
+
+# 1.) Create Downloads folder
+mkdir ~/Downloads # If Downloads folder doesn't exists
+
+# 2.) Download the installer
+wget -P ~/Downloads/ https://gitlab.com/stephan-raabe/dotfiles/-/raw/main/apps/installer.AppImage
+
+# 3.) Change to the Downloads folder
+cd ~/Downloads
+
+# 4.) Make the file executable
+chmod +x installer.AppImage
+
+# 5.) Start the App from your terminal with
+./installer.AppImage
-# Start the App from your terminal with
-./ML4W_Dotfiles_Installer.AppImage
```
Alternatively you can install with GIT.
@@ -182,20 +199,34 @@ All keybindings for Hyprland with right mouse click on Apps in waybar or here:
# Hyprland
-
+[![Screenshot](screenshots/v29/screenshot-29-2.png "Screenshot")](screenshots/v29/screenshot-29-2.png)
-
-
+[![Screenshot](screenshots/v29/screenshot-29-3.png "Screenshot")](screenshots/v29/screenshot-29-3.png)
-You can find more screenshots here.
-Watch on YouTube
+Watch on YouTube
+
+## ML4W Sidebar
+
+With the ML4W Sidebar you have access to all included ML4W Applications and some system information. In addition, you start the main power features for your system.
+
+You can also start the sidebar from the terminal with
+```
+ml4w-sidebar
+```
+
+
## ML4W Welcome App
After starting the ML4W dotfiles for the first time, the ML4W Welcome App opens. This app is the starting point to discover the Hyprland setup.
+You can also start the Welcome App from the terminal with
+```
+ml4w
+```
+
The welcome screen includes the most important keybindings to open a terminal or a browser.
@@ -233,6 +264,34 @@ You can also edit the file custom.conf which is included at the bottom of the hy
You can find the sourcecode of the ML4W Dotfiles Settings App in this repository:
https://gitlab.com/stephan-raabe/ml4w-dotfiles-settings
+You can also start the Dotfiles App from the terminal with
+```
+ml4w-settings
+```
+
+## ML4W Hyprland Settings App
+
+This applications supports you to customize your Hyprland installation. You can overwrite the existing configuration with custom values without adding complex configuration files.
+
+[![Screenshot](screenshots/screenshot-hyprland-settings.png "ML4W Hyprland Settings")](screenshots/screenshot.png)
+
+YOu can start the application from the application launcher, the ML4W Sidebar by clicking the ML4W Logo or from the welcome app.
+
+The app shows variables and current values of your running Hyprland.
+
+You can change the values and overwrite the existing values. The change will be axecuted immediatly.
+
+In the Set Variables tab you can see which values you have overwritten and can restore the old values be removing the entry.
+
+You can also start the Hyprland App from the terminal with
+
+```
+ml4w-hyprland
+```
+
+You can find the sourcecode of the ML4W Hyprland Settings App in this repository:
+https://gitlab.com/stephan-raabe/ml4w-hyprland-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.
@@ -275,11 +334,11 @@ https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
- Terminal: alacritty
- Editor: nvim
- Prompt: starship
-- Wallpaper: swww or hyprpaper
+- Wallpaper: hyprpaper (swww optional)
- Icons: Font Awesome
-- Launch Menus: Rofi (Wayland fork)
+- Launch Menus: Rofi (Wayland)
- Colorscheme: pywal
-- Browsers: chromium (brave optional)
+- Browsers: Chromium
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
@@ -308,14 +367,14 @@ Included is a pywal configuration that changes the color scheme based on a rando
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
-- Launch Menus: Rofi (Wayland fork)
+- Launch Menus: Rofi
- Colorscheme: pywal
-- Browsers: chromium (brave optional)
+- Browsers: Chromium
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
- Status Bar: Qtile status bar
-- Compositor: picom
+- Compositor: picom (optional)
- Screenshots: scrot
# Installation/Update with GIT
@@ -389,19 +448,25 @@ If you want to install only the core packages of Hyprland as a starting point fo
# Troubleshooting
-## Wallpaper issues (grey or distroyed image) with latest swww 0.9.1
+The ML4W Welcome App includes a system diagnosis feature available in the menu with the three dots.
-Please install the latest version of the ML4W Dotfiles > 2.8.4
+Please run the diagnosis to see if all essential packages and related commands are available on your system.
-Or replace the swww launch command in /dotfiles/hypr/conf/autostart.conf with
+If not, you need to install the missing packages manually.
+
+## rofi (application launcher) is not working
+
+If the installation of rofi-wayland fails in the installation/update procedure please try to install it manually:
```
-exec-once = swww init || swww-daemon --format xrgb
+yay -S rofi-wayland
```
-> 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.
+If rofi-wayland isn't available please try rofi:
-You can use the ML4W Dotfiles Settings app to replace swww with hyprpaper.
+```
+yay -S rofi
+```
## hypridle and hyprlock is not starting after an update of the dotfiles
diff --git a/alacritty/alacritty.toml b/alacritty/alacritty.toml
index 7ae3ad2..4bfdeb9 100644
--- a/alacritty/alacritty.toml
+++ b/alacritty/alacritty.toml
@@ -11,3 +11,6 @@ opacity = 0.7
[window.padding]
x = 15
y = 15
+
+[selection]
+save_to_clipboard = true
diff --git a/apps/ML4W_Dotfiles_Settings-x86_64.AppImage b/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
index 95d869f..fa0f251 100755
Binary files a/apps/ML4W_Dotfiles_Settings-x86_64.AppImage and b/apps/ML4W_Dotfiles_Settings-x86_64.AppImage differ
diff --git a/apps/ML4W_Hyprland_Settings-x86_64.AppImage b/apps/ML4W_Hyprland_Settings-x86_64.AppImage
new file mode 100755
index 0000000..f8e23e3
Binary files /dev/null and b/apps/ML4W_Hyprland_Settings-x86_64.AppImage differ
diff --git a/apps/ML4W_Welcome-x86_64.AppImage b/apps/ML4W_Welcome-x86_64.AppImage
index cd45671..dd4fc47 100755
Binary files a/apps/ML4W_Welcome-x86_64.AppImage and b/apps/ML4W_Welcome-x86_64.AppImage differ
diff --git a/apps/ML4W_Dotfiles_Installer.AppImage b/apps/installer.AppImage
similarity index 92%
rename from apps/ML4W_Dotfiles_Installer.AppImage
rename to apps/installer.AppImage
index 1f705a2..40e33fc 100755
Binary files a/apps/ML4W_Dotfiles_Installer.AppImage and b/apps/installer.AppImage differ
diff --git a/apps/ml4w-dotfiles-settings.desktop b/apps/ml4w-dotfiles-settings.desktop
index 8aba4de..f031bea 100755
--- a/apps/ml4w-dotfiles-settings.desktop
+++ b/apps/ml4w-dotfiles-settings.desktop
@@ -2,6 +2,6 @@
Type=Application
Name=ML4W Dotfiles Settings App
Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
-Icon=HOME/dotfiles/apps/ml4w-icon.png
+Icon=HOME/dotfiles/apps/ml4w-dotfiles-settings.png
Terminal=false
Categories=Utility
\ No newline at end of file
diff --git a/apps/ml4w-dotfiles-settings.png b/apps/ml4w-dotfiles-settings.png
new file mode 100644
index 0000000..938b6f7
Binary files /dev/null and b/apps/ml4w-dotfiles-settings.png differ
diff --git a/apps/ml4w-hyprland-settings.desktop b/apps/ml4w-hyprland-settings.desktop
new file mode 100755
index 0000000..483c0d3
--- /dev/null
+++ b/apps/ml4w-hyprland-settings.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=ML4W Hyprland Settings App
+Exec=HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage
+Icon=HOME/dotfiles/apps/ml4w-hyprland-settings.png
+Terminal=false
+Categories=Utility
\ No newline at end of file
diff --git a/apps/ml4w-hyprland-settings.png b/apps/ml4w-hyprland-settings.png
new file mode 100644
index 0000000..c7e8e29
Binary files /dev/null and b/apps/ml4w-hyprland-settings.png differ
diff --git a/apps/ml4w-welcome.png b/apps/ml4w-welcome.png
new file mode 100644
index 0000000..7d4efe7
Binary files /dev/null and b/apps/ml4w-welcome.png differ
diff --git a/eww/assets/application-exit-symbolic-rtl.svg b/eww/assets/application-exit-symbolic-rtl.svg
new file mode 100644
index 0000000..89f0825
--- /dev/null
+++ b/eww/assets/application-exit-symbolic-rtl.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/eww/assets/media-playback-pause-symbolic.svg b/eww/assets/media-playback-pause-symbolic.svg
new file mode 100644
index 0000000..39383da
--- /dev/null
+++ b/eww/assets/media-playback-pause-symbolic.svg
@@ -0,0 +1,7 @@
+
+
diff --git a/eww/assets/system-lock-screen-symbolic.svg b/eww/assets/system-lock-screen-symbolic.svg
new file mode 100644
index 0000000..78a410a
--- /dev/null
+++ b/eww/assets/system-lock-screen-symbolic.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/eww/assets/system-reboot-symbolic.svg b/eww/assets/system-reboot-symbolic.svg
new file mode 100644
index 0000000..15171f5
--- /dev/null
+++ b/eww/assets/system-reboot-symbolic.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/eww/assets/system-shutdown-symbolic.svg b/eww/assets/system-shutdown-symbolic.svg
new file mode 100644
index 0000000..cfd4996
--- /dev/null
+++ b/eww/assets/system-shutdown-symbolic.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/eww/assets/window-close-symbolic.svg b/eww/assets/window-close-symbolic.svg
new file mode 100644
index 0000000..4cd28cd
--- /dev/null
+++ b/eww/assets/window-close-symbolic.svg
@@ -0,0 +1,4 @@
+
+
diff --git a/eww/eww.yuck b/eww/eww.yuck
new file mode 100644
index 0000000..e69de29
diff --git a/eww/ml4w-sidebar/eww.scss b/eww/ml4w-sidebar/eww.scss
new file mode 100644
index 0000000..45c6c82
--- /dev/null
+++ b/eww/ml4w-sidebar/eww.scss
@@ -0,0 +1,78 @@
+*{
+ all: unset;
+ font-family: "Fira Sans";
+ color: #FFFFFF;
+}
+
+.winbox {
+ background-color: #242424;
+ opacity: 0.85;
+ border: 1px solid #444444;
+ border-radius: 12px;
+ box-shadow: 0 0 4px 2px #000000;
+ margin: 10px;
+}
+
+.res_box {
+ background-color: #242424;
+ border-radius: 12px;
+ padding: 14px 18px 14px 18px;
+}
+
+.res_circle {
+ background-color: #FFFFFF;
+ border: 0px solid #161616;
+ color:#FFFFFF;
+ border-radius: 100%;
+ padding: 0px;
+}
+
+.ml4w_icon {
+ background-repeat: no-repeat;
+ background-size: 48px;
+ min-height: 48px;
+ min-width: 48px;
+}
+
+.res_circle_small {
+ background-color: #242424;
+ border: 0px solid #161616;
+ border-radius: 100%;
+ padding: 40px;
+ color:#FFFFFF;
+}
+
+.res_text {
+ border-radius: 16px;
+ color: #FFFFFF;
+ font-size : 16px;
+ padding: 0px 8px 0px 8px;
+ margin: 0px 0px 0px 0px;
+ font-weight : bold;
+}
+
+.res_cpu {
+ color: #19cddb;
+}
+
+.res_mem {
+ color: #a5deb7;
+}
+
+.res_disk {
+ color: #cfb3ff;
+}
+
+.powericons {
+ background-repeat: no-repeat;
+ background-size: 30px;
+ min-height: 30px;
+ min-width: 30px;
+}
+
+.closeicon {
+ background-repeat: no-repeat;
+ background-size: 16px;
+ min-height: 16px;
+ min-width: 16px;
+}
diff --git a/eww/ml4w-sidebar/eww.yuck b/eww/ml4w-sidebar/eww.yuck
new file mode 100644
index 0000000..551c73b
--- /dev/null
+++ b/eww/ml4w-sidebar/eww.yuck
@@ -0,0 +1,184 @@
+;; Icons: https://github.com/GNOME/adwaita-icon-theme/tree/master/Adwaita
+
+;; Variables
+
+;; System vars
+(defpoll HOST :interval "5s" `hostname`)
+(defpoll CPU_USAGE :interval "1s" `../scripts/sys_info.sh --cpu`)
+(defpoll MEM_USAGE :interval "1s" `../scripts/sys_info.sh --mem`)
+(defpoll DISK_USAGE :interval "1s" `../scripts/sys_info.sh --disk`)
+
+;; Widgets
+
+;; resources
+(defwidget ml4wlauncher []
+ (box :class "winbox"
+ (centerbox :orientation "h"
+ (box :class "ml4w-welcome" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
+ (button :style "background-image: url('../../apps/ml4w-welcome.png');" :class "ml4w_icon" :orientation "v" :valign "center" :halign "center" :onclick "../scripts/launch_app.sh --welcome")
+ (label :class "res_text" :valign "end" :halign "center" :text "Welcome App")
+ )
+ (box :class "ml4w-dotfiles" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
+ (button :style "background-image: url('../../apps/ml4w-dotfiles-settings.png');" :class "ml4w_icon" :orientation "v" :valign "center" :halign "center" :onclick "../scripts/launch_app.sh --dotfiles")
+ (label :class "res_text" :valign "end" :halign "center" :text "Dotfiles App")
+ )
+ (box :class "ml4w-hyprland" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
+ (button :style "background-image: url('../../apps/ml4w-hyprland-settings.png');" :class "ml4w_icon" :orientation "v" :valign "center" :halign "center" :onclick "../scripts/launch_app.sh --hyprland")
+ (label :class "res_text" :valign "end" :halign "center" :text "Hyprland App")
+ )
+ )
+ )
+)
+
+(defwidget resources []
+ (box :class "winbox"
+ (centerbox :orientation "h"
+ (box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
+ (box :class "res_circle" :orientation "v" :valign "center" :halign "center"
+ (circular-progress :class "res_cpu" :value CPU_USAGE :thickness 15
+ (label :class "res_circle_small" :text "CPU")
+ )
+ )
+ (label :class "res_text" :valign "end" :halign "center" :text "${CPU_USAGE}%")
+ )
+ (box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
+ (box :class "res_circle" :orientation "v" :valign "center" :halign "center"
+ (circular-progress :class "res_mem" :value MEM_USAGE :thickness 15
+ (label :class "res_circle_small" :text "MEMORY")
+ )
+ )
+ (label :class "res_text" :valign "end" :halign "center" :text "${MEM_USAGE}%")
+ )
+ (box :class "res_box" :orientation "v" :valign "center" :halign "center" :spacing 15 :space-evenly "false"
+ (box :class "res_circle" :orientation "v" :valign "center" :halign "center"
+ (circular-progress :class "res_disk" :value DISK_USAGE :thickness 15
+ (label :class "res_circle_small" :text "DISK")
+ )
+ )
+ (label :class "res_text" :valign "end" :halign "center" :text "${DISK_USAGE}%")
+ )
+ )
+ )
+)
+
+(defwidget close []
+ (box :class "winbox"
+ (button :tooltip "Close" :style "background-image: url('../assets/window-close-symbolic.svg');" :class "closeicon" :valign "center" :halign "center" :onclick "../scripts/eww.sh &")
+ )
+)
+
+;; powermenus
+(defwidget logout []
+ (box :class "winbox"
+ (button :tooltip "Logout" :style "background-image: url('../assets/application-exit-symbolic-rtl.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh logout &")
+ )
+)
+
+(defwidget suspend []
+ (box :class "winbox"
+ (button :tooltip "Suspend" :style "background-image: url('../assets/media-playback-pause-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh suspend &")
+ )
+)
+
+(defwidget lock []
+ (box :class "winbox"
+ (button :tooltip "Lock" :style "background-image: url('../assets/system-lock-screen-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh lock &")
+ )
+)
+
+(defwidget reboot []
+ (box :class "winbox"
+ (button :tooltip "Reboot" :style "background-image: url('../assets/system-reboot-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh reboot &")
+ )
+)
+
+(defwidget shutdown []
+ (box :class "winbox"
+ (button :tooltip "Shutdown" :style "background-image: url('../assets/system-shutdown-symbolic.svg');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system.sh shutdown &")
+ )
+)
+
+;; ** Windows *************************************************************************
+
+(defwindow close
+ :geometry (geometry :x "455px"
+ :y "-7px"
+ :width "44px"
+ :height "44px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(close))
+
+(defwindow ml4wlauncher
+ :geometry (geometry :x "5px"
+ :y "5px"
+ :width "480px"
+ :height "140px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(ml4wlauncher))
+
+;; resources
+(defwindow resources
+ :geometry (geometry :x "5px"
+ :y "140px"
+ :width "480px"
+ :height "180px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(resources))
+
+;; powermenu
+(defwindow logout
+ :geometry (geometry :x "5px"
+ :y "318px"
+ :width "80px"
+ :height "80px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(logout))
+
+(defwindow suspend
+ :geometry (geometry :x "102px"
+ :y "318px"
+ :width "80px"
+ :height "80px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(suspend))
+
+(defwindow lock
+ :geometry (geometry :x "204px"
+ :y "318px"
+ :width "80px"
+ :height "80px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(lock))
+
+(defwindow reboot
+ :geometry (geometry :x "305px"
+ :y "318px"
+ :width "80px"
+ :height "80px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(reboot))
+
+(defwindow shutdown
+ :geometry (geometry :x "405px"
+ :y "318px"
+ :width "80px"
+ :height "80px"
+ :anchor "top right")
+ :stacking "fg"
+ :wm-ignore false
+(shutdown))
+
diff --git a/eww/ml4w-sidebar/launch.sh b/eww/ml4w-sidebar/launch.sh
new file mode 100755
index 0000000..d144e52
--- /dev/null
+++ b/eww/ml4w-sidebar/launch.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+FILE="$HOME/.cache/ml4w_sidebar"
+CFG="$HOME/dotfiles/eww/ml4w-sidebar"
+EWW=`which eww`
+
+if [[ ! `pidof eww` ]]; then
+ ${EWW} daemon
+ sleep 0.5
+fi
+
+if [ -f $HOME/dotfiles/.settings/eww-monitor.sh ] && [ $(cat $HOME/dotfiles/.settings/eww-monitor.sh) != "auto" ] ;then
+ echo ":: Using monitor id from $HOME/dotfiles/.settings/eww-monitor.sh"
+ sc=$(cat $HOME/dotfiles/.settings/eww-monitor.sh)
+else
+ echo ":: Autodetect current focused monitor."
+ sc=$(python $HOME/dotfiles/hypr/scripts/active-monitor.py)
+fi
+if [[ ! -f "$FILE" ]]; then
+ touch "$FILE"
+ echo ":: Opening on Monitor $sc"
+ ${EWW} --config "$CFG" open ml4wlauncher --screen $sc
+ ${EWW} --config "$CFG" open resources --screen $sc
+ ${EWW} --config "$CFG" open logout --screen $sc
+ ${EWW} --config "$CFG" open suspend --screen $sc
+ ${EWW} --config "$CFG" open lock --screen $sc
+ ${EWW} --config "$CFG" open reboot --screen $sc
+ ${EWW} --config "$CFG" open shutdown --screen $sc
+ ${EWW} --config "$CFG" open close --screen $sc
+else
+ ${EWW} --config "$CFG" close resources ml4wlauncher logout suspend lock reboot shutdown close
+ echo ":: Closing widgets"
+ rm "$FILE"
+fi
\ No newline at end of file
diff --git a/eww/scripts/eww.sh b/eww/scripts/eww.sh
new file mode 100755
index 0000000..a13b895
--- /dev/null
+++ b/eww/scripts/eww.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+sleep 0.3
+$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
\ No newline at end of file
diff --git a/eww/scripts/launch_app.sh b/eww/scripts/launch_app.sh
new file mode 100755
index 0000000..9285adc
--- /dev/null
+++ b/eww/scripts/launch_app.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+if [[ "$1" == "--welcome" ]]; then
+ $HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage
+elif [[ "$1" == "--dotfiles" ]]; then
+ $HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage
+elif [[ "$1" == "--hyprland" ]]; then
+ $HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage
+else
+ echo "ERROR: $1 not found"
+fi
+
diff --git a/eww/scripts/sys_info.sh b/eww/scripts/sys_info.sh
new file mode 100755
index 0000000..27a589a
--- /dev/null
+++ b/eww/scripts/sys_info.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+## Files and Data
+PREV_TOTAL=0
+PREV_IDLE=0
+cpuFile="/tmp/.cpu_usage"
+
+## Get CPU usage
+get_cpu() {
+ if [[ -f "${cpuFile}" ]]; then
+ fileCont=$(cat "${cpuFile}")
+ PREV_TOTAL=$(echo "${fileCont}" | head -n 1)
+ PREV_IDLE=$(echo "${fileCont}" | tail -n 1)
+ fi
+
+ CPU=(`cat /proc/stat | grep '^cpu '`) # Get the total CPU statistics.
+ unset CPU[0] # Discard the "cpu" prefix.
+ IDLE=${CPU[4]} # Get the idle CPU time.
+
+ # Calculate the total CPU time.
+ TOTAL=0
+
+ for VALUE in "${CPU[@]:0:4}"; do
+ let "TOTAL=$TOTAL+$VALUE"
+ done
+
+ if [[ "${PREV_TOTAL}" != "" ]] && [[ "${PREV_IDLE}" != "" ]]; then
+ # Calculate the CPU usage since we last checked.
+ let "DIFF_IDLE=$IDLE-$PREV_IDLE"
+ let "DIFF_TOTAL=$TOTAL-$PREV_TOTAL"
+ let "DIFF_USAGE=(1000*($DIFF_TOTAL-$DIFF_IDLE)/$DIFF_TOTAL+5)/10"
+ echo "${DIFF_USAGE}"
+ else
+ echo "?"
+ fi
+
+ # Remember the total and idle CPU times for the next check.
+ echo "${TOTAL}" > "${cpuFile}"
+ echo "${IDLE}" >> "${cpuFile}"
+}
+
+## Get Used memory
+get_mem() {
+ printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
+}
+
+## Get Brightness
+get_blight() {
+ CARD=`ls /sys/class/backlight | head -n 1`
+
+ if [[ "$CARD" == *"intel_"* ]]; then
+ BNESS=`xbacklight -get`
+ LIGHT=${BNESS%.*}
+ else
+ BNESS=`blight -d $CARD get brightness`
+ PERC="$(($BNESS*100/255))"
+ LIGHT=${PERC%.*}
+ fi
+
+ echo "$LIGHT"
+}
+
+## Get Battery
+get_battery() {
+ BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
+ cat /sys/class/power_supply/${BAT}/capacity
+}
+
+## Get Disk Usage
+get_disk() {
+ df -h / | awk '{print $5}' | tail -n1 | sed 's/%//g'
+}
+
+## Execute accordingly
+if [[ "$1" == "--cpu" ]]; then
+ get_cpu
+elif [[ "$1" == "--mem" ]]; then
+ get_mem
+elif [[ "$1" == "--blight" ]]; then
+ get_blight
+elif [[ "$1" == "--bat" ]]; then
+ get_battery
+elif [[ "$1" == "--disk" ]]; then
+ get_disk
+fi
diff --git a/eww/scripts/system.sh b/eww/scripts/system.sh
new file mode 100755
index 0000000..d10441d
--- /dev/null
+++ b/eww/scripts/system.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+sleep 0.3
+$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
+
+if [[ "$1" == "reboot" ]]; then
+ $HOME/dotfiles/hypr/scripts/reboot.sh
+elif [[ "$1" == "shutdown" ]]; then
+ $HOME/dotfiles/hypr/scripts/shutdown.sh
+elif [[ "$1" == "lock" ]]; then
+ $HOME/dotfiles/hypr/scripts/lock.sh
+elif [[ "$1" == "suspend" ]]; then
+ $HOME/dotfiles/hypr/scripts/suspend.sh
+elif [[ "$1" == "logout" ]]; then
+ $HOME/dotfiles/hypr/scripts/exit.sh
+fi
diff --git a/fastfetch/config.jsonc b/fastfetch/config.jsonc
new file mode 100644
index 0000000..501fe00
--- /dev/null
+++ b/fastfetch/config.jsonc
@@ -0,0 +1,165 @@
+// Note that you must replace the image path to an existing image to display it.
+
+{
+ "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
+ // "logo": {
+ // "type": "iterm",
+ // "source": "/Users/carter/Desktop/apple1.png",
+ // "width": 28,
+ // "height": 12
+ // },
+ "display": {
+ // "separator": " "
+ "separator": " "
+ },
+ "modules": [
+ {
+ "type": "host",
+ "key": "╭─",
+ "keyColor": "green"
+ },
+ {
+ "type": "cpu",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "gpu",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "disk",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "memory",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "swap",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "display",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "battery",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "poweradapter",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "gamepad",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "bluetooth",
+ "key": "├─",
+ "keyColor": "green"
+ },
+ {
+ "type": "sound",
+ "key": "╰─",
+ "keyColor": "green"
+ },
+ "break",
+
+ {
+ "type": "shell",
+ "key": "╭─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "terminal",
+ "key": "├─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "terminalfont",
+ "key": "├─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "lm",
+ "key": "├─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "de",
+ "key": "├─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "wm",
+ "key": "├─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "theme",
+ "key": "├─",
+ "keyColor": "yellow"
+ },
+ {
+ "type": "icons",
+ "key": "╰─",
+ "keyColor": "yellow"
+ },
+
+ "break",
+ {
+ "type": "title",
+ "key": "╭─",
+ "format": "{1}@{2}",
+ "keyColor": "blue"
+ },
+ {
+ "type": "os",
+ "key": "├─", // Just get your distro's logo off nerdfonts.com
+ "keyColor": "blue"
+ },
+ {
+ "type": "kernel",
+ "key": "├─",
+ "format": "{1} {2}",
+ "keyColor": "blue"
+ },
+ {
+ "type": "packages",
+ "key": "├─",
+ "keyColor": "blue"
+ },
+ {
+ "type": "uptime",
+ "key": "├─",
+ "keyColor": "blue"
+ },
+ {
+ "type": "media",
+ "key": "├─",
+ "keyColor": "blue"
+ },
+ {
+ "type": "localip",
+ "key": "╰─",
+ "compact": true,
+ "keyColor": "blue"
+ },
+ {
+ "type": "colors",
+ "paddingLeft": 4,
+ "symbol": "circle"
+ }
+ ]
+}
+
diff --git a/hypr/conf/animations/disabled.conf b/hypr/conf/animations/disabled.conf
new file mode 100644
index 0000000..c9e31c4
--- /dev/null
+++ b/hypr/conf/animations/disabled.conf
@@ -0,0 +1,7 @@
+# -----------------------------------------------------
+# Animations
+# name "Default"
+# -----------------------------------------------------
+animations {
+ enabled = false
+}
diff --git a/hypr/conf/autostart.conf b/hypr/conf/autostart.conf
index 5a28c57..5acb6f8 100644
--- a/hypr/conf/autostart.conf
+++ b/hypr/conf/autostart.conf
@@ -18,16 +18,17 @@ exec-once = ~/dotfiles/hypr/scripts/gtk.sh
exec-once = hypridle
# exec-once = swayidle -w timeout 600 'swaylock -f' timeout 660 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -f'
-# Load network manager applet
-# START NM APPLET
-# exec-once = nm-applet --indicator
-# END NM APPLET
-
# Load cliphist history
exec-once = wl-paste --watch cliphist store
# Initialize Wallpaper Engine
exec-once = ~/dotfiles/hypr/scripts/init-wallpaper-engine.sh
-# Start ML4W Welcome App
+# Autostart ML4W App
exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh
+
+# Load configuration from ML4W Hyprland Settings App
+exec-once = ~/.config/ml4w-hyprland-settings/hyprctl.sh
+
+# Start ewww daemon
+exec-once = ~/dotfiles/hypr/scripts/eww.sh
\ No newline at end of file
diff --git a/hypr/conf/environments/default.conf b/hypr/conf/environments/default.conf
index 6e76947..8f22e1b 100644
--- a/hypr/conf/environments/default.conf
+++ b/hypr/conf/environments/default.conf
@@ -4,5 +4,11 @@
# -----------------------------------------------------
env = XCURSOR_SIZE,24
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland
-
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+env = MOZ_ENABLE_WAYLAND,1
+env = GDK_SCALE,1
diff --git a/hypr/conf/environments/kvm.conf b/hypr/conf/environments/kvm.conf
index e4cc617..d63d5f7 100644
--- a/hypr/conf/environments/kvm.conf
+++ b/hypr/conf/environments/kvm.conf
@@ -4,6 +4,13 @@
# -----------------------------------------------------
env = XCURSOR_SIZE,24
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
env = QT_QPA_PLATFORM,wayland
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+env = MOZ_ENABLE_WAYLAND,1
+env = GDK_SCALE,1
env = WLR_NO_HARDWARE_CURSORS, 1
env = WLR_RENDERER_ALLOW_SOFTWARE, 1
diff --git a/hypr/conf/fcitx5.conf b/hypr/conf/fcitx5.conf
new file mode 100644
index 0000000..487d3ce
--- /dev/null
+++ b/hypr/conf/fcitx5.conf
@@ -0,0 +1,5 @@
+exec-once = fcitx5-remote -r
+exec-once = fcitx5 -d --replace
+exec-once = fcitx5-remote -r
+
+bind=$mainMod CTRL, E, exec, pkill fcitx5 -9;sleep 1;fcitx5 -d --replace; sleep 1;fcitx5-remote -r
diff --git a/hypr/conf/keybindings/default.conf b/hypr/conf/keybindings/default.conf
index c54b8f8..02f8c7d 100644
--- a/hypr/conf/keybindings/default.conf
+++ b/hypr/conf/keybindings/default.conf
@@ -31,6 +31,7 @@ bind = $mainMod SHIFT, down, resizeactive, 0 100
bind = $mainMod, G, togglegroup
# Actions
+bind = $mainMod SHIFT, A, exec, ~/dotfiles/hypr/scripts/toggle-animations.sh
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
diff --git a/hypr/conf/ml4w.conf b/hypr/conf/ml4w.conf
index 9219d27..5ed75dc 100644
--- a/hypr/conf/ml4w.conf
+++ b/hypr/conf/ml4w.conf
@@ -18,8 +18,17 @@ 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:(com.ml4w.hyprlandsettings)
+windowrulev2 = size 700 600,class:(com.ml4w.hyprlandsettings)
+windowrulev2 = center,class:(com.ml4w.hyprlandsettings)
+
+windowrulev2 = float,class:(ml4w-hyprland-settings.py)
+windowrulev2 = size 700 600,class:(ml4w-hyprland-settings.py)
+windowrulev2 = center,class:(ml4w-hyprland-settings.py)
+
windowrulev2 = float,class:(dotfiles-floating)
windowrulev2 = size 1000 800,class:(dotfiles-floating)
windowrulev2 = center,class:(dotfiles-floating)
-env = APPIMAGELAUNCHER_DISABLE,1
\ No newline at end of file
+env = APPIMAGELAUNCHER_DISABLE,1
+
diff --git a/hypr/conf/windowrules/custom.conf b/hypr/conf/windowrules/custom.conf
index 3f8dbff..e3ccca5 100644
--- a/hypr/conf/windowrules/custom.conf
+++ b/hypr/conf/windowrules/custom.conf
@@ -16,3 +16,4 @@ layerrule = blur, logout_dialog
windowrule = float,title=^(Mathematica)$
windowrule = opacity 0.75, ^(Code)$
+windowrule = float,^(QQ)$
diff --git a/hypr/conf/windows/default.conf b/hypr/conf/windows/default.conf
index 9ac7993..b880c5d 100644
--- a/hypr/conf/windows/default.conf
+++ b/hypr/conf/windows/default.conf
@@ -6,7 +6,7 @@
general {
gaps_in = 10
gaps_out = 14
- border_size = 3
+ border_size = 2
col.active_border = $color11
col.inactive_border = rgba(ffffffff)
layout = dwindle
diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf
index 0b2cdbb..45ae6ff 100644
--- a/hypr/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -6,6 +6,9 @@
# |___/|_|
#
# -----------------------------------------------------
+# IMPORTANT: Don't overwrite ML4W configuration.
+# Create your own custom configuration variation instead.
+# https://gitlab.com/stephan-raabe/dotfiles#hyprland-configuration-variations
# -----------------------------------------------------
# Monitor
@@ -58,7 +61,7 @@ source = ~/dotfiles/hypr/conf/animation.conf
source = ~/dotfiles/hypr/conf/custom.conf
# -----------------------------------------------------
-# Custom
+# ML4W Configuration
# -----------------------------------------------------
source = ~/dotfiles/hypr/conf/ml4w.conf
diff --git a/hypr/hyprlock.conf b/hypr/hyprlock.conf
index 36004f4..65a8b97 100644
--- a/hypr/hyprlock.conf
+++ b/hypr/hyprlock.conf
@@ -20,7 +20,7 @@ input-field {
dots_center = true
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = rgb(151515)
- inner_color = rgb(200, 200, 200)
+ inner_color = rgb(FFFFFF)
font_color = rgb(10, 10, 10)
fade_on_empty = true
fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered.
@@ -47,7 +47,7 @@ label {
color = rgba(200, 200, 200, 1.0)
font_size = 55
font_family = Fira Semibold
- position = -100, -200
+ position = -100, -40
halign = right
valign = bottom
shadow_passes = 5
@@ -65,4 +65,19 @@ label {
valign = bottom
shadow_passes = 5
shadow_size = 10
+}
+
+image {
+ monitor =
+ path = $HOME/.cache/square_wallpaper.png
+ size = 280 # lesser side if not 1:1 ratio
+ rounding = -1 # negative values mean circle
+ border_size = 4
+ border_color = rgb(221, 221, 221)
+ rotate = 0 # degrees, counter-clockwise
+ reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2
+# reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F
+ position = 0, 200
+ halign = center
+ valign = center
}
\ No newline at end of file
diff --git a/hypr/scripts/active-monitor.py b/hypr/scripts/active-monitor.py
new file mode 100644
index 0000000..9aad2ae
--- /dev/null
+++ b/hypr/scripts/active-monitor.py
@@ -0,0 +1,18 @@
+import sys
+import subprocess
+import os
+import json
+import pathlib
+import shutil
+
+# Get script path
+pathname = os.path.dirname(sys.argv[0])
+homeFolder = os.path.expanduser('~') # Path to home folder
+dotfiles = homeFolder + "/dotfiles/"
+
+result = subprocess.run(["bash", dotfiles + "hypr/scripts/monitors.sh"], capture_output=True, text=True)
+monitors_json = result.stdout.strip()
+monitors_arr = json.loads(monitors_json)
+for row in monitors_arr:
+ if row["focused"]:
+ print(row["id"])
diff --git a/hypr/scripts/eww.sh b/hypr/scripts/eww.sh
new file mode 100755
index 0000000..ef4c3af
--- /dev/null
+++ b/hypr/scripts/eww.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+EWW=`which eww`
+if [[ ! `pidof eww` ]]; then
+ ${EWW} daemon
+ sleep 0.5
+fi
diff --git a/hypr/scripts/exit.sh b/hypr/scripts/exit.sh
index 0b61635..c3e8a7a 100755
--- a/hypr/scripts/exit.sh
+++ b/hypr/scripts/exit.sh
@@ -1,3 +1,3 @@
#!/bin/bash
-sleep 1
+sleep 0.5
killall -9 Hyprland sleep 2
\ No newline at end of file
diff --git a/hypr/scripts/lock.sh b/hypr/scripts/lock.sh
new file mode 100755
index 0000000..bc13b07
--- /dev/null
+++ b/hypr/scripts/lock.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+sleep 0.5
+hyprlock
\ No newline at end of file
diff --git a/hypr/scripts/ml4w-launcher.sh b/hypr/scripts/ml4w-launcher.sh
new file mode 100755
index 0000000..4ae1a57
--- /dev/null
+++ b/hypr/scripts/ml4w-launcher.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+# __ __ _ _ ___ __ _ _
+# | \/ | | | || \ \ / / | | __ _ _ _ _ __ ___| |__ ___ _ __
+# | |\/| | | | || |\ \ /\ / / | | / _` | | | | '_ \ / __| '_ \ / _ \ '__|
+# | | | | |__|__ _\ V V / | |__| (_| | |_| | | | | (__| | | | __/ |
+# |_| |_|_____| |_| \_/\_/ |_____\__,_|\__,_|_| |_|\___|_| |_|\___|_|
+#
+
+option1="ML4W Dotfiles Settings"
+option2="Hyprland Settings"
+option3="Change Wallpaper"
+option4="Change Waybar Theme"
+option5="ML4W Welcome App"
+
+options="$option1\n"
+options="$options$option2\n"
+options="$options$option3\n"
+options="$options$option4\n$option5"
+
+choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-ml4w-launcher.rasi -l 5)
+
+case $choice in
+ $option1)
+ $HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage ;;
+ $option2)
+ $HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage ;;
+ $option3)
+ $HOME/dotfiles/hypr/scripts/wallpaper.sh select ;;
+ $option4)
+ $HOME/dotfiles/waybar/themeswitcher.sh ;;
+ $option5)
+ $HOME/dotfiles/apps/ML4W_Welcome-x86_64.AppImage ;;
+esac
\ No newline at end of file
diff --git a/hypr/scripts/monitors.sh b/hypr/scripts/monitors.sh
new file mode 100755
index 0000000..14ea2ea
--- /dev/null
+++ b/hypr/scripts/monitors.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+hyprctl -j monitors
\ No newline at end of file
diff --git a/hypr/scripts/reboot.sh b/hypr/scripts/reboot.sh
new file mode 100755
index 0000000..2ddff75
--- /dev/null
+++ b/hypr/scripts/reboot.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+sleep 0.5
+systemctl reboot
diff --git a/hypr/scripts/screenshot.sh b/hypr/scripts/screenshot.sh
index 0451dfb..fb7ec04 100755
--- a/hypr/scripts/screenshot.sh
+++ b/hypr/scripts/screenshot.sh
@@ -14,10 +14,11 @@ NAME="screenshot_$(date +%d%m%Y_%H%M%S).png"
option2="Selected area"
option3="Fullscreen (delay 3 sec)"
+option4="Current display (delay 3 sec)"
-options="$option2\n$option3"
+options="$option2\n$option3\n$option4"
-choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-screenshot.rasi -i -no-show-icons -l 2 -width 30 -p "Take Screenshot")
+choice=$(echo -e "$options" | rofi -dmenu -replace -config ~/dotfiles/rofi/config-screenshot.rasi -i -no-show-icons -l 3 -width 30 -p "Take Screenshot")
case $choice in
$option2)
@@ -33,4 +34,12 @@ case $choice in
notify-send "Screenshot created and copied to clipboard" "Mode: Fullscreen"
swappy -f "$DIR$NAME"
;;
+ $option4)
+ sleep 3
+ monitor="$(hyprctl monitors | awk '/Monitor/{monitor=$2} /focused: yes/{print monitor; exit}')"
+ grim -o "$monitor" "$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
diff --git a/hypr/scripts/shutdown.sh b/hypr/scripts/shutdown.sh
new file mode 100755
index 0000000..48c8296
--- /dev/null
+++ b/hypr/scripts/shutdown.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+sleep 0.5
+systemctl poweroff
diff --git a/hypr/scripts/suspend.sh b/hypr/scripts/suspend.sh
new file mode 100755
index 0000000..440d34b
--- /dev/null
+++ b/hypr/scripts/suspend.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+sleep 0.5
+systemctl suspend
\ No newline at end of file
diff --git a/hypr/scripts/toggle-animations.sh b/hypr/scripts/toggle-animations.sh
new file mode 100755
index 0000000..867ecf4
--- /dev/null
+++ b/hypr/scripts/toggle-animations.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+cache_file="$HOME/.cache/toggle_animation"
+if [[ $(cat $HOME/dotfiles/hypr/conf/animation.conf) == *"disabled"* ]]; then
+ echo ":: Toggle blocked by disabled.conf variation."
+else
+ if [ -f $cache_file ] ;then
+ hyprctl keyword animations:enabled true
+ rm $cache_file
+ else
+ hyprctl keyword animations:enabled false
+ touch $cache_file
+ fi
+fi
\ No newline at end of file
diff --git a/hypr/scripts/wallpaper.sh b/hypr/scripts/wallpaper.sh
index f749345..3c20993 100755
--- a/hypr/scripts/wallpaper.sh
+++ b/hypr/scripts/wallpaper.sh
@@ -12,6 +12,7 @@
# Cache file for holding the current wallpaper
cache_file="$HOME/.cache/current_wallpaper"
blurred="$HOME/.cache/blurred_wallpaper.png"
+square="$HOME/.cache/square_wallpaper.png"
rasi_file="$HOME/.cache/current_wallpaper.rasi"
blur_file="$HOME/dotfiles/.settings/blur.sh"
@@ -114,8 +115,12 @@ 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
+ dunstify "Changing wallpaper ..." "with image $newwall" -h int:value:25 -h string:x-dunst-stack-tag:wallpaper
+
+ # -----------------------------------------------------
+ # Reload Hyprctl.sh
+ # -----------------------------------------------------
+ $HOME/.config/ml4w-hyprland-settings/hyprctl.sh &
fi
# -----------------------------------------------------
@@ -124,7 +129,7 @@ fi
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
+ dunstify "Creating blurred version ..." "with image $newwall" -h int:value:50 -h string:x-dunst-stack-tag:wallpaper
fi
magick $wallpaper -resize 75% $blurred
@@ -134,6 +139,17 @@ if [ ! "$blur" == "0x0" ] ;then
echo ":: Blurred"
fi
+# -----------------------------------------------------
+# Created quare wallpaper
+# -----------------------------------------------------
+if [ "$1" == "init" ] ;then
+ echo ":: Init"
+else
+ dunstify "Creating square version ..." "with image $newwall" -h int:value:75 -h string:x-dunst-stack-tag:wallpaper
+fi
+magick $wallpaper -gravity Center -extent 1:1 $square
+echo ":: Square version created"
+
# -----------------------------------------------------
# Write selected wallpaper into .cache files
# -----------------------------------------------------
diff --git a/install.sh b/install.sh
index 284454e..3ba7100 100755
--- a/install.sh
+++ b/install.sh
@@ -44,6 +44,7 @@ source .install/remove.sh
source .install/general.sh
source .install/packages/general-packages.sh
source .install/install-packages.sh
+source .install/fcitx5.sh
source .install/profile.sh
if [[ $profile == *"Hyprland"* ]]; then
echo -e "${GREEN}"
@@ -64,10 +65,10 @@ source .install/hidpi.sh
source .install/displaymanager.sh
source .install/issue.sh
source .install/restore.sh
-source .install/keyboard.sh
source .install/neovim.sh
-source .install/vm.sh
+source .install/keyboard.sh
source .install/hook.sh
+source .install/vm.sh
source .install/copy.sh
source .install/init-pywal.sh
if [[ $profile == *"Hyprland"* ]]; then
@@ -81,5 +82,6 @@ source .install/apps.sh
source .install/gtk.sh
source .install/bashrc.sh
source .install/cleanup.sh
+source .install/diagnosis.sh
source .install/reboot.sh
sleep 3
diff --git a/rofi/config-cliphist.rasi b/rofi/config-cliphist.rasi
index c86b82a..d1666a3 100644
--- a/rofi/config-cliphist.rasi
+++ b/rofi/config-cliphist.rasi
@@ -38,12 +38,13 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
width: 400px;
x-offset: -14px;
- y-offset: 65px;
+ y-offset: 14px;
spacing: 0px;
padding: 0px;
margin: 0px;
@@ -56,7 +57,7 @@ window {
anchor: northeast;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -120,6 +121,7 @@ entry {
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
+ border-radius: 0px;
}
/* ---- Mode Switcher ---- */
@@ -132,7 +134,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -160,7 +162,8 @@ listview {
padding: 10px;
margin: 0px;
background-color: @background;
- border:0px;
+ border: 0px;
+ border-radius: 0px;
}
/* ---- Element ---- */
@@ -170,7 +173,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/rofi/config-compact.rasi b/rofi/config-compact.rasi
index 9bd9557..246bb7d 100644
--- a/rofi/config-compact.rasi
+++ b/rofi/config-compact.rasi
@@ -38,6 +38,7 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
@@ -56,7 +57,7 @@ window {
anchor: north;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -120,6 +121,7 @@ entry {
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
+ border-radius: 0px;
}
/* ---- Mode Switcher ---- */
@@ -132,7 +134,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -160,7 +162,8 @@ listview {
padding: 10px;
margin: 0px;
background-color: @background;
- border:0px;
+ border: 0px;
+ border-radius: 0px;
}
/* ---- Element ---- */
@@ -170,7 +173,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/rofi/config-ml4w-launcher.rasi b/rofi/config-ml4w-launcher.rasi
new file mode 100644
index 0000000..e5e82f0
--- /dev/null
+++ b/rofi/config-ml4w-launcher.rasi
@@ -0,0 +1,261 @@
+/*
+# ____ __ _
+# | _ \ ___ / _(_)
+# | |_) / _ \| |_| |
+# | _ < (_) | _| |
+# |_| \_\___/|_| |_|
+#
+# by Stephan Raabe (2023)
+# -----------------------------------------------------
+*/
+
+/* ---- Configuration ---- */
+configuration {
+ modi: "drun,run";
+ font: "Fira Sans 8";
+ show-icons: false;
+ display-drun: "APPS";
+ display-run: "RUN";
+ display-filebrowser: "FILES";
+ display-window: "WINDOW";
+ hover-select: true;
+ me-select-entry: "";
+ me-accept-entry: "MousePrimary";
+ drun-display-format: "{name}";
+ window-format: "{w} · {c} · {t}";
+
+}
+
+/* ---- Load font ---- */
+@import "~/dotfiles/.settings/rofi-font.rasi"
+
+/* ---- Load pywal colors (custom wal template) ---- */
+@import "~/.cache/wal/colors-rofi-pywal"
+
+/* ---- Load wallpaper ---- */
+@import "~/.cache/current_wallpaper.rasi"
+
+/* ---- Load border width ---- */
+@import "~/dotfiles/.settings/rofi-border.rasi"
+
+/* ---- Window ---- */
+window {
+ width: 260px;
+ x-offset: -14px;
+ y-offset: 15px;
+ spacing: 0px;
+ padding: 0px;
+ margin: 0px;
+ color: #FFFFFF;
+ border: @border-width;
+ border-color: #FFFFFF;
+ cursor: "default";
+ transparency: "real";
+ location: northeast;
+ anchor: northeast;
+ fullscreen: false;
+ enabled: true;
+ border-radius: 10px;
+ background-color: transparent;
+}
+
+/* ---- Mainbox ---- */
+mainbox {
+ enabled: true;
+ orientation: horizontal;
+ spacing: 0px;
+ margin: 0px;
+ background-color: @background;
+ background-image: @current-image;
+ children: ["listbox"];
+}
+
+/* ---- Imagebox ---- */
+imagebox {
+ padding: 18px;
+ background-color: transparent;
+ orientation: vertical;
+ children: [ "inputbar", "dummy", "mode-switcher" ];
+}
+
+/* ---- Listbox ---- */
+listbox {
+ spacing: 20px;
+ background-color: transparent;
+ orientation: vertical;
+ children: [ "listview" ];
+}
+
+/* ---- Dummy ---- */
+dummy {
+ background-color: transparent;
+}
+
+/* ---- Inputbar ---- */
+inputbar {
+ enabled: true;
+ text-color: @foreground;
+ spacing: 10px;
+ padding: 15px;
+ border-radius: 0px;
+ border-color: @foreground;
+ background-color: @background;
+ children: [ "textbox-prompt-colon", "entry" ];
+}
+
+textbox-prompt-colon {
+ enabled: true;
+ expand: false;
+ padding: 0px 5px 0px 0px;
+ str: "";
+ background-color: transparent;
+ text-color: inherit;
+}
+
+entry {
+ enabled: true;
+ background-color: transparent;
+ text-color: inherit;
+ cursor: text;
+ placeholder: "Search";
+ placeholder-color: inherit;
+}
+
+/* ---- Mode Switcher ---- */
+mode-switcher{
+ enabled: true;
+ spacing: 20px;
+ background-color: transparent;
+ text-color: @foreground;
+}
+
+button {
+ padding: 10px;
+ border-radius: 10px;
+ background-color: @background;
+ text-color: inherit;
+ cursor: pointer;
+ border: 0px;
+}
+
+button selected {
+ background-color: @color11;
+ text-color: @foreground;
+}
+
+/* ---- Listview ---- */
+listview {
+ enabled: true;
+ columns: 1;
+ lines: 2;
+ cycle: true;
+ dynamic: true;
+ scrollbar: false;
+ layout: vertical;
+ reverse: false;
+ fixed-height: true;
+ fixed-columns: true;
+ spacing: 0px;
+ padding: 10px;
+ margin: 0px;
+ background-color: @background;
+ border:0px;
+}
+
+/* ---- Element ---- */
+element {
+ enabled: true;
+ padding: 10px;
+ margin: 5px;
+ cursor: pointer;
+ background-color: @background;
+ border-radius: 10px;
+ border: @border-width;
+}
+
+element normal.normal {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element normal.urgent {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element normal.active {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element selected.normal {
+ background-color: @color11;
+ text-color: @foreground;
+}
+
+element selected.urgent {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element selected.active {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element alternate.normal {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element alternate.urgent {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element alternate.active {
+ background-color: inherit;
+ text-color: @foreground;
+}
+
+element-icon {
+ background-color: transparent;
+ text-color: inherit;
+ size: 32px;
+ cursor: inherit;
+}
+
+element-text {
+ background-color: transparent;
+ text-color: inherit;
+ cursor: inherit;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+/*****----- Message -----*****/
+message {
+ background-color: transparent;
+ border:0px;
+ margin:20px 0px 0px 0px;
+ padding:0px;
+ spacing:0px;
+ border-radius: 10px;
+}
+
+textbox {
+ padding: 15px;
+ margin: 0px;
+ border-radius: 0px;
+ background-color: @background;
+ text-color: @foreground;
+ vertical-align: 0.5;
+ horizontal-align: 0.0;
+}
+
+error-message {
+ padding: 15px;
+ border-radius: 20px;
+ background-color: @background;
+ text-color: @foreground;
+}
diff --git a/rofi/config-power.rasi b/rofi/config-power.rasi
index 8a617c4..be25ca3 100644
--- a/rofi/config-power.rasi
+++ b/rofi/config-power.rasi
@@ -38,6 +38,7 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
@@ -56,7 +57,7 @@ window {
anchor: center;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -132,7 +133,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -170,7 +171,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/rofi/config-screenshot.rasi b/rofi/config-screenshot.rasi
index f2d5cc8..8c83ca1 100644
--- a/rofi/config-screenshot.rasi
+++ b/rofi/config-screenshot.rasi
@@ -38,6 +38,7 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
@@ -56,7 +57,7 @@ window {
anchor: center;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -132,7 +133,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -170,7 +171,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/rofi/config-short.rasi b/rofi/config-short.rasi
index e84f9f9..978866b 100644
--- a/rofi/config-short.rasi
+++ b/rofi/config-short.rasi
@@ -38,6 +38,7 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
@@ -57,7 +58,7 @@ window {
anchor: northeast;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -133,7 +134,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -171,7 +172,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/rofi/config-themes.rasi b/rofi/config-themes.rasi
index f999c1c..1edf0d0 100644
--- a/rofi/config-themes.rasi
+++ b/rofi/config-themes.rasi
@@ -38,12 +38,13 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
width: 400px;
x-offset: 0px;
- y-offset: 65px;
+ y-offset: 14px;
spacing: 0px;
padding: 0px;
margin: 0px;
@@ -56,7 +57,7 @@ window {
anchor: north;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -120,6 +121,7 @@ entry {
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
+ border-radius: 0px;
}
/* ---- Mode Switcher ---- */
@@ -132,7 +134,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -160,7 +162,8 @@ listview {
padding: 10px;
margin: 0px;
background-color: @background;
- border:0px;
+ border: 0px;
+ border-radius: 0px;
}
/* ---- Element ---- */
@@ -170,7 +173,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/rofi/config-wallpaper.rasi b/rofi/config-wallpaper.rasi
index 62f7f50..82dc580 100644
--- a/rofi/config-wallpaper.rasi
+++ b/rofi/config-wallpaper.rasi
@@ -33,12 +33,13 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
width: 761px;
x-offset: 0px;
- y-offset: 65px;
+ y-offset: 14px;
spacing: 0px;
padding: 0px;
margin: 0px;
@@ -51,7 +52,7 @@ window {
anchor: north;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -114,6 +115,7 @@ entry {
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
+ border-radius: 0px;
}
/* ---- Mode Switcher ---- */
@@ -126,7 +128,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -152,9 +154,10 @@ listview {
padding: 10px;
margin: 0px;
fixed-height: true;
- fixed-columns: true;
+ fixed-columns: true;
background-color: @background;
border: 0px;
+ border-radius: 0px;
}
/* ---- Element ---- */
@@ -164,7 +167,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
orientation: vertical;
}
diff --git a/rofi/config.rasi b/rofi/config.rasi
index 0618872..1eb7a5b 100644
--- a/rofi/config.rasi
+++ b/rofi/config.rasi
@@ -38,6 +38,7 @@ configuration {
/* ---- Load border width ---- */
@import "~/dotfiles/.settings/rofi-border.rasi"
+@import "~/dotfiles/.settings/rofi-border-radius.rasi"
/* ---- Window ---- */
window {
@@ -49,14 +50,14 @@ window {
margin: 0px;
color: #FFFFFF;
border: @border-width;
- border-color: #FFFFFF;
+ border-color: @foreground;
cursor: "default";
transparency: "real";
location: center;
anchor: center;
fullscreen: false;
enabled: true;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: transparent;
}
@@ -98,7 +99,7 @@ inputbar {
text-color: @foreground;
spacing: 10px;
padding: 15px;
- border-radius: 10px;
+ border-radius: @border-radius;
border-color: @foreground;
background-color: @background;
children: [ "textbox-prompt-colon", "entry" ];
@@ -120,6 +121,7 @@ entry {
cursor: text;
placeholder: "Search";
placeholder-color: inherit;
+ border-radius: 0px;
}
/* ---- Mode Switcher ---- */
@@ -132,7 +134,7 @@ mode-switcher{
button {
padding: 10px;
- border-radius: 10px;
+ border-radius: @border-radius;
background-color: @background;
text-color: inherit;
cursor: pointer;
@@ -170,7 +172,7 @@ element {
margin: 5px;
cursor: pointer;
background-color: @background;
- border-radius: 10px;
+ border-radius: @border-radius;
border: @border-width;
}
diff --git a/screenshots/screenshot-hyprland-settings.png b/screenshots/screenshot-hyprland-settings.png
new file mode 100644
index 0000000..50b7d63
Binary files /dev/null and b/screenshots/screenshot-hyprland-settings.png differ
diff --git a/screenshots/screenshot-sidebar.png b/screenshots/screenshot-sidebar.png
new file mode 100644
index 0000000..18173c4
Binary files /dev/null and b/screenshots/screenshot-sidebar.png differ
diff --git a/screenshots/v271/screenshot-271-1.png b/screenshots/v271/screenshot-271-1.png
deleted file mode 100644
index 919ad9a..0000000
Binary files a/screenshots/v271/screenshot-271-1.png and /dev/null differ
diff --git a/screenshots/v28/screenshot-28-1.png b/screenshots/v28/screenshot-28-1.png
deleted file mode 100644
index 2b9d44d..0000000
Binary files a/screenshots/v28/screenshot-28-1.png and /dev/null differ
diff --git a/screenshots/v28/screenshot-28-2.png b/screenshots/v28/screenshot-28-2.png
deleted file mode 100644
index dfa1e54..0000000
Binary files a/screenshots/v28/screenshot-28-2.png and /dev/null differ
diff --git a/screenshots/v28/screenshot-28-3.png b/screenshots/v28/screenshot-28-3.png
deleted file mode 100644
index c9c8b9e..0000000
Binary files a/screenshots/v28/screenshot-28-3.png and /dev/null differ
diff --git a/screenshots/v281/screenshot-281-1.png b/screenshots/v281/screenshot-281-1.png
deleted file mode 100644
index 5a03527..0000000
Binary files a/screenshots/v281/screenshot-281-1.png and /dev/null differ
diff --git a/screenshots/v283/screenshot-283-1.png b/screenshots/v283/screenshot-283-1.png
deleted file mode 100644
index 4b62b82..0000000
Binary files a/screenshots/v283/screenshot-283-1.png and /dev/null differ
diff --git a/screenshots/v283/screenshot-283-2.png b/screenshots/v283/screenshot-283-2.png
deleted file mode 100644
index 5c2efbe..0000000
Binary files a/screenshots/v283/screenshot-283-2.png and /dev/null differ
diff --git a/screenshots/v284/screenshot-284-1.png b/screenshots/v284/screenshot-284-1.png
deleted file mode 100644
index 35cec80..0000000
Binary files a/screenshots/v284/screenshot-284-1.png and /dev/null differ
diff --git a/screenshots/v29/screenshot-29-1.png b/screenshots/v29/screenshot-29-1.png
new file mode 100644
index 0000000..f37dc45
Binary files /dev/null and b/screenshots/v29/screenshot-29-1.png differ
diff --git a/screenshots/v29/screenshot-29-2.png b/screenshots/v29/screenshot-29-2.png
new file mode 100644
index 0000000..3464d23
Binary files /dev/null and b/screenshots/v29/screenshot-29-2.png differ
diff --git a/screenshots/v29/screenshot-29-3.png b/screenshots/v29/screenshot-29-3.png
new file mode 100644
index 0000000..67459a7
Binary files /dev/null and b/screenshots/v29/screenshot-29-3.png differ
diff --git a/scripts/diagnosis.sh b/scripts/diagnosis.sh
index ee766c9..d9b33c8 100755
--- a/scripts/diagnosis.sh
+++ b/scripts/diagnosis.sh
@@ -3,13 +3,14 @@ clear
sleep 0.5
figlet "Diagnosis"
echo
-echo "This script will check if some core packages are available on your system."
+echo "This script will check that essential packages and "
+echo "execution commands are available on your system."
echo
_commandExists() {
package="$1";
- if ! type $package > /dev/null; then
- echo ":: ERROR: $package doesn't exists. Please install it."
+ if ! type $package > /dev/null 2>&1; then
+ echo ":: ERROR: $package doesn't exists. Please install it with yay -S $2"
else
echo ":: OK: $package found."
fi
@@ -24,14 +25,20 @@ _folderExists() {
fi
}
-_commandExists "rofi"
-_commandExists "dunst"
-_commandExists "waybar"
-_commandExists "swww"
-_commandExists "wal"
-_commandExists "gum"
-_commandExists "wlogout"
+_commandExists "rofi" "rofi-wayland"
+_commandExists "dunst" "dunst"
+_commandExists "waybar" "waybar"
+_commandExists "hyprpaper" "hyprpaper"
+_commandExists "hyprlock" "hyprpaper"
+_commandExists "hypridle" "hyprpaper"
+_commandExists "wal" "python-pywal"
+_commandExists "gum" "gum"
+_commandExists "wlogout" "wlogout"
+_commandExists "swww" "swww"
+_commandExists "eww" "eww"
+_commandExists "magick2" "imagemagick"
+_commandExists "figlet2" "figlet"
echo
-echo "Press return to close the window"
+echo "Press return to exit"
read
\ No newline at end of file
diff --git a/scripts/nm-applet.sh b/scripts/nm-applet.sh
new file mode 100755
index 0000000..37c01e2
--- /dev/null
+++ b/scripts/nm-applet.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+if [[ "$1" == "stop" ]]; then
+ killall nm-applet
+else
+ nm-applet --indicator &
+fi
diff --git a/waybar/modules.json b/waybar/modules.json
index d6b9355..88c31d0 100644
--- a/waybar/modules.json
+++ b/waybar/modules.json
@@ -58,11 +58,19 @@
// ML4W Welcome App
"custom/ml4w-welcome": {
- "on-click": "~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage",
+ "on-click": "sleep 0.1 && ~/dotfiles/eww/ml4w-sidebar/launch.sh",
+ "on-click-right": "sleep 0.1 && ~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage",
"format": " ",
"tooltip": false
},
+ // ML4W Welcome App
+ "custom/ml4w-hyprland-settings": {
+ "on-click": "~/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage",
+ "format": " ",
+ "tooltip": false
+ },
+
// Empty
"custom/empty": {
"format": ""
@@ -88,7 +96,7 @@
// Updates Count
"custom/updates": {
- "format": " {}",
+ "format": " {}",
"tooltip-format": "{}",
"escape": true,
"return-type": "json",
@@ -135,20 +143,6 @@
"tooltip": false
},
- // Outlook Launcher
- "custom/outlook": {
- "format": "",
- "on-click": "chromium --app=https://outlook.office.com/mail/",
- "tooltip": false
- },
-
- // Teams Launcher
- "custom/teams": {
- "format": "",
- "on-click": "chromium --app=https://teams.microsoft.com/go",
- "tooltip": false
- },
-
// Browser Launcher
"custom/browser": {
"format": "",
@@ -277,15 +271,27 @@
},
// Group Settings
- "group/settings": {
+ "group/links": {
"orientation": "horizontal",
"modules": [
- // START CHATGPT TOOGLE
"custom/chatgpt",
- // END CHATGPT TOOGLE
+ "custom/empty"
+ ]
+ },
+
+ // Group Settings
+ "group/settings": {
+ "orientation": "inherit",
+ "drawer": {
+ "transition-duration": 300,
+ "children-class": "not-memory",
+ "transition-left-to-right": false
+ },
+ "modules": [
"custom/settings",
"custom/waybarthemes",
- "custom/wallpaper"
+ "custom/wallpaper",
+ "custom/ml4w-hyprland-settings"
]
},
@@ -331,8 +337,8 @@
// Pulseaudio
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
- "format": "{icon} {volume}%",
- "format-bluetooth": "{volume}% {icon} {format_source}",
+ "format": "{icon} {volume}%",
+ "format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
diff --git a/waybar/themes/assets/hyprland-icon-20.png b/waybar/themes/assets/hyprland-icon-20.png
new file mode 100644
index 0000000..0d36ec2
Binary files /dev/null and b/waybar/themes/assets/hyprland-icon-20.png differ
diff --git a/waybar/themes/assets/hyprland-icon.png b/waybar/themes/assets/hyprland-icon.png
new file mode 100644
index 0000000..c87b767
Binary files /dev/null and b/waybar/themes/assets/hyprland-icon.png differ
diff --git a/waybar/themes/ml4w-blur-bottom/config b/waybar/themes/ml4w-blur-bottom/config
index e3afab2..00f8fd9 100644
--- a/waybar/themes/ml4w-blur-bottom/config
+++ b/waybar/themes/ml4w-blur-bottom/config
@@ -24,8 +24,9 @@
// Modules Left
"modules-left": [
"custom/appmenu",
+ "group/links",
"group/settings",
- "wlr/taskbar",
+ //"wlr/taskbar",
"group/quicklinks",
"hyprland/window",
"custom/empty"
diff --git a/waybar/themes/ml4w-blur-custom/config b/waybar/themes/ml4w-blur-custom/config
index 4ee1b28..70cdfcb 100644
--- a/waybar/themes/ml4w-blur-custom/config
+++ b/waybar/themes/ml4w-blur-custom/config
@@ -50,8 +50,8 @@
"memory",
//"group/hardware",
//"custom/cliphist",
- "idle_inhibitor",
"tray",
+ "idle_inhibitor",
"custom/exit",
//"custom/ml4w-welcome",
"clock"
diff --git a/waybar/themes/ml4w-blur-custom/modules.json b/waybar/themes/ml4w-blur-custom/modules.json
index 4258419..b9759cd 100644
--- a/waybar/themes/ml4w-blur-custom/modules.json
+++ b/waybar/themes/ml4w-blur-custom/modules.json
@@ -218,7 +218,8 @@
// System tray
"tray": {
"icon-size": 21,
- "spacing": 10
+ "spacing": 10,
+ "verse-direction": true
},
// Clock
@@ -246,7 +247,7 @@
// Memory
"memory": {
- "format": " {used:0.1f}G",
+ "format": " {used:0.1f}G",
"on-click": "alacritty -e htop"
},
@@ -304,7 +305,7 @@
// Network
"network": {
"format": "{ifname}",
- "format-wifi": " {signalStrength}%",
+ "format-wifi": "{icon} {signalStrength}%",
"format-ethernet": " {ifname}",
"format-disconnected": "Disconnected",
"tooltip-format": " {ifname} via {gwaddri}",
@@ -312,7 +313,8 @@
"tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n up: {bandwidthUpBits} down: {bandwidthDownBits}",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50,
- "on-click": "~/dotfiles/.settings/networkmanager.sh"
+ "on-click": "~/dotfiles/.settings/networkmanager.sh",
+ "format-icons": ["","","","",""]
},
// Battery
diff --git a/waybar/themes/ml4w-blur-custom/style.css b/waybar/themes/ml4w-blur-custom/style.css
index fb68626..b7c4a52 100644
--- a/waybar/themes/ml4w-blur-custom/style.css
+++ b/waybar/themes/ml4w-blur-custom/style.css
@@ -193,7 +193,7 @@ window#waybar.empty #window {
* ----------------------------------------------------- */
#idle_inhibitor {
- margin-right: 10px;
+ margin-right: 15px;
font-size: 22px;
font-weight: bold;
opacity: 0.8;
diff --git a/waybar/themes/ml4w-blur/config b/waybar/themes/ml4w-blur/config
index 5bf26eb..fc5269e 100644
--- a/waybar/themes/ml4w-blur/config
+++ b/waybar/themes/ml4w-blur/config
@@ -24,8 +24,9 @@
// Modules Left
"modules-left": [
"custom/appmenu",
+ "group/links",
"group/settings",
- "wlr/taskbar",
+ //"wlr/taskbar",
"group/quicklinks",
"hyprland/window",
"custom/empty"
diff --git a/waybar/themes/ml4w-blur/style.css b/waybar/themes/ml4w-blur/style.css
index 8fa90c8..33f4f5a 100644
--- a/waybar/themes/ml4w-blur/style.css
+++ b/waybar/themes/ml4w-blur/style.css
@@ -184,15 +184,23 @@ window#waybar.empty #window {
}
#custom-ml4w-welcome {
- margin-right: 15px;
+ margin-right: 12px;
background-image: url("../assets/ml4w-icon.png");
background-repeat: no-repeat;
background-position: center;
padding-right: 24px;
}
+#custom-ml4w-hyprland-settings {
+ margin-right: 12px;
+ background-image: url("../assets/hyprland-icon.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ padding-right: 16px;
+}
+
#custom-chatgpt {
- margin-right: 15px;
+ margin-right: 12px;
background-image: url("../assets/ai-icon-20.png");
background-repeat: no-repeat;
background-position: center;
@@ -204,8 +212,8 @@ window#waybar.empty #window {
* ----------------------------------------------------- */
#idle_inhibitor {
- margin-right: 15px;
- font-size: 22px;
+ margin-right: 17px;
+ font-size: 20px;
font-weight: bold;
opacity: 0.8;
color: @iconcolor;
@@ -229,7 +237,7 @@ window#waybar.empty #window {
color: @textcolor1;
border-radius: 15px;
padding: 0px 10px 0px 10px;
- margin: 6px 15px 6px 14px;
+ margin: 8px 14px 8px 14px;
opacity:0.8;
border:3px solid @bordercolor;
}
@@ -312,7 +320,7 @@ window#waybar.empty #window {
color: @textcolor1;
border-radius: 15px;
padding: 1px 10px 0px 10px;
- margin: 6px 15px 6px 0px;
+ margin: 8px 15px 8px 0px;
opacity:0.8;
border:3px solid @bordercolor;
}
diff --git a/waybar/themes/ml4w-bottom/config b/waybar/themes/ml4w-bottom/config
index aea3cc9..b6471b9 100644
--- a/waybar/themes/ml4w-bottom/config
+++ b/waybar/themes/ml4w-bottom/config
@@ -24,8 +24,9 @@
// Modules Left
"modules-left": [
"custom/appmenu",
+ "group/links",
"group/settings",
- "wlr/taskbar",
+ //"wlr/taskbar",
"group/quicklinks",
"hyprland/window"
],
diff --git a/waybar/themes/ml4w-minimal/config b/waybar/themes/ml4w-minimal/config
index 1691e1d..5bdde98 100644
--- a/waybar/themes/ml4w-minimal/config
+++ b/waybar/themes/ml4w-minimal/config
@@ -24,6 +24,7 @@
"modules-left": [
"custom/appmenuicon",
"hyprland/workspaces",
+ "group/links",
"group/settings",
"group/quicklinks"
],
diff --git a/waybar/themes/ml4w-minimal/style.css b/waybar/themes/ml4w-minimal/style.css
index 2c6a5f2..be802f2 100644
--- a/waybar/themes/ml4w-minimal/style.css
+++ b/waybar/themes/ml4w-minimal/style.css
@@ -142,12 +142,19 @@ window#waybar.empty #window {
}
#custom-settings {
- margin-right: 15;
+ margin-right: 15px;
+}
+#custom-browser {
+ margin-right: 16px;
+}
+
+#custom-wallpaper {
+ margin-right: 14px;
}
#custom-chatgpt {
- margin-right: 15px;
+ margin-right: 10px;
background-image: url("../assets/ai-icon-20.png");
background-repeat: no-repeat;
background-position: center;
@@ -167,6 +174,15 @@ window#waybar.empty #window {
padding-right: 24px;
}
+#custom-ml4w-hyprland-settings {
+ margin-right: 12px;
+ background-image: url("../assets/hyprland-icon-20.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ padding-right: 16px;
+}
+
+
/* -----------------------------------------------------
* Idle Inhibator
* ----------------------------------------------------- */
diff --git a/waybar/themes/ml4w/config b/waybar/themes/ml4w/config
index 4192b36..4e40db2 100644
--- a/waybar/themes/ml4w/config
+++ b/waybar/themes/ml4w/config
@@ -24,8 +24,9 @@
// Modules Left
"modules-left": [
"custom/appmenu",
+ "group/links",
"group/settings",
- "wlr/taskbar",
+ //"wlr/taskbar",
"group/quicklinks",
"hyprland/window",
"custom/empty"
diff --git a/waybar/themes/ml4w/style.css b/waybar/themes/ml4w/style.css
index 1a1c19a..035cad2 100644
--- a/waybar/themes/ml4w/style.css
+++ b/waybar/themes/ml4w/style.css
@@ -185,7 +185,7 @@ window#waybar.empty #window {
}
#custom-chatgpt {
- margin-right: 15px;
+ margin-right: 12px;
background-image: url("../assets/ai-icon.png");
background-repeat: no-repeat;
background-position: center;
@@ -193,13 +193,21 @@ window#waybar.empty #window {
}
#custom-ml4w-welcome {
- margin-right: 15px;
+ margin-right: 12px;
background-image: url("../assets/ml4w-icon.png");
background-repeat: no-repeat;
background-position: center;
padding-right: 24px;
}
+#custom-ml4w-hyprland-settings {
+ margin-right: 12px;
+ background-image: url("../assets/hyprland-icon.png");
+ background-repeat: no-repeat;
+ background-position: center;
+ padding-right: 16px;
+}
+
/* -----------------------------------------------------
* Idle Inhibator
* ----------------------------------------------------- */
diff --git a/waybar/themes/starter/config b/waybar/themes/starter/config
index b1c1062..0506cad 100644
--- a/waybar/themes/starter/config
+++ b/waybar/themes/starter/config
@@ -34,7 +34,7 @@
"custom/settings",
"custom/waybarthemes",
"custom/wallpaper",
- // "wlr/taskbar",
+ //"wlr/taskbar",
"group/quicklinks",
"hyprland/window",
"custom/starter"
diff --git a/wlogout/layout b/wlogout/layout
index 6a3a3c3..fc3c774 100644
--- a/wlogout/layout
+++ b/wlogout/layout
@@ -1,6 +1,6 @@
{
"label" : "lock",
- "action" : "sleep 1; hyprlock",
+ "action" : "$HOME/dotfiles/hypr/scripts/lock.sh",
"text" : "Lock",
"keybind" : "l"
}
@@ -18,19 +18,19 @@
}
{
"label" : "shutdown",
- "action" : "sleep 1; systemctl poweroff",
+ "action" : "$HOME/dotfiles/hypr/scripts/shutdown.sh",
"text" : "Shutdown",
"keybind" : "s"
}
{
"label" : "suspend",
- "action" : "sleep 1; systemctl suspend",
+ "action" : "$HOME/dotfiles/hypr/scripts/suspend.sh",
"text" : "Suspend",
"keybind" : "u"
}
{
"label" : "reboot",
- "action" : "sleep 1; systemctl reboot",
+ "action" : "$HOME/dotfiles/hypr/scripts/reboot.sh",
"text" : "Reboot",
"keybind" : "r"
}