Limine and Ly

Hi people.

Just tested in a VM archinstall with Limine bootloader and Ly display manager.

I liked very much, so, after a fresh install of EOS, how to switch to Limine and Ly?

Oh, using legacy BIOS here.

Thanks!

You should find everything you need in the arch wiki.

Did your archinstall add a display manager? If so, remove that first. For enabling ly, it’s as simple as:

sudo systemctl enable ly@tty2.service

and rebooting (NOTE: this is what I use on a variety of systems: Hyprland, Xfce, KDE, Cosmic, GNOME, etc).

Here’s my current /etc/ly/config.ini:

# 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 = false

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

# 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 = login

# 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 = false

# 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 = false

# 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 = false

# 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 = ~/.xinitrc

# 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 = /usr/share/xsessions

# 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

this can be the answer to whatever question on the forum :rofl:

Not all, but a whole lof of them. The stuff that’s already documented should be used. There is no value in typing it in again. I happen to know both those subjects are documented, having been there myself over time.

Great, can you point me to it?

I was there, but couldn’t find articles for converting Grub to Limine.

About the Ly display manager, ChatGPT already took care of it.

Just look up limine, it tells you how to set it up. There is no ‘conversion’. Probably should remove grub when done.