A collection of my personal dotfiles for a highly customized and efficient development environment.
This repository contains configuration files for various tools and applications. The main focus is on creating a seamless and productive user experience with a focus on aesthetics and usability
- My old dotfiles are here(i3 manjaro x11 rofi i3block)
- πΌοΈ Screenshots
- π§© Components
- π Hyprland
- π Waybar
- π¦ Firefox
- π± Kitty
- π Fish
- π€ Nvim
- β¬οΈ Prerequisites
- πΎ Installation
- β¨οΈ Keybindings
- π Credits
Here's a breakdown of the key components in this dotfiles setup:
- Hyprland: A dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
- Waybar: A highly customizable Wayland bar.
- Kitty: A fast, feature-rich terminal emulator.
- Fish Shell: A smart and user-friendly command-line shell.
- Nvim: Highly extensible Vim-based text editor
Hyprland is the heart of this setup, providing a smooth and visually appealing desktop environment. Configuration is split into several files under @hypr/UserConfigs/
for better organization.
Some noteworthy configuration files are:
@hypr/hyprland.conf
: main Hyprland configuration file.@hypr/UserConfigs/Keybinds.conf
: Keybindings for Hyprland@hypr/UserConfigs/Animations.conf
: Animations used in hyprland.@hypr/UserConfigs/Monitors.conf
: Configures monitors.
Here are some of the most used keybinds you can find in @hypr/UserConfigs/Keybinds.conf
:
#Move window with arrow keys
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
#Switch between windows with arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
#Switch to specific workspace
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
Waybar provides essential information and controls in a clean and customizable manner.
@waybar/config.jsonc
: Defines the modules displayed on the bar, their formatting, and behavior.@waybar/style.css
: Styling for Waybar, including colors, fonts, and spacing.@waybar/scripts/waybar-wttr.py
: script used to display weather information
To achieve the optimal Firefox setup as seen in this dotfiles repository, follow these steps:
Install the following manually:
- TextFox β a powerful toolkit for text extraction and manipulation.
- Sidebery β a sidebar tab manager and session organizer.
-
Open Firefox and go to:
about:profiles
-
Find the path of your active profile (it's your Root Directory).
-
Back up the entire contents of that directory before proceeding(Root Directory).
-
From this dotfiles repository, locate the folder:
firefoxConf/
βββ chrome/
βββ user.js
-
Copy the entire
chrome/
folder into your Firefox Root Directory. -
Also copy
user.js
to the same directory. -
If prompted to replace files, accept and overwrite them.
π§ Note: Restart Firefox after applying the configuration to see the changes.
This setup provides a customized Firefox experience tailored for better usability, tab management, and visual enhancements.
Kitty is configured for optimal performance and aesthetics.
@kitty/kitty.conf
: Main configuration file, including font settings, colors, and keybindings.@kitty/theme.conf
: Kitty theme configuration.@kitty/kitty-themes/themes/
: Directory containing a variety of themes. You can explore different themes from kitty-themes
Fish shell enhances the command-line experience with features like autosuggestions, syntax highlighting, and more.
@fish/config.fish
: Main configuration file for Fish, including aliases, environment variables, and custom functions.@fish/functions/
: Directory containing custom Fish functions.@fish/fish_plugins
: Contains list of used plugins. Using Tide prompt
Neovim is configured with LazyVim.
@nvim/init.lua
: Loads LazyVim and custom plugins.@nvim/lua/config/
: Directory containing configuration files for LazyVim, keymaps, autocommands, and options.@nvim/lua/plugins/
: Custom plugins for Nvim.
Before installing the dotfiles, ensure that you have the following packages and programs installed on your system. Installation commands are provided for common distributions:
π§ͺ Arch Linux / Manjaro
sudo pacman -S hyprland waybar kitty fish neovim wofi pamixer brightnessctl slurp swappy
For
wlogout
, install via AUR:
yay -S wlogout
π§ Debian / Ubuntu
sudo apt install hyprland waybar kitty fish neovim wofi pamixer brightnessctl slurp swappy wlogout
Make sure your system supports Wayland and has proper repositories for Hyprland.
π© Fedora
sudo dnf install hyprland waybar kitty fish neovim wofi pamixer brightnessctl slurp swappy wlogout
Important: Before proceeding, back up your existing configuration files! This ensures you can easily revert to your previous settings if needed.
-
Backup Your Current Configuration:
Before applying these dotfiles, create backups of your existing configurations. This is crucial! Here are some common locations to back up:
- Hyprland:
~/.config/hypr
- Waybar:
~/.config/waybar
- Kitty:
~/.config/kitty
- Fish:
~/.config/fish
- Nvim:
~/.config/nvim
Use the following commands to create backups (replace
hypr
,waybar
, etc. with the appropriate directory names):mkdir ~/.config_backup # If you don't already have a backup directory cp -r ~/.config/hypr ~/.config_backup/ cp -r ~/.config/waybar ~/.config_backup/ cp -r ~/.config/kitty ~/.config_backup/ cp -r ~/.config/fish ~/.config_backup/ cp -r ~/.config/nvim ~/.config_backup/
- Hyprland:
-
Clone the Repository:
git clone https://github.com/yourusername/dotfiles.git ~/.dotfiles
-
Identify Your Monitor Names:
Hyprland requires you to specify the names of your monitors in the configuration. To find the correct names, run the following command in your terminal:
hyprctl monitors | grep -E "Monitor|description"
This will output information about your connected monitors. Look for the
name
field for each monitor. For example:1) eDP-1 ([email protected]) at 0x0 2) HDMI-A-1 ([email protected]) at 1920x0
In this case, the monitor names are
eDP-1
andHDMI-A-1
. Write these down, as you'll need them in the next step! -
Manually Copy Configuration Files:
Carefully copy the configuration files from the cloned repository to their respective locations in your home directory. For example:
-
Hyprland:
cp -r ~/.dotfiles/hypr/* ~/.config/hypr/
Important: Edit the
@hypr/UserConfigs/Monitors.conf
file and replace the example monitor names with the actual names you found in the previous step! This is crucial for your setup to work correctly. -
Waybar:
cp -r ~/.dotfiles/waybar/* ~/.config/waybar/
-
Kitty:
cp -r ~/.dotfiles/kitty/* ~/.config/kitty/
-
Fish:
cp -r ~/.dotfiles/fish/* ~/.config/fish/
-
Nvim:
cp -r ~/.dotfiles/nvim/* ~/.config/nvim/
Important: If you encounter files with the same name, carefully review both files and decide whether to replace the existing file, merge the contents, or skip the file.
-
-
Reload/Restart:
After copying the files, you'll need to reload or restart the applications for the changes to take effect:
- Hyprland: Restart Hyprland to apply the new configuration.
- Waybar: You can either restart Waybar or send it a reload signal (
pkill -SIGRTMIN+8 waybar
). There's also a reload script located in@hypr/UserConfigs/scripts/reload_waybar
- Kitty: Kitty should automatically reload the configuration, but you can restart it if needed.
- Fish: Start a new Fish shell session, or source the config file (
source ~/.config/fish/config.fish
). - Nvim: Open nvim and run
:source ~/.config/nvim/init.lua
Here are some of the key Hyprland keybindings for navigation and window management. To see and edit all the keybinds check @hypr/UserConfigs/Keybinds.conf
:
Short View Of Hotkeys
Keybinding | Description | Keybinding | Description |
---|---|---|---|
πͺ | Window Mgmt | Manage focus and layout | πͺ |
SUPER + V |
Toggle Pseudo | SUPER + SHIFT + Q |
Kill Active |
SUPER + SHIFT + SPACE |
Floating | SUPER + Q |
Toggle Split |
SUPER + F |
Fullscreen | SUPER + H/L/K/J or Arrows |
Focus |
SUPER + SHIFT + H/L/K/J |
Move | SUPER + Mouse Left/Right |
Move / Resize |
SUPER + R |
Resize Mode | Arrows / HJKL in resize mode | Resize Dir |
ESC / Return |
Exit Resize | ||
π₯οΈ | Workspaces | Manage desktops & monitors | π₯οΈ |
SUPER + 1 -8 |
Switch WS | SUPER + SHIFT + 1 -8 |
Move to WS |
SUPER + CTRL + 1 -8 |
Mon2 WS | SUPER + CTRL + SHIFT + 1 -8 |
Move to Mon2 WS |
SUPER + Tab |
Prev WS | SUPER + CTRL + J / L |
WS Navigate |
π | Applications | Favorite apps & launchers | π |
SUPER + Return |
Kitty Terminal | SUPER + SHIFT + Return |
Retro-Term |
SUPER + F1 βF4 |
f1-Obsidian, f2-FFox | f3-Thunar, f4-Void | Apps |
SUPER + D |
Rofi X11 | SUPER + SHIFT + D |
Rofi Wayland |
SUPER + SHIFT + C |
Color Picker | SUPER + SHIFT + X |
Kill w/Mouse |
SUPER + SHIFT + ESC |
BTop | SUPER + ALT + ESC |
NVTop |
SUPER + ALT + M |
Music Player | SUPER + ALT + N |
Next Wallpaper |
SUPER + T |
Run TouchServer | SUPER + SHIFT + T |
Kill TouchServer |
SUPER + ALT + V |
Run WayVNC | SUPER + SHIFT + V |
Kill WayVNC |
βοΈ | System Ctrl | Screenshots, Lock, Power | βοΈ |
SUPER + 9 |
Lock Screen | SUPER + 0 |
Power Menu |
SUPER + SHIFT + 0 |
Exit Session | SUPER + S |
Screenshot |
SUPER + ALT + 1/2/3 |
Temp -/Norm/+ | SUPER + ALT + Q/W/E |
Gamma -/Norm/+ |
SUPER + ALT + 8/9/0 |
Monitor Dup/Off/Ext | SUPER + SHIFT + R |
Reload Waybar |
SUPER + M |
Toggle Waybar | SUPER + N |
Emoji Picker |
Long View Of Hotkeys
Category | Keybinding | Description |
---|---|---|
πͺ Window Mgmt | SUPER + V |
Toggle pseudo-tiling |
SUPER + SHIFT + Q |
Kill active window | |
SUPER + SHIFT + SPACE |
Toggle floating window | |
SUPER + Q |
Toggle split layout | |
SUPER + F |
Fullscreen active window | |
SUPER + H/L/K/J or Arrow Keys |
Move focus | |
SUPER + SHIFT + H/L/K/J |
Move window in direction | |
SUPER + Mouse Left / Right |
Move / Resize window | |
SUPER + R |
Enter resize mode | |
Arrow keys / HJKL | Resize window in resize mode | |
ESC or Return |
Exit resize mode | |
π₯οΈ Workspaces | SUPER + 1 to 8 |
Switch to workspace |
SUPER + SHIFT + 1 to 8 |
Move window to workspace | |
SUPER + CTRL + 1 to 8 |
Switch to monitor 2 workspace | |
SUPER + CTRL + SHIFT + 1 to 8 |
Move window to monitor 2 workspace | |
SUPER + Tab |
Go to previous workspace | |
SUPER + CTRL + J / L |
Previous / Next workspace | |
π Applications | SUPER + Return |
Launch Kitty terminal |
SUPER + SHIFT + Return |
Launch cool-retro-term | |
SUPER + F1 to F4 |
Obsidian, Firefox, Thunar, Void | |
SUPER + D / SHIFT + D |
Launch Rofi (X11 / Wayland) | |
SUPER + W |
Launch archwiki-offline | |
SUPER + SHIFT + C |
Color picker and copy to clipboard | |
SUPER + SHIFT + X |
Click to kill window | |
SUPER + SHIFT + ESC |
Resource Monitoring (BTop) | |
SUPER + ALT + ESC |
GPU Monitoring (NVTop) | |
SUPER + ALT + M |
Music Player (Kew) | |
SUPER + ALT + N |
Next Random Wallpaper | |
SUPER + T |
Run TouchServer | |
SUPER + SHIFT + T |
Kill TouchServer | |
SUPER + ALT + V |
Run WayVNC | |
SUPER + SHIFT + V |
Kill WayVNC | |
βοΈ System Ctrl | SUPER + S |
Screenshot with grim + swappy |
SUPER + 9 |
Lock screen (swaylock) | |
SUPER + 0 |
Open wlogout | |
SUPER + SHIFT + 0 |
Exit Hyprland session | |
SUPER + SHIFT + R |
Reload Waybar config | |
SUPER + M |
Toggle Waybar | |
SUPER + N |
Open Emoji Picker | |
π‘οΈ Hyprsunset | SUPER + ALT + 1/2/3 |
Change screen temperature (-300 / normal / +300) |
SUPER + ALT + Q/W/E |
Change gamma (-5 / normal / +5) | |
π₯οΈ Monitors | SUPER + ALT + 8/9/0 |
Duplicate / Disable / Extend HDMI monitor |