...and an installation script for a fresh linux with yay, hyprland and waybar.
I like rice, but i prefer pasta
Note
This rice is heavily inspired (copied) from SolDoesTech's hyprland repos, check those if you'd like a probably better tested config. It also uses config taken from klpod0s. If there are any issues with the hyprland and waybar configuration, before opening an issue, check with the wikis as i have no idea what i'm doing, also don't trust random installation scripts online :). If there are issues with the installation scripts report it here ty.
Clone the repository to copy and use these configuration files.
git clone https://github.com/00Darxk/dotfiles.gitYou can install either the english (main-en branch) or italians (main-it branch) tooltip version directly:
git clone --single-branch --branch main-{lang} https://github.com/00Darxk/dotfiles.gitOr you can run the installation script from the main branch to choose which language to use during install.
Will eventually deprecate those branches, and just use a set-lang script to write the language changes on the copied configs and set the locale. It would be possibile to change language by simply re-running the script and copying the affected configs.
Run the install script, it will try to install all needed dependencies
Important
This script does some error checking, and it tries to back up existing configs. Though it isn't perfect.
cd dotfiles
./install.shYay need to be installed, as its used by the script to install all the packages. Refer to the official yay page for installation, or you can install yay through the script, if you already have git installed.
You can install the configs under another user, by providing the username to the script:
./install foobarIf the user doesn't exists or its home directory doesn't exists, it will attempt to create it. It could be useful to try out the config on a temporary user like this.
Below a table of each package that should be installed, and its purpose. If you choose to install another package for the same purpose, you should also check the corresponding configuration files.
You can view and customize the packages it will install by editing the dependencies or applications file. You can comment out the package you don't want installed and add replacement if necessary.
| Package | Description |
|---|---|
hyprland |
Hyprland compositor |
kitty |
Default terminal |
waybar |
Customizable Wayland bar |
swaybg |
Used to set a desktop background image |
rofi-wayland |
A window switcher, application launcher and dmenu replacement |
swaync |
Graphical notification daemon |
thunar |
Graphical file manager |
swayidle |
Idle management deamon for Wayland |
ttf-jetbrains-mono-nerd |
Some nerd fonts for icons and overall look |
polkit-gnome |
Graphical superuser, needed for some applications |
starship |
Customizable shell prompt |
swappy |
Screenshot editor tool |
grim |
Screenshot tool, it grabs images from a Wayland compositor |
slurp |
Selects a region in a Wayland compositor, used to screenshot |
pamixer |
Pulseaudio command line mixer |
brightnessctl |
Program to read and contro device brightness |
gvfs |
Adds missing feature to thunar |
bluez |
Bluetooth protocol stack |
bluez-utils |
Command line utilities to interact with bluetooth devices |
blueman |
GTK+ bluetooth manager |
nwg-look |
GTK3 settings editor adapter |
xfce4-settings |
Set of tools for xfce, needed to set GTK theme |
xdg-desktop-portal-hyprland |
xdg-desktop-portal backend for hyprland |
wl-gammarelay |
Client and daemon for changing color temperature and brightness under wayland |
hyfetch |
Fork of neofetch with LGBTQ+ pride flags. (Use your preferred neofetch fork) |
power-profiles-daemon |
Maked power profiles handling over D-Bus |
sddm |
Login manager |
tff-fira-code |
Free monospace font with programming ligatures |
tff-font-awesome |
Icon font for waybar |
wol |
Wake-on-LAN tool for both CLI and web interfaces |
jq |
CLI JSON processor |
btop |
Monitor of system resources |
telegram-desktop |
Official Telegram Desktop client (optional) |
discord |
All-in-one voice and text chat for games (optional) |
steam |
Valve's digital software delivery system (optional) |
spotify-launcher |
Client for spotify's apt repository (optional) |
chromium |
Web browser (optional) |
tailscale |
Mesh VPN |
fzf |
CLI fuzzy finder |
pacman -S hyprland kitty waybar swaybg rofi-wayand swaync thunar swayidle ttf-jetbrains-mono-nerd polkit-gnome starship swappy grim slurp pamixer brightnessctl gvfs bluez bluez-utils blueman nwg-look xfce4-settings xdg-desktop-portal-hyprland wl-gammarelay hyfetch power-profiles-daemon sddm tff-fira-code tff-font-awesome wol telegram-desktop discord steam spotify-launcher chromium tailscale fzf| Package | Description |
|---|---|
wlogout |
Logout menu |
swaylock-effects |
Allow to lock the screen, fork that adds visual effects |
dracula-gtk-theme |
Default theme |
dracula-icons-git |
Default icons |
sddm-eucalyptus-drop |
Sddm theme |
notion-app-electron |
Connected workspaces (optional) |
vscodium-bin |
Binary releases of VS Code without MS branding/telemetry/licensing (optional) |
whatsdesk-bin |
Unofficial client of Whatsapp (optional) |
yay -S wlogout swaylock-effects dracula-gtk-theme dracula-icons-git sddm-eucalyptus-drop notion-app-electron vscodium-bin whatsdesk-binOr your AUR helper of choice.
Here is a list of useful and funny packages:
| Package | Description |
|---|---|
cowsay |
Configurable talking cow |
fortune-mod |
Fortune cookie program from BSG games |
pipes.shAUR |
Animated pipes terminal screensaver |
figlet |
A program for making large letters out of ordinary text |
imagemagick |
An image viewing/manipulation program |
inkscape |
Professional vector graphics editor |
yay -S cowsay fortune-mod pipes.sh imagemagick inkscapeCopy the configs to the ~/.config folder:
cp -R hypr kitty neofetch swayidle swaylock waybar wlogout rofi hyfetch.json .bashrc starship.toml ~/.config/Set files as executable:
chmod +x ~/.config/hypr/scripts/*
chmod +x ~/.config/waybar/scripts/*Enables services:
sudo systemctl enable tailscaled
sudo systemctl enable bluetooth.serviceSee WoL and Tailscale and GitHub Notification section to manually configure the modules.
You can check the keybinds in the hyprland config, or on the table below.
It contains explicit keybinds for F1 to F6 function keys, although they, and multimedia keys, should all work out of the box; if there are issues check your keyboard on the wiki, and bind them to the corresponding keys.
| Keybind | Action |
|---|---|
| XF86AudioPlay | Play-pause current player |
| XF86AudioPrev | Go to next track on current player |
| XF86AudioNext | Go to previous track on current player |
| Super+Q | Open Kitty terminal |
| Super+W | Kill active window |
| Super+L | Lock the screen, using swaylock |
| Super+M | Show the logout screen, using wlogout |
| Super+Shift+M | Exit the Hyrpland environment |
| Super+V | Toggle on/off floating for the active window |
| Super+P | Toggle pseudo-tiling |
| Super+J | Toggle split |
| Super+Space | Show the graphical app launcher and window switcher using rofi |
| Super+S | Take a screenshot |
| Super+Shift+B | Reload waybar |
| Super+[1~9] | Open Thunar (1), WhatsDesk (2), Chromium (3), Discord (4), Telegram Desktop (5), Steam (6), none (7), VSCodium (8), Spotify Launcher (9) |
| Super+Ctrl+0 | Reset screen temperature to 6500K |
| Super+Ctrl+↑ | Increase screen temperature by 500K |
| Super+Ctrl+↓ | Decrease screen temperature by 500K |
| Super+←→↑↓ | Move through the active workspace |
| Alt+Tab | Cycle through windows on same workspace |
| Alt+Shift+Tab | Cycle through windows on same workspace (reverse) |
| Super+Tab | Switches to previous active workspace |
| Super+[F1~F12] | Change to nth workspace, up to 12 |
| Super+Shift+[F1~F12] | Move current window to nth workspace, up to 12 |
| Super+Scroll↑Scroll↓ | Scroll through existing workspaces |
| Super+LMB | Move window with dragging |
| Super+RMB | Resize window with dragging |
| Super+Shift+Space+[1~4] | Change background to Moon Over Mondstat (1), Sucrose (2), Sayu Birthday Without Characters (3), Xiao (4) |
Credit to Shade of a cat and Sevenics for the amazing art!
Note
I don't remember why I converted all the backgrounds from png to jpg, it should work either way. Too lazy to check the wiki.
To add a new wallpaper to hyprland, add a line at the end of the hyprland.conf file, specifying the location of the image. To set it at start, change the location of the exec call inside the config to the background image.
In the same way you can edit the top line of the swaylock config to change the background image.
If you'd like to use the waybar module to wake a machine over LAN either follow the instructions in the installation scripts or create the ./secrets folder, the ip-address.txt and mac-address.txt files, and uncomment the module from the waybar config:
sed -r -i "s|(^.*)//[ ]*([^$]*wol.*$)|\1\2|" "$HOME/.config/waybar/config.jsonc"It is off by default.
The wol.sh script sends a magic packet to the machine, using the wol package. Change the script if you would like to use a different application. You can run the script by clicking on the module.
It periodically pings the machine with the script wolinfo.sh and shows that machine's status. If you used a broadcast address as the ip and the ip isn't in your arp table, it won't correctly show this status.
The Tailscale module can be used to SSH into another machine using its tailscale's IP and it shows the statuses of selected machines from your tailnet in the tooltip. To enable uncomment the module in the waybar config:
sed -r -i "s|(^.*)//[ ]*([^$]*tailscale.*$)|\1\2|" "$HOME/.config/waybar/config.jsonc"It is off by default.
For this create the hostname.txt and hostnames.txt for the selected machiens inside the .secrets folder. You can run the ssh script by clicking the module on waybar. You can add a new host by right-clicking, and cycling through the provided hosts by scrolling up or down
Instructions in the waybar wiki. Place the notifications.token inside the .secrets folder.
This configuration is almost entirely taken from klpod0s, an aestethic, dynamic and minimal configuration for hyprland; just changed the color theme and tweaked a bit.
This configuration is taken, and edited, from adi1090's rofi collection.
I tried to base it off this color scheme, but I'm not really good with that, if someone who knows colors could help I'd be very thankful :).
I use squared theme for gtk, and ant-dark icons theme. To add themes and icon themes download and unzip theme respectively in ~/.themes and ~/.local/share/icons, use this last directory to store cursor icons (i use my oshi Rin Penrose's)
For sddm I use the eucalyptus-drop theme, it is available on the AUR, and installed through the install script.
- Working To-Dos
- Test the installation script :3
- Add usefull information in the README
- Module description
- Create a version with english toolip in waybar
- Improve installation script
- Add the option to choose which language to use in the installation script
- Script to change tooltip language based on 'dotlang/ {language-code}.json'
- Backup previous config files
- Add the option to choose which language to use in the installation script
- Create standalone module config for each waybar module
- Create separate config files for hyprland
- Split waybar/wol_tailscale into two separate modules
...and suggestions are welcome, just open an issue or a pull request :)
SolDoesTech, LierB, klpod221 and hyprland configs; sejjy's waybar config and adi1090's rofi config collections, The hyprland and waybar wikis. Shade of a cat and Sevenics amazing art.