add eww config

This commit is contained in:
matt1432 2023-05-28 18:05:51 -04:00
parent fac0e15a9e
commit 85dde2e9aa
34 changed files with 2112 additions and 0 deletions

21
dolphinrc Normal file
View file

@ -0,0 +1,21 @@
[$Version]
update_info=dolphin_detailsmodesettings.upd:rename-leading-padding
[General]
Version=202
ViewPropsTimestamp=2023,5,12,19,59,9.33
[Icons]
Theme=Adwaita:dark
[KFileDialog Settings]
Places Icons Auto-resize=false
Places Icons Static Size=22
[KPropertiesDialog]
1920x1200 screen: Height=567
1920x1200 screen: Width=604
[MainWindow]
MenuBar=Disabled
ToolBarsMovable=Disabled

3
eww/README.md Normal file
View file

@ -0,0 +1,3 @@
credits: https://github.com/AlphaTechnolog/dotfiles/tree/openbox
it has been slightly modified

159
eww/actions/actions.scss Normal file
View file

@ -0,0 +1,159 @@
.actions {
background-color: $bg;
color: $fg;
//font-family: Product Sans;
font-family: Ubuntu Mono;
border-radius: 30px;
border: 5px solid $contrastbg;
padding: 10px 18px;
}
.controlsbox {
background-color: $contrastbg;
border-radius: 7px;
padding: 7px 12px;
.vol-slider {
.vol-label {
min-width: 25px; /* Set the width according to your icons */
font-size: 26px;
font-family: Iosevka Nerd Font;
margin-right: 15px;
color: $blue;
}
& scale trough {
all: unset;
border-radius: 10px;
background-color: $black;
border: none;
min-height: 16px;
min-width: 250px;
margin-left: 3px;
& highlight {
all: unset;
background: linear-gradient(to right, $blue, $cyan);
color: #000000;
border-radius: 10px;
}
}
}
.br-slider {
.br-label {
min-width: 25px; /* Set the width according to your icons */
font-size: 26px;
font-family: Iosevka Nerd Font;
margin-right: 15px;
color: $yellow;
}
& scale trough {
all: unset;
border-radius: 10px;
background-color: $black;
border: none;
min-height: 16px;
min-width: 250px;
margin-left: 3px;
& highlight {
all: unset;
background: linear-gradient(to right, $red, $yellow);
color: #000000;
border-radius: 10px;
}
}
}
}
.userinfobox {
.time {
font-size: 42px;
}
.pfp {
background-position: center;
background-size: cover;
background-repeat: no-repeat;
border-radius: 50px;
min-width: 30px;
min-height: 30px;
}
.daybox {
margin-top: 8px;
font-size: 14px;
}
.username {
//font-family: Product Sans;
font-family: Ubuntu Mono;
}
.useractions {
.logout {
background-color: $black;
font-family: Iosevka Nerd Font;
font-size: 18px;
padding: 6px 12px 6px 6px;
border-radius: 4px;
transition: all ease .2s;
&:hover { background-color: $dimblack; }
&:active { background-color: $black; }
}
}
}
.sysbuttonsbox {
.block-container {
.block {
background-color: $contrastbg;
padding: 0px 6px;
border-radius: 50px;
transition: all ease .2s;
color: $fg;
&:hover { background-color: $bgSecondary; }
&:active { background-color: $contrastbg; }
&.active {
background-color: $black;
&:hover { background-color: $dimblack; }
&:active { background-color: $black; }
.sepbox .sep {
background-color: $lightblack;
}
}
.iconbox .icon {
font-family: Iosevka Nerd Font;
padding: 7px 14px 7px 14px;
font-size: 20px;
min-width: 20px;
}
.sepbox .sep {
background-color: $black;
margin: 0px 4px;
padding: 0px 1px;
}
.chevronbox {
font-family: Iosevka Nerd Font;
padding: 0px 12px;
}
}
.label {
font-family: Product Sans;
font-size: 14px;
}
}
}
.poweractionsbox {
.info {
font-size: 26px;
}
.buttons {
font-family: Iosevka Nerd Font;
font-size: 22px;
button {
padding: 1px 9px 1px 9px;
background-color: $bgSecondary;
border-radius: 5px;
transition: all ease .2s;
&:hover { background-color: $black; }
&:active { background-color: $bg; }
&.do-logout { color: $yellow; }
}
}
}

209
eww/actions/actions.yuck Normal file
View file

