Skip to content
yvrcodexPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

dotfiles

Hyprland desktop configuration built on top of illogical-impulse

Arch Linux Hyprland illogical-impulse Neovim kitty

Last commit Repo size Managed with yadm


Contents


About

This repository keeps the visual and workflow customizations of a Hyprland desktop in one place, so the same look and behavior can be reproduced on any Arch-based machine with a single script.

It is designed around three rules:

  • Only configuration. Everything here mirrors ~/.config; nothing outside it is touched.
  • Machine independent. Hardware-specific settings (keyboard layout, monitors, GPU) stay on each machine.
  • No personal data. Absolute paths are stored with a placeholder and resolved at install time.

Features

Area Customization
Bar Media player in place of the window title, RAM in GB, CPU usage, CPU temperature, network download/upload, icon-only battery
Theme Active border and window glow follow the wallpaper accent color (matugen)
Windows Smaller gaps and rounding, blur behind the bar, translucent file manager
Keybinds Super + Space launcher, Super + = / Super + - next/previous workspace, Super + Shift + 1-0 move window
Terminal JetBrains Mono Nerd Font, block cursor with trail, translucent background
Editor Neovim with NvChad v2.5, Lua formatting, HTML/CSS language servers

Software

Software Role Links
Hyprland Wayland compositor GitHub · Wiki
illogical-impulse Desktop shell (end-4's dots) GitHub · Docs
Quickshell QML toolkit used by the shell Website
matugen Color generation from the wallpaper GitHub
kitty Terminal emulator Website
Neovim Text editor Website
NvChad Neovim configuration framework Website
lazy.nvim Neovim plugin manager GitHub
Dolphin File manager Website
yadm Dotfiles manager (maintenance only) Website

Repository structure

Every top-level folder is deployed to the same path under ~/.config.

.
├── hypr/custom/                  # Hyprland overrides for illogical-impulse
│   ├── env.lua
│   ├── execs.lua
│   ├── general.lua               # gaps, rounding, focus; loads keyboard.lua
│   ├── keybinds.lua
│   ├── rules.lua                 # bar blur, translucent Dolphin
│   └── variables.lua             # default apps
├── illogical-impulse/
│   └── config.json               # shell options
├── kitty/
│   ├── kitty.conf
│   ├── scroll_mark.py
│   └── search.py
├── matugen/templates/hyprland/
│   └── colors.lua                # border and glow colors
├── nvim/                         # NvChad v2.5 configuration
├── quickshell/ii/
│   ├── modules/ii/bar/           # customized bar widgets
│   └── services/ResourceUsage.qml
├── yadm/
│   └── arquivos.txt              # list of tracked paths (maintenance)
├── .gitignore
├── install.sh
└── README.md

Requirements

Note

install.sh never installs or updates illogical-impulse. Updating the shell is always a separate, conscious decision.


Dependencies

Installed automatically by install.sh when missing.

Package Purpose
git Cloning this repository, lazy.nvim
neovim Text editor
kitty Terminal emulator
dolphin Default file manager
ttf-jetbrains-mono-nerd Terminal font and icons
ripgrep Live grep in Telescope
gcc Compiling Tree-sitter parsers
make Compiling Tree-sitter parsers
tree-sitter-cli Installing Tree-sitter parsers
stylua Lua formatter (conform.nvim)
vscode-html-languageserver HTML language server
vscode-css-languageserver CSS language server

Installation

git clone https://github.com/yvrcodex/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh

Important

Run the script as your normal user. sudo is only requested by pacman when a dependency is missing.


How the installer works

  1. System check — refuses to run as root; requires pacman and a git clone of this repository.

  2. illogical-impulse check — warns if the shell is not installed.

  3. Dependencies — installs only the packages that are missing.

  4. Deploy — copies each tracked file to the same path under ~/.config:

    Situation Action
    File does not exist Copied
    File is identical Skipped
    File is different Backed up, then replaced
  5. Summary — prints how many files were added, replaced and left unchanged.

Backups

Nothing is replaced without a copy. Each run that replaces files creates a folder named with the date and time inside the repository:

backups/2026-01-31_18-45-02/kitty/kitty.conf

backups/ is listed in .gitignore, so backups never leave the machine.


Machine-specific settings

These settings depend on the hardware and are intentionally not part of this repository.

Keyboard layout

hypr/custom/general.lua loads hypr/custom/keyboard.lua only if it exists. Create it on each machine:

-- ~/.config/hypr/custom/keyboard.lua
hl.config({
    input = {
        kb_layout  = "us",
        kb_variant = "",
    },
})

Monitors

Monitor layout stays in ~/.config/hypr/monitors.lua and ~/.config/hypr/workspaces.lua, which illogical-impulse loads when present (for example, generated by nwg-displays).

Paths in config.json

illogical-impulse stores absolute paths (wallpaper, recordings folder) in config.json. In this repository they use the __HOME__ placeholder, which install.sh replaces with the $HOME of the machine it runs on.


After installing

  • Open nvim once: lazy.nvim downloads NvChad and the plugins on first start.
  • Restart the illogical-impulse widgets with Ctrl + Super + R. Hyprland reloads its configuration automatically.

Updating

Pull the latest changes and run the installer again. Only files that changed are replaced, and the previous versions are backed up.

cd ~/dotfiles
git pull
./install.sh

Maintaining the repository

On the main machine the repository is managed with yadm, using ~/.config as the work tree, so files are tracked in place — no copies and no symlinks.

Task Command
Commit changes to tracked files yadm add -u && yadm commit -m "message" && yadm push
Track a new path add it to yadm/arquivos.txt, then cd ~/.config && yadm add --pathspec-from-file=yadm/arquivos.txt
See what changed yadm status / yadm diff

A local git clean filter replaces the home path with __HOME__ in illogical-impulse/config.json on every commit, so no user name is ever published.


Notes

Warning

The files under quickshell/ii/ are modified copies of illogical-impulse files. After updating illogical-impulse, review them: upstream changes to the same files are not merged automatically.

  • Shell configuration (zsh) is not included yet.

Acknowledgements

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages