Compare commits

..

5 commits

6 changed files with 394 additions and 113 deletions

View file

@ -172,7 +172,7 @@ riverctl input pointer-2-7-SynPS/2_Synaptics_TouchPad tap-button-map left-right-
riverctl input pointer-2-7-SynPS/2_Synaptics_TouchPad scroll-method two-finger riverctl input pointer-2-7-SynPS/2_Synaptics_TouchPad scroll-method two-finger
# Lid switch # Lid switch
riverctl map-switch normal lid close "waylock -fork-on-lock -init-color 0x000000" riverctl map-switch normal lid close 'waylock-launcher'
{{- end }} {{- end }}
### "rule-add" not implemented yet??? ### "rule-add" not implemented yet???
@ -199,20 +199,18 @@ rivertile -view-padding 4 -outer-padding 4 -main-ratio .5 &
gnome-keyring-daemon --start --components=pkcs11 & gnome-keyring-daemon --start --components=pkcs11 &
gnome-keyring-daemon --start --components=secrets & gnome-keyring-daemon --start --components=secrets &
gnome-keyring-daemon --start --components=ssh & gnome-keyring-daemon --start --components=ssh &
pipewire-launcher &
kanshi & kanshi &
dunst & pipewire-launcher &
{{- if eq .chezmoi.hostname "hydrus" }} swayidle-launcher &
swaybg -m fill -i $HOME/Pictures/Wallpapers/dark-forest-path.jpg &
swayidle -w timeout 600 "waylock -fork-on-lock -init-color 0x000000" &
{{- else if eq .chezmoi.hostname "helix" }}
swaybg -m center -i "$HOME/Pictures/Wallpapers/Mountain Retreat.jpg" &
swayidle-laptop &
{{- else }}
swayidle -w timeout 600 "waylock -fork-on-lock -init-color 0x000000" &
{{- end }}
gammastep -r &
waybar-launcher & waybar-launcher &
dunst &
gammastep -r &
river-tag-overlay &
{{- if eq .chezmoi.hostname "hydrus" }}
swaybg -m fill -i ${HOME}/Pictures/Wallpapers/dark-forest-path.jpg &
{{- else if eq .chezmoi.hostname "helix" }}
swaybg -m center -i "${HOME}/Pictures/Wallpapers/Mountain Retreat.jpg" &
{{- end }}
blueman-applet & blueman-applet &
evolution & evolution &
mattermost-desktop & mattermost-desktop &

View file

