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 }, "b", function()
|
||||
awful.spawn("floorp")
|
||||
awful.spawn("zen-browser")
|
||||
end, { description = "open browser", group = "launcher" }),
|
||||
awful.key({ modkey }, "n", function()
|
||||
awful.spawn("alacritty -e yazi")
|
||||
@ -594,6 +594,10 @@ local clientbuttons = gears.table.join(
|
||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
||||
awful.mouse.client.move(c)
|
||||
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)
|
||||
c:emit_signal("request::activate", "mouse_click", { raise = true })
|
||||
awful.mouse.client.resize(c)
|
||||
|
||||
@ -57,7 +57,7 @@ update_ms = 500
|
||||
|
||||
#* 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.
|
||||
proc_sorting = "memory"
|
||||
proc_sorting = "cpu direct"
|
||||
|
||||
#* Reverse sorting order, True or 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;
|
||||
$bg_dark: #16161e;
|
||||
$bg_float: #16161e;
|
||||
$bg_highlight: #292e42;
|
||||
$bg_popup: #16161e;
|
||||
$bg_search: #3d59a1;
|
||||
$bg_sidebar: #16161e;
|
||||
$bg_statusline: #16161e;
|
||||
$bg_visual: #283457;
|
||||
$black: #15161e;
|
||||
$blue: #7aa2f7;
|
||||
$blue0: #3d59a1;
|
||||
$blue1: #2ac3de;
|
||||
$blue2: #0db9d7;
|
||||
$blue5: #89ddff;
|
||||
$blue6: #b4f9f8;
|
||||
$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;
|
||||
$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
|
||||
}
|
||||
|
||||
//Global Styles
|
||||
.bar,
|
||||
.bar-1 {
|
||||
background-color: rgba(22, 22, 30, 0.7);
|
||||
color: $fg;
|
||||
all: unset;
|
||||
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-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;
|
||||
}
|
||||
|
||||
.metric scale trough highlight {
|
||||
all: unset;
|
||||
background-color: $error;
|
||||
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;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
background-color: $overlay;
|
||||
box-shadow: 0 2px 3px 2px $highlight_low;
|
||||
border-radius: 16px;
|
||||
min-height: 10px;
|
||||
min-width: 70px;
|
||||
margin: 0px 10px 0px 0px;
|
||||
}
|
||||
|
||||
.workspaces {
|
||||
.current {
|
||||
color: $hint;
|
||||
color: $pine;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-module {
|
||||
&>&__icon {
|
||||
margin-right: 5px;
|
||||
.song_cover_art {
|
||||
background-size: cover;
|
||||
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 {
|
||||
&.warning {
|
||||
color: $warning;
|
||||
calender {
|
||||
color: $text;
|
||||
}
|
||||
|
||||
&.danger {
|
||||
color: $red;
|
||||
}
|
||||
calendar:selected {
|
||||
color: $iris;
|
||||
}
|
||||
|
||||
.battery {
|
||||
&.warning {
|
||||
color: $warning;
|
||||
calendar.header {
|
||||
color: $iris;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&.critical {
|
||||
color: $red;
|
||||
calendar.button {
|
||||
color: $iris;
|
||||
}
|
||||
|
||||
&.Charging {
|
||||
color: $teal;
|
||||
}
|
||||
calendar.highlight {
|
||||
color: $iris;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.network {
|
||||
&.disconnected {
|
||||
color: $error;
|
||||
}
|
||||
calendar:indeterminate {
|
||||
color: #bfc9db;
|
||||
}
|
||||
|
||||
.workspaces button:hover {
|
||||
background: $bg_highlight;
|
||||
.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 []
|
||||
(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)
|
||||
time
|
||||
date
|
||||
))
|
||||
|
||||
|
||||
;; Variables
|
||||
(defpoll clock_hour :interval "5m" "date +%H")
|
||||
(defpoll clock_minute :interval "2s" "date +%M")
|
||||
(defpoll clock_second :interval "1s" "date +%S")
|
||||
(defpoll clock_date :interval "10h" "date +%d.%m.%Y")
|
||||
(defpoll clock_day :interval "10h" "date +%A")
|
||||
(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 -d intel_backlight | 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 workspaces :initial "[]" "bash ~/.config/eww/scripts/get-workspaces")
|
||||
(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 []
|
||||
(eventbox :onscroll "bash ~/.config/eww/scripts/change-active-workspace {} ${current_workspace}" :class "workspaces"
|
||||
(box :space-evenly true :halign "start" :spacing 5
|
||||
(label :text "${workspaces}${current_workspace}" :visible false)
|
||||
(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.window > 0 ? "current" : ""}"
|
||||
(label :text "${workspace.id}" :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""}" )))))))
|
||||
;; (box :class "workspace-entry ${workspace.id == current_workspace ? "current" : ""}"
|
||||
;; (label :text "${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" ? "" :
|
||||
(defwidget bat []
|
||||
(box :class "bat_module" :vexpand "false" :hexpand "false"
|
||||
(circular-progress :value battery
|
||||
: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 ? "" :
|
||||
""}"
|
||||
: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 []
|
||||
(defwidget mem []
|
||||
(box :class "mem_module" :vexpand "false" :hexpand "false"
|
||||
(circular-progress :value memory
|
||||
:class "membar"
|
||||
:thickness 4
|
||||
(button
|
||||
:onclick "xdg-open https://github.com/notifications"
|
||||
(box
|
||||
(icon-module
|
||||
:class "github"
|
||||
:icon ""
|
||||
:visible {github_poll != ""})
|
||||
github_poll)))
|
||||
:class "iconmem"
|
||||
:limit-width 2
|
||||
:tooltip "using ${memory}% ram"
|
||||
:onclick "$HOME/.config/eww/bar/scripts/pop system"
|
||||
:show_truncated false
|
||||
:wrap false
|
||||
""))))
|
||||
|
||||
|
||||
(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 ⚠" : ""}")))
|
||||
(defwidget sep []
|
||||
(box :class "module-2" :vexpand "false" :hexpand "false"
|
||||
(label :class "separ" :text "|")))
|
||||
|
||||
;; "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}"
|
||||
;; },
|
||||
(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 []
|
||||
(eventbox :onhover "${eww} update music_reveal=true"
|
||||
: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
|
||||
:halign "center"
|
||||
:class "center_modules"
|
||||
(window)))
|
||||
|
||||
(defwidget bar_1 []
|
||||
(box :class "bar"
|
||||
:orientation "h"
|
||||
(right)
|
||||
(center)
|
||||
(left)
|
||||
))
|
||||
|
||||
(defwindow bar
|
||||
:monitor 0
|
||||
: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
|
||||
:x "0%"
|
||||
:y "0%"
|
||||
@ -194,4 +235,164 @@
|
||||
:height "10px"
|
||||
:anchor "top center")
|
||||
: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]
|
||||
contrastOpacity=188
|
||||
drawColor=#ffffff
|
||||
drawColor=#ff0000
|
||||
drawThickness=3
|
||||
filenamePattern=%Y-%m-%d_%H-%M-%S
|
||||
saveAfterCopy=true
|
||||
|
||||
@ -15,11 +15,8 @@
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
# monitor=,preferred,auto,auto
|
||||
monitor=,prefered,auto,1.5
|
||||
monitor=DP-1,disable
|
||||
#monitor=HDMI-A-1,highres,auto-up,1,mirror,eDP-1
|
||||
|
||||
monitor=eDP-1,prefered,auto,1.5
|
||||
monitor=DP-1,prefered,auto,1
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
@ -31,6 +28,7 @@ monitor=DP-1,disable
|
||||
$terminal = alacritty
|
||||
$fileManager = $terminal -e yazi
|
||||
$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:
|
||||
|
||||
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=[workspace 1 silent] floorp
|
||||
exec-once=[workspace 8 silent] discord & kotatogram-desktop
|
||||
exec-once=[workspace 9 silent] spotify
|
||||
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] $browser
|
||||
exec-once=[workspace 8 silent] vesktop & kotatogram-desktop
|
||||
exec-once=[workspace 9 silent] spotify-launcher
|
||||
|
||||
# Source a file (multi-file configs)
|
||||
source=~/.config/hypr/rose-pine.conf
|
||||
@ -68,7 +66,7 @@ env = HYPRCURSOR_SIZE,24
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
gaps_out = 10
|
||||
|
||||
border_size = 2
|
||||
|
||||
@ -88,6 +86,7 @@ general {
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 5
|
||||
# rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
@ -222,6 +221,7 @@ bind = $mainMod, P, exec, $menu
|
||||
bind = $mainMod, F, fullscreen
|
||||
bind = $mainMod, M, bringactivetotop
|
||||
bind = $mainMod, A, pin
|
||||
bind = $mainMod, B, exec, $browser
|
||||
#bind = $mainMod, O, split-changemonitor, +1
|
||||
# bind = $mainMod, P, pseudo, # dwindle
|
||||
# bind = $mainMod, J, togglesplit, # dwindle
|
||||
@ -329,6 +329,11 @@ bind = $mainMod ALT, P, exec, hyprpicker -a # colorpicker
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# 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:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
@ -340,11 +345,13 @@ windowrulev2 = opacity 0.95, class:thunderbird
|
||||
|
||||
windowrulev2 = workspace 8, 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:TelegramDesktop
|
||||
windowrulev2 = opacity 0.95, class:TelegramDesktop
|
||||
windowrulev2 = workspace 8, class:kotatogramdesktop
|
||||
windowrulev2 = opacity 0.95, class:kotatogramdesktop
|
||||
windowrulev2 = workspace 8, title:Kotatogram
|
||||
windowrulev2 = opacity 0.95, title:Kotatogram
|
||||
windowrulev2 = opacity 0.9, class:teams-for-linux
|
||||
windowrulev2 = workspace 5, class:Ferdium
|
||||
windowrulev2 = opacity 0.9, class:Ferdium
|
||||
@ -367,3 +374,4 @@ windowrulev2 = float, class:galculator
|
||||
windowrulev2=float,title:^(flameshot)
|
||||
windowrulev2=move 0 0,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_CONFIG_HOME="$HOME/.config"
|
||||
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 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
|
||||
|
||||
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
|
||||
pidof -sx "$program" || "$program" &
|
||||
|
||||
@ -145,6 +145,7 @@ eval "$(starship init zsh)"
|
||||
eval "$(fzf --zsh)"
|
||||
eval "$(uv generate-shell-completion zsh)"
|
||||
eval "$(uvx --generate-shell-completion zsh)"
|
||||
eval "$(zoxide init zsh)"
|
||||
|
||||
[[ -r ~/.local/share/zsh/plugins/znap/znap.zsh ]] ||
|
||||
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