Cdm
From wikinotes
A console based display manager for linux/bsd.
Written in bash.
NOTE:
interestingly, since xorg is not running yet, you may be able to change the xorg.conf
that is loaded for each entry..
NOTE:
this is more complicated than it needs to be, just write your own .zprofile
Documentation
github https://github.com/evertiro/cdm
Tutorials
arch wiki https://wiki.archlinux.org/title/CDM
Locations
/etc/cdmrc
system config ~/.config/cdm/cdmrc
user config /usr/share/doc/cdm/themes/*
themes /usr/share/xsessions/*.desktop
default installed xsessions
Usage
Default
After copying
~/.profile
(see below),
simply login on TTY1 and you will be provided with login choices.Manual
cdm ${rcfile} # test cdm interactively
Configuration
Enable CDM
# copy .profile, which will run as soon as you login on the console. cp /usr/share/doc/cdm/profile.sh ~/.profileOr alternatively append it to your
.profile
# To avoid potential situation where cdm(1) crashes on every TTY, here we # default to execute cdm(1) on tty1 only, and leave other TTYs untouched. if [[ "$(tty)" == '/dev/tty1' ]]; then [[ -n "$CDM_SPAWN" ]] && return # Avoid executing cdm(1) when X11 has already been started. [[ -z "$DISPLAY$SSH_TTY$(pgrep xinit)" ]] && exec cdm ficdmrc
Themes
# (~/.config/cdm|/etc/)cdmrc dialogrc=/usr/share/doc/cdm/themes/limeMenu Choices
You do not need to manually configure menu choices
cdm automatically loads entries from/usr/share/xsessions/*.desktop
like other DMs.# (~/.config/cdm|/etc/)cdmrc # cdm is configured with 3x arrays # indexes in each array refer to the same menu-entry # startx ${THIS_COMMAND} binlist=( "/bin/i3" # startx /bin/i3 # i3 login "/bin/openbox-session" # startx /bin/openbox-session # openbox login "/bin/zsh -i" # startx /bin/zsh -i # tty login ) # name of each choice namelist=( "i3" "openbox" "tty" ) # if choice requires an (X)-server, or is a (C)onsole flaglist=( X X C )