@ -1,14 +1,18 @@
{ [{
{{- if eq .chezmoi.hostname "hydrus"}} {{- if eq .chezmoi.hostname "hydrus"}}
"output": "DP-1", "output": "DP-1",
"position": "bottom", "position": "bottom",
"width": 1920,
{{- else if eq .chezmoi.hostname "helix" }}
"output": "eDP-1",
"position": "top",
"width": 3840,
{{- else }} {{- else }}
"output": "eDP-1", "output": "eDP-1",
"position": "top", "position": "top",
{{- end }} {{- end }}
"layer": "top", "layer": "top",
"height": 24, "height": 32,
// "width": 1280,
"spacing": 4, "spacing": 4,
"modules-left": [ "modules-left": [
@ -20,17 +24,25 @@
"river/window" "river/window"
], ],
{{- if eq .chezmoi.hostname "hydrus"}}
"modules-right": [ "modules-right": [
"idle_inhibitor", "idle_inhibitor",
"pulseaudio", "pulseaudio",
"network",
"cpu",
"memory",
"temperature",
"keyboard-state", "keyboard-state",
"clock", "clock",
"tray" "tray"
], ],
{{- else }}
"modules-right": [
"idle_inhibitor",
"backlight",
"pulseaudio",
"network",
"battery",
"clock",
"tray"
],
{{- end }}
"keyboard-state": { "keyboard-state": {
"numlock": false, "numlock": false,
@ -47,7 +59,6 @@
}, },
"river/tags": { "river/tags": {
//"tag-labels": ["1", "2", "3", "4", "5"],
//"num-tags": 5 //"num-tags": 5
}, },
@ -66,7 +77,7 @@
"clock": { "clock": {
"format": "{:%H:%M}", "format": "{:%H:%M}",
"timezone": "America/New_York", // "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}" "format-alt": "{:%Y-%m-%d}"
}, },
@ -81,9 +92,17 @@
}, },
"temperature": { "temperature": {
{{- if eq .chezmoi.hostname "helix" }}
"hwmon-path": "/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon4/temp1_input",
"critical-threshold": 90,
{{- else if eq .chezmoi.hostname "hydrus" }}
"hwmon-path": "/sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input",
"critical-threshold": 90,
{{- else }}
// "thermal-zone": 2, // "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80, // "critical-threshold": 80,
{{- end }}
// "format-critical": "{temperatureC}°C {icon}", // "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}", "format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""] "format-icons": ["", "", ""]
@ -97,7 +116,9 @@
"battery": { "battery": {
"states": { "states": {
// "good": 95, {{- if eq .chezmoi.hostname "helix"}}
"good": 59,
{{- end }}
"warning": 30, "warning": 30,
"critical": 15 "critical": 15
}, },
@ -114,6 +135,135 @@
"bat": "BAT2" "bat": "BAT2"
}, },
"network": {
// "interface": "wlan0",
{{- if eq .chezmoi.hostname "hydrus" }}
"format-wifi": "{essid} ({signalStrength}%) ",
{{- else }}
"format-wifi": "{signalStrength}% ",
{{- end }}
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
"scroll-step": 1,
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
},
},
{
{{- if eq .chezmoi.hostname "hydrus" }}
"output": "DP-2",
"position": "bottom",
"width": 1920,
"layer": "top",
"height": 32,
"spacing": 4,
"modules-left": [
"river/tags"
],
"modules-center": [
"river/window",
],
"modules-right": [
"network",
"cpu",
"memory",
"temperature",
"clock",
],
"keyboard-state": {
"numlock": false,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"river/mode": {
"format": "mode: {}"
},
"river/tags": {
//"num-tags": 5
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
"icon-size": 18,
"spacing": 10
},
"clock": {
"format": "{:%H:%M}",
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": true
},
"memory": {
"format": "{}% "
},
"temperature": {
{{- if eq .chezmoi.hostname "helix" }}
"hwmon-path": "/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon4/temp1_input",
"critical-threshold": 90,
{{- else if eq .chezmoi.hostname "hydrus" }}
"hwmon-path": "/sys/devices/platform/nct6775.656/hwmon/hwmon1/temp2_input",
"critical-threshold": 90,
{{- else }}
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
// "critical-threshold": 80,
{{- end }}
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"network": { "network": {
// "interface": "wlan0", // "interface": "wlan0",
"format-wifi": "{essid} ({signalStrength}%) ", "format-wifi": "{essid} ({signalStrength}%) ",
@ -143,5 +293,6 @@
}, },
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
}, },
} {{- end }}
}]

View file

