Hyperland

Tip

I use JaKooLit's dotfiles for preconfigured Hyprland setups on Fedora 41 KDE Desktop because they are feature-rich and well-maintained.

Github

What is hyprland?

Hyprland is a dynamic tiling wayland compositor designed for Linux, known for its visually appealing animations and modern features. It combines the functionalities of a window manager and a compositor, offering dynamic tiling, powerful plugins, and a customizable user experience.

How to get it?

The installation is matters of your linux, but it runs smoothly on Archlinux and, surprisingly, on Fedora! Personally, I use a preconfigured script to save time, making just a few minor adjustments later to fit my workflow.

To start, ensure that you have a fresh installation of Fedora 41 KDE Desktop on your computer. I'm working with ROG Laptop for this project. This will help minimize any potential issues. It's also a good idea to back up your data before running the Hyperland installation script.

Warning

Install a backup tool, such as Snapper or Timeshift. and Backup your system before using this script to install hyprland. This script does not contain uninstalling of packages.

I use clone zilla; you can use whatever you like.

Tip

Make sure your Fedora 41 is completely up to date.

The next step is to run this script.

git clone --depth=1 https://github.com/JaKooLit/Fedora-Hyprland.git ~/Fedora-Hyprland
cd ~/Fedora-Hyprland
chmod +x install.sh
./install.sh

Post-installation steps

Setting Monitors

# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */  #

# Monitor Configuration
# See Hyprland wiki for more details
# https://wiki.hyprland.org/Configuring/Monitors/
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.

# Monitors
monitor=,preferred,auto,1

# High Refresh Rate
monitor=,highrr,auto,1

# High Resolution
monitor=,highres,auto,auto

# NOTE: for laptop, kindly check notes in Laptops.conf regarding display
# Created this inorder for the monitor display to not wake `up` if not intended.
# See here: https://github.com/hyprwm/Hyprland/issues/4090

# Some examples to set your own monitor
#monitor = eDP-1, preferred, auto, 1
monitor = eDP-1, 1920x1080@144, 222x1080, 1.25 #own screen and 222x1080 meaning that the monitor below the monitor HDMI-A-1
#monitor = DP-3, 1920x1080@240, auto, 1
#monitor = DP-1, preferred, auto, 1
#monitor = HDMI-A-1, 1920x1080@165, 0x0, auto
monitor = HDMI-A-1, 2560x1440@60, 0x0, 1.333333 
# QEMU-KVM, virtual box or vmware
#monitor = Virtual-1, 1920x1080@60,auto,1

# to disable a monitor
#monitor=name,disable

# Mirror samples
#monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2
#monitor=,preferred,auto,1,mirror,eDP-1
#monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1

# 10 bit monitor support - See wiki https://wiki.hyprland.org/Configuring/Monitors/#10-bit-support - See NOTES below
# NOTE: Colors registered in Hyprland (e.g. the border color) do not support 10 bit.
# NOTE: Some applications do not support screen capture with 10 bit enabled. (Screen captures like OBS may render black screen)
# monitor=,preferred,auto,1,bitdepth,10

#monitor=eDP-1,transform,0
#monitor=eDP-1,addreserved,10,10,10,49

# workspaces - Monitor rules
# https://wiki.hyprland.org/Configuring/Workspace-Rules/
# SUPER E - Workspace-Rules
# See ~/.config/hypr/UserConfigs/WorkspaceRules.conf

Customize Wallpaper

Customize Lock-screen

Customize Dropdown Terminal Size

~/.config/hpyr/pyprland.toml:

[pyprland]

plugins = [
  "scratchpads",
  "magnify",
]

[scratchpads.term]
animation = "fromTop"
command = "kitty --class kitty-dropterm"
class = "kitty-dropterm"
size = "95% 80%" 

Customize User Decoration Animations

Customize Keybinding

To start, press Super + E to access the user keybinds configuration. select the menu: Edit User-Keybinds.

Default:

# pyprland | SUPER + SHIFT + ENTER
bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal

My Setting:

# pyprland | SUPER + ` (TICK)
bind = $mainMod, grave, exec, pypr toggle term

Alternative:

# pyprland | SUPER + ` (TICK)
bind = $mainMod, code:49, exec, pypr toggle term
Tip

To obtain code:49, you can utilize a program called wev, which helps you identify the key inputs your computer receives.