@ -0,0 +1,209 @@
(defwidget sysblock [icon onclick active label]
(box :class "block-container"
:orientation "v"
:space-evenly false
:spacing 5
(button :class "block ${active ? 'active' : ''}" :onclick "${onclick}"
(box :orientation "h"
:space-evenly false
(box :class "iconbox"
:halign "start"
:space-evenly true
:orientation "h"
(label :text "${icon}" :class "icon")
)
(box :class "sepbox"
:halign "center"
:space-evenly true
:orientation "h"
(box :class "sep")
)
(box :class "chevronbox"
:halign "end"
:space-evenly true
:orientation "h"
(label :text "")
)
)
)
(label :halign "center" :text "${label}" :class "label")
)
)
(defwidget sysbuttons []
(box :class "sysbuttonsbox"
:orientation "v"
:space-evenly false
:spacing 20
(box :class "firstrow"
:orientation "h"
:space-evenly true
(box :halign "start"
:orientation "h"
:space-evenly true
(sysblock :icon "${network_icon}"
:onclick "~/.config/eww/scripts/network.sh toggle"
:active "${network_status == 'Connected' ? true : false}"
:label "${network_ssid}")
)
(box :halign "center"
:orientation "h"
:space-evenly true
(sysblock :icon "${bluetooth_state == 'on' ? '' : ''}"
:onclick "~/.config/eww/scripts/bluetooth toggle"
:active "${bluetooth_state == 'on' ? true : false}"
:label "Bluetooth")
)
(box :halign "end"
:orientation "h"
:space-evenly true
(sysblock :icon "${network_radio == 'on' ? '' : ''}"
:onclick "~/.config/eww/scripts/network.sh toggle-radio"
:active "${network_radio == 'on' ? false : true}"
:label "Airplane")
)
)
(box :class "lastrow"
:orientation "h"
:space-evenly true
(box :halign "start"
:orientation "h"
:space-evenly true
(sysblock :icon "${redshift_state == 'on' ? '' : ''}"
:onclick "~/.config/eww/scripts/redshift toggle"
:active "${redshift_state == 'on' ? true : false}"
:label "Night Light")
)
(box :halign "center"
:orientation "h"
:space-evenly true
(sysblock :icon "${volume_icon}"
:onclick "~/.config/eww/scripts/volume.sh toggle-muted"
:active "${is_muted == 'yes' ? false : true}"
:label "Volume")
)
(box :halign "end"
:orientation "h"
:space-evenly true
(sysblock :icon "${mic_status == 'yes' ? '' : ''}"
:onclick "~/.config/eww/scripts/mic toggle"
:active "${mic_status == 'yes' ? true : false}"
:label "Micro")
)
)
)
)
(defwidget controls []
(box :class "controlsbox"
:orientation "v"
:space-evenly false
:spacing 10
(box :orientation "h"
:space-evenly "false"
:class "vol-slider"
(box :class "vol-label"
volume_icon
)
(scale :value volume_value
:onchange "~/.config/eww/scripts/volume.sh set {}"
:min 0
:max 101)
)
(box :orientation "h"
:space-evenly "false"
:class "br-slider"
(box :class "br-label"
br_icon
)
(scale :value br
:onchange "~/.config/eww/scripts/brightness.sh set {}"
:min 0
:max 101)
)
)
)
(defwidget user []
(box :class "userinfobox"
:orientation "h"
:space-evenly false
(box :class "info"
:space-evenly false
:orientation "h"
:halign "start"
:valign "center"
:spacing 10
(label :text "${lithour}:${litmin}" :class "time")
(box :class "daybox"
:orientation "v"
:space-evenly false
(label :text "${shortday}" :halign "start")
(label :text "${weekday}" :halign "start")
)
)
(box :orientation "h"
:space-evenly false
:halign "end"
:valign "center"
:hexpand true
(box :class "pfp"
:style "background-image: url('${pfp}');")
)
)
)
(defwidget poweractions []
(box :class "poweractionsbox"
:orientation "h"
:space-evenly true
(box :class "buttons-container"
:space-evenly true
:halign "end"
:orientation "h"
(box :class "buttons"
:orientation "h"
:space-evenly true
:spacing 10
(button :class "do-logout"
:onclick "eww open powermenu && eww open powermenu-closer && eww close actions && eww close actions-closer"
:tooltip "Logout"
:halign "end"
""
)
)
)
)
)
(defwidget actions []
(box :class "actions"
:orientation "v"
:space-evenly false
:spacing 20
(user)
(sysbuttons)
(controls)
(poweractions)
)
)
(defwindow actions
:monitor "0"
:geometry (geometry :x "10px"
:y "4px"
:width "320px" ; this isn't respected btw, so it's auto-adjusted by eww lol.
:height "10px" ; automatically generated by eww.
:anchor "top right")
(actions))
(defwidget closer [window]
(eventbox :onclick "eww close ${window} && eww close ${window}-closer"))
(defwindow actions-closer
:monitor 0
:geometry (geometry :width "100%" :height "100%")
:stacking "fg"
:focusable false
(closer :window "actions"))

BIN
eww/assets/default-pfp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
eww/assets/fallback.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

31
eww/colors.scss Normal file
View file

@ -0,0 +1,31 @@
$darkbg: #0b0d16;
$bg: rgb(24, 27, 35); //rgba(69, 71, 90, 0.3); #0d0f18;
$contrastbg: #0f111a;
$bgSecondary: #11131c;
$bgSecondaryAlt: #a5b6cf;
$fg: #a5b6cf;
$fgDim: #a5b6cf;
$watermelon: #dd6777;
// Aliases
$background: $bg;
$backgroundSecondary: $bgSecondary;
$backgroundSecondaryAlt: $bgSecondaryAlt;
$foreground: $fg;
$foregroundDim: $fgDim;
$black: #151720;
$dimblack: #1a1c25;
$lightblack: #262831;
$red: #dd6777;
$blue: #86aaec;
$cyan: #93cee9;
$blue-desaturated: #93cee9;
$magenta: #c296eb;
$purple: #c296eb;
$green: #90ceaa;
$aquamarine: #90ceaa;
$yellow: #ecd3a0;
$accent: $blue;
$javacafeMagenta: #c296eb;
$javacafeBlue: #86aaec;

View file

