Configure screen locker

This commit is contained in:
Alex Kotov 2021-12-05 15:16:00 +05:00
parent f0182e8d49
commit 30bc46a7d0
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
5 changed files with 122 additions and 6 deletions

View File

@ -3,6 +3,13 @@ CPPFLAGS += -DENABLE_XINERAMA
PKGS += xinerama PKGS += xinerama
.endif .endif
.if "$(WITH_LOCKER)" == "i3lock"
CPPFLAGS += -DWITH_LOCKER -DWITH_LOCKER_I3LOCK
.endif
.if "$(WITH_LOCKER)" == "i3lock-color"
CPPFLAGS += -DWITH_LOCKER -DWITH_LOCKER_I3LOCK_COLOR
.endif
.if "$(WITH_TERMINAL)" == "alacritty" .if "$(WITH_TERMINAL)" == "alacritty"
CPPFLAGS += -DWITH_TERMINAL -DWITH_TERMINAL_ALACRITTY CPPFLAGS += -DWITH_TERMINAL -DWITH_TERMINAL_ALACRITTY
.endif .endif

View File

@ -3,6 +3,13 @@ CPPFLAGS += -DENABLE_XINERAMA
PKGS += xinerama PKGS += xinerama
endif endif
ifeq (i3lock,$(WITH_LOCKER))
CPPFLAGS += -DWITH_LOCKER -DWITH_LOCKER_I3LOCK
endif
ifeq (i3lock-color,$(WITH_LOCKER))
CPPFLAGS += -DWITH_LOCKER -DWITH_LOCKER_I3LOCK_COLOR
endif
ifeq (alacritty,$(WITH_TERMINAL)) ifeq (alacritty,$(WITH_TERMINAL))
CPPFLAGS += -DWITH_TERMINAL -DWITH_TERMINAL_ALACRITTY CPPFLAGS += -DWITH_TERMINAL -DWITH_TERMINAL_ALACRITTY
endif endif

54
configure vendored
View File

@ -45,6 +45,9 @@ Optional Features:
Optional Packages: Optional Packages:
--with-PACKAGE[ ARG] use PACKAGE [ARG=yes] --with-PACKAGE[ ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE no) --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE no)
--with-locker [i3lock|i3lock-color]
use ARG as screen locker [i3lock]
--without-locker do not use screen locker at all
--with-terminal [alacritty|gnome|st|xterm] --with-terminal [alacritty|gnome|st|xterm]
use ARG as terminal [alacritty] use ARG as terminal [alacritty]
--without-terminal do not use terminal at all --without-terminal do not use terminal at all
@ -58,6 +61,7 @@ bindir=''
datarootdir='' datarootdir=''
mandir='' mandir=''
enable_xinerama='' enable_xinerama=''
with_locker=''
with_terminal='' with_terminal=''
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
@ -90,6 +94,13 @@ while [ $# -gt 0 ]; do
--disable-xinerama) --disable-xinerama)
enable_xinerama='no' enable_xinerama='no'
;; ;;
--without-locker)
if [ "$with_locker" = '' ]; then
with_locker='no'
elif [ "$with_locker" != 'no' ]; then
usage
fi
;;
--without-terminal) --without-terminal)
if [ "$with_terminal" = '' ]; then if [ "$with_terminal" = '' ]; then
with_terminal='no' with_terminal='no'
@ -97,6 +108,43 @@ while [ $# -gt 0 ]; do
usage usage
fi fi
;; ;;
--with-locker)
shift
case "$1" in
yes)
if [ "$with_locker" = '' ]; then
with_locker='yes'
elif [ "$with_locker" != 'yes' ]; then
usage
fi
;;
no)
if [ "$with_locker" = '' ]; then
with_locker='no'
elif [ "$with_locker" != 'no' ]; then
usage
fi
;;
i3lock)
if [ "$with_locker" = '' ]; then
with_locker='i3lock'
elif [ "$with_locker" != 'i3lock' ]; then
usage
fi
;;
i3lock-color)
if [ "$with_locker" = '' ]; then
with_locker='i3lock-color'
elif [ "$with_locker" != 'i3lock-color' ]; then
usage
fi
;;
*)
do_shift='no'
;;
esac
;;
--with-terminal) --with-terminal)
shift shift
@ -176,6 +224,10 @@ if [ "$enable_xinerama" = '' ]; then
enable_xinerama='yes' enable_xinerama='yes'
fi fi
if [ "$with_locker" = '' -o "$with_locker" = 'yes' ]; then
with_locker='i3lock'
fi
if [ "$with_terminal" = '' -o "$with_terminal" = 'yes' ]; then if [ "$with_terminal" = '' -o "$with_terminal" = 'yes' ]; then
with_terminal='alacritty' with_terminal='alacritty'
fi fi
@ -186,6 +238,7 @@ echo "BINDIR = $bindir"
echo "DATAROOTDIR = $datarootdir" echo "DATAROOTDIR = $datarootdir"
echo "MANDIR = $mandir" echo "MANDIR = $mandir"
echo "ENABLE_XINERAMA = $enable_xinerama" echo "ENABLE_XINERAMA = $enable_xinerama"
echo "WITH_LOCKER = $with_locker"
echo "WITH_TERMINAL = $with_terminal" echo "WITH_TERMINAL = $with_terminal"
cat > 'config/1-generated.mk' << MAKE cat > 'config/1-generated.mk' << MAKE
@ -195,6 +248,7 @@ BINDIR = $bindir
DATAROOTDIR = $datarootdir DATAROOTDIR = $datarootdir
MANDIR = $mandir MANDIR = $mandir
ENABLE_XINERAMA = $enable_xinerama ENABLE_XINERAMA = $enable_xinerama
WITH_LOCKER = $with_locker
WITH_TERMINAL = $with_terminal WITH_TERMINAL = $with_terminal
MAKE MAKE

