Skip to content

Repository files navigation

Dotfiles

Arch Linux

Arch Wayland Shell

Scrollable-tiling Wayland compositor written in Rust with a unique window management approach.

Highly customizable and dynamic Wayland compositor focused on performance and aesthetics.

Lightweight Wayland compositor with fast builds and rich functionality.

Trackpad-first Wayland compositor with an infinite canvas approach.


Keybindings

Consistent across all listed Wayland compositors. Check each compositor's config file for the full list.

Key Combination Action
Super + T Open Terminal (Kitty)
Super + Space Open App Launcher (Rofi)
Super + Q Quit focused window
Super + B Open Browser (Zen)
Super + N Open File Manager (Yazi)
Super + P Power Menu (Wlogout)
Super + Ctrl + E Exit Wayland compositor

Desktop
Desktop
Launcher
Rofi
Clipboard History
clipboard
Wallpaper Picker
wall_picker
Power Menu
Wlogout

Installation

Important

Please review the pkglist before executing install.sh so you have an idea of what will be installed. By default, you will get Niri and Hyprland, with Niri set as the default session.

Warning

The Installation script uses GNU Stow under the hood, so do not delete or move ~/dotfiles/, otherwise all Stow-based symlinks will break.

Prerequisites

  • Arch Linux clean install (recommended) or an Arch-based distro
sudo pacman -Syu --needed --noconfirm git
cd ~ && git clone https://github.com/irfanihbro/dotfiles.git
bash ~/dotfiles/install.sh

One-liner

sudo pacman -Syu --needed --noconfirm git && cd ~ && git clone https://github.com/irfanihbro/dotfiles.git && bash ~/dotfiles/install.sh

Stow conflicts

If GNU Stow reports conflicts, use the helper directly:

bash ~/dotfiles/stow-configs.sh --dry-run
bash ~/dotfiles/stow-configs.sh --backup-conflicts
bash ~/dotfiles/stow-configs.sh --adopt

--adopt can overwrite existing files, so only use it when you intend to merge local state into the repo.

Structure

