mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
Fix hyprland
This commit is contained in:
parent
7344a9e77a
commit
73a0cc0977
0
config/HybridBar/scripts/change-active-workspace
Normal file → Executable file
0
config/HybridBar/scripts/change-active-workspace
Normal file → Executable file
0
config/HybridBar/scripts/get-active-workspace
Normal file → Executable file
0
config/HybridBar/scripts/get-active-workspace
Normal file → Executable file
0
config/HybridBar/scripts/get-window-title
Normal file → Executable file
0
config/HybridBar/scripts/get-window-title
Normal file → Executable file
0
config/HybridBar/scripts/get-workspaces
Normal file → Executable file
0
config/HybridBar/scripts/get-workspaces
Normal file → Executable file
@ -442,7 +442,7 @@ local globalkeys = gears.table.join(
|
|||||||
-- awful.key({ modkey, "Control" }, "q", awesome.quit, { description = "quit awesome", group = "awesome" }),
|
-- awful.key({ modkey, "Control" }, "q", awesome.quit, { description = "quit awesome", group = "awesome" }),
|
||||||
|
|
||||||
awful.key({ modkey }, "b", function()
|
awful.key({ modkey }, "b", function()
|
||||||
awful.spawn("floorp")
|
awful.spawn("zen-browser")
|
||||||
end, { description = "open browser", group = "launcher" }),
|
end, { description = "open browser", group = "launcher" }),
|
||||||
awful.key({ modkey }, "n", function()
|
awful.key({ modkey }, "n", function()
|
||||||
awful.spawn("alacritty -e yazi")
|
awful.spawn("alacritty -e yazi")
|
||||||
@ -594,6 +594,10 @@ local clientbuttons = gears.table.join(
|
|||||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
||||||
awful.mouse.client.move(c)
|
awful.mouse.client.move(c)
|
||||||
end),
|
end),
|
||||||
|
awful.button({ modkey, "shift" }, 1, function(c)
|
||||||
|
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
||||||
|
awful.mouse.client.resize(c)
|
||||||
|
end),
|
||||||
awful.button({ modkey }, 3, function(c)
|
awful.button({ modkey }, 3, function(c)
|
||||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
||||||
awful.mouse.client.resize(c)
|
awful.mouse.client.resize(c)
|
||||||
|
|||||||
@ -57,7 +57,7 @@ update_ms = 500
|
|||||||
|
|
||||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||||
proc_sorting = "memory"
|
proc_sorting = "cpu direct"
|
||||||
|
|
||||||
#* Reverse sorting order, True or False.
|
#* Reverse sorting order, True or False.
|
||||||
proc_reversed = False
|
proc_reversed = False
|
||||||
|
|||||||
129
config/eww.bak/eww.scss
Normal file
129
config/eww.bak/eww.scss
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
$base: #191724;
|
||||||
|
$surface: #1f1d2e;
|
||||||
|
$overlay: #26233a;
|
||||||
|
$muted: #6e6a86;
|
||||||
|
$subtle: #908caa;
|
||||||
|
$text: #e0def4;
|
||||||
|
$love: #eb6f92;
|
||||||
|
$gold: #f6c177;
|
||||||
|
$rose: #ebbcba;
|
||||||
|
$pine: #31748f;
|
||||||
|
$foam: #9ccfd8;
|
||||||
|
$iris: #c4a7e7;
|
||||||
|
$highlight_low: #21202e;
|
||||||
|
$highlight_med: #403d52;
|
||||||
|
$highlight_high: #524f67;
|
||||||
|
$bg: rgba(25, 23, 37, 0.7);
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset; //Unsets everything so you can style everything from scratch
|
||||||
|
font-family: "JetBrainsMono NF";
|
||||||
|
}
|
||||||
|
|
||||||
|
//Global Styles
|
||||||
|
.bar,
|
||||||
|
.bar-1 {
|
||||||
|
background-color: $bg;
|
||||||
|
color: $text;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Styles on classes (see eww.yuck for more information)
|
||||||
|
|
||||||
|
.sidestuff slider {
|
||||||
|
all: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metric scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-color: $love;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metric scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: $highlight_med;
|
||||||
|
border-radius: 50px;
|
||||||
|
min-height: 3px;
|
||||||
|
min-width: 50px;
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metric scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
// background-color: $subtle;
|
||||||
|
background-color: $foam;
|
||||||
|
color: $base;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.metric scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: $highlight_med;
|
||||||
|
border-radius: 50px;
|
||||||
|
min-height: 3px;
|
||||||
|
min-width: 50px;
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-right: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.label-ram {
|
||||||
|
font-size: large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
&.playing {
|
||||||
|
color: $pine;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.paused {
|
||||||
|
color: $muted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces {
|
||||||
|
.current {
|
||||||
|
color: $pine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-module {
|
||||||
|
& > &__icon {
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.cpu {
|
||||||
|
&.warning {
|
||||||
|
color: $gold;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.danger {
|
||||||
|
color: $love;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.battery {
|
||||||
|
&.warning {
|
||||||
|
color: $gold;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.critical {
|
||||||
|
color: $love;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.Charging {
|
||||||
|
color: $pine;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.network {
|
||||||
|
&.disconnected {
|
||||||
|
color: $love;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces button:hover {
|
||||||
|
background: $highlight_med;
|
||||||
|
}
|
||||||
244
config/eww.bak/eww.yuck
Normal file
244
config/eww.bak/eww.yuck
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
;; Variables
|
||||||
|
(defpoll clock_time :interval "5m" "date +\%I")
|
||||||
|
(defpoll clock_minute :interval "5s" "date +\%M")
|
||||||
|
(defpoll clock_date :interval "10h" "date '+%d/%m'")
|
||||||
|
(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
|
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
|
(defpoll brightness_percent :interval "5s" "brightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
|
||||||
|
;; (defpoll battery :interval "15s" "./scripts/battery --bat")
|
||||||
|
;; (defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
|
||||||
|
;; (defpoll memory :interval "15s" "scripts/memory")
|
||||||
|
;; (defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
|
||||||
|
;; (defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
|
||||||
|
;; (defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
|
||||||
|
(defvar vol_reveal false)
|
||||||
|
(defvar br_reveal false)
|
||||||
|
(defvar music_reveal false)
|
||||||
|
(defvar wifi_rev false)
|
||||||
|
(defvar time_rev false)
|
||||||
|
(deflisten workspace "scripts/workspace")
|
||||||
|
|
||||||
|
(defvar eww "$HOME/.local/bin/eww/eww -c $HOME/.config/eww/bar")
|
||||||
|
|
||||||
|
(defwidget bar []
|
||||||
|
(centerbox :orientation "h"
|
||||||
|
(workspaces)
|
||||||
|
(window)
|
||||||
|
(sidestuff)))
|
||||||
|
|
||||||
|
(defwidget sidestuff []
|
||||||
|
(box
|
||||||
|
:class "sidestuff"
|
||||||
|
:orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:spacing 10
|
||||||
|
(music)
|
||||||
|
(metric
|
||||||
|
:label ""
|
||||||
|
:value volume
|
||||||
|
:onchange "pulsemixer --set-volume {}" )
|
||||||
|
;; (metric_extended
|
||||||
|
;; :label ""
|
||||||
|
;; :value brightness
|
||||||
|
;; :onchange "doas brightnessctl set {}" )
|
||||||
|
(cpu)
|
||||||
|
(github)
|
||||||
|
;; (network)
|
||||||
|
(battery)
|
||||||
|
(bright)
|
||||||
|
time
|
||||||
|
date
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
||||||
|
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get-active-workspace")
|
||||||
|
|
||||||
|
(defwidget workspaces []
|
||||||
|
(eventbox :onscroll "bash ~/.config/eww/scripts/change-active-workspace {} ${current_workspace}" :class "workspaces"
|
||||||
|
(box :space-evenly true
|
||||||
|
:halign "start"
|
||||||
|
:space-evenly true
|
||||||
|
:spacing 5
|
||||||
|
(label :text "${workspaces}${current_workspace}" :visible false)
|
||||||
|
(for workspace in workspaces
|
||||||
|
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
|
||||||
|
(box :class "workspace-entry ${workspace.windows > 0 ? "occupied" : "empty"}"
|
||||||
|
(label :text "${workspace.id}" :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""}" )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(deflisten window :initial "..." "bash ~/.config/eww/scripts/get-window-title")
|
||||||
|
(defwidget window []
|
||||||
|
(box :class "window"
|
||||||
|
(label :text "${window}")))
|
||||||
|
|
||||||
|
(defwidget music []
|
||||||
|
(box :class "music ${music_status == "Playing" ? "playing" : "paused"}"
|
||||||
|
:orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
(button :onclick "sp play" {music != "" ? "${music}" : ""})))
|
||||||
|
|
||||||
|
(defwidget icon-module [icon ?class ?visible]
|
||||||
|
(box :class "${class} icon-module"
|
||||||
|
:orientation "h"
|
||||||
|
:halign "end"
|
||||||
|
:space-evenly false
|
||||||
|
:visible {visible ?: true} ; because the argument is optional
|
||||||
|
(label :class "icon-module__icon" :text "${icon}")
|
||||||
|
(children)))
|
||||||
|
|
||||||
|
(defwidget metric [label value onchange]
|
||||||
|
(box :orientation "h"
|
||||||
|
:class "metric"
|
||||||
|
:space-evenly false
|
||||||
|
(box :class "label" label)
|
||||||
|
(scale :min 0
|
||||||
|
:max 101
|
||||||
|
:active {onchange != ""}
|
||||||
|
:value value
|
||||||
|
:onchange onchange)))
|
||||||
|
|
||||||
|
(defpoll music
|
||||||
|
:interval "1s"
|
||||||
|
"scripts/get-music")
|
||||||
|
|
||||||
|
(defpoll music_status
|
||||||
|
:interval "1s"
|
||||||
|
"sp status")
|
||||||
|
|
||||||
|
(defpoll volume
|
||||||
|
:interval "1s"
|
||||||
|
"scripts/getvol")
|
||||||
|
|
||||||
|
(defwidget metric_extended [label value onchange]
|
||||||
|
(box
|
||||||
|
:orientation "h"
|
||||||
|
:class "metric"
|
||||||
|
:space-evenly false
|
||||||
|
(box
|
||||||
|
:class "label" label)
|
||||||
|
(scale
|
||||||
|
:min 0
|
||||||
|
:max 256
|
||||||
|
:active {onchange != ""}
|
||||||
|
:value value
|
||||||
|
:onchang
|
||||||
|
:onchange onchange)))
|
||||||
|
|
||||||
|
(defpoll brightness
|
||||||
|
:interval "1s"
|
||||||
|
:class "brightness"
|
||||||
|
"brightnessctl get")
|
||||||
|
|
||||||
|
;; "format-icons": ["", "", "", "", "", "", "", "", ""],
|
||||||
|
|
||||||
|
(defwidget battery []
|
||||||
|
(icon-module
|
||||||
|
:icon "${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
||||||
|
""}"
|
||||||
|
:class "battery ${EWW_BATTERY.BAT0.capacity > 30 ? "good" : EWW_BATTERY.BAT0.capacity > 10 ? "warning" : "critical"} ${EWW_BATTERY.BAT0.status}"
|
||||||
|
(label
|
||||||
|
:text "${EWW_BATTERY.BAT0.capacity}%")))
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll time :interval "1s"
|
||||||
|
"date '+%H:%M:%S'")
|
||||||
|
|
||||||
|
(defpoll date :interval "10s"
|
||||||
|
"date '+%d.%m.%Y'")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll github_poll
|
||||||
|
:initial ""
|
||||||
|
:interval "1m" "sh ~/.config/eww/scripts/github")
|
||||||
|
(defwidget github []
|
||||||
|
(button
|
||||||
|
:onclick "xdg-open https://github.com/notifications"
|
||||||
|
(box
|
||||||
|
(icon-module
|
||||||
|
:class "github"
|
||||||
|
:icon ""
|
||||||
|
:visible {github_poll != ""})
|
||||||
|
github_poll)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget cpu []
|
||||||
|
(icon-module
|
||||||
|
:icon ""
|
||||||
|
:class "cpu ${EWW_CPU.avg > 90 ? "danger" : EWW_CPU.avg > 60 ? "warning" : ""}"
|
||||||
|
(label
|
||||||
|
:text "${round(EWW_CPU.avg, 0)}%")))
|
||||||
|
|
||||||
|
;; (defpoll net_poll
|
||||||
|
;; :initial "..."
|
||||||
|
;; :interval "10s" "sh ~/.config/eww/scripts/get-network")
|
||||||
|
(defwidget network []
|
||||||
|
(icon-module
|
||||||
|
:icon ""
|
||||||
|
:class "network ${EWW_NET.wlan0.NET_DOWN == 0 && EWW_NET.wlan0.NET_UP == 0 ? "disconnected" : ""}"
|
||||||
|
(label
|
||||||
|
:text "${EWW_NET.wlan0.NET_DOWN == 0 && EWW_NET.wlan0.NET_UP == 0 ? "Disconnected ⚠" : ""}")))
|
||||||
|
|
||||||
|
;; "network": {
|
||||||
|
;; "format-wifi": "{essid} ({signalStrength}%) ",
|
||||||
|
;; "format-ethernet": "{ipaddr}/{cidr} ",
|
||||||
|
;; "tooltip-format": "{ifname} via {gwaddr} ",
|
||||||
|
;; "format-linked": "{ifname} (No IP) ",
|
||||||
|
;; "format-disconnected": "",
|
||||||
|
;; "format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||||
|
;; },
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:exclusive true
|
||||||
|
:geometry (geometry
|
||||||
|
:x "0%"
|
||||||
|
:y "0%"
|
||||||
|
:width "100%"
|
||||||
|
:height "10px"
|
||||||
|
:anchor "top center")
|
||||||
|
:reserve (struts :side "top" :distance "4%")
|
||||||
|
(bar))
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow bar-1
|
||||||
|
:monitor 1
|
||||||
|
:exclusive true
|
||||||
|
:geometry (geometry
|
||||||
|
:x "0%"
|
||||||
|
:y "0%"
|
||||||
|
:width "100%"
|
||||||
|
:height "10px"
|
||||||
|
:anchor "top center")
|
||||||
|
:reserve (struts :side "top" :distance "4%")
|
||||||
|
(bar))
|
||||||
|
|
||||||
|
(defwidget bright []
|
||||||
|
(eventbox :onhover "eww update br_reveal=true" :onhoverlost "eww update br_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label
|
||||||
|
:text "${brightness_percent < 30 ? "☼": "☀"}"
|
||||||
|
:class "bright_icon" :tooltip "brightness")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal br_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "brightbar"
|
||||||
|
:value brightness_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${brightness_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "brightnessctl set {}%" )))))
|
||||||
21
config/eww.bak/scripts/change-active-workspace
Executable file
21
config/eww.bak/scripts/change-active-workspace
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
function clamp {
|
||||||
|
min=$1
|
||||||
|
max=$2
|
||||||
|
val=$3
|
||||||
|
python -c "print(max($min, min($val, $max)))"
|
||||||
|
}
|
||||||
|
|
||||||
|
direction=$1
|
||||||
|
current=$2
|
||||||
|
if test "$direction" = "down"
|
||||||
|
then
|
||||||
|
target=$(clamp 1 10 $(($current+1)))
|
||||||
|
echo "jumping to $target"
|
||||||
|
hyprctl dispatch workspace $target
|
||||||
|
elif test "$direction" = "up"
|
||||||
|
then
|
||||||
|
target=$(clamp 1 10 $(($current-1)))
|
||||||
|
echo "jumping to $target"
|
||||||
|
hyprctl dispatch workspace $target
|
||||||
|
fi
|
||||||
6
config/eww.bak/scripts/get-active-workspace
Executable file
6
config/eww.bak/scripts/get-active-workspace
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
hyprctl monitors -j | jq '.[] | select(.focused) | .activeWorkspace.id'
|
||||||
|
|
||||||
|
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - |
|
||||||
|
stdbuf -o0 awk -F '>>|,' -e '/^workspace>>/ {print $2}' -e '/^focusedmon>>/ {print $3}'
|
||||||
0
config/eww/scripts/get-music → config/eww.bak/scripts/get-music
Normal file → Executable file
0
config/eww/scripts/get-music → config/eww.bak/scripts/get-music
Normal file → Executable file
0
config/eww/scripts/get-network → config/eww.bak/scripts/get-network
Normal file → Executable file
0
config/eww/scripts/get-network → config/eww.bak/scripts/get-network
Normal file → Executable file
3
config/eww.bak/scripts/get-window-title
Executable file
3
config/eww.bak/scripts/get-window-title
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
hyprctl activewindow -j | jq --raw-output .title
|
||||||
|
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | stdbuf -o0 awk -F '>>|,' '/^activewindow>>/{print $3}'
|
||||||
11
config/eww.bak/scripts/get-workspaces
Executable file
11
config/eww.bak/scripts/get-workspaces
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
spaces (){
|
||||||
|
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
|
||||||
|
seq 1 10 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
|
||||||
|
}
|
||||||
|
|
||||||
|
spaces
|
||||||
|
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||||
|
spaces
|
||||||
|
done
|
||||||
0
config/eww/scripts/getvol → config/eww.bak/scripts/getvol
Normal file → Executable file
0
config/eww/scripts/getvol → config/eww.bak/scripts/getvol
Normal file → Executable file
0
config/eww/scripts/github → config/eww.bak/scripts/github
Normal file → Executable file
0
config/eww/scripts/github → config/eww.bak/scripts/github
Normal file → Executable file
@ -1,170 +1,466 @@
|
|||||||
$bg: #1a1b26;
|
$base: #191724;
|
||||||
$bg_dark: #16161e;
|
$surface: #1f1d2e;
|
||||||
$bg_float: #16161e;
|
$overlay: #26233a;
|
||||||
$bg_highlight: #292e42;
|
$muted: #6e6a86;
|
||||||
$bg_popup: #16161e;
|
$subtle: #908caa;
|
||||||
$bg_search: #3d59a1;
|
$text: #e0def4;
|
||||||
$bg_sidebar: #16161e;
|
$love: #eb6f92;
|
||||||
$bg_statusline: #16161e;
|
$gold: #f6c177;
|
||||||
$bg_visual: #283457;
|
$rose: #ebbcba;
|
||||||
$black: #15161e;
|
$pine: #31748f;
|
||||||
$blue: #7aa2f7;
|
$foam: #9ccfd8;
|
||||||
$blue0: #3d59a1;
|
$iris: #c4a7e7;
|
||||||
$blue1: #2ac3de;
|
$highlight_low: #21202e;
|
||||||
$blue2: #0db9d7;
|
$highlight_med: #403d52;
|
||||||
$blue5: #89ddff;
|
$highlight_high: #524f67;
|
||||||
$blue6: #b4f9f8;
|
$bg: rgba(25, 23, 37, 0.7);
|
||||||
$blue7: #394b70;
|
|
||||||
$border: #15161e;
|
|
||||||
$border_highlight: #27a1b9;
|
|
||||||
$comment: #565f89;
|
|
||||||
$cyan: #7dcfff;
|
|
||||||
$dark3: #545c7e;
|
|
||||||
$dark5: #737aa2;
|
|
||||||
$delta_add: #2c5a66;
|
|
||||||
$delta_delete: #713137;
|
|
||||||
$diff_add: #20303b;
|
|
||||||
$diff_change: #1f2231;
|
|
||||||
$diff_delete: #37222c;
|
|
||||||
$diff_text: #394b70;
|
|
||||||
$error: #db4b4b;
|
|
||||||
$fg: #c0caf5;
|
|
||||||
$fg_dark: #a9b1d6;
|
|
||||||
$fg_float: #c0caf5;
|
|
||||||
$fg_gutter: #3b4261;
|
|
||||||
$fg_sidebar: #a9b1d6;
|
|
||||||
$git_add: #449dab;
|
|
||||||
$git_change: #6183bb;
|
|
||||||
$git_delete: #914c54;
|
|
||||||
$git_ignore: #545c7e;
|
|
||||||
$gitSigns_add: #266d6a;
|
|
||||||
$gitSigns_change: #536c9e;
|
|
||||||
$gitSigns_delete: #b2555b;
|
|
||||||
$green: #9ece6a;
|
|
||||||
$green1: #73daca;
|
|
||||||
$green2: #41a6b5;
|
|
||||||
$hint: #1abc9c;
|
|
||||||
$info: #0db9d7;
|
|
||||||
$magenta: #bb9af7;
|
|
||||||
$magenta2: #ff007c;
|
|
||||||
$orange: #ff9e64;
|
|
||||||
$purple: #9d7cd8;
|
|
||||||
$red: #f7768e;
|
|
||||||
$red1: #db4b4b;
|
|
||||||
$teal: #1abc9c;
|
|
||||||
$terminal_black: #414868;
|
|
||||||
$warning: #e0af68;
|
|
||||||
$yellow: #e0af68;
|
|
||||||
|
|
||||||
* {
|
* {
|
||||||
all: unset; //Unsets everything so you can style everything from scratch
|
all: unset;
|
||||||
}
|
|
||||||
|
|
||||||
//Global Styles
|
|
||||||
.bar,
|
|
||||||
.bar-1 {
|
|
||||||
background-color: rgba(22, 22, 30, 0.7);
|
|
||||||
color: $fg;
|
|
||||||
font-family: "JetBrainsMono NF";
|
font-family: "JetBrainsMono NF";
|
||||||
|
font-size: 14;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** General **/
|
||||||
|
.bar {
|
||||||
|
background-color: $bg;
|
||||||
|
color: $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module {
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
border-radius: 10px 16px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** tooltip!! **/
|
||||||
|
tooltip.background {
|
||||||
|
background-color: $bg;
|
||||||
|
border-radius: 10px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
margin: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Widgets **/
|
||||||
|
|
||||||
|
.clock_time_sep {
|
||||||
|
font-size: 16;
|
||||||
|
color: #bfc9db;
|
||||||
|
margin: 0px 4px 1px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock_date {
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
color: $iris;
|
||||||
|
}
|
||||||
|
|
||||||
|
clock_time {
|
||||||
|
margin: 0px 20px 0px 3px;
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clock_time {
|
||||||
|
color: #bfc9db;
|
||||||
|
margin: 0px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.membar {
|
||||||
|
color: $rose;
|
||||||
|
background-color: $highlight_med;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.batbar {
|
||||||
|
color: $pine;
|
||||||
|
background-color: $highlight_med;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brightbar trough highlight {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$rose 30%,
|
||||||
|
#f1bf99 50%,
|
||||||
|
$gold 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volbar trough highlight {
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$foam 30%,
|
||||||
|
#67a2b4 50%,
|
||||||
|
$pine 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: $foam;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module_essid {
|
||||||
|
/* font-size: 18; */
|
||||||
|
color: $foam;
|
||||||
|
margin: 0px 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module-wif {
|
||||||
|
/* font-size: 22; */
|
||||||
|
color: $foam;
|
||||||
|
border-radius: 100%;
|
||||||
|
margin: 0px 10px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconmem {
|
||||||
|
color: $rose;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconbat {
|
||||||
|
color: $foam;
|
||||||
|
|
||||||
|
&__Charging {
|
||||||
|
color: $gold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconbat,
|
||||||
|
.iconmem {
|
||||||
|
font-size: 15;
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bright_icon {
|
||||||
|
font-size: 22;
|
||||||
|
color: $rose;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separ {
|
||||||
|
color: $highlight_med;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
font-size: 22px;
|
||||||
|
margin: 0px 8px 0px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Styles on classes (see eww.yuck for more information)
|
.mem_module {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
.sidestuff slider {
|
.bat_module {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
scale trough {
|
||||||
all: unset;
|
all: unset;
|
||||||
}
|
background-color: $overlay;
|
||||||
|
box-shadow: 0 2px 3px 2px $highlight_low;
|
||||||
.metric scale trough highlight {
|
border-radius: 16px;
|
||||||
all: unset;
|
min-height: 10px;
|
||||||
background-color: $error;
|
min-width: 70px;
|
||||||
border-radius: 10px;
|
margin: 0px 10px 0px 0px;
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: $bg_visual;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 1px;
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough highlight {
|
|
||||||
all: unset;
|
|
||||||
// background-color: $fg_sidebar;
|
|
||||||
background-color: $teal;
|
|
||||||
color: $bg;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.metric scale trough {
|
|
||||||
all: unset;
|
|
||||||
background-color: $bg_visual;
|
|
||||||
border-radius: 50px;
|
|
||||||
min-height: 3px;
|
|
||||||
min-width: 50px;
|
|
||||||
margin-left: 1px;
|
|
||||||
margin-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-ram {
|
|
||||||
font-size: large;
|
|
||||||
}
|
|
||||||
|
|
||||||
.music {
|
|
||||||
&.playing {
|
|
||||||
color: $teal;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.paused {
|
|
||||||
color: $terminal_black;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.workspaces {
|
.workspaces {
|
||||||
.current {
|
.current {
|
||||||
color: $hint;
|
color: $pine;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-module {
|
.song_cover_art {
|
||||||
&>&__icon {
|
background-size: cover;
|
||||||
margin-right: 5px;
|
background-position: center;
|
||||||
|
/* min-height: 24px; */
|
||||||
|
min-width: 24px;
|
||||||
|
margin: 10px;
|
||||||
|
border-radius: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song {
|
||||||
|
color: $foam;
|
||||||
|
/* font-size: 18px; */
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 3px 5px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_btn_play {
|
||||||
|
color: $foam;
|
||||||
|
font-size: 28px;
|
||||||
|
margin: 3px 0px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.song_btn_prev,
|
||||||
|
.song_btn_next {
|
||||||
|
color: #bfc9db;
|
||||||
|
font-size: 24px;
|
||||||
|
margin: 3px 0px 0px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar
|
||||||
|
.cal {
|
||||||
|
background-color: $bg;
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: normal;
|
||||||
|
|
||||||
|
.cal-in {
|
||||||
|
padding: 0px 10px 0px 10px;
|
||||||
|
color: $text;
|
||||||
|
|
||||||
|
.cal {
|
||||||
|
&.highlight {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
padding: 5px 5px 5px 5px;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.cpu {
|
calender {
|
||||||
&.warning {
|
color: $text;
|
||||||
color: $warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.danger {
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.battery {
|
calendar:selected {
|
||||||
&.warning {
|
color: $iris;
|
||||||
color: $warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.critical {
|
|
||||||
color: $red;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.Charging {
|
|
||||||
color: $teal;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.network {
|
calendar.header {
|
||||||
&.disconnected {
|
color: $iris;
|
||||||
color: $error;
|
font-weight: bold;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.workspaces button:hover {
|
calendar.button {
|
||||||
background: $bg_highlight;
|
color: $iris;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar.highlight {
|
||||||
|
color: $iris;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar:indeterminate {
|
||||||
|
color: #bfc9db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_sep {
|
||||||
|
color: $highlight_med;
|
||||||
|
font-size: 18;
|
||||||
|
margin: 0px 10px 0px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_text_bat_sub,
|
||||||
|
.sys_text_mem_sub {
|
||||||
|
font-size: 16;
|
||||||
|
color: $text;
|
||||||
|
margin: 5px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_text_bat,
|
||||||
|
.sys_text_mem {
|
||||||
|
font-size: 21;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 14px 0px 0px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_icon_bat,
|
||||||
|
.sys_icon_mem {
|
||||||
|
font-size: 30;
|
||||||
|
margin: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_win {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
background-color: $highlight_med;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_mem {
|
||||||
|
color: $rose;
|
||||||
|
background-color: $highlight_med;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_icon_bat,
|
||||||
|
.sys_text_bat {
|
||||||
|
color: #afbea2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_icon_mem,
|
||||||
|
.sys_text_mem {
|
||||||
|
color: $rose;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_bat_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 15px 10px 10px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys_mem_box {
|
||||||
|
border-radius: 16px;
|
||||||
|
margin: 10px 10px 15px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_pop {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_cover_art {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
/* min-height: 100px; */
|
||||||
|
box-shadow: 5px 5px 5px 5px #06060b;
|
||||||
|
min-width: 170px;
|
||||||
|
margin: 20px;
|
||||||
|
border-radius: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music {
|
||||||
|
color: $foam;
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 20px 0px 0px -15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_artist {
|
||||||
|
color: $text;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_btn_prev {
|
||||||
|
color: $text;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_btn_play {
|
||||||
|
color: $foam;
|
||||||
|
font-size: 48px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_btn_next {
|
||||||
|
color: $text;
|
||||||
|
font-size: 32px;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$foam 30%,
|
||||||
|
#67a2b4 50%,
|
||||||
|
$pine 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.music_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
/* min-height: 13px; */
|
||||||
|
min-width: 190px;
|
||||||
|
margin: -10px 10px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-box {
|
||||||
|
background-color: #0f0f17;
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url("images/speaker.png");
|
||||||
|
background-position: center;
|
||||||
|
/* min-height: 70px; */
|
||||||
|
min-width: 75px;
|
||||||
|
margin: 10px 20px 5px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_text {
|
||||||
|
color: $foam;
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 20px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$foam 30%,
|
||||||
|
#67a2b4 50%,
|
||||||
|
$pine 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.speaker_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
background-color: #232232;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
border-radius: 24px;
|
||||||
|
/* min-height: 13px; */
|
||||||
|
min-width: 120px;
|
||||||
|
margin: 0px 0px 5px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_icon {
|
||||||
|
background-size: cover;
|
||||||
|
background-image: url("images/mic.png");
|
||||||
|
background-position: center;
|
||||||
|
/* min-height: 70px; */
|
||||||
|
min-width: 75px;
|
||||||
|
margin: 5px 20px 20px 20px;
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_text {
|
||||||
|
color: $foam;
|
||||||
|
font-size: 26px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 0px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_bar scale trough highlight {
|
||||||
|
all: unset;
|
||||||
|
background-image: linear-gradient(
|
||||||
|
to right,
|
||||||
|
$foam 30%,
|
||||||
|
#67a2b4 50%,
|
||||||
|
$pine 100% * 50
|
||||||
|
);
|
||||||
|
border-radius: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mic_bar scale trough {
|
||||||
|
all: unset;
|
||||||
|
box-shadow: 0 6px 5px 2px #06060b;
|
||||||
|
background-color: #232232;
|
||||||
|
border-radius: 24px;
|
||||||
|
/* min-height: 13px; */
|
||||||
|
min-width: 120px;
|
||||||
|
margin: 0px 0px 20px 0px;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,192 +1,233 @@
|
|||||||
(defwidget bar []
|
;; Variables
|
||||||
(centerbox :orientation "h"
|
(defpoll clock_hour :interval "5m" "date +%H")
|
||||||
(workspaces)
|
(defpoll clock_minute :interval "2s" "date +%M")
|
||||||
(window)
|
(defpoll clock_second :interval "1s" "date +%S")
|
||||||
(sidestuff)))
|
(defpoll clock_date :interval "10h" "date +%d.%m.%Y")
|
||||||
|
(defpoll clock_day :interval "10h" "date +%A")
|
||||||
(defwidget sidestuff []
|
(defpoll volume_percent :interval "3s" "amixer -D pulse sget Master | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
(box
|
(defpoll mic_percent :interval "3s" "amixer -D pulse sget Capture | grep 'Left:' | awk -F'[][]' '{ print $2 }' | tr -d '%'")
|
||||||
:class "sidestuff"
|
(defpoll brightness_percent :interval "5s" "brightnessctl -m -d intel_backlight | awk -F, '{print substr($4, 0, length($4)-1)}' | tr -d '%'")
|
||||||
:orientation "h"
|
(defpoll battery :interval "15s" "./scripts/battery --bat")
|
||||||
:space-evenly false
|
(defpoll battery_status :interval "1m" "./scripts/battery --bat-st")
|
||||||
:halign "end"
|
(defpoll memory :interval "15s" "scripts/memory")
|
||||||
:spacing 10
|
(defpoll memory_used_mb :interval "2m" "scripts/mem-ad used")
|
||||||
(music)
|
(defpoll memory_total_mb :interval "2m" "scripts/mem-ad total")
|
||||||
(metric
|
(defpoll memory_free_mb :interval "2m" "scripts/mem-ad free")
|
||||||
:label ""
|
(defvar vol_reveal false)
|
||||||
:value volume
|
(defvar br_reveal false)
|
||||||
:onchange "pulsemixer --set-volume {}" )
|
(defvar music_reveal false)
|
||||||
;; (metric_extended
|
(defvar wifi_rev false)
|
||||||
;; :label ""
|
(defvar time_rev false)
|
||||||
;; :value brightness
|
|
||||||
;; :onchange "doas brightnessctl set {}" )
|
|
||||||
(cpu)
|
|
||||||
(github)
|
|
||||||
;; (network)
|
|
||||||
(battery)
|
|
||||||
time
|
|
||||||
date
|
|
||||||
))
|
|
||||||
|
|
||||||
|
|
||||||
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
(deflisten workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
||||||
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get-active-workspace")
|
(deflisten current_workspace :initial "1" "bash ~/.config/eww/scripts/get-active-workspace")
|
||||||
|
(deflisten window :initial "..." "bash ~/.config/eww/scripts/get-window-title")
|
||||||
|
|
||||||
|
(defvar eww "eww")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll COL_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --COL")
|
||||||
|
(defpoll ESSID_WLAN :interval "1m" "~/.config/eww/bar/scripts/wifi --ESSID")
|
||||||
|
(defpoll WLAN_ICON :interval "1m" "~/.config/eww/bar/scripts/wifi --ICON")
|
||||||
|
|
||||||
|
|
||||||
|
(defpoll song :interval "2s" "~/.config/eww/bar/scripts/music_info --song")
|
||||||
|
(defpoll song_artist :interval "2s" "~/.config/eww/bar/scripts/music_info --artist")
|
||||||
|
(defpoll current_status :interval "1s" "~/.config/eww/bar/scripts/music_info --time")
|
||||||
|
(defpoll song_status :interval "2s" "~/.config/eww/bar/scripts/music_info --status")
|
||||||
|
(defpoll cover_art :interval "2s" "~/.config/eww/bar/scripts/music_info --cover")
|
||||||
|
|
||||||
|
(defpoll calendar_day :interval "20h" "date '+%d'")
|
||||||
|
(defpoll calendar_year :interval "20h" "date '+%Y'")
|
||||||
|
|
||||||
|
;; widgets
|
||||||
|
|
||||||
|
(defwidget wifi []
|
||||||
|
(eventbox :onhover "${eww} update wifi_rev=true"
|
||||||
|
:onhoverlost "${eww} update wifi_rev=false"
|
||||||
|
(box :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(button
|
||||||
|
:class "module-wif"
|
||||||
|
:onclick "networkmanager_dmenu"
|
||||||
|
:wrap "false"
|
||||||
|
:limit-width 12
|
||||||
|
:style "color: ${COL_WLAN};" WLAN_ICON)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal wifi_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(label
|
||||||
|
:class "module_essid"
|
||||||
|
:text ESSID_WLAN
|
||||||
|
:orientation "h"
|
||||||
|
)))))
|
||||||
|
|
||||||
|
|
||||||
(defwidget workspaces []
|
(defwidget workspaces []
|
||||||
(eventbox :onscroll "bash ~/.config/eww/scripts/change-active-workspace {} ${current_workspace}" :class "workspaces"
|
(eventbox :onscroll "bash ~/.config/eww/scripts/change-active-workspace {} ${current_workspace}" :class "workspaces"
|
||||||
(box :space-evenly true :halign "start" :spacing 5
|
(box :space-evenly true
|
||||||
(label :text "${workspaces}${current_workspace}" :visible false)
|
:halign "start"
|
||||||
(for workspace in workspaces
|
:space-evenly true
|
||||||
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
|
:spacing 5
|
||||||
(box :class "workspace-entry ${workspace.window > 0 ? "current" : ""}"
|
(label
|
||||||
(label :text "${workspace.id}" :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""}" )))))))
|
:text "${workspaces}${current_workspace}"
|
||||||
;; (box :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""}"
|
:visible false)
|
||||||
;; (label :text "${workspace.id}")))))))
|
(for workspace in workspaces
|
||||||
|
(eventbox :onclick "hyprctl dispatch workspace ${workspace.id}"
|
||||||
|
(box :class "workspace-entry ${workspace.windows > 0 ? "occupied" : "empty"}"
|
||||||
|
(label :text "${workspace.id}" :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""}" )
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
(deflisten window :initial "..." "bash ~/.config/eww/scripts/get-window-title")
|
(defwidget bat []
|
||||||
(defwidget window []
|
(box :class "bat_module" :vexpand "false" :hexpand "false"
|
||||||
(box :class "window"
|
(circular-progress :value battery
|
||||||
(label :text "${window}")))
|
:class "batbar"
|
||||||
|
:thickness 4
|
||||||
|
(button
|
||||||
|
:class "iconbat iconbat__${battery_status}"
|
||||||
|
:limit-width 2
|
||||||
|
:tooltip "battery on ${battery}%"
|
||||||
|
:show_truncated false
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||||
|
:wrap false
|
||||||
|
"${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
||||||
|
EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
||||||
|
""}"
|
||||||
|
))))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget mem []
|
||||||
|
(box :class "mem_module" :vexpand "false" :hexpand "false"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "membar"
|
||||||
|
:thickness 4
|
||||||
|
(button
|
||||||
|
:class "iconmem"
|
||||||
|
:limit-width 2
|
||||||
|
:tooltip "using ${memory}% ram"
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
""))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget sep []
|
||||||
|
(box :class "module-2" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "separ" :text "|")))
|
||||||
|
|
||||||
|
(defwidget clock_module []
|
||||||
|
(eventbox :onhover "${eww} update time_rev=true"
|
||||||
|
:onhoverlost "${eww} update time_rev=false"
|
||||||
|
(box :class "module" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text "${clock_hour}:${clock_minute}:${clock_second}" :class "clock_time")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal time_rev
|
||||||
|
:duration "350ms"
|
||||||
|
(button :class "clock_date"
|
||||||
|
:onclick "$HOME/.config/eww/bar/scripts/pop calendar" "${clock_date}, ${clock_day}"
|
||||||
|
)
|
||||||
|
))))
|
||||||
|
|
||||||
|
(defwidget volume []
|
||||||
|
(eventbox :onhover "${eww} update vol_reveal=true"
|
||||||
|
:onhoverlost "${eww} update vol_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(button :onclick "scripts/pop audio" :class "volume_icon" "🔈")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal vol_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "volbar"
|
||||||
|
:value volume_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "amixer -D pulse sset Master {}%" )))))
|
||||||
|
|
||||||
|
(defwidget bright []
|
||||||
|
(eventbox :onhover "${eww} update br_reveal=true" :onhoverlost "${eww} update br_reveal=false"
|
||||||
|
(box :class "module-2" :space-evenly "false" :orientation "h" :spacing "3"
|
||||||
|
(label :text "☼" :class "bright_icon" :tooltip "brightness")
|
||||||
|
(revealer :transition "slideleft"
|
||||||
|
:reveal br_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(scale :class "brightbar"
|
||||||
|
:value brightness_percent
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "${brightness_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0
|
||||||
|
:onchange "brightnessctl set {}%" )))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
(defwidget music []
|
(defwidget music []
|
||||||
(box :class "music ${music_status == "Playing" ? "playing" : "paused"}"
|
(eventbox :onhover "${eww} update music_reveal=true"
|
||||||
:orientation "h"
|
:onhoverlost "${eww} update music_reveal=false"
|
||||||
|
(box :class "module-2" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :class "song_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
|
||||||
|
(button :class "song" :wrap "true" :onclick "~/.config/eww/bar/scripts/pop music" song)
|
||||||
|
(revealer :transition "slideright"
|
||||||
|
:reveal music_reveal
|
||||||
|
:duration "350ms"
|
||||||
|
(box :vexpand "false" :hexpand "false" :oreintation "h"
|
||||||
|
(button :class "song_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
|
||||||
|
(button :class "song_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
|
||||||
|
(button :class "song_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget left []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
:class "left_modules"
|
||||||
|
(music)
|
||||||
|
(bright)
|
||||||
|
(volume)
|
||||||
|
(wifi)
|
||||||
|
(sep)
|
||||||
|
(bat)
|
||||||
|
(mem)
|
||||||
|
(sep)
|
||||||
|
(clock_module)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget right []
|
||||||
|
(box :orientation "h"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
:class "right_modules"
|
||||||
|
(workspaces)))
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget center []
|
||||||
|
(box :orientation "h"
|
||||||
:space-evenly false
|
:space-evenly false
|
||||||
:halign "center"
|
:halign "center"
|
||||||
(button :onclick "sp play" {music != "" ? "${music}" : ""})))
|
:class "center_modules"
|
||||||
|
(window)))
|
||||||
|
|
||||||
(defwidget icon-module [icon ?class ?visible]
|
(defwidget bar_1 []
|
||||||
(box :class "${class} icon-module"
|
(box :class "bar"
|
||||||
:orientation "h"
|
:orientation "h"
|
||||||
:halign "end"
|
(right)
|
||||||
:space-evenly false
|
(center)
|
||||||
:visible {visible ?: true} ; because the argument is optional
|
(left)
|
||||||
(label :class "icon-module__icon" :text "${icon}")
|
))
|
||||||
(children)))
|
|
||||||
|
|
||||||
(defwidget metric [label value onchange]
|
|
||||||
(box :orientation "h"
|
|
||||||
:class "metric"
|
|
||||||
:space-evenly false
|
|
||||||
(box :class "label" label)
|
|
||||||
(scale :min 0
|
|
||||||
:max 101
|
|
||||||
:active {onchange != ""}
|
|
||||||
:value value
|
|
||||||
:onchange onchange)))
|
|
||||||
|
|
||||||
(defpoll music
|
|
||||||
:interval "1s"
|
|
||||||
"scripts/get-music")
|
|
||||||
|
|
||||||
(defpoll music_status
|
|
||||||
:interval "1s"
|
|
||||||
"sp status")
|
|
||||||
|
|
||||||
(defpoll volume
|
|
||||||
:interval "1s"
|
|
||||||
"scripts/getvol")
|
|
||||||
|
|
||||||
(defwidget metric_extended [label value onchange]
|
|
||||||
(box
|
|
||||||
:orientation "h"
|
|
||||||
:class "metric"
|
|
||||||
:space-evenly false
|
|
||||||
(box
|
|
||||||
:class "label" label)
|
|
||||||
(scale
|
|
||||||
:min 0
|
|
||||||
:max 256
|
|
||||||
:active {onchange != ""}
|
|
||||||
:value value
|
|
||||||
:onchang
|
|
||||||
:onchange onchange)))
|
|
||||||
|
|
||||||
(defpoll brightness
|
|
||||||
:interval "1s"
|
|
||||||
:class "brightness"
|
|
||||||
"brightnessctl get")
|
|
||||||
|
|
||||||
;; "format-icons": ["", "", "", "", "", "", "", "", ""],
|
|
||||||
|
|
||||||
(defwidget battery []
|
|
||||||
(icon-module
|
|
||||||
:icon "${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
|
||||||
EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
|
||||||
EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
|
||||||
EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
|
||||||
EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
|
||||||
""}"
|
|
||||||
:class "battery ${EWW_BATTERY.BAT0.capacity > 30 ? "good" : EWW_BATTERY.BAT0.capacity > 10 ? "warning" : "critical"} ${EWW_BATTERY.BAT0.status}"
|
|
||||||
(label
|
|
||||||
:text "${EWW_BATTERY.BAT0.capacity}%")))
|
|
||||||
|
|
||||||
|
|
||||||
(defpoll time :interval "1s"
|
|
||||||
"date '+%H:%M:%S'")
|
|
||||||
|
|
||||||
(defpoll date :interval "10s"
|
|
||||||
"date '+%d.%m.%Y'")
|
|
||||||
|
|
||||||
|
|
||||||
(defpoll github_poll
|
|
||||||
:initial ""
|
|
||||||
:interval "1m" "sh ~/.config/eww/scripts/github")
|
|
||||||
(defwidget github []
|
|
||||||
(button
|
|
||||||
:onclick "xdg-open https://github.com/notifications"
|
|
||||||
(box
|
|
||||||
(icon-module
|
|
||||||
:class "github"
|
|
||||||
:icon ""
|
|
||||||
:visible {github_poll != ""})
|
|
||||||
github_poll)))
|
|
||||||
|
|
||||||
|
|
||||||
(defwidget cpu []
|
|
||||||
(icon-module
|
|
||||||
:icon ""
|
|
||||||
:class "cpu ${EWW_CPU.avg > 90 ? "danger" : EWW_CPU.avg > 60 ? "warning" : ""}"
|
|
||||||
(label
|
|
||||||
:text "${round(EWW_CPU.avg, 0)}%")))
|
|
||||||
|
|
||||||
;; (defpoll net_poll
|
|
||||||
;; :initial "..."
|
|
||||||
;; :interval "10s" "sh ~/.config/eww/scripts/get-network")
|
|
||||||
(defwidget network []
|
|
||||||
(icon-module
|
|
||||||
:icon ""
|
|
||||||
:class "network ${EWW_NET.wlan0.NET_DOWN == 0 && EWW_NET.wlan0.NET_UP == 0 ? "disconnected" : ""}"
|
|
||||||
(label
|
|
||||||
:text "${EWW_NET.wlan0.NET_DOWN == 0 && EWW_NET.wlan0.NET_UP == 0 ? "Disconnected ⚠" : ""}")))
|
|
||||||
|
|
||||||
;; "network": {
|
|
||||||
;; "format-wifi": "{essid} ({signalStrength}%) ",
|
|
||||||
;; "format-ethernet": "{ipaddr}/{cidr} ",
|
|
||||||
;; "tooltip-format": "{ifname} via {gwaddr} ",
|
|
||||||
;; "format-linked": "{ifname} (No IP) ",
|
|
||||||
;; "format-disconnected": "",
|
|
||||||
;; "format-alt": "{ifname}: {ipaddr}/{cidr}"
|
|
||||||
;; },
|
|
||||||
|
|
||||||
|
|
||||||
(defwindow bar
|
(defwindow bar
|
||||||
:monitor 0
|
:monitor 0
|
||||||
:exclusive true
|
:exclusive true
|
||||||
:geometry (geometry
|
|
||||||
:x "0%"
|
|
||||||
:y "0%"
|
|
||||||
:width "133.333%"
|
|
||||||
:height "10px"
|
|
||||||
:anchor "top center")
|
|
||||||
:reserve (struts :side "top" :distance "4%")
|
|
||||||
(bar))
|
|
||||||
|
|
||||||
|
|
||||||
(defwindow bar-1
|
|
||||||
:monitor 1
|
|
||||||
:exclusive true
|
|
||||||
:geometry (geometry
|
:geometry (geometry
|
||||||
:x "0%"
|
:x "0%"
|
||||||
:y "0%"
|
:y "0%"
|
||||||
@ -194,4 +235,164 @@
|
|||||||
:height "10px"
|
:height "10px"
|
||||||
:anchor "top center")
|
:anchor "top center")
|
||||||
:reserve (struts :side "top" :distance "4%")
|
:reserve (struts :side "top" :distance "4%")
|
||||||
(bar))
|
:stacking "fg"
|
||||||
|
:windowtype "dock"
|
||||||
|
(bar_1))
|
||||||
|
|
||||||
|
(defwidget system []
|
||||||
|
(box :class "sys_win" :orientation "v" :space-evenly "false" :hexpand "false" :vexpand "false" :spacing 0
|
||||||
|
(box :class "sys_bat_box" :orientation "h" :space-evenly "false"
|
||||||
|
(circular-progress :value battery
|
||||||
|
:class "sys_bat"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_bat"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "battery"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery}%"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${battery_status}"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_bat_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))
|
||||||
|
(label :text "" :class "sys_sep" :halign "center")
|
||||||
|
(box :class "sys_mem_box" :orientation "h" :space-evenly "false" :halign "start"
|
||||||
|
(circular-progress :value memory
|
||||||
|
:class "sys_mem"
|
||||||
|
:thickness 9
|
||||||
|
(label :text ""
|
||||||
|
:class "sys_icon_mem"
|
||||||
|
:limit-width 2
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false
|
||||||
|
:angle 0.0))
|
||||||
|
(box :orientation "v" :space-evenly "false" :spacing 0 :hexpand "false" :vexpand "false"
|
||||||
|
(label :text "memory"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem"
|
||||||
|
:limit-width 9
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_used_mb} | ${memory_total_mb}mb "
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)
|
||||||
|
(label :text "${memory_free_mb}mb free"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys_text_mem_sub"
|
||||||
|
:limit-width 22
|
||||||
|
:show_truncated false
|
||||||
|
:wrap false)))))
|
||||||
|
|
||||||
|
(defwidget cal []
|
||||||
|
(box :class "cal" :orientation "v"
|
||||||
|
(box :class "cal-in"
|
||||||
|
(calendar :class "cal"
|
||||||
|
:day calendar_day
|
||||||
|
:year calendar_year))))
|
||||||
|
|
||||||
|
(defwindow calendar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "270px"
|
||||||
|
:height "60px")
|
||||||
|
(cal))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
(defwidget audio []
|
||||||
|
(box :class "audio-box" :orientation "v" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "speaker_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "speaker_text" :text "speaker" :valign "center" :halign "left" )
|
||||||
|
(box :class "speaker_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value volume_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:onchange "amixer -D pulse sset Master {}%"
|
||||||
|
:tooltip "volume on ${volume_percent}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))
|
||||||
|
(label :text "" :class "audio_sep" :halign "center")
|
||||||
|
(box :halign "v" :space-evenly "false" :hexpand "false" :vexpand "false"
|
||||||
|
(box :class "mic_icon" :orientation "v")
|
||||||
|
(box :orientation "v" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(label :class "mic_text" :text "mic" :valign "center" :halign "left" )
|
||||||
|
(box :class "mic_bar" :halign "center" :vexpand "false" :hexpand "false"
|
||||||
|
(scale :value mic_percent
|
||||||
|
:space-evenly "false"
|
||||||
|
:orientation "h"
|
||||||
|
:tooltip "mic on ${mic_percent}%"
|
||||||
|
:onchange "amixer -D pulse sset Capture {}%"
|
||||||
|
:max 100
|
||||||
|
:min 0))))))
|
||||||
|
|
||||||
|
(defwindow audio_ctl
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "-20px"
|
||||||
|
:y "7%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "280px"
|
||||||
|
:height "60px")
|
||||||
|
(audio))
|
||||||
|
|
||||||
|
|
||||||
|
(defwindow system
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry
|
||||||
|
:x "-20px"
|
||||||
|
:y "5%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "290px"
|
||||||
|
:height "120px")
|
||||||
|
(system))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;; Music
|
||||||
|
(defwidget music_pop []
|
||||||
|
(box :class "music_pop" :orientation "h" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(box :class "music_cover_art" :vexpand "false" :hexpand "false" :style "background-image: url('${cover_art}');")
|
||||||
|
(box :orientation "v" :spacing 20 :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(label :halign "center" :class "music" :wrap "true" :limit-width 13 :text song)
|
||||||
|
(label :halign "center" :class "music_artist" :wrap "true" :limit-width 15 :text song_artist)
|
||||||
|
(box :orientation "h" :spacing 15 :halign "center" :space-evenly "false" :vexpand "false" :hexpand "false"
|
||||||
|
(button :class "music_btn_prev" :onclick "~/.config/eww/bar/scripts/music_info --prev" "")
|
||||||
|
(button :class "music_btn_play" :onclick "~/.config/eww/bar/scripts/music_info --toggle" song_status)
|
||||||
|
(button :class "music_btn_next" :onclick "~/.config/eww/bar/scripts/music_info --next" ""))
|
||||||
|
(box :class "music_bar" :halign "center" :vexpand "false" :hexpand "false" :space-evenly "false"
|
||||||
|
(scale :onscroll "mpc -q seek {}" :min 0 :active "true" :max 100 :value current_status)))))
|
||||||
|
|
||||||
|
|
||||||
|
;; music
|
||||||
|
(defwindow music_win
|
||||||
|
;; :monitor 0
|
||||||
|
:stacking "fg"
|
||||||
|
:focusable "false"
|
||||||
|
:screen 1
|
||||||
|
:geometry (geometry :x "0" :y "7%" :width 428 :height 104 :anchor "top center")
|
||||||
|
(music_pop))
|
||||||
|
|
||||||
|
(defwidget window []
|
||||||
|
(box :class "window"
|
||||||
|
(label :text "${window}")))
|
||||||
|
|
||||||
|
|||||||
BIN
config/eww/images/mic.png
Normal file
BIN
config/eww/images/mic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
BIN
config/eww/images/music.png
Normal file
BIN
config/eww/images/music.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
config/eww/images/profile.png
Normal file
BIN
config/eww/images/profile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
BIN
config/eww/images/speaker.png
Normal file
BIN
config/eww/images/speaker.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
17
config/eww/scripts/battery
Executable file
17
config/eww/scripts/battery
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
battery() {
|
||||||
|
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||||
|
cat /sys/class/power_supply/${BAT}/capacity
|
||||||
|
}
|
||||||
|
battery_stat() {
|
||||||
|
BAT=`ls /sys/class/power_supply | grep BAT | head -n 1`
|
||||||
|
cat /sys/class/power_supply/${BAT}/status
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ "$1" == "--bat" ]]; then
|
||||||
|
battery
|
||||||
|
elif [[ "$1" == "--bat-st" ]]; then
|
||||||
|
battery_stat
|
||||||
|
fi
|
||||||
|
|
||||||
0
config/eww/scripts/change-active-workspace
Normal file → Executable file
0
config/eww/scripts/change-active-workspace
Normal file → Executable file
0
config/eww/scripts/get-active-workspace
Normal file → Executable file
0
config/eww/scripts/get-active-workspace
Normal file → Executable file
0
config/eww/scripts/get-window-title
Normal file → Executable file
0
config/eww/scripts/get-window-title
Normal file → Executable file
0
config/eww/scripts/get-workspaces
Normal file → Executable file
0
config/eww/scripts/get-workspaces
Normal file → Executable file
15
config/eww/scripts/mem-ad
Executable file
15
config/eww/scripts/mem-ad
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
total="$(free -m | grep Mem: | awk '{ print $2 }')"
|
||||||
|
used="$(free -m | grep Mem: | awk '{ print $3 }')"
|
||||||
|
|
||||||
|
free=$(expr $total - $used)
|
||||||
|
|
||||||
|
if [ "$1" = "total" ]; then
|
||||||
|
echo $total
|
||||||
|
elif [ "$1" = "used" ]; then
|
||||||
|
echo $used
|
||||||
|
elif [ "$1" = "free" ]; then
|
||||||
|
echo $free
|
||||||
|
fi
|
||||||
3
config/eww/scripts/memory
Executable file
3
config/eww/scripts/memory
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
printf "%.0f\n" $(free -m | grep Mem | awk '{print ($3/$2)*100}')
|
||||||
98
config/eww/scripts/music_info
Executable file
98
config/eww/scripts/music_info
Executable file
@ -0,0 +1,98 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# scripts by adi1090x
|
||||||
|
|
||||||
|
## Get data
|
||||||
|
STATUS="$(mpc status)"
|
||||||
|
COVER="/tmp/.music_cover.png"
|
||||||
|
MUSIC_DIR="$HOME/Music"
|
||||||
|
|
||||||
|
## Get status
|
||||||
|
get_status() {
|
||||||
|
if [[ $STATUS == *"[playing]"* ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "奈"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get song
|
||||||
|
get_song() {
|
||||||
|
song=`sp metadata | rg title | cut -d'|' -f2`
|
||||||
|
if [[ -z "$song" ]]; then
|
||||||
|
echo "Offline"
|
||||||
|
else
|
||||||
|
echo "$song"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get artist
|
||||||
|
get_artist() {
|
||||||
|
artist=`mpc -f %artist% current`
|
||||||
|
if [[ -z "$artist" ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "$artist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get time
|
||||||
|
get_time() {
|
||||||
|
time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
|
||||||
|
if [[ -z "$time" ]]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
echo "$time"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ctime() {
|
||||||
|
ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
|
||||||
|
if [[ -z "$ctime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ctime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ttime() {
|
||||||
|
ttime=`mpc -f %time% current`
|
||||||
|
if [[ -z "$ttime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ttime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get cover
|
||||||
|
get_cover() {
|
||||||
|
ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
|
||||||
|
# Check if the file has a embbeded album art
|
||||||
|
if [ "$STATUS" -eq 0 ];then
|
||||||
|
echo "$COVER"
|
||||||
|
else
|
||||||
|
echo "images/music.png"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Execute accordingly
|
||||||
|
if [[ "$1" == "--song" ]]; then
|
||||||
|
get_song
|
||||||
|
elif [[ "$1" == "--artist" ]]; then
|
||||||
|
get_artist
|
||||||
|
elif [[ "$1" == "--status" ]]; then
|
||||||
|
get_status
|
||||||
|
elif [[ "$1" == "--time" ]]; then
|
||||||
|
get_time
|
||||||
|
elif [[ "$1" == "--ctime" ]]; then
|
||||||
|
get_ctime
|
||||||
|
elif [[ "$1" == "--ttime" ]]; then
|
||||||
|
get_ttime
|
||||||
|
elif [[ "$1" == "--cover" ]]; then
|
||||||
|
get_cover
|
||||||
|
elif [[ "$1" == "--toggle" ]]; then
|
||||||
|
mpc -q toggle
|
||||||
|
elif [[ "$1" == "--next" ]]; then
|
||||||
|
{ mpc -q next; get_cover; }
|
||||||
|
elif [[ "$1" == "--prev" ]]; then
|
||||||
|
{ mpc -q prev; get_cover; }
|
||||||
|
fi
|
||||||
98
config/eww/scripts/music_info.bak
Executable file
98
config/eww/scripts/music_info.bak
Executable file
@ -0,0 +1,98 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# scripts by adi1090x
|
||||||
|
|
||||||
|
## Get data
|
||||||
|
STATUS="$(mpc status)"
|
||||||
|
COVER="/tmp/.music_cover.png"
|
||||||
|
MUSIC_DIR="$HOME/Music"
|
||||||
|
|
||||||
|
## Get status
|
||||||
|
get_status() {
|
||||||
|
if [[ $STATUS == *"[playing]"* ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "奈"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get song
|
||||||
|
get_song() {
|
||||||
|
song=`mpc -f %title% current`
|
||||||
|
if [[ -z "$song" ]]; then
|
||||||
|
echo "Offline"
|
||||||
|
else
|
||||||
|
echo "$song"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get artist
|
||||||
|
get_artist() {
|
||||||
|
artist=`mpc -f %artist% current`
|
||||||
|
if [[ -z "$artist" ]]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo "$artist"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get time
|
||||||
|
get_time() {
|
||||||
|
time=`mpc status | grep "%)" | awk '{print $4}' | tr -d '(%)'`
|
||||||
|
if [[ -z "$time" ]]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
echo "$time"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ctime() {
|
||||||
|
ctime=`mpc status | grep "#" | awk '{print $3}' | sed 's|/.*||g'`
|
||||||
|
if [[ -z "$ctime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ctime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
get_ttime() {
|
||||||
|
ttime=`mpc -f %time% current`
|
||||||
|
if [[ -z "$ttime" ]]; then
|
||||||
|
echo "0:00"
|
||||||
|
else
|
||||||
|
echo "$ttime"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Get cover
|
||||||
|
get_cover() {
|
||||||
|
ffmpeg -i "${MUSIC_DIR}/$(mpc current -f %file%)" "${COVER}" -y &> /dev/null
|
||||||
|
STATUS=$?
|
||||||
|
|
||||||
|
# Check if the file has a embbeded album art
|
||||||
|
if [ "$STATUS" -eq 0 ];then
|
||||||
|
echo "$COVER"
|
||||||
|
else
|
||||||
|
echo "images/music.png"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Execute accordingly
|
||||||
|
if [[ "$1" == "--song" ]]; then
|
||||||
|
get_song
|
||||||
|
elif [[ "$1" == "--artist" ]]; then
|
||||||
|
get_artist
|
||||||
|
elif [[ "$1" == "--status" ]]; then
|
||||||
|
get_status
|
||||||
|
elif [[ "$1" == "--time" ]]; then
|
||||||
|
get_time
|
||||||
|
elif [[ "$1" == "--ctime" ]]; then
|
||||||
|
get_ctime
|
||||||
|
elif [[ "$1" == "--ttime" ]]; then
|
||||||
|
get_ttime
|
||||||
|
elif [[ "$1" == "--cover" ]]; then
|
||||||
|
get_cover
|
||||||
|
elif [[ "$1" == "--toggle" ]]; then
|
||||||
|
mpc -q toggle
|
||||||
|
elif [[ "$1" == "--next" ]]; then
|
||||||
|
{ mpc -q next; get_cover; }
|
||||||
|
elif [[ "$1" == "--prev" ]]; then
|
||||||
|
{ mpc -q prev; get_cover; }
|
||||||
|
fi
|
||||||
88
config/eww/scripts/pop
Executable file
88
config/eww/scripts/pop
Executable file
@ -0,0 +1,88 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
calendar() {
|
||||||
|
LOCK_FILE="$HOME/.cache/eww-calendar.lock"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
eww open calendar
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE" ]]; then
|
||||||
|
eww close system music_win audio_ctl
|
||||||
|
touch "$LOCK_FILE"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
eww close calendar
|
||||||
|
rm "$LOCK_FILE" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
system() {
|
||||||
|
LOCK_FILE_MEM="$HOME/.cache/eww-system.lock"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
eww open system
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_MEM" ]]; then
|
||||||
|
eww close calendar music_win audio_ctl
|
||||||
|
touch "$LOCK_FILE_MEM"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
eww close system
|
||||||
|
rm "$LOCK_FILE_MEM" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
music() {
|
||||||
|
LOCK_FILE_SONG="$HOME/.cache/eww-song.lock"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
eww open music_win
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_SONG" ]]; then
|
||||||
|
eww close system calendar
|
||||||
|
touch "$LOCK_FILE_SONG"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
eww close music_win
|
||||||
|
rm "$LOCK_FILE_SONG" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
audio() {
|
||||||
|
LOCK_FILE_AUDIO="$HOME/.cache/eww-audio.lock"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
eww open audio_ctl
|
||||||
|
}
|
||||||
|
|
||||||
|
# Open widgets
|
||||||
|
if [[ ! -f "$LOCK_FILE_AUDIO" ]]; then
|
||||||
|
eww close system calendar music
|
||||||
|
touch "$LOCK_FILE_AUDIO"
|
||||||
|
run && echo "ok good!"
|
||||||
|
else
|
||||||
|
eww close audio_ctl
|
||||||
|
rm "$LOCK_FILE_AUDIO" && echo "closed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$1" = "calendar" ]; then
|
||||||
|
calendar
|
||||||
|
elif [ "$1" = "system" ]; then
|
||||||
|
system
|
||||||
|
elif [ "$1" = "music" ]; then
|
||||||
|
music
|
||||||
|
elif [ "$1" = "audio" ]; then
|
||||||
|
audio
|
||||||
|
fi
|
||||||
23
config/eww/scripts/wifi
Executable file
23
config/eww/scripts/wifi
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
status=$(nmcli g | \grep -oE "disconnected")
|
||||||
|
essid=$(nmcli c | \grep wlan0 | awk '{print ($1)}')
|
||||||
|
|
||||||
|
if [ $status ] ; then
|
||||||
|
icon=""
|
||||||
|
text=""
|
||||||
|
col="#575268"
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
text="${essid}"
|
||||||
|
col="#a1bdce"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$1" == "--COL" ]]; then
|
||||||
|
echo $col
|
||||||
|
elif [[ "$1" == "--ESSID" ]]; then
|
||||||
|
echo $text
|
||||||
|
elif [[ "$1" == "--ICON" ]]; then
|
||||||
|
echo $icon
|
||||||
|
fi
|
||||||
|
|
||||||
11
config/eww/scripts/workspace
Executable file
11
config/eww/scripts/workspace
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
workspaces (){
|
||||||
|
WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq 'map({key: .id | tostring, value: .windows}) | from_entries')
|
||||||
|
seq 1 10 | jq --argjson windows "${WORKSPACE_WINDOWS}" --slurp -Mc 'map(tostring) | map({id: ., windows: ($windows[.]//0)})'
|
||||||
|
}
|
||||||
|
|
||||||
|
workspaces
|
||||||
|
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do
|
||||||
|
workspaces
|
||||||
|
done
|
||||||
@ -1,6 +1,6 @@
|
|||||||
[General]
|
[General]
|
||||||
contrastOpacity=188
|
contrastOpacity=188
|
||||||
drawColor=#ffffff
|
drawColor=#ff0000
|
||||||
drawThickness=3
|
drawThickness=3
|
||||||
filenamePattern=%Y-%m-%d_%H-%M-%S
|
filenamePattern=%Y-%m-%d_%H-%M-%S
|
||||||
saveAfterCopy=true
|
saveAfterCopy=true
|
||||||
|
|||||||
@ -15,11 +15,8 @@
|
|||||||
################
|
################
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
# monitor=,preferred,auto,auto
|
monitor=eDP-1,prefered,auto,1.5
|
||||||
monitor=,prefered,auto,1.5
|
monitor=DP-1,prefered,auto,1
|
||||||
monitor=DP-1,disable
|
|
||||||
#monitor=HDMI-A-1,highres,auto-up,1,mirror,eDP-1
|
|
||||||
|
|
||||||
|
|
||||||
###################
|
###################
|
||||||
### MY PROGRAMS ###
|
### MY PROGRAMS ###
|
||||||
@ -31,6 +28,7 @@ monitor=DP-1,disable
|
|||||||
$terminal = alacritty
|
$terminal = alacritty
|
||||||
$fileManager = $terminal -e yazi
|
$fileManager = $terminal -e yazi
|
||||||
$menu = wofi --show drun -ib
|
$menu = wofi --show drun -ib
|
||||||
|
$browser = zen-browser
|
||||||
|
|
||||||
|
|
||||||
#################
|
#################
|
||||||
@ -41,10 +39,10 @@ $menu = wofi --show drun -ib
|
|||||||
# Or execute your favorite apps at launch like this:
|
# Or execute your favorite apps at launch like this:
|
||||||
|
|
||||||
exec-once=pipewire & pipewire-pulse & wireplumber & eww daemon & eww open bar & dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY
|
exec-once=pipewire & pipewire-pulse & wireplumber & eww daemon & eww open bar & dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY
|
||||||
exec-once=nextcloud & /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & xrdb "$XDG_CONFIG_HOME/x11/xresources" & syncthing & transmission-daemon & dunst & hyprpaper
|
exec-once=nextcloud & /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & xrdb "$XDG_CONFIG_HOME/x11/xresources" & transmission-daemon & dunst & hyprpaper
|
||||||
exec-once=[workspace 1 silent] floorp
|
exec-once=[workspace 1 silent] $browser
|
||||||
exec-once=[workspace 8 silent] discord & kotatogram-desktop
|
exec-once=[workspace 8 silent] vesktop & kotatogram-desktop
|
||||||
exec-once=[workspace 9 silent] spotify
|
exec-once=[workspace 9 silent] spotify-launcher
|
||||||
|
|
||||||
# Source a file (multi-file configs)
|
# Source a file (multi-file configs)
|
||||||
source=~/.config/hypr/rose-pine.conf
|
source=~/.config/hypr/rose-pine.conf
|
||||||
@ -68,7 +66,7 @@ env = HYPRCURSOR_SIZE,24
|
|||||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||||
general {
|
general {
|
||||||
gaps_in = 5
|
gaps_in = 5
|
||||||
gaps_out = 20
|
gaps_out = 10
|
||||||
|
|
||||||
border_size = 2
|
border_size = 2
|
||||||
|
|
||||||
@ -88,6 +86,7 @@ general {
|
|||||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||||
decoration {
|
decoration {
|
||||||
rounding = 5
|
rounding = 5
|
||||||
|
# rounding_power = 2
|
||||||
|
|
||||||
# Change transparency of focused and unfocused windows
|
# Change transparency of focused and unfocused windows
|
||||||
active_opacity = 1.0
|
active_opacity = 1.0
|
||||||
@ -222,6 +221,7 @@ bind = $mainMod, P, exec, $menu
|
|||||||
bind = $mainMod, F, fullscreen
|
bind = $mainMod, F, fullscreen
|
||||||
bind = $mainMod, M, bringactivetotop
|
bind = $mainMod, M, bringactivetotop
|
||||||
bind = $mainMod, A, pin
|
bind = $mainMod, A, pin
|
||||||
|
bind = $mainMod, B, exec, $browser
|
||||||
#bind = $mainMod, O, split-changemonitor, +1
|
#bind = $mainMod, O, split-changemonitor, +1
|
||||||
# bind = $mainMod, P, pseudo, # dwindle
|
# bind = $mainMod, P, pseudo, # dwindle
|
||||||
# bind = $mainMod, J, togglesplit, # dwindle
|
# bind = $mainMod, J, togglesplit, # dwindle
|
||||||
@ -329,6 +329,11 @@ bind = $mainMod ALT, P, exec, hyprpicker -a # colorpicker
|
|||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||||
|
|
||||||
# Ignore maximize requests from apps. You'll probably like this.
|
# Ignore maximize requests from apps. You'll probably like this.
|
||||||
|
# windowrulev2 = suppressevent maximize, class:.*
|
||||||
|
|
||||||
|
# Fix some dragging issues with XWayland
|
||||||
|
# windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||||
|
|
||||||
windowrulev2 = suppressevent maximize, class:.*
|
windowrulev2 = suppressevent maximize, class:.*
|
||||||
|
|
||||||
# Fix some dragging issues with XWayland
|
# Fix some dragging issues with XWayland
|
||||||
@ -340,11 +345,13 @@ windowrulev2 = opacity 0.95, class:thunderbird
|
|||||||
|
|
||||||
windowrulev2 = workspace 8, class:discord
|
windowrulev2 = workspace 8, class:discord
|
||||||
windowrulev2 = opacity 0.95, class:discord
|
windowrulev2 = opacity 0.95, class:discord
|
||||||
|
windowrulev2 = workspace 8, class:vesktop
|
||||||
|
windowrulev2 = opacity 0.95, class:vesktop
|
||||||
windowrulev2 = workspace 8, class:Ripcord
|
windowrulev2 = workspace 8, class:Ripcord
|
||||||
windowrulev2 = workspace 8, class:TelegramDesktop
|
windowrulev2 = workspace 8, class:TelegramDesktop
|
||||||
windowrulev2 = opacity 0.95, class:TelegramDesktop
|
windowrulev2 = opacity 0.95, class:TelegramDesktop
|
||||||
windowrulev2 = workspace 8, class:kotatogramdesktop
|
windowrulev2 = workspace 8, title:Kotatogram
|
||||||
windowrulev2 = opacity 0.95, class:kotatogramdesktop
|
windowrulev2 = opacity 0.95, title:Kotatogram
|
||||||
windowrulev2 = opacity 0.9, class:teams-for-linux
|
windowrulev2 = opacity 0.9, class:teams-for-linux
|
||||||
windowrulev2 = workspace 5, class:Ferdium
|
windowrulev2 = workspace 5, class:Ferdium
|
||||||
windowrulev2 = opacity 0.9, class:Ferdium
|
windowrulev2 = opacity 0.9, class:Ferdium
|
||||||
@ -367,3 +374,4 @@ windowrulev2 = float, class:galculator
|
|||||||
windowrulev2=float,title:^(flameshot)
|
windowrulev2=float,title:^(flameshot)
|
||||||
windowrulev2=move 0 0,title:^(flameshot)
|
windowrulev2=move 0 0,title:^(flameshot)
|
||||||
windowrulev2=suppressevent fullscreen,title:^(flameshot)
|
windowrulev2=suppressevent fullscreen,title:^(flameshot)
|
||||||
|
|
||||||
|
|||||||
@ -1,265 +0,0 @@
|
|||||||
# This is an example Hyprland config file.
|
|
||||||
#
|
|
||||||
# Refer to the wiki for more information.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Please note not all available settings / options are set here.
|
|
||||||
# For a full list, see the wiki
|
|
||||||
#
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor=eDP-1,2880x1800@120,auto,1.5
|
|
||||||
#monitor=,preferred,auto-up,1
|
|
||||||
monitor=DP-1,disable
|
|
||||||
#monitor=HDMI-A-1,highres,auto-up,1,mirror,eDP-1
|
|
||||||
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
|
|
||||||
env = HYPRLAND_INSTANCE_SIGNATURE,/tmp/hypr
|
|
||||||
|
|
||||||
# Execute your favorite apps at launch
|
|
||||||
# exec-once = waybar & hyprpaper & firefox
|
|
||||||
exec-once = pipewire & pipewire-pulse & wireplumber & eww daemon & eww open bar & nextcloud & /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & xrdb "$XDG_CONFIG_HOME/x11/xresources" & spotifyd --no-daemon & syncthing & transmission-daemon & dunst & dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY & hyprpaper
|
|
||||||
exec-once=[workspace 1 silent] floorp
|
|
||||||
exec-once=[workspace 8 silent] discord & kotatogram-desktop
|
|
||||||
exec-once=[workspace 9 silent] spotify
|
|
||||||
|
|
||||||
# Source a file (multi-file configs)
|
|
||||||
# source = ~/.config/hypr/myColors.conf
|
|
||||||
source=~/.config/hypr/rose-pine.conf
|
|
||||||
|
|
||||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
input {
|
|
||||||
kb_layout = lv
|
|
||||||
kb_variant =
|
|
||||||
kb_model =
|
|
||||||
kb_options = caps:escape
|
|
||||||
kb_rules =
|
|
||||||
numlock_by_default = true
|
|
||||||
repeat_rate = 50
|
|
||||||
repeat_delay = 300
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = yes
|
|
||||||
disable_while_typing = false
|
|
||||||
}
|
|
||||||
|
|
||||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
||||||
}
|
|
||||||
|
|
||||||
debug {
|
|
||||||
disable_logs = false
|
|
||||||
enable_stdout_logs = true
|
|
||||||
}
|
|
||||||
|
|
||||||
general {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 10
|
|
||||||
border_size = 2
|
|
||||||
col.active_border = $rose
|
|
||||||
col.inactive_border = $muted
|
|
||||||
|
|
||||||
layout = master
|
|
||||||
}
|
|
||||||
|
|
||||||
plugin {
|
|
||||||
split-monitor-workspaces {
|
|
||||||
count = 10
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
rounding = 5
|
|
||||||
# blur = yes
|
|
||||||
# blur_size = 4
|
|
||||||
# blur_passes = 1
|
|
||||||
# blur_new_optimizations = on
|
|
||||||
# drop_shadow = yes
|
|
||||||
# shadow_range = 4
|
|
||||||
# shadow_render_power = 3
|
|
||||||
# col.shadow = $highlightMed
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = no
|
|
||||||
|
|
||||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for moreqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ctqt6ct
|
|
||||||
|
|
||||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
|
||||||
|
|
||||||
animation = windows, 1, 7, myBezier
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = fade, 1, 7, default
|
|
||||||
animation = workspaces, 1, 6, default
|
|
||||||
}
|
|
||||||
|
|
||||||
dwindle {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = yes # you probably want this
|
|
||||||
}
|
|
||||||
|
|
||||||
master {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
new_status = master
|
|
||||||
}
|
|
||||||
|
|
||||||
gestures {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
workspace_swipe = on
|
|
||||||
}
|
|
||||||
|
|
||||||
# Example per-device config
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
|
|
||||||
#device:epic mouse V1 {
|
|
||||||
#sensitivity = -0.5
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Example windowrule v1
|
|
||||||
windowrulev2 = fullscreen, class:mpv
|
|
||||||
|
|
||||||
windowrulev2 = opacity 0.95, class:thunderbird
|
|
||||||
|
|
||||||
windowrulev2 = workspace 8, class:discord
|
|
||||||
windowrulev2 = opacity 0.95, class:discord
|
|
||||||
windowrulev2 = workspace 8, class:Ripcord
|
|
||||||
windowrulev2 = workspace 8, class:TelegramDesktop
|
|
||||||
windowrulev2 = opacity 0.95, class:TelegramDesktop
|
|
||||||
windowrulev2 = workspace 8, class:kotatogramdesktop
|
|
||||||
windowrulev2 = opacity 0.95, class:kotatogramdesktop
|
|
||||||
windowrulev2 = opacity 0.9, class:teams-for-linux
|
|
||||||
windowrulev2 = workspace 5, class:Ferdium
|
|
||||||
windowrulev2 = opacity 0.9, class:Ferdium
|
|
||||||
|
|
||||||
windowrulev2 = workspace 9, class:Spotify
|
|
||||||
windowrulev2 = opacity 0.9, class:Spotify
|
|
||||||
windowrulev2 = tile, class:Spotify
|
|
||||||
|
|
||||||
windowrulev2 = opacity 0.95, class:qbittorrent
|
|
||||||
windowrulev2 = opacity 0.95, class:lutris
|
|
||||||
windowrulev2 = opacity 0.95, class:pacfinder
|
|
||||||
windowrulev2 = opacity 0.9, class:Bitwarden
|
|
||||||
windowrulev2 = opacity 0.9, class:kdeconnect
|
|
||||||
# windowrulev2 = workspace 8, class:^()$
|
|
||||||
|
|
||||||
# Example windowrule v2
|
|
||||||
windowrulev2 = move 100%-250 100%-250, class:galculator
|
|
||||||
windowrulev2 = size 250 250, class:galculator
|
|
||||||
windowrulev2 = float, class:galculator
|
|
||||||
|
|
||||||
windowrulev2=float,title:^(flameshot)
|
|
||||||
windowrulev2=move 0 0,title:^(flameshot)
|
|
||||||
windowrulev2=suppressevent fullscreen,title:^(flameshot)
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
$mainMod = SUPER
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = $mainMod, B ,exec, floorp
|
|
||||||
bind = $mainMod, Return, exec, alacritty
|
|
||||||
bind = $mainMod SHIFT, Q, killactive
|
|
||||||
# bind = $mainMod SHIFT CTRL, Q, exit
|
|
||||||
bind = $mainMod, N, exec, alacritty -e lfrun
|
|
||||||
bind = $mainMod CTRL, SPACE, togglefloating
|
|
||||||
bind = $mainMod, P, exec, wofi --show drun -ib
|
|
||||||
bind = $mainMod, F, fullscreen
|
|
||||||
bind = $mainMod, M, bringactivetotop
|
|
||||||
bind = $mainMod, A, pin
|
|
||||||
#bind = $mainMod, O, split-changemonitor, +1
|
|
||||||
|
|
||||||
# Resize window
|
|
||||||
bind = $mainMod, L, splitratio, 0.05
|
|
||||||
bind = $mainMod, H, splitratio, -0.05
|
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
bind = $mainMod, K, cyclenext
|
|
||||||
bind = $mainMod, J, cyclenext, prev
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = $mainMod, 1, workspace, 1
|
|
||||||
bind = $mainMod, 2, workspace, 2
|
|
||||||
bind = $mainMod, 3, workspace, 3
|
|
||||||
bind = $mainMod, 4, workspace, 4
|
|
||||||
bind = $mainMod, 5, workspace, 5
|
|
||||||
bind = $mainMod, 6, workspace, 6
|
|
||||||
bind = $mainMod, 7, workspace, 7
|
|
||||||
bind = $mainMod, 8, workspace, 8
|
|
||||||
bind = $mainMod, 9, workspace, 9
|
|
||||||
bind = $mainMod, 0, workspace, 10
|
|
||||||
#bind = $mainMod, 1, split-workspace, 1
|
|
||||||
#bind = $mainMod, 2, split-workspace, 2
|
|
||||||
#bind = $mainMod, 3, split-workspace, 3
|
|
||||||
#bind = $mainMod, 4, split-workspace, 4
|
|
||||||
#bind = $mainMod, 5, split-workspace, 5
|
|
||||||
#bind = $mainMod, 6, split-workspace, 6
|
|
||||||
#bind = $mainMod, 7, split-workspace, 7
|
|
||||||
#bind = $mainMod, 8, split-workspace, 8
|
|
||||||
#bind = $mainMod, 9, split-workspace, 9
|
|
||||||
#bind = $mainMod, 0, split-workspace, 10
|
|
||||||
#
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
|
|
||||||
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
|
|
||||||
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
|
|
||||||
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
|
|
||||||
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
|
|
||||||
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
|
|
||||||
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
|
|
||||||
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
|
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
|
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
|
|
||||||
#bind = $mainMod SHIFT, 1, split-movetoworkspace, 1
|
|
||||||
#bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
|
|
||||||
#bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
|
|
||||||
#bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
|
|
||||||
#bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
|
|
||||||
#bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
|
|
||||||
#bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
|
|
||||||
#bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
|
|
||||||
#bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
|
|
||||||
#bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
bind = $mainMod, right, workspace, e+1
|
|
||||||
bind = $mainMod, left, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
|
||||||
bindm = $mainMod CTRL, mouse:272, resizewindow
|
|
||||||
|
|
||||||
bind = $mainMod SHIFT, J, movewindow, d
|
|
||||||
bind = $mainMod SHIFT, K, movewindow, u
|
|
||||||
bind = $mainMod SHIFT, L, movewindow, r
|
|
||||||
bind = $mainMod SHIFT, H, movewindow, l
|
|
||||||
|
|
||||||
|
|
||||||
# bind = $mainMod CTRL, P, exec, wayshot -f "$(HOME)/Pictures/screenshots/$(date + '%s.png')" -s "$(slurp -f '%x %y %w %y')" --stdout | wl-copy
|
|
||||||
# bind = $mainMod CTRL, P, exec, wayshot -s "$(slurp -f '%x %y %w %y')" --stdout | wl-copy
|
|
||||||
# bind = $mainMod, , exec, wayshot -f "$(HOME)/Pictures/screenshots/$(date + '%s.png')"
|
|
||||||
bind = CTRL, PRINT, exec, hyprshot -m region
|
|
||||||
bind = , PRINT, exec, hyprshot -m output
|
|
||||||
bind = SHIFT, PRINT, exec, hyprshot -m window
|
|
||||||
|
|
||||||
bind = $mainMod ALT, P, exec, hyprpicker -a # colorpicker
|
|
||||||
|
|
||||||
# Control keybinds
|
|
||||||
bindel = , XF86MonBrightnessUp, exec, doas brightnessctl set +2% # increase brightness by 2%
|
|
||||||
bindel = , XF86MonBrightnessDown, exec, doas brightnessctl set 2%- # decrease brightness by 2%
|
|
||||||
bindel = , XF86AudioRaiseVolume, exec, pulsemixer --change-volume +2 # increase volume by 2
|
|
||||||
bindel = , XF86AudioLowerVolume, exec, pulsemixer --change-volume -2 # decrease volume by 2
|
|
||||||
bindel = , XF86AudioMute, exec, pulsemixer --toggle-mute # mute volume
|
|
||||||
bindel = , XF86AudioPlay, exec, playerctl -a play-pause # pause/play everything
|
|
||||||
bindel = $mainMod, Space, exec, hyprlock
|
|
||||||
|
|
||||||
bindl = , switch:Lid Switch, exec, hyprlock
|
|
||||||
0
config/lf/cleaner
Normal file → Executable file
0
config/lf/cleaner
Normal file → Executable file
0
config/lf/lfrc
Normal file → Executable file
0
config/lf/lfrc
Normal file → Executable file
0
config/nsxiv/exec/image-info
Normal file → Executable file
0
config/nsxiv/exec/image-info
Normal file → Executable file
0
config/nsxiv/exec/key-handler
Normal file → Executable file
0
config/nsxiv/exec/key-handler
Normal file → Executable file
0
config/nsxiv/exec/nsxiv-url
Normal file → Executable file
0
config/nsxiv/exec/nsxiv-url
Normal file → Executable file
0
config/nsxiv/exec/thumb-info
Normal file → Executable file
0
config/nsxiv/exec/thumb-info
Normal file → Executable file
0
config/nsxiv/exec/win-title
Normal file → Executable file
0
config/nsxiv/exec/win-title
Normal file → Executable file
@ -37,7 +37,7 @@ export WM="awesome"
|
|||||||
export XDG_CACHE_HOME="$HOME/.cache"
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
export XDG_CONFIG_HOME="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
export XDG_DATA_HOME="$HOME/.local/share"
|
export XDG_DATA_HOME="$HOME/.local/share"
|
||||||
export XDG_RUNTIME_DIR="$HOME/.cache/xdgr"
|
# export XDG_RUNTIME_DIR="$HOME/.cache/xdgr"
|
||||||
export XDG_STATE_HOME="$HOME/.local/share"
|
export XDG_STATE_HOME="$HOME/.local/share"
|
||||||
|
|
||||||
export HYPRSHOT_DIR="$HOME/Pictures/screenshots"
|
export HYPRSHOT_DIR="$HOME/Pictures/screenshots"
|
||||||
|
|||||||
2
config/x11/opt-apps
Normal file → Executable file
2
config/x11/opt-apps
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
autostart="picom nextcloud transmission-daemon floorp discord syncthing mullvad-vpn spotify-launcher kotatogram-desktop easyeffects"
|
autostart="picom nextcloud transmission-daemon zen-browser vesktop syncthing mullvad-vpn spotify-launcher kotatogram-desktop easyeffects"
|
||||||
|
|
||||||
for program in $autostart; do
|
for program in $autostart; do
|
||||||
pidof -sx "$program" || "$program" &
|
pidof -sx "$program" || "$program" &
|
||||||
|
|||||||
@ -145,6 +145,7 @@ eval "$(starship init zsh)"
|
|||||||
eval "$(fzf --zsh)"
|
eval "$(fzf --zsh)"
|
||||||
eval "$(uv generate-shell-completion zsh)"
|
eval "$(uv generate-shell-completion zsh)"
|
||||||
eval "$(uvx --generate-shell-completion zsh)"
|
eval "$(uvx --generate-shell-completion zsh)"
|
||||||
|
eval "$(zoxide init zsh)"
|
||||||
|
|
||||||
[[ -r ~/.local/share/zsh/plugins/znap/znap.zsh ]] ||
|
[[ -r ~/.local/share/zsh/plugins/znap/znap.zsh ]] ||
|
||||||
git clone --depth 1 -- \
|
git clone --depth 1 -- \
|
||||||
|
|||||||
0
dotter.arm
Normal file → Executable file
0
dotter.arm
Normal file → Executable file
0
dotter.exe
Normal file → Executable file
0
dotter.exe
Normal file → Executable file
Loading…
Reference in New Issue
Block a user