25개 이상의 토픽을 선택하실 수 없습니다.
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
- #!/bin/bash
-
- # Example locker script -- demonstrates how to use the --transfer-sleep-lock
- # option with i3lock's forking mode to delay sleep until the screen is locked.
-
- ## CONFIGURATION ##############################################################
-
- # Options to pass to i3lock
- i3lock_options="-d -c 000000"
-
- # Run before starting the locker
- pre_lock() {
- #mpc pause
- return
- }
-
- # Run after the locker exits
- post_lock() {
- return
- }
-
- ###############################################################################
-
- pre_lock
-
- # We set a trap to kill the locker if we get killed, then start the locker and
- # wait for it to exit. The waiting is not that straightforward when the locker
- # forks, so we use this polling only if we have a sleep lock to deal with.
- if [[ -e /dev/fd/${XSS_SLEEP_LOCK_FD:--1} ]]; then
- kill_i3lock() {
- pkill -xu $EUID "$@" i3lock
- }
-
- trap kill_i3lock TERM INT
-
- # we have to make sure the locker does not inherit a copy of the lock fd
- i3lock $i3lock_options {XSS_SLEEP_LOCK_FD}<&-
-
- # now close our fd (only remaining copy) to indicate we're ready to sleep
- exec {XSS_SLEEP_LOCK_FD}<&-
-
- while kill_i3lock -0; do
- sleep 0.5
- done
- else
- trap 'kill %%' TERM INT
- i3lock -n $i3lock_options &
- wait
- fi
-
- post_lock
|