i3lock-color

The world's most popular non-default computer lockscreen.
Index Commits Files Refs README LICENSE
commit dc4dee70ae3cffe34b4d638c0380b2713fcb213b
parent 01acfa0a7b24fc18dfc10aa4b1a27123ef969b46
Author: Raymond Li <hi@raymond.li>
Date:   Thu, 27 May 2021 19:51:09 -0400

Redo manpage

Diffstat:
Mi3lock.1 | 391++++++++++++++++++++++++++++++++++++-------------------------------------------
Mi3lock.c | 118++++++++++++++++++++++++++++++++++++++++----------------------------------------
2 files changed, 239 insertions(+), 270 deletions(-)
diff --git a/i3lock.1 b/i3lock.1
@@ -8,7 +8,7 @@
 .fi
 ..
 
-.TH i3lock-color 1 "FEBRUARY 2021" Linux "User Manuals"
+.TH i3lock-color 1 "MAY 2021" Linux "User Manuals"
 
 .SH NAME
 i3lock-color \- improved screen locker
@@ -31,17 +31,19 @@ i3lock-color \- improved screen locker
 .RB [\|\-m\|]
 
 .SH DESCRIPTION
-.B i3lock-color
+.B i3lock\-color
 is a simple screen locker like slock. After starting it, you will see a white
 screen (you can configure the color/an image). You can return to your screen by
 entering your password.
 
-.SH IMPROVEMENTS
+.SH FEATURES
 .IP \[bu] 2
 i3lock forks, so you can combine it with an alias to suspend to RAM
-(run "i3lock && echo mem > /sys/power/state" to get a locked screen after waking up your computer from suspend to RAM)
+(run "i3lock && echo mem > /sys/power/state" to get a locked screen after waking
+up your computer from suspend to RAM)
 .IP \[bu]
-You can specify either a background color or a PNG image which will be displayed while your screen is locked.
+You can specify either a background color or a PNG image which will be displayed
+while your screen is locked.
 .IP \[bu]
 You can specify whether i3lock should bell upon a wrong password.
 .IP \[bu]
@@ -75,12 +77,13 @@ Display the given PNG image instead of a blank screen.
 
 .TP
 .BI \fB\-\-raw= format
-Read the image given by \-\-image as a raw image instead of PNG. The argument is the image's format
-as <width>x<height>:<pixfmt>. The supported pixel formats are:
+Read the image given by \-\-image as a raw image instead of PNG. The argument is
+the image's format as <width>x<height>:<pixfmt>.
+The supported pixel formats are:
 \'native', 'rgb', 'xrgb', 'rgbx', 'bgr', 'xbgr', and 'bgrx'.
 The "native" pixel format expects a pixel as a 32-bit (4-byte) integer in
-the machine's native endianness, with the upper 8 bits unused. Red, green and blue are stored in
-the remaining bits, in that order.
+the machine's native endianness, with the upper 8 bits unused.
+Red, green and blue are stored in the remaining bits, in that order.
 
 .BR Example:
 .Vb 6
@@ -105,19 +108,21 @@ gets you the current screen dimensions in the wxh (e.g. 1920x1080) format.
 
 .TP
 .BI \-c\  rrggbbaa \fR,\ \fB\-\-color= rrggbbaa
-Turn the screen into the given color instead of white. Color must be given in 4-byte
-format: rrggbbaa (i.e. ff0000ff is opaque red).
-Use the last byte for alpha. Setting this below FF (i.e. ff000088) will allow your screen to be shown translucently if you use a compositor (e.g. compton, xcompmgr).
+Turn the screen into the given color instead of white. Color must be given in
+4-byte format: rrggbbaa (i.e. ff0000ff is opaque red).
+Use the last byte for alpha. Setting this below FF (i.e. ff000088) will allow
+your screen to be shown translucently if you use a compositor (e.g. compton,
+xcompmgr).
 
 .TP
 .B \-t, \-\-tiling
-If an image is specified (via \-i) it will display the image tiled all over the screen
-(with a multi-monitor setup, the image is visible on all screens).
+If an image is specified (via \-i) it will display the image tiled all over the
+screen (with a multi-monitor setup, the image is visible on all screens).
 
 .TP
 .B \-C, \-\-centered