@ -0,0 +1,305 @@
.dashboardbox {
background-color: $black;
color: $fg;
}
.headerbox {
padding: 8px 10px 6px;
.userbox {
.pfp {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
min-height: 32px;
min-width: 32px;
border-radius: 50px;
}
.pcname {
font-family: Product Sans;
.sep {
color: $blue;
}
}
}
.searchbox {
.searchinput {
background-color: $bg;
padding: 5px 0px;
border-radius: 50px;
transition: all ease .2s;
&:hover { background-color: $bgSecondary; }
&:active { background-color: $contrastbg; }
.searchinput-content {
padding: 0px 200px 0px 10px;
font-family: Product Sans;
.icon {
font-family: Iosevka Nerd Font;
color: $blue;
margin-right: 12px;
}
.placeholder {
color: $lightblack;
}
}
}
}
}
.content-container {
.contentbox {
background-color: $bg;
border-top-left-radius: 12px;
border-top-right-radius: 12px;
padding: 25px;
.firstcol {
.usercard {
background-color: $black;
border-radius: 12px;
padding: 10px;
.user-content {
font-family: Product Sans;
.pfp {
background-size: cover;
background-position: center;
background-repeat: no-repeat;
min-height: 64px;
min-width: 64px;
border-radius: 50px;
}
.username {
font-weight: bolder;
font-size: 20px;
}
.uptime {
font-size: 12px;
}
}
.user-powerbuttons {
button {
background-color: $dimblack;
border-radius: 7px;
padding: 2px 10px 2px 7px;
font-family: Iosevka Nerd Font;
font-size: 16px;
transition: all ease .2s;
&:hover { background-color: $lightblack; }
&:active { background-color: $dimblack; }
}
.poweroff { color: $red; }
.reboot { color: $magenta; }
}
}
.controlscard {
background-color: $black;
padding: 10px;
border-radius: 12px;
.control-container {
.control-item {
transition: all ease .2s;
border-radius: 50px;
background-color: $dimblack;
color: $blue;
&:hover { background-color: $lightblack; }
&:active { background-color: $dimblack; }
&.active {
background: $blue;
color: $bg;
}
.control-icon {
font-family: Iosevka Nerd Font;
font-size: 14px;
}
// solving nerd fonts alignment issues
&.network { padding: 9px 19px 9px 10px; }
&.network-disconnected { padding: 9px 18px 9px 11px; }
&.airplane { padding: 9px 17px 9px 12px; }
&.volume { padding: 9px 18px 9px 11px; }
&.volume-muted { padding: 9px 17px 9px 12px; }
&.mic { padding: 9px 16px 9px 13px; }
&.mic-on { padding: 9px 15px 9px 14px; }
&.redshift { padding: 9px 18px 9px 11px; }
&.redshift-on { padding: 9px 17px 9px 12px; }
&.bluetooth { padding: 9px 16px 9px 13px; }
&.bluetooth-on { padding: 9px 15px 9px 14px; }
&.fullscreensht { padding: 9px 17px 9px 12px; }
&.areascreensht { padding: 9px 17px 9px 12px; }
}
}
}
.slidersbox {
.vol-slider {
.vol-label {
font-size: 16px;
font-family: Iosevka Nerd Font;
color: $bg;
margin-left: 10px;
}
& scale trough {
all: unset;
border-radius: 10px;
background-color: $black;
border: none;
min-height: 25px;
min-width: 245px;
margin-left: 3px;
& highlight {
all: unset;
background: $blue;
color: #000000;
border-radius: 10px;
}
}
}
.br-slider {
.br-label {
font-size: 16px;
font-family: Iosevka Nerd Font;
color: $bg;
margin-left: 10px;
}
& scale trough {
all: unset;
border-radius: 100px;
background-color: $black;
border: none;
min-height: 25px;
min-width: 245px;
margin-left: 3px;
& highlight {
all: unset;
background: $blue;
color: #000000;
border-radius: 10px;
}
}
}
.mic-slider {
.mic-label {
font-size: 16px;
font-family: Iosevka Nerd Font;
color: $bg;
margin-left: 10px;
}
& scale trough {
all: unset;
border-radius: 100px;
background-color: $black;
border: none;
min-height: 25px;
min-width: 245px;
margin-left: 3px;
& highlight {
all: unset;
background: $blue;
color: #000000;
border-radius: 10px;
}
}
}
}
}
.lastcol {
.musicbox {
background-color: $black;
border-radius: 12px;
.firstrow {
padding: 10px;
.picbox {
background-size: cover;
background-repeat: no-repeat;
background-position: center;
min-width: 64px;
min-height: 64px;
border-radius: 10px;
}
.info {
font-family: Product Sans;
.music-title {
font-weight: bolder;
}
.music-artist {
color: $lightblack;
}
}
}
.lastrow {
padding: 10px 0px;
background-color: $dimblack;
border-bottom-right-radius: 12px;
border-bottom-left-radius: 12px;
.controls-container {
font-size: 16px;
font-family: Iosevka Nerd Font;
button {
transition: all ease .2s;
border-radius: 7px;
&:hover { background-color: $lightblack; }
&:active { background-color: transparent; }
&.previousbutton, &.nextbutton { padding: 1px 11px 1px 10px; }
&.pausebutton {
font-size: 20px;
padding: 1px 12px 1px 9px;
&.playing {
padding: 1px 14px 1px 7px;
}
}
}
}
}
}
.chart-container {
background-color: $black;
border-radius: 12px;
.header {
padding: 5px 10px;
font-family: Product Sans;
font-size: 14px;
color: $lightblack;
}
.body .container {
padding: 10px;
.chart-container {
background-color: $lightblack;
border-radius: 3em;
.chart {
color: $blue;
label {
padding: 1em;
font-size: 23px;
}
}
.chart-icon {
background-color: $black;
border-radius: 3em;
padding: 12px 5px;
margin: 0.5em;
font-family: Iosevka Nerd Font;
// nf alignment issues (again).
&.cpu { padding: 12px 9px 12px 4px; }
&.ram { padding: 12px 8px 12px 5px; }
&.temp { padding: 13px 9px 12px 3px; }
&.disk { padding: 13px 8px 12px 4px; }
}
}
}
}
}
}
.footer {
background-color: $bg;
padding: 10px 0px;
font-family: Product Sans;
.protipbox {
.icon {
font-family: Iosevka Nerd Font;
color: $yellow;
}
}
}
}

View file

