Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Collection of my dotfiles for hyprland and waybar with an installation script for a fresh Arch linux install with yay

Notifications You must be signed in to change notification settings

00Darxk/dotfiles

Repository files navigation

My dotfiles

...and an installation script for a fresh linux with yay, hyprland and waybar.

screen 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.git

You 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.git

Or 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.

Installation

Automatic

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.sh

Yay 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 foobar

If 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.

Manual

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.

Dependencies

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.

Pacman packages

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

AUR packages

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-bin

Or your AUR helper of choice.

Optional

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 inkscape

Config

Copy 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.service

See WoL and Tailscale and GitHub Notification section to manually configure the modules.

Overview

Hyprland

Keybindings

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)

Wallpapers

1

1

1

1

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.

Waybar

Default Modules

Hyprland Modules

Wake on LAN Module

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.

Tailscale Module

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

GitHub Notifications Module

Instructions in the waybar wiki. Place the notifications.token inside the .secrets folder.

Wlogout

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.

Rofi

This configuration is taken, and edited, from adi1090's rofi collection.

Themes

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.

To-Dos

  • 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
  • Create standalone module config for each waybar module
  • Create separate config files for hyprland
  • Split waybar/wol_tailscale into two separate modules

Contributions

...and suggestions are welcome, just open an issue or a pull request :)

See Also

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.

About

Collection of my dotfiles for hyprland and waybar with an installation script for a fresh Arch linux install with yay

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published