-If an image is specified (via \-i) it will display the image centered on the screen
-(with a multi-monitor setup, the image is visible on all screens).
+If an image is specified (via \-i) it will display the image centered on the
+screen (with a multi-monitor setup, the image is visible on all screens).
 
 .TP
 .BI \-p\  win|default \fR,\ \fB\-\-pointer= win|default
@@ -130,12 +135,11 @@ friends by using a screenshot of a Windows desktop as a locking-screen).
 
 .TP
 .B \-e, \-\-ignore\-empty\-password
-When an empty password is provided by the user, do not validate
-it. Without this option, the empty password will be provided to PAM
-and, if invalid, the user will have to wait a few seconds before
-another try. This can be useful if the XF86ScreenSaver key is used to
-put a laptop to sleep and bounce on resume or if you happen to wake up
-your computer with the enter key.
+When an empty password is provided by the user, do not validate it. Without this
+option, the empty password will be provided to PAM and, if invalid, the user
+will have to wait a few seconds before another try. This can be useful if the
+XF86ScreenSaver key is used to put a laptop to sleep and bounce on resume or if
+you happen to wake up your computer with the enter key.
 
 .TP
 .B \-f, \-\-show\-failed\-attempts
@@ -146,158 +150,128 @@ Show the number of failed attempts, if any.
 Enables debug logging.
 Note, that this will log the password used for authentication to stdout.
 
-.SH i3lock-color options
+.SH i3lock-color OPTIONS
 .TP
 .B \-S number, \-\-screen=number
-Specifies which display to draw the unlock indicator and clock on. By default, they'll be placed on every screen.
+Specifies which display to draw the unlock indicator and clock on. By default,
+they'll be placed on every screen.
 Note that this number is zero indexed. The ordering is dependent on libxinerama.
 
 .TP
 .B \-B sigma, \-\-blur=sigma
 Captures the screen and blurs it using the given sigma (radius).
 Images may still be overlaid over the blurred screenshot.
-As an alternative to this option, you could specify a translucent background color
-(-c option) with a fully transparent or translucent color, and use a compositor to perform blurring (e.g. compton, picom).
-
-.TP
-.B \-\-indicator
-Forces the indicator to always be visible, instead of only showing on activity.
-
-.TP
-.B \-\-keylayout mode
-Displays the keylayout. Positionable similar to date, time, and indicator. Modes are as follows:
-.RS
-.RS
-0 - Displays the full string returned by the query, i.e. "English (US)"
-1 - Displays up until the first parenthesis, i.e. "English"
-2 - Displays just the contents of the parenthesis, i.e. "US"
-.RE
-.RE
+As an alternative to this option, you could specify a translucent background
+color (-c option) with a fully transparent or translucent color, and use a
+compositor to perform blurring (e.g. compton, picom).
 
 .TP
 .B \-k, \-\-clock, \-\-force\-clock
-Displays the clock. \-\-force\-clock also displays the clock when there's indicator text
-(useful for when the clock is not positioned with the indicator).
+Displays the clock. \-\-force\-clock also displays the clock when there's
+indicator text (useful for when the clock is not positioned with the indicator).
 
 .TP
-.B \-\-composite
-Some compositors have problems with i3lock trying to render over them, so this argument is disabled by default.
-However, some will work properly with it, so it's been left enabled.
-
-.TP
-.B \-\-pass\-media\-keys
-Allow the following keys to be used while the screen is locked by passing them through:
-XF86AudioPlay, XF86AudioPause, XF86AudioStop, XF86AudioPrev, XF86AudioNext, XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume.
-
-.TP
-.B \-\-pass\-screen\-keys
-Allow the following keys to be used while the screen is locked by passing them through:
-XF86MonBrightnessUp, XF86MonBrightnessDown.
-
-.TP
-.B \-\-pass\-power\-keys
-Allow the following keys to be used while the screen is locked by passing them through:
-XF86PowerDown, XF86PowerOff, XF86Sleep.
-
-.TP
-.B \-\-pass\-volume\-keys
-Allow the following keys to be used while the screen is locked by passing them through:
-XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume.
+.B \-\-indicator
+Forces the indicator to always be visible, instead of only showing on activity.
 
 .TP
