Updates #2
7
.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
|
||||
|
@ -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
|
||||
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
|
@ -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/"
|
||||
|
@ -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
|
||||
|
28
.install/diagnosis.sh
Normal file
@ -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 ""
|
@ -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
|
||||
|
@ -37,5 +37,8 @@ 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
|
||||
echo ":: Symbolic links created."
|
||||
echo
|
||||
echo
|
||||
|
@ -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
|
||||
}
|
3
.install/neovim.sh
Normal file → Executable file
@ -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
|
||||
|
@ -11,7 +11,6 @@ packagesPacman=(
|
||||
"dunst"
|
||||
"starship"
|
||||
"mpv"
|
||||
"freerdp"
|
||||
"thunar"
|
||||
"mousepad"
|
||||
"noto-fonts"
|
||||
@ -26,6 +25,8 @@ packagesPacman=(
|
||||
"python-psutil"
|
||||
"python-rich"
|
||||
"python-click"
|
||||
"python-pywal"
|
||||
"python-gobject"
|
||||
"pavucontrol"
|
||||
"tumbler"
|
||||
"blueman"
|
||||
@ -46,11 +47,12 @@ packagesPacman=(
|
||||
"fuse2"
|
||||
"gtk4"
|
||||
"libadwaita"
|
||||
"python-pywal"
|
||||
"xdg-desktop-portal"
|
||||
"qalculate-gtk"
|
||||
"imagemagick"
|
||||
"guvcview"
|
||||
"jq"
|
||||
"rofi-wayland"
|
||||
);
|
||||
|
||||
packagesYay=(
|
||||
@ -58,5 +60,4 @@ packagesYay=(
|
||||
"bibata-cursor-theme"
|
||||
"trizen"
|
||||
"pacseek"
|
||||
"rofi-lbonn-wayland"
|
||||
);
|
||||
|
@ -16,4 +16,5 @@ packagesYay=(
|
||||
"wlogout"
|
||||
"nwg-look"
|
||||
"emote"
|
||||
"eww"
|
||||
);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
1
.settings/eww-monitor.sh
Executable file
@ -0,0 +1 @@
|
||||
auto
|
@ -1 +1 @@
|
||||
swww
|
||||
hyprpaper
|
@ -1 +1 @@
|
||||
2.8.4
|
||||
2.9
|
@ -1 +1 @@
|
||||
2840
|
||||
2900
|
14
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
|
||||
--------------------------------------------------------
|
||||
|
135
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
|
||||
|
||||
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v284/screenshot-284-1.png?ref_type=heads" target="_blank"><img src="screenshots/v284/screenshot-284-1.png" /></a>
|
||||
[![Screenshot](screenshots/v29/screenshot-29-2.png "Screenshot")](screenshots/v29/screenshot-29-2.png)
|
||||
|
||||
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-2.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-2.png" /></a>
|
||||
|
||||
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-3.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-3.png" /></a>
|
||||
[![Screenshot](screenshots/v29/screenshot-29-3.png "Screenshot")](screenshots/v29/screenshot-29-3.png)
|
||||
|
||||
<b><a href="https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/screenshots?ref_type=heads">You can find more screenshots here.</a></b>
|
||||
|
||||
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank">Watch on YouTube</a>
|
||||
<a href="https://youtu.be/HMxHUvN6VGo" target="_blank">Watch on YouTube</a>
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
<img src="screenshots/screenshot-sidebar.png" />
|
||||
|
||||
## 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
|
||||
```
|
||||
|
||||
<img src="screenshots/screenshot-welcome.app.png" />
|
||||
|
||||
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
|
||||
|
||||
|
BIN
apps/ML4W_Hyprland_Settings-x86_64.AppImage
Executable file
@ -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
|
BIN
apps/ml4w-dotfiles-settings.png
Normal file
After Width: | Height: | Size: 21 KiB |
7
apps/ml4w-hyprland-settings.desktop
Executable file
@ -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
|
BIN
apps/ml4w-hyprland-settings.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
apps/ml4w-welcome.png
Normal file
After Width: | Height: | Size: 23 KiB |
7
eww/assets/application-exit-symbolic-rtl.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path style="fill:#dfdfdf" d="m 3 5 v 0.003906 c -0.265625 0 -0.519531 0.105469 -0.707031 0.289063 l -2 2 c -0.3906252 0.390625 -0.3906252 1.023437 0 1.414062 l 2 2 c 0.1875 0.183594 0.441406 0.289063 0.707031 0.285157 v 0.007812 h 1 v -2 h 5 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 h -5 v -2 z m 0 0"/>
|
||||
<path style="fill:#dfdfdf" d="m 12 1 c 1.644531 0 3 1.355469 3 3 v 8 c 0 1.644531 -1.355469 3 -3 3 h -4 c -1.644531 0 -3 -1.355469 -3 -3 v -1 c 0 -0.550781 0.449219 -1 1 -1 s 1 0.449219 1 1 v 1 c 0 0.570312 0.429688 1 1 1 h 4 c 0.570312 0 1 -0.429688 1 -1 v -8 c 0 -0.570312 -0.429688 -1 -1 -1 h -4 c -0.570312 0 -1 0.429688 -1 1 v 1 c 0 0.550781 -0.449219 1 -1 1 s -1 -0.449219 -1 -1 v -1 c 0 -1.644531 1.355469 -3 3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 929 B |
7
eww/assets/media-playback-pause-symbolic.svg
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="#2e3436">
|
||||
<path style="fill:#dfdfdf" d="m 3 1 h 3 c 0.550781 0 1 0.449219 1 1 v 12 c 0 0.550781 -0.449219 1 -1 1 h -3 c -0.550781 0 -1 -0.449219 -1 -1 v -12 c 0 -0.550781 0.449219 -1 1 -1 z m 0 0"/>
|
||||
<path style="fill:#dfdfdf" d="m 10 1 h 3 c 0.550781 0 1 0.449219 1 1 v 12 c 0 0.550781 -0.449219 1 -1 1 h -3 c -0.550781 0 -1 -0.449219 -1 -1 v -12 c 0 -0.550781 0.449219 -1 1 -1 z m 0 0"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 561 B |
4
eww/assets/system-lock-screen-symbolic.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 8 1 c -2.199219 0 -4 1.800781 -4 4 v 2 c -1.109375 0 -2 0.890625 -2 2 v 5 c 0 0.554688 0.445312 1 1 1 h 10 c 0.554688 0 1 -0.445312 1 -1 v -5 c 0 -1.109375 -0.890625 -2 -2 -2 v -2 c 0 -2.199219 -1.800781 -4 -4 -4 z m 0 2 c 1.125 0 2 0.875 2 2 v 2 h -4 v -2 c 0 -1.125 0.875 -2 2 -2 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
After Width: | Height: | Size: 478 B |
4
eww/assets/system-reboot-symbolic.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 8 0 c -0.550781 0 -1 0.449219 -1 1 v 5 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -5 c 0 -0.550781 -0.449219 -1 -1 -1 z m -7 1 l 2.050781 2.050781 c -2.117187 2.117188 -2.652343 5.355469 -1.332031 8.039063 c 1.324219 2.683594 4.214844 4.238281 7.179688 3.851562 c 2.96875 -0.386718 5.367187 -2.625 5.960937 -5.554687 c 0.59375 -2.933594 -0.75 -5.929688 -3.335937 -7.433594 c -0.476563 -0.28125 -1.089844 -0.117187 -1.367188 0.359375 s -0.117188 1.089844 0.359375 1.367188 c 1.851563 1.078124 2.808594 3.207031 2.382813 5.3125 c -0.421876 2.101562 -2.128907 3.691406 -4.253907 3.96875 c -2.128906 0.273437 -4.183593 -0.828126 -5.128906 -2.753907 s -0.566406 -4.226562 0.949219 -5.742187 l 1.535156 1.535156 v -4.003906 c 0 -0.519532 -0.449219 -0.996094 -1 -0.996094 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
After Width: | Height: | Size: 967 B |
4
eww/assets/system-shutdown-symbolic.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="64px" viewBox="0 0 16 16" width="64px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 8 0 c -0.550781 0 -1 0.449219 -1 1 v 5 c 0 0.550781 0.449219 1 1 1 s 1 -0.449219 1 -1 v -5 c 0 -0.550781 -0.449219 -1 -1 -1 z m -3.136719 1.816406 c -0.128906 0.015625 -0.253906 0.058594 -0.367187 0.125 c -2.734375 1.582032 -4.074219 4.816406 -3.257813 7.871094 c 0.820313 3.050781 3.59375 5.183594 6.75 5.1875 c 3.160157 0.003906 5.941407 -2.121094 6.765625 -5.167969 c 0.828125 -3.050781 -0.5 -6.289062 -3.230468 -7.878906 c -0.476563 -0.28125 -1.089844 -0.121094 -1.367188 0.359375 c -0.132812 0.226562 -0.171875 0.5 -0.105469 0.757812 c 0.070313 0.257813 0.234375 0.476563 0.464844 0.609376 c 1.957031 1.140624 2.902344 3.441406 2.3125 5.628906 c -0.59375 2.183594 -2.570313 3.695312 -4.832031 3.691406 c -2.265625 -0.003906 -4.238282 -1.519531 -4.824219 -3.707031 s 0.363281 -4.488281 2.324219 -5.621094 c 0.476562 -0.277344 0.640625 -0.886719 0.363281 -1.363281 c -0.132813 -0.230469 -0.347656 -0.398438 -0.605469 -0.464844 c -0.125 -0.035156 -0.257812 -0.042969 -0.390625 -0.027344 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
4
eww/assets/window-close-symbolic.svg
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
|
||||
<path style="fill:#dfdfdf" d="m 4 4 h 1 h 0.03125 c 0.253906 0.011719 0.511719 0.128906 0.6875 0.3125 l 2.28125 2.28125 l 2.3125 -2.28125 c 0.265625 -0.230469 0.445312 -0.304688 0.6875 -0.3125 h 1 v 1 c 0 0.285156 -0.035156 0.550781 -0.25 0.75 l -2.28125 2.28125 l 2.25 2.25 c 0.1875 0.1875 0.28125 0.453125 0.28125 0.71875 v 1 h -1 c -0.265625 0 -0.53125 -0.09375 -0.71875 -0.28125 l -2.28125 -2.28125 l -2.28125 2.28125 c -0.1875 0.1875 -0.453125 0.28125 -0.71875 0.28125 h -1 v -1 c 0 -0.265625 0.09375 -0.53125 0.28125 -0.71875 l 2.28125 -2.25 l -2.28125 -2.28125 c -0.210938 -0.195312 -0.304688 -0.46875 -0.28125 -0.75 z m 0 0" fill="#2e3436"/>
|
||||
</svg>
|
After Width: | Height: | Size: 788 B |
0
eww/eww.yuck
Normal file
78
eww/ml4w-sidebar/eww.scss
Normal file
@ -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;
|
||||
}
|
184
eww/ml4w-sidebar/eww.yuck
Normal file
@ -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))
|
||||
|
33
eww/ml4w-sidebar/launch.sh
Executable file
@ -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
|
3
eww/scripts/eww.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 0.3
|
||||
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
|
11
eww/scripts/launch_app.sh
Executable file
@ -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
|
||||
|
85
eww/scripts/sys_info.sh
Executable file
@ -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
|
16
eww/scripts/system.sh
Executable file
@ -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
|
7
hypr/conf/animations/disabled.conf
Normal file
@ -0,0 +1,7 @@
|
||||
# -----------------------------------------------------
|
||||
# Animations
|
||||
# name "Default"
|
||||
# -----------------------------------------------------
|
||||
animations {
|
||||
enabled = false
|
||||
}
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
env = APPIMAGELAUNCHER_DISABLE,1
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
}
|
18
hypr/scripts/active-monitor.py
Normal file
@ -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"])
|
6
hypr/scripts/eww.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
EWW=`which eww`
|
||||
if [[ ! `pidof eww` ]]; then
|
||||
${EWW} daemon
|
||||
sleep 0.5
|
||||
fi
|
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 1
|
||||
sleep 0.5
|
||||
killall -9 Hyprland sleep 2
|
3
hypr/scripts/lock.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 0.5
|
||||
hyprlock
|
33
hypr/scripts/ml4w-launcher.sh
Executable file
@ -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
|
2
hypr/scripts/monitors.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/bash
|
||||
hyprctl -j monitors
|
3
hypr/scripts/reboot.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 0.5
|
||||
systemctl reboot
|
3
hypr/scripts/shutdown.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 0.5
|
||||
systemctl poweroff
|
3
hypr/scripts/suspend.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
sleep 0.5
|
||||
systemctl suspend
|
13
hypr/scripts/toggle-animations.sh
Executable file
@ -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
|
@ -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
|
||||
# -----------------------------------------------------
|
||||
|
@ -64,10 +64,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 +81,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
|
||||
|
261
rofi/config-ml4w-launcher.rasi
Normal file
@ -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;
|
||||
}
|
BIN
screenshots/screenshot-hyprland-settings.png
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
screenshots/screenshot-sidebar.png
Normal file
After Width: | Height: | Size: 192 KiB |
Before Width: | Height: | Size: 3.3 MiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 3.2 MiB |
Before Width: | Height: | Size: 1.7 MiB |
Before Width: | Height: | Size: 2.9 MiB |
Before Width: | Height: | Size: 3.2 MiB |
Before Width: | Height: | Size: 2.4 MiB |
Before Width: | Height: | Size: 2.4 MiB |
BIN
screenshots/v29/screenshot-29-1.png
Normal file
After Width: | Height: | Size: 3.4 MiB |
BIN
screenshots/v29/screenshot-29-2.png
Normal file
After Width: | Height: | Size: 2.3 MiB |
BIN
screenshots/v29/screenshot-29-3.png
Normal file
After Width: | Height: | Size: 2.4 MiB |
@ -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
|
6
scripts/nm-applet.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
if [[ "$1" == "stop" ]]; then
|
||||
killall nm-applet
|
||||
else
|
||||
nm-applet --indicator &
|
||||
fi
|
@ -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}% ",
|
||||
|
BIN
waybar/themes/assets/hyprland-icon-20.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
waybar/themes/assets/hyprland-icon.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
@ -24,8 +24,9 @@
|
||||
// Modules Left
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/links",
|
||||
"group/settings",
|
||||
"wlr/taskbar",
|
||||
//"wlr/taskbar",
|
||||
"group/quicklinks",
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
|
@ -24,8 +24,9 @@
|
||||
// Modules Left
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/links",
|
||||
"group/settings",
|
||||
"wlr/taskbar",
|
||||
//"wlr/taskbar",
|
||||
"group/quicklinks",
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -24,8 +24,9 @@
|
||||
// Modules Left
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/links",
|
||||
"group/settings",
|
||||
"wlr/taskbar",
|
||||
//"wlr/taskbar",
|
||||
"group/quicklinks",
|
||||
"hyprland/window"
|
||||
],
|
||||
|
@ -24,6 +24,7 @@
|
||||
"modules-left": [
|
||||
"custom/appmenuicon",
|
||||
"hyprland/workspaces",
|
||||
"group/links",
|
||||
"group/settings",
|
||||
"group/quicklinks"
|
||||
],
|
||||
|
@ -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
|
||||
* ----------------------------------------------------- */
|
||||
|
@ -24,8 +24,9 @@
|
||||
// Modules Left
|
||||
"modules-left": [
|
||||
"custom/appmenu",
|
||||
"group/links",
|
||||
"group/settings",
|
||||
"wlr/taskbar",
|
||||
//"wlr/taskbar",
|
||||
"group/quicklinks",
|
||||
"hyprland/window",
|
||||
"custom/empty"
|
||||
|
@ -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
|
||||
* ----------------------------------------------------- */
|
||||
|
@ -34,7 +34,7 @@
|
||||
"custom/settings",
|
||||
"custom/waybarthemes",
|
||||
"custom/wallpaper",
|
||||
// "wlr/taskbar",
|
||||
//"wlr/taskbar",
|
||||
"group/quicklinks",
|
||||
"hyprland/window",
|
||||
"custom/starter"
|
||||
|
@ -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"
|
||||
}
|
||||
|