View File

@ -33,6 +33,9 @@ for launching other programs.
.B Mod1\-Shift\-/ .B Mod1\-Shift\-/
Start terminal. Start terminal.
.TP .TP
.B Mod1\-z
Lock screen.
.TP
.B Mod1\-, .B Mod1\-,
Focus previous screen, if any. Focus previous screen, if any.
.TP .TP

View File

@ -6,10 +6,19 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#define MAX_ARGS_COUNT 20 #define MAX_ARGS_COUNT 25
#define ARGS_SIZE (MAX_ARGS_COUNT + 1) #define ARGS_SIZE (MAX_ARGS_COUNT + 1)
#define MON_ARG_SIZE 2 #define MON_ARG_SIZE 2
#ifdef WITH_LOCKER_I3LOCK_COLOR
#define COLOR_BLANK "#00000000"
#define COLOR_CLEAR "#ffffff22"
#define COLOR_DEFAULT "#ff00ffcc"
#define COLOR_TEXT "#ee00eeee"
#define COLOR_WRONG "#880000bb"
#define COLOR_VERIFYING "#bb00bbbb"
#endif // WITH_LOCKER_I3LOCK_COLOR
struct Command { struct Command {
const char *name; const char *name;
size_t monitor_arg_index; size_t monitor_arg_index;
@ -17,11 +26,47 @@ struct Command {
}; };
static struct Command commands[] = { static struct Command commands[] = {
#ifdef WITH_LOCKER
{ {
.name = "lock", .name = "lock",
.monitor_arg_index = 0, .monitor_arg_index = 0,
#ifdef WITH_LOCKER_I3LOCK
.args = { "i3lock", NULL }, .args = { "i3lock", NULL },
#endif // WITH_LOCKER_I3LOCK
#ifdef WITH_LOCKER_I3LOCK_COLOR
.args = {
"i3lock",
"--insidever-color="COLOR_CLEAR,
"--ringver-color="COLOR_VERIFYING,
"--insidewrong-color="COLOR_CLEAR,
"--ringwrong-color="COLOR_WRONG,
"--inside-color="COLOR_BLANK,
"--ring-color="COLOR_DEFAULT,
"--line-color="COLOR_BLANK,
"--separator-color="COLOR_DEFAULT,
"--verif-color="COLOR_TEXT,
"--wrong-color="COLOR_TEXT,
"--time-color="COLOR_TEXT,
"--date-color="COLOR_TEXT,
"--layout-color="COLOR_TEXT,
"--keyhl-color="COLOR_WRONG,
"--bshl-color="COLOR_WRONG,
"--screen=1",
"--blur=5",
"--clock",
"--indicator",
"--time-str=%H:%M:%S",
"--date-str=%a, %e %b %Y",
"--keylayout=1",
NULL,
},
#endif // WITH_LOCKER_I3LOCK_COLOR
}, },
#endif // WITH_LOCKER
{ {
.name = "menu", .name = "menu",
.monitor_arg_index = 6, .monitor_arg_index = 6,
@ -43,18 +88,18 @@ static struct Command commands[] = {
.monitor_arg_index = 0, .monitor_arg_index = 0,
#ifdef WITH_TERMINAL_ALACRITTY #ifdef WITH_TERMINAL_ALACRITTY
.args = { "alacritty", NULL }, .args = { "alacritty", NULL },
#endif #endif // WITH_TERMINAL_ALACRITTY
#ifdef WITH_TERMINAL_GNOME #ifdef WITH_TERMINAL_GNOME
.args = { "gnome-terminal", "--wait", NULL }, .args = { "gnome-terminal", "--wait", NULL },
#endif #endif // WITH_TERMINAL_GNOME
#ifdef WITH_TERMINAL_ST #ifdef WITH_TERMINAL_ST
.args = { "st", NULL }, .args = { "st", NULL },
#endif #endif // WITH_TERMINAL_ST
#ifdef WITH_TERMINAL_XTERM #ifdef WITH_TERMINAL_XTERM
.args = { "xterm", NULL }, .args = { "xterm", NULL },
#endif #endif // WITH_TERMINAL_XTERM
}, },
#endif #endif // WITH_TERMINAL
{ {
.name = "firefox", .name = "firefox",
.monitor_arg_index = 0, .monitor_arg_index = 0,