-.B \-\-insidevercolor=rrggbbaa
-Sets the interior circle color while the password is being verified.
+.B \-\-radius
+The radius of the circle. Defaults to 90.
 
 .TP
-.B \-\-insidewrongcolor=rrggbbaa
-Sets the interior circle color for during flash for an incorrect password.
+.B \-\-ring\-width
+The width of the ring unlock indicator. Defaults to 7.0.
 
 .TP
-.B \-\-insidecolor=rrggbbaa
-Sets the default "resting" color for the interior circle.
+.B \-\-{inside, ring}\-color=rrggbbaa
+Sets the idle color for the interior circle and ring.
 
 .TP
-.B \-\-ringvercolor=rrggbbaa
-Sets the ring color while the password is being verified.
+.B \-\-{inside, ring}ver\-color=rrggbbaa
+Sets the interior circle and ring color while the password is being verified.
 
 .TP
-.B \-\-ringwrongcolor=rrggbbaa
-Sets the ring color during the flash for an incorrect password.
+.B \-\-{inside, ring}wrong\-color=rrggbbaa
+Sets the interior circle and ring color for during incorrect password flashes.
 
 .TP
-.B \-\-ringcolor=rrggbbaa
-Sets the default ring color.
+.B \-\-line\-color=rrggbbaa
+Sets the color for the line separating the inside circle and the outer ring.
 
 .TP
-.B \-\-linecolor=rrggbbaa
-Sets the color for the line separating the inside circle, and the outer ring.
+.B \-\-line\-uses\-{inside, ring}
+Overrides \-\-linecolor. The line will match the {inside, ring} color.
+Note: these two options conflict with each other.
 
 .TP
-.B \-\-line\-uses\-ring
-Conflicts with \-\-line\-uses\-inside. Overrides \-\-linecolor. The line will match the ring color.
+.B \-\-{key, bs}hl\-color=rrggbbaa
+Sets the color of highlight arcs on the ring upon keypress and backspace.
 
 .TP
-.B \-\-line\-uses\-inside
-Conflicts with \-\-line\-uses\-ring. Overrides \-\-linecolor; the line will match the inside color.
+.B \-\-separator\-color=rrggbbaa
+Sets the color of the seperators at both ends of the highlight arcs on the ring.
 
 .TP
-.B \-\-keyhlcolor=rrggbbaa
-Sets the color of the ring 'highlight' strokes that appear upon keypress.
+.B \-\-{verif, wrong}\-color=rrggbbaa
+Sets the color of the status text while verifying and when password is wrong.
 
 .TP
-.B \-\-bshlcolor=rrggbbaa
-Sets the color of the ring 'highlight' strokes that appear upon backspace.
+.B \-\-{layout, time, date, greeter}\-color=rrggbbaa
+Sets text colors.
 
 .TP
-.B \-\-separatorcolor=rrggbbaa
-Sets the color of the 'separtor', which is at both ends of the ring highlights.
+.B \-\-time\-str="%H:%M:%S"
+Sets the format used for generating the time string.
+See strftime(3) for a full list of format specifiers.
 
 .TP
-.B \-\-verifcolor=rrggbbaa
-Sets the color of the status text while verifying.
+.B \-\-date\-str="%A, %m %Y"
+Sets the format used for generating the date string.
 
 .TP
-.B \-\-wrongcolor=rrggbbaa
-Sets the color of the status text when "wrong".
+.B \-\-verif\-text="verifying…"
+Sets the string to be shown while verifying the password/input/key/etc.
 
 .TP
-.B \-\-layoutcolor=rrggbbaa
-Sets the color of the keyboard layout text.
+.B \-\-wrong\-text="wrong!"
+Sets the string to be shown upon entering an incorrect password.
 
 .TP
-.B \-\-indpos="x position:y position"
-Sets the position for the unlock indicator. Valid variables include:
+.B \-\-keylayout mode
+Displays the keylayout. Positionable similar to date, time, and indicator.
+Modes are as follows:
 .RS
 .RS
-x - x position of the current display. Corresponds to the leftmost row of pixels on that display.
-y - y position of the current display. Corresponds to the topmost row of pixels on that display.
-w - width of the current display.
-h - height of the current display.
-r - the unlock indicator radius.
+0 - Displays the full string returned by the query, i.e. "English (US)"
+1 - Displays up until the first parenthesis, i.e. "English"
+2 - Displays just the contents of the parenthesis, i.e. "US"
 .RE
 .RE
 
 .TP
-.B \-\-timecolor=rrggbbaa
-Sets the color of the time in the clock.
+.B \-\-noinput\-text="no input"
+Sets the string to be shown upon pressing backspace without anything to delete.
 
 .TP
-.B \-\-timestr="%H:%M:%S"
-Sets the format used for generating the time string. See strftime(3) for a full list of format specifiers.
+.B \-\-lock\-text="locking…"
+Sets the string to be shown while acquiring pointer and keyboard focus.
 
 .TP
-.B \-\-timepos="x position:y position"
-Sets the position for the time string. All the variables from \-\-indpos may be used, in addition to:
-.RS
-.RS
-ix - the x value of the indicator on the current display.
-iy - the y value of the indicator on the current display.
-.RE
-.RE
+.B \-\-lockfailed\-text="lock failed!"
+Sets the string to be shown after failing to acquire pointer and keyboard focus.
 
 .TP
-.B \-\-time\-align, \-\-date\-align, \-\-layout\-align, \-\-verif\-align, \-\-wrong\-align, \-\-modif\-align, \-\-greeter\-align
-Sets the text alignment of the time, date, keylayout, verification text, wrong text, modifier text and greeter text.
+.B \-\-greeter\-text=""
+Sets the greeter text.
+
+.TP
+.B \-\-no\-modkey\-text
+Hides the modkey indicator (Num, Caps Lock ...)
+
+.TP
+.B \-\-{time, date, layout, verif, wrong, modif, greeter}\-align
+Sets the text alignment of the time, date, keylayout, verification, wrong,
+modifier and greeter texts.
 .RS
 .RS
 0 - centered (default)
@@ -307,100 +281,85 @@ Sets the text alignment of the time, date, keylayout, verification text, wrong t
 .RE
 
 .TP
-.B \-\-datecolor=rrggbbaa
-Sets the color of the date in the clock.
-
-.TP
-.B \-\-datestr="%A, %m %Y"
-Sets the format used for generating the date string. See strftime(3) for a full list of format specifiers.
+.B \-\-{time, date, layout, verif, wrong, greeter}outline\-color=rrggbbaa
+Sets the color of the outlines.
 
 .TP
 .B \-\-{time, date, layout, verif, wrong, greeter}\-font=sans\-serif
 Sets the font used to render various strings.
 
 .TP
-.B \-\-{time, date, layout, verif, wrong, greeter}size=number
+.B \-\-{time, date, layout, verif, wrong, greeter}\-size=number
 Sets the font size used to render various strings.
 
 .TP
-.B \-\-{time, date, layout, verif, wrong, greeter}outlinecolor=rrggbbaa
-Sets the color of the outline.
-
-.TP
-.B \-\-{time, date, layout, verif, wrong, greeter, modifier}outlinewidth=number
+.B \-\-{time, date, layout, verif, wrong, greeter, modifier}outline\-width=number
 Sets the width of the outline.
 
 .TP
-.B \-\-datepos="x position:y position"
-Sets the position for the date string. All the variables from \-\-indpos and \-\-timepos may be used, in addition to:
+.B \-\-ind\-pos="x\-position:y\-position"
+Sets the position for the unlock indicator. Valid variables include:
 .RS
 .RS
-tx - the computed x value of the timestring, for the current display.
-ty - the computed y value of the timestring, for the current display.
+x - x position of the current display.
+    Corresponds to the leftmost column of pixels on that display.
+y - y position of the current display.
+    Corresponds to the topmost row of pixels on that display.
+w - width of the current display.
+h - height of the current display.
+r - the unlock indicator radius.
 .RE
 .RE
 
 .TP
-.B \-\-greetertext="text"
-Sets the greeter text. Defaults to "".
-
-.TP
-.B \-\-greetercolor=rrggbbaa
-Sets the color of the greeter text.
-
-.TP
-.B \-\-greeterpos="x position:y position"
-Sets the position for the greeter string. All the variables from \-\-indpos and \-\-timepos may be used.
-
-.TP
-.B \-\-refresh\-rate=seconds\-as\-double
-The refresh rate of the indicator, given in seconds. This should automatically align itself, but is somewhat buggy currently.
-Values less than one will work, but may result in poor system performance.
-
-.TP
-.B \-\-veriftext="text"
-Sets the string to be shown while verifying the password/input/key/etc. Defaults to "verifying…".
-
-.TP
-.B \-\-wrongtext="text"
-Sets the string to be shown upon entering an incorrect password. Defaults to "wrong!".
-
-.TP
-.B \-\-noinputtext="text"
-Sets the string to be shown upon pressing backspace without anything to delete. Defaults to "no input".
-
-.TP
-.B \-\-locktext="text"
-Sets the string to be shown while acquiring pointer and keyboard focus. Defaults to "locking…".
-
-.TP
-.B \-\-lockfailedtext="text"
-Sets the string to be shown after failing to acquire pointer and keyboard focus. Defaults to "lock failed!".
+.B \-\-time\-pos="x\-position:y\-position"
+Sets the position for the time string. All the variables from \-\-indpos may be
+used, in addition to:
+.RS
+.RS
+ix - the x value of the indicator on the current display.
+iy - the y value of the indicator on the current display.
+.RE
+.RE
 
 .TP
-.B \-\-no-modkeytext
-Hides the modkey indicator (Num, Caps Lock ...)
+.B \-\-date\-pos="x\-position:y\-position"
+Sets the position for the date string. All the variables from \-\-indpos and
+\-\-timepos may be used, in addition to:
+.RS
+.RS
+tx - the computed x value of the timestring, for the current display.
+ty - the computed y value of the timestring, for the current display.
+.RE
+.RE
 
 .TP
-.B \-\-radius
-The radius of the circle. Defaults to 90.
+.B \-\-greeter\-pos="x\-position:y\-position"
+Sets the position for the greeter string. All the variables from \-\-indpos and
+\-\-timepos may be used.
 
 .TP
-.B \-\-ring\-width
-The width of the ring unlock indicator. Defaults to 7.0.
+.B \-\-pass\-{media, screen, power, volume}\-keys
+Allow the following keys to be used normally while the screen is locked by
+passing them through:
+.RS
+.RS
+media - XF86AudioPlay, XF86AudioPause, XF86AudioStop, XF86AudioPrev,
+        XF86AudioNext, XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume
+screen - XF86MonBrightnessUp, XF86MonBrightnessDown
+power - XF86PowerDown, XF86PowerOff, XF86Sleep
+volume - XF86AudioMute, XF86AudioLowerVolume, XF86AudioRaiseVolume
+.RE
+.RE
 
 .TP
 .B \-\-bar\-indicator
-Replaces the usual ring indicator with a bar indicator, with a variety of options.
-
-.TP
-.B \-\-redraw\-thread
-Starts a separate thread for redrawing the screen. Potentially worse for security, but makes the bar indicator still do
-its usual periodic redraws when PAM is authenticating.
+Replaces the usual ring indicator with a bar indicator. Comes with perks.
 
 .TP
 .B \-\-bar\-direction={0, 1, 2}
-Sets the direction the bars grow in. 0 is the default (downwards, or rightwards, depending on the bar orientation). 1 is the reverse, and 2 is both.
+Sets the direction the bars grow in. 0 is the default (downwards, or rightwards,
+depending on the bar orientation). 1 is the reverse, and 2 is both.
 
 .TP
 .B \-\-bar\-width=15
@@ -410,22 +369,24 @@ Sets the width of the minibars in the bar.
 
 .TP
 .B \-\-bar\-orientation={vertical,horizontal}
-Sets whether the bar is vertically or horizontally oriented. Defaults to horizontal.
+Sets whether the bar is vertically or horizontally oriented.
+Defaults to horizontal.
 
 .TP
 .B \-\-bar\-step
-Sets the step that each bar decreases by when a key is pressed. A random bar is set to its max height,
-and then each neighbor is set to (height - step*distance).
+Sets the step that each bar decreases by when a key is pressed. A random bar is
+set to its max height, then each neighbor is set to (height - step*distance).
 
 .TP
 .B \-\-bar\-max\-height
-The maximum height a bar can get to. When a key is pressed, a random bar is set to this value,
-and then its neighbors are set to its height, minus the step value.
+The maximum height a bar can get to. When a key is pressed, a random bar is set
+to this value, then its neighbors are set to its height, minus the step value.
 
 .TP
 .B \-\-bar\-base\-width
 The thickness of the "base" bar that all the bars originate from.
-This bar also takes on the ring verif and wrong colors to give authentication feedback.
+This bar also takes on the ring verification and wrong colors to give
+authentication feedback.
 
 .TP
 .B \-\-bar\-color
@@ -436,10 +397,10 @@ Sets the default color of the bar base.
 The value by which the bars decrease each time the screen is redrawn.
 
 .TP
-.B \-\-bar\-position
-Works similarly to the time/date/indicator expressions. If only one number is provided, this sets
-the vertical offset from the top or left edge. If two numbers are provided in the form of x:y, sets
-the starting position of the bar.
+.B \-\-bar\-pos
+Works similarly to the time/date/indicator expressions. If only one number is
+provided, this sets the vertical offset from the top or left edge. If two
+numbers are provided in the form of x:y, sets the starting position of the bar.
 
 .TP
 .B \-\-bar\-count
@@ -450,28 +411,36 @@ Sets the number of minibars to draw on each screen.
 The total width of the bar. Can be an expression.
 
 .TP
+.B \-\-redraw\-thread
+Starts a separate thread for redrawing the screen. Potentially worse from a
+security standpoint, but makes the bar indicator still do its usual periodic
+redraws when PAM is authenticating.
+
+.TP
+.B \-\-refresh\-rate=seconds\-as\-double
+The refresh rate of the indicator, given in seconds. This should automatically
+align itself, but is somewhat buggy currently.
+Values less than one will work, but may result in poor system performance.
+
+.TP
+.B \-\-composite
+Some compositors have problems with i3lock trying to render over them, so this
+argument is disabled by default. However, some will work properly with it, so
+it's been left enabled.
+
+.TP
 .B \-\-no\-verify
 Do not verify the password entered by the user and unlock immediately.
-.B Use only for quickly testing new configurations and remember to remove to actually lock your screen!
-
-.SH DPMS
-The \-d (\-\-dpms) option was removed from i3lock in version 2.8. There were
-plenty of use-cases that were not properly addressed, and plenty of bugs
-surrounding that feature. While features are not normally removed from i3 and
-its tools, we felt the need to make an exception in this case.
-Users who wish to explicitly enable DPMS only when their screen is locked can
-use a wrapper script around i3lock like the following:
-.Vb 6
-\&    #!/bin/sh
-\&    revert() {
-\&      xset dpms 0 0 0
-\&    }
-\&    trap revert HUP INT TERM
-\&    xset +dpms dpms 5 5 5
-\&    i3lock -n
-\&    revert
-.Ve
-The \-I (\-\-inactivity\-timeout=seconds) was removed because it only makes sense with DPMS.
+.B Use only for quickly testing new configurations and remember to remove to
+.B actually lock your screen!
+
+.TP
+.B \-\-slideshow\-interval
+The interval to wait until switching to the next image.
+
+.TP
+.B \-\-slideshow\-random\-selection
+Randomize the order of the images.
 
 .SH SEE ALSO
 .IR xautolock(1)
diff --git a/i3lock.c b/i3lock.c
@@ -3,7 +3,7 @@
  *
  * © 2010 Michael Stapelberg
  * © 2015 Cassandra Fox
- * © 2020 Raymond Li
+ * © 2021 Raymond Li
  *
  * See LICENSE for licensing information
  *
@@ -1436,38 +1436,38 @@ int main(int argc, char *argv[]) {
         {"ignore-empty-password", no_argument, NULL, 'e'},
         {"inactivity-timeout", required_argument, NULL, 'I'},
         {"show-failed-attempts", no_argument, NULL, 'f'},
+        {"screen", required_argument, NULL, 'S'},
+        {"blur", required_argument, NULL, 'B'},
 
         // options for unlock indicator colors
-        {"insidevercolor", required_argument, NULL, 300},
-        {"insidewrongcolor", required_argument, NULL, 301},
-        {"insidecolor", required_argument, NULL, 302},
-        {"ringvercolor", required_argument, NULL, 303},
-        {"ringwrongcolor", required_argument, NULL, 304},
-        {"ringcolor", required_argument, NULL, 305},
-        {"linecolor", required_argument, NULL, 306},
-        {"verifcolor", required_argument, NULL, 307},
-        {"wrongcolor", required_argument, NULL, 308},
-        {"layoutcolor", required_argument, NULL, 309},
-        {"timecolor", required_argument, NULL, 310},
-        {"datecolor", required_argument, NULL, 311},
-        {"keyhlcolor", required_argument, NULL, 312},
-        {"bshlcolor", required_argument, NULL, 313},
-        {"separatorcolor", required_argument, NULL, 314},
-        {"greetercolor", required_argument, NULL, 315},
+        {"insidever-color", required_argument, NULL, 300},
+        {"insidewrong-color", required_argument, NULL, 301},
+        {"inside-color", required_argument, NULL, 302},
+        {"ringver-color", required_argument, NULL, 303},
+        {"ringwrong-color", required_argument, NULL, 304},
+        {"ring-color", required_argument, NULL, 305},
+        {"line-color", required_argument, NULL, 306},
+        {"verif-color", required_argument, NULL, 307},
+        {"wrong-color", required_argument, NULL, 308},
+        {"layout-color", required_argument, NULL, 309},
+        {"time-color", required_argument, NULL, 310},
+        {"date-color", required_argument, NULL, 311},
+        {"keyhl-color", required_argument, NULL, 312},
+        {"bshl-color", required_argument, NULL, 313},
+        {"separator-color", required_argument, NULL, 314},
+        {"greeter-color", required_argument, NULL, 315},
 
         // text outline colors
-        {"verifoutlinecolor", required_argument, NULL, 316},
-        {"wrongoutlinecolor", required_argument, NULL, 317},
-        {"layoutoutlinecolor", required_argument, NULL, 318},
-        {"timeoutlinecolor", required_argument, NULL, 319},
-        {"dateoutlinecolor", required_argument, NULL, 320},
-        {"greeteroutlinecolor", required_argument, NULL, 321},
+        {"verifoutline-color", required_argument, NULL, 316},
+        {"wrongoutline-color", required_argument, NULL, 317},
+        {"layoutoutline-color", required_argument, NULL, 318},
+        {"timeoutline-color", required_argument, NULL, 319},
+        {"dateoutline-color", required_argument, NULL, 320},
+        {"greeteroutline-color", required_argument, NULL, 321},
 
         {"line-uses-ring", no_argument, NULL, 'r'},
         {"line-uses-inside", no_argument, NULL, 's'},
 
-        {"screen", required_argument, NULL, 'S'},
-        {"blur", required_argument, NULL, 'B'},
         {"clock", no_argument, NULL, 'k'},
         {"force-clock", no_argument, NULL, 400},
         {"indicator", no_argument, NULL, 401},
@@ -1484,16 +1484,16 @@ int main(int argc, char *argv[]) {
         {"greeter-align", required_argument, NULL, 506},
 
         // string stuff
-        {"timestr", required_argument, NULL, 510},
-        {"datestr", required_argument, NULL, 511},
-        {"veriftext", required_argument, NULL, 512},
-        {"wrongtext", required_argument, NULL, 513},
+        {"time-str", required_argument, NULL, 510},
+        {"date-str", required_argument, NULL, 511},
+        {"verif-text", required_argument, NULL, 512},
+        {"wrong-text", required_argument, NULL, 513},
         {"keylayout", required_argument, NULL, 514},
-        {"noinputtext", required_argument, NULL, 515},
-        {"locktext", required_argument, NULL, 516},
-        {"lockfailedtext", required_argument, NULL, 517},
-        {"greetertext", required_argument, NULL, 518},
-        {"no-modkeytext", no_argument, NULL, 519},
+        {"noinput-text", required_argument, NULL, 515},
+        {"lock-text", required_argument, NULL, 516},
+        {"lockfailed-text", required_argument, NULL, 517},
+        {"greeter-text", required_argument, NULL, 518},
+        {"no-modkey-text", no_argument, NULL, 519},
 
         // fonts
         {"time-font", required_argument, NULL, 520},
@@ -1504,33 +1504,33 @@ int main(int argc, char *argv[]) {
         {"greeter-font", required_argument, NULL, 525},
 
         // text size
-        {"timesize", required_argument, NULL, 530},
-        {"datesize", required_argument, NULL, 531},
-        {"verifsize", required_argument, NULL, 532},
-        {"wrongsize", required_argument, NULL, 533},
-        {"layoutsize", required_argument, NULL, 534},
-        {"modsize", required_argument, NULL, 535},
-        {"greetersize", required_argument, NULL, 536},
+        {"time-size", required_argument, NULL, 530},
+        {"date-size", required_argument, NULL, 531},
+        {"verif-size", required_argument, NULL, 532},
+        {"wrong-size", required_argument, NULL, 533},
+        {"layout-size", required_argument, NULL, 534},
+        {"modif-size", required_argument, NULL, 535},
+        {"greeter-size", required_argument, NULL, 536},
 
         // text/indicator positioning
-        {"timepos", required_argument, NULL, 540},
-        {"datepos", required_argument, NULL, 541},
-        {"verifpos", required_argument, NULL, 542},
-        {"wrongpos", required_argument, NULL, 543},
-        {"layoutpos", required_argument, NULL, 544},
-        {"statuspos", required_argument, NULL, 545},
-        {"modifpos", required_argument, NULL, 546},
-        {"indpos", required_argument, NULL, 547},
-        {"greeterpos", required_argument, NULL, 548},
+        {"time-pos", required_argument, NULL, 540},
+        {"date-pos", required_argument, NULL, 541},
+        {"verif-pos", required_argument, NULL, 542},
+        {"wrong-pos", required_argument, NULL, 543},
+        {"layout-pos", required_argument, NULL, 544},
+        {"status-pos", required_argument, NULL, 545},
+        {"modif-pos", required_argument, NULL, 546},
+        {"ind-pos", required_argument, NULL, 547},
+        {"greeter-pos", required_argument, NULL, 548},
 
         // text outline width
-        {"timeoutlinewidth", required_argument, NULL, 560},
-        {"dateoutlinewidth", required_argument, NULL, 561},
-        {"verifoutlinewidth", required_argument, NULL, 562},
-        {"wrongoutlinewidth", required_argument, NULL, 563},
-        {"modifieroutlinewidth", required_argument, NULL, 564},
-        {"layoutoutlinewidth", required_argument, NULL, 565},
-        {"greeteroutlinewidth", required_argument, NULL, 566},
+        {"timeoutline-width", required_argument, NULL, 560},
+        {"dateoutline-width", required_argument, NULL, 561},
+        {"verifoutline-width", required_argument, NULL, 562},
+        {"wrongoutline-width", required_argument, NULL, 563},
+        {"modifieroutline-width", required_argument, NULL, 564},
+        {"layoutoutline-width", required_argument, NULL, 565},
+        {"greeteroutline-width", required_argument, NULL, 566},
 
         // pass keys
         {"pass-media-keys", no_argument, NULL, 601},
@@ -1548,7 +1548,7 @@ int main(int argc, char *argv[]) {
         {"bar-base-width", required_argument, NULL, 706},
         {"bar-color", required_argument, NULL, 707},
         {"bar-periodic-step", required_argument, NULL, 708},
-        {"bar-position", required_argument, NULL, 709},
+        {"bar-pos", required_argument, NULL, 709},
         {"bar-count", required_argument, NULL, 710},
         {"bar-total-width", required_argument, NULL, 711},
 
@@ -1599,7 +1599,7 @@ int main(int argc, char *argv[]) {
     while ((o = getopt_long(argc, argv, optstring, longopts, &longoptind)) != -1) {
         switch (o) {
             case 'v':
-                errx(EXIT_SUCCESS, "version " I3LOCK_VERSION " © 2010 Michael Stapelberg, © 2015 Cassandra Fox, © 2020 Raymond Li");
+                errx(EXIT_SUCCESS, "version " I3LOCK_VERSION " © 2010 Michael Stapelberg, © 2015 Cassandra Fox, © 2021 Raymond Li");
             case 'n':
                 dont_fork = true;
                 break;