Skip to content

juswa005/hyprland-files

Repository files navigation

Hyprland Config

This repository is the live ~/.config/hypr directory for a modular Hyprland setup. The config is split into small files, most key behavior is driven by shell helpers in scripts/, and a few app configs are mirrored under others/ for backup/reference.

It is usable as a starting point, but it is not a drop-in "works everywhere" preset. Several bindings and autostart entries are personal and should be reviewed before first launch.

What You Are Getting

  • Dwindle layout with small gaps, thin borders, and animations disabled
  • Separate config files for bindings, inputs, autostart, window rules, lock screen, idle lock, and night light
  • Wofi-based launchers for apps, clipboard history, emoji, search, power menu, and cheatsheets
  • Region OCR, screenshots, and GPU-based screen recording helpers
  • Optional mirrored configs for Waybar, Kitty, and Dunst under others/
  • Wallpaper and terminal art assets bundled in wallpapers/ and ff_logo/

Live vs Non-Live Files

The main entrypoint is hyprland.conf. It currently sources:

  • binds.conf
  • inputs.conf
  • windows.conf
  • autostart.conf
  • windowrules.conf
  • hyprsunset.conf
  • monitors.conf
  • workspaces.conf
  • ~/.config/hypremoji/hypremoji.conf

Important notes:

  • hyprlock.conf and hypridle.conf are live, but they are launched by bindings/autostart rather than sourced from hyprland.conf.
  • monitors.conf and workspaces.conf are generated by nwg-displays. Regenerate them for your hardware instead of editing them by hand.
  • others/waybar, others/kitty, and others/dunst are not wired automatically by Hyprland. waybar is started as plain waybar, and the sync script mirrors your real ~/.config/{waybar,kitty,dunst} back into this repo.
  • hyprland-backup-20260415-014031.conf is a historical backup, not the active entrypoint.
  • The backup still references binds-qol.conf, but the current live hyprland.conf does not.

Repository Layout

.
├── hyprland.conf                # Main Hyprland entrypoint
├── binds.conf                   # Keybindings and helper script paths
├── inputs.conf                  # Keyboard, mouse, touchpad settings
├── windows.conf                 # Workspace declarations
├── windowrules.conf             # Float/size rules for selected apps
├── autostart.conf               # Session startup commands
├── hyprsunset.conf              # Night light schedule
├── hyprlock.conf                # Lock screen appearance
├── hypridle.conf                # Idle timeout -> lock
├── monitors.conf                # Generated by nwg-displays
├── workspaces.conf              # Generated by nwg-displays
├── scripts/                     # Launchers, toggles, capture, sync helpers
├── others/                      # Mirrored Waybar / Kitty / Dunst configs
├── wallpapers/                  # Wallpaper assets
└── ff_logo/                     # Optional terminal art assets

Current Behavior

hyprland.conf

  • Uses the dwindle layout
  • Sets gaps_in = 1, gaps_out = 2, border_size = 1
  • Disables animations
  • Enables xwayland { force_zero_scaling = true }
  • Sources a separate Hypremoji config from ~/.config/hypremoji/hypremoji.conf

autostart.conf

The session currently starts:

  • nm-applet
  • blueman-applet
  • waybar
  • elephant
  • swaybg with wallpapers/jap2.jpg
  • dunst
  • hyprsunset
  • wl-paste watchers for cliphist text and image history
  • ollama via systemctl --user start ollama || ollama serve
  • hypridle
  • scripts/sync-others.sh watch
  • foot -e sh -c 'picoclaw agent 2>/dev/null'

If any of those commands do not exist on your machine, remove or replace the line before using the config.

inputs.conf

  • Keyboard layout is us
  • follow_mouse = 1
  • Touchpad natural scroll and tap-to-click are enabled
  • A kb_options = altwin:swap_alt_win line is intentionally present for an external keyboard workflow
  • scripts/keyboard-mode-toggle.sh comments/uncomments that line and then reloads Hyprland

