This commit is contained in:
Stephan Raabe 2024-04-20 17:57:31 +02:00
parent be8b15c1a0
commit 1ee73645e1
72 changed files with 347 additions and 772 deletions

View File

@ -16,4 +16,5 @@ packagesYay=(
"wlogout" "wlogout"
"nwg-look" "nwg-look"
"emote" "emote"
"eww"
); );

View File

@ -1 +1 @@
2.9BETA2 2.9BETA3

View File

@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Name=ML4W Hyprland Settings App Name=ML4W Dotfiles Settings App
Exec=HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage 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 Terminal=false
Categories=Utility Categories=Utility

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Type=Application Type=Application
Name=ML4W Dotfiles Settings App Name=ML4W Hyprland Settings App
Exec=HOME/dotfiles/apps/ML4W_Dotfiles_Settings-x86_64.AppImage Exec=HOME/dotfiles/apps/ML4W_Hyprland_Settings-x86_64.AppImage
Icon=HOME/dotfiles/apps/ml4w-icon.png Icon=HOME/dotfiles/apps/ml4w-hyprland-settings.png
Terminal=false Terminal=false
Categories=Utility Categories=Utility

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
apps/ml4w-welcome.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" id="Outline" viewBox="0 0 24 24" fill="#161616" width="512" height="512"><path d="M7,0H4A4,4,0,0,0,0,4V7a4,4,0,0,0,4,4H7a4,4,0,0,0,4-4V4A4,4,0,0,0,7,0ZM9,7A2,2,0,0,1,7,9H4A2,2,0,0,1,2,7V4A2,2,0,0,1,4,2H7A2,2,0,0,1,9,4Z"/><path d="M20,0H17a4,4,0,0,0-4,4V7a4,4,0,0,0,4,4h3a4,4,0,0,0,4-4V4A4,4,0,0,0,20,0Zm2,7a2,2,0,0,1-2,2H17a2,2,0,0,1-2-2V4a2,2,0,0,1,2-2h3a2,2,0,0,1,2,2Z"/><path d="M7,13H4a4,4,0,0,0-4,4v3a4,4,0,0,0,4,4H7a4,4,0,0,0,4-4V17A4,4,0,0,0,7,13Zm2,7a2,2,0,0,1-2,2H4a2,2,0,0,1-2-2V17a2,2,0,0,1,2-2H7a2,2,0,0,1,2,2Z"/><path d="M20,13H17a4,4,0,0,0-4,4v3a4,4,0,0,0,4,4h3a4,4,0,0,0,4-4V17A4,4,0,0,0,20,13Zm2,7a2,2,0,0,1-2,2H17a2,2,0,0,1-2-2V17a2,2,0,0,1,2-2h3a2,2,0,0,1,2,2Z"/></svg>

Before

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 25.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 513.749 513.749" style="enable-background:new 0 0 513.749 513.749;" xml:space="preserve" fill="#161616" width="512" height="512">
<g>
<path d="M504.352,459.061l-99.435-99.477c74.402-99.427,54.115-240.344-45.312-314.746S119.261-9.277,44.859,90.15 S-9.256,330.494,90.171,404.896c79.868,59.766,189.565,59.766,269.434,0l99.477,99.477c12.501,12.501,32.769,12.501,45.269,0 c12.501-12.501,12.501-32.769,0-45.269L504.352,459.061z M225.717,385.696c-88.366,0-160-71.634-160-160s71.634-160,160-160 s160,71.634,160,160C385.623,314.022,314.044,385.602,225.717,385.696z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

View File

@ -1,79 +0,0 @@
/** Global *******************************************/
*{
all: unset;
font-family: "Fira Sans";
color: #151515;
}
/** Boxes ***********************************/
.winbox {
background-color: #F5EEE6;
border: 1px solid #161616;
border-radius: 12px;
}
/** Resources ***********************************/
.res_box {
background-color: #F0E9E1;
border: 1px solid #E6DFD7;
border-radius: 12px;
padding: 14px 18px 14px 18px;
}
.res_circle {
background-color: #E1DCD2;
border: 0px solid #161616;
border-radius: 100%;
padding: 0px;
}
.res_circle_small {
background-color: #F5EEE6;
border: 0px solid #161616;
border-radius: 100%;
padding: 40px;
}
.res_text {
background-color: #E6E1D7;
border: 2px solid #161616;
border-radius: 16px;
font-size : 18px;
padding: 0px 8px 0px 8px;
margin: 0px 0px 0px 0px;
font-weight : bold;
}
.res_cpu {
color: #FD6B85;
}
.res_mem {
color: #B1A6EE;
}
.res_disk {
color: #67D4F1;
}
/** Power Buttons ***********************************/
.powericons {
background-repeat: no-repeat;
background-size: 48px;
min-height: 48px;
min-width: 48px;
}
/** Quotes ***********************************/
.quote_box {
margin: 20px;
}
.quote_text {
font-size : 14px;
font-style: italic;
font-weight : bold;
}
/** EOF *************************************************/

View File

