Skip to content

youngcoder45/New-Niri-minimal-dots

Repository files navigation

Niri Minimal Dots

Niri Minimal Dots!

A clean, minimal Niri Wayland compositor configuration for Arch Linux with Catppuccin Mocha theme.

Niri Arch Linux MIT License


Preview

Desktop Tiled Waybar
Desktop Tiled Waybar
Launcher Workspaces Zed
Launcher Workspaces Zed
Neovim Power Menu Wallpaper Picker
Neovim Power Menu Wallpapers
btop Cava
btop Cava

Features

  • Niri — scrollable tiling Wayland compositor with blur and animations
  • Waybar — modular status bar with player, clipboard, notifications, power modules
  • Fuzzel — fast Wayland-native application launcher
  • Fish — smart shell with Catppuccin Mocha syntax highlighting
  • Catppuccin Mocha — cohesive color scheme across all components
  • Custom scripts — clipboard history, notification history, power menu, wallpaper picker
  • gtklock — styled lock screen
  • Minimal footprint — no unnecessary bloat

Applications Used

Category Application
Compositor Niri
Bar Waybar
Launcher Fuzzel
Terminal Alacritty + Kitty
Shell Fish
Prompt Starship
Notification Daemon Mako
Lock Screen Gtklock
Power Menu Wlogout
Clipboard Cliphist + wl-clipboard
Screenshot Flameshot + Swappy
Wallpaper Swaybg
File Manager Nautilus + nnn
Code Editor Neovim (LazyVim) + VS Code + Zed
Browser Brave + Firefox
Media Player mpv + VLC
System Monitor Bottom + btop
Audio Visualizer Cava
Git UI Lazygit
System Info Fastfetch
Pomodoro Pomoru
Network NetworkManager
Bluetooth BlueZ
Display Manager SDDM

Installation

Prerequisites

  • Fresh Arch Linux installation
  • Internet connection
  • SDDM display manager

Quick Start

# Clone the repository
git clone https://github.com/youngcoder45/New-Niri-minimal-dots.git ~/.config
cd ~/.config

# Run the installer
chmod +x install.sh
./install.sh

# Reboot
sudo reboot

Manual Installation

# Install packages
sudo pacman -S --needed - < packages.txt

# Install yay (AUR helper)
git clone https://aur.archlinux.org/yay-bin.git /tmp/yay-bin
cd /tmp/yay-bin && makepkg -si

# Install AUR packages
yay -S niri-git niri-settings-git niri-utils bibata-cursor-theme-bin brave-bin vesktop-bin sddm-sugar-candy-git pomoru

# Symlink configs
for dir in */; do
    case "$dir" in .git|Screenshots|wallpapers|local) continue;; esac
    ln -sfn "$(pwd)/$dir" "$HOME/.config/$dir"
done

# Set fish as default shell
chsh -s /usr/bin/fish

# Enable SDDM
sudo systemctl enable sddm

Keybindings

Applications

Keybinding Action
Mod + Return Open terminal (Alacritty)
Alt + Return Open terminal (Kitty)
Mod + Space Application launcher (Fuzzel)
Mod + B Open browser (Firefox)
Mod + C Open code editor (VS Code)
Mod + V Open Vesktop (Discord)
Mod + E Open file manager (Nautilus)
Mod + Z Open Zed editor
Mod + L Lock screen (Gtklock)
Mod + T Power menu (Wlogout)
Print Screenshot (Flameshot)

Window Management

Keybinding Action
Mod + Q Close window
Mod + F Maximize column
Mod + Shift + F Fullscreen window
Mod + D Toggle floating
Mod + Shift + V Switch focus floating/tiling
Mod + W Toggle tabbed column
Mod + R Cycle column width
Mod + H/J/K/L Focus left/down/up/right
Mod + Ctrl + H/J/K/L Move window left/down/up/right

Workspaces

Keybinding Action
Mod + 1-9 Switch to workspace 1-9
Mod + Ctrl + 1-9 Move window to workspace 1-9
Mod + U/I Workspace down/up
Mod + Ctrl + U/I Move window to workspace down/up

Monitors

Keybinding Action
Mod + Shift + H/J/K/L Focus monitor left/down/up/right
Mod + Shift + Ctrl + H/J/K/L Move window to monitor

Media Keys

Keybinding Action
XF86AudioRaise/Lower Volume up/down
XF86AudioMute Toggle mute
XF86AudioMicMute Toggle mic mute
XF86AudioPlay/Prev/Next Media controls
XF86BrightnessUp/Down Brightness up/down

Screenshots

Keybinding Action
Print Screenshot (Flameshot GUI)
Ctrl + Print Screenshot (current output)
Alt + Print Screenshot (current window)

Scripts

Waybar Scripts (waybar/scripts/)

Script Description
powermenu.sh Fuzzel-based power menu
clipboard.sh Cliphist clipboard manager
bluetooth-control.sh Bluetooth device picker
bluetooth.sh Bluetooth status display
volume-control.sh Volume control with device selection
network-control.sh Network manager with WiFi scanning
notifications.sh Notification count display
mediaplayer.sh Media player status
launch-waybar.sh Waybar launcher

