bindsym Shift+e exec 'swaymsg mode "default"; swaymsg exec bemenu-run'
- bindsym $mod+l exec 'swaymsg mode "default"; "lock.{{ host }}"'
+ bindsym $mod+l exec 'swaymsg mode "default"; "lock.nosmartcard"'
bindsym Escape mode "default"
}
#!/bin/sh
NAG_MSG="Smartcard is still plugged in, not locking! \
-Lock again to force locking."
+Remove now to lock."
+NOLOCK_MSG="Smartcard was not removed, did not lock!"
LOCK_CMD="swaylock "
LOCK_CMD+=" -i HDMI-A-2:~/Pictures/lockscreen_1080_1.png"
LOCK_CMD+=" -i HDMI-A-3:~/Pictures/lockscreen_1080_2.png"
-if [ $(pgrep -c lock.{{ grains['host'] }}) -gt 1 ]; then
- pkill -f "$NAG_MSG"
- $LOCK_CMD
+if [ $(pgrep -c lock.magnesium) -gt 1 ]; then
+ exit
else
gpg --card-status > /dev/null
if [ $? -ne 2 ]; then
- gpg --card-status
- echo $?
- swaynag -m "$NAG_MSG" --type warning
- else
- $LOCK_CMD
+ swaynag -m "$NAG_MSG" --type warning&
+
+ counter=0
+ while [ $? -ne 2 ]; do
+ if [ $counter -gt 20 ]; then
+ pkill -f "$NAG_MSG"
+ swaynag -m "$NOLOCK_MSG" --type error&
+ exit
+ fi
+
+ sleep 1
+ counter=$(bc <<<"${counter}+1")
+ gpg --card-status > /dev/null
+ done
+ pkill -f "$NAG_MSG"
fi
+ $LOCK_CMD
fi
lock script:
file.managed:
- - name: {{ grains['homedir'] }}/.local/bin/lock.{{ grains['host'] }}
+ - name: {{ grains['homedir'] }}/.local/bin/lock.nosmartcard
- source: {{ grains['stateroot'] }}/sway/files/lock
- template: jinja
- user: {{ grains['user'] }}