A.Z.O.S - Arch Zechert Operating System A.Z.O.S - Arch Zechert Operating System

Graphical Desktop / Hyprland Setup#

It is now time to install a graphical desktop environment - [Hyprland][hyprland].

Install hyprland (and some additional tools that we will use in the graphical environment) with

yay -S hyprland-git kitty wev pipewire pipewire-audio pipewire-alsa pipewire-pulse pipewire-jack wireplumber \
ttf-bitstream-vera ttf-croscore ttf-dejavu ttf-droid gnu-free-fonts ttf-liberation libertinus-font noto-fonts \
ttf-roboto ttf-ubuntu-font-family ttf-anonymous-pro ttf-cascadia-code ttf-fira-mono otf-fira-mono inter-font \
ttf-fira-code ttf-hack ttf-inconsolata ttf-jetbrains-mono ttf-roboto-mono adobe-source-code-pro-fonts noto-fonts-emoji \
ttf-ms-fonts ttf-vista-fonts xdg-desktop-portal-hyprland qt5-wayland qt6-wayland xcursor-breeze nemo wofi \
colloid-catppuccin-gtk-theme-git ttf-robot-mono-nerd ttf-firacode-nerd otf-firamono-nerd btop hyprpaper \
git make unzip gcc tar curl ripgrep luarocks wl-clipboard pavucontrol waybar otf-font-awesome \
brightnessctl inotify-tools socat jq papirus-icon-theme network-manager-applet dunst \
breeze-icons
You can now start Hyprland at any time with the command Hyprland.

Hyprland will be started with the default configuration. Useful keybinds for now:

  • Super + M exit Hyprland
  • Super + Q open Kitty Terminal Emulator

Adapt the configuration file ~/.config/hypr/hyprland.conf to your liking. Or download the dotfiles provided in this repository.

Automatically Login on TTY1#

If the system is used by a single user only, it might be a sensible step to automatically login to the user account on TTY1. The computer is protected by the encryption password and Secure Boot anyway already.

Create a drop-in file for getty@tty1.service with the following contents in /etc/systemd/system/getty@tty1.service.d/autologin.conf

[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin <username> %I $TERM
Environment=XDG_SESSION_TYPE=wayland

Automatically Start Hyprland on TTY1#

Automatically start Hyprland if connected to TTY1. Create the file ~/.bash_profile with the following content:

if [ -z "${HYPRLAND_INSTANCE_SIGNATURE}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
  Hyprland
  # use the following line instead to auto-restart Hyprland if it crashes
  # exec Hyprland
fi

Prevent TTY1 to be Cleared#

When Hyprland crashes, you might want to see the output of the Hyprland command. Unfortunately, systemd clears the TTY when Hyprland exits. To prevent this, create the following drop-in file

/etc/systemd/system/getty@tty1.service.d/noclear.conf

[Service]
TTYVTDisallocate=no

Prevent System from Sleeping when no Monitors are attached#

Modify the file /etc/systemd/logind.conf and edit the line with HandleLidSwitch to read

HadleLidSwitch = ignore

Install Configuration Files#

Install the tool stow with sudo pacman -S stow and install the dotfiles:

cd dotfiles
stow

From your home directory, clone the dotfiles into a directory ~/dotfiles.

# read only
git clone https://git.zechert.net/azos/dotfiles.git
# or read-write
git clone git@zechert.net:azos/dotfiles.git
# install the files
./install.sh

Hint

Instead, feel free to clone your own dot file repository.