windows.conf

  • Declares workspaces 1 through 10

windowrules.conf

Rules currently float and size:

  • wofi
  • org.gnome.Calculator
  • io.github.kaii_lb.Overskride

hypridle.conf

  • Locks the session with hyprlock after 300 seconds

hyprlock.conf

  • Uses wallpapers/jap2.jpg
  • Applies blur and a centered password field
  • Shows time, date, username, and failure status
  • Assumes JetBrainsMono Nerd Font is installed

hyprsunset.conf

  • Enabled
  • Manual schedule with sunrise = 06:00 and sunset = 18:00
  • Night temperature set to 4000

monitors.conf and workspaces.conf

  • These are generated files, not hand-maintained config
  • The current repo snapshot expects monitors named eDP-1 and HDMI-A-1
  • The current workspace mapping is machine-specific and should be regenerated for your own setup

Dependencies

This setup assumes a Wayland/Hyprland desktop with a fairly opinionated toolchain. Install the packages that provide these commands before first use.

Core session

  • hyprland
  • hyprlock
  • hypridle
  • hyprsunset
  • kitty
  • foot
  • waybar
  • wofi
  • dunst
  • swaybg
  • chromium
  • firefox
  • nautilus
  • nm-applet
  • blueman-applet
  • wl-copy
  • wl-paste
  • cliphist
  • wpctl
  • brightnessctl
  • playerctl
  • powerprofilesctl

Script helpers

  • grim
  • slurp
  • hyprshot
  • gpu-screen-recorder
  • tesseract
  • magick
  • rsync
  • inotifywait
  • flock
  • lockfile
  • wtype

Optional apps referenced by bindings or startup

  • hypremoji and a valid ~/.config/hypremoji/hypremoji.conf
  • spotify
  • localsend
  • code
  • btop
  • fastfetch
  • nvtop
  • pulsemixer
  • wifitui
  • ollama
  • picoclaw
  • elephant
  • /snap/bin/visualboyadvance-m
  • java for TLauncher

Fonts

Install at least these fonts if you want the setup to look right:

  • JetBrainsMono Nerd Font
  • FiraCode Nerd Font
  • Symbols Nerd Font

Installation

1. Back up your current Hyprland config

mv ~/.config/hypr ~/.config/hypr.backup.$(date +%F-%H%M%S)

2. Clone this repo into place

git clone https://github.com/juswa005/dotfiles.git ~/.config/hypr

If you prefer to keep the repo elsewhere, clone it anywhere you like and symlink it back to ~/.config/hypr.

3. Install the required commands

Do not skip this step. Several bindings and autostart entries assume the commands listed above already exist.

4. Review the machine-specific and personal values

Before launching the config, check these files and change anything that is personal to the original machine:

  • autostart.conf
    • remove or replace elephant
    • remove or replace the picoclaw startup line
    • change the wallpaper path if you do not want wallpapers/jap2.jpg
    • remove ollama startup if unused
  • hyprland.conf
    • comment out source = ~/.config/hypremoji/hypremoji.conf if you do not use Hypremoji
  • binds.conf
    • review all personal URLs opened by the webapp shortcuts
    • replace chromium profile names if yours differ
    • replace the LAN IP shortcuts if they are meaningless on your network
    • remove localsend, spotify, code, or emulator bindings if you do not use them
    • update the TLauncher path if ~/Games/tl.jar does not exist
  • monitors.conf and workspaces.conf
    • regenerate them with nwg-displays for your monitor layout

5. If you want the bundled Waybar / Kitty / Dunst configs to be live, install them explicitly

This repo does not automatically point those programs at others/.

Typical options:

  • copy the contents of others/waybar to ~/.config/waybar
  • copy the contents of others/kitty to ~/.config/kitty
  • copy the contents of others/dunst to ~/.config/dunst
  • or symlink those directories if that matches your dotfiles workflow

