# Introduction This is a readme(more of a diary) for the current hyprland setup for my personal computer, how it was made, and what I have learned # Base install Use Archinstall, with default hyprland profile, it should come with qt5 and qt6, gtk3 and gtk4 is needed for a desktop environment, but not sure it is installed by default kitty for the terminal emulator, ly for login manager(to avoid wallet problems later on, session manager is preffered to be installed here) pipewire for audio server For convenience, since I use Nvidia cards, the archinstall uses dkms drivers when using the proprietary settings, however the setup might be scuffed, so there is a need to check for the following post install uvsm is currently scuffed in my current setup, so I do not know of a solution yet, but it is preinstalled with the Hyprland profile, just select the default hyprland session in ly instead of uvsm # Post Install ## Nvidia First thing to check after archinstall is if Hyprland can be started, if it does, then check the following for nvidia - /etc/mkinitcpio.conf - MODULES=() containing: - nvidia - nvidia\_modeset - nvidia\_uvm - nvidia\_drm - HOOKS=() removing: -kms - /home/user\_name/.config/hypr/hyprland.conf - env = LIBVA\_DRIVER\_NAME,nvidia - env = \_\_GLX\_VENDOR\_LIBRARY\_NAME,nvidia I would also uninstall the dkms driver and replace it with the normal nvidia driver, after that, install the following: install nvidia-utils and egl-wayland install lib32-nvidia-utils if gaming, after allowing multilib repository ## Package manager install yay, because I use yay multilib repository should be enabled during archinstall add a pacman hook by creating a new file /etc/pacman.d/hooks/nvidia.hook with the following code: ``` [Trigger] Operation=Install Operation=Upgrade Operation=Remove Type=Package # You can remove package(s) that don't apply to your config, e.g. if you only use nvidia-open you can remove nvidia-lts as a Target Target=nvidia Target=nvidia-open Target=nvidia-lts # If running a different kernel, modify below to match Target=linux [Action] Description=Updating NVIDIA module in initcpio Depends=mkinitcpio When=PostTransaction NeedsTargets Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P' ``` run full system update and restart pc while doing this ## Custom Hyprland Config Setup First create a config file in the desired directory, simply copy and paste from the default config file under .config/hypr/hyprland.conf With ly, it is most likely that it is using a .desktop file to execute hyprland by default, so we go to /usr/share/wayland-sessions/hyprland.desktop and edit the Exec line as such: ``` Exec=Hyprland -c /yourcustomdirectory/hypr/hyprland.conf ``` Restart the PC and the new config file will be used ## Hyprland Components - notification daemon = mako - desktop portal = xdg-desktop-portal-hyprland - xwayland screensharing compat = xwaylandvideobridge - auth-agent = hyprpolkitagent - qt-libraries = qt5-wayland, qt6-wayland - gtk-libraries = gtk3, gtk4 - status-bars = waybar, need to install otf-font-awesome as well for logos - wallpaper daemon = swww - wallpaper manager = waypaper - app launcher = wofi - clipboard manager = clipse - network manager = nmtui - file manager = dolphin - text editor = nvim - browser = chromium with vimium - screenshot = hyprshot - idle daemon = hypridle - screenlock = hyprlock - status bar = waybar-cava need to add to hyprland.conf: ``` exec-once = waypaper --restore # to allow for the wallpaper to exist after restart exec-once = mako exec-once = systemctl --user start hyprpolkitagent exec-once = waybar exec-once = swww exec-once = clipse -listen exec-once = hypridle ``` need to create the following files: - ~/.config/hypr/hyprlock.conf - ~/.config/hypr/hypridle.conf ## fonts after downloading otf-font-awesome you might see that your fonts are fucked,you can use this opportunity to download a new font and use it: - yay -S ttf-fira-code - yay -S fontconfig - mkdir ~/.config/fontconfig - touch fonts.conf - with the following code: ``` 10 monospace firacode ``` Some apps need manual changes to adjust their fonts such as: - chromium/google-chrome - Dolphin ## Chinese-Japanese-Korean(cjk) fonts yay -S adobe-source-han-sans-otc-fonts ## Docker yay -S docker sudo systemctl enable docker.server sudo usermod -aG docker $USER ## Git just for automatic credential storing when not using ssh: git config credential.helper store git push ## Waybar yay -S waybar-cava, not waybar. it still uses waybar when calling or exec-once the config file might not be initialised, therefore we can just start by copy and pasting the default config file from /etc/xdg/waybar to ~/.config by creating a new folder called waybar. There should be two files called config.jsonc and style.css Once the files are copied, you can use it after restarting waybar. It should automatically detect the new config files under ~/.config/waybar There is a nifty little command to run for resetting waybar if you are tweaking the configs: ```pkill waybar && hyprctl dispatch exec waybar```