Skip to content

TTY

GNARUS can be started directly from a bare TTY without GDM or any other display manager. The package does not start Hyprland automatically after TTY login; the user decides when to start the session.

After logging in on the TTY with your username and password, run:

Terminal window
gnarus-tty

gnarus-tty is provided by the gnarus-session package and handles everything a display manager would normally do before starting Hyprland:

  • Registers the session with logind (loginctl open-session)
  • Starts the D-Bus session bus
  • Sets the environment variables (XDG, Qt, Electron, Wayland)
  • Launches the GNARUS session (gnarus-session)

On exit, the script cleans up (D-Bus, logind) and returns to the TTY.

To use without a display manager, disable GDM if it is active and reboot:

Terminal window
sudo systemctl disable gdm
sudo reboot

Log in with your username and password at the TTY login screen. Then start the environment manually:

Terminal window
gnarus-tty

For diagnostics:

Terminal window
gnarus-tty --status

The package does not configure TTY autologin and does not start Hyprland automatically by default. If you want the environment to start automatically after you log in manually on the TTY, add your own rule to ~/.bash_profile or ~/.zprofile:

~/.bash_profile
if [ -z "${DISPLAY:-}" ] && [ -z "${WAYLAND_DISPLAY:-}" ] && [ "${XDG_VTNR:-}" = "1" ]; then
exec gnarus-tty
fi

There is also an opt-in profile shipped at /usr/share/gnarus/gnarus/profile. Copy it to ~/.config/gnarus/profile with gnarus-setup --copy gnarus and source it:

~/.bash_profile
[ -f ~/.config/gnarus/profile ] && . ~/.config/gnarus/profile

The profile auto-starts gnarus-tty on the configured VT (default 1) when no display manager is running. To disable it, export GNARUS_TTY_DISABLE=1; to use a different VT, export GNARUS_TTY_VT=2. It also skips auto-start when greetd owns the login flow.

TTY session logs are stored at:

Terminal window
cat ~/.local/state/gnarus/tty.log
cat ~/.local/state/gnarus/session.log