@ -1,5 +1,4 @@
* { * {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, Hack, monospace; font-family: FontAwesome, Hack, monospace;
font-size: 12px; font-size: 12px;
} }
@ -68,12 +67,17 @@ button:hover {
} }
#workspaces button.urgent { #workspaces button.urgent {
background-color: #eb4d4b; background-color: #e26c6e;
} }
#mode { #mode {
background-color: #64727d; background-color: #323d43;
border-bottom: 3px solid #4a555b; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#clock, #clock,
@ -112,19 +116,34 @@ button:hover {
} }
#clock { #clock {
background-color: #6eb2a9; background-color: #323d43;
color: #4a555b; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#battery { #battery {
background-color: #4a555b; background-color: #323d43;
color: #d8caac; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#battery.charging, #battery.charging,
#battery.plugged { #battery.plugged {
color: #4a555b; color: #4a555b;
background-color: #26a65b; background-color: #9bb86f;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
@keyframes blink { @keyframes blink {
@ -135,13 +154,19 @@ button:hover {
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
background-color: #f53c3c; background-color: #e26c6e;
color: #4a555b; color: #4a555b;
animation-name: blink; animation-name: blink;
animation-duration: 0.5s; animation-duration: 0.5s;
animation-timing-function: linear; animation-timing-function: linear;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-direction: alternate; animation-direction: alternate;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
label:focus { label:focus {
@ -149,73 +174,116 @@ label:focus {
} }
#cpu { #cpu {
background-color: #9bb86f; background-color: #323d43;
color: #4a555b; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#memory { #memory {
background-color: #cf87a9; background-color: #323d43;
color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#disk { #disk {
background-color: #964b00; background-color: #323d43;
color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#backlight { #backlight {
background-color: #90b1b1; background-color: #d0bf9b;
} }
#network { #network {
background-color: #83c092; background-color: #323d43;
color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#network.disconnected { #network.disconnected {
background-color: #e68183; background-color: #e26c6e;
color: #4a555b;
} }
#pulseaudio { #pulseaudio {
background-color: #d5b26b; background-color: #323d43;
color: #4a555b; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#pulseaudio.muted { #pulseaudio.muted {
background-color: #dbbc7f; background-color: #525c62;
color: #4a555b; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#wireplumber { #wireplumber {
background-color: #fff0f5; background-color: #323d43;
color: #d8caac; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#wireplumber.muted { #wireplumber.muted {
background-color: #f53c3c; background-color: #525c62;
} color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
#custom-media { border-bottom: 3px solid rgba(208, 191, 155, 0.7);
background-color: #66cc99; {{- else }}
color: #2a5c45; border-top: 3px solid rgba(208, 191, 155, 0.7);
min-width: 100px; {{- end }}
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
} }
#temperature { #temperature {
background-color: #e2966c; background-color: #323d43;
color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#temperature.critical { #temperature.critical {
background-color: #eb4d4b; background-color: #e26c6e;
color: #4a555b;
} }
#tray { #tray {
background-color: #323d43; background-color: #323d43;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#tray > .passive { #tray > .passive {
@ -229,29 +297,22 @@ label:focus {
#idle_inhibitor { #idle_inhibitor {
background-color: #525c62; background-color: #525c62;
color: #d0bf9b; color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#idle_inhibitor.activated { #idle_inhibitor.activated {
background-color: #d0bf9b; background-color: #d0bf9b;
color: #525c62; color: #525c62;
} {{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(50, 61, 67, 0.7);
#mpd { {{- else }}
background-color: #66cc99; border-top: 3px solid rgba(50, 61, 67, 0.7);
color: #2a5c45; {{- end }}
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
} }
#language { #language {
@ -263,11 +324,16 @@ label:focus {
} }
#keyboard-state { #keyboard-state {
background: #72b783; background: #323d43;
color: #4a555b; color: #d8caac;
padding: 0 0px; padding: 0 0px;
margin: 0 0px; margin: 0 0px;
min-width: 16px; min-width: 16px;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
} }
#keyboard-state > label { #keyboard-state > label {
@ -275,7 +341,7 @@ label:focus {
} }
#keyboard-state > label.locked { #keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2); background: rgba(0, 0, 0, .2);
} }
#scratchpad { #scratchpad {
@ -285,3 +351,46 @@ label:focus {
#scratchpad.empty { #scratchpad.empty {
background-color: transparent; background-color: transparent;
} }
/* River */
#mode.normal {
color: #d8caac;
background-color: #4a555b;
}
#mode.passthrough {
background-color: #d0bf9b;
color: #4a555b;
}
#tags button {}
#tags button.occupied {
background-color: #525c62;
color: #d8caac;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(208, 191, 155, 0.7);
{{- else }}
border-top: 3px solid rgba(208, 191, 155, 0.7);
{{- end }}
}
#tags button.focused {
background-color: #d0bf9b;
color: #4a555b;
{{- if eq .chezmoi.hostname "hydrus"}}
border-bottom: 3px solid rgba(50, 61, 67, 0.7);
{{- else }}
border-top: 3px solid rgba(50, 61, 67, 0.7);
{{- end }}
}
#tags button.urgent {
background-color: #e26c6e;
color: #4a555b;
}
#window {
font-size: 10px;
}

