Hyprland-dotfiles/README.md

416 lines
16 KiB
Markdown
Raw Normal View History

2024-02-27 04:45:16 -05:00
# ML4W dotfiles 2.8.2
2023-01-22 12:27:01 -05:00
2024-03-01 15:23:40 -05:00
An advanced configuration of Hyprland and Qtile for Arch Linux based distributions. This package includes an installation script to install and setup the required components.
2023-10-18 11:39:51 -04:00
2024-02-25 10:47:44 -05:00
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v281/screenshot-281-1.png?ref_type=heads" target="_blank"><img src="screenshots/v281/screenshot-281-1.png" /></a>
2023-11-30 10:23:16 -05:00
2024-02-04 08:01:50 -05:00
You can find the installation video (Version 2.7.1) on YouTube: <a href="https://youtu.be/kHG5czrQ7WA" target="_blank">Install Arch Linux with Hyprland & Qtile</a>
2023-11-14 14:53:27 -05:00
2023-11-26 10:00:12 -05:00
[TOC]
2023-11-26 10:06:51 -05:00
# Installation
2023-04-06 08:49:57 -04:00
2023-12-25 09:12:46 -05:00
To make it easy for you to get started with the ML4W dotfiles, here's a list of recommended next steps.
2023-12-24 08:12:10 -05:00
2023-12-25 09:12:46 -05:00
The package includes an installation script install.sh that will guide you through all steps of the installation or update process.
2023-12-24 08:12:10 -05:00
2024-03-01 02:55:45 -05:00
PLEASE NOTE: Every Linux distribution and setup can be different. Therefore, I cannot guarantee that the installation will work smoothly everywhere. Installation on your own risk.
2023-12-25 09:17:40 -05:00
## Supported platforms
The dotfiles are tested with the following Arch based distributions:
- Arch Linux (recommended)
2024-03-01 15:23:40 -05:00
- EndeavourOS
2023-12-25 09:17:40 -05:00
- Arco Linux
2024-03-02 15:01:39 -05:00
- Manjaro Linux
2023-12-25 09:17:40 -05:00
2024-03-01 15:23:40 -05:00
The installation should work on all Arch Linux based distributions as well.
2023-12-25 09:12:46 -05:00
2024-03-02 15:01:39 -05:00
For Manjaro users: Hyprland and required components are under ongoing development. That's why it's possible that some packages are not immediatly available on Manjaro e.g., hyprlock or hypridle. But usually, the packages will be published later.
2023-12-25 09:19:44 -05:00
For Arco Linux users: Please reinstall/force the installation of all packages during the installation/update process of the install script. The script will also offer to remove ttf-ms-fonts if installed to avoid issues with icons on waybar.
2023-11-24 09:30:48 -05:00
2023-12-25 09:17:40 -05:00
## Before you start
2024-01-23 11:02:17 -05:00
PLEASE BACKUP YOUR EXISTING .config FOLDER WITH YOUR DOTFILES BEFORE STARTING THE SCRIPTS FOR INITIAL INSTALLTION.
2023-08-31 09:01:03 -04:00
2024-03-01 15:23:40 -05:00
The installation script will create a backup from an previous dotfiles installation.
2023-12-19 07:00:57 -05:00
2024-01-07 09:45:51 -05:00
## Reference Installation
2024-03-01 15:23:40 -05:00
The reference installation for the ML4W dotfiles is based on Arch Linux installed with archinstal and the minimal profile.
2024-01-07 09:45:51 -05:00
Please watch the video on YouTube: https://youtu.be/kHG5czrQ7WA
2024-02-25 10:47:44 -05:00
## Installation with GIT
2023-08-31 09:01:03 -04:00
2023-11-24 03:35:31 -05:00
```
2024-03-01 15:23:40 -05:00
# 1.) Change into your Downloads folder (create the folder if not available)
2023-11-24 03:35:31 -05:00
cd ~/Downloads
# 2.) Clone the dotfiles repository into the Downloads folder
2024-02-28 11:01:05 -05:00
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
2023-11-24 03:35:31 -05:00
# 3.) Change into the dotfiles folder
cd dotfiles
# 4.) Start the installation
./install.sh
2023-11-26 07:27:11 -05:00
```
2024-02-25 10:47:44 -05:00
## Installation with GIT of the rolling release
2023-11-26 04:44:19 -05:00
```
2024-03-01 15:23:40 -05:00
# 1.) Change into your Downloads folder (create the folder if not available)
2023-11-26 04:44:19 -05:00
cd ~/Downloads
2024-02-29 11:43:33 -05:00
# 2.) Clone the dotfiles repository into the Downloads folder
2024-02-25 10:47:44 -05:00
git clone https://gitlab.com/stephan-raabe/dotfiles.git
2023-11-26 04:44:19 -05:00
2024-01-11 10:03:36 -05:00
# 3.) Change into the new dotfiles folder
2023-11-26 04:44:19 -05:00
cd dotfiles
2024-03-01 15:23:40 -05:00
# 4.) Checkout the dev branch
2024-02-25 10:47:44 -05:00
git checkout dev
2024-03-01 15:23:40 -05:00
# 4.) Start the installation
2023-11-26 04:44:19 -05:00
./install.sh
2023-11-24 03:35:31 -05:00
```
2024-02-29 11:43:33 -05:00
## Update
2023-11-26 07:34:37 -05:00
2024-03-01 02:55:45 -05:00
Please follow the steps to update from earlier dotfiles versions to 2.8.2
2023-11-26 07:34:37 -05:00
2024-03-01 02:55:45 -05:00
```
2024-02-29 11:43:33 -05:00
# 1.) Remove existing downloaded dotfiles
rm -rf ~/Downloads/dotfiles
# 2.) Change into your Downloads folder
cd ~/Downloads
2023-11-26 07:34:37 -05:00
2024-02-29 11:43:33 -05:00
# 3.) Clone the dotfiles repository into the Downloads folder
git clone --depth=1 https://gitlab.com/stephan-raabe/dotfiles.git
# 4.) Change into the dotfiles folder
cd dotfiles
2024-01-11 10:03:36 -05:00
2024-02-29 11:43:33 -05:00
# 5.) Start the installation
2023-11-26 07:34:37 -05:00
./install.sh
```
2023-11-24 03:35:31 -05:00
2024-03-01 02:55:45 -05:00
From 2.8.2 onwards you can use the integrated update feature to update your dotfiles to the main or rolling release whenever you want.
<img src="screenshots/welcome-update-dotfiles.png" />
2024-03-01 15:42:49 -05:00
You can also use the ML4W installer to update to the main-release (Latest Version) or the Rolling Release: https://gitlab.com/stephan-raabe/installer
2024-03-01 15:42:25 -05:00
2024-03-01 15:23:40 -05:00
You can force a clean re-installation of the dotfiles by removing the folder ~/dotfiles before starting the installation.
2024-03-01 02:55:45 -05:00
2024-03-01 15:23:40 -05:00
Please note that you can create a backup of your existing configuration with the backup feature of the install script. It's recommended to remove the folder ~/dotfiles only after creating a backup.
2024-02-22 12:22:12 -05:00
2024-03-01 15:23:40 -05:00
## ML4W dotfiles Installer
2024-01-11 10:03:36 -05:00
2024-03-01 15:23:40 -05:00
You can also use the ML4W dotfiles installer script to download and install the latest release: https://gitlab.com/stephan-raabe/installer
2023-11-24 03:35:31 -05:00
2023-12-07 15:32:32 -05:00
## Installation Hook
2024-03-01 15:23:40 -05:00
The installation script will prepare the configuration files in a folder ~/dotfiles-versions/[version] before copy the files into the final destination in ~/dotfiles
2023-12-07 15:32:32 -05:00
2024-03-01 15:23:40 -05:00
If you want to modify the installation files just before everytime the copy procedure starts, you can create a file hook.sh in the folder ~/dotfiles-versions
2023-12-07 15:32:32 -05:00
2024-03-01 15:23:40 -05:00
You can for example delete folders and files or update existing configurations.
2023-12-07 15:32:32 -05:00
```
#!/bin/bash
rm -rf ~/dotfiles-versions/$version/vim/
rm -rf ~/dotfiles-versions/$version/nvim/
```
This script will for example remove the vim and nvim folder before the installation. The symbolic link will not be created because the source folder doesn't exits.
You can find a template in .install/templates/hook.sh
2023-11-30 10:22:26 -05:00
## Hyprland & NVIDIA
2023-11-24 03:35:31 -05:00
There is no official Hyprland support for Nvidia hardware. However, you might make it work properly following this page.
https://wiki.hyprland.org/Nvidia/
2024-03-01 15:23:40 -05:00
Users have reported that Hyprland with dotfiles could be installed successfully on setups with NVDIA GPUs using the nouveau open source drivers.
Please select the following variation in the settings script (system/environment):
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/environments/nvidia.conf
Or set the included environment variables in hyprland.conf
2024-01-01 07:01:51 -05:00
## Launch Hyprland from tty
2023-12-21 07:49:33 -05:00
2024-03-01 15:23:40 -05:00
The suggested method to start Hyprland is from tty with the command Hyprland because login managers (display managers) are not officially supported (https://wiki.hyprland.org/Getting-Started/Master-Tutorial/#launching-hyprland)
2024-01-01 06:56:12 -05:00
```
2024-01-01 07:01:51 -05:00
# Start Hyprland
2024-01-01 06:56:12 -05:00
Hyprland
```
You can install a custom tty login issue (layout) with the dotfiles installer.
2024-01-01 07:01:51 -05:00
## Launch Hyprland with a Display Manager
I made good experiences with the Display Manager SDDM (https://github.com/sddm/sddm). Also gdm could work.
2023-12-21 07:49:33 -05:00
```
2024-02-25 10:47:44 -05:00
yay -S sddm
2023-12-21 07:49:33 -05:00
```
2024-02-25 10:47:44 -05:00
The dotfiles installation script will offer to deactivate the installed display manager and to activate SDDM.
2023-12-21 07:49:33 -05:00
The dotfiles package also includes a configuration for the SDDM theme sdd-sugar-candy (https://github.com/Kangie/sddm-sugar-candy) and a configuration to run SDDM in X11 mode to get the best compatibility.
With the Hyprland settings script you can copy the current wallpaper into SDDM and use it as a background.
2024-01-01 06:56:12 -05:00
Please check the troubleshooting section in case of issues.
2024-03-02 15:01:39 -05:00
## Screenlock and suspend
Hypridle will start Hyprlock after 10 minutes of inactivity and will try to suspend one minutes later.
When you're using a desktop computer you can switch from laptop mode to desktop mode by uncomment the corresponding lines in this file
https://gitlab.com/stephan-raabe/dotfiles/-/blob/dev/hypr/hypridle.conf
2023-11-27 03:44:11 -05:00
## Installation in a KVM virtual machine
Qtile X11 works fine in a KVM virtual machine. The Hyprland performance is low but it's enough for testing new features.
In virt-manager please make sure that 3D acceleration is enabled in Video Virtio and the Listen type is set to None in Display Spice.
2023-11-27 03:52:39 -05:00
To fix the mouse issue on Hyprland, open the Hyprland settings with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> and select in Environments the variation kvm.conf
2023-11-27 03:44:11 -05:00
2023-11-30 10:26:36 -05:00
## Base Hyprland installation with Hyperland Starter
If you want to install only the core packages of Hyprland as a starting point for your Hyprland experiments please also try my Hyprland Starter script: https://gitlab.com/stephan-raabe/hyprland-starter
2023-11-26 10:06:51 -05:00
# Some important key bindings
2023-11-24 09:30:48 -05:00
2023-11-26 09:52:49 -05:00
- <kbd>SUPER</kbd> + <kbd>RETURN</kbd>: Alacritty
2023-12-24 08:12:10 -05:00
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>RETURN</kbd>: rofi application launcher
2023-11-26 09:52:49 -05:00
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd>: Change wallpaper
- <kbd>SUPER</kbd> + <kbd>PRINT</kbd>: Screenshot
2023-12-24 08:12:10 -05:00
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>Q</kbd>: Logout screen
- <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd>: Settings script on Hyprland
- <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>B</kbd>: Reload waybar on Hyprland
2023-11-24 09:30:48 -05:00
All keybindings for Hyprland with right mouse click on Apps in waybar or here:
2023-11-30 10:26:36 -05:00
https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/hypr/conf/keybindings.conf
2023-11-24 09:30:48 -05:00
2023-11-30 10:26:36 -05:00
All keybindings for Qtile: https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/qtile/config.py
2023-11-24 09:30:48 -05:00
2023-11-30 10:22:26 -05:00
# Hyprland
2023-11-10 16:12:15 -05:00
2024-01-29 07:37:15 -05:00
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-1.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-1.png" /></a>
2023-11-10 16:12:15 -05:00
2024-01-29 07:37:15 -05:00
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-2.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-2.png" /></a>
2023-01-22 12:27:01 -05:00
2024-01-29 07:37:15 -05:00
<a href="https://gitlab.com/stephan-raabe/dotfiles/-/blob/main/screenshots/v28/screenshot-28-3.png?ref_type=heads" target="_blank"><img src="screenshots/v28/screenshot-28-3.png" /></a>
2024-01-29 07:32:16 -05:00
2023-11-30 10:28:34 -05:00
<b><a href="https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/screenshots?ref_type=heads">You can find more screenshots here.</a></b>
2023-11-27 10:24:02 -05:00
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank">Watch on YouTube</a>
2023-10-18 11:40:48 -04:00
2024-01-25 10:33:18 -05:00
## ML4W Welcome App
2024-03-01 15:23:40 -05:00
After starting the ML4W dotfiles for the first time, the ML4W Welcome App opens. This app is the starting point to discover the Hyprland setup.
2024-01-25 10:33:18 -05:00
<img src="screenshots/screenshot-welcome.app.png" />
The welcome screen includes the most important keybindings to open a terminal or a browser.
2024-03-01 15:23:40 -05:00
You can start the ML4W Welcome App by clicking on the L icon on the right side in waybar, using the rofi application launcher or by typing ml4w in your terminal (if you're using the .bashrc from the dotfiles).
2024-01-25 10:33:18 -05:00
In the Settings Menu you can access the following functions:
- Update Wallpaper: Opens the wallpaper selector
- Change Waybar Theme: Opens the waybar theme switcher and gives access to the available themes for the waybar status bar
- Change GTK Theme: Opens nwg-look to select the theme for GTK 3 applications incl. widgets, icons and cursors
- Refresh GTK Settings: Reloads the Hyprland GTK configuration (required when changing the mouse cursor)
- Hyprland Settings: Opens the Hyprland Settings script to customize the look and feel, environment variables, monitor resolution, etc.
- Network Settings: Select your network configuration incl. WiFi
- Update your System: Starts the terminal application to update your Arch packages (pacman & yay)
- Cleanup your System: Removes old orphans and cached files generated during previous installations
- Reload Waybar: Reloads the waybar
- Toggle Waybar: You can hide or show waybar when you want to try our other status bars.
You can find the sourcecode of the ML4W Welcome App in this repository:
https://gitlab.com/stephan-raabe/ml4w-welcome
2023-11-30 10:22:26 -05:00
## Wallpaper and Pywal
2023-11-10 16:12:15 -05:00
2023-11-30 10:19:52 -05:00
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
2023-11-10 16:12:15 -05:00
2023-11-30 10:19:52 -05:00
<kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>W</kbd> opens rofi with a list of installed wallpapers in ~/wallpaper/ for your individual selection.
2023-11-10 16:12:15 -05:00
2023-11-30 10:22:26 -05:00
## Waybar themes and themeswitcher
2023-10-03 05:37:41 -04:00
2023-11-30 10:19:52 -05:00
In addition, you can switch the Waybar Template with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>T</kbd> or by pressing the "..." icon in Waybar with the themeswitcher.
2023-10-03 05:37:41 -04:00
2023-11-30 10:19:52 -05:00
The templates are available in ~/dotfiles/waybar/themes. You can add your own personal themes into this folder.
2023-10-18 05:14:29 -04:00
2023-11-30 10:19:52 -05:00
More information here: https://gitlab.com/stephan-raabe/dotfiles/-/tree/main/waybar
2023-10-03 05:37:41 -04:00
2023-11-30 10:22:26 -05:00
## Hyprland settings
2023-08-31 12:11:09 -04:00
2023-11-30 10:19:52 -05:00
You can open the settings script with <kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>S</kbd> to select variations for your hyprland.conf and customize your desktop even more.
2023-01-22 12:27:01 -05:00
2023-12-10 13:36:38 -05:00
You can create custom variations by copying a file from the ~/dotfiles/hypr/conf subfolders like monitor/default.conf, give the file a custom name (e.g., mymonitor.conf) and select the variation in the settings script in the corresponding section.
You can also edit the file custom.conf which is included at the bottom of the hyprland.conf and can hold you personal configurations.
You can also edit the file directly in the settings script in the section Custom.
2023-11-30 10:22:26 -05:00
## Screensharing and recording
2023-01-22 12:27:01 -05:00
2023-11-24 03:35:31 -05:00
More information you can find here:
https://gist.github.com/PowerBall253/2dea6ddf6974ba4e5d26c3139ffb7580
2023-11-15 02:41:58 -05:00
2023-11-24 03:35:31 -05:00
Please note that every Arch Linux system is different and I cannot guarantee that everything works fine on your system.
2023-11-20 02:45:06 -05:00
2023-11-30 10:22:26 -05:00
## Main packages
2023-11-20 02:45:06 -05:00
2023-11-24 03:35:31 -05:00
- Terminal: alacritty
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
- Launch Menus: Rofi
- Colorscheme: pywal
- Browsers: chromium (brave optional)
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
- Status Bar: waybar
- Screenshots: grim & slurp
- Clipboard Manager: cliphist
2023-11-24 09:30:48 -05:00
- Logout: wlogout
2024-02-23 07:52:27 -05:00
- Idle Manager: hypridle
- Screenlock: hyprlock
2023-11-24 09:30:48 -05:00
2023-12-20 05:19:28 -05:00
# Qtile X11
2023-11-30 10:19:52 -05:00
2023-12-21 07:51:10 -05:00
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v27/screenshot-27-3.png" alt="Click to watch on YouTube" /></a>
2023-11-30 10:19:52 -05:00
2023-12-21 07:51:10 -05:00
<a href="https://youtu.be/e9ro_P9rbFk" target="_blank"><img src="screenshots/v27/screenshot-27-4.png" alt="Click to watch on YouTube" /></a>
2023-11-30 10:19:52 -05:00
2023-11-30 10:22:26 -05:00
## Wallpaper and Pywal
2023-11-30 10:19:52 -05:00
Included is a pywal configuration that changes the color scheme based on a randomly selected wallpaper. With the key binding <kbd>SUPER</kbd> + <kbd>SHIFT</kbd> + <kbd>W</kbd> you can change the wallpaper coming from the folder ~/wallpaper/.
<kbd>SUPER</kbd> + <kbd>CTRL</kbd> + <kbd>W</kbd> opens rofi with a list of installed wallpapers in ~/wallpaper/ for your individual selection.
2023-11-30 10:22:26 -05:00
## Main Packages
2023-11-30 10:19:52 -05:00
- Terminal: alacritty
- Editor: nvim
- Prompt: starship
- Icons: Font Awesome
- Launch Menus: Rofi
- Colorscheme: pywal
- Browsers: chromium (brave optional)
- Filemanager: Thunar
- Cursor: Bibata Modern Ice
- Icons: Papirus-Icon-Theme
2024-01-06 07:31:16 -05:00
- Status Bar: Qtile status bar
2023-11-30 10:26:36 -05:00
- Compositor: picom
2023-11-30 10:19:52 -05:00
- Screenshots: scrot
2024-01-25 10:33:18 -05:00
# Troubleshooting
2024-02-27 09:01:00 -05:00
## hypridle and hyprlock is not starting after an update of the dotfiles
Please make sure that hypridle and hyprlock has been installed successfully with
```
yay -S hypridle hyprlock
```
If there is an file conflict the remove the files manually with:
```
sudo rm /usr/lib/debug/usr/bin/hypridle.debug
sudo rm /usr/lib/debug/usr/bin/hyprlock.debug
```
and start the installation again with
```
yay -S hypridle hyprlock
```
2024-01-25 10:33:18 -05:00
## Missing icons in waybar
In case of missing icons on waybar, it's due to a conflict between several installed fonts (can happen especially on Arco Linux). Please make sure that ttf-ms-fonts is uninstalled and ttf-font-awesome and otf-font-awesome are installed with
```
yay -R ttf-ms-fonts
yay -S ttf-font-awesome otf-font-awesome
```
## SDDM not showing (only black screen with cursor)
Switch to another tty with <kbd>CTRL</kbd> + <kbd>ALT</kbd> + <kbd>F3</kbd> Now you can login with your user.
Start Hyprland with Hyprland.
You can try to reinstall all sddm related packages.
```
yay -S sddm-git sddm-sugar-candy-git
```
Or you can install another display manager.
To stop, disable and remove sddm service.
```
sudo systemctl stop sddm.service
sudo systemctl disable sddm.service
sudo rm /etc/systemd/system/display-manager.service
```
2024-02-23 03:05:14 -05:00
## Waybar is not loading
There could be a conflict with xdg-desktop-portal-gtk. Please try to remove the package if installed with:
```
sudo pacman -R xdg-desktop-portal-gtk
```
2023-11-30 10:22:26 -05:00
# Wallpaper repository
2023-01-22 12:27:01 -05:00
2023-12-23 11:12:53 -05:00
You can find my wallpaper collection in the repository https://gitlab.com/stephan-raabe/wallpaper
# Special Thanks
THANK YOU very much for all your support, contributions and ideas:
- Diana Ward: https://github.com/dianaw353
2023-12-24 04:28:32 -05:00
- Don Williams: https://github.com/dwilliam62
2023-12-23 11:12:53 -05:00
- Teodor Orzechowski: https://gitlab.com/sq6gtt
2023-12-24 04:31:39 -05:00
- Jamie Deppeler: https://gitlab.com/bknight2k
2023-12-24 04:28:32 -05:00
2023-12-23 11:12:53 -05:00
and many more...
Thanks to all YouTube subscribers for all your great feedback.
# Inspirations
The following projects have inspired me:
- https://github.com/dianaw353/hyprland-configuration-rootfs
- https://github.com/prasanthrangan/hyprdots
- https://github.com/sudo-harun/dotfiles
2023-12-24 04:28:32 -05:00
and many more...