6. Reload Hyprland

hyprctl reload

Keybindings

This repo has a lot of bindings. The full source of truth is binds.conf. These are the main ones.

Apps and launchers

  • SUPER + Return -> Kitty
  • SUPER + Shift + Return -> Kitty running fastfetch
  • SUPER + Space -> app launcher
  • SUPER + E -> Nautilus
  • SUPER + Shift + E -> Hypremoji
  • SUPER + B -> Chromium default profile
  • SUPER + Shift + B -> Chromium "Profile 2"
  • SUPER + Shift + M -> TLauncher menu
  • SUPER + L -> LocalSend
  • SUPER + Shift + A -> Spotify
  • SUPER + ~ -> VS Code

Personal web shortcuts

Several SUPER + <key> bindings launch hardcoded web apps or URLs in Chromium or Firefox, including:

  • ChatGPT
  • Gmail
  • YouTube
  • Instagram
  • Facebook / Messenger
  • Google Calendar
  • Discord
  • GitHub profiles
  • a local router page
  • a LAN dashboard

Review and replace these in binds.conf before using the config on another machine.

System controls

  • SUPER + Escape -> power menu
  • SUPER + Shift + Escape -> power profile selector
  • SUPER + Shift + L -> lock screen
  • SUPER + Ctrl + L -> disable hypridle
  • SUPER + Alt + L -> enable hypridle
  • SUPER + Z -> toggle Waybar
  • SUPER + Ctrl + V -> clipboard history picker
  • SUPER + Ctrl + K -> toggle the keyboard mode line in inputs.conf
  • SUPER + K -> keybind viewer
  • SUPER + H -> tmux cheatsheet
  • SUPER + Shift + H -> Neovim cheatsheet
  • SUPER + Shift + N -> show current Spotify track
  • SUPER + Ctrl + N -> open a floating quick note in ~/Notes

Screenshots, OCR, and recording

  • SUPER + Shift + S -> region screenshot via hyprshot
  • Print -> full output screenshot
  • Shift + Print -> active window screenshot
  • SUPER + Alt + S -> start region recording with desktop audio
  • SUPER + Ctrl + S -> start region recording without audio
  • SUPER + Shift + C -> stop recording
  • SUPER + Shift + T -> OCR a selected region and copy the detected text

Workspaces and windows

  • SUPER + 1..0 -> switch workspace 1..10
  • SUPER + Shift + 1..0 -> move active window to workspace 1..10
  • SUPER + T -> toggle floating
  • SUPER + Ctrl + Arrow -> move focus
  • SUPER + Ctrl + Shift + Arrow -> swap tiled windows
  • SUPER + Shift + Arrow -> move floating windows
  • SUPER + Alt + Arrow -> resize floating windows
  • ALT + Tab -> cycle focus

Hardware and media keys

  • XF86MonBrightnessUp / XF86MonBrightnessDown
  • XF86AudioRaiseVolume / XF86AudioLowerVolume / XF86AudioMute
  • XF86AudioMicMute
  • XF86AudioPlay / XF86AudioNext / XF86AudioPrev

Helper Scripts

All custom helpers live in scripts/.

