Skip to content

rictonov/ubuntu-hyprland-hyprdots

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Install Hyprland on any Debian or Ubuntu based distro with Ricing

All the thems i took from prasanthrangan

Note

thanks to prasanthrangan's work, I only took his themes and modified the scripts so that they could work in debian prasanthrangan github page

Distro Compatibility

  • Tested on Ubuntu (gnome) Lunar Lobster
  • Tested on Ubuntu cinnamon Lunar Lobster
  • you tell me ...

Part 1 : Installing Hyprland and utilities (bar, wallpaper changer, etc.)

STEP 1 : Edit the apt sorces list

sudo nano /etc/apt/sources.list

Uncomment all lines starting with deb-src (if none, skip)

STEP 2 :

Install run dependencies and make dependencies from official repo

FYI : I used nala instead of apt

Some dependencies will be needed to be built from source (see Step 4)

sudo apt-get install golang-go check libgtk-3-dev libsystemd0 libsystemd-dev libegl1-mesa libegl1-mesa-dev libgbm1 libgbm-dev libgles2-mesa-dev meson wget build-essential ninja-build cmake-extras cmake gettext gettext-base fontconfig libfontconfig-dev libffi-dev libxml2-dev libdrm-dev libxkbcommon-x11-dev libxkbregistry-dev libxkbcommon-dev libpixman-1-dev libudev-dev libseat-dev seatd libxcb-dri3-dev libvulkan-dev libvulkan-volk-dev  vulkan-validationlayers-dev libvkfft-dev libgulkan-dev libegl-dev libgles2 libegl1-mesa-dev glslang-tools libinput-bin libinput-dev libxcb-composite0-dev libavutil-dev libavcodec-dev libavformat-dev libxcb-ewmh2 libxcb-ewmh-dev libxcb-present-dev libxcb-icccm4-dev libxcb-render-util0-dev libxcb-res0-dev libxcb-xinput-dev libpango1.0-dev xdg-desktop-portal-wlr hwdata git libdrm-dev gdb xwayland libliftoff-dev libdisplay-info-dev libpipewire-0.3-dev libinih-dev libgmp-dev scdoc libpam0g libpam0g-dev valgrind libgtk-4-1 libgtk-4-dev edid-decode 

STEP 3 : Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default 1.7.0

Warning

When you installing rustup, select nightly version othervise you wont be able to build pacakge Also if you have nvidia gpu, go to Hyprland nvidia page and aplay sugestions For more details, please refer Hyprland Nvidia

STEP 4 : Build some dependencies from source

Why? Why is this not added to script, I want you to do this manually because the compilor may show error while building, all errors are highlighted by the color red in your terminal, If you see any error regarding a certain build dependency, then google it or ask some AI bot which package should you install via apt to fulfill that dependency

STEP 4.1 : libdisplay-info

git clone https://gitlab.freedesktop.org/emersion/libdisplay-info.git
mkdir build &&
cd    build &&

meson setup --prefix=/usr --buildtype=release &&
ninja
sudo ninja install &&
cd ..

STEP 4.2 : libliftoff

git clone https://salsa.debian.org/debian/libliftoff.git
meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
cd build &&
ninja
sudo ninja install &&
cd ..

STEP 4.3 : wayland-protocols

wget https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.32/downloads/wayland-protocols-1.32.tar.xz
tar -xvJf wayland-protocols-1.32.tar.xz
cd wayland-protocols-1.32

mkdir build &&
cd    build &&
meson setup --prefix=/usr --buildtype=release &&
ninja
sudo ninja install

STEP 4.4 : wayland

wget https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.22.0/downloads/wayland-1.22.0.tar.xz
cd wayland-1.22.0
mkdir build &&
cd    build &&
meson setup ..            \
      --prefix=/usr       \
      --buildtype=release \
      -Ddocumentation=false &&
ninja
sudo ninja install &&
cd ../..

STEP 4.5 : libinput