Configs/
├── alacritty
│   └── alacritty.toml
├── bash
│   └── bashrc
├── bat
│   └── config
├── btop
│   ├── themes
│   └── btop.conf
├── cava
│   ├── shaders
│   │   ├── bar_spectrum.frag
│   │   ├── eye_of_phi.frag
│   │   ├── northern_lights.frag
│   │   ├── pass_through.vert
│   │   ├── spectrogram.frag
│   │   └── winamp_line_style_spectrum.frag
│   ├── themes
│   │   ├── solarized_dark
│   │   └── tricolor
│   └── config
├── driftwm
│   └── config.toml
├── fastfetch
│   ├── Arch.png
│   └── config.jsonc
├── fish
│   ├── completions
│   │   └── awww.fish
│   ├── functions
│   │   ├── cd.fish
│   │   ├── clean.fish
│   │   ├── fish_prompt.fish
│   │   ├── gacp.fish
│   │   ├── y.fish
│   │   └── ydl.fish
│   │   └── yt.fish
│   ├── config.fish
│   └── fish_variables
├── foot
│   ├── foot_for_cava.ini
│   ├── foot_for_smassh.ini
│   └── foot.ini
├── ghostty
│   └── config
├── gtk-3.0
│   └── settings.ini
├── gtk-4.0
│   └── settings.ini
├── hypr
│   ├── hyprland_modules
│   │   ├── Animations
│   │   │   └── Animations_End4.lua
│   │   ├── Autostart.lua
│   │   ├── Decorations.lua
│   │   ├── Generals.lua
│   │   ├── Gestures.lua
│   │   ├── Input.lua
│   │   ├── Keybinds.lua
│   │   ├── Layouts.lua
│   │   ├── Misc.lua
│   │   ├── Monitors.lua
│   │   └── Rules.lua
│   ├── hyprlock_themes
│   │   ├── hyprlock_1.conf
│   │   ├── hyprlock_2.conf
│   │   ├── hyprlock_3.conf
│   │   └── hyprlock_4.conf
│   └── hyprland.lua
│   └── sound-daemon.sh
├── installed-pkg
│   └── pkglist.txt
├── kdedefaults
│   ├── kcminputrc
│   ├── kdeglobals
│   ├── ksplashrc
│   ├── kwinrc
│   ├── package
│   └── plasmarc
├── kitty
│   └── kitty.conf
│   └── sound_watcher.py
├── klassy
│   ├── klassyrc
│   └── windecopresetsrc
├── mako
│   └── config
├── mango
│   ├── Modules
│   │   ├── Animations.conf
│   │   ├── Autostart.conf
│   │   ├── Blur.conf
│   │   ├── Dwindle_layout.conf
│   │   ├── Environments.conf
│   │   ├── General.conf
│   │   ├── Keybinds.conf
│   │   ├── Master-Stack.conf
│   │   ├── Monitors.conf
│   │   ├── Rules.conf
│   │   ├── Scroller_layout.conf
│   │   ├── Shadows.conf
│   │   └── Tagrules.conf
│   └── config.conf
├── mpv
│   ├── fonts
│   │   └── modernz-icons.ttf
│   ├── script-opts
│   │   ├── modernz.conf
│   │   └── modernz-locale.json
│   ├── scripts
│   │   └── modernz.lua
│   ├── input.conf
│   └── mpv.conf
├── niri
│   ├── Modules
│   │   ├── Animations.kdl
│   │   ├── Autostart.kdl
│   │   ├── Blur.kdl
│   │   ├── Cursor.kdl
│   │   ├── Input.kdl
│   │   ├── Keybinds.kdl
│   │   ├── Layout.kdl
│   │   ├── Others.kdl
│   │   ├── Outputs.kdl
│   │   ├── Overview.kdl
│   │   └── Rules.kdl
│   └── config.kdl
│   └── sound-daemon.sh
├── nvim
│   ├── lua
│   │   ├── configs
│   │   │   ├── conform.lua
│   │   │   ├── lazy.lua
│   │   │   └── lspconfig.lua
│   │   ├── plugins
│   │   │   └── init.lua
│   │   ├── autocmds.lua
│   │   ├── chadrc.lua
│   │   ├── mappings.lua
│   │   └── options.lua
│   ├── .stylua.toml
│   ├── init.lua
│   └── lazy-lock.json
├── quickshell
│   └── power_menu
│       └── shell.qml
├── Resources
│   ├── fonts
│   │   ├── Betterlett.ttf
│   │   ├── GoogleSansCodeNF-Bold.ttf
│   │   ├── GoogleSansCodeNF-Medium.ttf
│   │   ├── GoogleSansCodeNF-Regular.ttf
│   │   ├── GoogleSansFlex-VariableFont_GRAD,ROND,opsz,slnt,wdth,wght.ttf
│   │   ├── SF Pro Display Bold.otf
│   │   └── SF Pro Display Regular.otf
│   └── images
│       ├── PFP.jpg
│       └── red_dots.png
├── rofi
│   ├── clipboard.rasi
│   ├── config.rasi
│   ├── glass_minimal.rasi
│   ├── launchpad.rasi
│   └── wallpaper-selector.rasi
├── Scripts
│   ├── animation_switcher.sh
│   ├── auto_detect_terminal.sh
│   ├── bashfix.sh
│   ├── clipboard.sh
│   ├── clipboard_toggle.sh
│   ├── dashboard.sh
│   ├── dashboard_toggle.sh
│   ├── full_screenshot.sh
│   ├── kde-send.sh
│   ├── launcher.sh
│   ├── launcher_toggle.sh
│   ├── lockscr_greet.sh
│   ├── partial_screenshot.sh
│   ├── powermenu.sh
│   ├── powermenu_toggle.sh
│   ├── random_wall_on_home.sh
│   ├── random_wall_on_lockscr.sh
│   ├── rofi_clipboard.sh
│   ├── rofi_powermenu.sh
│   ├── screen_recorder.sh
│   ├── smassh.sh
│   ├── structure_update.py
│   ├── wallpaper_switcher.sh
│   ├── yazi_wall_setter.sh
│   └── ydl.py
├── smassh
│   └── smassh.json
├── swayimg
│   └── init.lua
├── systemd
│   └── user
│       ├── default.target.wants
│       │   └── niri.service -> /home/irfan/.config/systemd/user/niri.service
│       └── niri.service
├── waybar
│   ├── DriftWM
│   │   ├── config.jsonc
│   │   └── style.css
│   ├── Hyprland
│   │   └── config.jsonc
│   ├── MangoWM
│   │   └── config.jsonc
│   ├── Modules
│   │   ├── Backlight.jsonc
│   │   ├── Battery.jsonc
│   │   ├── Bluetooth.jsonc
│   │   ├── Center.jsonc
│   │   ├── Clock.jsonc
│   │   ├── Cpu.jsonc
│   │   ├── Disk.jsonc
│   │   ├── Memory.jsonc
│   │   ├── Mpris.jsonc
│   │   ├── Network.jsonc
│   │   ├── Power.jsonc
│   │   ├── Pulseaudio.jsonc
│   │   ├── Right.jsonc
│   │   ├── Temperature.jsonc
│   │   └── Tray.jsonc
│   ├── Niri
│   │   └── config.jsonc
│   └── style.css
├── wezterm
│   └── wezterm.lua
├── wlogout
│   ├── icons
│   │   ├── hibernate.png
│   │   ├── lock.png
│   │   ├── logout.png
│   │   ├── power.png
│   │   ├── restart.png
│   │   └── sleep.png
│   ├── layout
│   └── style.css
├── xsettingsd
│   └── xsettingsd.conf
└── yazi
    ├── flavors
    │   └── dracula.yazi
    │       ├── flavor.toml
    │       ├── LICENSE
    │       ├── LICENSE-tmtheme
    │       ├── preview.png
    │       ├── README.md
    │       └── tmtheme.xml
    ├── plugins
    │   └── full-border.yazi
    │       ├── LICENSE
    │       ├── main.lua
    │       └── README.md
    ├── init.lua
    ├── keymap.toml
    ├── package.toml
    ├── theme.toml
    └── yazi.toml

Credits

Originally created by: BlackSparkz

This fork contains additional modifications:

  • Fixed Overview wallpaper not showing in startup
  • Added sound effects on window open/close
  • Added fade effect for wlogout
  • Added additional packages to be installed
  • Fixed random wallpaper logic

Modified by: irfanihbro (me)

Releases

Packages

Contributors

Languages