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
# Lid switch
riverctl map-switch normal lid close "waylock -fork-on-lock -init-color 0x000000"
riverctl map-switch normal lid close 'waylock-launcher'
{{- end }}
### "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=secrets &
gnome-keyring-daemon --start --components=ssh &
pipewire-launcher &
kanshi &
dunst &
{{- if eq .chezmoi.hostname "hydrus" }}
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 &
pipewire-launcher &
swayidle-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 &
evolution &
mattermost-desktop &

View file

@ -1,14 +1,18 @@
{
[{
{{- if eq .chezmoi.hostname "hydrus"}}
"output": "DP-1",
"position": "bottom",
"width": 1920,
{{- else if eq .chezmoi.hostname "helix" }}
"output": "eDP-1",
"position": "top",
"width": 3840,
{{- else }}
"output": "eDP-1",
"position": "top",
{{- end }}
"layer": "top",
"height": 24,
// "width": 1280,
"height": 32,
"spacing": 4,
"modules-left": [
@ -20,17 +24,25 @@
"river/window"
],
{{- if eq .chezmoi.hostname "hydrus"}}
"modules-right": [
"idle_inhibitor",
"pulseaudio",
"network",
"cpu",
"memory",
"temperature",
"keyboard-state",
"clock",
"tray"
],
{{- else }}
"modules-right": [
"idle_inhibitor",
"backlight",
"pulseaudio",
"network",
"battery",
"clock",
"tray"
],
{{- end }}
"keyboard-state": {
"numlock": false,
@ -47,7 +59,6 @@
},
"river/tags": {
//"tag-labels": ["1", "2", "3", "4", "5"],
//"num-tags": 5
},
@ -66,7 +77,7 @@
"clock": {
"format": "{:%H:%M}",
"timezone": "America/New_York",
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
@ -81,9 +92,17 @@
},
"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,
// "critical-threshold": 80,
{{- end }}
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
@ -97,7 +116,9 @@
"battery": {
"states": {
// "good": 95,
{{- if eq .chezmoi.hostname "helix"}}
"good": 59,
{{- end }}
"warning": 30,
"critical": 15
},
@ -114,6 +135,135 @@
"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": {
// "interface": "wlan0",
"format-wifi": "{essid} ({signalStrength}%) ",
@ -143,5 +293,6 @@
},
"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-size: 12px;
}
@ -68,12 +67,17 @@ button:hover {
}
#workspaces button.urgent {
background-color: #eb4d4b;
background-color: #e26c6e;
}
#mode {
background-color: #64727d;
border-bottom: 3px solid #4a555b;
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 }}
}
#clock,
@ -112,19 +116,34 @@ button:hover {
}
#clock {
background-color: #6eb2a9;
color: #4a555b;
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 }}
}
#battery {
background-color: #4a555b;
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 }}
}
#battery.charging,
#battery.plugged {
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 {
@ -135,13 +154,19 @@ button:hover {
}
#battery.critical:not(.charging) {
background-color: #f53c3c;
background-color: #e26c6e;
color: #4a555b;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
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 {
@ -149,73 +174,116 @@ label:focus {
}
#cpu {
background-color: #9bb86f;
color: #4a555b;
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 }}
}
#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 {
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 {
background-color: #90b1b1;
background-color: #d0bf9b;
}
#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 {
background-color: #e68183;
background-color: #e26c6e;
color: #4a555b;
}
#pulseaudio {
background-color: #d5b26b;
color: #4a555b;
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 }}
}
#pulseaudio.muted {
background-color: #dbbc7f;
color: #4a555b;
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 }}
}
#wireplumber {
background-color: #fff0f5;
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 }}
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
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 }}
}
#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 {
background-color: #eb4d4b;
background-color: #e26c6e;
color: #4a555b;
}
#tray {
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 {
@ -229,29 +297,22 @@ label:focus {
#idle_inhibitor {
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 {
background-color: #d0bf9b;
color: #525c62;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
{{- 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 }}
}
#language {
@ -263,11 +324,16 @@ label:focus {
}
#keyboard-state {
background: #72b783;
color: #4a555b;
background: #323d43;
color: #d8caac;
padding: 0 0px;
margin: 0 0px;
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 {
@ -275,7 +341,7 @@ label:focus {
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
background: rgba(0, 0, 0, .2);
}
#scratchpad {
@ -285,3 +351,46 @@ label:focus {
#scratchpad.empty {
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