git clone https://gitlab.freedesktop.org/libinput/libinput
cd libinput
git clone https://gitlab.freedesktop.org/libinput/libinput
cd libinput
meson --prefix=/usr builddir/
ninja -C builddir/
sudo ninja -C builddir/ install
sudo systemd-hwdb update

STEP 4.6 (option) : libdrm (for DRM playback support)

git clone https://gitlab.freedesktop.org/mesa/drm.git
cd drm &&
meson --prefix=/usr builddir/
ninja -C builddir/
sudo ninja -C builddir/ install

STEP 5 : YAY ! Manual Installations completed, now you can run script : clone and execute -

STEP 5A : Build Hyprland and utilities

  • This step 5A can be perform in either of two ways or even a mix of both !

    Method 1 : Manual

  • We get Source

wget https://github.com/hyprwm/Hyprland/releases/download/v0.29.0/source-v0.29.0.tar.gz &&
tar -xvf source-v0.29.0.tar.gz
  • you will need to change the folder permisions due to the use of sudo, so in the future you can acces and modify the folder
chmod a+rw hyprland-source &&
cd hyprland-source/
sudo make install
  • Now that Hyprland is installed, we can download all utilities
  • I recommend using Nix: the package manager
sh <(curl -L https://nixos.org/nix/install) --no-daemon
  • now restart shell/terminal and install using
nix-env -iA nixpkgs.swww
nix-env -iA nixpkgs.xdg-desktop-portal-hyprland
nix-env -iA nixpkgs.swappy
nix-env -iA nixpkgs.wl-clipboard
nix-env -iA nixpkgs.swaylock
nix-env -iA nixpkgs.swaylock-effects
nix-env -iA nixpkgs.pokemon-colorscripts-mac
  • done, now skip to Step 5B

Method 2 : Installation script

sudo apt install git
git clone https://github.com/Senshi111/debian-hyprland-hyprdots.git
cd ~/debian-hyprland-hyprdots/build-hyprland-and-apps
./install-all.sh
  • also
    sudo apt-get install waybar
    

Now lets verify if everything has installed :

which Hyprland && which  swww &&  which  swappy && which  wl-copy && which  swaylock && which  nwg-look

Verify all above packages have a path

I was not able to build swww and xdg-desktop-portal-hyprland through installation script; so I installed it via nix-env

Why not install even Hyprland via nix-env?

Answer : does not work

Advice

  • install a polkit agent (for example : mate-polkit), you might want to enable the service at startup (see Hyprland Wiki)
sudo apt-get install mate-polkit-bin
  • If you are going to Rice with the script below, beware that your waybar version is outdated; you can install waybar via nix-env to get the latest version
    nix-env -iA nixpkgs.waybar

STEP 5B : Get Themes

cd ~/debian-hyprland-hyprdots/Theme/Configs/
rsync -avxHAXP --exclude '.git*' .* ~/
cd ~/debian-hyprland-hyprdots/Theme/Scripts
./install.sh

Note

You can also create your own list (for ex. custom_apps.lst) with all your favorite apps and pass the file as a parameter to install it -

./install.sh custom_apps.lst
  • gdm not found? edit the script and replace gdm with your display manager (sddm recommended)

Please reboot after the install script completes and takes you to sddm login screen (or black screen) for the first time.
For more details, please refer installation.md

Theming

To add your own custom theme, please refer theming.md

  • Available themes

    • Catppuccin-Mocha
    • Catppuccin-Latte
    • Decay-Green
    • Rosé-Pine
    • Tokyo-Night
    • Material-Sakura
    • Graphite-Mono
    • Cyberpunk-Edge
    • Gruvbox-Retro (maybe later)
    • Nordic-Blue (maybe later)
  • Contributors themes

    • Frosted-Glass by T-Crypt
Catppuccin-Mocha
Catppuccin-Latte
Decay-Green
Rosé-Pine
Tokyo-Night
Material-Sakura
Graphite-Mono
Cyberpunk-Edge
Frosted-Glass

Styles

Theme Select
Wallpaper Select
Launcher Style Select
Launcher Styles
Wlogout Menu

Packages

tools
pipewire audio and video server
pipewire-alsa for audio
pipewire-audio for audio
pipewire-jack for audio
pipewire-pulse for audio
wireplumber audio and video server
network-manager network manager
network-manager-gnome nm tray
bluez for bluetooth
blueman bt tray
brightnessctl brightness control for laptop
login
sddm-git display manager for login
qt5-wayland for QT wayland XDP
qt6-wayland for QT wayland XDP
hypr
hyprland-git main window manager
dunst graphical notification daemon
rofi-lbonn-wayland app launcher
waybar status bar
swww wallpaper app
swayidle idle management daemon
wlogout logout screen
grim screenshot tool
slurp selects region for screenshot/screenshare
swappy screenshot editor
cliphist clipboard manager
dependencies
polkit-kde-agent authentication agent
xdg-desktop-portal-hyprland-git XDG Desktop Portal
xdg-desktop-portal-gtk XDG Desktop Portal file picker
imagemagick for kitty/neofetch image processing
qt5-imageformats for dolphin thumbnails
pavucontrol audio settings gui
pamixer for waybar audio
theming
nwg-look theming GTK apps
kvantum theming QT apps
qt5ct theming QT5 apps
applications
firefox browser
kitty terminal
neofetch fetch tool
dolphin kde file manager
visual-studio-code gui code editor
vim text editor
ark kde file archiver
shell
zsh main shell
exa colorful file lister
oh-my-zsh-git for zsh plugins
pokemon-colorscripts-git display pokemon sprites

Keybindings

Keys Action
Super + Q quit active/focused window
Super + Del quit hyprland session
Super + W toggle window on focus to float
Alt + Enter toggle window on focus to fullscreen
Alt + J toggle layout
Super + G disable hypr effects for gamemode
Super + T launch kitty terminal
Super + E launch dolphin file explorer
Super + V launch Vs code
Super + F launch firefox
Super + A launch desktop applications (rofi)
Super + Tab switch open applications (rofi)
Super + R browse system files (rofi)
F10 mute audio output (toggle)
F11 decrease volume (hold)
F12 increase volume (hold)
Super + L lock screen
Super + Backspace logout menu
Super + P screenshot snip
Super + Alt + P print current screen
Super + RightClick resize the window
Super + LeftClick change the window position
Super + MouseScroll cycle through workspaces
Super + Shift + resize windows (hold)
Super + [0-9] switch to workspace [0-9]
Super + Shift + [0-9] move active window to workspace [0-9]
Super + Alt + S move window to special workspace
Super + S toogle to special workspace
Super + Alt + next wallpaper
Super + Alt + previous wallpaper
Super + Alt + next waybar mode
Super + Alt + previous waybar mode
Super + Shift + T theme select menu
Super + Shift + A rofi style select menu

Playlist

youtube
IMAGE ALT TEXT

To-Do

  • Wallpaper change script (ver2)
  • Theme selector script
  • Theme change script (ver2)
  • Update rofi configs
  • Clipboard manager in waybar
  • Add options to install script (ver2)
  • Dynamic waybar config generator script
  • Media control mpris module for waybar
  • Update Volume control script/notification (ver2)
  • Rofi config change script + add new configs
  • Make wlogout configs dynamic and sync with theme
  • Wallpaper select script with rofi menu
  • Fix rofi configs/scripts for dynamic scaling
  • Sync PC/keyboard hw rgb with current theme (themeswitch.sh + openrgb)
  • Add battery and brightness indicator/notification for laptop users
  • Replace waybar with Eww? (maybe later)

Known Issues

  • Random lockscreen crash, refer swaywm/sway#7046
  • Waybar launching rofi breaks mouse input (added sleep 0.1 as workaround), refer Alexays/Waybar#1850
  • Flatpak QT apps does not follow system theme

About

Installing and setting up Hyprland the long way :)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 74.7%
  • CSS 22.7%
  • Visual Basic 6.0 2.6%