@ -0,0 +1,385 @@
(defwidget header []
(box :class "headerbox"
:orientation "h"
:space-evenly false
(box :class "userbox"
:orientation "h"
:space-evenly false
:halign "start"
:valign "center"
:spacing 10
(box :class "pfp"
:style "background-image: url('${pfp}');")
(box :class "pcname"
:orientation "h"
:space-evenly false
(label :text "${rawuser}" :class "username")
(label :text "@" :class "sep")
(label :text "${hostname}" :class "hostname")
)
)
(box :class "searchbox"
:orientation "h"
:space-evenly true
:halign "end"
:hexpand true
:valign "center"
(button :class "searchinput"
:onclick "~/.config/eww/scripts/exec rofi -show drun"
(box :class "searchinput-content"
:orientation "h"
:space-evenly false
:hexpand true
:halign "start"
:valign "center"
:vexpand true
(label :text "" :class "icon")
(label :text "Search Applications" :class "placeholder")
)
)
)
)
)
(defwidget usercard []
(box :class "usercard"
:orientation "v"
:space-evenly false
(box :class "user-content"
:orientation "h"
:space-evenly false
:vexpand true
:spacing 15
(box :class "pfp"
:style "background-image: url('${pfp}');")
(box :class "info"
:hexpand true
:vexpand true
:valign "center"
:halign "start"
:orientation "v"
:space-evenly false
:spacing 3
(label :text "${username}" :class "username" :halign "start")
(label :text "${uptime}" :class "uptime" :halign "start")
)
)
(box :class "user-powerbuttons"
:orientation "h"
:space-evenly false
:hexpand true
:halign "end"
:valign "end"
:spacing 5
(button :class "reboot"
:onclick "doas poweroff"
"勒"
)
(button :class "poweroff"
:onclick "doas poweroff"
"襤"
)
)
)
)
(defwidget control [name icon tooltip onclick active]
(box :class "control-container"
:orientation "h"
:hexpand true
:valign "center"
:space-evenly true
(button :class "control-item ${name} ${active ? 'active' : ''}"
:orientation "h"
:space-evenly true
:halign "center"
:hexpand false
:valign "center"
:onclick "${onclick}"
:tooltip "${tooltip}"
(label :text "${icon}" :class "control-icon")
)
)
)
(defwidget quicksettings []
(box :class "controlscard"
:orientation "v"
:space-evenly false
:spacing 20
(box :class "firstrow"
:orientation "h"
:space-evenly true
(control :name "network${network_status == 'Connected' ? '' : '-disconnected'}"
:icon "${network_icon}"
:tooltip "Toggle network"
:active "${network_status == 'Connected' ? 'true' : 'false'}"
:onclick "~/.config/eww/scripts/network.sh toggle")
(control :name "airplane"
:icon "${network_radio == 'on' ? '' : ''}"
:tooltip "Airplane Mode"
:active "${network_radio == 'on' ? false : true}"
:onclick "~/.config/eww/scripts/network.sh toggle-radio")
(control :name "volume${is_muted == 'yes' ? '-muted' : ''}"
:icon "${volume_icon}"
:tooltip "Toggle muted"
:active "${is_muted == 'yes' ? false : true}"
:onclick "~/.config/eww/scripts/volume.sh toggle-muted")
(control :name "mic${mic_status == 'yes' ? '-on' : ''}"
:icon "${mic_status == 'yes' ? '' : ''}"
:tooltip "Toggle microphone"
:active "${mic_status == 'yes' ? true : false}"
:onclick "~/.config/eww/scripts/mic toggle")
)
(box :class "lastrow"
:orientation "h"
:space-evenly true
(control :name "redshift${redshift_state == 'on' ? '-on' : ''}"
:icon "${redshift_state == 'on' ? '' : ''}"
:tooltip "Toggle night light"
:active "${redshift_state == 'on' ? true : false}"
:onclick "~/.config/eww/scripts/redshift toggle")
(control :name "bluetooth${bluetooth_state == 'on' ? '-on' : ''}"
:icon "${bluetooth_state == 'on' ? '' : ''}"
:tooltip "Toggle bluetooth"
:active "${bluetooth_state == 'on' ? true : false}"
:onclick "~/.config/eww/scripts/bluetooth toggle")
(control :name "fullscreensht"
:icon ""
:tooltip "Take a full screenshot"
:active false
:onclick "~/.config/eww/scripts/screensht full")
(control :name "areascreensht"
:icon ""
:tooltip "Take a screenshot of a selected area"
:active false
:onclick "~/.config/eww/scripts/screensht area")
)
)
)
(defwidget sliders []
(box :class "slidersbox"
:orientation "v"
:space-evenly false
:spacing 25
(box :orientation "h"
:space-evenly "false"
:class "vol-slider"
(overlay
(scale :value volume_value
:onchange "~/.config/eww/scripts/volume.sh set {}"
:min 0
:max 101)
(label :class "vol-label"
:text "${volume_icon} "
:valign "top"
:halign "start")
)
)
(box :orientation "h"
:space-evenly "false"
:class "br-slider"
(overlay
(scale :value br
:onchange "~/.config/eww/scripts/brightness.sh set {}"
:min 0
:max 101)
(label :class "br-label"
:text "${br_icon} "
:valign "top"
:halign "start")
)
)
(box :orientation "h"
:space-evenly "false"
:class "mic-slider"
(overlay
(scale :value mic
:onchange "~/.config/eww/scripts/mic set {}"
:min 0
:max 101)
(label :class "mic-label"
:text "${mic_status == 'yes' ? '' : ''} "
:valign "top"
:halign "start")
)
)
)
)
(defwidget music []
(box :class "musicbox"
:orientation "v"
:space-evenly false
(box :class "firstrow"
:orientation "h"
:space-evenly false
:vexpand true
(box :class "picbox"
:orientation "v"
:space-evenly true
:style "background-image: url('${music_url}');"
music_pic
)
(box :class "info"
:space-evenly false
:hexpand true
:valign "center"
:orientation "v"
:spacing 5
(label :text "${music_title}" :class "music-title")
(label :text "${music_artist}" :class "music-artist")
)
)
(box :class "lastrow"
:orientation "h"
:space-evenly true
(box :class "controls-container"
:orientation "h"
:space-evenly true
(button :onclick "~/.config/eww/scripts/music/control.sh prev"
:class "previousbutton"
:halign "center"
"玲"
)
(button :onclick "~/.config/eww/scripts/music/control.sh play-pause"
:class "pausebutton ${music_status == 'Playing' ? 'playing' : ''}"
:halign "center"
"${music_status == 'Playing' ? '' : ''}"
)
(button :onclick "~/.config/eww/scripts/music/control.sh next"
:class "nextbutton"
:halign "center"
"怜"
)
)
)
)
)
(defwidget chart [label value icon icon-class]
(box :class "chart-container"
:orientation "v"
:space-evenly false
(box :class "header"
:space-evenly true
:orientation "v"
(label :text "${label}" :class "label" :halign "start")
)
(box :class "body"
:space-evenly true
:orientation "h"
(box :class "container"
:space-evenly true
:halign "center"
:hexpand true
:orientation "h"
(box :class "chart-container" :space-evenly false
(overlay
(circular-progress :value value
:thickness 50
:class "chart"
:start-at 75
(label :text "L")
)
(label :text "${icon}" :class "chart-icon ${icon-class}")
)
)
)
)
)
)
(defwidget charts []
(box :class "chartsbox"
:orientation "v"
:space-evenly false
:spacing 25
(box :class "firstrow"
:orientation "h"
:space-evenly true
:spacing 25
(chart :label "Cpu" :icon "" :icon-class "cpu" :value cpu)
(chart :label "Ram" :icon "" :icon-class "ram" :value ram)
)
(box :class "lastrow"
:orientation "h"
:space-evenly true
:spacing 25
(chart :label "Temp" :icon "" :icon-class "temp" :value temp)
(chart :label "Disk" :icon "" :icon-class "disk" :value disk)
)
)
)
(defwidget footer []
(box :class "footer"
:space-evenly true
:orientation "h"
:valign "end"
(box :class "protipbox"
:orientation "h"
:space-evenly false
:halign "center"
:spacing 15
(label :text "ﯦ " :class "icon")
(label :text "Press the menu icon again to close this popup." :class "placeholder")
)
)
)
(defwidget content []
(box :class "content-container"
:orientation "v"
:space-evenly false
(box :class "contentbox"
:orientation "h"
:space-evenly true
:spacing 25
:vexpand true
(box :class "firstcol"
:orientation "v"
:space-evenly false
:spacing 25
(usercard)
(quicksettings)
(sliders)
)
(box :class "lastcol"
:orientation "v"
:space-evenly false
:spacing 25
(music)
(charts)
)
)
(footer)
)
)
(defwidget dashboard []
(box :class "dashboardbox"
:orientation "v"
:space-evenly false
(header)
(content)
)
)
(defwindow dashboard
:monitor 0
:geometry (geometry :x "6px"
:y "-44px"
:width "10px" ; automatically adjusted by eww
:height "10px" ; automatically adjusted by eww
:anchor "bottom center")
:type "dock"
:wm-ignore false
(dashboard))

