181 lines
5.4 KiB
Markdown
181 lines
5.4 KiB
Markdown
# 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:
|
|
```
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
|
<fontconfig>
|
|
<match>
|
|
<edit name="pixelsize"><double>10</double></edit>
|
|
</match>
|
|
<alias>
|
|
<family>monospace</family>
|
|
<prefer><family>firacode</family></prefer>
|
|
</alias>
|
|
</fontconfig>
|
|
|
|
```
|
|
|
|
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```
|