Retrilz's Dotfiles

General
|

Hyprlock
|

Terminals
|

GTK & Qt
|
# Navigation
- [Installation](#installation)
- [Detailed overview](#detailed-overview)
- [Dependencies](#dependencies) - required packages.
- [Hyprland](#hyprland) - dynamic tiling Wayland compositor.
- [Keybinds](#keybinds) - all key combinations.
- [Icons](#icons) - icon pack.
- [Cursor](#cursor) - cursor theme.
- [Fonts](#fonts) - font installation.
- [Hypridle](#hypridle) - idle behavior.
- [Hyprlock](#hyprlock) - lock screen.
- [Waybar](#waybar) - Wayland bar.
- [Vicinae](#vicinae) - focused launcher.
- [Wlogout](#wlogout) - logout menu.
- [Terminal](#terminal) - terminal settings.
- [Nwg-look](#nwg-look) - GTK settings.
- [Qt](#qt) - Qt settings.
- [Swaync](#swaync) - notifications.
- [Waypaper](#waypaper) - GUI for easy wallpaper management.
- [Wallpapers](#wallpapers) - collection of wallpapers.
- [Fastfetch](#fastfetch) - show off your Linux.
> [!WARNING]
> My configs are not designed for universal use and are not 100% automated, so they may require manual adjustments. I do not guarantee the correct operation of the configs or software on your system.
# Installation
> [!NOTE]
> You must have a working Hyprland before installation.
> [!IMPORTANT]
> The installation script has only been tested on **Arch Linux**.
0. System update:
```
sudo pacman -Syu
```
1. Run the [installation script](./Scripts/install.sh):
```
curl -fsSL https://revaks-git.duckdns.org/revaks/dotfiles/raw/branch/main/Scripts/install.sh | bash
```
- Installs the [necessary packages](#dependencies).
- Clones this repository to `~/dotfiles`.
- Creates a backup of your configs in `~/.config-backups/$date_time`.
- Applies the new configs from this repository.
## After installation
Actions you probably want to do.
**General:**
- Add your wallpapers to `~/Pictures/Wallpapers`.
- Run `p10k configure` to configure the terminal theme.
- Remove unnecessary Zsh plugins for you in `~/.zshrc`:
```zsh
plugins=(...)
```
**PC users:**
- Disable the `custom/backlight` Waybar module in `~/.config/waybar/config.jsonc`.
## Restoring config backup
```
~/dotfiles/Scripts/restore.sh
```
# Detailed overview
## Dependencies
Packages installed by [`install.sh`](./Scripts/install.sh).
System and interface
| Package | Description |
| :--------- | :--------------------------- |
| `hyprlock` | Lock screen |
| `hypridle` | Idle management daemon |
| `hyprshot` | Screenshot tool |
| `kitty` | Terminal emulator |
| `nwg-look` | GTK theme configuration tool |
| `swaync` | Notification center |
| `vicinae` | Native launcher |
| `waybar` | Wayland status bar |
| `waypaper` | Wallpaper manager |
| `wlogout` | Logout menu |
| `awww` | Wallpaper daemon |
| `zsh` | Command shell |
Utilities and tools
| Package | Description |
| :----------------------- | :------------------------------- |
| `base-devel` | Development tools for AUR builds |
| `brightnessctl` | Brightness control |
| `fastfetch` | System information viewer |
| `git` | Version control system |
| `gpu-screen-recorder` | GPU-accelerated screen recorder |
| `grim` | Wayland screenshot tool |
| `gnome-keyring` | Stores encryption keys |
| `imagemagick` | Image manipulation tools |
| `lsd` | `ls` alternative with icons |
| `nautilus` | File manager |
| `network-manager-applet` | Network management tray applet |
| `pavucontrol` | PulseAudio volume control |
| `playerctl` | Media player control |
| `satty` | Screenshot tool |
| `trash-cli` | Command-line trash utility |
| `uwsm` | Wayland session manager |
| `wl-clip-persist` | Clipboard persistence |
| `wl-clipboard` | Wayland clipboard utilities |
| `yay` | AUR helper |
Networking, audio and portals
| Package | Description |
| :---------------------------- | :----------------------------- |
| `bluez` | Bluetooth stack |
| `blueman` | Bluetooth manager |
| `networkmanager` | Network connection manager |
| `pipewire` | Audio and video server |
| `pipewire-alsa` | ALSA compatibility layer |
| `pipewire-pulse` | PulseAudio compatibility layer |
| `polkit-gnome` | PolicyKit authentication agent |
| `xdg-desktop-portal` | Desktop portal service |
| `xdg-desktop-portal-gtk` | GTK portal backend |
| `xdg-desktop-portal-hyprland` | Hyprland portal backend |
| `xdg-desktop-portal-wlr` | wlroots portal backend |
| `xdg-utils` | XDG integration utilities |
Appearance and themes
| Package | Description |
| :------------------------ | :---------------------------------- |
| `adw-gtk-theme` | Adwaita theme for GTK |
| `darkly-bin` | Qt5/Qt6 dark theme |
| `frameworkintegration` | KDE workspace integration framework |
| `inter-font` | Inter font family |
| `matugen-bin` | Generate themes from wallpapers |
| `noto-fonts` | Noto font family |
| `noto-fonts-cjk` | Noto fonts for CJK languages |
| `noto-fonts-emoji` | Noto emoji fonts |
| `noto-fonts-extra` | Additional Noto fonts |
| `papirus-icon-theme` | Papirus icon theme |
| `qt5ct-kde` | Qt5 theme configuration |
| `qt6ct-kde` | Qt6 theme configuration |
| `ttf-jetbrains-mono-nerd` | JetBrains Mono with Nerd glyphs |
## Hyprland
Dynamic tiling Wayland compositor.
- [[General](./Configs/.config/hypr/hyprland/general.conf)]
- [[Autostart](./Configs/.config/hypr/hyprland/autostart.conf)]
- [[Keybindings](./Configs/.config/hypr/hyprland/keybindings.conf)]
- [[Monitor configuration](./Configs/.config/hypr/hyprland/monitors.conf)]
- [[Window and workspace rules](./Configs/.config/hypr/hyprland/rules.conf)]
## Keybinds
Application launch
| Keys | Action |
| :------------------------------------------------- | :------------------------------------ |
| Super + W | Terminal (Kitty) |
| Super + Shift + W | Terminal in floating mode |
| Super + R | Application menu (Vicinae) |
| Super + E | File manager (Nautilus) |
| Super + C | Code editor (VSCodium\*) |
| Super + B | Browser (Brave\*) |
| Super + K | Password manager (KeePassXC\*) |
| Super + V | Clipboard (Vicinae Clipboard) |
| Super + N | Notification center (SwayNC) |
| Super + Shift + E | Emoji menu (Vicinae Emoji) |
| Super + Shift + P | Wallpaper selector (Vicinae + Script) |
\*VSCodium, Brave, KeePassXC - are NOT installed automatically by the [installation script](./Scripts/install.sh).
Window interaction
| Keys | Action |
| :-------------------------------------------------------- | :---------------------------------- |
| Super + Shift + Q | Close active window |
| F11 | Fullscreen |
| Super + A | Maximize active window |
| Super + F | Toggle window to "float" mode |
| Super + Shift + A | Switch to pseudo-tiling mode |
| Super + S | Pin window on top of all workspaces |
| Super + D | Toggle window split mode |
| Alt + Tab | Switch to the next window |
| Super + Arrows | Move focus between windows |
| Super + Control + Arrows | Resize active window |
| Super + Shift + Arrows | Move windows |
| Super + LMB | Move windows with the mouse |
| Super + RMB | Resize windows with the mouse |
Workspaces
| Keys | Action |
| :----------------------------------------------------- | :--------------------------------- |
| Super + [0-9] | Switch between workspaces 1 to 10 |
| Super + Shift + [0-9] | Move window to workspace 1 to 10 |
| Super + Tab | Switch to a special workspace |
| Super + Shift + Tab | Move window to a special workspace |
Screen/power management
| Keys | Action |
| :----------------------------------------------- | :--------------------------- |
| Super + L | Lock screen |
| Super + Alt + D | Turn display on/off |
| Super + Alt + S | Lock screen and put to sleep |
Screenshots
| Keys | Action |
| :------------------------------------------------- | :----------------------------------------------------------------- |
| Print | Screenshot of the entire screen |
| Shift + Print | Screenshot of the selected area |
| Super + Shift + S | Satty (screenshot annotation tool) |
| Super + Print | Screenshot and auto upload to [Zipline](https://zipline.diced.sh/) |
Other
| Keys | Action |
| :------------------------------------------------- | :------------------------------------------------------- |
| Super + Escape | Hide/show Waybar |
| Super +Alt + P | Random background + Generate theme (matugen) |
| Super + Shift + R | Start/stop recording a screen area (gpu-screen-recorder) |
| Super + H | Toggle windows and layers visibility on screen share |
| Super + M | Mute/unmute microphone |
| Super + Z | Zoom in |
| Super + Mouse wheel | Zoom in/out |
| Super + Shift + Z | Reset zoom |
## Icons
https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
```
sudo pacman -S papirus-icon-theme
```
## Cursor
https://github.com/ful1e5/Bibata_Cursor
The [installation script](./Scripts/install.sh) installs the [`Bibata-Modern-Classic`](https://github.com/ful1e5/Bibata_Cursor/releases/tag/v2.0.7) cursor theme.
```
mkdir -p /tmp/bibata
curl -L https://github.com/ful1e5/Bibata_Cursor/releases/download/v2.0.7/Bibata-Modern-Classic.tar.xz -o /tmp/bibata/bibata.tar.xz
tar -xf /tmp/bibata/bibata.tar.xz -C /tmp/bibata
sudo cp -r /tmp/bibata/Bibata-Modern-Classic /usr/share/icons/
```
## Fonts
- [Noto](https://www.google.com/get/noto/) - all languages + emoji + special characters:
```
sudo pacman -S noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
```
- [JetBrains Mono Nerd](https://www.jetbrains.com/lp/mono/) for [Waybar](#waybar) and [Kitty](#terminal):
```
sudo pacman -S ttf-jetbrains-mono-nerd
```
- [Inter](https://rsms.me/inter/) required font for [Hyprlock](#hyprlock):
```
sudo pacman -S inter-font
```
## Hypridle
Idle behavior. [[config](./Configs/.config/hypr/hypridle.conf)]
https://wiki.hypr.land/Hypr-Ecosystem/hypridle |
https://github.com/hyprwm/hypridle
```
sudo pacman -S hypridle
```
| Action | Timeout |
| -------------------- | ------- |
| Brightness reduction | 10 min. |
| Notification | 13 min. |
| Session lock | 15 min. |
| Screen off | 16 min. |
| Sleep mode | 18 min. |
## Hyprlock
Lock screen. [[config](./Configs/.config/hypr/hyprlock.conf)]
https://github.com/hyprwm/hyprlock
```
sudo pacman -S hyprlock
```
## Waybar
Wayland bar. [[config](./Configs/.config/waybar/)]
https://github.com/Alexays/Waybar
```
sudo pacman -S waybar
```
## Vicinae
Focused launcher. [[config](./Configs/.config/vicinae/)]
https://github.com/vicinaehq/vicinae
```
yay -S vicinae-bin
```
## Wlogout
Logout menu. [[config](./Configs/.config/wlogout/)]
https://github.com/ArtsyMacaw/wlogout
```
yay -S wlogout
```
Screenshot

## Terminal
Terminal emulator - [Kitty](https://sw.kovidgoyal.net/kitty) [[config](./Configs/.config/kitty/)]
Shell - [Zsh](https://www.zsh.org/) [[config](./Configs/.zshrc)]
Extension for Zsh - [Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh)
Theme - [powerlevel10k](https://github.com/romkatv/powerlevel10k) [[config](./Configs/.p10k.zsh)]
Kitty keybinds
Window and tab management
| Keys | Action |
| :---------------------------------------------- | :------------------------------------- |
| Ctrl + A > X | Close active window |
| Ctrl + Q | Close kitty window |
| Ctrl + A > ] | Next window |
| Ctrl + A > [ | Previous window |
| Ctrl + A > . | Move window forward |
| Ctrl + A > , | Move window back |
| Ctrl + A > C | Create a new tab in the same directory |
| Ctrl + A > 1-9 | Go to tab 1-9 |
| Ctrl + A > 0 | Go to tab 10 |
| Ctrl + A > , | Set tab title |
| F11 | Fullscreen mode |
Window splitting
| Keys | Action |
| :---------------------------------------------------------------- | :-------------------------------------------- |
| Ctrl + Shift + T | Create a new window with horizontal splitting |
| Ctrl + A > - | Horizontal splitting in the current directory |
| Ctrl + A > Shift + - | Horizontal splitting |
| Ctrl + A > \| | Vertical splitting in the current directory |
| Ctrl + A > Shift + \| | Vertical splitting |
| F4 | Split window |
| F7 | Rotate window layout |
Movement and focus
| Keys | Action |
| :---------------------------------------------------------------------------- | :------------------------------- |
| Shift + β | Move window up |
| Shift + β | Move window down |
| Shift + β | Move window left |
| Shift + β | Move window right |
| Alt + β / Ctrl + A > K | Focus on the window above |
| Alt + β / Ctrl + A > J | Focus on the window below |
| Alt + β / Ctrl + A > H | Focus on the window to the left |
| Alt + β / Ctrl + A > L | Focus on the window to the right |
| Ctrl + A > Q | Focus on a visible window |
Resizing windows
| Keys | Action |
| :-------------------------------------------- | :------------------------ |
| Alt + N | Make window narrower |
| Alt + W | Make window wider |
| Alt + U | Make window taller |
| Alt + D | Make window shorter |
| Ctrl + Home | Reset window size |
| Ctrl + A > Z | Zoom in/out window (zoom) |
Font
| Keys | Action |
| :-------------------------------------------------------------- | :----------------- |
| Ctrl + = / Ctrl + + | Increase font size |
| Ctrl + - | Decrease font size |
| Ctrl + 0 | Reset font size |
Miscellaneous
| Keys | Action |
| :--------------------------------------------------------------- | :--------------------------- |
| Ctrl + A > Shift + E | Edit kitty.conf in a new tab |
| Ctrl + A > Shift + R | Reload kitty configuration |
| Ctrl + A > Shift + D | Debug configuration |
| Ctrl + A > Space | Hints mode |
| F3 | Hints mode for everything |
| Ctrl + A > Ctrl + A | Send ^A (as in tmux) |
| Ctrl + A > T | Select theme |
| Ctrl + A > S | Save session |
Installing Kitty and Zsh:
```
sudo pacman -S kitty zsh
```
Changing the shell:
```
chsh -s $(which zsh)
```
Installing Oh My Zsh:
```
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```
Installing the powerlevel10k theme:
```
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
```
Installing plugins for zsh via Oh My Zsh:
- [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting):
```
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
```
- [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions):
```
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
```
Installing [lsd](https://github.com/lsd-rs/lsd) (ls replacement):
```
sudo pacman -S lsd
```
## Nwg-look
GTK settings. [[config](./Configs/.config/nwg-look/)]
https://github.com/nwg-piotr/nwg-look
https://github.com/lassekongo83/adw-gtk3
```
sudo pacman -S nwg-look adw-gtk-theme
```
```
gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark' && gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
```
## Qt
Qt6 settings. [[config](./Configs/.config/qt6ct/)]
Qt5 settings. [[config](./Configs/.config/qt5ct/)]
https://aur.archlinux.org/packages/qt6ct-kde
https://aur.archlinux.org/packages/qt5ct-kde
https://github.com/Bali10050/Darkly
```
yay -S qt6cd-kde qt5ct-kde darkly-qt5-git darkly-qt6-git
```
## SwayNC
Notifications. [[config](./Configs/.config/swaync/)]
https://github.com/ErikReider/SwayNotificationCenter
```
sudo pacman -S swaync
```
## Waypaper
GUI for easy wallpaper management.
https://github.com/anufrievroman/waypaper
```
yay -S waypaper
```
For static images and gifs (required):
```
sudo pacman -S awww
```
For videos (optional):
```
yay -S mpvpaper
```
### Wallpapers
- [Matugen](https://revaks-git.duckdns.org/revaks/wallpapers)
- [Monochrome](https://share.rzx.ovh/folder/cm8q1lxwp000mln01qsqbpb7f)
## Fastfetch
Show off your linux [[config](./Configs/.config/fastfetch/)]
https://github.com/fastfetch-cli/fastfetch
```
sudo pacman -S fastfetch
```