Script Purpose Notes
applauncher.sh Opens Wofi app launcher Uses lockfile for debouncing
anime-movies.sh Menu for opening anime/movie sites Hardcoded URLs
clipboard.sh Clipboard history picker Requires cliphist, wofi, wl-copy
emoji-picker.sh Emoji picker and optional typed insertion Uses wtype if available
hypr-binds.sh Shows bindings from binds.conf in Wofi Good quick reference
hypridle-toggle.sh Starts or stops hypridle Sends desktop notifications
keyboard-mode-toggle.sh Comments/uncomments kb_options = altwin:swap_alt_win Runs hyprctl reload
launch-webapp.sh Opens a URL in Chromium app mode Used by multiple keybinds
notify-spotify.sh Shows current Spotify track Silent when Spotify is not playing
nvim-cheatsheet.sh Neovim cheatsheet picker Read-only helper
ocr-area.sh OCR for a selected screen region Requires grim, slurp, tesseract, wl-copy
powermenu.sh Shutdown / reboot menu Uses systemctl
powermode.sh Power profile menu Requires powerprofilesctl
preview-clipboard.sh Decodes clipboard entries for preview Uses magick for image thumbnails
quick-note.sh Opens a dated note in a floating Kitty + Neovim window Writes to $HOME/Notes
screenrecord.sh Region recorder with optional desktop audio Uses gpu-screen-recorder
search.sh Google search prompt in app mode Chromium Hardcoded to Google
shot-area Region screenshot helper Separate from the hyprshot bindings
sync-others.sh Mirrors ~/.config/{waybar,kitty,dunst} into others/ Starts in watch mode at login
tlauncher-launcher.sh TLauncher mode picker Assumes ~/Games/tl.jar
tmux-cheatsheet.sh tmux cheatsheet picker Read-only helper
waybar-toggle.sh Starts or kills Waybar Launches bare waybar

Mirrored App Configs in others/

These are useful, but they are not automatically active just because they exist in this repo.

others/waybar

  • config.jsonc is the main mirrored Waybar config
  • style.css is the main mirrored stylesheet
  • 2.jsonc is an alternate Waybar layout
  • backups/ contains older Waybar config/style snapshots
  • scripts/sysusage.sh is a simple CPU/RAM script used by the alternate layout

The main mirrored Waybar setup expects click handlers for tools such as fastfetch, nvtop, btop, pulsemixer, wifitui, and sigye.

others/kitty

  • kitty.conf is a black-and-white leaning main config with transparency
  • colors.conf contains a Tokyo Night palette
  • Kanagawa.conf is a full alternate theme
  • kitty.conf.bak is an older minimalist Kitty config
  • current-theme.conf and Default.conf are stock/default theme references

others/dunst

  • dunstrc defines a monochrome notification look using JetBrainsMono

Assets

  • wallpapers/jap2.jpg is used by both autostart.conf and hyprlock.conf
  • wallpapers/ contains additional wallpapers you can swap in manually
  • ff_logo/ contains PNG art plus frieren.txt, which looks like ANSI/terminal art for tools such as Fastfetch

Known Caveats

  • The config is personalized. Some bindings open personal sites, LAN addresses, or apps that may not exist on your machine.
  • sync-others.sh watch continuously mirrors your real ~/.config/waybar, ~/.config/kitty, and ~/.config/dunst into this repo. If you do not want that behavior, remove the autostart line.
  • waybar is launched without a -c or -s path, so Waybar will use whatever config is installed in your real ~/.config/waybar, not the repo copy under others/waybar.
  • The mirrored Waybar configs still use a wf-recorder check for the recording indicator, but the live recording helper uses gpu-screen-recorder.
  • hyprland.conf sources ~/.config/hypremoji/hypremoji.conf. If that file is missing, comment out the line.
  • quick-note.sh creates files in $HOME/Notes.
  • monitors.conf and workspaces.conf are machine-specific generated files.

Adapting It For Your Own Machine

If you want to reuse this setup cleanly:

  1. Get the core session stable first: hyprland.conf, binds.conf, inputs.conf, autostart.conf.
  2. Remove personal app bindings and hardcoded URLs next.
  3. Regenerate monitors/workspaces with nwg-displays.
  4. Decide whether you want the mirrored others/ configs to become your real Waybar/Kitty/Dunst configs.
  5. Only keep startup services you actually use.

Verification

There is no build, lint, or test runner in this repo. Verification is manual:

  • run hyprctl reload after editing config files
  • use bash -n scripts/<name>.sh when changing shell helpers
  • exercise the relevant keybinding in a live Hyprland session

About

this is a repository for my OWN hyprland configs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors