# Ly supports 24-bit true color with styling, which means each color is a 32-bit value.
# The format is 0xSSRRGGBB, where SS is the styling, RR is red, GG is green, and BB is blue.
# Here are the possible styling options:
# TB_BOLD      0x01000000
# TB_UNDERLINE 0x02000000
# TB_REVERSE   0x04000000
# TB_ITALIC    0x08000000
# TB_BLINK     0x10000000
# TB_HI_BLACK  0x20000000
# TB_BRIGHT    0x40000000
# TB_DIM       0x80000000
# Programmatically, you'd apply them using the bitwise OR operator (|), but because Ly's
# configuration doesn't support using it, you have to manually compute the color value.
# Note that, if you want to use the default color value of the terminal, you can use the
# special value 0x00000000. This means that, if you want to use black, you *must* use
# the styling option TB_HI_BLACK (the RGB values are ignored when using this option).

# Allow empty password or not when authenticating
allow_empty_password = true

# The active animation
# none     -> Nothing
# doom     -> PSX DOOM fire
# matrix   -> CMatrix
# colormix -> Color mixing shader
# gameoflife -> John Conway's Game of Life
# dur_file -> .dur file format (https://github.com/cmang/durdraw/tree/master)
animation = none

# Delay between each animation frame in milliseconds
animation_frame_delay = 5

# Stop the animation after some time
# 0 -> Run forever
# 1..2e12 -> Stop the animation after this many seconds
animation_timeout_sec = 0

# The character used to mask the password
# You can either type it directly as a UTF-8 character (like *), or use a UTF-32
# codepoint (for example 0x2022 for a bullet point)
# If null, the password will be hidden
# Note: you can use a # by escaping it like so: \#
asterisk = *

# The number of failed authentications before a special animation is played... ;)
# If set to 0, the animation will never be played
auth_fails = 10

# Identifier for battery whose charge to display at top left
# Primary battery is usually BAT0 or BAT1
# If set to null, battery status won't be shown
battery_id = null

# Automatic login configuration
# This feature allows Ly to automatically log in a user without password prompt.
# IMPORTANT: Both auto_login_user and auto_login_session must be set for this to work.
# Autologin only happens once at startup - it won't re-trigger after logout.

# PAM service name to use for automatic login
# The default service (ly-autologin) uses pam_permit to allow login without password
# The appropriate platform-specific PAM configuration (ly-autologin) will be used automatically
auto_login_service = ly-autologin

# Session name to launch automatically
# To find available session names, check the .desktop files in:
#   - /usr/share/xsessions/ (for X11 sessions)
#   - /usr/share/wayland-sessions/ (for Wayland sessions)
# Use the filename without .desktop extension, the Name field inside the file or the value of the DesktopNames field
# Examples: "i3", "sway", "gnome", "plasma", "xfce"
# If null, automatic login is disabled
auto_login_session = null

# Username to automatically log in
# Must be a valid user on the system
# If null, automatic login is disabled
auto_login_user = null

# Background color id
bg = 0x00000000

# Change the state and language of the big clock
# none -> Disabled (default)
# en   -> English
# fa   -> Farsi
bigclock = none

# Set bigclock to 12-hour notation.
bigclock_12hr = false

# Set bigclock to show the seconds.
bigclock_seconds = false

# Blank main box background
# Setting to false will make it transparent
blank_box = true

# Border foreground color id
border_fg = 0x00FFFFFF

# Title to show at the top of the main box
# If set to null, none will be shown
box_title = null

# Brightness decrease command
brightness_down_cmd = /usr/bin/brightnessctl -q -n s 10%-

# Brightness decrease key combination, or null to disable
brightness_down_key = F5

# Brightness increase command
brightness_up_cmd = /usr/bin/brightnessctl -q -n s +10%

# Brightness increase key combination, or null to disable
brightness_up_key = F6

# Erase password input on failure
clear_password = true

# Format string for clock in top right corner (see strftime specification). Example: %c
# If null, the clock won't be shown
clock = %A %d/%m/%Y %r

# CMatrix animation foreground color id
cmatrix_fg = 0x0000FF00

# CMatrix animation character string head color id
cmatrix_head_col = 0x01FFFFFF

# CMatrix animation minimum codepoint. It uses a 16-bit integer
# For Japanese characters for example, you can use 0x3000 here
cmatrix_min_codepoint = 0x21

# CMatrix animation maximum codepoint. It uses a 16-bit integer
# For Japanese characters for example, you can use 0x30FF here
cmatrix_max_codepoint = 0x7B

# Color mixing animation first color id
colormix_col1 = 0x00FF0000

# Color mixing animation second color id
colormix_col2 = 0x000000FF

# Color mixing animation third color id
colormix_col3 = 0x20000000

# For custom binds: the horizontal limit in characters for each
# line of custom binds before moving on to the next.
# If null, defaults to the width of the terminal instead.
custom_bind_width = null

# Custom sessions directory
# You can specify multiple directories,
# e.g. /etc/ly/custom-sessions:/usr/share/custom-sessions
custom_sessions = /etc/ly/custom-sessions

# Input box active by default on startup
# Available inputs: info_line, session, login, password
default_input = password

# DOOM animation fire height (1 thru 9)
doom_fire_height = 6

# DOOM animation fire spread (0 thru 4)
doom_fire_spread = 2

# DOOM animation custom top color (low intensity flames)
doom_top_color = 0x009F2707

# DOOM animation custom middle color (medium intensity flames)
doom_middle_color = 0x00C78F17

# DOOM animation custom bottom color (high intensity flames)
doom_bottom_color = 0x00FFFFFF

# Dur file path
dur_file_path = /etc/ly/example.dur

# Dur file alignment
# The dur file can be aligned with a direction and centered easily with the flags below
# Available inputs: topleft, topcenter, topright, centerleft, center, centerright, bottomleft, bottomcenter, bottomright
dur_offset_alignment = center

# Dur offset x direction (value is added to the current position determined by alignment, negatives are supported)
dur_x_offset = 0

# Dur offset y direction (value is added to the current position determined by alignment, negatives are supported)
dur_y_offset = 0

# Set margin to the edges of the DM (useful for curved monitors)
edge_margin = 0

# Error background color id
error_bg = 0x00000000

# Error foreground color id
# Default is red and bold
error_fg = 0x01FF0000

# Foreground color id
fg = 0x00FFFFFF

# Render true colors (if supported)
# If false, output will be in eight-color mode
# All eight-color mode color codes:
# TB_DEFAULT              0x0000
# TB_BLACK                0x0001
# TB_RED                  0x0002
# TB_GREEN                0x0003
# TB_YELLOW               0x0004
# TB_BLUE                 0x0005
# TB_MAGENTA              0x0006
# TB_CYAN                 0x0007
# TB_WHITE                0x0008
# If full color is off, the styling options still work. The colors are
# always 32-bit values with the styling in the most significant byte.
# Note: If using the dur_file animation option and the dur file's color range
# is saved as 256 with this option disabled, the file will not be drawn.
full_color = true

# Game of Life entropy interval (0 = disabled, >0 = add entropy every N generations)
# 0 -> Pure Conway's Game of Life (will eventually stabilize)
# 10 -> Add entropy every 10 generations (recommended for continuous activity)
# 50+ -> Less frequent entropy for more natural evolution
gameoflife_entropy_interval = 10

# Game of Life animation foreground color id
gameoflife_fg = 0x0000FF00

# Game of Life frame delay (lower = faster animation, higher = slower)
# 1-3 -> Very fast animation
# 6 -> Default smooth animation speed
# 10+ -> Slower, more contemplative speed
gameoflife_frame_delay = 6

# Game of Life initial cell density (0.0 to 1.0)
# 0.1 -> Sparse, minimal activity
# 0.4 -> Balanced activity (recommended)
# 0.7+ -> Dense, chaotic patterns
gameoflife_initial_density = 0.4

# Command executed when pressing hibernate key (can be null)
hibernate_cmd = null

# Specifies the key combination used for hibernate
hibernate_key = F4

# Remove main box borders
hide_borders = false

# Remove power management command hints
hide_key_hints = false

# Remove keyboard lock states from the top right corner
hide_keyboard_locks = false

# Remove version number from the top left corner
hide_version_string = false

# Command executed when no input is detected for a certain time
# If null, no command will be executed
inactivity_cmd = null

# Executes a command after a certain amount of seconds
inactivity_delay = 0

# Initial text to show on the info line
# If set to null, the info line defaults to the hostname
initial_info_text = null

