This commit is contained in:
end-4
2024-02-22 15:35:06 +07:00
commit 8db26e9707
4220 changed files with 208544 additions and 0 deletions
+313
View File
@@ -0,0 +1,313 @@
(defwidget mycpu [coreid]
(box
:space-evenly false
:orientation "v"
(label
:class "bg-cool-text"
:text "Core ${coreid}"
)
(box
:class "bg-graph-container"
(graph
:class "bg-graph"
:width 100
:height 50
:thickness 3
:min 0
:max 100
:value {EWW_CPU.cores[coreid].usage}
:time-range "30s"
:line-style "round"
)
)
)
)
(defwidget bgdecors []
(centerbox
:space-evenly false
:orientation "h"
(box
:space-evenly false
:orientation "v"
:valign "center"
(box
:space-evenly false
:orientation "v"
:halign "start"
:class "bg-module"
(centerbox
(box
:orientation "h"
:space-evenly false
(label :xalign 0.5 :class "bg-icon" :text "")
(label :xalign 0 :class "bg-text bg-title" :text "CPU x${arraylength(EWW_CPU.cores)}")
)
(box)
(box
:orientation "h"
:space-evenly false
(label :xalign 1 :class "bg-text" :text "${cpuname}")
)
)
(box
:space-evenly false
:orientation "v"
; :valign "center"
:width 150
:height 30
(box
:space-evenly false
:orientation "h"
(mycpu :coreid 0)
(mycpu :coreid 1)
(mycpu :coreid 2)
)
(box
:space-evenly false
:orientation "h"
(mycpu :coreid 3)
(mycpu :coreid 4)
(mycpu :coreid 5)
)
(box
:space-evenly false
:orientation "h"
(mycpu :coreid 6)
(mycpu :coreid 7)
(mycpu :coreid 8)
)
(box
:space-evenly false
:orientation "h"
(mycpu :coreid 9)
(mycpu :coreid 10)
(mycpu :coreid 11)
)
)
)
(box
:space-evenly false
:orientation "v"
:valign "end"
(box
:class "bg-module bg-date"
:space-evenly false
:orientation "v"
:halign "start"
:valign "end"
(label
:xalign 0
:class "bg-decor-dow" ; Hyperland maybe?
:text "${time.day}"
)
(label
:xalign 0
:class "bg-decor-date"
:text "${time.date}"
)
)
)
)
(box
:space-evenly false
:orientation "v"
:valign "center"
:width 150
:height 30
; (graph
; :class "bg-graph"
; :width 155
; :height 25
; :thickness 3
; :value {EWW_CPU.cores[0].usage}
; :time-range "30s"
; ; :line-style "round"
; )
)
(box
:space-evenly false
:orientation "v"
:halign "end"
:valign "center"
(box
:space-evenly false
:orientation "v"
:class "bg-module"
:valign "end"
(centerbox
(box
:orientation "h"
:space-evenly false
(label :xalign 0.5 :class "bg-icon" :text "")
(label :xalign 0 :class "bg-text bg-title" :text "Network")
)
(box)
(box)
)
(box
:orientation "h"
(label :halign "start" :xalign 0 :class "bg-cool-text" :text "Up: ${EWW_NET["wlan0"].NET_UP} bytes")
)
(button ; Button to make this not draggable
(box
:class "bg-graph-container"
(graph
:class "bg-graph"
:width 100
:height 50
:thickness 3
:dynamic true
:value {EWW_NET["wlan0"].NET_UP}
:time-range "30s"
:line-style "round"
)
)
)
(box
:orientation "h"
(label :halign "start" :xalign 0 :class "bg-cool-text" :text "Down: ${EWW_NET["wlan0"].NET_DOWN} bytes")
)
(button ; Button to make this not draggable
(box
:class "bg-graph-container"
(graph
:class "bg-graph"
:width 100
:height 50
:thickness 3
:dynamic true
:value {EWW_NET["wlan0"].NET_DOWN}
:time-range "30s"
:line-style "round"
)
)
)
)
(box
:space-evenly false
:orientation "v"
:class "bg-module"
:valign "end"
(centerbox
(box
:orientation "h"
:space-evenly false
(label :xalign 0.5 :class "bg-icon" :text "")
(label :xalign 0 :class "bg-text bg-title" :text "Memory")
)
(box)
(box
:orientation "h"
(label :xalign 1 :class "bg-text bg-title" :text "(${memory.total})")
)
)
(box
:orientation "h"
(label :halign "start" :xalign 0 :class "bg-cool-text" :text "+${memory.used}")
(label :halign "end" :xalign 1 :class "bg-cool-text" :text "-${memory.free}")
)
(button ; Button to make this not draggable
(box
:class "bg-graph-container"
(graph
:class "bg-graph"
:width 100
:height 50
:thickness 3
:min 0
:max 100
:value {memory.percentage}
:time-range "30s"
:line-style "round"
)
)
)
(centerbox
(box
:orientation "h"
:space-evenly false
(label :xalign 0.5 :class "bg-icon" :text "")
(label :xalign 0 :class "bg-text bg-title" :text "Swap")
)
(box)
(box
:orientation "h"
(label :xalign 1 :class "bg-text bg-title" :text "(${memory.swaptotal})")
)
)
(box
:orientation "h"
(label :halign "start" :xalign 0 :class "bg-cool-text" :text "+${memory.swapused}")
(label :halign "end" :xalign 1 :class "bg-cool-text" :text "-${memory.swapfree}")
)
(button ; Button to make this not draggable
; (scale
; :class "bg-progress"
; :value {memory.swappercentage}
; )
(box
:class "bg-graph-container"
(graph
:class "bg-graph"
:width 100
:height 50
:thickness 3
:min 0
:max 100
:value {memory.swappercentage}
:time-range "30s"
:line-style "round"
)
)
)
)
(box
:space-evenly false
:orientation "v"
:class "bg-module"
:valign "end"
(centerbox
(box
:orientation "h"
:space-evenly false
(label :xalign 0.5 :class "bg-icon" :text "")
(label :xalign 0 :class "bg-text bg-title" :text "Disk usage")
)
(box)
(box
:orientation "h"
(label :xalign 1 :class "bg-text bg-title" :text "(${disksize})")
)
)
(box
:orientation "h"
(label :halign "start" :xalign 0 :class "bg-cool-text" :text "+${diskused}")
(label :halign "end" :xalign 1 :class "bg-cool-text" :text "-${diskfree}")
)
(button ; Button to make this not draggable
(scale
:class "bg-progress"
:value {diskfreepercent}
)
)
)
)
)
)
(defwindow bg-decor
:focusable false
:stacking "bottom"
:windowtype "normal"
:wm-ignore true
:geometry (geometry
:x 0
:y 0
:width "100%"
:height "100%"
:anchor "left center"
)
:monitor 0
(bgdecors)
)
+380
View File
@@ -0,0 +1,380 @@
(defwidget mycpu_bottombar [coreid]
(box
:space-evenly false
:orientation "v"
(label
:class "bg-cool-text"
:text "Core ${coreid}"
)
(box
:class "bg-graph-container"
(graph
:class "bg-graph"
:width 100
:height 50
:thickness 3
:min 0
:max 100
:value {EWW_CPU.cores[coreid].usage}
:time-range "30s"
:line-style "round"
)
)
)
)
(defwidget cavacol [nth dir]
(box
:valign "${dir == 'up' ? 'end' : (
dir == 'down' ? 'start' : 'fill'
)}"
:halign "${dir == 'right' ? 'start' : (
dir == 'left' ? 'end' : 'fill'
)}"
:class "cava-column"
; background-color: mix(
; ${mcover.color.colors.color4 == 'null' ? 'white' : mcover.color.colors.color4},
; rgba(40, 40, 40, 0.7),
; {(((nth / 90 * RES_WIDTH) > mousepos[0] ? ((nth / 90 * RES_WIDTH) - mousepos[0]) : (mousepos[0] - (nth / 90 * RES_WIDTH))) / RES_WIDTH)}
; );
:style "
background-color: ${mcover.color.colors.color4 == 'null' ? 'white' : mcover.color.colors.color4};
transition: 0ms;
min-${dir == 'up' || dir == 'down' ? 'height' : 'width'}: ${cavajson[nth] / 4}px;
"
)
)
(defwidget bottomline_widget []
(eventbox
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
:onclick "scripts/toggle-bottombar.sh &"
(box
:class "bottombar-closed-hitbox"
:width {RES_WIDTH} :height 1
(revealer :reveal false
:transition "slideup"
; (label :text "${cavajson[0]}")
)
)
)
)
(defwidget bottombar_widget []
(box
:orientation "v"
:space-evenly false
:style "
transition: ${anim_open_bottombar ? MD3_DECEL : MD3_ACCEL};
${rev_bottombar ? '' : 'margin-bottom: -500px; margin-top: 500px;'}
"
(eventbox
:onclick "scripts/toggle-bottombar.sh --close &"
:onmiddleclick "scripts/toggle-bottombar.sh --close &"
:onrightclick "scripts/toggle-bottombar.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(overlay
; Background
(box
:class "bottombar-bg-front"
; (label
; :text {(((40 / 90 * RES_WIDTH) > mousepos[0] ? ((40 / 90 * RES_WIDTH) - mousepos[0]) : (mousepos[0] - (40 / 90 * RES_WIDTH))) / RES_WIDTH)}
; )
)
; Cava
(box
; :class "bottombar-bg"
(box :orientation "h"
; it IS necessary NOT to use a for loop
(cavacol :dir "up" :nth 0)
(cavacol :dir "up" :nth 1)
(cavacol :dir "up" :nth 2)
(cavacol :dir "up" :nth 3)
(cavacol :dir "up" :nth 4)
(cavacol :dir "up" :nth 5)
(cavacol :dir "up" :nth 6)
(cavacol :dir "up" :nth 7)
(cavacol :dir "up" :nth 8)
(cavacol :dir "up" :nth 9)
(cavacol :dir "up" :nth 10)
(cavacol :dir "up" :nth 11)
(cavacol :dir "up" :nth 12)
(cavacol :dir "up" :nth 13)
(cavacol :dir "up" :nth 14)
(cavacol :dir "up" :nth 15)
(cavacol :dir "up" :nth 16)
(cavacol :dir "up" :nth 17)
(cavacol :dir "up" :nth 18)
(cavacol :dir "up" :nth 19)
(cavacol :dir "up" :nth 20)
(cavacol :dir "up" :nth 21)
(cavacol :dir "up" :nth 22)
(cavacol :dir "up" :nth 23)
(cavacol :dir "up" :nth 24)
(cavacol :dir "up" :nth 25)
(cavacol :dir "up" :nth 26)
(cavacol :dir "up" :nth 27)
(cavacol :dir "up" :nth 28)
(cavacol :dir "up" :nth 29)
(cavacol :dir "up" :nth 30)
(cavacol :dir "up" :nth 31)
(cavacol :dir "up" :nth 32)
(cavacol :dir "up" :nth 33)
(cavacol :dir "up" :nth 34)
(cavacol :dir "up" :nth 35)
(cavacol :dir "up" :nth 36)
(cavacol :dir "up" :nth 37)
(cavacol :dir "up" :nth 38)
(cavacol :dir "up" :nth 39)
(cavacol :dir "up" :nth 40)
(cavacol :dir "up" :nth 41)
(cavacol :dir "up" :nth 42)
(cavacol :dir "up" :nth 43)
(cavacol :dir "up" :nth 44)
(cavacol :dir "up" :nth 45)
(cavacol :dir "up" :nth 46)
(cavacol :dir "up" :nth 47)
(cavacol :dir "up" :nth 48)
(cavacol :dir "up" :nth 49)
(cavacol :dir "up" :nth 50)
(cavacol :dir "up" :nth 51)
(cavacol :dir "up" :nth 52)
(cavacol :dir "up" :nth 53)
(cavacol :dir "up" :nth 54)
(cavacol :dir "up" :nth 55)
(cavacol :dir "up" :nth 56)
(cavacol :dir "up" :nth 57)
(cavacol :dir "up" :nth 58)
(cavacol :dir "up" :nth 59)
(cavacol :dir "up" :nth 60)
(cavacol :dir "up" :nth 61)
(cavacol :dir "up" :nth 62)
(cavacol :dir "up" :nth 63)
(cavacol :dir "up" :nth 64)
(cavacol :dir "up" :nth 65)
(cavacol :dir "up" :nth 66)
(cavacol :dir "up" :nth 67)
(cavacol :dir "up" :nth 68)
(cavacol :dir "up" :nth 69)
)
)
; Track time
(box
:space-evenly false :orientation "h"
:halign "center" :valign "end"
:style "margin-bottom: 5px;"
(label
:halign "start" :valign "center"
:class "music-time-label"
:style "
margin-top: 5px;
color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};
"
:text "${music.position_time} / ${music.length}"
)
)
; Track name
(box
:space-evenly false :orientation "h" :spacing 20
:halign "start" :valign "start"
:class "bottombar-musicinfo-box"
(box
:valign "center"
:class "bottombar-music-cover"
:style "background-image: url('${mcover.image}')"
)
(box
:space-evenly false :orientation "v"
:spacing 5
(label :xalign 0
:class "bottombar-title"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:text {mname.title == '' ? 'Media controls' : mname.title}
)
(label
:halign "start" :valign "end"
:xalign 0
:class "bottombar-artist"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:text {mname.title == '' ? 'Nothing...' : mname.artist}
)
(centerbox
:halign "start"
:class "music-button-box"
; :style "margin-top: 5px;"
(button
:class "song-button"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:onclick "playerctl previous" ""
)
(button
:class "song-button"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:onclick "playerctl play-pause"
"${music.status != '' ? music.status : ''}"
)
(button
:class "song-button"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:onclick "playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
""
)
)
)
)
)
(box
:class "bottombar-mixer-bg"
:halign "end"
:width 650
:style "
margin-top: -300px;
margin-right: 10px;
"
(scroll
:width 650
:hscroll true
:vscroll false
(box
:space-evenly false
:orientation "h"
:halign "end"
; :class "sliders"
(for app in audiojson
(box
:orientation "v" :space-evenly false
(image
:class "onotify-app-icon"
:path {app.icon}
:image-width 25
:image-height 25
)
(box
:orientation "v"
:space-evenly false
(scroll
:vscroll false
:hscroll true
:style "min-width: 150px;"
(box
:orientation "v"
; :space-evenly false
(for ser in {app["volume"]}
(eventbox
:onscroll "pactl set-sink-input-volume ${ser[0]} $(echo {} | sed -e \"s/up/+5/g\" -e \"s/down/-5/g\")%"
:onrightclick "pactl set-sink-input-volume ${ser[0]} 100%"
:onclick "pactl set-sink-input-volume ${ser[0]} 0%"
(centerbox
:space-evenly false
:orientation "h"
:class "onotify-app-volbox"
:style "min-width: 69px;"
(label
:xalign "${app.count > 3 ? '0.5' : '0'}"
:class "onotify-app-ser"
:style "
${app.count > 3 ? 'margin-bottom: 5px;' : 'padding: 0 5px;'}
"
:text "#${ser[0]}"
)
(box)
(circular-progress
:halign "${app.count > 3 ? 'center' : 'end'}"
:value {ser[1] <= 100 ? ser[1] : 100}
:class "onotify-app-vol-circle"
:thickness 4
:start-at 75
:width 45
:height 45
(label :class "onotify-app-text" :text "${ser[1]}")
)
)
)
)
)
)
)
)
)
)
)
)
)
)
(defwidget bottombar_bg_widget []
(box
:orientation "v"
:space-evenly false
:style "
transition: ${anim_open_bottombar ? MD3_DECEL : MD3_ACCEL};
${rev_bottombar ? '' : 'margin-bottom: -500px; margin-top: 500px;'}
"
(box
:class "bottombar-bg"
:style "
background-image: url('${mcover.image}');
"
(box :space-evenly false :orientation "v"
:halign "start" :valign "start"
:class "bottombar-musicinfo-box"
(label :xalign 0
:class "bottombar-title"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:text {mname.title}
)
(label :xalign 0
:class "bottombar-artist"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:text "${mname.artist}"
)
)
)
)
)
(defwindow bottombar
:stacking "fg"
:windowtype "normal"
:wm-ignore true
:geometry (geometry
:x 0
:y 0
:width "100%"
:anchor "center bottom"
)
:monitor 0
(bottombar_widget)
)
(defwindow bottombar-back
:stacking "fg"
:windowtype "normal"
:wm-ignore true
:namespace "bottombar-back"
:geometry (geometry
:x 0
:y 0
:width "100%"
:anchor "center bottom"
)
:monitor 0
(bottombar_bg_widget)
)
(defwindow bottomline
:stacking "overlay"
:windowtype "normal"
:wm-ignore true
:geometry (geometry
:x 0
:y 0
:width "100%"
:anchor "center bottom"
)
:monitor 0
(bottomline_widget)
)
+93
View File
@@ -0,0 +1,93 @@
(defwidget calendar-win []
(eventbox
:onclick "scripts/toggle-calendar.sh --close &"
(box
:class "calendar-win"
:style "
${rev_calendar ? '' : 'margin-top: -900px; margin-bottom: 900px;'}
${anim_open_calendar ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
min-height: 1px;
"
; (calendar)
; Calendar
(box
:space-evenly false :orientation "v"
:halign "end" :valign "center"
(box
:space-evenly false :orientation "v"
(eventbox
:onscroll "scripts/scrollmonth {} &"
(box
:orientation "v"
:space-evenly false
(centerbox
:style "padding: 0 12px;"
(label :xalign 0 :class "calendarwin-title" :text "${calendartitle}")
(box)
(box
:halign "end" :valign "center"
(box
:halign "end" :valign "center"
(button
:onclick "scripts/scrollmonth up &"
:halign "end" :valign "center"
:class "winicon dashfs-monthbutton"
(image
:valign "center"
:path "images/svg/dark/caretup.svg"
)
)
(button
:onclick "scripts/scrollmonth down &"
:halign "end" :valign "center"
:class "winicon dashfs-monthbutton"
(image
:valign "center"
:path "images/svg/dark/caretdown.svg"
)
)
)
)
)
(box :space-evenly false :orientation "v"
; :class "dashfs-section-nopad"
(box
(for day in weekdays
(box
:class "calendarwin-button day${day.today}"
(label :class "calendarwin-text" :text "${day.day}")
)
)
)
(for week in calendar
(box
(for day in week
(button
:class "calendarwin-button calendarwin-day${day.today}"
(label :class "calendarwin-text" :text "${day.day}")
)
)
)
)
)
)
)
)
)
)
)
)
(defwindow calendar
:wm-ignore true
:monitor 0
:focusable true
:geometry (geometry
:x "350px"
:y "61px"
:anchor "top right"
:width "0px"
:height "0px"
)
(calendar-win)
)
+319
View File
@@ -0,0 +1,319 @@
(defvar dash_curve_in "transition: 150ms cubic-bezier(0.05, 0.9, 0.1, 1.0);")
(defvar dash_curve_out "transition: 80ms cubic-bezier(0.3, 0, 0.8, 0.15);")
(defwidget dashboard-contents []
(box
:class "dash-window"
:orientation "v"
:space-evenly false
(eventbox ; Close when clicking outside
:onclick "scripts/toggle-dash.sh &"
:onmiddleclick "scripts/toggle-dash.sh &"
:onrightclick "scripts/toggle-dash.sh &"
)
(box ; All the stuff go here
:orientation "v"
:space-evenly false
(box ; Description
:orientation "v"
:space-evenly false
:class "dash"
:halign "start"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-left: -1100px; margin-right: 1100px;'}
"
(label :angle 0 :xalign 0 :class "dash-title" :text "Classic dashboard")
(label :angle 0 :xalign 0 :class "dash-subtitle" :text "That kinda useless random widget porn.")
)
(box
:orientation "h"
:space-evenly false
(box
:orientation "v"
:space-evenly false
(box
:orientation "h"
:space-evenly false
:class "dash dash-tile"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-left: -1010px; margin-right: 1010px;'}
"
(input
:class "dash-input"
:onaccept "scripts/dashactivate --web 'firefox \"https://www.google.com/search?q={}\"' && hyprctl dispatch focuswindow firefox &"
)
(button
:class "dash-input-icon dash-button"
:onclick "scripts/dashactivate --web 'firefox \"https://www.google.com/search?q=\"' && hyprctl dispatch focuswindow firefox &"
""
)
)
(box ; Row 1
:orientation "h"
:space-evenly false
(box ; Col 1
:orientation "v"
:space-evenly false
(box ; User
:orientation "h"
:space-evenly false
:class "dash dash-profile"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-left: -500px; margin-right: 500px;'}
"
(box
:valign "center"
:class "dash-user-pic"
:style "background-image: url('/var/lib/AccountsService/icons/${username == "" ? username_default : username}');"
; :style "background-image: url('${waifu}');"
)
(box
:orientation "v" :space-evenly false :valign "center"
(box
:orientation "h" :space-evenly false
(label :class "dash-fetch-icon" :text "")
(label :class "dash-fetch" :text "${username + '@' + hostname}")
)
(box
:orientation "h" :space-evenly false
(label :class "dash-fetch-icon" :text "")
(label :class "dash-fetch" :text "${kernel}")
)
(box
:orientation "h" :space-evenly false
(label :class "dash-fetch-icon" :text "")
(label :class "dash-fetch" :text "${uptime}")
)
(box
:orientation "h" :space-evenly false
(label :class "dash-fetch-icon" :text "")
(label :class "dash-fetch" :text "${wm}")
)
(box
:orientation "h" :space-evenly false
(label :class "dash-fetch-icon" :text "")
(label :class "dash-fetch" :text "${packages}")
)
)
)
(box
:orientation "v"
:space-evenly false
:class "dash"
:height 124
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-bottom: -1000px; margin-top: 1000px;'}
"
(label :xalign 0 :class "dash-quote-content clr3" :text "${quote_content[3]}")
(label :xalign 1 :class "dash-quote-author clr4" :text "${quote_author[3]}")
)
)
(box ; Col 2
:orientation "v"
:space-evenly false
(box ; Clock
:orientation "h"
:space-evenly false
:class "dash"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-top: -500px; margin-bottom: 500px;'}
"
(box ; Clock numbers
:orientation "v"
:space-evenly false
:class "dash-clock-text-area"
(box ; Clock time
:orientation "h"
:space-evenly false
:halign "center"
(label :xalign 0.5 :class "dash-time clr1" :text "${time.hour}")
(label :xalign 0.5 :class "dash-time clrt" :text ":")
(label :xalign 0.5 :class "dash-time clr3" :text "${time.minute}")
)
(box ; Clock date
:orientation "h"
:space-evenly false
:halign "center"
(label :xalign 0.5 :class "dash-date clr6" :text "${time.day}, ${time.date}")
)
)
(box
:class "dash-clock-circle-area"
(circular-progress
:value "${time.minute / 60 * 100}"
:thickness 7
:start-at 75
:class "clr3 dash-clock-circle"
(circular-progress
:value "${time.hour % 12 / 12 * 100}"
:thickness 7
:start-at 75
:class "clr1 dash-clock-circle dash-clock-circle-minute"
(label
:text ""
:class "dash-clock-inner")
)
)
)
)
(box ; Calendar
:orientation "v"
:space-evenly false
:class "dash"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-bottom: -500px; margin-top: 500px;'}
"
(calendar
:height 210
:ihatethiswidget true
:style "
padding-top: 2px;
font-family: Rubik;
"
)
)
)
(box ; Col 3
:orientation "v"
:space-evenly false
(box ; Calendar
:orientation "v"
:space-evenly false
:class "dash dash-dir-area"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-right: -500px; margin-left: 500px;'}
"
(button
:class "dash-dir dash-button"
:onclick "scripts/dashactivate '${FILE_BROWSER} ~/Documents' &"
(box
:orientation "h"
:space-evenly false
:class "clrt"
(label :xalign 0 :text " " :class "icon")
(label :xalign 0 :text "documents")
)
)
(button
:class "dash-dir dash-button"
:onclick "scripts/dashactivate '${FILE_BROWSER} ~/Downloads' &"
(box
:orientation "h"
:space-evenly false
:class "clrt"
(label :xalign 0 :text " " :class "icon")
(label :xalign 0 :text "downloads")
)
)
(button
:class "dash-dir dash-button"
:onclick "scripts/dashactivate '${FILE_BROWSER} ~/Pictures' &"
(box
:orientation "h"
:space-evenly false
:class "clrt"
(label :xalign 0 :text " " :class "icon")
(label :xalign 0 :text "pictures")
)
)
(button
:class "dash-dir dash-button"
:onclick "scripts/dashactivate '${FILE_BROWSER} ~/Videos' &"
(box
:orientation "h"
:space-evenly false
:class "clrt"
(label :xalign 0 :text " " :class "icon")
(label :xalign 0 :text "videos")
)
)
)
(box ; Resources
:orientation "v"
:space-evenly false
:class "dash dash-resources"
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-top: -700px; margin-bottom: 700px;'}
"
(label :text "Memory" :class "dash-resource-title clr3")
(box
:orientation "h"
:space-evenly false
; :style "background-color: red;"
(box ; RAM
:orientation "v"
:space-evenly false
:class "dash-resource-tile"
(circular-progress
:value "${memory.percentage}"
:thickness 7
:start-at 75
:class "clr3 dash-clock-circle"
(box :class "dash-resource-inner")
)
(label :class "dash-resource-text" :text "${memory.used}")
)
(label :yalign 0.34 :class "dash-resource-icon" :style "font-size: 20pt;" :text "")
(box ; Swap
:orientation "v"
:space-evenly false
:class "dash-resource-tile"
(circular-progress
:value "${memory.swappercentage}"
:thickness 7
:start-at 75
:class "clr3 dash-clock-circle"
(box :class "dash-resource-inner")
)
(label :class "dash-resource-text" :text "${memory.swapused}")
)
)
)
)
)
)
(box ;Actinos
:orientation "v"
:space-evenly false
(box
:orientation "v"
:space-evenly false
:style "
${anim_open_dash ? dash_curve_in : dash_curve_out}
${rev_dash ? '' : 'margin-right: -100px; margin-left: 100px;'}
"
(button :onclick "scripts/dashactivate '~/.local/bin/lock.sh' &" :class "dash clr4 dash-icon dash-button" (label :class "icon" :text "") )
(button :onclick "scripts/dashactivate 'systemctl suspend' &" :class "dash clr3 dash-icon dash-button" (label :class "icon" :text "") )
(button :onclick "scripts/dashactivate 'loginctl terminate-user $USER' &" :class "dash clr2 dash-icon dash-button" (label :class "icon" :text "") )
(button :onclick "scripts/dashactivate 'systemctl reboot' &" :class "dash clr1 dash-icon dash-button" (label :class "icon" :text "") )
(button :onclick "scripts/dashactivate 'systemctl poweroff' &" :class "dash clr0 dash-icon dash-button" (label :class "icon" :text "") )
)
)
)
)
)
)
(defwindow dashboard
:focusable true
:windowtype "normal"
:wm-ignore true
:geometry (geometry
:x 0
:y 0
:anchor "center center"
)
:monitor 0
(dashboard-contents)
)
+604
View File
@@ -0,0 +1,604 @@
(defvar MD3_DECEL "400ms cubic-bezier(0.05, 0.7, 0.1, 1)")
(defvar MD3_ACCEL "150ms cubic-bezier(0.3, 0, 0.8, 0.15)")
(defwidget dashfs_resource [value unit icon name]
(box
:space-evenly false :orientation "v"
(label :class "dashfs-resource-title" :text {name})
(box
:space-evenly false :orientation "v"
:class "dashfs-resource-box"
:spacing 10
(circular-progress
:width 80 :height 80
:start-at 75
:class "dashfs-resource-circle"
:value {value}
:thickness 4
(label :class "dashfs-resource-icon" :text {icon})
)
(label
:halign "center"
:class "dashfs-resource-label"
:text "${value}${unit}"
)
)
)
)
(defwidget cavacol_dashfs [nth dir]
(box
:valign "${dir == 'up' ? 'end' : (
dir == 'down' ? 'start' : 'fill'
)}"
:halign "${dir == 'right' ? 'start' : (
dir == 'left' ? 'end' : 'fill'
)}"
; :width 20
:height 24
:class "dashfs-cava-column"
:style "
transition: 0ms;
min-${dir == 'up' || dir == 'down' ? 'height' : 'width'}: ${cavajson[nth] / 3}px;
"
)
)
(defwidget dashfs_widget []
(eventbox
:onclick "scripts/toggle-dashfs.sh --close &"
(box :width {RES_WIDTH} :height {RES_HEIGHT}
:class "dashfs-bg"
(overlay
(box :space-evenly false :orientation "v"
:width {RES_WIDTH} :height {RES_HEIGHT}
:class "dashfs-graph"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? '' : 'margin-left: -${RES_WIDTH}px; margin-right: ${RES_WIDTH}px;'}
"
)
; Cava (left)
(box
:orientation "v"
:halign "start" :valign "center"
:height {RES_HEIGHT}
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-left: -24px' : 'margin-right: 400px; margin-left: -400px;'}
"
(cavacol_dashfs :dir "right" :nth 0)
(cavacol_dashfs :dir "right" :nth 1)
(cavacol_dashfs :dir "right" :nth 2)
(cavacol_dashfs :dir "right" :nth 3)
(cavacol_dashfs :dir "right" :nth 4)
(cavacol_dashfs :dir "right" :nth 5)
(cavacol_dashfs :dir "right" :nth 6)
(cavacol_dashfs :dir "right" :nth 7)
(cavacol_dashfs :dir "right" :nth 8)
(cavacol_dashfs :dir "right" :nth 9)
(cavacol_dashfs :dir "right" :nth 10)
(cavacol_dashfs :dir "right" :nth 11)
(cavacol_dashfs :dir "right" :nth 12)
(cavacol_dashfs :dir "right" :nth 13)
(cavacol_dashfs :dir "right" :nth 14)
(cavacol_dashfs :dir "right" :nth 15)
(cavacol_dashfs :dir "right" :nth 16)
(cavacol_dashfs :dir "right" :nth 17)
(cavacol_dashfs :dir "right" :nth 18)
(cavacol_dashfs :dir "right" :nth 19)
(cavacol_dashfs :dir "right" :nth 20)
(cavacol_dashfs :dir "right" :nth 21)
(cavacol_dashfs :dir "right" :nth 22)
(cavacol_dashfs :dir "right" :nth 23)
(cavacol_dashfs :dir "right" :nth 24)
(cavacol_dashfs :dir "right" :nth 25)
(cavacol_dashfs :dir "right" :nth 26)
(cavacol_dashfs :dir "right" :nth 27)
(cavacol_dashfs :dir "right" :nth 28)
(cavacol_dashfs :dir "right" :nth 29)
(cavacol_dashfs :dir "right" :nth 30)
(cavacol_dashfs :dir "right" :nth 31)
(cavacol_dashfs :dir "right" :nth 32)
(cavacol_dashfs :dir "right" :nth 33)
(cavacol_dashfs :dir "right" :nth 34)
(cavacol_dashfs :dir "right" :nth 35)
(cavacol_dashfs :dir "right" :nth 36)
(cavacol_dashfs :dir "right" :nth 37)
(cavacol_dashfs :dir "right" :nth 38)
(cavacol_dashfs :dir "right" :nth 39)
(cavacol_dashfs :dir "right" :nth 40)
(cavacol_dashfs :dir "right" :nth 41)
(cavacol_dashfs :dir "right" :nth 42)
(cavacol_dashfs :dir "right" :nth 43)
(cavacol_dashfs :dir "right" :nth 44)
)
; Cava (right)
(box
:orientation "v" :space-evenly false
:halign "end" :valign "center"
:height {RES_HEIGHT}
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-right: -24px;' : 'margin-left: 400px; margin-right: -400px;'}
"
(cavacol_dashfs :dir "left" :nth 49)
(cavacol_dashfs :dir "left" :nth 48)
(cavacol_dashfs :dir "left" :nth 47)
(cavacol_dashfs :dir "left" :nth 46)
(cavacol_dashfs :dir "left" :nth 45)
(cavacol_dashfs :dir "left" :nth 44)
(cavacol_dashfs :dir "left" :nth 43)
(cavacol_dashfs :dir "left" :nth 42)
(cavacol_dashfs :dir "left" :nth 41)
(cavacol_dashfs :dir "left" :nth 40)
(cavacol_dashfs :dir "left" :nth 39)
(cavacol_dashfs :dir "left" :nth 38)
(cavacol_dashfs :dir "left" :nth 37)
(cavacol_dashfs :dir "left" :nth 36)
(cavacol_dashfs :dir "left" :nth 35)
(cavacol_dashfs :dir "left" :nth 34)
(cavacol_dashfs :dir "left" :nth 33)
(cavacol_dashfs :dir "left" :nth 32)
(cavacol_dashfs :dir "left" :nth 31)
(cavacol_dashfs :dir "left" :nth 30)
(cavacol_dashfs :dir "left" :nth 29)
(cavacol_dashfs :dir "left" :nth 28)
(cavacol_dashfs :dir "left" :nth 27)
(cavacol_dashfs :dir "left" :nth 26)
(cavacol_dashfs :dir "left" :nth 25)
(cavacol_dashfs :dir "left" :nth 24)
(cavacol_dashfs :dir "left" :nth 23)
(cavacol_dashfs :dir "left" :nth 22)
(cavacol_dashfs :dir "left" :nth 21)
(cavacol_dashfs :dir "left" :nth 20)
(cavacol_dashfs :dir "left" :nth 19)
(cavacol_dashfs :dir "left" :nth 18)
(cavacol_dashfs :dir "left" :nth 17)
(cavacol_dashfs :dir "left" :nth 16)
(cavacol_dashfs :dir "left" :nth 15)
(cavacol_dashfs :dir "left" :nth 14)
(cavacol_dashfs :dir "left" :nth 13)
(cavacol_dashfs :dir "left" :nth 12)
(cavacol_dashfs :dir "left" :nth 11)
(cavacol_dashfs :dir "left" :nth 10)
(cavacol_dashfs :dir "left" :nth 9)
(cavacol_dashfs :dir "left" :nth 8)
(cavacol_dashfs :dir "left" :nth 7)
(cavacol_dashfs :dir "left" :nth 6)
(cavacol_dashfs :dir "left" :nth 5)
(cavacol_dashfs :dir "left" :nth 4)
(cavacol_dashfs :dir "left" :nth 3)
(cavacol_dashfs :dir "left" :nth 2)
(cavacol_dashfs :dir "left" :nth 1)
(cavacol_dashfs :dir "left" :nth 0)
)
; Greet
(box :space-evenly false :orientation "v"
:halign "start" :valign "start"
:class "dashfs-greet"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? '' : 'margin-left: -533px;'}
"
(label :xalign 0 :class "dashfs-greet-text"
:text "${time.hour >= 21 ? 'Good night' : (
time.hour >= 18 ? 'Good evening' : (
time.hour >= 12 ? 'Good afternoon' : (
time.hour >= 5 ? 'Good morning' : 'Go to sleep'
)
)
)
} ${realname}!"
)
(label :xalign 0 :class "dashfs-greet-subtext"
:text "It's not awesome, it's Hyprland!"
)
)
; Time
(box :space-evenly false :orientation "v"
:halign "end" :valign "start"
:class "dashfs-clock"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? '' : 'margin-right: -533px;'}
"
(label :xalign 1 :class "dashfs-clock-time" :text "${time.hour}:${time.minute}")
(label :xalign 1 :class "dashfs-clock-date" :text "${time.day}, ${time.date}")
)
; Calendar
(box
:space-evenly false :orientation "v"
:halign "end" :valign "center"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-right: 40px;' : 'margin-right: -533px;'}
margin-bottom: 200px;
"
(box
:space-evenly false :orientation "v"
(eventbox
:onscroll "scripts/scrollmonth {} &"
(box
:orientation "v"
:space-evenly false
(centerbox
:style "padding: 0 12px;"
(label :xalign 0 :class "dashfs-calendar-title" :text "${calendartitle}")
(box)
(box
:halign "end" :valign "center"
(box
:halign "end" :valign "center"
(button
:onclick "scripts/scrollmonth up &"
:halign "end" :valign "center"
:class "winicon dashfs-monthbutton"
(image
:valign "center"
:path "images/svg/dark/caretup.svg"
)
)
(button
:onclick "scripts/scrollmonth down &"
:halign "end" :valign "center"
:class "winicon dashfs-monthbutton"
(image
:valign "center"
:path "images/svg/dark/caretdown.svg"
)
)
)
)
)
(box :space-evenly false :orientation "v"
:class "dashfs-section-nopad"
(box
(for day in weekdays
(box
:class "dashfs-calendar-button day${day.today}"
(label :class "dashfs-calendar-text" :text "${day.day}")
)
)
)
(for week in calendar
(box
(for day in week
(button
:class "dashfs-calendar-button dashfs-day${day.today}"
(label :class "dashfs-calendar-text" :text "${day.day}")
)
)
)
)
)
)
)
)
)
; Fetch
(box
:orientation "v" :space-evenly false
:halign "start" :valign "start"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-left: 100px;' : 'margin-left: -533px;'}
margin-top: 450px;
"
(label :class "dashfs-section-title" :text "# System")
(box :space-evenly false :orientation "v"
:class "dashfs-section"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "${username + '@' + hostname}")
)
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "${kernel}")
)
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "${uptime}")
)
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "${wm}")
)
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "${packages}")
)
)
)
; Session
(box
:orientation "v" :space-evenly false
:halign "start" :valign "start"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-left: 400px;' : 'margin-left: -533px;'}
margin-top: 350px;
"
(label :class "dashfs-section-title" :text "# Session")
(box :space-evenly false :orientation "v"
:class "dashfs-section"
(button :class "dashfs-section-button"
:onclick "scripts/dashactivate '~/.local/bin/lock.sh' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Lock")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/dashactivate 'systemctl suspend' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Sleep")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/dashactivate 'loginctl terminate-user $USER' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Logout")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/dashactivate 'systemctl reboot' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Reboot")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/dashactivate 'systemctl poweroff' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Shutdown")
)
)
)
)
; Quick dirs
(box
:orientation "v" :space-evenly false
:halign "start" :valign "start"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-left: 700px;' : 'margin-left: -533px;'}
margin-top: 450px;
"
(label :class "dashfs-section-title" :text "# Quick dirs")
(box :space-evenly false :orientation "v"
:class "dashfs-section"
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open ~/Documents &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Documents")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open ~/Downloads &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Downloads")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open ~/Music &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Music")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open ~/Pictures &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Pictures")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open ~/Videos &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-fetch-icon" :text "")
(label :class "dashfs-fetch" :text "Videos")
)
)
)
)
; Quick links
(box
:orientation "v" :space-evenly false
:halign "start" :valign "start"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-left: 1000px;' : 'margin-left: -533px;'}
margin-top: 350px;
"
(label :class "dashfs-section-title" :text "# Quick links")
(box :space-evenly false :orientation "v"
:class "dashfs-section"
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open 'https://discord.com/app' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-nerd-icon" :text "󰙯 ")
(label :class "dashfs-fetch" :text "Discord")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open 'https://reddit.com' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-nerd-icon" :text " ")
(label :class "dashfs-fetch" :text "Reddit")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open 'https://github.com' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-nerd-icon" :text " ")
(label :class "dashfs-fetch" :text "GitHub")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open 'https://youtube.com' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-nerd-icon" :text " ")
(label :class "dashfs-fetch" :text "Youtube")
)
)
(button :class "dashfs-section-button"
:onclick "scripts/toggle-dashfs.sh --close && xdg-open 'https://soundcloud.com' &"
(box
:orientation "h" :space-evenly false
(label :class "dashfs-nerd-icon" :text " ")
(label :class "dashfs-fetch" :text "SoundCloud")
)
)
)
)
; Taskbar
; (box :orientation "h" :space-evenly false
; :halign "center" :valign "end"
; :onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
; :style "
; transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
; ${rev_dashfs ? '' : 'margin-bottom: -70px;'}
; "
; (for app in tasks
; (overlay
; (eventbox
; :class "dashfs-button-only"
; :onclick "${app.count > 0 ? ('hyprctl dispatch workspace ' + app.workspace[0] + ' &') : (app.exec)}& scripts/toggle-dashfs.sh --close &"
; (box
; :class "dashfs-button-pad"
; (box
; :class "dashfs-taskbaricon"
; :style "
; background-image: url('${app.icon}');
; ${app.class == awin.class ? 'background-color: rgba(108, 112, 134, 0.4); border: 1px solid rgba(108, 112, 134, 0.15); border-top: 1px solid rgba(108, 112, 134, 0.15);' : ''}
; "
; )
; )
; )
; (box :class "dashfs-taskbar-indicator-${app.class == awin.class ? 'true' : (app.count > 0 ? 'false' : 'none')}")
; )
; )
; ; Dummy keep alive
; (revealer :transition "slideright" :reveal false (label :text {awin.class}))
; )
; Music
(box
:space-evenly false :orientation "h"
:halign "center" :valign "start"
:class "dashfs-music"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-top: 40px;' : 'margin-top: -200px; margin-bottom: 200px;'}
"
(box
:class "dashfs-music-cover"
:style "background-image: url('${mcover.image}')"
)
(eventbox
:class "music-ctl-revealer"
:onscroll "echo $(echo {} | sed -e 's/down/-/g' -e 's/up/+/g' | xargs -I% wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.03%) && scripts/volume osd"
(box
:space-evenly false
:class "music-ctl-revealer"
:orientation "v"
:valign "center"
(label
:class "music-title-bar"
:limit-width 50
:xalign 0
:style "font-size: 15pt; font-family: 'Rubik';" ;color: ${mcover.color.colors.color7};
:text "${mname.title == '' ? 'Not playing' : mname.title}"
)
(revealer
:transition "slidedown"
:reveal "${mname.artist != ''}"
:duration "20ms"
(label
:class "music-artist-bar"
:limit-width 50
:xalign 0
:style "font-size: 11pt; font-family: 'Rubik';"
:text "${mname.artist}"
)
)
)
)
)
; Resources
(box :orientation "h" :space-evenly false :spacing 30
:halign "center" :valign "end"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-bottom: 100px;' : 'margin-bottom: -500px;'}
"
(dashfs_resource :value {round(EWW_CPU.avg, 0)} :unit "%" :icon "" :name "CPU")
(dashfs_resource :value {round(memory.percentage, 0)} :unit "% (${memory.used})" :icon "" :name "RAM")
(dashfs_resource :value {round(memory.swappercentage, 0)} :unit "% (${memory.swapused})" :icon "" :name "Swap")
(dashfs_resource :value {battery.percentage} :unit "%" :icon "" :name "Battery")
(dashfs_resource :value {diskfreepercent} :unit "%" :icon "" :name "Free space")
)
; Icosahedron
(image :orientation "h" :space-evenly false :spacing 30
:halign "end" :valign "end"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-bottom: -250px; margin-right: -150px;' : 'margin-bottom: -900px; margin-top: 900px; margin-right: -900px; margin-left: 900px;'}
"
:path "images/svg/icosahedron.svg"
:image-height 600
:image-width 600
)
; Music
(box
:space-evenly false :orientation "v"
:halign "start" :valign "end"
:style "
transition: ${anim_open_dashfs ? MD3_DECEL : MD3_ACCEL};
${rev_dashfs ? 'margin-left: 40px; margin-bottom: 40px;' : 'margin-bottom: -200px; margin-top: 200px;'}
"
(label :xalign 0 :class "dashfs-quote-content" :text "${quote_content[3]}")
(label :xalign 1 :class "dashfs-quote-author" :text "${quote_author[3]}")
)
)
)
)
)
(defwindow dashfs
:focusable true
:windowtype "normal"
:wm-ignore true
:geometry (geometry
:width 1920
:height 1080
:anchor "center center"
)
:monitor 0
(dashfs_widget)
)
+32
View File
@@ -0,0 +1,32 @@
(defvar MOVEMULTIPLIER 30)
(defvar morebgoffset 4)
(defwidget dynbg []
(image
:class "dynbg-image"
; :style "background-position: ${(activews - 5)*MOVEMULTIPLIER > 50 ? 100 : 50+(activews - 5)*MOVEMULTIPLIER}% 20%"
:style "
margin-left: ${(5 - (activews > 10 ? 10 : activews))*MOVEMULTIPLIER}px;
margin-right: ${((activews > 10 ? 10 : activews) - 5)*MOVEMULTIPLIER}px;
"
:path "images/wallpaper/wallpaper"
:image-width {RES_WIDTH*BG_ZOOM}
:image-height {RES_HEIGHT*BG_ZOOM}
)
)
(defwindow dynamic-bg
:focusable false
:stacking "bg"
:windowtype "normal"
:wm-ignore true
:geometry (geometry
:x 0
:y 0
:width "100%"
:height "100%"
:anchor "center center"
)
:monitor 0
(dynbg)
)
+163
View File
@@ -0,0 +1,163 @@
(defwidget cavacol_musicwin [nth dir]
(box
:valign "${dir == 'up' ? 'end' : (
dir == 'down' ? 'start' : (
dir == 'virt' ? 'center' : 'fill'
)
)}"
:halign "${dir == 'right' ? 'start' : (
dir == 'left' ? 'end' : (
dir == 'hori' ? 'center' : 'fill'
)
)}"
:width 15
:class "music-cava-column"
:style "
background-color: ${mcover.color.colors.color4 == 'null' ? 'white' : mcover.color.colors.color4};
transition: 0ms;
min-${dir == 'up' || dir == 'down' ? 'height' : 'width'}: ${cavajson[nth] / 7}px;
"
)
)
(defwidget music []
(eventbox
:onhoverlost "scripts/toggle-music.sh --close &"
(box
:class "music-area"
:style "
${music_open ? '' : 'margin-top: -233px; margin-bottom: 233px;'}
${anim_open_music ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
"
(overlay
(box ; Fallback
:class "music-cover-art"
)
(box ; Cover art
:class "music-cover-art"
:style "background-image: url('${mcover.image}');"
)
(box :space-evenly true :orientation "h"
(cavacol_musicwin :dir "up" :nth 0)
(cavacol_musicwin :dir "up" :nth 1)
(cavacol_musicwin :dir "up" :nth 2)
(cavacol_musicwin :dir "up" :nth 3)
(cavacol_musicwin :dir "up" :nth 4)
(cavacol_musicwin :dir "up" :nth 5)
(cavacol_musicwin :dir "up" :nth 6)
(cavacol_musicwin :dir "up" :nth 7)
(cavacol_musicwin :dir "up" :nth 8)
(cavacol_musicwin :dir "up" :nth 9)
(cavacol_musicwin :dir "up" :nth 10)
(cavacol_musicwin :dir "up" :nth 11)
(cavacol_musicwin :dir "up" :nth 12)
(cavacol_musicwin :dir "up" :nth 13)
(cavacol_musicwin :dir "up" :nth 14)
(cavacol_musicwin :dir "up" :nth 15)
(cavacol_musicwin :dir "up" :nth 16)
(cavacol_musicwin :dir "up" :nth 17)
(cavacol_musicwin :dir "up" :nth 18)
(cavacol_musicwin :dir "up" :nth 19)
(cavacol_musicwin :dir "up" :nth 20)
(cavacol_musicwin :dir "up" :nth 21)
(cavacol_musicwin :dir "up" :nth 22)
(cavacol_musicwin :dir "up" :nth 23)
(cavacol_musicwin :dir "up" :nth 24)
(cavacol_musicwin :dir "up" :nth 25)
(cavacol_musicwin :dir "up" :nth 26)
(cavacol_musicwin :dir "up" :nth 27)
(cavacol_musicwin :dir "up" :nth 28)
(cavacol_musicwin :dir "up" :nth 29)
(cavacol_musicwin :dir "up" :nth 30)
(cavacol_musicwin :dir "up" :nth 31)
(cavacol_musicwin :dir "up" :nth 32)
(cavacol_musicwin :dir "up" :nth 33)
(cavacol_musicwin :dir "up" :nth 34)
)
(box ;
:orientation "v"
:class "music-box"
:space-evenly false
(label
:class "music-title"
:wrap false
:text "${music.title == '' ? 'Not playing' : music.title}"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:limit-width 35
)
(label
:class "music-artist"
:wrap true
:text "${music.artist}"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
)
(centerbox
(box
(label
:halign "center" :valign "center"
:class "music-time-label"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:text {music.position_time}
)
)
(centerbox
:class "music-button-box"
(button
:class "song-button"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:onclick "playerctl previous" ""
)
(button
:class "song-button"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:onclick "playerctl play-pause"
"${music.status != '' ? music.status : ''}"
)
(button
:class "song-button"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:onclick "playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
""
)
)
(box
(label
:halign "center" :valign "center"
:class "music-time-label"
:style "color: ${mcover.color.colors.color7 == 'null' ? 'white' : mcover.color.colors.color7};"
:text {music.length}
)
)
)
(scale
:valign "end"
:class "track-scale"
:value {music.position}
:onchange "playerctl position `bc <<< \"{} * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
:style "highlight {background-color: ${mcover.color.colors.color4};}"
)
)
(box
:class "music-media-source"
:halign "start"
:valign "start"
:orientation "h"
(label :class "music-source-icon" :text "${mcover.color.source}" :style "color: ${mcover.color.colors.color4};")
)
)
)
)
)
(defwindow music
:wm-ignore true
:stacking "overlay"
:monitor 0
:geometry (geometry
:x "15px"
:y "61px"
:width "558px"
:height "191px"
:anchor "top left")
(music)
)
+516
View File
@@ -0,0 +1,516 @@
(defwidget volume_mixer []
(box
:space-evenly false
:orientation "v"
; :class "sliders"
(box
:orientation "h"
:space-evenly false
:spacing 10
(label
:halign "start"
:class "osettings-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "osettings-section"
:text "Volume mixer"
)
)
(for app in audiojson
(box
:orientation "v" :space-evenly false
(box
:orientation "h" :space-evenly false
:spacing 10
(image
:class "onotify-app-icon"
:path {app.icon}
:image-width 25
:image-height 25
)
(label
:xalign 0
:valign "center"
:class "onotify-app-name"
:limit-width 42
:text {app.name}
)
)
(box
:orientation "v"
:space-evenly false
(scroll
:vscroll false
:hscroll true
(box
:orientation "h"
; :space-evenly false
(for ser in {app["volume"]}
(eventbox
:onscroll "pactl set-sink-input-volume ${ser[0]} $(echo {} | sed -e \"s/up/+5/g\" -e \"s/down/-5/g\")%"
:onrightclick "pactl set-sink-input-volume ${ser[0]} 100%"
:onclick "pactl set-sink-input-volume ${ser[0]} 0%"
(centerbox
:space-evenly false
:orientation "${app.count > 3 ? 'v' : 'h'}"
:class "onotify-app-volbox"
(label
:xalign "${app.count > 3 ? '0.5' : '0'}"
:class "onotify-app-ser"
:style "
${app.count > 3 ? 'margin-bottom: 5px;' : 'padding: 0 5px;'}
"
:text "#${ser[0]}"
)
(box)
(circular-progress
:halign "${app.count > 3 ? 'center' : 'end'}"
:value {ser[1] <= 100 ? ser[1] : 100}
:class "onotify-app-vol-circle"
:thickness 4
:start-at 75
:width 45
:height 45
(label :class "onotify-app-text" :text "${ser[1]}")
)
)
)
)
)
)
)
)
)
)
)
(defwidget onotify []
(box
:orientation "v"
:space-evenly false
:style "
${anim_open_ontf ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_ontf ? '' : 'margin-right: -533px;'}
"
(eventbox
:onclick "scripts/toggle-onotify.sh --close &"
:onmiddleclick "scripts/toggle-onotify.sh --close &"
:onrightclick "scripts/toggle-onotify.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(eventbox
; :onhoverlost "scripts/toggle-onotify.sh --close &"
(box
:orientation "v"
:space-evenly false
:class "onotify-window"
(box
:class "system-row"
:space-evenly false
:halign "center"
(box
:class "wifi-box"
:space-evenly false
:orientation "v"
(box
:class "element"
:space-evenly false
(button
; :class "wifi-button"
:onclick "scripts/net toggle"
:style "font-family: Material Symbols Rounded;"
{net.icon}
)
(label :class "separator" :text "|")
(button
:class "wifi-arrow-btn"
:style "font-family: Material Symbols Rounded;"
:onclick "foot sh -c 'sleep 0.01 ; nmtui' &"
""
)
)
(label :style "font-size: 12pt;" :class "sys-toggle" :text {net.essid} :xalign 0.5 :limit-width 15)
)
(box
:class "bluetooth-box"
:space-evenly false
:orientation "v"
(box
:class "element icon"
:space-evenly false
(button
:class "bluetooth-button"
:onclick "scripts/bluetooth toggle &"
:style "font-family: 'Material Symbols Rounded';"
{bluetooth.icon}
)
(label :class "separator" :text "|")
(button
:class "bluetooth-arrow-btn"
:onclick "blueberry &"
""
)
)
(label
:style "font-size: 12pt;"
:text {bluetooth.text}
:xalign 0.5
:class "sys-toggle"
:tooltip "${bluetooth.text} ${bluetooth.batt_icon}"
:limit-width 15
)
)
(box
:class "airplane-box"
:space-evenly false
:orientation "v"
(box
:class "element icon"
(button
:class "airplane-button"
:onclick "scripts/airplane toggle &"
airplane
)
)
(label :style "font-size: 12pt;" :text "Airplane Mode" :xalign 0.5 :limit-width 16)
)
(box
:class "power-box"
:space-evenly false
:orientation "v"
(box
:class "element icon"
(button
:halign "end"
; :onclick "wlogout &"
:onclick "wlogout -p layer-shell &"
""
)
)
(label
:style "font-size: 12pt;"
:text "Power"
:class "sys-toggle"
:xalign 0.5
:limit-width 16
)
)
)
(scroll
; :vscroll true
; :hscroll false
; :halign "fill"
:class "onotify-content"
:valign "fill"
:style "min-height: 317px;"
(box
:halign "fill"
:class "osettings-scroll-bg"
:space-evenly false
:spacing 20
:orientation "v"
; Volume mixer
; (volume_mixer)
; Notifications
(box
:space-evenly false :orientation "v"
(centerbox
(box
:orientation "h"
:space-evenly false
:spacing 10
(label
:halign "start"
:class "osettings-section-icon"
:text ""
)
(label
:halign "start"
:class "osettings-section"
:text "Notifications"
)
)
(box)
; (box
; :class "icon"
; :halign "end" :valign "center"
; :space-evenly false
; :spacing 10
; (button
; :class "notification-action"
; :tooltip "Refresh"
; :onclick "dunstctl history > $XDG_CACHE_HOME/dunst-history.json &"
; ""
; )
; (button
; :class "notification-action"
; :tooltip "Pause/Resume Notifications"
; :onclick "scripts/notifications toggle &"
; {notif_icons.toggle_icon}
; )
; (button
; :class "notification-action"
; :tooltip "Clear Notifications"
; :onclick "scripts/notifications clear &"
; ""
; )
; )
(box
:orientation "h" :space-evenly false
:halign "end" :spacing 4
:style "margin-left: 9px;"
(button :valign "center" :yalign 0.5
:class "osettings-tag-material"
:tooltip "Refresh"
:onclick "dunstctl history > $XDG_CACHE_HOME/dunst-history.json &"
"Refresh"
)
(button :valign "center" :yalign 0.5
:class "osettings-tag-material"
:tooltip "Pause/Resume Notifications"
:onclick "scripts/notifications toggle && eww update notifications='$(scripts/notifications --once)' &"
{notif_icons.paused ? "" : "Pause"}
)
(button :valign "center" :yalign 0.5
:class "osettings-tag-material"
:tooltip "Clear Notifications"
:onclick "scripts/notifications clear &"
"Clear"
)
)
)
(box
:class "container"
:orientation "v"
:space-evenly false
(for i in notifications
(eventbox
:onclick "dunstctl history-pop ${i.id} && dunstctl action 0 && dunstctl close"
(box
:class "notification"
:orientation "v" :space-evenly false
:width 300
(centerbox
:space-evenly false
(label
:xalign 0
:wrap true
:class "summary"
:text {i.summary}
)
(label)
(label
:xalign 1
:wrap true
:class "appname"
:text {i.appname}
)
)
(label
:xalign 0
:wrap true
:class "body"
:text {i.body}
)
)
)
)
)
)
)
)
; Calendar
(box
:space-evenly false :orientation "v"
:class "osettings-scroll-bg-colored"
(box :space-evenly false
(box
:orientation "h" :space-evenly false :spacing 10
:hexpand true
(label
:halign "start"
:class "osettings-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "osettings-section"
:text "${calendartitle}"
)
)
(box
:orientation "h" :space-evenly false
:halign "end" :spacing 4
(button :valign "center" :yalign 0.5
:class "osettings-tag-material"
:tooltip "Refresh"
:onclick "scripts/scrollmonth up &"
"Remove"
)
(button :valign "center" :yalign 0.5
:class "osettings-tag-material"
:tooltip "Pause/Resume Notifications"
:onclick "scripts/scrollmonth down &"
"Add"
)
)
)
(box
:space-evenly false :orientation "v"
(eventbox
:onscroll "scripts/scrollmonth {} &"
(box
:orientation "v"
:space-evenly false
(box
:space-evenly false :orientation "v"
:halign "center"
(box
(for day in weekdays
(box
:class "calendarwin-button day${day.today}"
(label :class "calendarwin-text" :text "${day.day}")
)
)
)
(for week in calendar
(box
(for day in week
(button
:class "calendarwin-button calendarwin-day${day.today}"
(label :class "calendarwin-text" :text "${day.day}")
)
)
)
)
)
)
)
)
)
)
)
)
)
(defwindow onotify
:wm-ignore true
:monitor 0
:focusable true
:namespace "onotify"
:geometry (geometry
:x "0px"
:y "61px"
:width "0px"
:height "1019px"
:anchor "top right"
)
(onotify)
)
(defwidget onotify-button []
(eventbox
:halign "end"
(box
:space-evenly false
:halign "end"
(eventbox
:onmiddleclick "scripts/toggle-dashfs.sh &"
:onrightclick "scripts/toggle-dashfs.sh &"
:onscroll "echo $(echo {} | sed -e 's/down/-U 3/g' -e 's/up/-A 3/g' | xargs light) && scripts/brightness osd"
:onclick "scripts/toggle-onotify.sh &"
:onhover "${EWW_CMD} update calendar_hover=true"
:onhoverlost "${EWW_CMD} update calendar_hover=false"
(box
:class "module-button-pad-center"
; Time and date
(box
:orientation "v" :space-evenly false
:valign "center"
:class "module-timedate module module-button${rev_calendar ? '-true' : (calendar_hover ? '-hover' : '')}"
:style "padding: 0 10px;"
(box
:space-evenly false
:halign "end"
:class "timedate-time"
(label :text "${time.hour}" :class "clock hour"
:style "${colormode == 'one' ? ('color: ' + coloraccent + ';') : ''}"
)
; (label :text "${time.hour % 12}" :class "clock hour")
(label :text ":" :class "clock"
:style "${colormode == 'one' ? ('color: ' + coloraccent + ';') : ''}"
)
(label :text {time.minute} :class "clock minute"
:style "${colormode == 'one' ? ('color: ' + coloraccent + ';') : ''}"
)
; (label :text "${time.hour >= 12 ? 'pm' : 'am'}" :class "clock minute")
)
(box
:class "date"
:onclick "${EWW_CMD} update popup='calendar'"
:style "${colormode == 'one' ? ('color: ' + coloraccent + ';') : ''}"
"${time.day}, ${time.date}"
)
)
)
)
(eventbox
:onscroll "echo $(echo {} | sed -e 's/down/-/g' -e 's/up/+/g' | xargs -I% wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.03%) && scripts/volume osd &"
:onclick "scripts/toggle-onotify.sh &"
:onmiddleclick "scripts/toggle-dashfs.sh &"
:onrightclick "scripts/toggle-dashfs.sh &"
:onhover "${EWW_CMD} update ontf_hover=true"
:onhoverlost "${EWW_CMD} update ontf_hover=false"
(box
:orientation "h"
:space-evenly false
:class "module-button${rev_ontf ? '-true' : (ontf_hover ? '-hover' : '')}"
:style "padding-left: 10px; padding-right: 10px; margin: 8px 0; margin-right: 8px;"
(box
; :class "module"
:space-evenly false
:spacing 5
:halign "end"
(syscpu)
(sysmem)
(sysbatt)
)
(overlay
(image
:class "real-onotify-toggle-button module-button-pad-right-nomargin"
; :class "real-onotify-toggle-button"
:path "images/svg/forum.svg"
:image-height 33
:image-width 33
)
(revealer
:reveal {arraylength(notifications) > 0}
:transition "slideleft"
:duration "200ms"
:class "dummy${notifications[0].id}"
(box
:halign "end" :valign "end"
:class "notif-badge"
(label :class "notif-indicator"
:style "
font-size: 11pt;
border-radius: 99px;
${colormode == 'one' ? ('background-color: ' + coloraccent + ';') : ''}
"
:text "${arraylength(notifications)}"
)
)
)
)
)
)
)
)
)
+69
View File
@@ -0,0 +1,69 @@
(defwidget osdwidget []
(box
:class "osd-window"
:orientation "h"
:space-evenly false
(revealer
:reveal {osd_vol}
:transition "slideright"
:duration "80ms"
(centerbox
:class "osd-var"
:orientation "h"
:space-evenly false
(circular-progress
:value {volume.percent}
:class "osd-circle"
:thickness 4
:start-at 75
:halign "start"
(button
:class "inside-circle"
(label :xalign "0.5" :yalign "0.5" :halign "center" :valign "center" :class "osd-incircle" :text "${volume.icon}")
)
)
(box)
(label :xalign 0.5 :halign "end" :class "osd-text" :text "${volume.percent}")
)
)
(revealer
:reveal {osd_bright}
:transition "slideright"
:duration "80ms"
(centerbox
:class "osd-var"
:orientation "h"
:space-evenly false
(circular-progress
:value {round(brightness.level, 0)}
:class "osd-circle"
:thickness 4
:start-at 75
:halign "start"
(button
:class "inside-circle"
(label :xalign "0.5" :yalign "0.5" :halign "center" :valign "center" :class "osd-incircle-bright" :text "${brightness.icon}")
)
)
(box)
(label :xalign 0.5 :class "osd-text" :text {round(brightness.level, 0)})
)
)
)
)
(defwindow osd
:stacking "overlay"
:wm-ignore true
:monitor 0
:namespace "osd"
:geometry (geometry
:y "69px"
:width "100px"
:height "53px"
:anchor "top center"
)
:stacking "fg"
:exclusive false
(osdwidget)
)
File diff suppressed because it is too large Load Diff
+246
View File
@@ -0,0 +1,246 @@
(defwidget workspacebox [wspace]
(box ; Note: height 100px width 356px
:class "overview-ws overview-ws-${wspace[0].workspace.id == activews}"
(box
:space-evenly false
:orientation "h"
:style "
min-width: ${RES_WIDTH * OVERVIEW_SCALE}px;
min-height: ${RES_HEIGHT * OVERVIEW_SCALE}px;
"
(for ws-window in wspace
(box
:class "${ws-window.class == 'workspace' ? '' : 'overview-ws-window'}"
:style "
${ws-window.address == selected ? 'border: 1px solid #FFFFFF' : ''};
${ws-window.address == '_none' ? 'border: none' : ''};
margin-left: ${ws-window.at[0] * OVERVIEW_SCALE}px;
margin-top: ${ws-window.at[1] * OVERVIEW_SCALE}px;
margin-right: -${(ws-window.at[0] + ws-window.size[0]) * OVERVIEW_SCALE}px;
margin-bottom: ${RES_HEIGHT * OVERVIEW_SCALE - ((ws-window.at[1] + ws-window.size[1]) * OVERVIEW_SCALE)};
"
(eventbox
:onrightclick "scripts/selectwindow ${ws-window.address} '${EWW_CMD}' ${ws-window.workspace.id}"
:onmiddleclick "hyprctl dispatch closewindow address:${ws-window.address}"
:onclick "scripts/focuswindow ${ws-window.address} ${ws-window.workspace.id} && scripts/toggle-overview.sh --close &"
:onhover "${ws-window.class == 'workspace' ? '' : (EWW_CMD + ' update overview_hover_name=\'' + ws-window + '\'')}"
(box
:class "overview-background"
; Uncomment below to enable thumbnail previews (VERY SLOW)
; :style "
; background-image: url('scripts/cache/thumbnails/${ws-window.address }.png');
; "
(image
:class "overview-icon"
:path {ws-window.icon}
; :image-width {round(ws-window.size[0] > ws-window.size[1] ? (ws-window.size[1] * 45 / 100 * OVERVIEW_SCALE) : (ws-window.size[0] * 45 / 100 * OVERVIEW_SCALE))}
; :image-height {round(ws-window.size[0] > ws-window.size[1] ? (ws-window.size[1] * 45 / 100 * OVERVIEW_SCALE) : (ws-window.size[0] * 45 / 100 * OVERVIEW_SCALE))}
:image-width {round(ws-window.size[0] * OVERVIEW_SCALE * 45 / 100, 0)}
:image-height {round(ws-window.size[1] * OVERVIEW_SCALE * 45 / 100, 0)}
; :style "
; background-size: ${ws-window.size[0] > ws-window.size[1] ? 'auto 45%' : '45% auto'};
; background-image: url('${ws-window.icon}')
; ;
; "
)
)
)
)
)
)
)
)
(defwidget overview []
(box
:space-evenly false
:orientation "v"
:class "thewholething"
(eventbox
:onclick "scripts/toggle-overview.sh --close &"
:onmiddleclick "scripts/toggle-overview.sh --close &"
:onrightclick "scripts/toggle-overview.sh --close &"
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
)
; Search bar
(overlay
(box
:class "overview-search-area"
:space-evenly false
:halign "center"
:orientation "v"
(input
:class "overview-search-box"
:onchange "${EWW_CMD} update overview_query=\"{}\" && ${EWW_CMD} update overview_results=\"$(scripts/appsearch '{}')\" &"
:onaccept "scripts/launchapp '${overview_results == '[]' ? {} : overview_results[0].exec}' &"
:style "
border-radius: ${overview_query == '' ? 99 : 20}px;
min-width: ${overview_query == '' ? 130 : 445}px;
"
)
(revealer
:reveal false
:transition "slidedown"
(label
:text {ICON_GET} ; Dummy to keep listeners active
)
)
)
(box
:class "overview-search-typetosearch-pad"
:space-evenly false
:halign "center"
:orientation "v"
(revealer
:reveal "${overview_query == ''}"
:duration "100ms"
(label
:class "overview-search-typetosearch-text"
:xalign 0
:text "Type to search"
)
)
)
)
; The overview
(eventbox
:onhoverlost `eww update overview_hover_name='{"class":"LMB: Focus | MMB: Close | RMB: Select/Move","title":"Activities Overview","workspace":{"id":5,"name":"5"},"icon": "/usr/share/icons/breeze-dark/actions/16/window.svg"}' &`
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
(revealer
:reveal "${overview_query == ''}"
:transition "slidedown"
:duration "${overview_query == '' ? '200ms cubic-bezier(0.05, 0.7, 0.1, 1)' : '100ms cubic-bezier(0.3, 0, 0.8, 0.15)'}"
:style "
transition: ${overview_query == '' ? '200ms cubic-bezier(0.05, 0.7, 0.1, 1)' : '100ms cubic-bezier(0.3, 0, 0.8, 0.15)'};
"
(revealer
:reveal "${overview_query == ''}"
:transition "crossfade"
:duration "${overview_query == '' ? '200ms cubic-bezier(0.05, 0.7, 0.1, 1)' : '100ms cubic-bezier(0.3, 0, 0.8, 0.15)'}"
:style "
transition: ${overview_query == '' ? '200ms cubic-bezier(0.05, 0.7, 0.1, 1)' : '100ms cubic-bezier(0.3, 0, 0.8, 0.15)'};
"
(box
:space-evenly false
:orientation "v"
:class "overview-window"
; :space-evenly false
; (label :text "${wsjsona}")
; (label :text "${selected}")
(centerbox
:class "overview-window-title"
(label :halign "start" :style "margin: 5px;" :text "${overview_hover_name.class}")
(box
:space-evenly false
:orientation "h"
(image
:class "overview-topbar-icon overview-icon"
:path {overview_hover_name.icon}
:image-height 30
:image-width 30
; :style "
; background-image: url('${overview_hover_name.icon}');
; "
)
(label :text "${overview_hover_name.title}")
)
(button
:halign "end"
:class "overview-topbar-button"
:onclick "scripts/toggle-overview.sh --close"
(label :text "")
)
)
(box
:orientation "h"
(for wspace in wsjsona
(workspacebox
:wspace {wspace}
)
)
)
(box
:orientation "h"
(for wspace in wsjsonb
(workspacebox
:wspace {wspace}
)
)
)
)
)
)
)
; Search Results
(box
:class "overview-search-area"
:space-evenly false
:halign "center"
:orientation "v"
(revealer
:reveal "${overview_query != ''}"
:transition "slidedown"
:duration "${overview_query == '' ? '100ms cubic-bezier(0.3, 0, 0.8, 0.15)' : '200ms cubic-bezier(0.05, 0.7, 0.1, 1)'}"
:style "
transition: ${overview_query == '' ? '100ms cubic-bezier(0.3, 0, 0.8, 0.15)' : '200ms cubic-bezier(0.05, 0.7, 0.1, 1)'};
"
(revealer
:reveal "${overview_query != ''}"
:transition "crossfade"
:duration "${overview_query == '' ? '100ms cubic-bezier(0.3, 0, 0.8, 0.15)' : '200ms cubic-bezier(0.05, 0.7, 0.1, 1)'}"
:style "
transition: ${overview_query == '' ? '100ms cubic-bezier(0.3, 0, 0.8, 0.15)' : '200ms cubic-bezier(0.05, 0.7, 0.1, 1)'};
"
(scroll
:width 502
:height 547
(box
:halign "center"
:orientation "v"
:class "overview-results"
:spacing 2
:space-evenly false
(for entry in overview_results
(overlay
:orientation "h"
:space-evenly false
(input
:value "${entry.name}"
:class "overview-search-result"
:onaccept "scripts/launchapp '${entry.exec}' &"
)
(image
:halign "start"
:class "overview-search-result-icon"
:path {(entry.icon != '_letter' && entry.icon != '') ? entry.icon : 'images/svg/dark/app.svg'}
:image-width 33
:image-height 33
)
)
)
)
)
)
)
)
)
)
(defwindow overview
:stacking "overlay"
:focusable true
:wm-ignore true
:monitor 0
:geometry (geometry
; :height 1080
; :width 1920
:y "153px"
:anchor "top center"
; :y "0px"
; :anchor "center center"
)
; (testing)
(overview)
)
+86
View File
@@ -0,0 +1,86 @@
; (defvar dash_curve_in "transition: 150ms cubic-bezier(0.05, 0.9, 0.1, 1.0);")
; (defvar dash_curve_out "transition: 80ms cubic-bezier(0.3, 0, 0.8, 0.15);")
(defwidget supercontext_widget []
(box :width RES_WIDTH :height RES_HEIGHT
(overlay
; Fullscreen box
(box
:width RES_WIDTH :height RES_HEIGHT
(eventbox
:onclick "scripts/toggle-supercontext.sh --close &"
:onmiddleclick "scripts/toggle-supercontext.sh --close &"
:onrightclick "scripts/toggle-supercontext.sh --close &"
)
)
(button ; Brutally kill button
:class "supercontext-button"
:tooltip "Brutally kill the active window"
:style "
margin-left: ${rev_supercontext ? (supercontext_pos_x + SUPERCONTEXT_OFFSET_X[0] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-right: ${rev_supercontext ? (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_OFFSET_X[0] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-top: ${rev_supercontext ? (supercontext_pos_y + SUPERCONTEXT_OFFSET_Y[0] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-bottom: ${rev_supercontext ? (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_OFFSET_Y[0] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
"
:onclick "scripts/toggle-supercontext.sh --close && pkill $(hyprctl activewindow -j | gojq -r '.class') &"
(label :text "Dangerous")
)
(box ; Workspace swap button
:style "
margin-left: ${rev_supercontext ? (supercontext_pos_x + SUPERCONTEXT_OFFSET_X[1] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-right: ${rev_supercontext ? (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_OFFSET_X[1] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-top: ${rev_supercontext ? (supercontext_pos_y + SUPERCONTEXT_OFFSET_Y[1] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-bottom: ${rev_supercontext ? (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_OFFSET_Y[1] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
transition: 100ms cubic-bezier(0.05, 0.7, 0.1, 1);
"
(eventbox
:class "supercontext-button-number-child"
:tooltip "Swap workspace windows with..."
:onscroll "eww update ws_to_swap=$(( ${ws_to_swap == 0 ? activews : ws_to_swap} + $(echo {} | sed -e 's/down/-1/g' -e 's/up/+1/g') ))"
:onclick "scripts/toggle-supercontext.sh --close && scripts/swapws ${activews} ${ws_to_swap} &"
(label :text {ws_to_swap == 0 ? '' : ws_to_swap})
)
)
(button
:class "supercontext-button"
:style "
margin-left: ${rev_supercontext ? (supercontext_pos_x + SUPERCONTEXT_OFFSET_X[2] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-right: ${rev_supercontext ? (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_OFFSET_X[2] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-top: ${rev_supercontext ? (supercontext_pos_y + SUPERCONTEXT_OFFSET_Y[2] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-bottom: ${rev_supercontext ? (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_OFFSET_Y[2] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
"
)
(button
:class "supercontext-button"
:style "
margin-left: ${rev_supercontext ? (supercontext_pos_x + SUPERCONTEXT_OFFSET_X[3] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-right: ${rev_supercontext ? (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_OFFSET_X[3] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-top: ${rev_supercontext ? (supercontext_pos_y + SUPERCONTEXT_OFFSET_Y[3] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-bottom: ${rev_supercontext ? (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_OFFSET_Y[3] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
"
)
(button
:class "supercontext-button"
:style "
margin-left: ${rev_supercontext ? (supercontext_pos_x + SUPERCONTEXT_OFFSET_X[4] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-right: ${rev_supercontext ? (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_OFFSET_X[4] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_WIDTH - supercontext_pos_x - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-top: ${rev_supercontext ? (supercontext_pos_y + SUPERCONTEXT_OFFSET_Y[4] - SUPERCONTEXT_BUTTON_RADIUS) : (supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
margin-bottom: ${rev_supercontext ? (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_OFFSET_Y[4] - SUPERCONTEXT_BUTTON_RADIUS) : (RES_HEIGHT - supercontext_pos_y - SUPERCONTEXT_BUTTON_RADIUS)}px;
"
)
)
)
)
(defwindow supercontext
:focusable true
:geometry (geometry
:x 0
:y 0
:width "100%"
:height "100%"
:anchor "center center"
)
:monitor 0
(supercontext_widget)
)
+187
View File
@@ -0,0 +1,187 @@
(defwidget system-menu []
(eventbox
:onhoverlost "${EWW_CMD} close system-menu"
(box
:class "system-menu-box"
:space-evenly false
:orientation "v"
(box
:class "module"
:space-evenly false
:spacing 5
:halign "end"
(syscpu)
(sysmem)
(sysbatt)
(settingscog)
)
(box
:class "top-row"
:space-evenly false
(label :class "time" :text "${time.hour}:${time.minute}")
(box
:class "date-box"
:space-evenly false
(label :class "date" :text "${time.day},")
(label :class "date" :text "${time.date}")
)
)
(box
:class "system-row"
:space-evenly false
(box
:class "wifi-box"
:space-evenly false
:orientation "v"
(box
:class "element icon"
:space-evenly false
(button
:class "wifi-button"
:onclick "scripts/net toggle"
{net.icon}
)
(label :class "separator" :text "|")
(button
:class "wifi-arrow-btn"
:onclick "eww close system-menu && nm-connection-editor &"
""
)
)
(label :text {net.essid} :xalign 0.5 :limit-width 15)
)
(box
:class "bluetooth-box"
:space-evenly false
:orientation "v"
(box
:class "element icon"
:space-evenly false
(button
:class "bluetooth-button"
:onclick "scripts/bluetooth toggle"
{bluetooth.icon}
)
(label :class "separator" :text "|")
(button
:class "bluetooth-arrow-btn"
:onclick "eww close system-menu && blueberry"
""
)
)
(label
:text {bluetooth.text}
:xalign 0.5
:tooltip "${bluetooth.text} ${bluetooth.batt_icon}"
:limit-width 15
)
)
(box
:class "airplane-box"
:space-evenly false
:orientation "v"
(box
:class "element"
(button
:class "airplane-button"
:onclick "scripts/airplane toggle"
airplane
)
)
(label :text "Airplane Mode" :xalign 0.5 :limit-width 16)
)
(box
:space-evenly false
:orientation "v"
(box
:class "element"
(button
:halign "end"
; :onclick "wlogout -p layer-shell &"
:onclick "wlogout"
""
)
)
(label
:text "Power"
:xalign 0.5
:limit-width 16
)
)
)
(audiolevels)
(box
:class "system-info-box"
; cpu
(box
:class "sys-box"
:space-evenly false
:halign "start"
(circular-progress
:value "${EWW_CPU.avg}"
:class "sys-cpu"
:thickness 3
(label
:text ""
:class "sys-icon-cpu icon"))
(box
:orientation "v"
:vexpand false
(label
:text "CPU"
:halign "start"
:class "sys-text-cpu")
(label
:text "${round(EWW_CPU.avg,2)}%"
:halign "start"
:class "sys-text-sub")
(label
:text "${EWW_CPU.cores[0].freq} MHz"
:halign "start"
:class "sys-text-sub")))
; memory
(box
:class "sys-box"
:space-evenly false
:halign "end"
(circular-progress
:value {memory.percentage}
:class "sys-mem"
:thickness 3
(label
:text ""
:class "sys-icon-mem icon"
)
)
(box
:orientation "v"
(label :text "Memory" :halign "start" :class "sys-text-mem")
(label :text "${memory.used} / ${memory.total}" :halign "start" :class "sys-text-sub")
(label :text "Swap ${memory.swapused} / ${memory.swaptotal}" :halign "start" :class "sys-text-sub")
)
)
)
)
)
)
;; windows
(defwindow system-menu
:wm-ignore true
:monitor 0
; :focusable true
:geometry (geometry
:x "0"
:y "0"
:width "0%"
:height "0%"
:anchor "right top")
(system-menu)
)
+186
View File
@@ -0,0 +1,186 @@
(defwidget themer_widget []
(box
:orientation "v"
:space-evenly false
:halign "fill"
:valign "fill"
(eventbox
:onclick "scripts/toggle-themer.sh --close &"
(box
:style "
${rev_themer ? '' : 'margin-top: -600px;'}
${anim_open_themer ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
min-height: 1px;
"
)
)
(eventbox
; :onhoverlost "${EWW_CMD} close themer && ${EWW_CMD} update themer_open=false"
(box
:space-evenly false
:orientation "h"
:class "themer-menu-box"
:style "
${rev_themer ? '' : 'margin-top: -600px;'}
${anim_open_themer ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
"
(box
:space-evenly false :orientation "v"
(box
:style "padding-left: 10px; padding-right: 10px; padding-top: 10px; font-size: 15pt;"
:valign "start"
:space-evenly false
:spacing 4
(button
:class "themer-action-button themer-get"
:onclick "scripts/toggle-themer.sh --close && scripts/colormanage get &"
""
)
(button
:class "themer-action-button themer-restore"
:onclick "scripts/toggle-themer.sh --close && scripts/colormanage default &"
""
)
(button
:class "themer-action-button"
:onclick "scripts/toggle-themer.sh --close && scripts/togglelight light &"
:tooltip "Light mode (for generating new themes)"
""
)
(button
:class "themer-action-button"
:onclick "scripts/toggle-themer.sh --close && scripts/togglelight dark &"
:tooltip "Dark mode (for generating new themes)"
""
)
)
(label
:class "themer-title"
:text "Color profiles"
:xalign 0
)
(box
:space-evenly false
:orientation "h"
:halign "center"
(label
:hexpand true
:class "themer-prompt"
:text "Save "
)
(input
:class "themer-input"
:onaccept "scripts/colormanage save {}"
)
)
(box
:halign "center"
:space-evenly false
:orientation "h"
(label
:hexpand true
:class "themer-prompt"
:text "Load "
)
(input
:class "themer-input"
:onaccept "scripts/colormanage load {}"
)
)
)
; colors
(box
:space-evenly false :orientation "v"
(label
:class "themer-title"
:text "Pywal Colors"
:xalign 0
)
(box
:spacing 3
:orientation "h"
:style "padding: 7px;"
(box :class "themer-color-preview preview-0" )
(box :class "themer-color-preview preview-1" )
(box :class "themer-color-preview preview-2" )
(box :class "themer-color-preview preview-3" )
(box :class "themer-color-preview preview-4" )
(box :class "themer-color-preview preview-5" )
(box :class "themer-color-preview preview-6" )
(box :class "themer-color-preview preview-7" )
)
(label
:class "themer-title"
:text "Primary, secondary"
:xalign 0
)
(box
:spacing 3
:orientation "h"
:style "padding: 7px;"
(box :class "themer-color-preview preview-primary" )
(box :class "themer-color-preview preview-onPrimary" )
(box :class "themer-color-preview preview-primaryContainer" )
(box :class "themer-color-preview preview-onPrimaryContainer" )
(box :class "themer-color-preview preview-secondary" )
(box :class "themer-color-preview preview-onSecondary" )
(box :class "themer-color-preview preview-secondaryContainer" )
(box :class "themer-color-preview preview-onSecondaryContainer" )
)
(label
:class "themer-title"
:text "Tertiary, bg, surface"
:xalign 0
)
(box
:spacing 3
:orientation "h"
:style "padding: 7px;"
(box :class "themer-color-preview preview-tertiary" )
(box :class "themer-color-preview preview-onTertiary" )
(box :class "themer-color-preview preview-tertiaryContainer" )
(box :class "themer-color-preview preview-onTertiaryContainer" )
(box :class "themer-color-preview preview-background" )
(box :class "themer-color-preview preview-onBackground" )
(box :class "themer-color-preview preview-surface" )
(box :class "themer-color-preview preview-onSurface" )
)
)
)
)
)
)
(defwindow themer
:wm-ignore true
:stacking "overlay"
:monitor 0
:geometry (geometry
:x "400px"
:y "61px"
:anchor "top right"
; :width "0px"
; :height "0px"
)
:focusable true
(themer_widget)
)
(defwidget themer []
(eventbox
:onscroll "hyprctl dispatch splitratio $(echo {} | sed -e \"s/up/-0.1/g\" -e \"s/down/+0.1/g\")"
:onhover "${EWW_CMD} update themer_hover=true"
:onhoverlost "${EWW_CMD} update themer_hover=false"
:class "osettings-toggle-button-${rev_themer}"
:onclick "scripts/toggle-themer.sh &"
(box
:class "module-button-pad-center"
:style "min-width: 53px;"
(image
:path "images/svg/beatmappacks.svg"
:image-width 33
:image-height 33
)
)
)
)
+205
View File
@@ -0,0 +1,205 @@
(defwidget winactions_widget []
(box
:space-evenly false
:orientation "v"
:style "
${anim_open_winactions ? 'transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 100ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winactions ? '' : 'margin-bottom: -700px;'}
"
(eventbox
:onclick "scripts/toggle-winactions.sh --close &"
:onmiddleclick "scripts/toggle-winactions.sh --close &"
:onrightclick "scripts/toggle-winactions.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
; Media controls
(revealer
:reveal {mname_win.title != ''}
:transition "slideup"
:duration "200ms"
(box
:class "winwin winactions-media-pad"
:space-evenly false :orientation "v"
:style "margin-bottom: 0px;"
:spacing 29
(box
:halign "start" :space-evenly false :orientation "h" :spacing 8
(label :class "win-segoeicon" :text "")
(label :class "win-segoeicon" :text "Media")
)
(box
:space-evenly false :orientation "h" :spacing 8
:width 346
(box
:space-evenly false :orientation "v" :hexpand true
(label :xalign 0 :limit-width 36 :class "winactions-media-title" :text {mname_win.title})
(label :xalign 0 :limit-width 36 :class "winactions-media-artist" :text {mname_win.artist})
)
(box
:halign "end"
:class "winactions-media-cover"
:style "background-image: url('${mcover.image}')"
)
)
(box
:halign "center"
:class "music-button-box-bar"
:spacing 42
(button
:class "winactions-media-button win-segoeicon"
:onclick "playerctl previous"
""
)
(button
:class "winactions-media-button win-segoeicon"
:onclick "playerctl play-pause"
"${music.status != '' ? (music.status == '' ? '' : '') : ''}"
)
(button
:class "winactions-media-button win-segoeicon"
:onclick "playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
""
)
)
)
)
(box
:class "winwin-top"
:space-evenly false
:orientation "v"
; Row 1: Network, Bluetooth, Airplane
(box
:class "winactions-togglerow"
:space-evenly false
(box :orientation "v" :space-evenly false
(box
:class "winactions-toggle winactions-toggle-${net.level != '0' && net.essid != 'lo'}"
:orientation "h"
(button
:onclick "scripts/net toggle"
:class "winactions-toggle-icon winactions-toggle-icon-left winwifi${net.level}${net.essid != 'lo' ? '-activated' : ''}"
)
(button
:onclick "gnome-control-center wifi &"
:class "winactions-toggle-icon winactions-toggle-arrow${(net.essid != 'lo') ? '-activated' : ''}"
)
)
(label :class "wintoggle-text" :text "${net.essid}")
)
(box :orientation "v" :space-evenly false
(box
:class "winactions-toggle winactions-toggle${bluetooth.text == 'Bluetooth off' ? '' : '-true'}"
:orientation "h"
(button
:onclick "scripts/bluetooth toggle &"
:class "winactions winactions-toggle-icon-left winbluetooth${bluetooth.text == 'Disconnected' ? '' : (bluetooth.text == 'Bluetooth off' ? '-false' : '-true')}"
)
(button
:onclick "blueberry &"
:class "winactions-toggle-icon-right winactions-toggle-arrow${bluetooth.text == 'Bluetooth off' ? '' : '-activated'}"
)
)
(label :class "wintoggle-text" :text "${bluetooth.text}")
)
(box :orientation "v" :space-evenly false
(box
:class "winactions-toggle winactions-toggle-center"
(button
:onclick "scripts/airplane toggle &"
:class "winactions-toggle-icon winactions-toggle-icon-center winactions-airplane"
)
)
(label :class "wintoggle-text" :text "Flight Mode")
)
)
; Row 2: Night light
(box
:class "winactions-togglerow"
:space-evenly false
(box
:orientation "v" :space-evenly false
(box
:class "winactions-toggle winactions-toggle-center winactions-toggle-${hyprjson.nightlight}"
(button
:onclick "scripts/toggle-nightlight.sh &"
:class "winactions-toggle-icon winactions-toggle-icon-center winactions-nightlight${hyprjson.nightlight ? '-activated' : ''}"
)
)
(label :class "wintoggle-text" :text "Night Light")
)
)
(box :height 30)
; Slider 1: brightness
(box
:space-evenly false
:orientation "h"
:class "winactions-sliderrow "
(box :class "winicon winbrightness winactions-element")
(scale
:value "${brightness.level}"
:onchange "light -S {}"
:class "winslider winslider-winactions"
)
)
; Slider 1: Volume
(box
:space-evenly false
:orientation "h"
:class "winactions-sliderrow"
(button
:class "winicon winvol${volume.audio == 1 ? round(volume.percent / 33, 0) : 'mute'} winactions-element"
:onclick "scripts/volume mute SINK &"
)
(scale
:value "${volume.percent}"
:onchange "scripts/volume setvol SINK {}"
:class "winslider winslider-winactions"
)
)
)
(box
:class "winwin-bottom"
:space-evenly false
:orientation "v"
(centerbox
:space-evenly false
:orientation "h"
:class "winwin-bottom-pad"
(button
:class "winactions-bottom-button"
:halign "start"
:style "padding: 0 13px;"
:onclick "scripts/toggle-winactions.sh --close power &"
(box
:space-evenly false
:orientation "h"
(box :class "winicon winbat${round(battery.percentage / 10, 0)}")
(label :class "wintoggle winbartext" :text "${battery.percentage}%")
)
)
(box)
(box
(button
:halign "end"
:onclick "scripts/toggle-winactions.sh --close settings &"
:class "winactions-bottom-button wincog winicon"
)
)
)
)
)
)
(defwindow winactions
:wm-ignore true
:monitor 0
:focusable true
:geometry (geometry
:x "0px"
:y "50px"
:anchor "bottom right"
)
(winactions_widget)
)
+78
View File
@@ -0,0 +1,78 @@
(defwidget winbsod_widget []
(box
:space-evenly false
:orientation "v"
:class "thewholething"
:height 1080
:width 1920
(box
:height 1080
:width 1920
:class "winbsod-background"
(box
:orientation "v"
:space-evenly false :spacing 10
:halign "start" :valign "start"
:style "
margin-left: 200px;
margin-top: 115px;
"
(label :xalign 0
:class "winbsod-text winbsod-face"
:text ":(" ;) <-- closing bracket so that the formatter wont mess up lmao
)
(label :xalign 0
:class "winbsod-text winbsod-desc"
:halign "start" :valign "start"
:text "Your PC ran into a problem and needs to restart. We're \\\njust collecting some error info, and then we'll restart for \\\nyou." ;) <-- closing bracket so that the formatter wont mess up lmao
)
(label :xalign 0
:class "winbsod-text winbsod-desc"
:style "margin-top: 35px;"
:text "69% complete"
)
(box
:orientation "h"
:space-evenly false :spacing 20
:style "margin-top: 35px;"
(image
:path "images/pictures/qr_aur.png"
:image-width 115
:image-height 115
)
(box
:orientation "v"
:space-evenly false
(label :xalign 0 :yalign 0 :valign "start"
:class "winbsod-text winbsod-technicalinfo"
:text "Thanks for watching guys, stay safe"
)
(label :xalign 0 :yalign 0 :valign "start"
:class "winbsod-text winbsod-technicalinfo"
:style "margin-top: 35px;"
:text "If you're wondering, this QR code takes you to AUR homepage."
)
(label :xalign 0 :yalign 0 :valign "start"
:class "winbsod-text winbsod-technicalinfo"
:text "Stop code: ERRRRMMM"
)
)
)
)
)
)
)
(defwindow winbsod
:stacking "fg"
:focusable true
:wm-ignore true
:monitor 0
:namespace "gamebar"
:geometry (geometry
:height "100%"
:width "100%"
:anchor "center center"
)
(winbsod_widget)
)
+390
View File
@@ -0,0 +1,390 @@
(defwidget wingamebarwidget []
(box
:space-evenly false
:orientation "v"
:class "thewholething"
:height 1080
:width 1920
(overlay
(box
:height 1080
:width 1920
:class "wingamebar-overlay"
)
; Controls
(eventbox
:onclick "scripts/toggle-wingamebar.sh --close"
:onrightclick "scripts/toggle-wingamebar.sh --close"
:onmiddleclick "scripts/toggle-wingamebar.sh --close"
(box :space-evenly false
:style "
margin-left: ${RES_WIDTH / 2 + ((gamebarwidgets.controls.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.controls.size[0] / 2)};
margin-top: ${RES_HEIGHT / 2 + ((gamebarwidgets.controls.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.controls.size[1] / 2)};
margin-right: ${RES_WIDTH - (RES_WIDTH / 2 + ((gamebarwidgets.controls.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.controls.size[0] / 2))};
margin-bottom: ${RES_HEIGHT - (RES_HEIGHT / 2 + ((gamebarwidgets.controls.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.controls.size[1] / 2))};
"
:class "wingamebar-window"
:halign "center"
(box :space-evenly false :orientation "h"
:class "wingamebar-control-sidesection-left"
(button
:class "wingamebar-control-button"
(label :class "win-segoeicon wingamebar-control-button" :text "")
)
)
(box
:class "wingamebar-control-appsection"
(button
:class "wingamebar-control-button-active"
(label :class "win-segoeicon wingamebar-control-button" :text "")
)
(button
:class "wingamebar-control-button-active"
(label :class "win-segoeicon wingamebar-control-button" :text "")
)
(button
:class "wingamebar-control-button-active"
(label :class "win-segoeicon wingamebar-control-button" :text "")
)
)
(box :space-evenly false :orientation "h"
:class "wingamebar-control-sidesection-right"
(label :class "wingamebar-text wingamebar-text-clock" :text {time12})
)
)
)
; Capture
(box
:style "
margin-left: ${RES_WIDTH / 2 + ((gamebarwidgets.capture.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.capture.size[0] / 2)};
margin-top: ${RES_HEIGHT / 2 + ((gamebarwidgets.capture.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.capture.size[1] / 2)};
margin-right: ${RES_WIDTH - (RES_WIDTH / 2 + ((gamebarwidgets.capture.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.capture.size[0] / 2))};
margin-bottom: ${RES_HEIGHT - (RES_HEIGHT / 2 + ((gamebarwidgets.capture.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.capture.size[1] / 2))};
"
:class "wingamebar-window"
:orientation "v" :space-evenly false
(centerbox
:class "wingamebar-titlebar"
:valign "start" :height 33
(box
:space-evenly false :spacing 10
(label :xalign 0 :class "wingamebar-icon" :text "")
(label :xalign 0 :class "wingamebar-text" :text "Capture")
)
(box)
(label :halign "end" :xalign 1 :class "wingamebar-title" :text "")
)
(box
:class "wingamebar-capture"
:space-evenly false :spacing 21
(button
:valign "start"
:class "wingamebar-capture-button wingamebar-button"
:onclick "scripts/toggle-wingamebar.sh --close && grim ~/Pictures/Screenshots/screenshot_$(date '+%Y_%m_%_d..%H.%M').png &"
(label :class "win-segoeicon" :text "")
)
(button
:valign "start"
:class "wingamebar-capture-button-unavailable"
(label :class "win-segoeicon" :text "")
)
(button
:valign "start"
:class "wingamebar-capture-button wingamebar-button"
:onclick "scripts/toggle-wingamebar.sh --close && ~/.local/bin/record-script.sh ${record_sound ? '--sound ' : ''}&"
(label :class "win-segoeicon" :text "")
)
(button
:valign "start"
:class "wingamebar-capture-button wingamebar-button"
:onclick "${EWW_CMD} update record_sound='${!record_sound}'"
(label :class "win-segoeicon" :text "${record_sound ? '' : ''}")
)
)
(label :xalign 0 :class "wingamebar-content wingamebar-text wingamebar-subtext" :text {awin.title} :limit-width 38)
(eventbox
:class "wingamebar-button-pad"
:onclick "scripts/toggle-wingamebar.sh --close && xdg-open ~/Videos &"
(box
:class "wingamebar-content wingamebar-capture-bottom"
:space-evenly false :spacing 8
(label :class "win-segoeicon" :text "")
(label :class "wingamebar-text" :text "See my captures")
)
)
)
; Autio
(box
:style "
margin-left: ${RES_WIDTH / 2 + ((gamebarwidgets.audio.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.audio.size[0] / 2)};
margin-top: ${RES_HEIGHT / 2 + ((gamebarwidgets.audio.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.audio.size[1] / 2)};
margin-right: ${RES_WIDTH - (RES_WIDTH / 2 + ((gamebarwidgets.audio.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.audio.size[0] / 2))};
margin-bottom: ${RES_HEIGHT - (RES_HEIGHT / 2 + ((gamebarwidgets.audio.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.audio.size[1] / 2))};
"
:orientation "v" :space-evenly false
:class "wingamebar-window"
(centerbox
:class "wingamebar-titlebar"
:valign "start" :height 33
(box
:space-evenly false :spacing 10
(label :xalign 0 :class "wingamebar-icon" :text "")
(label :xalign 0 :class "wingamebar-text" :text "Audio")
)
(box)
(label :halign "end" :xalign 1 :class "wingamebar-title" :text "")
)
; Select audio/mic
(box
:space-evenly false :orientation "h"
:class "wingamebar-navbar"
(button
:class "wingamebar-navbar-button"
(label :class "wingamebar-text" :text "MIX")
)
)
; System volume
(box
:space-evenly false :orientation "v"
:class "wingamebar-audio-sys"
(label :xalign 0 :class "wingamebar-text wingamebar-text-small wingamebar-subtext"
:text "DEFAULT OUTPUT"
)
(label :xalign 0 :class "wingamebar-text" :style "padding-top: 21px; padding-bottom: 7px;"
:text {audiodevice} :limit-width 37
)
(box
:space-evenly false :orientation "h"
(button
:class "winicon winvol${volume.audio == 1 ? round(volume.percent / 33, 0) : 'mute'}"
:onclick "scripts/volume mute SINK &"
)
(scale
:value "${volume.percent}"
:onchange "scripts/volume setvol SINK {}"
:class "winslider winslider-gamebar-sys"
)
)
)
; (scroll
; :height 576
(box
:space-evenly false :orientation "v"
(for app in audiojson
(box
:orientation "v" :space-evenly false :spacing 17
:style "margin-top: 17px;"
(for ser in {app["volume"]}
(eventbox
:onscroll "pactl set-sink-input-volume ${ser[0]} $(echo {} | sed -e \"s/up/+5/g\" -e \"s/down/-5/g\")%"
:onrightclick "pactl set-sink-input-volume ${ser[0]} 100%"
:onclick "pactl set-sink-input-volume ${ser[0]} 0%"
(box :orientation "h" :space-evenly false :spacing 17
(image :class "wingamebar-audio-appicon" :image-width 37 :image-height 37
:path {app.icon}
)
(box :space-evenly false :orientation "v"
(label :xalign 0 :class "wingamebar-text" :text "${app.name} #${ser[0]}")
(box
:space-evenly false :orientation "h"
(button
:class "winicon winvol${round((ser[1] < 100 ? ser[1] : 100) / 33, 0)}"
:style "margin-right: 2px;"
)
(scale
:value {ser[1] <= 100 ? ser[1] : 100}
:onchange "pactl set-sink-input-volume ${ser[0]} {}%"
:class "winslider winslider-gamebar-app"
)
)
)
)
)
)
)
)
; )
)
)
; Performancee
(box :orientation "v" :space-evenly false
:style "
margin-left: ${RES_WIDTH / 2 + ((gamebarwidgets.performance.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.performance.size[0] / 2)};
margin-top: ${RES_HEIGHT / 2 + ((gamebarwidgets.performance.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) - (gamebarwidgets.performance.size[1] / 2)};
margin-right: ${RES_WIDTH - (RES_WIDTH / 2 + ((gamebarwidgets.performance.at[0] - (RES_WIDTH / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.performance.size[0] / 2))};
margin-bottom: ${RES_HEIGHT - (RES_HEIGHT / 2 + ((gamebarwidgets.performance.at[1] - (RES_HEIGHT / 2)) * (rev_wingamebar ? 1 : 1.03)) + (gamebarwidgets.performance.size[1] / 2))};
"
:class "wingamebar-window"
(centerbox
:class "wingamebar-titlebar"
:valign "start" :height 33
(box
:space-evenly false :spacing 10
(label :xalign 0 :class "wingamebar-icon" :text "")
(label :xalign 0 :class "wingamebar-text" :text "Performance")
)
(box)
(label :halign "end" :xalign 1 :class "wingamebar-title" :text "")
)
(box :orientation "h" :space-evenly false
(box :orientation "v" :space-evenly false
:class "wingamebar-performance-metricscolumn"
(button
:class "wingamebar-performance-metric-${resource_metric == 'cpu'}"
:onclick "${EWW_CMD} update resource_metric='cpu' &"
(label :xalign 0 :class "wingamebar-text"
:text "CPU ${round(EWW_CPU.avg, 0)}%"
)
)
(button
:class "wingamebar-performance-metric-${resource_metric == 'ram'}"
:onclick "${EWW_CMD} update resource_metric='ram' &"
(label :xalign 0 :class "wingamebar-text"
:text "RAM ${round(memory.percentage, 0)}%"
)
)
(button
:class "wingamebar-performance-metric-${resource_metric == 'swap'}"
:onclick "${EWW_CMD} update resource_metric='swap' &"
(label :xalign 0 :class "wingamebar-text"
:text "SWAP ${round(memory.swappercentage, 0)}%"
)
)
)
; Graph
(box :width 236 :height 191 :space-evenly false
:class "wingamebar-performance-grapharea"
(revealer :reveal {resource_metric == 'cpu'}
:transition "slideright" :duration "0ms"
(overlay
(box
:width 236 :height 191
:orientation "v" :space-evenly false
:class "wingamebar-performance-graph-graphpad"
(graph
:width 202 :height 117
:class "wingamebar-graph"
:value {round(EWW_CPU.avg, 0)}
:thickness 3
:time-range "30s"
:line-style "round"
)
)
(centerbox
:width 236 :height 191
:orientation "v" :space-evenly false
:class "wingamebar-performance-graphpad"
(box :space-evenly false :orientation "v"
(centerbox
(label :xalign 0 :class "wingamebar-text wingamebar-text-bigmetric" :text "${round(EWW_CPU.avg, 0)}%")
(box)
(label :xalign 1 :yalign 0 :class "wingamebar-text wingamebar-text-small" :text "100")
)
(label :xalign 0 :class "wingamebar-text wingamebar-subtext wingamebar-text-small" :text "${EWW_CPU['cores'][0]['freq']} MHz")
)
(box)
(centerbox
:valign "end"
(label :xalign 0 :class "wingamebar-text wingamebar-subtext wingamebar-text-small" :text "30 SECONDS")
(box)
(label :xalign 1 :yalign 1 :class "wingamebar-text wingamebar-text-small" :text "0")
)
)
)
)
(revealer :reveal {resource_metric == 'ram'}
:transition "slideright" :duration "0ms"
(overlay
(box
:width 236 :height 191
:orientation "v" :space-evenly false
:class "wingamebar-performance-graph-graphpad"
(graph
:width 202 :height 117
:class "wingamebar-graph"
:value {round(memory.percentage, 0)}
:thickness 3
:time-range "30s"
:line-style "round"
)
)
(centerbox
:width 236 :height 191
:orientation "v" :space-evenly false
:class "wingamebar-performance-graphpad"
(box :space-evenly false :orientation "v"
(centerbox
(label :xalign 0 :class "wingamebar-text wingamebar-text-bigmetric" :text "${round(memory.percentage, 0)}%")
(box)
(label :xalign 1 :yalign 0 :class "wingamebar-text wingamebar-text-small" :text "100")
)
(label :xalign 0 :class "wingamebar-text wingamebar-subtext wingamebar-text-small" :text "${memory.used}b")
)
(box)
(centerbox
:valign "end"
(label :xalign 0 :class "wingamebar-text wingamebar-subtext wingamebar-text-small" :text "30 SECONDS")
(box)
(label :xalign 1 :yalign 1 :class "wingamebar-text wingamebar-text-small" :text "0")
)
)
)
)
(revealer :reveal {resource_metric == 'swap'}
:transition "slideright" :duration "0ms"
(overlay
(box
:width 236 :height 191
:orientation "v" :space-evenly false
:class "wingamebar-performance-graph-graphpad"
(graph
:width 202 :height 117
:class "wingamebar-graph"
:value {round(memory.swappercentage, 0)}
:thickness 3
:time-range "30s"
:line-style "round"
)
)
(centerbox
:width 236 :height 191
:orientation "v" :space-evenly false
:class "wingamebar-performance-graphpad"
(box :space-evenly false :orientation "v"
(centerbox
(label :xalign 0 :class "wingamebar-text wingamebar-text-bigmetric" :text "${round(memory.swappercentage, 0)}%")
(box)
(label :xalign 1 :yalign 0 :class "wingamebar-text wingamebar-text-small" :text "100")
)
(label :xalign 0 :class "wingamebar-text wingamebar-subtext wingamebar-text-small" :text "${memory.swapused}b")
)
(box)
(centerbox
:valign "end"
(label :xalign 0 :class "wingamebar-text wingamebar-subtext wingamebar-text-small" :text "30 SECONDS")
(box)
(label :xalign 1 :yalign 1 :class "wingamebar-text wingamebar-text-small" :text "0")
)
)
)
)
)
)
)
)
)
)
(defwindow wingamebar
:stacking "overlay"
:focusable true
:wm-ignore true
:monitor 0
:namespace "gamebar"
:geometry (geometry
:height "100%"
:width "100%"
:anchor "center center"
)
(wingamebarwidget)
)
+91
View File
@@ -0,0 +1,91 @@
(defwidget winlang_widget []
(box
:space-evenly false
:orientation "v"
:style "
${anim_open_winlang ? 'transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 100ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winlang ? '' : 'margin-bottom: -700px;'}
"
(eventbox
:onclick "scripts/toggle-winlang.sh --close &"
:onmiddleclick "scripts/toggle-winlang.sh --close &"
:onrightclick "scripts/toggle-winlang.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(box
:space-evenly false :orientation "v"
:class "winwin-top"
:width 378
(box
:space-evenly false :spacing 10
:style "padding: 15px;"
(label :xalign 0
:class "winlang-text"
:text "Keyboard layout"
)
; (label :xalign 0
; :class "winlang-subtext"
; :text "Win + Space"
; )
)
(box
:space-evenly false :orientation "v"
(for language in langs
(button
:class "winlang-lang${language.name_ibus == lang_ibus.name_ibus ? '-true' : '-false'}"
:onclick "ibus engine ${language.name_ibus} && eww update lang_ibus='${language}' &"
:height 76
(box
:orientation "h" :space-evenly false :spacing 10
; :class "winlang-lang-true"
(label :xalign 0
:width 35
:text {language.name_abbr}
)
(box
:space-evenly false :orientation "v"
(label :xalign 0
:text {language.name}
)
(label :xalign 0
:text {language.name_method}
)
)
)
)
)
)
)
(box
:space-evenly false :orientation "v"
:class "winwin-bottom"
:width 420
(box
:class "winwin-bottom-pad"
(button
:class "winlang-bottom-button"
:onclick "scripts/toggle-winlang.sh --close && gnome-control-center keyboard &"
(label :xalign 0
:class "winlang-text"
:style "padding: 0 5px;"
:text "More keyboard settings"
)
)
)
)
)
)
(defwindow winlang
:wm-ignore true
:monitor 0
:focusable true
:geometry (geometry
:x "0px"
:y "50px"
:anchor "bottom right"
)
(winlang_widget)
)
+718
View File
@@ -0,0 +1,718 @@
(defwidget cavacol_winnews [nth dir]
(box
:valign "${dir == 'up' ? 'end' : (
dir == 'down' ? 'start' : (
dir == 'virt' ? 'center' : 'fill'
)
)}"
:halign "${dir == 'right' ? 'start' : (
dir == 'left' ? 'end' : (
dir == 'hori' ? 'center' : 'fill'
)
)}"
:width 15
:class "winnews-cava-column"
:style "
transition: 0ms;
min-${dir == 'up' || dir == 'down' ? 'height' : 'width'}: ${cavajson[nth] / 8}px;
"
)
)
(defwidget checkboxhyprctl-win [value changevalue]
(eventbox
:cursor "pointer"
:onclick "hyprctl keyword ${changevalue} ${1 - value} && scripts/hyprsettings tickle"
(box
:class "win-checkbox-${value}"
:halign "end"
)
)
)
(defwidget winnews_widget []
(box
:orientation "v" :space-evenly false
:width {RES_WIDTH / 2}
:height {RES_HEIGHT - 51}
:style "
${anim_open_winnews ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winnews ? '' : 'margin-left: -960px; margin-right: 960px;'}
"
(eventbox
:onclick "scripts/toggle-winnews.sh --close &"
:onmiddleclick "scripts/toggle-winnews.sh --close &"
:onrightclick "scripts/toggle-winnews.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 0px;"
)
)
(box :space-evenly false :orientation "v"
:width {RES_WIDTH / 2 - 24}
:height {RES_HEIGHT - 51}
:class "winwin"
(centerbox
:class "winnews-topbar"
:height 35
(box :space-evenly false :height 35
(label :class "winnews-clock" :text "Widgets")
)
(box :space-evenly false :height 35
(overlay
(box :space-evenly false
:class "winnews-search-prompt"
:height 33 :width 500
(box
:halign "start"
:class "winsearch-icon winstart-search-searchbox-icon"
:style "margin-left: 5px;"
)
(revealer
:reveal {oquery == ''}
:halign "start"
:duration "100ms"
(label :class "winnews-search-prompt-text" :xalign 0 :text "Search Widgets")
)
)
(input
:class "winnews-search-contents"
:onchange "${EWW_CMD} update oquery='{}' &"
)
)
)
(box :space-evenly false :height 35
:halign "end"
(label :class "winnews-clock" :text {time12})
(button
:halign "end"
:class "winnews-user"
:onclick "scripts/toggle-winnews.sh --close && gnome-control-center user-accounts &"
(box :height 35 :width 35
:class "winstart-user-icon"
)
)
)
)
(scroll
:height 930
(box :orientation "h" :spacing 12
:class "winnews-widgets"
(box :orientation "v" :spacing 12 :space-evenly false
; System info
(revealer
:reveal "${matches('fetch system information user distro kernel uptime de desktop packages',oquery)}"
:transition "slidedown"
:duration "200ms"
(revealer
:reveal "${matches('fetch system information user distro kernel uptime de desktop packages',oquery)}"
:transition "fade"
:duration "200ms"
(box :orientation "v" :space-evenly false
:class "winnews-widget"
(box
:orientation "h"
:space-evenly false
(label
:halign "start"
:class "winnews-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "winnews-section"
:text "System info"
)
)
(box
:orientation "v" :space-evenly false :valign "center"
:class "winnews-fetch-pad"
(box
:orientation "h" :space-evenly false :spacing 20
(label :class "winnews-fetch-icon" :text "")
(label :class "winnews-text" :text "${username + '@' + hostname}")
)
(box
:orientation "h" :space-evenly false :spacing 20
(label :class "winnews-fetch-icon" :text "")
(label :class "winnews-text" :text "${kernel}")
)
(box
:orientation "h" :space-evenly false :spacing 20
(label :class "winnews-fetch-icon" :text "")
(label :class "winnews-text" :text "${uptime}")
)
(box
:orientation "h" :space-evenly false :spacing 20
(label :class "winnews-fetch-icon" :text "")
(label :class "winnews-text" :text "${wm}")
)
(box
:orientation "h" :space-evenly false :spacing 20
(label :class "winnews-fetch-icon" :text "")
(label :class "winnews-text" :text "${packages}")
)
)
)
)
)
; Mouse and touchpad
(revealer
:reveal "${matches('mouse and touchpad touch pad mouse speed mouse acceleration osu raw input sensitivity disable while typing disable_while_typing tap to click clickfinger_behavior',oquery)}"
:transition "slidedown"
:duration "200ms"
(box :orientation "v" :space-evenly false
:class "winnews-widget"
(box
:orientation "h" :space-evenly false
(label
:halign "start"
:class "winnews-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "winnews-section"
:text "Mouse & Touchpad"
)
)
(revealer
:reveal "${matches('mouse and touchpad touch pad speed mouse acceleration osu raw input sensitivity',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
(eventbox
:onrightclick "hyprctl keyword input:sensitivity 0"
(box
:space-evenly false
:orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Sensitivity"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.input_sensitivity * 50 + 50}"
:onchange "hyprctl keyword input:sensitivity $(echo - | awk '{print {} / 50 - 1}') && scripts/hyprsettings tickle"
)
)
)
(centerbox :orientation "h"
:halign "fill"
:class "winnews-option"
(label
:xalign 0
:wrap true
:class "winnews-text"
:text "Raw input"
)
(box)
(checkboxhyprctl-win
:value "${hyprjson.force_no_accel}"
:changevalue "input:force_no_accel"
:halign "end"
:class "win-checkbox"
)
)
)
)
(revealer
:reveal "${matches('mouse and touch pad touchpad disable while typing disable_while_typing',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
(centerbox
:class "winnews-option"
:orientation "h"
:halign "fill"
(label
:halign "start"
:class "winnews-text"
:text "Disable touchpad while typing"
)
(box)
(checkboxhyprctl-win
:value "${hyprjson.touchpad_disable_while_typing}"
:changevalue "input:touchpad:disable_while_typing"
:class "win-checkbox"
)
)
)
)
(revealer
:reveal "${matches('mouse and touchpad touch pad tap to click clickfinger_behavior',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
(centerbox :orientation "h"
:halign "fill"
:class "winnews-option"
(label
:halign "start"
:class "winnews-text"
:text "Tap to click"
)
(box)
(checkboxhyprctl-win
:value "${hyprjson.touchpad_clickfinger_behavior}"
:changevalue "input:touchpad:clickfinger_behavior"
)
)
)
)
)
)
; Appearance
(revealer
:reveal "${matches('appearance looks customization blur size blur passes blur strength blur xray',oquery)}"
:transition "slidedown"
:duration "200ms"
(revealer
:reveal "${matches('appearance looks customization blur size blur passes blur strength blur xray',oquery)}"
:transition "fade"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-widget"
(box
:orientation "h" :space-evenly false
(label
:halign "start"
:class "winnews-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "winnews-section"
:text "Blur"
)
)
(centerbox
:orientation "h"
:halign "fill"
:class "winnews-option"
(label
:halign "start"
:class "winnews-text"
:text "Enable blur"
)
(box)
(checkboxhyprctl-win
:value "${hyprjson.blur}"
:changevalue "decoration:blur"
)
)
(revealer
:reveal "${matches('appearance looks customization blur size blur strength',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Blur size"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.blur_size}"
:tooltip "Blur size: ${hyprjson.blur_size}"
:onchange "hyprctl keyword decoration:blur_size {} && scripts/hyprsettings tickle"
)
)
)
(revealer
:reveal "${matches('appearance looks customization blur passes blur strength',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Blur passes"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.blur_passes * 10}"
:tooltip "Blur passes: ${hyprjson.blur_passes}"
:onchange "hyprctl keyword decoration:blur_passes $(({} / 10)) && scripts/hyprsettings tickle"
)
)
)
(revealer
:reveal "${matches('appearance looks customization blur xray',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-option"
(centerbox
:orientation "h"
:halign "fill"
(label
:halign "start"
:class "winnews-text"
:text "Blur xray"
)
(box)
(checkboxhyprctl-win
:value "${hyprjson.blur_xray}"
:changevalue "decoration:blur_xray"
)
)
)
)
)
)
) ; Revealer
(revealer
:reveal "${matches('appearance looks customization gaps gaps_in inner gaps: inner gaps_out outer gaps: outer space border_size border size border thickness rounding corner',oquery)}"
:transition "slidedown"
:duration "200ms"
(revealer
:reveal "${matches('appearance looks customization gaps gaps_in inner gaps: inner gaps_out outer gaps: outer space border_size border size border thickness rounding corner',oquery)}"
:transition "fade"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-widget"
(box
:orientation "h"
:space-evenly false
:spacing 10
(label
:halign "start"
:class "winnews-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "winnews-section"
:text "Gaps/Borders"
)
)
(revealer
:reveal "${matches('appearance looks customization gaps_in inner gaps: inner space',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Gaps: Inner"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.gaps_in}"
:tooltip "Inner gaps: ${hyprjson.gaps_in}"
:onchange "hyprctl keyword general:gaps_in {} && scripts/hyprsettings tickle"
)
)
)
(revealer
:reveal "${matches('appearance looks customization gaps_out outer gaps: outer space',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Gaps: Outer"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.gaps_out}"
:tooltip "Outer gaps: ${hyprjson.gaps_out}"
:onchange "hyprctl keyword general:gaps_out {} && scripts/hyprsettings tickle"
)
)
)
(revealer
:reveal "${matches('appearance looks customization border_size border size border thickness',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Border size"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.border_size}"
:tooltip "Border size: ${hyprjson.border_size}"
:onchange "hyprctl keyword general:border_size {} && scripts/hyprsettings tickle"
)
)
)
(revealer
:reveal "${matches('appearance looks customization rounding corner',oquery)}"
:transition "slidedown"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:class "winnews-option"
(label
:halign "start"
:wrap true
:class "winnews-text"
:text "Rounding"
)
(scale
:class "winslider winslider-winnews"
:value "${hyprjson.rounding}"
:tooltip "Border size: ${hyprjson.rounding}"
:onchange "hyprctl keyword decoration:rounding {} && scripts/hyprsettings tickle"
)
)
)
)
)
) ; Revealer
)
; 2nd column
(box :orientation "v" :spacing 12 :space-evenly false
(revealer ; Quote
:reveal "${matches('quote speech vaxry linus torvalds hyprland',oquery)}"
:transition "slidedown"
:duration "200ms"
(revealer
:reveal "${matches('quote speech vaxry linus torvalds hyprland',oquery)}"
:transition "fade"
:duration "200ms"
(box :orientation "v" :space-evenly false
:class "winnews-widget"
(box
:orientation "h"
:space-evenly false
(label
:halign "start"
:class "winnews-section-icon"
:text "Assistant"
)
(label
:halign "start"
:wrap true
:class "winnews-section"
:text "Quote"
)
)
(box
:orientation "v" :space-evenly false :valign "center"
:class "winnews-fetch-pad"
(box
:orientation "h" :space-evenly false :spacing 20
(label :class "winnews-fetch-icon" :text "Chat")
(label :class "winnews-text" :text {quote_content[4]})
)
(box
:orientation "h" :space-evenly false :spacing 10
:halign "end"
:style "margin-right: 20px;"
(label :class "winnews-fetch-icon" :text "Person")
(label :class "winnews-text" :text {quote_author[4]})
)
)
)
)
)
(revealer ; Waifu
:reveal "${matches('waifu anime cute sex segs ecchi hentai',oquery)}"
:transition "slidedown"
:duration "200ms"
(revealer
:reveal "${matches('waifu anime cute sex segs ecchi hentai',oquery)}"
:transition "fade"
:duration "200ms"
(box :orientation "v" :space-evenly false
:class "winnews-widget-nopad"
(box
:orientation "h"
:space-evenly false
(label
:halign "start"
:class "winnews-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:hexpand true
:class "winnews-section"
:text "Random waifu"
)
(eventbox
:onclick "scripts/toggle-winnews.sh --close && xdg-open 'https://waifu.pics/' &"
:cursor "pointer"
(label
:halign "end"
:wrap true
:class "winnews-link winnews-title-right"
:text "(https://waifu.pics/)"
)
)
)
; Tag strip
(scroll
:halign "fill"
:hscroll true :vscroll false
(box
:class "winnews-tag-strip"
:space-evenly false
(for id in WAIFU_TAG_ID
(button
:class "winnews-tag"
:onclick "eww update waifu_get=$(scripts/waifupics.py ${WAIFU_CATEGORIES_ARGS[id]}) &"
(label :class "wintoggle-text" :text {WAIFU_CATEGORIES[id]})
)
)
)
)
; Totally necessary bunny ears
(label
:halign "start"
:wrap true
:hexpand true
:halign "center"
:text "
⠀⠀⢀⡤⣄⡀
⠀⢠⡏⠀⠀⠳⡄⠀⠀⠀⠀⠀ ⣀⣀⣀
⠀⢸⠃⠀⠀⠀⢿⠀⠀⠀⠀ ⣼⠃⠀⠘⢧
⠀⢸⡆⠀⠀⠀⠸⡆⠀⠀ ⣸⠃⠀⠀⠀⠈⢧
⠀⠈⣇⠀⠀⠀ ⣧⠀ ⠀ ⡏⠀⢦⠀⠀⠀⠸⡆
⠀ ⢹⡀⠀⠀⠀⢸⠀ ⢸⠇⠀⠘⢧⡀⣸⠃
⠀ ⠀⢳⠀⠀⠀⢸⡆ ⢸⠀ ⠀⣼⠙
"
:style "margin-bottom: -20px;"
)
; The image
(box
:orientation "v" :space-evenly false :valign "center"
(box
:class "winnews-waifu"
:style "
background-image: url('${(waifu_get == 'null' || waifu_get == '') ? 'eww_covers/waifu' : waifu_get}');
"
)
)
)
)
) ; Waifu: end
(revealer ; Cava
:reveal "${matches('cava music audio visualizer sound volume beats',oquery)}"
:transition "slidedown"
:duration "200ms"
(revealer
:reveal "${matches('cava music audio visualizer sound volume beats',oquery)}"
:transition "fade"
:duration "200ms"
(overlay
(box :orientation "h"
:height 150
:class "winnews-widget-nopad-cava"
(cavacol_winnews :dir "up" :nth 0)
(cavacol_winnews :dir "up" :nth 1)
(cavacol_winnews :dir "up" :nth 2)
(cavacol_winnews :dir "up" :nth 3)
(cavacol_winnews :dir "up" :nth 4)
(cavacol_winnews :dir "up" :nth 5)
(cavacol_winnews :dir "up" :nth 6)
(cavacol_winnews :dir "up" :nth 7)
(cavacol_winnews :dir "up" :nth 8)
(cavacol_winnews :dir "up" :nth 9)
(cavacol_winnews :dir "up" :nth 10)
(cavacol_winnews :dir "up" :nth 10)
(cavacol_winnews :dir "up" :nth 10)
(cavacol_winnews :dir "up" :nth 12)
(cavacol_winnews :dir "up" :nth 14)
(cavacol_winnews :dir "up" :nth 16)
(cavacol_winnews :dir "up" :nth 18)
(cavacol_winnews :dir "up" :nth 20)
(cavacol_winnews :dir "up" :nth 22)
(cavacol_winnews :dir "up" :nth 24)
(cavacol_winnews :dir "up" :nth 26)
(cavacol_winnews :dir "up" :nth 28)
(cavacol_winnews :dir "up" :nth 30)
(cavacol_winnews :dir "up" :nth 32)
(cavacol_winnews :dir "up" :nth 34)
)
(box
:orientation "h"
:space-evenly false
:valign "start"
(label
:halign "start"
:class "winnews-section-icon"
:text ""
)
(label
:halign "start"
:wrap true
:class "winnews-section"
:text "Cava"
)
)
)
)
) ; Cava: end
)
)
)
)
)
)
(defwindow winnews
:wm-ignore true
:focusable true
:monitor 0
:geometry (geometry
:width "50%"
; :height "0%"
:anchor "top left"
)
(winnews_widget)
)
(defwidget winnews-button []
(eventbox
:class "winbarbutton-h winnewsicon-interaction"
:onclick "scripts/toggle-winnews.sh &"
:onmiddleclick "playerctl play-pause"
:onrightclick "playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
:onscroll "echo $(echo {} | sed -e 's/down/-/g' -e 's/up/+/g' | xargs -I% wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.03%) && scripts/volume osd"
(box
:class "winbutton-pad"
(box
:class "winnewsicon winbutton-${rev_winnews}"
)
)
)
)
+229
View File
@@ -0,0 +1,229 @@
(defwidget winnotifs []
(centerbox
:orientation "v"
:style "
${anim_open_winnotif ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winnotif ? '' : 'margin-right: -700px;'}
min-height: 1033px;
"
(box
:space-evenly false
:orientation "v"
:halign "start"
(eventbox
:valign "start"
:onclick "scripts/toggle-winnotif.sh --close &"
:onmiddleclick "scripts/toggle-winnotif.sh --close &"
:onrightclick "scripts/toggle-winnotif.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(box
:class "winwin"
:space-evenly false
:orientation "v"
:style "margin-bottom:6px;"
(centerbox
(box
:orientation "h"
:space-evenly false
:spacing 10
(label
:halign "start"
:class "winnotif-text winnotif-title"
:text "Notifications"
)
)
(box)
(box
:class "icon"
:halign "end"
:space-evenly false
:style "margin-right: 12px;"
(button
:class "winnotif-button"
:tooltip "Refresh"
:onclick "dunstctl history > $XDG_CACHE_HOME/dunst-history.json &"
(image
:path "images/svg/dark/reset.svg"
:image-width 19
:image-height 19
)
)
(button
:class "winnotif-button"
:tooltip "Pause/Resume Notifications"
:onclick "scripts/notifications toggle &"
{notif_icons.toggle_icon}
)
(button
:class "wintoggle-text winnotif-button"
:tooltip "Clear Notifications"
:onclick "scripts/notifications clear &"
"Clear all"
)
)
)
(scroll
:width 400
:valign "start"
:style "
min-height: ${rev_wincalendar ? 357 : 811}px;
transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);
"
(box
:space-evenly false
:orientation "v"
(for i in notifications
(eventbox
:onclick "dunstctl history-pop ${i.id} && dunstctl action 0 && dunstctl close"
(box
:orientation "v"
:width 400
:space-evenly false
(box
:orientation "h"
:space-evenly false
:class "winwin-bottom-pad"
(image :class "winapp winnotif-notif-icon" :path "images/svg/dark/app.svg")
(label :class "winnotif-appname" :text {i.appname})
)
(box
:orientation "v"
:space-evenly false
:class "winnotif-notif"
(label
:xalign 0
:wrap true
:class "winnotif-text"
:text {i.summary}
)
(label
:xalign 0
:wrap true
:class "winnotif-text winnotif-bodytext"
:text {i.body}
)
)
)
)
)
)
)
)
)
(box :valign "center")
; Calendar
(box
:space-evenly false
:orientation "v"
:valign "end"
(box
:space-evenly false
:orientation "v"
:class "winwin-topbar"
:style "margin-top: 6px;"
(centerbox
:orientation "h"
:style "padding: 0 12px;"
(label :xalign 0 :class "wincalendar-title" :text "${time.day}, ${time.monthname} ${day_only}")
(box)
(button
:halign "end"
:class "winnotif-button winarrow-${rev_wincalendar ? 'down' : 'up'}"
:tooltip "Show/Hide Calendar"
:onclick "${EWW_CMD} update rev_wincalendar=${!rev_wincalendar}"
)
)
)
(box
:space-evenly false
:orientation "v"
:class "winnotif-calendar"
:style "
min-height: ${rev_wincalendar ? 408 : 0}px;
transition: ${rev_wincalendar ? '152ms' : '149ms'} cubic-bezier(0.05, 0.7, 0.1, 1);
"
(revealer
:reveal {rev_wincalendar}
:transition "slideup"
:duration "${rev_wincalendar ? '0ms' : '149ms'}"
(eventbox
:onscroll "scripts/scrollmonth {} &"
(box
:orientation "v"
:space-evenly false
(centerbox
:style "padding: 0 12px;"
(label :xalign 0 :class "wincalendar-title" :text "${calendartitle}")
(box)
(box
:halign "end"
(button
:onclick "scripts/scrollmonth up &"
:halign "end"
:class "winicon winnotif-monthbutton"
(image
:path "images/svg/dark/caretup.svg"
)
)
(button
:onclick "scripts/scrollmonth down &"
:halign "end"
:class "winicon winnotif-monthbutton"
(image
:path "images/svg/dark/caretdown.svg"
)
)
)
)
(box
(for day in weekdays
(box
:class "wincalendar-button day${day.today}"
(label :class "wincalendar-text" :text "${day.day}")
)
)
)
(for week in calendar
(box
(for day in week
(button
:class "wincalendar-button day${day.today}"
(label :class "wincalendar-text" :text "${day.day}")
)
)
)
)
)
)
)
)
(box
:space-evenly false
:orientation "v"
:class "winwin-bottom"
(box
:space-evenly false
:orientation "h"
:class "winwin-bottom-pad"
(label :xalign 0 :class "wincalendar-title" :text "Calendar")
)
)
)
)
)
(defwindow winnotif
:wm-ignore true
:monitor 0
:focusable true
:geometry (geometry
:x "0px"
:y "51px"
:height 1029
:anchor "bottom right"
)
(winnotifs)
)
+77
View File
@@ -0,0 +1,77 @@
(defwidget winosdwidget_vol []
(box
:class "winosd-var"
:orientation "h"
:space-evenly false
:style "
${osd_vol ? '' : 'margin-bottom: -90px; margin-top: 90px;'}
${osd_vol ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
"
(box
:orientation "h" :space-evenly false :spacing 5
:class "winactions-sliderrow"
(image :class "winicon" :path "images/svg/dark/vol${volume.audio == 1 ? round(volume.percent / 33, 0) : 'mute'}.svg")
(scale
:value {volume.percent}
:onchange "scripts/volume setvol SINK {} &"
:class "winslider-osd"
)
(label :class "winnotif-text" :text {volume.percent})
)
)
)
(defwidget winosdwidget_bright []
(box
:class "winosd-var"
:orientation "h"
:space-evenly false
:style "
${osd_bright ? '' : 'margin-bottom: -90px; margin-top: 90px;'}
${osd_bright ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
"
(box
:orientation "h" :space-evenly false :spacing 5
:class "winactions-sliderrow"
(image :class "winicon" :path "images/svg/dark/brightness.svg")
(scale
:value {round(brightness.level, 0)}
:onchange "light -S {} && scripts/brightness osd &"
:class "winslider-osd"
)
(label :class "winnotif-text" :text {round(brightness.level, 0)})
)
)
)
(defwindow winosd_vol
:stacking "overlay"
:wm-ignore true
:monitor 0
:geometry (geometry
:x "0%"
:y "50px"
:width "100px"
:height "53px"
:anchor "bottom center"
)
:stacking "fg"
:exclusive false
(winosdwidget_vol)
)
(defwindow winosd_bright
:stacking "overlay"
:wm-ignore true
:monitor 0
:geometry (geometry
:x "0%"
:y "50px"
:width "100px"
:height "53px"
:anchor "bottom center"
)
:stacking "fg"
:exclusive false
(winosdwidget_bright)
)
+137
View File
@@ -0,0 +1,137 @@
(defwidget workspacebox [wspace]
(box ; Note: height 100px width 356px
:class "overview-ws overview-ws-${wspace[0].workspace.id == activews}"
(box
:space-evenly false
:orientation "h"
:style "
min-width: ${RES_WIDTH * OVERVIEW_SCALE}px;
min-height: ${RES_HEIGHT * OVERVIEW_SCALE}px;
"
(for ws-window in wspace
(box
:class "${ws-window.class == 'workspace' ? '' : 'overview-ws-window'}"
:style "
${ws-window.address == selected ? 'border: 1px solid #FFFFFF' : ''};
${ws-window.address == '_none' ? 'border: none' : ''};
margin-left: ${ws-window.at[0] * OVERVIEW_SCALE}px;
margin-top: ${ws-window.at[1] * OVERVIEW_SCALE}px;
margin-right: -${(ws-window.at[0] + ws-window.size[0]) * OVERVIEW_SCALE}px;
margin-bottom: ${RES_HEIGHT * OVERVIEW_SCALE - ((ws-window.at[1] + ws-window.size[1]) * OVERVIEW_SCALE)};
"
(eventbox
:onrightclick "scripts/selectwindow ${ws-window.address} '${EWW_CMD}' ${ws-window.workspace.id}"
:onmiddleclick "hyprctl dispatch closewindow address:${ws-window.address}"
:onclick "scripts/focuswindow ${ws-window.address} ${ws-window.workspace.id} && scripts/toggle-overview.sh --close &"
:onhover "${ws-window.class == 'workspace' ? '' : (EWW_CMD + ' update overview_hover_name=\'' + ws-window + '\'')}"
(box
:class "overview-background"
; Uncomment below to enable thumbnail previews (VERY SLOW)
; :style "
; background-image: url('scripts/cache/thumbnails/${ws-window.address }.png');
; "
(image
:class "overview-icon"
:path {ws-window.icon}
; :image-width {round(ws-window.size[0] > ws-window.size[1] ? (ws-window.size[1] * 45 / 100 * OVERVIEW_SCALE) : (ws-window.size[0] * 45 / 100 * OVERVIEW_SCALE))}
; :image-height {round(ws-window.size[0] > ws-window.size[1] ? (ws-window.size[1] * 45 / 100 * OVERVIEW_SCALE) : (ws-window.size[0] * 45 / 100 * OVERVIEW_SCALE))}
:image-width {round(ws-window.size[0] * OVERVIEW_SCALE * 45 / 100, 0)}
:image-height {round(ws-window.size[1] * OVERVIEW_SCALE * 45 / 100, 0)}
; :style "
; background-size: ${ws-window.size[0] > ws-window.size[1] ? 'auto 45%' : '45% auto'};
; background-image: url('${ws-window.icon}')
; ;
; "
)
)
)
)
)
)
)
)
(defwidget winoverview_widget []
(box
:space-evenly false
:orientation "v"
:class "thewholething"
(eventbox
:onclick "scripts/toggle-overview.sh --close &"
:onmiddleclick "scripts/toggle-overview.sh --close &"
:onrightclick "scripts/toggle-overview.sh --close &"
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
)
(eventbox
:onhoverlost `eww update overview_hover_name='{"class":"LMB: Focus | MMB: Close | RMB: Select/Move","title":"Activities Overview","workspace":{"id":5,"name":"5"},"icon": "/usr/share/icons/breeze-dark/actions/16/window.svg"}' &`
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
(box
:space-evenly false
:orientation "v"
:class "overview-window"
; :space-evenly false
; (label :text "${wsjsona}")
; (label :text "${selected}")
(centerbox
:class "overview-window-title"
(label :halign "start" :style "margin: 5px;" :text "${overview_hover_name.class}")
(box
:space-evenly false
:orientation "h"
(image
:class "overview-topbar-icon overview-icon"
:path {overview_hover_name.icon}
:image-height 30
:image-width 30
; :style "
; background-image: url('${overview_hover_name.icon}');
; "
)
(label :text "${overview_hover_name.title}")
)
(button
:halign "end"
:class "overview-topbar-button"
:onclick "scripts/toggle-overview.sh --close"
(label :text "")
)
)
(box
:orientation "h"
(for wspace in wsjsona
(workspacebox
:wspace {wspace}
)
)
)
(box
:orientation "h"
(for wspace in wsjsonb
(workspacebox
:wspace {wspace}
)
)
)
)
)
)
)
(defwindow winoverview
:stacking "overlay"
:focusable true
:wm-ignore true
:monitor 0
:geometry (geometry
; :height 1080
; :width 1920
; :y "103px"
:anchor "bottom center"
; :y "0px"
; :anchor "center center"
)
; (testing)
(winoverview_widget)
)
+70
View File
@@ -0,0 +1,70 @@
(defwidget winpower []
(box
:space-evenly false
:orientation "v"
:style "
${anim_open_winpowermenu ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winpowermenu ? '' : 'margin-bottom: -700px; margin-top: 700px;'}
"
(eventbox
:valign "start"
:onclick "scripts/toggle-winpowermenu.sh --close &"
:onmiddleclick "scripts/toggle-winpowermenu.sh --close &"
:onrightclick "scripts/toggle-winpowermenu.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(box
:class "winpower-window"
:orientation "v"
:width 161
:space-evenly false
(button
:onclick "systemctl suspend &"
:class "winpower-button"
(box
:space-evenly false
(image :class "win-segoeicon"
:class "winpower-buttonicon"
:path "images/svg/dark/moon.svg"
:image-width 20 :image-height 20
)
(label :class "winbartext" :text "Sleep")
)
)
(button
:onclick "systemctl poweroff &"
:class "winpower-button"
(box
:space-evenly false
(label :xalign 0 :class "winpower-buttonicon win-segoeicon" :text "")
(label :xalign 0 :class "winbartext" :text "Shut down")
)
)
(button
:onclick "systemctl reboot &"
:class "winpower-button"
(box
:space-evenly false
(label :xalign 0 :class "winpower-buttonicon win-segoeicon" :text "")
(label :xalign 0 :class "winbartext" :text "Restart")
)
)
)
)
)
(defwindow winpowermenu
:wm-ignore true
:monitor 0
:focusable true
:namespace "noblur"
:geometry (geometry
:x "1140px"
:y "126px"
:width 161
:anchor "bottom left"
)
(winpower)
)
+469
View File
@@ -0,0 +1,469 @@
(defwidget winnotif_shadows_widget []
(centerbox
:space-evenly false
:orientation "v"
:style "
${anim_open_winnotif ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winnotif ? '' : 'margin-right: -700px;'}
min-height: 1033px;
"
(box
:space-evenly false
:orientation "v"
:halign "start"
(eventbox
:valign "start"
:onclick "scripts/toggle-winnotif.sh --close &"
:onmiddleclick "scripts/toggle-winnotif.sh --close &"
:onrightclick "scripts/toggle-winnotif.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(box
:class "winwin-shadow"
:space-evenly false
:orientation "v"
:style "margin-bottom:6px;"
(centerbox
(box)
(box)
(box
:class "icon"
:halign "end"
:space-evenly false
:style "margin: 19px; min-height: 21px;"
)
)
(box
:width 400
:valign "start"
:style "
min-height: ${rev_wincalendar ? 357 : 811}px;
transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);
"
(box
:space-evenly false
:orientation "v"
)
)
)
)
(box :valign "center")
; Calendar
(box
:space-evenly false
:orientation "v"
:valign "end"
:height {rev_wincalendar ? 601 : 149}
:class "winwin-shadow"
:style "margin-bottom: 12px;"
)
)
)
(defwidget winnews_shadows_widget []
(box
:orientation "v" :space-evenly false
:style "
${anim_open_winnews ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winnews ? '' : 'margin-left: -960px;'}
"
(box :space-evenly false :orientation "v"
:width {RES_WIDTH / 2}
:height {RES_HEIGHT - 51}
:class "winwin-shadow"
)
)
)
(defwidget winstart_shadows_widget []
(box
:space-evenly false
:orientation "v"
:style "
${anim_open_winstart ? 'transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 100ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winstart ? '' : 'margin-bottom: -900px;'}
"
(box
:space-evenly false
:orientation "v"
:class "winwin-top-shadow"
:height 113
:width 676
:style "
${winsearch != '' ? 'min-width: 811px;' : 'min-width: 676px;'}
"
(box
:valign "end"
:space-evenly false
:class "winstart-search-prompt"
(box
:halign "start"
:class "winsearch-icon winstart-search-searchbox-icon"
)
)
)
(revealer
:reveal {winsearch != ''}
:transition "slidedown"
:duration "0ms"
(box
:space-evenly false
:orientation "v"
:class "winwin-bottom-light-shadow"
:height 682
:width 676
:style "
${winsearch != '' ? 'min-width: 811px;' : 'min-width: 676px;'}
"
; Tag strip
(box
:class "winsearch-tag-strip"
:space-evenly false
)
(box
:height 627
:space-evenly false
:orientation "h"
:class "winsearch-pad"
:spacing 11
; Search results list
(scroll
:width 404
(box
:width 404
:space-evenly false
:orientation "v"
:class "winsearch-result-list"
)
)
; More options
(revealer
:reveal {winsearch != ''}
:transition "slideleft"
:duration "50ms"
; Entry actions panel
(box
:orientation "v"
:space-evenly false
:width 404
)
)
)
)
)
(revealer
:reveal {winsearch == ''}
:transition "slidedown"
:duration "0ms"
(box
:space-evenly false
:orientation "v"
(box
:space-evenly false
:orientation "v"
:class "winwin-center-noseparator-shadow"
:height 600
:style "
${winsearch != '' ? 'min-width: 811px;' : 'min-width: 676px;'}
"
(box
:space-evenly false
:orientation "h"
(revealer
:reveal {!winstart_allapps}
:transition "slideright"
:duration "250ms"
(revealer
:reveal {!winstart_allapps}
:transition "crossfade"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
:width 674
(centerbox
:orientation "h"
:class "winsearch-section-box"
(label
:halign "start"
:class "winstart-section"
:text "Pinned"
)
(box)
(button
:halign "end"
:class "wintoggle-text winstart-button-allapps"
:onclick "scripts/toggle-allapps.sh --open &"
(box
:space-evenly false
:spacing 6
(label :text "All apps" :style "padding: 0 2px;")
(label :class "winstart-allapps-icon" :text "")
; (box
; :class "winstart-allapps-arrow"
; )
)
)
)
(box
:class "winstart-pinnedapps"
:height 293
:orientation "v"
:space-evenly false
)
(centerbox
:orientation "h"
:class "winsearch-section-box"
(label
:halign "start"
:class "winstart-section"
:text "Recommended"
)
(box)
(box)
)
(box
:class "winstart-recommended"
:height 222
:orientation "v"
:space-evenly false
:valign "start"
)
)
)
)
(revealer
:reveal {winstart_allapps}
:transition "slideleft"
:duration "250ms"
(revealer
:reveal {winstart_allapps}
:transition "crossfade"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
:width 674
(centerbox
:orientation "h"
:class "winsearch-section-box"
(label
:halign "start"
:class "winstart-section"
:text "All apps"
)
(box)
(button
:halign "end"
:class "wintoggle-text winstart-button-allapps"
:onclick "scripts/toggle-allapps.sh --close"
(box
:space-evenly false
:spacing 6
(label :class "winstart-allapps-icon" :text "")
(label :text "Back" :style "padding: 0 2px;")
; (box
; :class "winstart-allapps-arrow"
; )
)
)
)
(scroll
:height 549
(box
:space-evenly false
:orientation "v"
:class "winstart-allapps-box"
)
)
)
)
)
)
)
(box
:space-evenly false
:orientation "h"
:class "winwin-bottom-shadow winstart-bottom-pad"
:height 67
(box
:halign "start"
:space-evenly false
:class "winstart-user"
(box
:space-evenly false
:orientation "h"
:spacing 16
(box
:class "winstart-user-icon"
)
(label :class "wintoggle-text" :text "${username}")
)
)
(box)
(box
:halign "end"
:class "winstart-power-icon winstart-power-icon-${rev_winpowermenu}"
(image
:path "images/svg/dark/power.svg"
)
)
)
)
)
)
)
(defwidget winactions_shadows_widget []
(box
:space-evenly false :spacing -12
:orientation "v"
:style "
${anim_open_winactions ? 'transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 150ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winactions ? '' : 'margin-bottom: -700px;'}
"
; Media controls
(revealer
:reveal {mname_win.title != ''}
:transition "slideup"
:duration "200ms"
(box
:space-evenly false :orientation "v"
:height 207
:class "winwin-shadow"
:style "
min-height: 207px;
"
)
)
(box
:space-evenly false :orientation "v"
:class "winwin-shadow"
:style "
min-height: 433px;
min-width: 398px;
"
)
)
)
(defwidget winlang_shadows_widget []
(box
:space-evenly false
:orientation "v"
:style "
${anim_open_winlang ? 'transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 100ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winlang ? '' : 'margin-bottom: -700px;'}
"
(eventbox
:onclick "scripts/toggle-winlang.sh --close &"
:onmiddleclick "scripts/toggle-winlang.sh --close &"
:onrightclick "scripts/toggle-winlang.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(box
:space-evenly false :orientation "v"
:class "winwin-shadow"
:width 420
(box
:space-evenly false :spacing 10
:style "padding: 15px;"
(label
:class "winlang-text"
)
)
(box
:space-evenly false :orientation "v"
(for language in langs
(box
:class "winlang-lang-false"
:height 84
)
)
)
(box
:class "winwin-bottom-pad"
(box
:class "winlang-bottom-button"
(label
:class "winlang-text"
:style "padding: 0 5px;"
)
)
)
)
)
)
(defwindow winnotif_shadows
:wm-ignore true
:monitor 0
:focusable false
:namespace "noblur"
:geometry (geometry
:x "0px"
:y "51px"
:height 1029
:anchor "bottom right"
)
(winnotif_shadows_widget)
)
(defwindow winnews_shadows
:wm-ignore true
:monitor 0
:focusable false
:namespace "noblur"
:geometry (geometry
:x "0px"
:y "51px"
:height 1029
:anchor "bottom left"
)
(winnews_shadows_widget)
)
(defwindow winstart_shadows
:wm-ignore true
:monitor 0
:focusable false
:namespace "noblur"
:geometry (geometry
:x "0px"
:y "51px"
; :height 788
:width 673
:anchor "bottom center"
)
(winstart_shadows_widget)
)
(defwindow winactions_shadows
:wm-ignore true
:monitor 0
:focusable false
:namespace "noblur"
:geometry (geometry
:x "0px"
:y "50px"
:anchor "bottom right"
)
(winactions_shadows_widget)
)
(defwindow winlang_shadows
:wm-ignore true
:monitor 0
:focusable false
:namespace "noblur"
:geometry (geometry
:x "0px"
:y "50px"
:anchor "bottom right"
)
(winlang_shadows_widget)
)
+585
View File
@@ -0,0 +1,585 @@
(defwidget winstart_widget []
(box
:space-evenly false
:orientation "v"
:style "
${anim_open_winstart ? 'transition: 150ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 100ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_winstart ? '' : 'margin-bottom: -900px;'}
"
(eventbox
:valign "start"
:onclick "scripts/toggle-winstart.sh --close &"
:onmiddleclick "scripts/toggle-winstart.sh --close &"
:onrightclick "scripts/toggle-winstart.sh --close &"
(box
:class "box-that-is-there" :style "min-height: 1px;"
)
)
(box
:space-evenly false
:orientation "v"
:class "winwin-top"
:height 113
:width 676
:style "
${winsearch != '' ? 'min-width: 811px;' : 'min-width: 676px;'}
"
(overlay
(box
:valign "end"
:space-evenly false
:class "winstart-search-prompt"
(box
:halign "start"
:class "winsearch-icon winstart-search-searchbox-icon"
)
(revealer
:reveal {winsearch == ''}
:halign "start"
:duration "100ms"
(label :class "winstart-search-prompt-text" :xalign 0 :text "Type to search")
)
)
(box
:valign "end"
:class "winstart-search-accent"
)
(input
:class "winstart-search-contents"
:onchange "${EWW_CMD} update winsearch='${winsearch_prefix}{}' && ${EWW_CMD} update winsearch_results=\"$(scripts/appsearch '${winsearch_prefix}{}' --updateinfo)\" &"
:onaccept "scripts/launchapp '${winsearch_results == '[]' ? (winsearch_prefix + {}) : winsearch_results[0].exec}' &"
)
)
)
(revealer
:reveal {winsearch != ''}
:transition "slidedown"
:duration "0ms"
(box
:space-evenly false
:orientation "v"
:class "winwin-bottom-light"
:height 682
:width 676
:style "
${winsearch != '' ? 'min-width: 811px;' : 'min-width: 676px;'}
"
; Tag strip
(box
:class "winsearch-tag-strip"
:space-evenly false
(eventbox
:onclick "${EWW_CMD} update winsearch_prefix='' && ${EWW_CMD} update winsearch='${winsearch_prefix} ' && ${EWW_CMD} update winsearch_results=\"$(scripts/appsearch ' ' --updateinfo)\" &"
(box :class "winsearch-tag-${winsearch_prefix == ''}"
(label :class "wintoggle-text" :text "All")
)
)
(eventbox
:onclick "${EWW_CMD} update winsearch_prefix='>load ' && ${EWW_CMD} update winsearch='${winsearch_prefix} ' && ${EWW_CMD} update winsearch_results=\"$(scripts/appsearch '>load ' --updateinfo)\" &"
(box :class "winsearch-tag-${winsearch_prefix == '>load '}"
(label :class "wintoggle-text" :text "Load theme")
)
)
(eventbox
:onclick "${EWW_CMD} update winsearch_prefix='1*' && ${EWW_CMD} update winsearch='${winsearch_prefix} ' && ${EWW_CMD} update winsearch_results=\"$(scripts/appsearch --calculator --updateinfo)\" &"
(box :class "winsearch-tag-${winsearch_prefix == '1*'}"
(label :class "wintoggle-text" :text "Calculate")
)
)
; (eventbox
; :onclick "${EWW_CMD} update winsearch_prefix='>_ ' && ${EWW_CMD} update winsearch='${winsearch_prefix}${winsearch}' && ${EWW_CMD} update winsearch_results=\"$(scripts/appsearch '${winsearch_prefix}${winsearch}')\" &"
; (box :class "winsearch-tag-${winsearch_prefix == '>_ '}"
; (label :class "wintoggle-text" :text "Execute")
; )
; )
)
(box
:height 627
:space-evenly false
:orientation "h"
:class "winsearch-pad"
:spacing 11
; Search results list
(scroll
:width 404
(box
:width 404
:space-evenly false
:orientation "v"
:class "winsearch-result-list"
(revealer
:reveal {winsearch_results != '[]'}
:transition "slidedown"
:duration "0ms"
(label
:halign "start"
:class "winstart-section winsearch-section"
:text "${winsearch_prefix == '' ? 'Results' :
(winsearch_prefix == '>load ' ? 'Themes' :
(winsearch_prefix == '1*' ? 'Calculator' : 'Execute'))}"
)
)
(box
:space-evenly false
:orientation "v"
(for result in winsearch_results
(overlay
(input
:value "${result.name}"
:class "winsearch-result"
:style "
background-position: -0.5% center;
background-size: auto 65%;
"
:onaccept "scripts/launchapp '${result.exec}' && scripts/toggle-winstart.sh --close &"
)
(image
:halign "start"
:class "winsearch-result-icon"
:path {(result.icon != '' && result.icon != 'null') ? result.icon : 'images/svg/dark/appgeneric.svg'}
:image-width 28
:image-height 28
)
)
)
)
(label
:halign "start"
:class "winstart-section winsearch-section"
:text "Run command"
)
(overlay
(input
:value {winsearch}
:class "winsearch-result"
:onaccept "scripts/launchapp '${winsearch_prefix}{}' &"
)
(image
:halign "start"
:class "winsearch-result-icon"
:path "images/svg/dark/protocol.svg"
:image-width 28
:image-height 28
)
)
(label
:halign "start"
:class "winstart-section winsearch-section"
:text "Search the web"
)
(overlay
(input
:value {winsearch}
:class "winsearch-result"
:onaccept "xdg-open 'https://www.google.com/search?q={}' && scripts/toggle-winstart.sh --close &"
)
(image
:halign "start"
:class "winsearch-result-icon"
:path "images/svg/dark/search-fluent.svg"
:image-width 28
:image-height 28
)
)
)
)
; More options
(revealer
:reveal {winsearch != ''}
:transition "slideleft"
:duration "50ms"
; Entry actions panel
(box
:orientation "v"
:space-evenly false
:class "winsearch-actions-box"
:width 404
(image
:halign "center"
:class "winsearch-result-icon-big"
:path {(winsearch_actions.icon != '' && winsearch_actions.icon != 'null') ? winsearch_actions.icon : 'images/svg/dark/appgeneric.svg'}
:image-width 67
:image-height 67
)
(label
:class "winsearch-result-actions-title"
:text {winsearch_actions.name}
)
(label
:class "winsearch-result-actions-subtext"
:text {winsearch_actions_type}
)
(box
:class "winsearch-separator"
)
; Actions
(box
:orientation "v"
:space-evenly false
(revealer
:reveal {winsearch_actions_type == 'Application'}
:transition "slidedown"
:duration "0ms"
(button
:class "winsearch-actions-button"
:onclick "scripts/launchapp '${winsearch_actions.exec}' &"
(box
:orientation "h"
:space-evenly false
:spacing 13
(image
:class "winsearch-actions-icon"
:path "images/svg/open.svg"
:image-width 20
:image-height 20
)
(label :text "Run")
)
)
)
(revealer
:reveal {winsearch_actions_type == 'Application'}
:transition "slidedown"
:duration "0ms"
(button
:class "winsearch-actions-button"
:onclick "scripts/launchapp 'xdg-open ${winsearch_actions.filepath}'&"
(box
:orientation "h"
:space-evenly false
:spacing 13
(image
:class "winsearch-actions-icon"
:path "images/svg/folderopen.svg"
:image-width 20
:image-height 20
)
(label :text "Open desktop entry")
)
)
)
(revealer
:reveal {winsearch_actions_type == 'Math result'}
:transition "slidedown"
:duration "0ms"
(button
:class "winsearch-actions-button"
:onclick "scripts/launchapp '${winsearch_actions.exec}' &"
(box
:orientation "h"
:space-evenly false
:spacing 13
(image
:class "winsearch-actions-icon"
:path "images/svg/copy.svg"
:image-width 20
:image-height 20
)
(label :text "Copy result")
)
)
)
(revealer
:reveal {winsearch_actions_type == 'Color theme'}
:transition "slidedown"
:duration "0ms"
(button
:class "winsearch-actions-button"
:onclick "scripts/launchapp '${winsearch_actions.exec}' &"
(box
:orientation "h"
:space-evenly false
:spacing 13
(image
:class "winsearch-actions-icon"
:path "images/svg/applycolor.svg"
:image-width 20
:image-height 20
)
(label :text "Apply colorscheme")
)
)
)
)
)
)
)
)
)
(revealer
:reveal {winsearch == ''}
:transition "slidedown"
:duration "0ms"
(box
:space-evenly false
:orientation "v"
(box
:space-evenly false
:orientation "v"
:class "winwin-center-noseparator"
:height 581
:style "
${winsearch != '' ? 'min-width: 811px;' : 'min-width: 676px;'}
"
(box
:space-evenly false
:orientation "h"
(revealer
:reveal {!winstart_allapps}
:transition "slideright"
:duration "250ms"
(revealer
:reveal {!winstart_allapps}
:transition "crossfade"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
:width 674
(centerbox
:orientation "h"
:class "winsearch-section-box"
(label
:halign "start"
:class "winstart-section"
:text "Pinned"
)
(box)
(button
:halign "end"
:class "wintoggle-text winstart-button-allapps"
:onclick "scripts/toggle-allapps.sh --open &"
(box
:space-evenly false
:spacing 6
(label :text "All apps" :style "padding: 0 2px;")
(label :class "winstart-allapps-icon" :text "")
; (box
; :class "winstart-allapps-arrow"
; )
)
)
)
(box
:class "winstart-pinnedapps"
:height 293
:orientation "v"
:space-evenly false
(for row in pinnedapps
(box
:orientation "h"
:space-evenly false
(for app in row
(eventbox
:class "winstart-pinnedapps-entry"
:onclick "scripts/toggle-winstart.sh --close && ${app.exec}"
(box
:orientation "v"
:space-evenly false
:class "winstart-pinnedapps-entry-pad"
:width 101
:height 88
(box
:class "winstart-pinnedapps-icon"
:style "
min-width: 33px;
min-height: 33px;
background-image: url('${app.icon}');
background-position: center;
background-size: auto 100%;
"
)
(label
:limit-width 12
:class "wintoggle-text"
:style "margin-top: 4px;"
:text "${app.name}"
)
)
)
)
)
)
)
(centerbox
:orientation "h"
:class "winsearch-section-box"
(label
:halign "start"
:class "winstart-section"
:text "Recommended"
)
(box)
(box)
)
(box
:class "winstart-recommended"
:height 222
:orientation "v"
:space-evenly false
:valign "start"
(for recrow in recommended
(box
:orientation "h"
:space-evenly false
:valign "start"
:spacing 20
(for entry in recrow
(eventbox
:class "winstart-recommended-entry"
:onclick "scripts/toggle-winstart.sh --close && ${entry.exec}"
(box
:valign "start"
:orientation "h"
:space-evenly false
:width 286
:height 66
:class "winstart-recommended-entry-pad"
; Recommended tile contents here
(box
:halign "start"
:class "winstart-recommended-icon"
:style "
min-width: 33px;
min-height: 33px;
background-image: url('${entry.icon}');
background-position: center;
background-size: 100% auto;
"
)
(box
:orientation "v"
:space-evenly false
:class "winstart-recommended-text"
(label :xalign 0 :class "wintoggle-text winstart-recommended-name" :text "${entry.name}" :limit-width 26)
(label :xalign 0 :class "wintoggle-text winstart-recommended-subtext" :text "${entry.subtext}" :limit-width 29)
)
)
)
)
)
)
)
)
)
)
(revealer
:reveal {winstart_allapps}
:transition "slideleft"
:duration "250ms"
(revealer
:reveal {winstart_allapps}
:transition "crossfade"
:duration "200ms"
(box
:space-evenly false
:orientation "v"
:width 674
(centerbox
:orientation "h"
:class "winsearch-section-box"
(label
:halign "start"
:class "winstart-section"
:text "All apps"
)
(box)
(button
:halign "end"
:class "wintoggle-text winstart-button-allapps"
:onclick "scripts/toggle-allapps.sh --close"
(box
:space-evenly false
:spacing 6
(label :class "winstart-allapps-icon" :text "")
(label :text "Back" :style "padding: 0 2px;")
; (box
; :class "winstart-allapps-arrow"
; )
)
)
)
(scroll
:height 549
(box
:space-evenly false
:orientation "v"
:class "winstart-allapps-box"
(for app in allapps
(button
:class "winstart-allapps-app"
:onclick "scripts/toggle-winstart.sh --close && gtk-launch ${app.filename} &"
(box
:space-evenly false
:orientation "h"
(revealer
:transition "slideright"
:duration "0ms"
:reveal {app.icon != '_letter'}
(image
:class "winstart-allapps-app-icon"
:path {(app.icon != '_letter' && app.icon != '') ? app.icon : 'images/svg/dark/app.svg'}
:image-height 25
:image-width 25
)
)
(label
:class "winbartext winstart-allapps-appname"
:text {app.name}
)
)
)
)
)
)
)
)
)
)
)
(centerbox
:orientation "h"
:class "winwin-bottom winstart-bottom-pad"
:height 67
(button
:halign "start"
:class "winstart-user"
:onclick "scripts/toggle-winstart.sh --close && gnome-control-center user-accounts &"
(box
:space-evenly false
:orientation "h"
:spacing 16
(box
:class "winstart-user-icon"
)
(label :class "wintoggle-text" :text "${username}")
)
)
(box)
(button
:halign "end"
:class "winstart-power-icon winstart-power-icon-${rev_winpowermenu}"
:onclick "scripts/toggle-winpowermenu.sh &"
(image
:path "images/svg/dark/power.svg"
)
)
)
)
)
)
)
(defwindow winstart
:wm-ignore true
:monitor 0
:focusable true
:geometry (geometry
:x "0px"
:y "51px"
; :height 788
:width 673
:anchor "bottom center"
)
(winstart_widget)
)
+217
View File
@@ -0,0 +1,217 @@
(defwidget winworkspacebox [wspace]
(box ; Note: height 100px width 356px
:space-evenly false :orientation "v" :spacing 3
:class "taskview-ws taskview-ws-${wspace[0].workspace.id == activews}"
(label
:class "wintaskview-text"
:xalign 0
:text "Desktop ${wspace[0].workspace.id}"
)
(box
:space-evenly false :orientation "h"
:style "
min-width: ${RES_WIDTH * TASKVIEW_SCALE}px;
min-height: ${RES_HEIGHT * TASKVIEW_SCALE}px;
"
(overlay
(box ; image doesnt do rounding so use css background image
:class "wintaskview-workspace-bg"
; :path "./images/wallpaper/wallpaper_small"
:style "
min-width: ${RES_WIDTH * TASKVIEW_SCALE}px;
min-height: ${RES_HEIGHT * TASKVIEW_SCALE}px;
background-image: url('./images/wallpaper/wallpaper_small');
"
:width {round(RES_WIDTH * TASKVIEW_SCALE, 0)}
:height {round(RES_HEIGHT * TASKVIEW_SCALE, 0)}
)
(box
:space-evenly false :orientation "h"
(for ws-window in wspace
(box
:class "${ws-window.class == 'workspace' ? '' : 'taskview-ws-window'}"
:style "
${ws-window.address == selected ? 'border: 1px solid #FFFFFF' : ''};
${ws-window.address == '_none' ? 'border: none' : ''};
margin-left: ${ws-window.at[0] * TASKVIEW_SCALE}px;
margin-top: ${ws-window.at[1] * TASKVIEW_SCALE}px;
margin-right: -${(ws-window.at[0] + ws-window.size[0]) * TASKVIEW_SCALE}px;
margin-bottom: ${RES_HEIGHT * TASKVIEW_SCALE - ((ws-window.at[1] + ws-window.size[1]) * TASKVIEW_SCALE)};
"
(eventbox
:onrightclick "scripts/selectwindow ${ws-window.address} '${EWW_CMD}' ${ws-window.workspace.id}"
:onmiddleclick "hyprctl dispatch closewindow address:${ws-window.address}"
:onclick "scripts/focuswindow ${ws-window.address} ${ws-window.workspace.id} scripts/toggle-wintaskview.sh --close &"
:onhover "${ws-window.class == 'workspace' ? '' : (EWW_CMD + ' update overview_hover_name=\'' + ws-window + '\'')}"
(box
:class "overview-background"
; Uncomment below to enable thumbnail previews (VERY SLOW)
; :style "
; background-image: url('scripts/cache/thumbnails/${ws-window.address }.png');
; "
(image
:class "overview-icon"
:path {ws-window.icon}
:image-width {round(ws-window.size[0] * TASKVIEW_SCALE * 45 / 100, 0)}
:image-height {round(ws-window.size[1] * TASKVIEW_SCALE * 45 / 100, 0)}
)
)
)
)
)
)
)
)
)
)
(defwidget wintaskview_widget []
(box
:space-evenly false
:orientation "v"
:class "thewholething"
(eventbox
:onclick "scripts/toggle-wintaskview.sh --close &"
(overlay
(box
:width RES_WIDTH :height {RES_HEIGHT - 50}
:class "wintaskview-bg"
)
(box
:orientation "h" :space-evenly false
:halign "fill" :valign "start" :height {RES_HEIGHT - WINTASKVIEW_RESERVED_BOTTOM}
(for workspace in taskviewlayout
(revealer
:reveal {arraylength(workspace) != 0 && workspace[0][0]["workspace"]["id"] == activews}
:transition "slideright"
:duration "0ms"
(scroll
:hscroll false :vscroll true
:width {RES_WIDTH}
:height {RES_HEIGHT - WINTASKVIEW_RESERVED_BOTTOM}
(box
:space-evenly false :orientation "v" :spacing WINTASKVIEW_SPACING
:style "padding: ${WINTASKVIEW_SPACING}"
:valign "center"
(for row in workspace
(box
:space-evenly false :spacing WINTASKVIEW_SPACING
:halign "center"
:valign "center"
:height {
(MIN_ROW_HEIGHT > (RES_HEIGHT - WINTASKVIEW_RESERVED_BOTTOM - WINTASKVIEW_SPACING) / arraylength(workspace) - 51 - WINTASKVIEW_SPACING) ?
MIN_ROW_HEIGHT :
(RES_HEIGHT - WINTASKVIEW_RESERVED_BOTTOM - WINTASKVIEW_SPACING) / arraylength(workspace) - 51 - WINTASKVIEW_SPACING
}
(for window in row
(box
:class "${window.class == 'workspace' ? '' : 'taskview-thisws-window'}"
:valign "center"
:style `
${window.address == selected ? 'border: 1px solid #FFFFFF' : ''};
${window.address == '_none' ? 'border: none' : ''};
min-width: ${window["size"][0]}px;
min-height: ${window["size"][1]}px;
`
(eventbox
:onrightclick "scripts/selectwindow ${window.address} '${EWW_CMD}' ${window.workspace.id}"
:onmiddleclick "hyprctl dispatch closewindow address:${window.address}"
:onclick "scripts/focuswindow ${window.address} ${window.workspace.id} && hyprctl dispatch bringactivetotop && scripts/toggle-wintaskview.sh --close &"
; :onhover "${ws-window.class == 'workspace' ? '' : (EWW_CMD + ' update overview_hover_name=\'' + ws-window + '\'')}"
(box
:orientation "v" :space-evenly false
:class "overview-background"
(box ;
:height 49 :space-evenly false :spacing 10
:orientation "h"
:style "padding: 0 14px;"
(image
:vexpand true
:class "overview-icon"
:path {window.icon}
:image-width 25
:image-height 25
; :image-width {round(window.size[0] * TASKVIEW_SCALE * 45 / 100, 0)}
; :image-height {round(window.size[1] * TASKVIEW_SCALE * 45 / 100, 0)}
)
(label
:hexpand true :xalign 0
:class "wintaskview-text"
:limit-width {round(window.size[0] / 9, 0)}
:text "${window.title}"
)
; (button
; (label
; :class "wintaskview-thisws-window-close"
; :text ""
; )
; )
)
(image
:vexpand true
:path {window.icon}
:class "taskview-thisws-window-thumbnail"
:image-width {round(window.size[0] * 25 / 100, 0)}
:image-height {round(window.size[1] * 25 / 100, 0)}
; :image-width {round(window.size[0] * TASKVIEW_SCALE * 45 / 100, 0)}
; :image-height {round(window.size[1] * TASKVIEW_SCALE * 45 / 100, 0)}
)
)
)
)
)
)
)
)
)
)
)
)
(box
:valign "end"
:class "wintaskview-workspaces-bg"
:style "
${anim_open_wintaskview ? 'transition: 200ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 100ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
${rev_wintaskview ? '' : 'margin-bottom: -900px;'}
min-height: ${RES_HEIGHT * TASKVIEW_SCALE}px;
"
(scroll
:hscroll true
:vscroll false
(box
:orientation "h" :space-evenly false
:halign "center"
(box
:orientation "h" :space-evenly false
(for wspace in wsjsona
(winworkspacebox
:wspace {wspace}
)
)
)
(box
:orientation "h" :space-evenly false
(for wspace in wsjsonb
(winworkspacebox
:wspace {wspace}
)
)
)
)
)
)
)
)
)
)
(defwindow wintaskview
:stacking "overlay"
:wm-ignore true
:focusable true
:monitor 0
:geometry (geometry
:anchor "top center"
)
(wintaskview_widget)
)