View file

@ -1,29 +0,0 @@
#!/bin/bash
START_TIME=`date +"%b %d, %Y %T"`
#LOG_FILE_DIM="${XDG_STATE_HOME}"/swayidle-dim.log
LOG_FILE_LOCK="${XDG_STATE_HOME}"/swayidle.log
#echo "--- ${START_TIME} ---" > "$LOG_FILE_DIM"
echo "--- ${START_TIME} ---" > "$LOG_FILE_LOCK"
# kill running processes
killall -q swayidle
# dim screen after 2 minutes, lock after 5, turn off after 15, suspend after 60
#swayidle -w \
# timeout 120 'light -O && light -S .1' \
# resume 'light -I' \
# 2>&1 | tee -a "$LOG_FILE_DIM" & disown
swayidle -w \
timeout 120 'light -O && light -S .1' \
resume 'light -I' \
timeout 300 'waylock-launcher' \
resume 'light -I' \
timeout 900 'light -I && wlr-randr --output eDP-1 --off' \
resume 'wlr-randr --output eDP-1 --on && kanshictl reload' \
timeout 3600 'loginctl suspend' \
resume 'wlr-randr --output eDP-1 --on && kanshictl reload' \
2>&1 | "$LOG_FILE_LOCK" & disown

View file

@ -0,0 +1,35 @@
#!/bin/bash
START_TIME=`date +"%b %d, %Y %T"`
LOG_FILE="${XDG_STATE_HOME}"/swayidle.log
echo "--- ${START_TIME} ---" > "$LOG_FILE"
# kill running processes
killall -q swayidle
{{- if eq .chezmoi.hostname "helix" }}
# dim: 2m, lock: 5m, display: 15m, suspend: 1h
swayidle -w \
timeout 120 'light -O && light -S .1' \
resume 'light -I' \
timeout 300 'waylock-launcher' \
resume 'light -I' \
timeout 900 'light -I && wlr-randr --output eDP-1 --off' \
resume 'wlr-randr --output eDP-1 --on && kanshictl reload' \
timeout 3600 'loginctl suspend-then-hibernate' \
resume 'wlr-randr --output eDP-1 --on && kanshictl reload' \
2>&1 | "$LOG_FILE" & disown
{{- else if eq .chezmoi.hostname "hydrus" }}
# lock: 5m, display: 15m
swayidle -w \
timeout 300 'waylock-launcher' \
timeout 900 'wlr-randr --output DP-1 --off --output DP-2 --off' \
resume 'wlr-randr --output DP-1 --on --output DP-2 --on && kanshictl reload' \
2>&1 | "$LOG_FILE" & disown
{{- else }}
# lock after 5m
swayidle -w \
timeout 300 'waylock-launcher' \
2>&1 | "$LOG_FILE" & disown
{{ end }}

View file

@ -0,0 +1,17 @@
#!/bin/bash
START_TIME=`date +"%b %d, %Y %T"`
LOG_FILE="${XDG_STATE_HOME}"/waylock.log
echo "--- ${START_TIME} ---" > "$LOG_FILE"
if pgrep -u $UID -x waylock >/dev/null; then
exit 1
else
waylock \
-fork-on-lock \
-init-color 0x000000 \
-fail-color 0x000000 \
-input-color 0x525c62 \
2>&1 | tee -a "$LOG_FILE" & disown
fi