forked from Shinonome/dots-hyprland
stuff
This commit is contained in:
Executable
+46
@@ -0,0 +1,46 @@
|
||||
(defwidget bgdecors []
|
||||
(box
|
||||
:space-evenly false
|
||||
:spacing 5
|
||||
:orientation "v"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "bg-decor-dow" ; Hyperland maybe?
|
||||
:text "${time.day}"
|
||||
)
|
||||
(label
|
||||
:xalign 0
|
||||
:class "bg-decor-date"
|
||||
:text "${time.date}"
|
||||
)
|
||||
; I don't like focus being moved to this on reload
|
||||
; (box
|
||||
; :spacing 0
|
||||
; :space-evenly false
|
||||
; (input
|
||||
; :class "bg-decor-input-left"
|
||||
; :onaccept "firefox https://www.google.com/search?q={}"
|
||||
; )
|
||||
; (button
|
||||
; :class "bg-decor-input-right"
|
||||
; ""
|
||||
; )
|
||||
; )
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow bg-decor
|
||||
:focusable false
|
||||
:stacking "bottom"
|
||||
:windowtype "normal"
|
||||
:wm-ignore true
|
||||
:geometry (geometry
|
||||
:x 80
|
||||
:y 0
|
||||
:width "100%"
|
||||
:height "100%"
|
||||
:anchor "left center"
|
||||
)
|
||||
:monitor 0
|
||||
(bgdecors)
|
||||
)
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
(defwidget calendar-win []
|
||||
(box
|
||||
:class "calendar-win"
|
||||
(calendar)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow calendar
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
:anchor "top left"
|
||||
:width "0px"
|
||||
:height "0px"
|
||||
)
|
||||
(calendar-win)
|
||||
)
|
||||
Executable
+324
@@ -0,0 +1,324 @@
|
||||
; (defvar separateanim "${anim_open_dash ? 'transition: 300ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 200ms cubic-bezier(0.3, 0, 0.8, 0.15);'}")
|
||||
; (defvar fromleft "${rev_dash ? '' : 'margin-left: -1000px;'}")
|
||||
; (defvar fromright "${rev_dash ? '' : 'margin-right: -1000px;'}")
|
||||
; (defvar fromtop "${rev_dash ? '' : 'margin-top: -1000px;'}")
|
||||
; (defvar frombottom "${rev_dash ? '' : 'margin-bottom: -1000px;'}")
|
||||
|
||||
(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 "Dashboard")
|
||||
(label :angle 0 :xalign 0 :class "dash-subtitle" :text "Serves the sole purpose of showing off to awesomewm users ;)")
|
||||
)
|
||||
(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}');"
|
||||
)
|
||||
(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[0]}")
|
||||
(label :xalign 1 :class "dash-quote-author clr4" :text "${quote_author[0]}")
|
||||
)
|
||||
)
|
||||
(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)
|
||||
)
|
||||
Executable
+58
@@ -0,0 +1,58 @@
|
||||
(defvar MOVEMULTIPLIER 4)
|
||||
(defvar morebgoffset 4)
|
||||
|
||||
(defwidget dynbg []
|
||||
(overlay
|
||||
(box
|
||||
:class "dynbg-image"
|
||||
:style "background-position: ${(activews - 5)*MOVEMULTIPLIER > 50 ? 100 : 50+(activews - 5)*MOVEMULTIPLIER}% 20%"
|
||||
)
|
||||
(box
|
||||
:space-evenly false
|
||||
:spacing 5
|
||||
:orientation "v"
|
||||
:halign "fill"
|
||||
:valign "center"
|
||||
:style "margin-left: 5rem;"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "bg-decor-dow"
|
||||
:text "${time.day}"
|
||||
)
|
||||
(label
|
||||
:xalign 0
|
||||
:class "bg-decor-date"
|
||||
:text "${time.date}"
|
||||
)
|
||||
; I don't like focus being moved to this on reload
|
||||
; (box
|
||||
; :spacing 0
|
||||
; :space-evenly false
|
||||
; (input
|
||||
; :class "bg-decor-input-left"
|
||||
; :onaccept "firefox https://www.google.com/search?q={}"
|
||||
; )
|
||||
; (button
|
||||
; :class "bg-decor-input-right"
|
||||
; ""
|
||||
; )
|
||||
; )
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(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)
|
||||
)
|
||||
Executable
+106
@@ -0,0 +1,106 @@
|
||||
(defwidget music []
|
||||
(eventbox
|
||||
:onhoverlost "scripts/toggle-music.sh --close &"
|
||||
(box
|
||||
:class "window window-music"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
: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);'}
|
||||
"
|
||||
(box
|
||||
:class "window-titlebar-music"
|
||||
(label :class "window-text" :xalign 0 :text "MUSIC")
|
||||
)
|
||||
(overlay
|
||||
(box ; Fallback
|
||||
:class "music-cover-art"
|
||||
:style "min-height: 166px;"
|
||||
)
|
||||
(box ; Cover art
|
||||
:class "music-cover-art"
|
||||
:style "background-image: url('${mcover.image}');"
|
||||
)
|
||||
(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.color4};"
|
||||
:limit-width 35
|
||||
)
|
||||
(label
|
||||
:class "music-artist"
|
||||
:wrap true
|
||||
:text "${music.artist}"
|
||||
:style "color: ${mcover.color.colors.color4};"
|
||||
)
|
||||
(box
|
||||
:halign "fill"
|
||||
:class "music-button-box"
|
||||
(centerbox
|
||||
:halign "center"
|
||||
(button
|
||||
:class "song-button"
|
||||
:style "color: ${mcover.color.colors.color4};"
|
||||
:onclick "playerctl previous" ""
|
||||
)
|
||||
(button
|
||||
:class "song-button"
|
||||
:style "color: ${mcover.color.colors.color4};"
|
||||
:onclick "playerctl play-pause"
|
||||
"${music.status != '' ? music.status : ''}"
|
||||
)
|
||||
(button
|
||||
:class "song-button"
|
||||
:style "color: ${mcover.color.colors.color4};"
|
||||
:onclick "playerctl next"
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
(scale
|
||||
:valign "end"
|
||||
:value {music.position}
|
||||
:class "track-scale"
|
||||
:onchange "playerctl position `bc <<< \"{} * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
|
||||
:style "highlight {background-color: ${mcover.color.colors.color4};}"
|
||||
)
|
||||
)
|
||||
(box
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(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};")
|
||||
)
|
||||
(box
|
||||
:halign "start"
|
||||
:valign "start"
|
||||
:class "music-media-source-wedge"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow music
|
||||
:wm-ignore true
|
||||
:stacking "overlay"
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
; :x "53px"
|
||||
:y "32px"
|
||||
:width "558px"
|
||||
:height "191px"
|
||||
:anchor "top left")
|
||||
(music)
|
||||
)
|
||||
Executable
+520
@@ -0,0 +1,520 @@
|
||||
(defwidget onotify []
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:style "
|
||||
${anim_open_ontf ? 'transition: 300ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 200ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
|
||||
${rev_ontf ? '' : 'margin-right: -600px;'}
|
||||
"
|
||||
(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"
|
||||
(overlay
|
||||
(box
|
||||
:class "element"
|
||||
:space-evenly false
|
||||
(button
|
||||
; :class "wifi-button"
|
||||
:onclick "scripts/net toggle"
|
||||
:style "font-family: Material Symbols Outlined;"
|
||||
{net.icon}
|
||||
)
|
||||
(label :class "separator" :text "|")
|
||||
(button
|
||||
:class "wifi-arrow-btn"
|
||||
:style "font-family: Material Symbols Outlined;"
|
||||
:onclick "gnome-control-center wifi &"
|
||||
""
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
(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"
|
||||
(overlay
|
||||
(box
|
||||
:class "element icon"
|
||||
:space-evenly false
|
||||
(button
|
||||
:class "bluetooth-button"
|
||||
:onclick "scripts/bluetooth toggle &"
|
||||
:style "font-family: 'Material Symbols Outlined';"
|
||||
{bluetooth.icon}
|
||||
)
|
||||
(label :class "separator" :text "|")
|
||||
(button
|
||||
:class "bluetooth-arrow-btn"
|
||||
:onclick "blueberry &"
|
||||
""
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
(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"
|
||||
(overlay
|
||||
(box
|
||||
:class "element icon"
|
||||
(button
|
||||
:class "airplane-button"
|
||||
:onclick "scripts/airplane toggle &"
|
||||
airplane
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
(label :style "font-size: 12pt;" :text "Airplane Mode" :xalign 0.5 :limit-width 16)
|
||||
)
|
||||
(box
|
||||
:class "power-box"
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(overlay
|
||||
(box
|
||||
:class "element icon"
|
||||
(button
|
||||
:halign "end"
|
||||
; :onclick "wlogout &"
|
||||
:onclick "wlogout -p layer-shell &"
|
||||
""
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "element-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
(label
|
||||
:style "font-size: 12pt;"
|
||||
:text "Power"
|
||||
:class "sys-toggle"
|
||||
:xalign 0.5
|
||||
:limit-width 16
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:class "osettings-separator"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
)
|
||||
(scroll
|
||||
; :vscroll true
|
||||
; :hscroll false
|
||||
; :halign "fill"
|
||||
:class "osettings-content"
|
||||
:valign "fill"
|
||||
:style "min-height: 905px;"
|
||||
(box
|
||||
:halign "fill"
|
||||
:class "osettings-scroll-bg"
|
||||
:space-evenly false
|
||||
:spacing 20
|
||||
:orientation "v"
|
||||
; Volume mixer
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section onotify-window-volume"
|
||||
:style "min-height: 100px; padding-bottom: 17px;"
|
||||
; :class "sliders"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section onotify-section-volume"
|
||||
:text "VOLUME MIXER"
|
||||
)
|
||||
(for i in audiojson
|
||||
(eventbox
|
||||
:onscroll "pactl set-sink-input-volume ${i.sink} $(echo {} | sed -e \"s/up/+10/g\" -e \"s/down/-10/g\")%"
|
||||
:onrightclick "pactl set-sink-input-volume ${i.sink} 100%"
|
||||
:onclick "pactl set-sink-input-volume ${i.sink} 0%"
|
||||
(box
|
||||
:space-evenly false
|
||||
:class "osettings-window-contents"
|
||||
:orientation "v"
|
||||
; (label :class "time" :text "DEBUG:${i}")
|
||||
(centerbox
|
||||
:space-evenly false
|
||||
:orientation "h"
|
||||
; :halign "center"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-text"
|
||||
:limit-width 42
|
||||
:text "${i.name} (#${i.sink})"
|
||||
)
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-text"
|
||||
:limit-width 30
|
||||
:text ""
|
||||
)
|
||||
(box :orientation "v"
|
||||
(label
|
||||
:xalign 1
|
||||
:class "osettings-text"
|
||||
:text "${i.volume}%"
|
||||
)
|
||||
)
|
||||
)
|
||||
(scale
|
||||
:halign "fill"
|
||||
:class "osettings-slider osettings-slider-5"
|
||||
:value {i.volume}
|
||||
:onchange "pactl set-sink-input-volume ${i.sink} {}%"
|
||||
:tooltip "${i.name}: ${i.volume}%"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "osettings-window-volume-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "osettings-window-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
; Resource usage
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section onotify-window-resources"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section onotify-section-resources"
|
||||
:text "RESOURCES"
|
||||
)
|
||||
(box
|
||||
:class "osettings-window-contents"
|
||||
:style "margin-bottom: 17px; margin-top: 17px;"
|
||||
; cpu
|
||||
(box
|
||||
:class "sys-box"
|
||||
:space-evenly false
|
||||
:halign "start"
|
||||
(circular-progress
|
||||
:start-at 75
|
||||
: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"
|
||||
:style "font-size: 12pt;"
|
||||
)
|
||||
(label
|
||||
:text "${round(EWW_CPU.avg,2)}%"
|
||||
:halign "start"
|
||||
:class "sys-text-sub"
|
||||
:style "font-size: 12pt;"
|
||||
)
|
||||
(label
|
||||
:text "${EWW_CPU.cores[0].freq} MHz"
|
||||
:halign "start"
|
||||
:class "sys-text-sub"
|
||||
:style "font-size: 12pt;"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
; memory
|
||||
(box
|
||||
:class "sys-box"
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
(circular-progress
|
||||
:start-at 75
|
||||
:value {memory.percentage}
|
||||
:class "sys-mem"
|
||||
:thickness 3
|
||||
(label
|
||||
:text ""
|
||||
:class "sys-icon-mem icon"
|
||||
)
|
||||
)
|
||||
(box
|
||||
:orientation "v"
|
||||
(label :style "font-size: 12pt;" :text "Memory" :halign "start" :class "sys-text-mem")
|
||||
(label :style "font-size: 12pt;" :text "${memory.used} / ${memory.total}" :halign "start" :class "sys-text-sub")
|
||||
(label :style "font-size: 12pt;" :text "Swap ${memory.swapused} / ${memory.swaptotal}" :halign "start" :class "sys-text-sub")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "osettings-window-resources-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "osettings-window-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
; Calendar
|
||||
; (label
|
||||
; :halign "start"
|
||||
; :wrap true
|
||||
; :class "osettings-section"
|
||||
; :text "Calendar"
|
||||
; )
|
||||
; (calendar)
|
||||
;
|
||||
; Notifications
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section onotify-window-notif"
|
||||
(centerbox
|
||||
:class "osettings-section-baronly onotify-section-notif"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section-textonly"
|
||||
:text "NOTIFICATIONS"
|
||||
)
|
||||
(box)
|
||||
(box
|
||||
; :class "icon"
|
||||
:halign "end"
|
||||
:space-evenly false
|
||||
(button
|
||||
:class "osettings-btn-section"
|
||||
:tooltip "Refresh"
|
||||
:onclick "dunstctl history > $XDG_CACHE_HOME/dunst-history.json &"
|
||||
""
|
||||
)
|
||||
(button
|
||||
:class "osettings-btn-section"
|
||||
:tooltip "Pause/Resume Notifications"
|
||||
:onclick "scripts/notifications toggle &"
|
||||
{notif_icons.toggle_icon}
|
||||
)
|
||||
(button
|
||||
:class "osettings-btn-section"
|
||||
:tooltip "Clear Notifications"
|
||||
:onclick "scripts/notifications clear &"
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:class "container osettings-window-contents"
|
||||
:style "margin-top: 17px; margin-bottom: 17px;"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(for i in notifications
|
||||
(eventbox
|
||||
:onclick "dunstctl history-pop ${i.id} && dunstctl action 0 && dunstctl close"
|
||||
(overlay
|
||||
(box
|
||||
:class "notification"
|
||||
:orientation "v"
|
||||
:width 300
|
||||
:space-evenly false
|
||||
(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}
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "notification-bottomleft"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "osettings-window-notif-bottomleft"
|
||||
)
|
||||
(box
|
||||
:halign "start" :valign "end"
|
||||
:class "osettings-window-bottomleft-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow onotify
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:focusable true
|
||||
:geometry (geometry
|
||||
:x "0px"
|
||||
:y "32px"
|
||||
:width "0px"
|
||||
:height "1048px"
|
||||
:anchor "top right"
|
||||
)
|
||||
(onotify)
|
||||
)
|
||||
|
||||
(defwidget onotify-button []
|
||||
(eventbox
|
||||
:onhover "${EWW_CMD} update ontf_hover=true"
|
||||
:onhoverlost "${EWW_CMD} update ontf_hover=false"
|
||||
(box
|
||||
:space-evenly false
|
||||
(eventbox
|
||||
:class "onotify-toggle-button-${rev_ontf || ontf_hover}"
|
||||
:onmiddleclick "scripts/toggle-dash.sh &"
|
||||
:onrightclick "scripts/toggle-dash.sh &"
|
||||
:onscroll "echo $(echo {} | sed -e 's/down/-U 3/g' -e 's/up/-A 3/g' | xargs light) && scripts/brightness osd"
|
||||
(button
|
||||
:onclick "scripts/toggle-onotify.sh &";
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "h"
|
||||
; Time and date
|
||||
(box
|
||||
:class "timedate"
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
(box
|
||||
:space-evenly false
|
||||
:halign "start"
|
||||
:class "clock"
|
||||
(label :text "${time.hour}")
|
||||
(label :text ":")
|
||||
(label :text "${time.minute}")
|
||||
)
|
||||
(box
|
||||
:class "date"
|
||||
:onclick "${EWW_CMD} update popup='calendar'"
|
||||
"${time.day}, ${time.date}"
|
||||
)
|
||||
)
|
||||
; System levels
|
||||
(eventbox
|
||||
:class "${popup == 'system-menu' ? 'system-menu-box' : 'sysbar'}"
|
||||
: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"
|
||||
:onhover "${EWW_CMD} update sys_rev=true"
|
||||
:onhoverlost "${EWW_CMD} update popup='none' sys_rev=false"
|
||||
:onrightclick "${EWW_CMD} update force_sys_rev=${!force_sys_rev}"
|
||||
:onmiddleclick "${EWW_CMD} open --toggle overview"
|
||||
(box
|
||||
:space-evenly false
|
||||
:halign "end"
|
||||
:spacing 5
|
||||
(syscpu)
|
||||
(sysmem)
|
||||
(sysbatt)
|
||||
; (settingscog)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(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-dash.sh &"
|
||||
:onrightclick "scripts/toggle-dash.sh &"
|
||||
(box
|
||||
:class "module real-onotify-toggle-button"
|
||||
(label
|
||||
:class "icon button-${rev_ontf || ontf_hover}"
|
||||
:text ""
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
Executable
+69
@@ -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 {brightness.level}
|
||||
: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 "${brightness.level}")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow osd
|
||||
:stacking "fg"
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "53px"
|
||||
:width "100px"
|
||||
:height "53px"
|
||||
:anchor "top center"
|
||||
)
|
||||
:stacking "fg"
|
||||
:exclusive false
|
||||
(osdwidget)
|
||||
)
|
||||
Executable
+856
@@ -0,0 +1,856 @@
|
||||
(defwidget checkboxhyprctl [value changevalue]
|
||||
(eventbox
|
||||
:cursor "pointer"
|
||||
:onclick "hyprctl keyword ${changevalue} ${1 - value} && scripts/hyprsettings tickle"
|
||||
(box
|
||||
:class "osettings-checkbox-${value}"
|
||||
:halign "end"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget checkboxcmd [value changecmd]
|
||||
(eventbox
|
||||
:onclick "${changecmd}"
|
||||
(box
|
||||
:class "osettings-checkbox-${value}"
|
||||
:halign "end"
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwidget osettings []
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:style "
|
||||
${anim_open_ostg ? 'transition: 300ms cubic-bezier(0.05, 0.7, 0.1, 1);' : 'transition: 200ms cubic-bezier(0.3, 0, 0.8, 0.15);'}
|
||||
${rev_ostg ? '' : 'margin-left: -600px;'}
|
||||
"
|
||||
(eventbox
|
||||
:onclick "scripts/toggle-osettings.sh --close &"
|
||||
:onmiddleclick "scripts/toggle-osettings.sh --close &"
|
||||
:onrightclick "scripts/toggle-osettings.sh --close &"
|
||||
(box
|
||||
:class "box-that-is-there" :style "min-height: 1px;"
|
||||
)
|
||||
)
|
||||
(eventbox
|
||||
; :onhoverlost "scripts/toggle-osettings.sh --close &"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:class "osettings-window"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(box
|
||||
:class "osettings-heading"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-title"
|
||||
:text "SETTINGS"
|
||||
)
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-subtitle"
|
||||
:text "change the way hyprland behaves"
|
||||
)
|
||||
)
|
||||
(box
|
||||
:spacing 0
|
||||
:space-evenly false
|
||||
:class "osettings-search"
|
||||
:orientation "h"
|
||||
(input
|
||||
:halign "start"
|
||||
:class "osettings-search-text"
|
||||
:onchange "${EWW_CMD} update oquery=\"$(echo {} | tr [:upper:] [:lower:])\""
|
||||
)
|
||||
(box)
|
||||
(button
|
||||
:halign "end"
|
||||
:class "osettings-search-icon"
|
||||
:style "font-weight: bolder;"
|
||||
""
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:class "osettings-separator"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
)
|
||||
(scroll
|
||||
; :vscroll true
|
||||
; :hscroll false
|
||||
; :halign "fill"
|
||||
:class "osettings-content"
|
||||
:style "min-height: 813px;"
|
||||
(box
|
||||
:halign "fill"
|
||||
:class "osettings-scroll-bg"
|
||||
:space-evenly false
|
||||
:spacing 20
|
||||
:orientation "v"
|
||||
(box
|
||||
:class "osettings-settings"
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
; Quick settings
|
||||
(revealer
|
||||
:reveal "${matches('quick settings volume audio brightness',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:class "osettings-window-section osettings-window-quick"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-quick"
|
||||
:text "QUICK SETTINGS"
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('quick settings volume audio',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(eventbox
|
||||
:onscroll "echo {} | sed -e 's/down/-/g' -e 's/up/+/g' | xargs -I% wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.03%"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:class "osettings-window-contents"
|
||||
(centerbox
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Volume"
|
||||
)
|
||||
(box)
|
||||
; (checkbox
|
||||
; :halign "end"
|
||||
; :class "osettings-checkbox"
|
||||
; :onchecked "scripts/volume mute SINK"
|
||||
; :onunchecked "scripts/volume mute SINK"
|
||||
; )
|
||||
(checkboxcmd
|
||||
:value "${volume.audio}"
|
||||
:changecmd "scripts/volume mute SINK"
|
||||
)
|
||||
)
|
||||
(scale
|
||||
:halign "fill"
|
||||
:class "osettings-slider osettings-slider-quick osettings-slider-5"
|
||||
:value "${volume.percent}"
|
||||
:tooltip "volume on ${volume.percent}%"
|
||||
:onchange "scripts/volume setvol SINK {}"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('quick settings brightness',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Brightness"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-quick osettings-slider-5"
|
||||
:value "${brightness.level}"
|
||||
:onchange "light -S {}"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-quick-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Session control
|
||||
(revealer
|
||||
:reveal "${matches('session lock logout suspend log out shutdown shut down poweroff power off',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section osettings-window-session"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-session"
|
||||
:text "SESSION"
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('session lock',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-neutral"
|
||||
:onclick "~/.local/bin/lock.sh &"
|
||||
"Lock"
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('session suspend',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-neutral"
|
||||
:onclick "systemctl suspend &"
|
||||
"Suspend"
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('session logout log out',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-destructive"
|
||||
:onclick "pkill Hyprland &"
|
||||
"Logout"
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('session shutdown shut down poweroff power off',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-destructive"
|
||||
:onclick "systemctl poweroff &"
|
||||
"Shutdown"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-session-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Mouse
|
||||
(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 "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section osettings-window-mouse"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-mouse"
|
||||
:text "MOUSE & TOUCHPAD"
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('mouse and touchpad touch pad speed mouse acceleration osu raw input sensitivity',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(centerbox
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Raw Input"
|
||||
)
|
||||
(box)
|
||||
(checkboxhyprctl
|
||||
:value "${hyprjson.force_no_accel}"
|
||||
:changevalue "input:force_no_accel"
|
||||
:halign "end"
|
||||
:class "osettings-checkbox"
|
||||
)
|
||||
)
|
||||
(eventbox
|
||||
:onrightclick "hyprctl keyword input:sensitivity 0"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Sensitivity"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-mouse osettings-slider-3"
|
||||
:value "${hyprjson.input_sensitivity * 50 + 50}"
|
||||
:onchange "hyprctl keyword input:sensitivity $(echo - | awk '{print {} / 50 - 1}') && scripts/hyprsettings tickle"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('mouse and touch pad touchpad disable while typing disable_while_typing',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(centerbox
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
(label
|
||||
:halign "start"
|
||||
:class "osettings-text"
|
||||
:text "Disable touchpad while typing"
|
||||
)
|
||||
(box)
|
||||
(checkboxhyprctl
|
||||
:value "${hyprjson.touchpad_disable_while_typing}"
|
||||
:changevalue "input:touchpad:disable_while_typing"
|
||||
:class "osettings-checkbox"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('mouse and touchpad touch pad tap to click clickfinger_behavior',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(centerbox
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
(label
|
||||
:halign "start"
|
||||
:class "osettings-text"
|
||||
:text "Tap to click"
|
||||
)
|
||||
(box)
|
||||
(checkboxhyprctl
|
||||
:value "${hyprjson.touchpad_clickfinger_behavior}"
|
||||
:changevalue "input:touchpad:clickfinger_behavior"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-mouse-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Appearance
|
||||
(revealer
|
||||
:reveal "${matches('appearance looks customization blur size blur passes blur strength blur xray',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section osettings-window-appearance"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-appearance"
|
||||
:text "BLUR"
|
||||
)
|
||||
(centerbox
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:class "osettings-text"
|
||||
:text "Enable blur"
|
||||
)
|
||||
(box)
|
||||
(checkboxhyprctl
|
||||
:value "${hyprjson.blur}"
|
||||
:changevalue "decoration:blur"
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('appearance looks customization blur size blur strength',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Blur size"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-5"
|
||||
: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 "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Blur passes"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-5"
|
||||
: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 "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(centerbox
|
||||
:orientation "h"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
(label
|
||||
:halign "start"
|
||||
:class "osettings-text"
|
||||
:text "Blur xray"
|
||||
)
|
||||
(box)
|
||||
(checkboxhyprctl
|
||||
:value "${hyprjson.blur_xray}"
|
||||
:changevalue "decoration:blur_xray"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-appearance-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('appearance looks customization gaps gaps_in inner gaps: inner gaps_out outer gaps: outer space border_size border size border thickness',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section osettings-window-gaps"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-gaps"
|
||||
:text "GAPS"
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('appearance looks customization gaps_in inner gaps: inner space',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Gaps: Inner"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-4"
|
||||
: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 "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Gaps: Outer"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-4"
|
||||
: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 "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-contents"
|
||||
(label
|
||||
:halign "start"
|
||||
:wrap true
|
||||
:class "osettings-text"
|
||||
:text "Border size"
|
||||
)
|
||||
(scale
|
||||
:class "osettings-slider osettings-slider-4"
|
||||
:value "${hyprjson.border_size}"
|
||||
:tooltip "Border size: ${hyprjson.border_size}"
|
||||
:onchange "hyprctl keyword general:border_size {} && scripts/hyprsettings tickle"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-gaps-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Hyperland
|
||||
(revealer
|
||||
:reveal "${matches(oquery, 'hyperland')}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section osettings-window-hyperland"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-hyperland"
|
||||
:text "HYPERLAND"
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches(oquery, 'hyperland')}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-neutral"
|
||||
:onclick "notify-send whyyyyyyy 😭"
|
||||
"Check the spelling and try again"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-hyperland-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Hyprland
|
||||
(revealer
|
||||
:reveal "${matches('hyprland options open the wiki guide help social hypr development discord reload config configuration',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
:class "osettings-window-section osettings-window-hyprland"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-hyprland"
|
||||
:text "HYPRLAND OPTIONS"
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('hyprland options reload config configuration',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-neutral"
|
||||
:onclick "cp ~/.config/hypr/hyprland.conf temporary_config.conf && cp temporary_config.conf ~/.config/hypr/hyprland.conf && rm temporary_config.conf &"
|
||||
"Reload config"
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('hyprland open the wiki guide help',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-informative"
|
||||
:onclick "scripts/toggle-osettings.sh && xdg-open https://wiki.hyprland.org &"
|
||||
"Open the wiki"
|
||||
)
|
||||
)
|
||||
)
|
||||
(revealer
|
||||
:reveal "${matches('hyprland help social hypr development discord',oquery)}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(box
|
||||
:space-evenly false
|
||||
:orientation "v"
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-informative"
|
||||
:onclick "scripts/toggle-osettings.sh xdg-open https://discord.com/invite/hQ9XvMUjjr &"
|
||||
"Hypr Development Discord"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-hyprland-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Calendar
|
||||
(revealer
|
||||
:reveal "${'calendar' == oquery}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:class "osettings-window-section osettings-window-calendar"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-calendar"
|
||||
:text "CALENDAR"
|
||||
)
|
||||
(calendar)
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-calendar-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
; Super secret settings
|
||||
(revealer
|
||||
:reveal "${oquery == '!secret' || oquery == '!sekret'}"
|
||||
:transition "slidedown"
|
||||
:duration "0ms"
|
||||
(overlay
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:class "osettings-window-section osettings-window-secret"
|
||||
(label
|
||||
:xalign 0
|
||||
:class "osettings-section osettings-section-secret"
|
||||
:text "SUPER SECRET SETTINGS"
|
||||
)
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-informative"
|
||||
:onclick "scripts/supersecretsettings/culture &"
|
||||
"Activate culture mode"
|
||||
)
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-informative"
|
||||
:onclick "scripts/supersecretsettings/doreload &"
|
||||
"Reset these stuff"
|
||||
)
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-destructive"
|
||||
:onclick "hyprctl keyword bind ,c,exec,wtype k"
|
||||
"Bekome a KDE developer"
|
||||
)
|
||||
(button
|
||||
:halign "fill"
|
||||
:wrap true
|
||||
:class "osettings-btn osettings-btn-destructive"
|
||||
:onclick "hyprctl keyword unbind ,c"
|
||||
"Un-become a KDE developer"
|
||||
)
|
||||
; (centerbox
|
||||
; :orientation "h"
|
||||
; :space-evenly false
|
||||
; :halign "fill"
|
||||
; (label
|
||||
; :halign "start"
|
||||
; :wrap true
|
||||
; :class "osettings-text"
|
||||
; :text "Culture mode"
|
||||
; )
|
||||
; (box)
|
||||
; (checkboxcmd
|
||||
; :value "${volume.audio}"
|
||||
; :changecmd "notify-send 'i see ur a man of culture as well'"
|
||||
; )
|
||||
; )
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-quick-bottomright"
|
||||
)
|
||||
(box
|
||||
:halign "end" :valign "end"
|
||||
:class "osettings-window-bottomright-cut"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defwindow osettings
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:focusable true
|
||||
:geometry (geometry
|
||||
:x "0px"
|
||||
:y "32px"
|
||||
:width "0px"
|
||||
:height "1048px"
|
||||
:anchor "top left"
|
||||
)
|
||||
(osettings)
|
||||
)
|
||||
|
||||
(defwidget osettings-button []
|
||||
(eventbox
|
||||
:class "osettings-toggle-button-false"
|
||||
:onmiddleclick "playerctl play-pause"
|
||||
:onrightclick "playerctl next"
|
||||
: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"
|
||||
(button
|
||||
:class "osettings-toggle-button-${rev_ostg}"
|
||||
:onclick "scripts/toggle-osettings.sh &"
|
||||
(label :class "icon" :text "")
|
||||
)
|
||||
)
|
||||
)
|
||||
Executable
+242
@@ -0,0 +1,242 @@
|
||||
(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"
|
||||
)
|
||||
(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}' &"
|
||||
)
|
||||
)
|
||||
(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"
|
||||
; ICON ICON ICON
|
||||
(box
|
||||
:class "overview-topbar-icon overview-icon"
|
||||
: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
|
||||
(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: 2px 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 + '\'')}"
|
||||
; :onhover "${ws-window.class == 'workspace' ? '' : EWW_CMD} ${ws-window.class == 'workspace' ? '' : 'update overview_hover_name=\''}${ws-window.class == 'workspace' ? '' : ws-window.title}${ws-window.class == 'workspace' ? '' : '\' &'}"
|
||||
(box
|
||||
:class "overview-background"
|
||||
; Uncomment below to enable thumbnail previews (VERY SLOW)
|
||||
; :style "
|
||||
; background-image: url('scripts/cache/thumbnails/${ws-window.address }.png');
|
||||
; "
|
||||
(box
|
||||
:class "overview-icon"
|
||||
:style "
|
||||
background-size: ${ws-window.size[0] > ws-window.size[1] ? 'auto 45%' : '45% auto'};
|
||||
background-image: url('${ws-window.icon}')
|
||||
"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(box
|
||||
:orientation "h"
|
||||
(for wspace in wsjsonb
|
||||
(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: 2px 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');
|
||||
; "
|
||||
(box
|
||||
:class "overview-icon"
|
||||
:style "
|
||||
background-size: ${ws-window.size[0] > ws-window.size[1] ? 'auto 45%' : '45% auto'};
|
||||
background-image: url('${ws-window.icon}')
|
||||
"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(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
|
||||
:style "min-width: 452px; min-height: 547px;"
|
||||
(box
|
||||
:halign "center"
|
||||
:orientation "v"
|
||||
:class "overview-results"
|
||||
:spacing 2
|
||||
:space-evenly false
|
||||
(for entry in overview_results
|
||||
(box
|
||||
:orientation "h"
|
||||
; (input
|
||||
; :value "${entry.icon}"
|
||||
; :class "overview-search-result"
|
||||
; :onaccept "scripts/launchapp '${entry.exec}' &"
|
||||
; )
|
||||
(input
|
||||
:value "${entry.name} | $ ${entry.exec}"
|
||||
:class "overview-search-result"
|
||||
:onaccept "scripts/launchapp '${entry.exec}' &"
|
||||
)
|
||||
; (input
|
||||
; :value "${entry.exec}"
|
||||
; :class "overview-search-result"
|
||||
; :onaccept "scripts/launchapp '{}' &"
|
||||
; )
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow overview
|
||||
:stacking "overlay"
|
||||
:focusable true
|
||||
:wm-ignore true
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
; :height 1080
|
||||
; :width 1920
|
||||
:y "103px"
|
||||
:anchor "top center"
|
||||
; :y "0px"
|
||||
; :anchor "center center"
|
||||
)
|
||||
; (testing)
|
||||
(overview)
|
||||
)
|
||||
Executable
+187
@@ -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)
|
||||
)
|
||||
|
||||
Executable
+138
@@ -0,0 +1,138 @@
|
||||
(defwidget themerctl []
|
||||
(box
|
||||
:orientation "v"
|
||||
:space-evenly false
|
||||
:halign "fill"
|
||||
:valign "fill"
|
||||
(eventbox
|
||||
:onclick "scripts/toggle-themer.sh --close &"
|
||||
(box
|
||||
:style "
|
||||
${rev_themer ? '' : 'margin-top: -400px;'}
|
||||
${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 "v"
|
||||
:class "window window-themer"
|
||||
:style "
|
||||
${rev_themer ? '' : 'margin-top: -400px;'}
|
||||
${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
|
||||
:class "window-titlebar-themer"
|
||||
(label :class "window-text" :xalign 0 :text "THEMES")
|
||||
)
|
||||
(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/colormanage get"
|
||||
""
|
||||
)
|
||||
(button
|
||||
:class "themer-action-button themer-restore"
|
||||
:onclick "scripts/colormanage default"
|
||||
""
|
||||
)
|
||||
(button
|
||||
:class "themer-action-button"
|
||||
:onclick "scripts/togglelight light"
|
||||
:tooltip "Light mode (for generating new themes)"
|
||||
""
|
||||
)
|
||||
(button
|
||||
:class "themer-action-button"
|
||||
:onclick "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"
|
||||
(label
|
||||
:class "themer-prompt"
|
||||
:text "Save "
|
||||
)
|
||||
(input
|
||||
:class "themer-input"
|
||||
:onaccept "scripts/colormanage save {}"
|
||||
)
|
||||
)
|
||||
(box
|
||||
:halign "start"
|
||||
:space-evenly false
|
||||
:orientation "h"
|
||||
(label
|
||||
:text "Load "
|
||||
:class "themer-prompt"
|
||||
)
|
||||
(input
|
||||
:class "themer-input"
|
||||
:onaccept "scripts/colormanage load {}"
|
||||
)
|
||||
)
|
||||
(label
|
||||
:class "themer-title"
|
||||
:text "Current pallete"
|
||||
: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" )
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defwindow themer
|
||||
:wm-ignore true
|
||||
:stacking "overlay"
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "300px"
|
||||
:y "32px"
|
||||
:anchor "top right"
|
||||
; :width "0px"
|
||||
; :height "0px"
|
||||
)
|
||||
:focusable true
|
||||
(themerctl)
|
||||
)
|
||||
|
||||
(defwidget themer []
|
||||
(eventbox
|
||||
:onhover "${EWW_CMD} update themer_hover=true"
|
||||
:onhoverlost "${EWW_CMD} update themer_hover=false"
|
||||
(button
|
||||
:class "themer-button-${themer_hover || themer_open}"
|
||||
:onclick "scripts/toggle-themer.sh"
|
||||
:style "font-family: 'Material Symbols Outlined';"
|
||||
''
|
||||
)
|
||||
)
|
||||
)
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
(defwindow win-workspace
|
||||
:wm-ignore true
|
||||
:focusable false
|
||||
:monitor 0
|
||||
:geometry (geometry
|
||||
:x "0%"
|
||||
:y "53px"
|
||||
:width "0%"
|
||||
:height "0%"
|
||||
:anchor "top center"
|
||||
)
|
||||
(win-ws)
|
||||
)
|
||||
Reference in New Issue
Block a user