# Input boxes length
input_len = 34

# Active language
# Available languages are found in /etc/ly/lang/
lang = en

# Command executed when logging in
# If null, no command will be executed
# Important: the code itself must end with `exec "$@"` in order to launch the session!
# You can also set environment variables in there, they'll persist until logout
login_cmd = null

# Path for login.defs file (used for listing all local users on the system on
# Linux)
login_defs_path = /etc/login.defs

# Command executed when logging out
# If null, no command will be executed
# Important: the session will already be terminated when this command is executed, so
# no need to add `exec "$@"` at the end
logout_cmd = null

# General log file path
ly_log = /var/log/ly.log

# Main box horizontal margin
margin_box_h = 2

# Main box vertical margin
margin_box_v = 1

# Set numlock on/off at startup
numlock = true

# Default path
# If null, ly doesn't set a path
path = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# Command executed when pressing restart_key
restart_cmd = /sbin/shutdown -r now

# Specifies the key combination used for restart
restart_key = F2

# Save the current desktop and login as defaults, and load them on startup
save = true

# Service name (set to ly to use the provided pam config file)
service_name = ly

# Session log file path
# This will contain stdout and stderr of Wayland sessions
# By default it's saved in the user's home directory
# Important: due to technical limitations, X11, shell sessions as well as
# launching session via KMSCON aren't supported, which means you won't get any
# logs from those sessions.
# If null, no session log will be created
session_log = .local/state/ly-session.log

# Setup command
setup_cmd = /etc/ly/setup.sh

# Show the shell session in the session list
# If false, the shell session will be hidden
shell = true

# Specifies the key combination used for showing the password
show_password_key = F7

# Display the active TTY number (e.g. tty3) to the right of the clock in the top right corner
# If the clock is disabled, the TTY label occupies the top right corner on its own
# If false, the TTY number will not be shown
show_tty = true

# Command executed when pressing shutdown_key
shutdown_cmd = /sbin/shutdown -a now

# Specifies the key combination used for shutdown
shutdown_key = F1

# Command executed when pressing sleep key (can be null)
sleep_cmd = null

# Specifies the key combination used for sleep
sleep_key = F3

# Command executed when starting Ly (before the TTY is taken control of)
# See file at path below for an example of changing the default TTY colors
start_cmd = /etc/ly/startup.sh

# Center the session name.
text_in_center = false

# Default vi mode
# normal   -> normal mode
# insert   -> insert mode
vi_default_mode = normal

# Enable vi keybindings
vi_mode = true

# Wayland desktop environments
# You can specify multiple directories,
# e.g. /usr/share/wayland-sessions:/usr/local/share/wayland-sessions
# If null, Wayland sessions will not be shown
waylandsessions = /usr/share/wayland-sessions

# Xorg server command
# Add the -quiet argument to hide startup logs from the server
x_cmd = /usr/bin/X

# Xorg virtual terminal number
# Mostly useful for FreeBSD where choosing the current TTY causes issues
# If null, the current TTY will be chosen
x_vt = null

# Xorg xauthority edition tool
xauth_cmd = /usr/bin/xauth

# xinitrc
# If null, the xinitrc session will be hidden
xinitrc = null

# Xorg desktop environments
# You can specify multiple directories,
# e.g. /usr/share/xsessions:/usr/local/share/xsessions
# If null, X11 sessions will not be shown
xsessions = null

# Custom Commands and Labels:
# The following examples below give an outline for setting up custom commands and labels.
# Unless specified as optional, an option is mandatory.

# Comments preceding with '##' are for documentation.
# Comments preceding with '#' comment out the example INI.

## Declare a command with the F8 binding.
#[cmd:F8]
## The name of the command to show up in Ly.
## Note: "$" in "$brightness_up" fetches the appropriate string from the specified locale file
## and is replaced with the value representing "brightness_up".
## You can see the list of keys in any locale file in /etc/ly/lang.
#cmd = touch /tmp/ly.gaming
#name = custom command $brightness_up

## Declare a label with an ID. This ID should be unique across all labels.
#[lbl:kernel]
#cmd = uname -srn
## Optional, defaulting to 0.
## In frames, the time to re-run the command and update the label.
## If 0, only run once and do not refresh afterwards
#refresh = 0