71
eww/date/date.scss Normal file
View file

@ -0,0 +1,71 @@
.date {
background-color: $bg;
color: $fg;
border-radius: 4px;
}
.timebox {
margin: 30px 0px;
.time-container {
.content {
font-family: Product Sans;
font-weight: bolder;
font-size: 60px;
}
.divider {
margin: 8px 15px;
padding: 0px 1px;
background: linear-gradient($red, $magenta, $blue, $cyan);
}
}
.date-container {
font-family: Product Sans;
margin-top: 2px;
}
}
.cal-box {
font-family: Product Sans;
background-color: $bg;
border-radius: 4px;
padding: 0 1rem .2rem;
color: $fg;
background-color: $contrastbg;
margin: 0px 12px 12px 12px;
.cal {
background-color: inherit;
padding: .5rem .10rem 0rem;
margin-left: 10px;
& > * {
border: solid 0px transparent;
}
&.highlight {
padding: 10rem;
}
}
}
calendar:selected {
color: $cyan;
}
calendar.header {
color: $cyan;
font-weight: bold;
}
calendar.button {
color: $cyan;
}
calendar.highlight {
color: $green;
font-weight: bold;
}
calendar:indeterminate {
color: $lightblack;
}

57
eww/date/date.yuck Normal file
View file

@ -0,0 +1,57 @@
(defwidget divider []
(box :class "divider"
:orientation "v"
:space-evenly true)
)
(defwidget time []
(box :class "timebox"
:orientation "v"
:space-evenly false
(box :class "time-container"
:orientation "h"
:space-evenly false
:halign "center"
:valign "center"
(label :text "${lithour}" :class "content")
(divider)
(label :text "${litmin}" :class "content")
)
(box :class "date-container"
:orientation "h"
:space-evenly true
:halign "center"
(label :text "${completeday}")
)
)
)
(defwidget cal []
(box :class "cal-box"
:orientation "v"
:space-evenly false
(calendar :class "cal"
:day calendar_day
:month calendar_month
:year calendar_year)
)
)
(defwidget date []
(box :class "date"
:orientation "v"
:space-evenly false
(time)
(cal)
)
)
(defwindow date
:monitor 0
:geometry (geometry :x "6px"
:y "-44px"
:width "0px" ; automatically generated
:height "0px" ; automatically generated
:anchor "left bottom")
:wm-ignore true
(date))

9
eww/eww.scss Normal file
View file

@ -0,0 +1,9 @@
* {
all: unset;
}
@import "colors.scss";
@import "date/date.scss";
@import "actions/actions.scss";
@import "powermenu/powermenu.scss";
@import "dashboard/dashboard.scss";

5
eww/eww.yuck Normal file
View file

@ -0,0 +1,5 @@
(include "variables.yuck")
(include "date/date.yuck")
(include "actions/actions.yuck")
(include "powermenu/powermenu.yuck")
(include "dashboard/dashboard.yuck")

View file

@ -0,0 +1,27 @@
.powermenu {
background-color: $bg;
color: $fg;
padding: 20px;
font-family: Iosevka Nerd Font;
font-size: 70px;
border-radius: 30px;
border: 5px solid $contrastbg;
button {
border-radius: 12px;
min-width: 80px;
transition: all ease .2s;
&:hover { background-color: $bgSecondary; }
&:active { background-color: $bg; }
.content {
border-radius: 4px;
padding: 0px 15px 0px 15px;
}
}
.shutdown { color: $red; }
.reboot { color: $magenta; }
.logout { color: $yellow; }
}
.powermenu-clickhandler {
background-color: black;
}

View file

@ -0,0 +1,56 @@
(defwidget powermenu []
(box :class "powermenu"
:orientation "h"
:space-evenly true
:spacing 20
(button :class "shutdown"
:onclick "systemctl poweroff"
(label :text "襤" :class "content")
)
(button :class "reboot"
:onclick "systemctl reboot"
(label :text "勒" :class "content")
)
(button :class "logout"
:onclick "swaymsg exit"
(label :text "" :class "content")
)
)
)
(defwidget powermenu-clickhandler []
(button :class "powermenu-clickhandler"
:onclick "eww -c ~/.config/eww close powermenu powermenu-clickhandler"
""
)
)
(defwindow powermenu-clickhandler
:monitor 0
:geometry (geometry :x "0px"
:y "0px"
:width "100%"
:height "100%"
:anchor "center")
:wm-ignore true
(powermenu-clickhandler))
(defwindow powermenu
:monitor 0
:geometry (geometry :x "0px"
:y "0px"
:width "500px"
:height "150px"
:anchor "center")
:wm-ignore true
(powermenu))
(defwidget closer [window]
(eventbox :onclick "eww close ${window} && eww close ${window}-closer"))
(defwindow powermenu-closer
:monitor 0
:geometry (geometry :width "100%" :height "100%")
:stacking "fg"
:focusable false
(closer :window "powermenu"))

35
eww/scripts/bluetooth Executable file
View file

@ -0,0 +1,35 @@
#!/usr/bin/env bash
get_state () {
state=$(bluetoothctl show | grep 'Powered' | awk '{print $2}')
if [[ $state == "yes" ]]; then
echo on
else
echo off
fi
}
turn_off () {
bluetoothctl power off 2>&1 > /dev/null
}
turn_on () {
bluetoothctl power on 2>&1 > /dev/null
}
toggle () {
state=$(get_state)
if [[ $state == "on" ]]; then
turn_off
else
turn_on
fi
}
if [[ $1 == "state" ]]; then
get_state
fi
if [[ $1 == "toggle" ]]; then
toggle
fi

50
eww/scripts/brightness.sh Executable file
View file

@ -0,0 +1,50 @@
#!/bin/bash
# @requires: brightnessctl
percentage () {
local val=$(echo $1 | tr '%' ' ' | awk '{print $1}')
local icon1=$2
local icon2=$3
local icon3=$4
local icon4=$5
if [ "$val" -le 15 ]; then
echo $icon1
elif [ "$val" -le 30 ]; then
echo $icon2
elif [ "$val" -le 60 ]; then
echo $icon3
else
echo $icon4
fi
}
get_brightness () {
(( br = $(brightnessctl get) * 100 / $(brightnessctl max) ))
echo $br
}
get_percent () {
echo $(get_brightness)%
}
get_icon () {
local br=$(get_percent)
echo $(percentage "$br" "" "" "" "")
}
if [[ $1 == "br" ]]; then
get_brightness
fi
if [[ $1 == "percent" ]]; then
get_percent
fi
if [[ $1 == "icon" ]]; then
get_icon
fi
if [[ $1 == "set" ]]; then
light -S $2
fi

2
eww/scripts/cpu.sh Executable file
View file

@ -0,0 +1,2 @@
#!/usr/bin/env bash
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage "%"}' | tr '.' ' ' | awk '{print $1}'

3
eww/scripts/disk.sh Executable file
View file

@ -0,0 +1,3 @@
#!/usr/bin/env bash
df --output=pcent / | tail -n 1 | sed 's/%//g' | awk '{print $1}'

4
eww/scripts/exec Executable file
View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
cd ~
${@} 2>&1 >/dev/null &

64
eww/scripts/mic Executable file
View file

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# @requires: pactl
SINK=$(pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1)
status () {
status=$(pactl get-source-mute $SINK | awk '{print $2}')
if [[ $status == 'yes' ]]; then
echo no
else
echo yes
fi
}
set_volume () {
local max_db=65536
local percent=$1
# getting the $percent% of $max_db
local value=$(jq -n ${percent}/100*${max_db} | sed 's/\./ /g' | awk '{print $1}')
# set volume
pacmd set-source-volume $SINK $value
}
get () {
local enabled=$(status)
if [[ $enabled == 'no' ]]; then
echo '0'
else
pacmd list short sinks | grep volume:\ front | tail -n 1 | awk '{print $5}' | sed 's/%//g'
fi
}
percentage () {
local val=$(get)
echo "${val}%"
}
_ () {
${@}
exit 0
}
if [[ $1 == "status" ]]; then
_ status
fi
if [[ $1 == "toggle" ]]; then
_ pactl set-source-mute $SINK toggle
fi
if [[ $1 == "set" ]]; then
_ set_volume ${2}
fi
if [[ $1 == "get" ]]; then
_ get
fi
if [[ $1 == "percent" ]]; then
_ percentage
fi

13
eww/scripts/music/control.sh Executable file
View file

@ -0,0 +1,13 @@
#!/usr/bin/env bash
if [[ $1 == "prev" ]]; then
playerctl previous
fi
if [[ $1 == "play-pause" ]]; then
playerctl play-pause
fi
if [[ $1 == "next" ]]; then
playerctl next
fi

45
eww/scripts/music/songart.sh Executable file
View file

@ -0,0 +1,45 @@
#!/bin/bash
# thanks to kizu
get_song_art () {
TMP_DIR="$HOME/.cache/eww"
TMP_COVER_PATH=$TMP_DIR/cover.png
TMP_TEMP_PATH=$TMP_DIR/temp.png
if [[ ! -d $TMP_DIR ]]; then
mkdir -p $TMP_DIR
fi
ART_FROM_SPOTIFY="$(playerctl -p %any,spotify metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g')"
ART_FROM_BROWSER="$(playerctl -p %any,mpd,firefox,chromium,brave metadata mpris:artUrl | sed -e 's/file:\/\///g')"
if [[ $(playerctl -p spotify,%any,firefox,chromium,brave,mpd metadata mpris:artUrl) ]]; then
curl -s "$ART_FROM_SPOTIFY" --output $TMP_TEMP_PATH
elif [[ -n $ART_FROM_BROWSER ]]; then
cp $ART_FROM_BROWSER $TMP_TEMP_PATH
else
cp $HOME/.config/eww/assets/fallback.png $TMP_TEMP_PATH
fi
cp $TMP_TEMP_PATH $TMP_COVER_PATH
# an epic effekt
# convert $TMP_TEMP_PATH -alpha set -channel A -evaluate multiply 1.0 $TMP_COVER_PATH
# convert $TMP_TEMP_PATH -gravity center +repage -alpha set -channel A \
# -sparse-color Barycentric '%[fx:w*2/32],0 transparent %[fx:w+0.5],0 opaque' \
# -evaluate multiply 0.45 \
# $TMP_COVER_PATH
}
echo_song_art_url () {
echo "$HOME/.cache/eww/cover.png"
}
if [[ $1 == "echo" ]]; then
echo_song_art_url
fi
if [[ $1 == "get" ]]; then
get_song_art
fi

36
eww/scripts/music/songdata.sh Executable file
View file

@ -0,0 +1,36 @@
#!/usr/bin/env bash
capitalize () {
toshow="$1"
maxlen="$2"
sufix=""
if test $(echo $toshow | wc -c) -ge $maxlen ; then
sufix=" ..."
fi
echo "${toshow:0:$maxlen}$sufix"
}
withSafe () {
local txt="$1"
local safe="$2"
if [[ $txt == "" ]]; then
echo $safe
else
echo $txt
fi
}
if [[ $1 == "title" ]]; then
capitalize "$(playerctl metadata --format "{{title}}" || echo "Nothing playing")" 18
fi
if [[ $1 == "artist" ]]; then
withSafe "$(capitalize "$(playerctl metadata --format "{{artist}}" || echo "No artist")" 18)" "No artist detected"
fi
if [[ $1 == "status" ]]; then
playerctl status || echo 'Paused'
fi

101
eww/scripts/network.sh Executable file
View file

@ -0,0 +1,101 @@
#!/bin/bash
symbol() {
[ $(cat /sys/class/net/w*/operstate) = down ] && echo&& exit
echo
}
name() {
iwgetid -r
}
cut () {
toshow="$1"
maxlen="$2"
sufix=""
if test $(echo $toshow | wc -c) -ge $maxlen ; then
sufix=" ..."
fi
echo "${toshow:0:$maxlen}$sufix"
}
[ "$1" = "icon" ] && symbol
if [[ $1 == "ssid" ]]; then
ssid=$(name)
if [[ "$ssid" == "" ]]; then
cut "Disconnected" 10
else
cut "$ssid" 10
fi
fi
if [[ $1 == "name" || $1 == "class" ]]; then
wifiname=$(name)
if [[ $wifiname == "" ]]; then
if [[ $1 == "name" ]]; then
echo "Disconnected"
elif [[ $1 == "class" ]]; then
echo "disconnected"
fi
else
if [[ $1 == "name" ]]; then
echo "Connected to $wifiname"
elif [[ $1 == "class" ]]; then
echo "connected"
fi
fi
fi
if [[ $1 == "status" ]]; then
name=$(name)
if [[ $name != "" ]]; then
echo "Connected"
else
echo "Disconnected"
fi
fi
if [[ $1 == "disconnect" ]]; then
wifiname=$(nmcli d | grep wifi | sed 's/^.*wifi.*connected//g' | xargs)
nmcli con down id "${wifiname}"
fi
if [[ $1 == "connect" ]]; then
nmcli con up ifname "$(/usr/bin/ls /sys/class/ieee80211/*/device/net/)"
fi
if [[ $1 == "toggle" ]]; then
name=$(name)
if [[ "$name" == "" ]]; then
nmcli con up ifname "$(/usr/bin/ls /sys/class/ieee80211/*/device/net/)"
else
wifiname=$(nmcli d | grep wifi | sed 's/^.*wifi.*connected//g' | xargs)
nmcli con down id "${wifiname}"
fi
fi
radio_status () {
radio_status=$(nmcli radio wifi)
if [[ $radio_status == "enabled" ]]; then
echo "on"
else
echo "off"
fi
}
if [[ $1 == "radio-status" ]]; then
radio_status
fi
if [[ $1 == "toggle-radio" ]]; then
stat=$(radio_status)
if [[ $stat == "on" ]]; then
nmcli radio wifi off
else
nmcli radio wifi on
fi
fi

12
eww/scripts/pfp.sh Executable file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
declare -a profiles_photos=("$HOME/.face.jpg" "$HOME/.face.png")
for pfp in ${profiles_photos[@]}; do
if test -f $pfp; then
echo $pfp
exit 0
fi
done
echo $HOME/.config/dk/eww/assets/default-pfp.png

42
eww/scripts/ram.sh Executable file
View file

@ -0,0 +1,42 @@
#!/usr/bin/env bash
percentage () {
local val=$(echo $1 | tr '%' ' ' | awk '{print $1}')
local icon1=$2
local icon2=$3
local icon3=$4
local icon4=$5
if [ "$val" -le 15 ]; then
echo $icon1
elif [ "$val" -le 30 ]; then
echo $icon2
elif [ "$val" -le 60 ]; then
echo $icon3
else
echo $icon4
fi
}
get_ram () {
free -m | grep Mem | awk '{print ($3/$2)*100}' | tr '.' ' ' | awk '{print $1}'
}
get_percent () {
echo $(get_ram)%
}
get_class () {
local percent=$(get_percent)
echo $(percentage "$percent" "yellow" "magenta" "purple" "red")
}
if [[ $1 == "ram" ]]; then
get_ram
fi
if [[ $1 == "percent" ]]; then
get_percent
fi
if [[ $1 == "class" ]]; then
get_class
fi

70
eww/scripts/redshift Executable file
View file

@ -0,0 +1,70 @@
#!/usr/bin/env bash
cache_file=$HOME/.cache/eww/services/redshift_state
initial_hook () {
if [ ! -d $(dirname $cache_file) ]; then
mkdir -p $(dirname $cache_file)
fi
if [ ! -f $cache_file ]; then
echo off > $cache_file
fi
}
get_state () {
# check if redshift is running
cat $cache_file
}
restore () {
local state=$(get_state)
if [[ $state == "on" ]]; then
enable_redshift
else
disable_redshift
fi
}
disable_redshift () {
redshift -x 2>&1 > /dev/null
# saving state
echo off > $cache_file
}
enable_redshift () {
redshift -x 2>&1 > /dev/null
redshift -O 5000 2>&1 > /dev/null
# saving new state
echo on > $cache_file
}
toggle () {
local state=$(get_state)
if [[ $state == "on" ]]; then
disable_redshift
else
enable_redshift
fi
}
initial_hook
if [[ $1 == "state" ]]; then
get_state
fi
if [[ $1 == "enable" ]]; then
enable_redshift
fi
if [[ $1 == "disable" ]]; then
disable_redshift
fi
if [[ $1 == "toggle" ]]; then
toggle
fi
if [[ $1 == "restore" ]]; then
restore
fi

34
eww/scripts/screensht Executable file
View file

@ -0,0 +1,34 @@
#!/usr/bin/env bash
TMP_PATH="$HOME/.cache/eww/tmp-screenshot.png"
report () {
xclip -selection clipboard -target image/png -i $TMP_PATH
notify-send -i $TMP_PATH -a Screenshot "Screenshot" "Screenshot copied successfully"
}
recollect () {
rm $TMP_PATH
}
full () {
maim $TMP_PATH
}
area () {
maim --select $TMP_PATH
}
if [[ $1 == "full" ]]; then
full
report
recollect
fi
if [[ $1 == "area" ]]; then
area
report
recollect
fi
exit 0

39
eww/scripts/temp.sh Executable file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env bash
# thanks to rxyhn
path () {
local temp_path=null
for i in /sys/class/hwmon/hwmon*/temp*_input;
do
temp_path="$(echo "$(<$(dirname $i)/name): $(cat ${i%_*}_label 2>/dev/null ||
echo $(basename ${i%_*})) $(readlink -f $i)");"
label="$(echo $temp_path | awk '{print $2}')"
if [ "$label" = "Package" ];
then
echo ${temp_path} | awk '{print $5}' | tr -d ';\n'
exit;
fi
done
}
get () {
local path=$(path)
if [[ $path == "" ]]; then
path="/sys/class/thermal/thermal_zone0/temp"
fi
local max_temp=100
local temp=$(cat $path)
jq -n $(jq -n $temp/1000)/$max_temp*100
}
_ () {
${@}
exit 0
}
if [[ $1 == "get" ]]; then
_ get
fi

8
eww/scripts/user.sh Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env bash
name () {
username=$(whoami)
echo ${username^}
}
name

93
eww/scripts/volume.sh Executable file
View file