User Scripts (local/bin/)

Script Description
powermenu Fuzzel-based power menu (standalone)
set-wallpaper Wallpaper picker with swaybg integration
clipboard-history Cliphist clipboard manager with fuzzel
notification-history Notification history viewer
mako-history Mako notification history

Directory Structure

├── alacritty/          # Terminal configuration
│   └── alacritty.toml
├── btop/               # System monitor
│   └── btop.conf
├── bottom/             # System monitor (alternative)
│   └── bottom.toml
├── cava/               # Audio visualizer
│   ├── config
│   ├── shaders/
│   └── themes/
├── environment.d/      # Environment variables
│   ├── cursors.conf
│   └── unset-gtk-theme.conf
├── fastfetch/          # System info display
│   └── config.jsonc
├── fish/               # Shell configuration
│   ├── config.fish
│   └── conf.d/
├── flameshot/          # Screenshot tool
│   └── flameshot.ini
├── fuzzel/             # Application launcher
│   └── fuzzel.ini
├── godot/              # Game engine settings
│   └── editor_settings-4.5.tres
├── gtk-3.0/            # GTK3 theme settings
│   ├── settings.ini
│   ├── gtk.css
│   ├── colors.css
│   └── bookmarks
├── gtk-4.0/            # GTK4 theme settings
│   ├── settings.ini
│   ├── gtk.css
│   ├── gtk-dark.css
│   └── colors.css
├── kitty/              # Kitty terminal
│   ├── kitty.conf
│   ├── colors.conf
│   └── sessions/
├── lazygit/            # Git TUI
│   └── config.yml
├── local/bin/          # User scripts
│   ├── powermenu
│   ├── set-wallpaper
│   ├── clipboard-history
│   ├── notification-history
│   └── mako-history
├── mako/               # Notification daemon
│   └── config
├── mpv/                # Media player
│   ├── mpv.conf
│   ├── fonts/
│   ├── script-opts/
│   └── scripts/
├── niri/               # Window manager
│   ├── config.kdl
│   ├── basicsettings.kdl
│   ├── keybinds.kdl
│   ├── window_rules.kdl
│   ├── autostart.sh
│   └── index.theme
├── niri-lock/          # Lock screen
│   ├── config.ini
│   ├── lock.sh
│   └── style.css
├── nvim/               # LazyVim config
│   ├── init.lua
│   ├── lazy-lock.json
│   └── lua/
├── pomoru/             # Pomodoro timer
│   └── config.toml
├── qt6ct/              # Qt6 theme
│   └── qt6ct.conf
├── starship/           # Shell prompt
│   └── starship.toml
├── swappy/             # Screenshot annotation
│   └── config
├── tmux/               # Terminal multiplexer
│   └── tmux.conf
├── vlc/                # Media player
│   └── vlcrc
├── waybar/             # Status bar
│   ├── config.jsonc
│   ├── style.css
│   ├── modules/
│   └── scripts/
├── wlogout/            # Power menu
│   ├── layout
│   ├── style.css
│   └── icons/
├── zed/                # Zed editor
│   ├── settings.json
│   ├── snippets/
│   └── themes/
├── wallpapers/         # Wallpaper storage
├── Screenshots/        # Repository screenshots
├── packages.txt        # Package list
├── install.sh          # Installation script
├── LICENSE             # MIT License
└── README.md           # This file

Themes

Component Theme
GTK Theme adw-gtk3-dark
Icon Theme Papirus-Dark
Cursor Theme Bibata-Modern-Classic
Fish Shell Catppuccin Mocha
Waybar Catppuccin Mocha

FAQ

Q: How do I change the wallpaper?

Place images in ~/Pictures/wallpapers/. Run ~/.local/bin/set-wallpaper to pick a wallpaper interactively.

Q: How do I change the color scheme?

Edit the color values in:

  • waybar/style.css — Waybar styling
  • mako/config — Notification colors
  • fish/conf.d/fish_frozen_theme.fish — Fish syntax highlighting
  • niri-lock/style.css — Lock screen colors

Q: How do I add more Waybar modules?

Edit waybar/config.jsonc and add modules to modules-left, modules-center, or modules-right. Module definitions are in waybar/modules/.

Q: How do I change the terminal font?

Edit alacritty/alacritty.toml for Alacritty or kitty/kitty.conf for Kitty.


Troubleshooting

Waybar not showing

killall waybar
~/.config/waybar/scripts/launch-waybar.sh

No notifications

killall mako
mako &

Wallpaper not changing

# Test manually
swaybg -i ~/Pictures/wallpapers/your-wallpaper.jpg -m fill &

Lock screen not working

# Test gtklock manually
gtklock --config ~/.config/niri-lock/config.ini

Credits


License

This project is licensed under the MIT License — see the LICENSE file for details.


Made with ❤️ by Aditya Verma

About

New Dotfiles for my niri config, future updates will be there, just open an issue

Resources

License

Code of conduct

Contributing

Security policy

Stars

53 stars

Watchers

1 watching

Forks

Contributors