chore: eww configs removed
This commit is contained in:
parent
ff3922b048
commit
e44592ddca
42 changed files with 1762 additions and 525 deletions
BIN
configs/hyprland/eww/assets/perfil.png
Normal file
BIN
configs/hyprland/eww/assets/perfil.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
Binary file not shown.
Before Width: | Height: | Size: 39 KiB |
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
Binary file not shown.
Before Width: | Height: | Size: 134 KiB |
Binary file not shown.
Before Width: | Height: | Size: 16 KiB |
|
@ -1,21 +0,0 @@
|
||||||
$background-bar: rgb(68, 47, 173);
|
|
||||||
$background: rgba(11, 10, 16, 1);
|
|
||||||
$widget-background: rgba(17, 16, 25, 1);
|
|
||||||
$shadow: rgba(0, 0, 0, 0.3);
|
|
||||||
$grey: rgba(105, 101, 124, 0.7);
|
|
||||||
|
|
||||||
$black: #282A36;
|
|
||||||
$red: #f1a7b3;
|
|
||||||
$green: #AAC5A0;
|
|
||||||
$yellow: #f6d6b3;
|
|
||||||
$orange: #f2c798;
|
|
||||||
$blue: #A8C5E6;
|
|
||||||
$blue2: #e1eefd;
|
|
||||||
$purple: #f1a7e2;
|
|
||||||
$purple2: #ecdbee;
|
|
||||||
$teal: #72B69C;
|
|
||||||
$white: #eae9f0;
|
|
||||||
|
|
||||||
$primary: #d3e8ff;
|
|
||||||
$secondary: #f1a7e2;
|
|
||||||
$tertiary: #93f0e2;
|
|
|
@ -1,57 +0,0 @@
|
||||||
.bar {
|
|
||||||
padding: 0.1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.works {
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: normal;
|
|
||||||
margin: 5px 0px 0px 20px;
|
|
||||||
background-color: #0f0f17;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidestuff slider {
|
|
||||||
all: unset;
|
|
||||||
color: #ffd5cd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
background-color: #D35D6E;
|
|
||||||
color: #000000;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: #4e4e4e;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 10px;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-ram {
|
|
||||||
font-size: large;
|
|
||||||
}
|
|
||||||
|
|
||||||
.workspaces button:hover {
|
|
||||||
color: #D35D6E;
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
.works {
|
|
||||||
font-size: 18px;
|
|
||||||
// margin: 10px 0px 0px 10px;
|
|
||||||
background-color: rgba(00, 00, 00, 0.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ws-btn {
|
|
||||||
margin: 0px 7px 0px 0px;
|
|
||||||
}
|
|
140
configs/hyprland/eww/bar/bar.scss
Normal file
140
configs/hyprland/eww/bar/bar.scss
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
* {
|
||||||
|
all: unset; //Unsets everything so you can style everything from scratch
|
||||||
|
}
|
||||||
|
|
||||||
|
//Global Styles
|
||||||
|
.bar-widget {
|
||||||
|
@include window;
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.apps {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
padding: .5rem;
|
||||||
|
margin: 0 -.5rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.uptime {
|
||||||
|
font-size: .9rem;
|
||||||
|
color: $fg-alt;
|
||||||
|
padding: .2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.launcher {
|
||||||
|
color: $green;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
padding: 0 .30rem 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spotify {
|
||||||
|
color: $green;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.central-icon {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bell {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
color: $yellow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.firefox {
|
||||||
|
color: $cyan;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
padding: 0 .2rem 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
border-radius: 1rem;
|
||||||
|
margin: 0 0 0 -.3rem;
|
||||||
|
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
&.current {color: $green;}
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
&.empty {
|
||||||
|
color: $black;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.occupied {
|
||||||
|
color: lighten($color: $fg-alt2, $amount: 10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.current {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
&.empty {
|
||||||
|
color: lighten($color: $black, $amount: 5%);
|
||||||
|
}
|
||||||
|
&.occupied {
|
||||||
|
color: lighten($color: $black, $amount: 20%);
|
||||||
|
}
|
||||||
|
&.current {
|
||||||
|
color: darken($color: $green, $amount: 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
.volume-bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: $black;
|
||||||
|
border-radius: 1rem;
|
||||||
|
min-width: 0.4rem;
|
||||||
|
min-height: 3rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
box-shadow: 0 0 2px 1px rgba(black, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume-bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background: $green;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock {
|
||||||
|
font-family: "SF Pro";
|
||||||
|
font-size: 1.4rem;
|
||||||
|
|
||||||
|
&.hour {
|
||||||
|
font-weight: bold;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.minute {
|
||||||
|
color: $fg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.separator {
|
||||||
|
color: $fg-alt;
|
||||||
|
}
|
||||||
|
.timebox {
|
||||||
|
font-size: 0.5rem;
|
||||||
|
|
||||||
|
&.magenta {
|
||||||
|
color: $magenta;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.green {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.yellow {
|
||||||
|
color: $yellow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
257
configs/hyprland/eww/bar/bar.yuck
Normal file
257
configs/hyprland/eww/bar/bar.yuck
Normal file
|
@ -0,0 +1,257 @@
|
||||||
|
(defwidget bar []
|
||||||
|
(box :class "bar-widget" :orientation "v" :space-evenly true :halign "center"
|
||||||
|
(start)
|
||||||
|
(center)
|
||||||
|
(apps)
|
||||||
|
(and)
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget start []
|
||||||
|
(box :class "start" :orientation "v" :halign "center" :valign "start"
|
||||||
|
(launcher)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget center []
|
||||||
|
(box :class "center" :halign "center" :orientation "v"
|
||||||
|
(workspaces)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget apps []
|
||||||
|
(box :class "apps" :spacing 10 :space-evenly false :valign "end" :halign "center" :orientation "v"
|
||||||
|
(volume)
|
||||||
|
(spotify)
|
||||||
|
(firefox)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget and []
|
||||||
|
(box :class "" :valign "end":orientation "v" :space-evenly false :spacing 15
|
||||||
|
(bell)
|
||||||
|
(central-icon)
|
||||||
|
(clock)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget launcher []
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(button
|
||||||
|
:class "launcher"
|
||||||
|
:valign "start"
|
||||||
|
:onclick "actions --launcher"
|
||||||
|
:width 25
|
||||||
|
"" )))
|
||||||
|
|
||||||
|
(defwidget spotify []
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(button
|
||||||
|
:class "launcher"
|
||||||
|
:valign "start"
|
||||||
|
:onclick "env LD_PRELOAD=/usr/lib/spotify-adblock.so spotify --uri=%U &"
|
||||||
|
:width 25
|
||||||
|
"" )))
|
||||||
|
|
||||||
|
(defwidget firefox []
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(button
|
||||||
|
:class "firefox"
|
||||||
|
:valign "start"
|
||||||
|
:onclick "firefox &"
|
||||||
|
:width 25
|
||||||
|
"" )))
|
||||||
|
|
||||||
|
(defwidget central-icon []
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(button
|
||||||
|
:class "central-icon"
|
||||||
|
:valign "start"
|
||||||
|
:onclick "eww open --toggle central"
|
||||||
|
:width 20
|
||||||
|
"" )))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget bell []
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(button
|
||||||
|
:class "bell"
|
||||||
|
:valign "start"
|
||||||
|
:onclick "eww open --toggle notifications"
|
||||||
|
:width 20
|
||||||
|
"" )))
|
||||||
|
|
||||||
|
(defwidget workspaces []
|
||||||
|
(box
|
||||||
|
:class "workspaces"
|
||||||
|
:halign "start"
|
||||||
|
:spacing 10
|
||||||
|
:orientation "v"
|
||||||
|
:space-evenly false
|
||||||
|
(for workspace in hyprland
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:onscroll "echo {} | sed -e 's/up/-1/g' -e 's/down/+1/g' | xargs hyprctl dispatch workspace"
|
||||||
|
:halign "center"
|
||||||
|
(button
|
||||||
|
:class "${workspace.current ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
|
||||||
|
:onclick "hyprctl dispatch workspace ${workspace.id}"
|
||||||
|
(button
|
||||||
|
:width 25
|
||||||
|
:class "icon ${workspace.current ? "current" : ""} ${workspace.windows > 0 ? "occupied" : "empty"}"
|
||||||
|
{workspace.current ? "" : ""}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget music []
|
||||||
|
(eventbox
|
||||||
|
:onhover "eww update music-rev=true"
|
||||||
|
:onhoverlost "eww update music-rev=false"
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:spacing 10
|
||||||
|
:orientation "v"
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "musicbar-art"
|
||||||
|
:orientation "v"
|
||||||
|
:onclick "eww open-many --toggle player-closer player"
|
||||||
|
:style "background-image: url('${music-art}');"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(label
|
||||||
|
:class "musicbar-title"
|
||||||
|
:orientation "v"
|
||||||
|
:limit-height 10
|
||||||
|
:limit-width 35
|
||||||
|
:text music-title
|
||||||
|
)
|
||||||
|
(revealer
|
||||||
|
:transition "slideright"
|
||||||
|
:reveal music-rev
|
||||||
|
:duration "500ms"
|
||||||
|
(box
|
||||||
|
:spacing 10
|
||||||
|
:orientation "h"
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "musicbar-previous-icon"
|
||||||
|
:onclick "./scripts/mediacontrol --previous"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "musicbar-toggle-icon"
|
||||||
|
:onclick "./scripts/mediacontrol --toggle"
|
||||||
|
music-toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "musicbar-next-icon"
|
||||||
|
:onclick "./scripts/mediacontrol --next"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget volume []
|
||||||
|
(eventbox
|
||||||
|
:onhover "eww update volume_rev=true"
|
||||||
|
:onhoverlost "eww update volume_rev=false"
|
||||||
|
(box
|
||||||
|
:class "volume"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(revealer
|
||||||
|
:class "volume-bar"
|
||||||
|
:transition "slideup"
|
||||||
|
:reveal volume_rev
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(scale
|
||||||
|
:orientation "v"
|
||||||
|
:tooltip {volume == "muted" ? "Muted" : "${volume}%"}
|
||||||
|
:value {volume == "muted" ? "0" : volume}
|
||||||
|
:min 0
|
||||||
|
:max 101
|
||||||
|
:onchange "pamixer -u && pamixer --set-volume {}"
|
||||||
|
:flipped true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:onscroll "echo {} | sed -e 's/up/--up/g' -e 's/down/--down/g' | xargs volume"
|
||||||
|
(button
|
||||||
|
:class "volume icon"
|
||||||
|
:style {volume == 0 || volume == "muted" ? "color: #dd6777;" : "color: #cacaca;"}
|
||||||
|
:tooltip {volume == "muted" ? "Muted" : "${volume}%" }
|
||||||
|
:onclick "volume --toggle"
|
||||||
|
{volume == 0 || volume == "muted" ? "" :
|
||||||
|
volume < 30 ? "" :
|
||||||
|
volume < 75 ? "" : ""}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget clock []
|
||||||
|
(box
|
||||||
|
:class "clock"
|
||||||
|
:orientation "v"
|
||||||
|
:space-evenly false
|
||||||
|
:spacing 4
|
||||||
|
:halign "center"
|
||||||
|
:valign "end"
|
||||||
|
(label
|
||||||
|
:class "clock hour"
|
||||||
|
:text hour
|
||||||
|
)
|
||||||
|
(box :class "timebox" :spacing 4
|
||||||
|
)
|
||||||
|
(label
|
||||||
|
:class "clock minute"
|
||||||
|
:text minute)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:exclusive true
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "0%"
|
||||||
|
:height "99%"
|
||||||
|
:width "4%"
|
||||||
|
:anchor "center left")
|
||||||
|
:reserve (struts :side "top" :distance "4%")
|
||||||
|
(bar))
|
|
@ -1,7 +0,0 @@
|
||||||
@import "assets/scss/colors.scss";
|
|
||||||
@import "assets/scss/index.scss";
|
|
||||||
@import "assets/scss/widgets/workspaces.scss";
|
|
||||||
|
|
||||||
* {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
; variables :
|
|
||||||
(deflisten workspace "scripts/workspace")
|
|
||||||
(deflisten music :initial ""
|
|
||||||
"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
|
|
||||||
(defpoll volume :interval "1s"
|
|
||||||
"scripts/getvol")
|
|
||||||
(defpoll time :interval "10s"
|
|
||||||
"date '+%H:%M %b %d, %Y'")
|
|
||||||
|
|
||||||
(defwidget workspaces []
|
|
||||||
(literal
|
|
||||||
:content workspace
|
|
||||||
:valign "center"))
|
|
||||||
|
|
||||||
(defwidget bar []
|
|
||||||
(centerbox :orientation "w"
|
|
||||||
(workspaces)
|
|
||||||
(music)
|
|
||||||
(sidestuff)))
|
|
||||||
|
|
||||||
(defwidget sidestuff []
|
|
||||||
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
|
|
||||||
(metric :label "🔊"
|
|
||||||
:value volume
|
|
||||||
:onchange "amixer -D pulse sset Master {}%")
|
|
||||||
(metric :label ""
|
|
||||||
:value {EWW_RAM.used_mem_perc}
|
|
||||||
:onchange "")
|
|
||||||
(metric :label "💾"
|
|
||||||
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
|
|
||||||
:onchange "")
|
|
||||||
time))
|
|
||||||
|
|
||||||
(defwidget music []
|
|
||||||
(box :class "music"
|
|
||||||
:orientation "h"
|
|
||||||
:space-evenly false
|
|
||||||
:halign "center"
|
|
||||||
{music != "" ? "🎵${music}" : ""}))
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget metric [label value onchange]
|
|
||||||
(box :orientation "h"
|
|
||||||
:class "metric"
|
|
||||||
:space-evenly false
|
|
||||||
(box :class "label" label)
|
|
||||||
(scale :min 0
|
|
||||||
:max 101
|
|
||||||
:active {onchange != ""}
|
|
||||||
:value value
|
|
||||||
:onchange onchange)))
|
|
||||||
|
|
||||||
(defwidget left []
|
|
||||||
(box :orientation "h"
|
|
||||||
:space-evenly false
|
|
||||||
:halign "end"
|
|
||||||
:class "left_modules"
|
|
||||||
(bright)
|
|
||||||
(volume)
|
|
||||||
(wifi)
|
|
||||||
(sep)
|
|
||||||
(bat)
|
|
||||||
(mem)
|
|
||||||
(sep)
|
|
||||||
(clock_module)))
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget right []
|
|
||||||
(box :orientation "h"
|
|
||||||
:space-evenly false
|
|
||||||
:halign "start"
|
|
||||||
:class "right_modules"
|
|
||||||
(workspaces)))
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget center []
|
|
||||||
(box :orientation "h"
|
|
||||||
:space-evenly false
|
|
||||||
:halign "center"
|
|
||||||
:class "center_modules"
|
|
||||||
(music)))
|
|
||||||
|
|
||||||
(defwindow bar
|
|
||||||
:monitor 0
|
|
||||||
:geometry
|
|
||||||
(geometry
|
|
||||||
:anchor "top center"
|
|
||||||
:y "5px"
|
|
||||||
:width "99%"
|
|
||||||
:height "36px"
|
|
||||||
)
|
|
||||||
:stacking "fg"
|
|
||||||
:exclusive "true"
|
|
||||||
:focusable "false"
|
|
||||||
(bar)
|
|
||||||
)
|
|
|
@ -1,9 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
EWW="eww -c $HOME/.config/eww/bar"
|
|
||||||
|
|
||||||
run_eww() {
|
|
||||||
${EWW} open bar
|
|
||||||
}
|
|
||||||
|
|
||||||
run_eww
|
|
|
@ -1,17 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
battery() {
|
|
||||||
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
|
||||||
cat /sys/class/power_supply/${BAT}/capacity
|
|
||||||
}
|
|
||||||
battery_stat() {
|
|
||||||
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
|
||||||
cat /sys/class/power_supply/${BAT}/status
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ "$1" == "--bat" ]]; then
|
|
||||||
battery
|
|
||||||
elif [[ "$1" == "--bat-st" ]]; then
|
|
||||||
battery_stat
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
|
|
||||||
total="$(free -m | grep Mem: | awk '{ print $2 }')"
|
|
||||||
used="$(free -m | grep Mem: | awk '{ print $3 }')"
|
|
||||||
|
|
||||||
free=$(expr $total - $used)
|
|
||||||
|
|
||||||
if [ "$1" = "total" ]; then
|
|
||||||
echo $total
|
|
||||||
elif [ "$1" = "used" ]; then
|
|
||||||
echo $used
|
|
||||||
elif [ "$1" = "free" ]; then
|
|
||||||
echo $free
|
|
||||||
fi
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
|
|
@ -1,98 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# scripts by adi1090x
|
|
||||||
|
|
||||||
## Get data
|
|
||||||
STATUS="$(mpc status)"
|
|
||||||
COVER="/tmp/.music_cover.png"
|
|
||||||
MUSIC_DIR="$HOME/Music"
|
|
||||||
|
|
||||||
## Get status
|
|
||||||
get_status() {
|
|
||||||
if [[ $STATUS == *"[playing]"* ]]; then
|
|
||||||
echo ""
|
|
||||||
else
|
|
||||||
echo "奈"
|
|
||||||
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 ""
|
|
||||||
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
|
|
|
@ -1,92 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
calendar() {
|
|
||||||
LOCK_FILE="$HOME/.cache/eww-calendar.lock"
|
|
||||||
EWW_BIN="$HOME/.local/bin/eww/eww"
|
|
||||||
|
|
||||||
run() {
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar open calendar
|
|
||||||
}
|
|
||||||
|
|
||||||
# Open widgets
|
|
||||||
if [[ ! -f "$LOCK_FILE" ]]; then
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close system music_win audio_ctl
|
|
||||||
touch "$LOCK_FILE"
|
|
||||||
run && echo "ok good!"
|
|
||||||
else
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close calendar
|
|
||||||
rm "$LOCK_FILE" && echo "closed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
system() {
|
|
||||||
LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
|
|
||||||
EWW_BIN="$HOME/.local/bin/eww/eww"
|
|
||||||
|
|
||||||
run() {
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar open system
|
|
||||||
}
|
|
||||||
|
|
||||||
# Open widgets
|
|
||||||
if [[ ! -f "$LOCK_FILE_MEM" ]]; then
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close calendar music_win audio_ctl
|
|
||||||
touch "$LOCK_FILE_MEM"
|
|
||||||
run && echo "ok good!"
|
|
||||||
else
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close system
|
|
||||||
rm "$LOCK_FILE_MEM" && echo "closed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
music() {
|
|
||||||
LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
|
|
||||||
EWW_BIN="$HOME/.local/bin/eww/eww"
|
|
||||||
|
|
||||||
run() {
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar open music_win
|
|
||||||
}
|
|
||||||
|
|
||||||
# Open widgets
|
|
||||||
if [[ ! -f "$LOCK_FILE_SONG" ]]; then
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close system calendar
|
|
||||||
touch "$LOCK_FILE_SONG"
|
|
||||||
run && echo "ok good!"
|
|
||||||
else
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close music_win
|
|
||||||
rm "$LOCK_FILE_SONG" && echo "closed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
audio() {
|
|
||||||
LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
|
|
||||||
EWW_BIN="$HOME/.local/bin/eww/eww"
|
|
||||||
|
|
||||||
run() {
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar open audio_ctl
|
|
||||||
}
|
|
||||||
|
|
||||||
# Open widgets
|
|
||||||
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close system calendar music
|
|
||||||
touch "$LOCK_FILE_AUDIO"
|
|
||||||
run && echo "ok good!"
|
|
||||||
else
|
|
||||||
${EWW_BIN} -c $HOME/.config/eww/bar close audio_ctl
|
|
||||||
rm "$LOCK_FILE_AUDIO" && echo "closed"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if [ "$1" = "calendar" ]; then
|
|
||||||
calendar
|
|
||||||
elif [ "$1" = "system" ]; then
|
|
||||||
system
|
|
||||||
elif [ "$1" = "music" ]; then
|
|
||||||
music
|
|
||||||
elif [ "$1" = "audio" ]; then
|
|
||||||
audio
|
|
||||||
fi
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
status=$(nmcli g | grep -oE "disconnected")
|
|
||||||
essid=$(nmcli c | grep wlp2s0 | awk '{print ($1)}')
|
|
||||||
|
|
||||||
if [ $status ] ; then
|
|
||||||
icon=""
|
|
||||||
text=""
|
|
||||||
col="#575268"
|
|
||||||
|
|
||||||
else
|
|
||||||
icon=""
|
|
||||||
text="${essid}"
|
|
||||||
col="#a1bdce"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$1" == "--COL" ]]; then
|
|
||||||
echo $col
|
|
||||||
elif [[ "$1" == "--ESSID" ]]; then
|
|
||||||
echo $text
|
|
||||||
elif [[ "$1" == "--ICON" ]]; then
|
|
||||||
echo $icon
|
|
||||||
fi
|
|
||||||
|
|
|
@ -1,75 +0,0 @@
|
||||||
#! /bin/bash
|
|
||||||
|
|
||||||
#define icons for workspaces 1-9
|
|
||||||
ic=( 輸)
|
|
||||||
# ic=(0 1 2 3 4 5 6 7 8 9)
|
|
||||||
# ic=(0 一 二 三 四 五 六 七 八 九 〇)
|
|
||||||
|
|
||||||
#initial check for occupied workspaces
|
|
||||||
for num in $(hyprctl workspaces | grep ID | awk '{print $3}'); do
|
|
||||||
export o"$num"="$num"
|
|
||||||
done
|
|
||||||
|
|
||||||
#initial check for focused workspace
|
|
||||||
for num in $(hyprctl monitors | grep -B 4 "focused: yes" | awk 'NR==1{print $3}'); do
|
|
||||||
export f"$num"="$num"
|
|
||||||
export fnum=f"$num"
|
|
||||||
export mon=$(hyprctl monitors | grep -B 2 "\($num\)" | awk 'NR==1{print $2}')
|
|
||||||
done
|
|
||||||
|
|
||||||
workspaces() {
|
|
||||||
if [[ ${1:0:9} == "workspace" ]] && [[ ${1:11} != "special" ]]; then #set focused workspace
|
|
||||||
unset -v "$fnum"
|
|
||||||
num=${1:11}
|
|
||||||
export f"$num"="$num"
|
|
||||||
export fnum=f"$num"
|
|
||||||
|
|
||||||
elif [[ ${1:0:10} == "focusedmon" ]]; then #set focused workspace following monitor focus change
|
|
||||||
unset -v "$fnum"
|
|
||||||
string=${1:12}
|
|
||||||
num=${string##*,}
|
|
||||||
export mon=${string/,*/}
|
|
||||||
export f"$num"="$num"
|
|
||||||
export fnum=f"$num"
|
|
||||||
|
|
||||||
elif [[ ${1:0:13} == "moveworkspace" ]] && [[ ${1##*,} == "$mon" ]]; then #Set focused workspace following swapactiveworkspace
|
|
||||||
unset -v "$fnum"
|
|
||||||
string=${1:15}
|
|
||||||
num=${string/,*/}
|
|
||||||
export f"$num"="$num"
|
|
||||||
export fnum=f"$num"
|
|
||||||
|
|
||||||
elif [[ ${1:0:15} == "createworkspace" ]]; then #set Occupied workspace
|
|
||||||
num=${1:17}
|
|
||||||
export o"$num"="$num"
|
|
||||||
export onum=o"$num"
|
|
||||||
|
|
||||||
elif [[ ${1:0:16} == "destroyworkspace" ]]; then #unset unoccupied workspace
|
|
||||||
num=${1:18}
|
|
||||||
unset -v o"$num"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
module() {
|
|
||||||
echo "(eventbox :onscroll \"echo {} | sed -e 's/up/-1/g' -e 's/down/+1/g' | xargs hyprctl dispatch workspace\" \
|
|
||||||
(box :class \"works\" :orientation \"h\" :spacing 5 :space-evenly \"false\" :valign \"center\" \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 1\'\" :onrightclick \"hyprctl dispatch workspace 1 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o1$f1\" \"${ic[1]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 2\'\" :onrightclick \"hyprctl dispatch workspace 2 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o2$f2\" \"${ic[2]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 3\'\" :onrightclick \"hyprctl dispatch workspace 3 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o3$f3\" \"${ic[3]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 4\'\" :onrightclick \"hyprctl dispatch workspace 4 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o4$f4\" \"${ic[4]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 5\'\" :onrightclick \"hyprctl dispatch workspace 5 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o5$f5\" \"${ic[5]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 6\'\" :onrightclick \"hyprctl dispatch workspace 6 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o6$f6\" \"${ic[6]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 7\'\" :onrightclick \"hyprctl dispatch workspace 7 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o7$f7\" \"${ic[7]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 8\'\" :onrightclick \"hyprctl dispatch workspace 8 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o8$f8\" \"${ic[8]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 9\'\" :onrightclick \"hyprctl dispatch workspace 9 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o9$f9\" \"${ic[9]}\") \
|
|
||||||
(button :onclick \"hyprctl dispatch exec \'~/.config/hypr/themes/winter/scripts/workspace 10\'\" :onrightclick \"hyprctl dispatch workspace 10 && $HOME/.config/hypr/themes/winter/scripts/default_app\" :class \"ws-btn 0$o10$f10\" \"${ic[10]}\") \
|
|
||||||
)\
|
|
||||||
)"
|
|
||||||
}
|
|
||||||
|
|
||||||
module
|
|
||||||
|
|
||||||
socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r event; do
|
|
||||||
workspaces "$event"
|
|
||||||
module
|
|
||||||
done
|
|
242
configs/hyprland/eww/central/central.scss
Normal file
242
configs/hyprland/eww/central/central.scss
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
.central-widget {
|
||||||
|
@include window;
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 4rem;
|
||||||
|
min-width: 4rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
color: $fg;
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wm {
|
||||||
|
color: $fg-alt;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lock, .exit {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
background-color: $bg-alt;
|
||||||
|
padding: .7rem 1.2rem .7rem 1rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-info {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.music {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
|
||||||
|
border-radius: .4rem;
|
||||||
|
padding: .8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player {
|
||||||
|
font-family: "JetBrainsMono Nerd Font";
|
||||||
|
min-height: 1rem;
|
||||||
|
border-radius: .1rem;
|
||||||
|
margin: .1rem .8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-art {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 4rem;
|
||||||
|
min-width: 4rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-info {
|
||||||
|
border-radius: .4rem;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-title {
|
||||||
|
font-size: 1rem;
|
||||||
|
padding: .1rem 0;
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-artist {
|
||||||
|
color: $white;
|
||||||
|
padding: .2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-bar scale trough highlight {
|
||||||
|
background-image: linear-gradient(to right, $bg-alt, $green);
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: rgba($fg-alt, 0.3);
|
||||||
|
box-shadow: 0px 0px 2px 1px rgba(0, 0, 0, 0.5);
|
||||||
|
border-radius: .4rem;
|
||||||
|
min-height: .25rem;
|
||||||
|
min-width: 18rem;
|
||||||
|
margin: .2rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-position {
|
||||||
|
font-size: .9rem;
|
||||||
|
font-weight: 500;
|
||||||
|
color: $fg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-controls {
|
||||||
|
font-size: 5rem;
|
||||||
|
background-color: $bg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-toggle {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-previous,
|
||||||
|
.player-next {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: $fg-alt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-toggle:hover,
|
||||||
|
.player-previous:hover,
|
||||||
|
.player-next:hover {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
.player-shuffle,
|
||||||
|
.player-loop {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spotify-icon {
|
||||||
|
font-family: "Font Awesome 6 Brands";
|
||||||
|
font-size: 1.25rem;
|
||||||
|
color: $green;
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
.box-control {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
padding: 1.5rem;
|
||||||
|
margin: 1rem 1.5rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
font-size: 4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
font-size: 1.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeboxes {
|
||||||
|
font-size: .6rem;
|
||||||
|
margin: -.1rem 0;
|
||||||
|
|
||||||
|
.magenta {
|
||||||
|
color: $magenta;
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
.yellow {
|
||||||
|
color: $yellow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.calendar {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
background-color: $bg-alt;
|
||||||
|
border-radius: .4rem;
|
||||||
|
padding: .4rem;
|
||||||
|
|
||||||
|
calendar {
|
||||||
|
|
||||||
|
&.button {
|
||||||
|
color: $fg-alt;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: $black;
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:selected {
|
||||||
|
color: $green;
|
||||||
|
text-shadow: 0 0 3px lighten($color: $bg-alt, $amount: 10%);
|
||||||
|
border-radius: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.header {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.highlight {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:indeterminate {
|
||||||
|
color: $gray;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.system {
|
||||||
|
.progress {
|
||||||
|
background-color: $bg-alt;
|
||||||
|
padding: .4rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
|
||||||
|
circular-progress {
|
||||||
|
background-color: $black;
|
||||||
|
|
||||||
|
&.ram {
|
||||||
|
color: $magenta;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.cpu {
|
||||||
|
color: $yellow;
|
||||||
|
label { margin-left: 1px;}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.temp {
|
||||||
|
color: $red;
|
||||||
|
label { margin: .2rem .5rem .2rem .2rem;}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
&.disk {
|
||||||
|
color: $green;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
padding: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
272
configs/hyprland/eww/central/central.yuck
Normal file
272
configs/hyprland/eww/central/central.yuck
Normal file
|
@ -0,0 +1,272 @@
|
||||||
|
(defwidget central []
|
||||||
|
(box :class "central-widget" :space-evenly false :orientation "v" :spacing 10
|
||||||
|
(box-profile)
|
||||||
|
(box-calendar)
|
||||||
|
(box-system)
|
||||||
|
(music)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget box-profile []
|
||||||
|
(box
|
||||||
|
:class "box-profile"
|
||||||
|
:space-evenly false
|
||||||
|
:hexpand false
|
||||||
|
:spacing 10
|
||||||
|
(box :class "profile"
|
||||||
|
:style "background-image: url('${perfil}')"
|
||||||
|
:valign "start"
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:class "box-about"
|
||||||
|
:halign "start"
|
||||||
|
:spacing 5
|
||||||
|
(box
|
||||||
|
:orientation "v" :space-evenly false :halign "start"
|
||||||
|
(label :class "name" :halign "start" :text {name})
|
||||||
|
(label :class "wm" :halign "start" :text {wm})
|
||||||
|
(box
|
||||||
|
(label :class "uptime" :text `Uptime: ${uptime}`)
|
||||||
|
)))
|
||||||
|
(box
|
||||||
|
:halign "end"
|
||||||
|
:valign "center"
|
||||||
|
:hexpand true
|
||||||
|
:spacing 10
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "lock"
|
||||||
|
:onclick "poweroff&"
|
||||||
|
""
|
||||||
|
))
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "exit"
|
||||||
|
:onclick "eww open --toggle powercontrol && eww close central"
|
||||||
|
"⏻"
|
||||||
|
)))))
|
||||||
|
|
||||||
|
(defwidget box-system []
|
||||||
|
(box
|
||||||
|
:class "system"
|
||||||
|
:spacing 10
|
||||||
|
(ram)
|
||||||
|
(cpu)
|
||||||
|
(temp)
|
||||||
|
(disk)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget system_progress [data icon css tip]
|
||||||
|
(box
|
||||||
|
:class "progress"
|
||||||
|
(circular-progress
|
||||||
|
:class css
|
||||||
|
:value data
|
||||||
|
:thickness 7
|
||||||
|
:tooltip tip
|
||||||
|
(overlay
|
||||||
|
:valign "center"
|
||||||
|
(label
|
||||||
|
:class "icon"
|
||||||
|
:text icon
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget cpu []
|
||||||
|
(system_progress
|
||||||
|
:css "cpu"
|
||||||
|
:tip "CPU ${round(EWW_CPU.avg,0)}%"
|
||||||
|
:data {round(EWW_CPU.avg, 0)}
|
||||||
|
:icon ""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget ram []
|
||||||
|
(system_progress
|
||||||
|
:css "ram"
|
||||||
|
:tip "RAM ${round(EWW_RAM.used_mem / 1048576, 2)}MB"
|
||||||
|
:data {round(EWW_RAM.used_mem_perc, 0)}
|
||||||
|
:icon ""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget temp []
|
||||||
|
(system_progress
|
||||||
|
:css "temp"
|
||||||
|
:tip "Temperature ${EWW_TEMPS["AMDGPU_EDGE"]}°C"
|
||||||
|
:data {round(EWW_TEMPS.AMDGPU_EDGE, 0)}
|
||||||
|
:icon ""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget disk []
|
||||||
|
(system_progress
|
||||||
|
:css "disk"
|
||||||
|
:tip "SSD ${round(EWW_DISK["/"].used_perc, 2)}%"
|
||||||
|
:data {round(EWW_DISK["/"].used_perc, 0)}
|
||||||
|
:icon ""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget music []
|
||||||
|
(box
|
||||||
|
:class "music"
|
||||||
|
:space-evenly false
|
||||||
|
:spacing 15
|
||||||
|
:halign "start"
|
||||||
|
(box
|
||||||
|
:class "player-art"
|
||||||
|
:style "background-image: url('${music-art}')"
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:class "player-info"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(label :class "player-title" :halign "start" :valign "center" :text music-title :limit-width 30 )
|
||||||
|
(label :class "player-artist" :halign "start" :valign "center" :text music-artist :limit-width 30 )
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
:valign "end"
|
||||||
|
(box
|
||||||
|
:class "player-bar"
|
||||||
|
:halign "center"
|
||||||
|
:valign "end"
|
||||||
|
:hexpand true
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(scale
|
||||||
|
:onchange "playerctl -p spotify position {}"
|
||||||
|
:min 0
|
||||||
|
:max music-lengths
|
||||||
|
:value music-positions
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:class "player-position"
|
||||||
|
:space-evenly true
|
||||||
|
:valign "start"
|
||||||
|
|
||||||
|
(label
|
||||||
|
:class "player-time"
|
||||||
|
:halign "start"
|
||||||
|
:text "${music-position} / ${music-length}"
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:class "player-controls"
|
||||||
|
:valign "center"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:spacing 10
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "player-previous"
|
||||||
|
:onclick "scripts/mediacontrol --previous"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "player-toggle"
|
||||||
|
:onclick "scripts/mediacontrol --toggle"
|
||||||
|
music-toggle
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
(button
|
||||||
|
:class "player-next"
|
||||||
|
:onclick "scripts/mediacontrol --next"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
) )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwidget box-calendar []
|
||||||
|
(box
|
||||||
|
:class "calendar-main-box"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
:spacing 20
|
||||||
|
(box
|
||||||
|
:class "date"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
:spacing 10
|
||||||
|
(label
|
||||||
|
:class "time"
|
||||||
|
:text hour)
|
||||||
|
(box
|
||||||
|
:class "timeboxes"
|
||||||
|
:space-evenly false
|
||||||
|
:valign "center"
|
||||||
|
:orientation "v"
|
||||||
|
:spacing 5
|
||||||
|
(box
|
||||||
|
:class "timebox-1"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:class "timebox green"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(label
|
||||||
|
:class "time"
|
||||||
|
:text minute
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:halign "center"
|
||||||
|
:valign "start"
|
||||||
|
(label
|
||||||
|
:class "today"
|
||||||
|
:text date
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(box
|
||||||
|
:class "cal"
|
||||||
|
:orientation "v"
|
||||||
|
(box
|
||||||
|
:class "cal-inner-box"
|
||||||
|
(calendar
|
||||||
|
:class "calendar"
|
||||||
|
:day calendar-day
|
||||||
|
:month calendar-month
|
||||||
|
:year calendar-year
|
||||||
|
:show-day-names true
|
||||||
|
:show-heading true
|
||||||
|
:show-details true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwindow central
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "-1%"
|
||||||
|
:y "0%"
|
||||||
|
:height "85%"
|
||||||
|
:anchor "center left")
|
||||||
|
:reserve (struts :side "top" :distance "4%")
|
||||||
|
(central))
|
34
configs/hyprland/eww/eww.scss
Normal file
34
configs/hyprland/eww/eww.scss
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
/* Variables */
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
transition: 200ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin window {
|
||||||
|
background-color: $bg;
|
||||||
|
box-shadow: 0 0 0.3rem 0.3rem $shadow;
|
||||||
|
margin: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$shadow: #151515;
|
||||||
|
$bg: #121013;
|
||||||
|
$bg-alt: #171518;
|
||||||
|
$bg-alt2: #312f32;
|
||||||
|
$fg: #f0f0f0;
|
||||||
|
$fg-alt: #cacaca;
|
||||||
|
$fg-alt2: #a0a0a0;
|
||||||
|
$black: #262626;
|
||||||
|
$gray: #bababa;
|
||||||
|
$red: #FA8E89;
|
||||||
|
$green: #9EC49F;
|
||||||
|
$yellow: #FAF889;
|
||||||
|
$blue: #89B4FA;
|
||||||
|
$magenta: #E889FA;
|
||||||
|
$cyan: #89EAFA;
|
||||||
|
$white: #ffffff;
|
||||||
|
|
||||||
|
@import "bar/bar.scss";
|
||||||
|
@import "central/central.scss";
|
||||||
|
@import "notifications/notifications.scss";
|
||||||
|
@import "volume/volume.scss";
|
43
configs/hyprland/eww/eww.yuck
Normal file
43
configs/hyprland/eww/eww.yuck
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
(include "bar/bar.yuck")
|
||||||
|
(include "central/central.yuck")
|
||||||
|
(include "notifications/notifications.yuck")
|
||||||
|
(include "volume/volume.yuck")
|
||||||
|
|
||||||
|
(deflisten hyprland `scripts/workspace`)
|
||||||
|
(deflisten name `scripts/sysinfo.sh --name`)
|
||||||
|
(deflisten kernel `scripts/sysinfo.sh --kernel`)
|
||||||
|
(deflisten os `scripts/sysinfo.sh --os`)
|
||||||
|
(deflisten wm `scripts/sysinfo.sh --wm`)
|
||||||
|
(deflisten uptime `scripts/sysinfo.sh --uptime`)
|
||||||
|
|
||||||
|
(defvar perfil "assets/perfil.png")
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
|
(defpoll music-art :interval "1s" "scripts/mediacontrol coverloc")
|
||||||
|
(defpoll music-title :interval "1s" "scripts/mediacontrol title")
|
||||||
|
(defpoll music-artist :interval "1s" "scripts/mediacontrol artist")
|
||||||
|
(defpoll music-toggle :interval "1s" "scripts/mediacontrol statusicon")
|
||||||
|
(defpoll music-status :interval "1s" "scripts/mediacontrol status")
|
||||||
|
(defpoll music-position :interval "1s" "scripts/mediacontrol position")
|
||||||
|
(defpoll music-length :interval "1s" "scripts/mediacontrol length")
|
||||||
|
(defpoll music-positions :interval "1s" "scripts/mediacontrol positions")
|
||||||
|
(defpoll music-lengths :interval "1s" "scripts/mediacontrol lengths")
|
||||||
|
(defpoll music-shuffle-color :interval "1s" "scripts/mediacontrol shufflecolor")
|
||||||
|
(defpoll music-shuffle-status :interval "1s" "playerctl -p spotify shuffle")
|
||||||
|
(defpoll music-loop-icon :interval "1s" "scripts/mediacontrol loopicon")
|
||||||
|
(defpoll music-loop-color :interval "1s" "scripts/mediacontrol loopcolor")
|
||||||
|
(defpoll music-loop-status :interval "1s" "playerctl -p spotify loop")
|
||||||
|
(defvar music-rev false)
|
||||||
|
|
||||||
|
;; Volume
|
||||||
|
(deflisten volume `scripts/volume`)
|
||||||
|
(defvar volume_rev false)
|
||||||
|
|
||||||
|
;; Date
|
||||||
|
(defpoll hour :interval "1s" "date '+%H'")
|
||||||
|
(defpoll minute :interval "1s" "date '+%M'")
|
||||||
|
(defpoll date :interval "1h" "date '+%a, %d %B'")
|
||||||
|
(defpoll calendar-day :interval "1h" "date '+%d'")
|
||||||
|
(defpoll calendar-month :interval "1h" "date '+%m'")
|
||||||
|
(defpoll calendar-year :interval "1h" "date '+%Y'")
|
12
configs/hyprland/eww/notifications/notifications.scss
Normal file
12
configs/hyprland/eww/notifications/notifications.scss
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
.notifications {
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg-alt;
|
||||||
|
margin: 1rem;
|
||||||
|
border-radius: .4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
color: $fg;
|
||||||
|
}
|
31
configs/hyprland/eww/notifications/notifications.yuck
Normal file
31
configs/hyprland/eww/notifications/notifications.yuck
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
(defwidget notifications []
|
||||||
|
(box
|
||||||
|
:class "notifications"
|
||||||
|
(box
|
||||||
|
:class "title"
|
||||||
|
:space-evenly false
|
||||||
|
:valign "start"
|
||||||
|
:halign "center"
|
||||||
|
(label :text "Notifications")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow notifications
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "1%"
|
||||||
|
:y "0%"
|
||||||
|
:height "75%"
|
||||||
|
:width "25%"
|
||||||
|
:anchor "center left")
|
||||||
|
:reserve (struts :side "top" :distance "4%")
|
||||||
|
(notifications))
|
90
configs/hyprland/eww/scripts/apps.py
Normal file
90
configs/hyprland/eww/scripts/apps.py
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import glob
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
import subprocess
|
||||||
|
import gi
|
||||||
|
|
||||||
|
gi.require_version("Gtk", "3.0")
|
||||||
|
|
||||||
|
from gi.repository import Gtk
|
||||||
|
from configparser import ConfigParser
|
||||||
|
|
||||||
|
cache_file = os.path.expandvars("$XDG_CACHE_HOME/apps.json")
|
||||||
|
|
||||||
|
def get_gtk_icon(icon_name):
|
||||||
|
theme = Gtk.IconTheme.get_default()
|
||||||
|
icon_info = theme.lookup_icon(icon_name, 128, 0)
|
||||||
|
|
||||||
|
if icon_info is not None:
|
||||||
|
return icon_info.get_filename()
|
||||||
|
|
||||||
|
def get_desktop_entries(query=None):
|
||||||
|
desktop_files = glob.glob(os.path.join("/usr/share/applications", "*.desktop"))
|
||||||
|
entries = []
|
||||||
|
|
||||||
|
for file_path in desktop_files:
|
||||||
|
parser = ConfigParser()
|
||||||
|
parser.read(file_path)
|
||||||
|
|
||||||
|
if parser.getboolean("Desktop Entry", "NoDisplay", fallback=False):
|
||||||
|
continue # Skip entries with NoDisplay=true
|
||||||
|
|
||||||
|
app_name = parser.get("Desktop Entry", "Name")
|
||||||
|
icon_path = get_gtk_icon(parser.get("Desktop Entry", "Icon", fallback=""))
|
||||||
|
comment = parser.get("Desktop Entry", "Comment", fallback="")
|
||||||
|
|
||||||
|
entry = {
|
||||||
|
"name": app_name,
|
||||||
|
"icon": icon_path,
|
||||||
|
"comment": comment,
|
||||||
|
"desktop": os.path.basename(file_path),
|
||||||
|
}
|
||||||
|
entries.append(entry)
|
||||||
|
return entries
|
||||||
|
|
||||||
|
def update_cache(entries):
|
||||||
|
with open(cache_file, "w") as file:
|
||||||
|
file.write(json.dumps(entries, indent=2))
|
||||||
|
|
||||||
|
def get_cached_entries():
|
||||||
|
if os.path.exists(cache_file):
|
||||||
|
with open(cache_file, "r") as file:
|
||||||
|
content = file.read().strip()
|
||||||
|
if content:
|
||||||
|
try:
|
||||||
|
return json.loads(content)
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
entries = get_desktop_entries()
|
||||||
|
update_cache(entries)
|
||||||
|
return entries
|
||||||
|
|
||||||
|
def filter_entries(entries, query):
|
||||||
|
filtered_data = [
|
||||||
|
entry for entry in entries
|
||||||
|
if query.lower() in entry["name"].lower()
|
||||||
|
or (entry["comment"] and query.lower() in entry["comment"].lower())
|
||||||
|
]
|
||||||
|
return filtered_data
|
||||||
|
|
||||||
|
def update_eww(entries):
|
||||||
|
update = ["eww", "update", "apps={}".format(json.dumps(entries))]
|
||||||
|
subprocess.run(update)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
if len(sys.argv) > 2 and sys.argv[1] == "--query":
|
||||||
|
query = sys.argv[2]
|
||||||
|
else:
|
||||||
|
query = None
|
||||||
|
|
||||||
|
entries = get_cached_entries()
|
||||||
|
|
||||||
|
if query is not None:
|
||||||
|
filtered = filter_entries(entries, query)
|
||||||
|
update_eww(filtered)
|
||||||
|
else:
|
||||||
|
update_eww(entries)
|
30
configs/hyprland/eww/scripts/brightness
Normal file
30
configs/hyprland/eww/scripts/brightness
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
current_brightness=1.0
|
||||||
|
|
||||||
|
function set_brightness() {
|
||||||
|
gdbus call -e -d de.mherzberg -o /de/mherzberg/wlrbrightness -m de.mherzberg.wlrbrightness.set $1 &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Ajuste o brilho com o scroll do mouse."
|
||||||
|
echo "Gire o scroll para cima para aumentar o brilho e para baixo para diminuir."
|
||||||
|
echo "Pressione Ctrl+C para sair."
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
read -r -n 1 scroll
|
||||||
|
if [[ "$scroll" == $'\x1b[A' ]]; then
|
||||||
|
# Scroll para cima
|
||||||
|
current_brightness=$(echo "$current_brightness + 0.1" | bc)
|
||||||
|
if (( $(echo "$current_brightness > 1.0" | bc -l) )); then
|
||||||
|
current_brightness=1.0
|
||||||
|
fi
|
||||||
|
sudo bash -c "set_brightness $current_brightness"
|
||||||
|
elif [[ "$scroll" == $'\x1b[B' ]]; then
|
||||||
|
# Scroll para baixo
|
||||||
|
current_brightness=$(echo "$current_brightness - 0.1" | bc)
|
||||||
|
if (( $(echo "$current_brightness < 0.0" | bc -l) )); then
|
||||||
|
current_brightness=0.0
|
||||||
|
fi
|
||||||
|
sudo bash -c "set_brightness $current_brightness"
|
||||||
|
fi
|
||||||
|
done
|
26
configs/hyprland/eww/scripts/details
Normal file
26
configs/hyprland/eww/scripts/details
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
if [[ $1 == "--name" ]]; then
|
||||||
|
fullname=$(getent passwd "$(whoami)" | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")
|
||||||
|
if [ -z "$fullname" ]; then
|
||||||
|
echo "$(whoami)@$(hostnamectl | awk 'FNR==1 {print $3}')"
|
||||||
|
else
|
||||||
|
echo "$fullname"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $1 == "--kernel" ]]; then
|
||||||
|
echo "$(uname -r)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $1 == "--os" ]]; then
|
||||||
|
echo "$(cat /etc/os-release | awk 'NR==1' | awk -F '"' '{print $2}')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $1 == "--pkgs" ]]; then
|
||||||
|
echo "$(yay -Q | wc -l)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $1 == "--wm" ]]; then
|
||||||
|
echo "$XDG_CURRENT_DESKTOP"
|
||||||
|
fi
|
242
configs/hyprland/eww/scripts/mediacontrol
Normal file
242
configs/hyprland/eww/scripts/mediacontrol
Normal file
|
@ -0,0 +1,242 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
# ╔╦╗ ╦ ╦ ╔═╗ ╦ ╔═╗
|
||||||
|
# ║║║ ║ ║ ╚═╗ ║ ║
|
||||||
|
# ╩ ╩ ╚═╝ ╚═╝ ╩ ╚═╝
|
||||||
|
|
||||||
|
# author Niraj
|
||||||
|
# github niraj998
|
||||||
|
|
||||||
|
# ┌─┐┌─┐┌┐┌┌─┐┬┌─┐┬ ┬┬─┐┌─┐┌┬┐┬┌─┐┌┐┌┌─┐
|
||||||
|
# │ │ ││││├┤ ││ ┬│ │├┬┘├─┤ │ ││ ││││└─┐
|
||||||
|
# └─┘└─┘┘└┘└ ┴└─┘└─┘┴└─┴ ┴ ┴ ┴└─┘┘└┘└─┘
|
||||||
|
|
||||||
|
# uncomment your music players below.
|
||||||
|
#
|
||||||
|
|
||||||
|
[ -n "$(pgrep spotify)" ] && Control="spotify"
|
||||||
|
#[ -n "$(pgrep firefox)" ] && Control="firefox"
|
||||||
|
# [ -n "$(pgrep rhythmbox)" ] && Control="rhythmbox"
|
||||||
|
# [ -n "$(pgrep audacious)" ] && Control="audacious"
|
||||||
|
# [ -n "$(pgrep clementine)" ] && Control="clementine"
|
||||||
|
# [ -n "$(pgrep strawberry)" ] && Control="strawberry"
|
||||||
|
|
||||||
|
# saves covers here
|
||||||
|
Cover=/tmp/cover.png
|
||||||
|
# if cover not found in metadata use this instead
|
||||||
|
bkpCover=~/.config/bspwm/assets/fallback.webp
|
||||||
|
|
||||||
|
# ┌─┐┬ ┌─┐┬ ┬┌─┐┬─┐┌─┐┌┬┐┬ ┌─┐┌─┐┬─┐┬┌─┐┌┬┐┌─┐
|
||||||
|
# ├─┘│ ├─┤└┬┘├┤ ├┬┘│ │ │ └─┐│ ├┬┘│├─┘ │ └─┐
|
||||||
|
# ┴ ┴─┘┴ ┴ ┴ └─┘┴└─└─┘ ┴ ┴─┘ └─┘└─┘┴└─┴┴ ┴ └─┘
|
||||||
|
|
||||||
|
########################## Title ##########################
|
||||||
|
title() {
|
||||||
|
title=$(playerctl --player=$Control metadata --format {{title}})
|
||||||
|
[ -z "$title" ] && title="Eagerly awaiting the music."
|
||||||
|
echo "$title"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Artist ##########################
|
||||||
|
artist() {
|
||||||
|
artist=$(playerctl --player=$Control metadata --format {{artist}})
|
||||||
|
[ -z "$artist" ] && artist="Artist"
|
||||||
|
echo "$artist"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Album ##########################
|
||||||
|
album() {
|
||||||
|
album=$(playerctl --player=$Control metadata --format {{album}})
|
||||||
|
[ -z "$album" ] && album="Album"
|
||||||
|
echo "$album"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Status ##########################
|
||||||
|
status() {
|
||||||
|
status=$(playerctl --player=$Control status)
|
||||||
|
[ -z "$status" ] && status="Stopped"
|
||||||
|
echo "$status"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Time ##########################
|
||||||
|
position() {
|
||||||
|
time=$(playerctl --player=$Control position --format "{{ duration(position) }}")
|
||||||
|
[ -z "$time" ] && time="0:00"
|
||||||
|
echo "$time"
|
||||||
|
}
|
||||||
|
|
||||||
|
positions() {
|
||||||
|
position=$(playerctl --player=$Control metadata --format "{{ duration(position) }}")
|
||||||
|
[ -z "$position" ] && position="0:00"
|
||||||
|
time=$position
|
||||||
|
if [[ $time == *:* ]]; then
|
||||||
|
minutes=${time%%:*}
|
||||||
|
seconds=${time#*:}
|
||||||
|
seconds=$((${seconds#0}))
|
||||||
|
else
|
||||||
|
minutes=${time:0:1}
|
||||||
|
seconds=${time:2:2}
|
||||||
|
fi
|
||||||
|
total_seconds=$((minutes * 60 + seconds))
|
||||||
|
echo $total_seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Length ##########################
|
||||||
|
length() {
|
||||||
|
length=$(playerctl --player=$Control metadata --format "{{ duration(mpris:length) }}")
|
||||||
|
[ -z "$length" ] && length="0:00"
|
||||||
|
echo "$length"
|
||||||
|
}
|
||||||
|
|
||||||
|
lengths() {
|
||||||
|
length=$(playerctl --player=$Control metadata --format "{{ duration(mpris:length) }}")
|
||||||
|
[ -z "$length" ] && length="0:00"
|
||||||
|
time=$length
|
||||||
|
if [[ $time == *:* ]]; then
|
||||||
|
minutes=${time%%:*}
|
||||||
|
seconds=${time#*:}
|
||||||
|
seconds=$((${seconds#0}))
|
||||||
|
else
|
||||||
|
minutes=${time:0:1}
|
||||||
|
seconds=${time:2:2}
|
||||||
|
fi
|
||||||
|
total_seconds=$((minutes * 60 + seconds))
|
||||||
|
echo $total_seconds
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## trackNumber ##########################
|
||||||
|
playlist() {
|
||||||
|
playlist=$(playerctl --player=$Control metadata xesam:trackNumber)
|
||||||
|
[ -z "$playlist" ] && playlist="0"
|
||||||
|
echo "$playlist"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Cover ##########################
|
||||||
|
cover() {
|
||||||
|
albumart="$(playerctl --player=$Control metadata mpris:artUrl | sed -e 's/open.spotify.com/i.scdn.co/g')"
|
||||||
|
[ $(playerctl --player=$Control metadata mpris:artUrl) ] && curl -s "$albumart" --output $Cover || cp $bkpCover $Cover
|
||||||
|
echo "$Cover"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Statusicon ##########################
|
||||||
|
statusicon() {
|
||||||
|
icon=""
|
||||||
|
[ $(playerctl --player=$Control status) = "Playing" ] && icon=""
|
||||||
|
[ $(playerctl --player=$Control status) = "Paused" ] && icon=""
|
||||||
|
echo "$icon"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Shuffle ##########################
|
||||||
|
shufflecolor() {
|
||||||
|
color="#a0a0a0"
|
||||||
|
[ $(playerctl --player=$Control shuffle) = "On" ] && color="#9ec49f"
|
||||||
|
[ $(playerctl --player=$Control shuffle) = "Off" ] && color"#a0a0a0"
|
||||||
|
echo "$color"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Loop ##########################
|
||||||
|
loopicon() {
|
||||||
|
icon=" "
|
||||||
|
[ $(playerctl --player=$Control loop) = "None" ] && icon=" "
|
||||||
|
[ $(playerctl --player=$Control loop) = "Track" ] && icon" "
|
||||||
|
[ $(playerctl --player=$Control loop) = "Playlist" ] && icon=" "
|
||||||
|
echo "$icon"
|
||||||
|
}
|
||||||
|
|
||||||
|
loopcheck() {
|
||||||
|
command=$(playerctl -p spotify loop)
|
||||||
|
|
||||||
|
if [[ $command == "None" ]]; then
|
||||||
|
playerctl -p spotify loop Playlist
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $command == "Playlist" ]]; then
|
||||||
|
playerctl -p spotify loop Track
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $command == "Track" ]]; then
|
||||||
|
playerctl -p spotify loop None
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
loopcolor() {
|
||||||
|
color="#9ec49f"
|
||||||
|
[ $(playerctl --player=$Control loop) = "None" ] && color="#a0a0a0"
|
||||||
|
[ $(playerctl --player=$Control loop) = "Track" ] && color"#9ec49f"
|
||||||
|
[ $(playerctl --player=$Control loop) = "Playlist" ] && color"#9ec49f"
|
||||||
|
echo "$color"
|
||||||
|
}
|
||||||
|
|
||||||
|
########################## Lyrics ##########################
|
||||||
|
lyrics() {
|
||||||
|
Title=$(playerctl --player=$Control metadata --format {{title}})
|
||||||
|
Artist=$(playerctl --player=$Control metadata --format {{artist}})
|
||||||
|
URL="https://api.lyrics.ovh/v1/$Artist/$Title"
|
||||||
|
lyrics=$(curl -s "$(echo "$URL" | sed s/" "/%20/g | sed s/"&"/%26/g | sed s/,/%2C/g | sed s/-/%2D/g)" | jq '.lyrics')
|
||||||
|
[ "$lyrics" = "null" ] && lyrics=$(curl -s --get "https://makeitpersonal.co/lyrics" --data-urlencode "artist=$Artist" --data-urlencode "title=$Title")
|
||||||
|
printf "$lyrics" | less
|
||||||
|
}
|
||||||
|
|
||||||
|
# ┬ ┬┌─┐┬ ┌─┐
|
||||||
|
# ├─┤├┤ │ ├─┘
|
||||||
|
# ┴ ┴└─┘┴─┘┴
|
||||||
|
|
||||||
|
doc() {
|
||||||
|
echo "Usage:
|
||||||
|
MediaControl [Options]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--previous previous song
|
||||||
|
--next next song
|
||||||
|
--toggle toggle between play-pause song
|
||||||
|
--stop stop song
|
||||||
|
--shuffle shuffle playlist
|
||||||
|
--loop loop toggle
|
||||||
|
title shows title of current song
|
||||||
|
album shows album of current song
|
||||||
|
artist shows artist of current song
|
||||||
|
status music status (playing/paused/stopped)
|
||||||
|
statusicon music status icons (playing/paused/stopped)
|
||||||
|
shufflecolor huffle status color
|
||||||
|
loopicon loop status icon
|
||||||
|
loopcolor loop status color
|
||||||
|
coverloc saves cover and shows location to cover of current song
|
||||||
|
showcover opens cover using feh
|
||||||
|
position shows current position of song
|
||||||
|
positions shows current position of song in seconds
|
||||||
|
length shows length of song
|
||||||
|
lengths shows length of song in seconds
|
||||||
|
playlist shows playlist position of current song
|
||||||
|
lyrics shows lyrics"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ┌─┐┌─┐┌┬┐┬┌─┐┌┐┌┌─┐
|
||||||
|
# │ │├─┘ │ ││ ││││└─┐
|
||||||
|
# └─┘┴ ┴ ┴└─┘┘└┘└─┘
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
--next) playerctl --player=$Control next ;;
|
||||||
|
--previous) playerctl --player=$Control previous ;;
|
||||||
|
--toggle) playerctl --player=$Control play-pause ;;
|
||||||
|
--stop) playerctl --player=$Control stop ;;
|
||||||
|
--shuffle) playerctl --player=$Control shuffle toggle ;;
|
||||||
|
--loop) loopcheck ;;
|
||||||
|
title) title ;;
|
||||||
|
artist) artist ;;
|
||||||
|
album) album ;;
|
||||||
|
status) status ;;
|
||||||
|
statusicon) statusicon ;;
|
||||||
|
shufflecolor) shufflecolor ;;
|
||||||
|
loopicon) loopicon ;;
|
||||||
|
loopcolor) loopcolor ;;
|
||||||
|
player) echo "$Control" ;;
|
||||||
|
coverloc) cover ;;
|
||||||
|
showcover) cover | xargs feh ;;
|
||||||
|
position) position ;;
|
||||||
|
positions) positions ;;
|
||||||
|
length) length ;;
|
||||||
|
lengths) lengths ;;
|
||||||
|
playlist) playlist ;;
|
||||||
|
lyrics) lyrics ;;
|
||||||
|
*) doc ;;
|
||||||
|
esac
|
20
configs/hyprland/eww/scripts/netspeed
Normal file
20
configs/hyprland/eww/scripts/netspeed
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# thanks to Luke Smith
|
||||||
|
|
||||||
|
update() {
|
||||||
|
sum=0
|
||||||
|
for arg; do
|
||||||
|
read -r i <"$arg"
|
||||||
|
sum=$((sum + i))
|
||||||
|
done
|
||||||
|
cache=${XDG_CACHE_HOME:-$HOME/.cache}/${1##*/}
|
||||||
|
[ -f "$cache" ] && read -r old <"$cache" || old=0
|
||||||
|
printf %d\\n "$sum" >"$cache"
|
||||||
|
printf %d\\n $((sum - old))
|
||||||
|
}
|
||||||
|
|
||||||
|
tx=$(update /sys/class/net/enp4s0/statistics/tx_bytes)
|
||||||
|
rx=$(update /sys/class/net/enp4s0/statistics/rx_bytes)
|
||||||
|
|
||||||
|
[ "$1" = "down" ] && printf "%4sB\\n" $(numfmt --to=iec $rx) && exit
|
||||||
|
[ "$1" = "up" ] && printf "%4sB\\n" $(numfmt --to=iec $tx) && exit
|
34
configs/hyprland/eww/scripts/network
Normal file
34
configs/hyprland/eww/scripts/network
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
ID="$(ip link | awk '/state UP/ {print $2}')"
|
||||||
|
NAME="$(ip link | awk '/state UP/ {print $2}' | cut -c 1-6)"
|
||||||
|
|
||||||
|
net_stat() {
|
||||||
|
if (ping -c 1 archlinux.org || ping -c 1 google.com) &>/dev/null; then
|
||||||
|
if [[ $ID == e* ]]; then
|
||||||
|
echo " "
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo " "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
net_color() {
|
||||||
|
if (ping -c 1 archlinux.org || ping -c 1 google.com) &>/dev/null; then
|
||||||
|
echo "#A39EC4"
|
||||||
|
else
|
||||||
|
echo "#dd6777"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
stat)
|
||||||
|
net_stat | head -n1
|
||||||
|
;;
|
||||||
|
icon)
|
||||||
|
net_stat | tail -n1
|
||||||
|
;;
|
||||||
|
color)
|
||||||
|
net_color
|
||||||
|
;;
|
||||||
|
esac
|
11
configs/hyprland/eww/scripts/popup
Normal file
11
configs/hyprland/eww/scripts/popup
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
open_updates() {
|
||||||
|
$HOME/.config/eww/scripts/updates up
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
updates)
|
||||||
|
open_updates
|
||||||
|
;;
|
||||||
|
esac
|
3
configs/hyprland/eww/scripts/study
Normal file
3
configs/hyprland/eww/scripts/study
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
cd ~/ESA\ 2024/ && okular Edital.pdf Horário.pdf & gnome-clocks
|
65
configs/hyprland/eww/scripts/sysinfo.sh
Normal file
65
configs/hyprland/eww/scripts/sysinfo.sh
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
get_username() {
|
||||||
|
fullname=$(getent passwd "$(whoami)" | cut -d ':' -f 5 | cut -d ',' -f 1 | tr -d "\n")
|
||||||
|
if [ -z "$fullname" ]; then
|
||||||
|
username="$(whoami)"
|
||||||
|
else
|
||||||
|
username="${fullname%% *}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Transforma todo o texto em maiúsculas
|
||||||
|
username="${username^}"
|
||||||
|
|
||||||
|
echo "@$username"
|
||||||
|
}
|
||||||
|
get_kernel_version() {
|
||||||
|
echo "$(uname -r)"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_operating_system() {
|
||||||
|
echo "$(cat /etc/os-release | awk 'NR==1' | awk -F '"' '{print $2}')"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_installed_packages() {
|
||||||
|
echo "$(yay -Q | wc -l)"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_window_manager() {
|
||||||
|
echo "$XDG_CURRENT_DESKTOP"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_uptime() {
|
||||||
|
echo "$(uptime -p | sed -e 's/up //g')"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main function
|
||||||
|
main() {
|
||||||
|
case "$1" in
|
||||||
|
"--name")
|
||||||
|
get_username
|
||||||
|
;;
|
||||||
|
"--kernel")
|
||||||
|
get_kernel_version
|
||||||
|
;;
|
||||||
|
"--os")
|
||||||
|
get_operating_system
|
||||||
|
;;
|
||||||
|
"--pkgs")
|
||||||
|
get_installed_packages
|
||||||
|
;;
|
||||||
|
"--wm")
|
||||||
|
get_window_manager
|
||||||
|
;;
|
||||||
|
"--uptime")
|
||||||
|
get_uptime
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {--name|--kernel|--os|--pkgs|--wm|--uptime}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call the main function with the provided arguments
|
||||||
|
main "$@"
|
58
configs/hyprland/eww/scripts/system
Normal file
58
configs/hyprland/eww/scripts/system
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
#!/usr/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_mem_mb() {
|
||||||
|
free -m | sed -n 's/^Mem:\s\+[0-9]\+\s\+\([0-9]\+\)\s.\+/\1/p'
|
||||||
|
}
|
||||||
|
|
||||||
|
## Execute accordingly
|
||||||
|
if [[ "$1" == "--cpu" ]]; then
|
||||||
|
get_cpu
|
||||||
|
elif [[ "$1" == "--mem" ]]; then
|
||||||
|
get_mem
|
||||||
|
elif [[ "$1" == "--memb" ]]; then
|
||||||
|
get_mem_mb
|
||||||
|
fi
|
26
configs/hyprland/eww/scripts/updates
Normal file
26
configs/hyprland/eww/scripts/updates
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if ! updates_arch=$(checkupdates 2>/dev/null | wc -l); then
|
||||||
|
updates_arch=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! updates_aur=$(yay -Qum 2>/dev/null | wc -l); then
|
||||||
|
updates_aur=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
updates=$((updates_arch + updates_aur))
|
||||||
|
|
||||||
|
check() {
|
||||||
|
if [ "$updates" -gt 0 ]; then
|
||||||
|
bspc rule -a \* -o state=floating && alacritty -e $SHELL -c 'yay -Syu'
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
up)
|
||||||
|
check
|
||||||
|
;;
|
||||||
|
get)
|
||||||
|
echo "$updates"
|
||||||
|
;;
|
||||||
|
esac
|
49
configs/hyprland/eww/scripts/user.sh
Normal file
49
configs/hyprland/eww/scripts/user.sh
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
get_username() {
|
||||||
|
echo "$(whoami)"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_kernel_version() {
|
||||||
|
echo "$(uname -r)"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_operating_system() {
|
||||||
|
echo "$(cat /etc/os-release | awk 'NR==1' | awk -F '"' '{print $2}')"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_installed_packages() {
|
||||||
|
echo "$(yay -Q | wc -l)"
|
||||||
|
}
|
||||||
|
|
||||||
|
get_window_manager() {
|
||||||
|
echo "$XDG_CURRENT_DESKTOP"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main function
|
||||||
|
main() {
|
||||||
|
case "$1" in
|
||||||
|
"--name")
|
||||||
|
get_username
|
||||||
|
;;
|
||||||
|
"--kernel")
|
||||||
|
get_kernel_version
|
||||||
|
;;
|
||||||
|
"--os")
|
||||||
|
get_operating_system
|
||||||
|
;;
|
||||||
|
"--pkgs")
|
||||||
|
get_installed_packages
|
||||||
|
;;
|
||||||
|
"--wm")
|
||||||
|
get_window_manager
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 {--name|--kernel|--os|--pkgs|--wm}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call the main function with the provided arguments
|
||||||
|
main "$@"
|
7
configs/hyprland/eww/scripts/volume
Normal file
7
configs/hyprland/eww/scripts/volume
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
pamixer --get-volume-human | tr -d '%'
|
||||||
|
|
||||||
|
pactl subscribe | rg --line-buffered "on sink" | while read -r _; do
|
||||||
|
pamixer --get-volume-human | tr -d '%'
|
||||||
|
done
|
18
configs/hyprland/eww/scripts/workspace
Normal file
18
configs/hyprland/eww/scripts/workspace
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WORKSPACES_NUMBER=5
|
||||||
|
|
||||||
|
workspaces() {
|
||||||
|
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
|
||||||
|
CURRENT="$(hyprctl -j monitors | jq '.[0].activeWorkspace.name')"
|
||||||
|
|
||||||
|
seq 1 $WORKSPACES_NUMBER |
|
||||||
|
jq --argjson windows "${WORKSPACE_WINDOWS}" \
|
||||||
|
--argjson current "${CURRENT}" \
|
||||||
|
--slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0), current: ($current == .)})'
|
||||||
|
}
|
||||||
|
|
||||||
|
workspaces
|
||||||
|
socat -u UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||||
|
workspaces
|
||||||
|
done
|
0
configs/hyprland/eww/volume/volume.scss
Normal file
0
configs/hyprland/eww/volume/volume.scss
Normal file
52
configs/hyprland/eww/volume/volume.yuck
Normal file
52
configs/hyprland/eww/volume/volume.yuck
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
(defwidget volume []
|
||||||
|
(eventbox
|
||||||
|
:onhover "eww update volume_rev=true"
|
||||||
|
:onhoverlost "eww update volume_rev=false"
|
||||||
|
(box
|
||||||
|
:class "volume"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(revealer
|
||||||
|
:class "volume-bar"
|
||||||
|
:transition "slideup"
|
||||||
|
:reveal volume_rev
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:halign "center"
|
||||||
|
(scale
|
||||||
|
:orientation "v"
|
||||||
|
:tooltip {volume == "muted" ? "Muted" : "${volume}%"}
|
||||||
|
:value {volume == "muted" ? "0" : volume}
|
||||||
|
:min 0
|
||||||
|
:max 101
|
||||||
|
:onchange "pamixer -u && pamixer --set-volume {}"
|
||||||
|
:flipped true
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(eventbox
|
||||||
|
:cursor "pointer"
|
||||||
|
:onscroll "echo {} | sed -e 's/up/--up/g' -e 's/down/--down/g' | xargs volume"
|
||||||
|
(button
|
||||||
|
:class "volume icon"
|
||||||
|
:style {volume == 0 || volume == "muted" ? "color: #dd6777;" : "color: #cacaca;"}
|
||||||
|
:tooltip {volume == "muted" ? "Muted" : "${volume}%" }
|
||||||
|
:onclick "volume --toggle"
|
||||||
|
{volume == 0 || volume == "muted" ? "" :
|
||||||
|
volume < 30 ? "" :
|
||||||
|
volume < 75 ? "" : ""}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwindow volume
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "1%"
|
||||||
|
:y "0%"
|
||||||
|
:height "75%"
|
||||||
|
:width "25%"
|
||||||
|
:anchor "center left")
|
||||||
|
:reserve (struts :side "top" :distance "4%")
|
||||||
|
(volume))
|
Loading…
Add table
Reference in a new issue