@ -1,140 +0,0 @@
;; Variables
;; System vars
(defpoll HOST :interval "5s" `hostname`)
(defpoll CPU_USAGE :interval "1s" `../scripts/sys_info --cpu`)
(defpoll MEM_USAGE :interval "1s" `../scripts/sys_info --mem`)
(defpoll DISK_USAGE :interval "1s" `../scripts/sys_info --disk`)
(defpoll BLIGHT :interval "1s" `../scripts/sys_info --blight`)
(defpoll BATTERY :interval "5s" `../scripts/sys_info --bat`)
(defpoll QUOTE :interval "5m" `../scripts/quotes`)
;; Widgets
;; resources
(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}%")))))
;; powermenus
(defwidget logout []
(box :class "winbox"
(button :style "background-image: url('../images/icons/system/sys-exit.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --logout")))
(defwidget suspend []
(box :class "winbox"
(button :style "background-image: url('../images/icons/system/sys-sleep.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --suspend")))
(defwidget lock []
(box :class "winbox"
(button :style "background-image: url('../images/icons/system/sys-lock.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --suspend")))
(defwidget reboot []
(box :class "winbox"
(button :style "background-image: url('../images/icons/system/sys-reboot.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --reboot")))
(defwidget shutdown []
(box :class "winbox"
(button :style "background-image: url('../images/icons/system/poweroff.png');" :class "powericons" :valign "center" :halign "center" :onclick "../scripts/system --shutdown")))
;; quotes
(defwidget quotes []
(box :class "winbox"
(box :class "quote_box" :orientation "h" :valign "center" :halign "center" :spacing 10 :space-evenly "false"
(box :class "powericons" :style "background-image: url('../images/icons/quotes.png');")
(box :class "powericons" :style "background-image: url('../images/icons/quotes.png');")
(box :class "powericons" :style "background-image: url('../images/icons/quotes.png');")
(label :class "quote_text" :valign "center" :halign "center" :text QUOTE :wrap true :limit-width 90 ))))
;; ** Windows *************************************************************************
;; resources
(defwindow resources
:monitor 0
:geometry (geometry :x "15px"
:y "15px"
:width "480px"
:height "200px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(resources))
;; powermenu
(defwindow logout
:monitor 0
:geometry (geometry :x "1420px"
:y "320px"
:width "80px"
:height "80px"
:anchor "top left")
:stacking "fg"
:wm-ignore false
(logout))
(defwindow suspend
:monitor 0
:geometry (geometry :x "1520px"
:y "320px"
:width "80px"
:height "80px"
:anchor "top left")
:stacking "fg"
:wm-ignore false
(suspend))
(defwindow lock
:monitor 0
:geometry (geometry :x "1620px"
:y "320px"
:width "80px"
:height "80px"
:anchor "top left")
:stacking "fg"
:wm-ignore false
(lock))
(defwindow reboot
:monitor 0
:geometry (geometry :x "1720px"
:y "320px"
:width "80px"
:height "80px"
:anchor "top left")
:stacking "fg"
:wm-ignore false
(reboot))
(defwindow shutdown
:monitor 0
:geometry (geometry :x "1820px"
:y "320px"
:width "80px"
:height "80px"
:anchor "top left")
:stacking "fg"
:wm-ignore false
(shutdown))
;; quotes
(defwindow quotes
:monitor 0
:geometry (geometry :x "1420px"
:y "420px"
:width "480px"
:height "100px"
:anchor "top left")
:stacking "fg"
:wm-ignore false
(quotes))

View File

@ -1,33 +0,0 @@
#!/bin/bash
## Files and CMD
FILE="$HOME/.cache/eww_launch.sidebar"
CFG="$HOME/dotfiles/eww/ml4w-dashboard"
EWW=`which eww`
## Run eww daemon if not running already
if [[ ! `pidof eww` ]]; then
${EWW} daemon
sleep 1
fi
## Open widgets
run_eww() {
${EWW} --config "$CFG" open-many \
resources \
logout \
suspend \
lock \
reboot \
shutdown \
quotes
}
## Launch or close widgets accordingly
if [[ ! -f "$FILE" ]]; then
touch "$FILE"
run_eww
else
${EWW} --config "$CFG" close resources logout suspend lock reboot shutdown quotes
rm "$FILE"
fi

87
eww/ml4w-sidebar/eww.scss Normal file
View File

@ -0,0 +1,87 @@
*{
all: unset;
font-family: "Fira Sans";
color: #FFFFFF;
}
.winbox {
background-color: #242424;
opacity: 0.85;
border: 1px solid #FFFFFF;
border-radius: 12px;
}
.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_logout {
font-size: 32px;
padding-left: 4px;
}
.powericons_shutdown {
font-size: 32px;
padding-right: 9px;
}
.powericons_reboot {
font-size: 32px;
padding-right: 7px;
}
.powericons_lock {
font-size: 32px;
padding-right: 5px;
}
.powericons_suspend {
font-size: 32px;
padding-left: 2px;
}

168
eww/ml4w-sidebar/eww.yuck Normal file
View File

@ -0,0 +1,168 @@
;; 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}%")
)
)
)
)
;; powermenus
(defwidget logout []
(box :class "winbox"
(button :class "powericons_logout" :valign "center" :halign "center" :onclick "../scripts/system.sh logout &" "")
)
)
(defwidget suspend []
(box :class "winbox"
(button :class "powericons_suspend" :valign "center" :halign "center" :onclick "../scripts/system.sh suspend &" "")
)
)
(defwidget lock []
(box :class "winbox"
(button :class "powericons_lock" :valign "center" :halign "center" :onclick "../scripts/system.sh lock &" "")
)
)
(defwidget reboot []
(box :class "winbox"
(button :class "powericons_reboot" :valign "center" :halign "center" :onclick "../scripts/system.sh reboot &" "")
)
)
(defwidget shutdown []
(box :class "winbox"
(button :class "powericons_shutdown" :valign "center" :halign "center" :onclick "../scripts/system.sh shutdown &" "")
)
)
;; ** Windows *************************************************************************
(defwindow ml4wlauncher
:monitor 0
:geometry (geometry :x "15px"
:y "15px"
:width "480px"
:height "140px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(ml4wlauncher))
;; resources
(defwindow resources
:monitor 0
:geometry (geometry :x "15px"
:y "170px"
:width "480px"
:height "180px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(resources))
;; powermenu
(defwindow logout
:monitor 0
:geometry (geometry :x "15px"
:y "365px"
:width "80px"
:height "80px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(logout))
(defwindow suspend
:monitor 0
:geometry (geometry :x "114px"
:y "365px"
:width "80px"
:height "80px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(suspend))
(defwindow lock
:monitor 0
:geometry (geometry :x "214px"
:y "365px"
:width "80px"
:height "80px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(lock))
(defwindow reboot
:monitor 0
:geometry (geometry :x "315px"
:y "365px"
:width "80px"
:height "80px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(reboot))
(defwindow shutdown
:monitor 0
:geometry (geometry :x "415px"
:y "365px"
:width "80px"
:height "80px"
:anchor "top right")
:stacking "fg"
:wm-ignore false
(shutdown))

17
eww/ml4w-sidebar/launch.sh Executable file
View File

@ -0,0 +1,17 @@
#!/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 "$FILE" ]]; then
touch "$FILE"
${EWW} --config "$CFG" open-many ml4wlauncher resources logout suspend lock reboot shutdown
else
${EWW} --config "$CFG" close resources ml4wlauncher logout suspend lock reboot shutdown
rm "$FILE"
fi

View File

@ -1,29 +0,0 @@
#!/bin/bash
## Get battery info
BATTERY="$(acpi | awk -F ' ' 'END {print $4}' | tr -d \%,)"
CHARGE="$(acpi | awk -F ' ' 'END {print $3}' | tr -d \,)"
main() {
if [[ ($CHARGE = *"Charging"*) && ($BATTERY -lt "100") ]]; then
echo "images/icons/battery/charge.png"
elif [[ $CHARGE = *"Full"* ]]; then
echo "images/icons/battery/full.png"
else
if [[ ($BATTERY -lt 100) && (($BATTERY -gt 65) || ($BATTERY -eq 65)) ]]; then
echo "images/icons/battery/battery-3.png"
elif [[ ($BATTERY -lt 65) && (($BATTERY -gt 35) || ($BATTERY -eq 35)) ]]; then
echo "images/icons/battery/battery-2.png"
elif [[ ($BATTERY -lt 35) && (($BATTERY -gt 10) || ($BATTERY -eq 10)) ]]; then
echo "images/icons/battery/battery-1.png"
elif [[ ($BATTERY -lt 10) && (($BATTERY -gt 0) || ($BATTERY -eq 0)) ]]; then
echo "images/icons/battery/low.png"
fi
fi
}
if [[ $1 == '--icon' ]]; then
main
elif [[ $1 == '--perc' ]]; then
echo "${BATTERY}%"
fi

View File

@ -1,27 +0,0 @@
#!/bin/bash
count=0
ID="$(ip link | awk '/state UP/ {print $2}')"
SSID="$(iwgetid -r)"
net_stat () {
if (ping -c 1 archlinux.org || ping -c 1 google.com || ping -c 1 bitbucket.org || ping -c 1 github.com || ping -c 1 sourceforge.net) &>/dev/null; then
if [[ $ID == e* ]]; then
echo "Online"
echo "images/icons/system/wifi.png"
else
echo "$SSID"
echo "images/icons/system/wifi.png"
fi
else
echo "Offline"
echo "images/icons/system/no-wifi.png"
fi
}
if [[ $1 == '--stat' ]]; then
net_stat | head -n1
elif [[ $1 == '--icon' ]]; then
net_stat | tail -n1
fi

13
eww/scripts/launch_app.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
$HOME/dotfiles/eww/ml4w-sidebar/launch.sh
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

View File

@ -1,7 +0,0 @@
#!/bin/python
import imaplib
obj = imaplib.IMAP4_SSL('imap.gmail.com',993)
obj.login('username@gmail.com','PASSWORD') # write your email and password
obj.select()
print(len(obj.search(None, 'UnSeen')[1][0].split()))

View File

@ -1,97 +0,0 @@
#!/bin/bash
## Get data
STATUS="$(mpc status)"
COVER="/tmp/.music_cover.jpg"
MUSIC_DIR="$HOME/Music"
## Get status
get_status() {
if [[ $STATUS == *"[playing]"* ]]; then
echo "images/icons/music/pause-button.png"
else
echo "images/icons/music/play-button.png"
fi
}
## Get song
get_song() {
song=`mpc -f %title% current`
if [[ -z "$song" ]]; then
echo "Offline"
else
echo "$song"
fi
}
## Get artist
get_artist() {
artist=`mpc -f %artist% current`
if [[ -z "$artist" ]]; then
echo "Offline"
else
echo "$artist"
fi
}
## Get time
get_time() {
time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
if [[ -z "$time" ]]; then
echo "0"
else
echo "$time"
fi
}
get_ctime() {
ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
if [[ -z "$ctime" ]]; then
echo "0:00"
else
echo "$ctime"
fi
}
get_ttime() {
ttime=`mpc -f %time% current`
if [[ -z "$ttime" ]]; then
echo "0:00"
else
echo "$ttime"
fi
}
## Get cover
get_cover() {
ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
STATUS=$?
# Check if the file has a embbeded album art
if [ "$STATUS" -eq 0 ];then
echo "$COVER"
else
echo "images/music.png"
fi
}
## Execute accordingly
if [[ "$1" == "--song" ]]; then
get_song
elif [[ "$1" == "--artist" ]]; then
get_artist
elif [[ "$1" == "--status" ]]; then
get_status
elif [[ "$1" == "--time" ]]; then
get_time
elif [[ "$1" == "--ctime" ]]; then
get_ctime
elif [[ "$1" == "--ttime" ]]; then
get_ttime
elif [[ "$1" == "--cover" ]]; then
get_cover
elif [[ "$1" == "--toggle" ]]; then
mpc -q toggle
elif [[ "$1" == "--next" ]]; then
{ mpc -q next; get_cover; }
elif [[ "$1" == "--prev" ]]; then
{ mpc -q prev; get_cover; }
fi

View File

@ -1,4 +0,0 @@
#!/bin/bash
quote="`fortune -n 90 -s | head -n 1`"
echo "$quote"

View File

@ -1,39 +0,0 @@
#!/usr/bin/env bash
CFG="$HOME/.config/eww/arin/sidedar"
EWW=`which eww`
close_eww() {
${EWW} --config "$CFG" close resources logout suspend lock reboot shutdown quotes
}
## Options #############################################
if [[ $1 = "--lock" ]]; then
close_eww
betterlockscreen --lock
elif [[ $1 = "--logout" ]]; then
close_eww
#openbox --exit
berryc quit
elif [[ $1 = "--suspend" ]]; then
close_eww
amixer set Master mute
systemctl suspend
elif [[ $1 = "--reboot" ]]; then
close_eww
systemctl reboot
elif [[ $1 = "--shutdown" ]]; then
close_eww
systemctl poweroff
## Help Menu #############################################
else
echo "
Available options:
--lock --logout --suspend --reboot --shutdown
"
fi

16
eww/scripts/system.sh Executable file
View 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

View File

@ -1,70 +0,0 @@
#!/bin/bash
# Get Volume
get_volume() {
status=`amixer get Master | tail -n1 | grep -wo 'on'`
if [[ "$status" == "on" ]]; then
volume=`amixer get Master | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]'`
echo "$volume"
else
echo "Mute"
fi
}
# Get icons
get_icon() {
vol="$(get_volume)"
current="${vol%%%}"
status=`amixer get Master | tail -n1 | grep -wo 'on'`
if [[ "$status" == "on" ]]; then
if [[ "$current" -eq "0" ]]; then
echo "images/icons/volume/mute.png"
elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
echo "images/icons/volume/volume.png"
elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
echo "images/icons/volume/volume.png"
elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
echo "images/icons/volume/volume.png"
fi
else
echo "images/icons/volume/mute.png"
fi
}
# Increase Volume
inc_volume() {
amixer -Mq set Master,0 5%+ unmute
}
# Decrease Volume
dec_volume() {
amixer -Mq set Master,0 5%- unmute
}
# Toggle Mute
toggle_mute() {
status=`amixer get Master | tail -n1 | grep -wo 'on'`
if [[ "$status" == "on" ]]; then
amixer set Master toggle
else
amixer set Master toggle
fi
}
# Execute accordingly
if [[ "$1" == "--get" ]]; then
get_volume
elif [[ "$1" == "--icon" ]]; then
get_icon
elif [[ "$1" == "--inc" ]]; then
inc_volume
elif [[ "$1" == "--dec" ]]; then
dec_volume
elif [[ "$1" == "--toggle" ]]; then
toggle_mute
else
get_volume
fi

View File

@ -1,147 +0,0 @@
#!/bin/bash
## Collect data
cache_dir="$HOME/.cache/eww/weather"
cache_weather_stat=${cache_dir}/weather-stat
cache_weather_degree=${cache_dir}/weather-degree
cache_weather_quote=${cache_dir}/weather-quote
cache_weather_hex=${cache_dir}/weather-hex
cache_weather_icon=${cache_dir}/weather-icon
## Weather data
KEY="YOUR_KEY"
ID="CITY_ID"
UNIT="metric" # Available options : 'metric' or 'imperial'
## Make cache dir
if [[ ! -d "$cache_dir" ]]; then
mkdir -p ${cache_dir}
fi
## Get data
get_weather_data() {
weather=`curl -sf "http://api.openweathermap.org/data/2.5/weather?APPID="$KEY"&id="$ID"&units="$UNIT""`
echo ${weather}
if [ ! -z "$weather" ]; then
weather_temp=`echo "$weather" | jq ".main.temp" | cut -d "." -f 1`
weather_icon_code=`echo "$weather" | jq -r ".weather[].icon" | head -1`
weather_description=`echo "$weather" | jq -r ".weather[].description" | head -1 | sed -e "s/\b\(.\)/\u\1/g"`
#Big long if statement of doom
if [ "$weather_icon_code" == "50d" ]; then
weather_icon=" "
weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..."
weather_hex="#84afdb"
elif [ "$weather_icon_code" == "50n" ]; then
weather_icon=" "
weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..."
weather_hex="#84afdb"
elif [ "$weather_icon_code" == "01d" ]; then
weather_icon=" "
weather_quote="It's a sunny day, gonna be fun! \nDon't go wandering all by yourself though..."
weather_hex="#ffd86b"
elif [ "$weather_icon_code" == "01n" ]; then
weather_icon=" "
weather_quote="It's a clear night \nYou might want to take a evening stroll to relax..."
weather_hex="#fcdcf6"
elif [ "$weather_icon_code" == "02d" ]; then
weather_icon=" "
weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
weather_hex="#adadff"
elif [ "$weather_icon_code" == "02n" ]; then
weather_icon=" "
weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
weather_hex="#adadff"
elif [ "$weather_icon_code" == "03d" ]; then
weather_icon=" "
weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
weather_hex="#adadff"
elif [ "$weather_icon_code" == "03n" ]; then
weather_icon=" "
weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
weather_hex="#adadff"
elif [ "$weather_icon_code" == "04d" ]; then
weather_icon=" "
weather_quote="It's cloudy, sort of gloomy \nYou'd better get a book to read..."
weather_hex="#adadff"
elif [ "$weather_icon_code" == "04n" ]; then
weather_icon=" "
weather_quote="It's a cloudy night \nHow about some hot chocolate and a warm bed?"
weather_hex="#adadff"
elif [ "$weather_icon_code" == "09d" ]; then
weather_icon=" "
weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..."
weather_hex="#6b95ff"
elif [ "$weather_icon_code" == "09n" ]; then
weather_icon=" "
weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..."
weather_hex="#6b95ff"
elif [ "$weather_icon_code" == "10d" ]; then
weather_icon=" "
weather_quote="It's rainy, it's a great day! \nGet some ramen and watch as the rain falls..."
weather_hex="#6b95ff"
elif [ "$weather_icon_code" == "10n" ]; then
weather_icon=" "
weather_quote=" It's gonna rain tonight it seems \nMake sure your clothes aren't still outside..."
weather_hex="#6b95ff"
elif [ "$weather_icon_code" == "11d" ]; then
weather_icon=""
weather_quote="There's storm for forecast today \nMake sure you don't get blown away..."
weather_hex="#ffeb57"
elif [ "$weather_icon_code" == "11n" ]; then
weather_icon=""
weather_quote="There's gonna be storms tonight \nMake sure you're warm in bed and the windows are shut..."
weather_hex="#ffeb57"
elif [ "$weather_icon_code" == "13d" ]; then
weather_icon=" "
weather_quote="It's gonna snow today \nYou'd better wear thick clothes and make a snowman as well!"
weather_hex="#e3e6fc"
elif [ "$weather_icon_code" == "13n" ]; then
weather_icon=" "
weather_quote="It's gonna snow tonight \nMake sure you get up early tomorrow to see the sights..."
weather_hex="#e3e6fc"
elif [ "$weather_icon_code" == "40d" ]; then
weather_icon=" "
weather_quote="Forecast says it's misty \nMake sure you don't get lost on your way..."
weather_hex="#84afdb"
elif [ "$weather_icon_code" == "40n" ]; then
weather_icon=" "
weather_quote="Forecast says it's a misty night \nDon't go anywhere tonight or you might get lost..."
weather_hex="#84afdb"
else
weather_icon=" "
weather_quote="Sort of odd, I don't know what to forecast \nMake sure you have a good time!"
weather_hex="#adadff"
fi
echo "$weather_icon" > ${cache_weather_icon}
echo "$weather_description" > ${cache_weather_stat}
echo "$weather_temp""°C" > ${cache_weather_degree}
echo -e "$weather_quote" > ${cache_weather_quote}
echo "$weather_hex" > ${cache_weather_hex}
else
echo "Weather Unavailable" > ${cache_weather_stat}
echo " " > ${cache_weather_icon}
echo -e "Ah well, no weather huh? \nEven if there's no weather, it's gonna be a great day!" > ${cache_weather_quote}
echo "-" > ${cache_weather_degree}
echo "#adadff" > ${tcache_weather_hex}
fi
}
## Execute
if [[ "$1" == "--getdata" ]]; then
get_weather_data
elif [[ "$1" == "--icon" ]]; then
cat ${cache_weather_icon}
elif [[ "$1" == "--temp" ]]; then
cat ${cache_weather_degree}
elif [[ "$1" == "--hex" ]]; then
cat ${cache_weather_hex}
elif [[ "$1" == "--stat" ]]; then
cat ${cache_weather_stat}
elif [[ "$1" == "--quote" ]]; then
cat ${cache_weather_quote} | head -n1
elif [[ "$1" == "--quote2" ]]; then
cat ${cache_weather_quote} | tail -n1
fi

View File

@ -1,33 +0,0 @@
#!/bin/bash
if [[ "$1" == "--tr" ]]; then
alacritty --working-directory ~ &
elif [[ "$1" == "--ff" ]]; then
firefox &
elif [[ "$1" == "--fm" ]]; then
thunar ~ &
elif [[ "$1" == "--ge" ]]; then
geany &
elif [[ "$1" == "--dc" ]]; then
discord &
elif [[ "$1" == "--tg" ]]; then
telegram-desktop &
elif [[ "$1" == "--rd" ]]; then
firefox --new-tab "https://reddit.com"
elif [[ "$1" == "--ml" ]]; then
firefox --new-tab "https://mail.google.com"
elif [[ "$1" == "--pow" ]]; then
xfce4-power-manager-settings &
elif [[ "$1" == "--nm" ]]; then
networkmanager_dmenu
fi

View File

@ -1,9 +0,0 @@
#!/bin/bash
if [[ "$1" == "--menu" ]]; then
rofi -show drun
elif [[ "$1" == "--search" ]]; then
firefox --new-tab "https://google.com"
fi

View File

@ -34,3 +34,4 @@ env = APPIMAGELAUNCHER_DISABLE,1
exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh exec-once = ~/dotfiles/hypr/scripts/ml4w-welcome-autostart.sh
exec-once = ~/.config/ml4w-hyprland-settings/hyprctl.sh exec-once = ~/.config/ml4w-hyprland-settings/hyprctl.sh
exec-once = ~/dotfiles/hypr/scripts/eww.sh

4
hypr/scripts/eww.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
EWW=`which eww`
killall eww
${EWW} daemon

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
sleep 1 sleep 0.5
killall -9 Hyprland sleep 2 killall -9 Hyprland sleep 2

3
hypr/scripts/lock.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
sleep 0.5
hyprlock

3
hypr/scripts/reboot.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
sleep 0.5
systemctl reboot

3
hypr/scripts/shutdown.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
sleep 0.5
systemctl suspend

3
hypr/scripts/suspend.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/bash
sleep 0.5
systemctl suspend

View File

@ -58,8 +58,8 @@
// ML4W Welcome App // ML4W Welcome App
"custom/ml4w-welcome": { "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": "~/dotfiles/hypr/scripts/ml4w-launcher.sh", "on-click-right": "sleep 0.1 && ~/dotfiles/apps/ML4W_Welcome-x86_64.AppImage",
"format": " ", "format": " ",
"tooltip": false "tooltip": false
}, },
@ -143,20 +143,6 @@
"tooltip": false "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 // Browser Launcher
"custom/browser": { "custom/browser": {
"format": "", "format": "",
@ -291,7 +277,7 @@
// START CHATGPT TOOGLE // START CHATGPT TOOGLE
"custom/chatgpt", "custom/chatgpt",
// END CHATGPT TOOGLE // END CHATGPT TOOGLE
"custom/wallpaper" "custom/empty"
] ]
}, },
@ -306,6 +292,7 @@
"modules": [ "modules": [
"custom/settings", "custom/settings",
"custom/waybarthemes", "custom/waybarthemes",
"custom/wallpaper",
"custom/ml4w-hyprland-settings" "custom/ml4w-hyprland-settings"
] ]
}, },

View File

@ -200,7 +200,7 @@ window#waybar.empty #window {
} }
#custom-chatgpt { #custom-chatgpt {
margin-right: 15px; margin-right: 12px;
background-image: url("../assets/ai-icon-20.png"); background-image: url("../assets/ai-icon-20.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;

View File

@ -142,12 +142,19 @@ window#waybar.empty #window {
} }
#custom-settings { #custom-settings {
margin-right: 15; margin-right: 15px;
}
#custom-browser {
margin-right: 16px;
}
#custom-wallpaper {
margin-right: 14px;
} }
#custom-chatgpt { #custom-chatgpt {
margin-right: 15px; margin-right: 10px;
background-image: url("../assets/ai-icon-20.png"); background-image: url("../assets/ai-icon-20.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;

View File

@ -185,7 +185,7 @@ window#waybar.empty #window {
} }
#custom-chatgpt { #custom-chatgpt {
margin-right: 15px; margin-right: 12px;
background-image: url("../assets/ai-icon.png"); background-image: url("../assets/ai-icon.png");
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;

View File

@ -1,6 +1,6 @@
{ {
"label" : "lock", "label" : "lock",
"action" : "sleep 1; hyprlock", "action" : "$HOME/dotfiles/hypr/scripts/lock.sh",
"text" : "Lock", "text" : "Lock",
"keybind" : "l" "keybind" : "l"
} }
@ -18,19 +18,19 @@
} }
{ {
"label" : "shutdown", "label" : "shutdown",
"action" : "sleep 1; systemctl poweroff", "action" : "$HOME/dotfiles/hypr/scripts/shutdown.sh",
"text" : "Shutdown", "text" : "Shutdown",
"keybind" : "s" "keybind" : "s"
} }
{ {
"label" : "suspend", "label" : "suspend",
"action" : "sleep 1; systemctl suspend", "action" : "$HOME/dotfiles/hypr/scripts/suspend.sh",
"text" : "Suspend", "text" : "Suspend",
"keybind" : "u" "keybind" : "u"
} }
{ {
"label" : "reboot", "label" : "reboot",
"action" : "sleep 1; systemctl reboot", "action" : "$HOME/dotfiles/hypr/scripts/reboot.sh",
"text" : "Reboot", "text" : "Reboot",
"keybind" : "r" "keybind" : "r"
} }