@ -0,0 +1,93 @@
#!/bin/bash
# @requires: pactl
#SINK=$(pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1)
SINK="@DEFAULT_SINK@"
percentage () {
local val=$(echo $1 | tr '%' ' ' | awk '{print $1}')
local icon1=$2
local icon2=$3
local icon3=$4
local icon4=$5
if [ "$val" -le 15 ]; then
echo $icon1
elif [ "$val" -le 30 ]; then
echo $icon2
elif [ "$val" -le 60 ]; then
echo $icon3
else
echo $icon4
fi
}
is_muted () {
pacmd list-sinks | awk '/muted/ { print $2 }'
}
get_percentage () {
local muted=$(is_muted)
if [[ $muted == 'yes' ]]; then
echo 0%
else
vol=$(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | awk '{print $5}' | tr % " ")
echo "${vol}%"
fi
}
get_icon () {
local vol=$(get_percentage)
if [[ $vol == "0%" ]]; then
echo "婢"
else
echo $(percentage "$vol" "" "" "墳" "")
fi
}
get_class () {
local vol=$(get_percentage)
if [[ $vol == "0%" ]]; then
echo "red"
else
echo $(percentage "$vol" "red" "magenta" "yellow" "blue")
fi
}
get_vol () {
#local percent=$(get_percentage)
#echo $percent | tr -d '%'
echo $(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | awk '{print $5}' | tr % " ")
}
if [[ $1 == "icon" ]]; then
get_icon
fi
if [[ $1 == "class" ]]; then
get_class
fi
if [[ $1 == "percentage" ]]; then
get_percentage
fi
if [[ $1 == "vol" ]]; then
get_vol
fi
if [[ $1 == "muted" ]]; then
is_muted
fi
if [[ $1 == "toggle-muted" ]]; then
pactl set-sink-mute $SINK toggle
fi
if [[ $1 == "set" ]]; then
val=$(echo $2 | tr '.' ' ' | awk '{print $1}')
if test $val -gt 100; then
val=100
fi
pactl set-sink-volume $SINK $val%
fi

77
eww/scripts/volume.sh.bak Executable file
View file

@ -0,0 +1,77 @@
#!/usr/bin/env bash
VOLUME=$(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | awk '{print $5}' | tr % " ")
function icon {
if [[ $VOLUME -ge 66 ]]; then echo '󰕾'
elif [[ $VOLUME -ge 33 ]]; then echo '󰖀'
elif [[ $VOLUME -ge 1 ]]; then echo '󰕿'
else echo '󰝟'
fi
}
function level {
echo $(pactl get-sink-volume @DEFAULT_SINK@ | grep Volume | awk '{print $5}' | tr % " ")
}
function lower {
pactl set-sink-volume @DEFAULT_SINK@ -5%
update
}
function raise {
pactl set-sink-volume @DEFAULT_SINK@ +5%
update
}
function update {
eww update volume="$(get)"
~/.config/eww/scripts/osd $(icon) $(level)
}
function type_icon {
SINK=$(pactl get-default-sink)
if [[ $SINK == *'bluez_output'* ]]; then echo "󰋋"
else echo "󰓃"
fi
}
function mute_state {
STATE=$(pactl get-source-mute @DEFAULT_SOURCE@ | awk '{print $2}')
if [[ $STATE == 'no' ]]; then echo 'off'
else echo 'on'; fi
}
function mute_icon {
STATE=$(mute_state)
if [[ $STATE == 'off' ]]; then echo '󰍬'
else echo '󰍭'; fi
}
function mute_toggle {
pactl set-source-mute @DEFAULT_SOURCE@ toggle
eww update volume="$(get)"
}
function set {
pactl set-sink-volume @DEFAULT_SINK@ $1"%"
eww update volume="$(get)"
}
function get {
echo "{
\"level\": \"$(level)\",
\"icon\": \"$(icon)\",
\"type_icon\": \"$(type_icon)\",
\"mute\": {
\"state\": \"$(mute_state)\",
\"icon\": \"$(mute_icon)\"
}
}"
}
if [[ $1 == 'mute_toggle' ]]; then mute_toggle; fi
if [[ $1 == 'down' ]]; then lower; fi
if [[ $1 == 'up' ]]; then raise; fi
if [[ $1 == 'set' ]]; then set $2; fi
if [[ $1 == 'get' ]]; then get; fi

46
eww/variables.yuck Normal file
View file

@ -0,0 +1,46 @@
(defpoll network_status :interval "1s" "~/.config/eww/scripts/network.sh status")
(defpoll network_icon :interval "1s" "~/.config/eww/scripts/network.sh icon")
(defpoll network_radio :interval "1s" "~/.config/eww/scripts/network.sh radio-status")
(defpoll network_ssid :interval "1s" "~/.config/eww/scripts/network.sh ssid")
(defpoll volume_icon :interval "1s" "~/.config/eww/scripts/volume.sh icon")
(defpoll volume :interval "1s" "~/.config/eww/scripts/volume.sh percentage")
(defpoll volume_value :interval "1s" "~/.config/eww/scripts/volume.sh vol")
(defpoll is_muted :interval "1s" "~/.config/eww/scripts/volume.sh muted")
(defpoll mic :interval "1s" "~/.config/eww/scripts/mic get")
(defpoll mic_status :interval "1s" "~/.config/eww/scripts/mic status")
(defpoll bluetooth_state :interval "1s" "~/.config/eww/scripts/bluetooth state")
(defpoll redshift_state :interval "1s" "~/.config/eww/scripts/redshift state")
(defpoll pfp :interval "1s" "~/.config/eww/scripts/pfp.sh")
(defpoll rawuser :interval "30s" "whoami")
(defpoll username :interval "30s" "~/.config/eww/scripts/user.sh")
(defpoll hostname :interval "30s" "cat /etc/hostname")
(defpoll uptime :interval "30s" "uptime -p")
(defpoll br_icon :interval "1s" "~/.config/eww/scripts/brightness.sh icon")
(defpoll br :interval "1s" "~/.config/eww/scripts/brightness.sh br")
(defpoll music_pic :interval "2s" "~/.config/eww/scripts/music/songart.sh get")
(defpoll music_url :interval "2s" "~/.config/eww/scripts/music/songart.sh echo")
(defpoll music_title :interval "1s" "~/.config/eww/scripts/music/songdata.sh title")
(defpoll music_artist :interval "1s" "~/.config/eww/scripts/music/songdata.sh artist")
(defpoll music_status :interval "1s" "~/.config/eww/scripts/music/songdata.sh status")
(defpoll completeday :interval "1h" "date '+%A, %d %B'")
(defpoll lithour :interval "30m" "date +%H")
(defpoll litmin :interval "30s" "date +%M")
(defpoll calendar_day :interval "10h" "date '+%d'")
(defpoll calendar_month :interval "10h" "date '+%m")
(defpoll calendar_year :interval "10h" "date '+%Y'")
(defpoll date :interval "30s" "date '+%d %b, %I:%M %p'")
(defpoll shortday :interval "1h" "date '+%d %b %y'")
(defpoll weekday :interval "24h" "date +%A")
(defpoll cpu :interval "3s" "~/.config/eww/scripts/cpu.sh")
(defpoll ram :interval "3s" "~/.config/eww/scripts/ram.sh ram")
(defpoll temp :interval "3s" "~/.config/eww/scripts/temp.sh get")
(defpoll disk :interval "3s" "~/.config/eww/scripts/disk.sh")