Skip to content

A custom desktop theme under developement.

Notifications You must be signed in to change notification settings

lvyuemeng/minimal-theme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Niri Cross-Distro Theme

A portable Wayland theme configuration for Niri compositor, designed to work across multiple Linux distributions with minimal but complete philosophy.


Motivation

The goal of this project is to create a truly portable Wayland desktop configuration that works seamlessly across different Linux distributions. Most dotfiles are distribution-specific, relying on AUR-only packages or niche tools that break when switching distros.

This theme follows core principles:

Principle Description
Minimal but Complete Each widget provides essential functionality without bloat
Consistent Uniform styling, naming conventions, and configuration patterns
Readable Clear configuration structure that is easy to understand
Extendable Modular design allows adding new features without modifying core
Composable Widgets work independently but can be combined seamlessly

Why Niri?

Niri is a scrollable Wayland compositor that provides a modern, Sway-like experience with:

  • Modern window management (like Sway)
  • Built-in wallpaper support (no extra daemon needed)
  • IPC for control
  • Growing ecosystem

Cross-Distro Package Selection

We prioritize packages available in most distribution repositories:

Component Recommended Alternative
Compositor niri -
Display Manager sddm lightdm
Terminal kitty alacritty, wezterm
Status Bar waybar yabar
Notifications mako dunst
Launcher wofi rofi
Locker swaylock -
Brightness brightnessctl light
Power power-profiles-daemon tlp
Wallpaper niri built-in feh, awww

Introduction

This is a complete Wayland desktop theme featuring:

Core Components

  • Niri - Wayland compositor with scrollable workspaces
  • SDDM - Display manager
  • Kitty - Terminal emulator

UI Layer

  • Waybar - Status bar with system info (CPU, memory, battery, network, clock)
  • Mako - Notification daemon
  • Wofi - Application launcher

System Utilities

  • Swaylock - Screen locker
  • Brightnessctl - Display brightness control
  • Power-profiles-daemon - Power management

Usage

Quick Start

# 1. Install dependencies (see docs/pkg.md for your distro)
./scripts/install.sh

# 2. Copy configurations to your system
./scripts/sync.sh --install

# 3. Collect configurations from system (for development)
./scripts/sync.sh --collect

Sync Script

The unified sync.sh script handles both collecting from and deploying to your system:

# Deploy configurations to system (requires confirmation)
./scripts/sync.sh --install

# Collect configurations from system
./scripts/sync.sh --collect

Configuration Files

Component Path
Niri .config/niri/config.kdl
Waybar .config/waybar/config
Waybar Style .config/waybar/style.css
Waybar Scripts .config/waybar/scripts/
Mako .config/mako/config
Kitty .config/kitty/kitty.conf
Wofi .config/wofi/config
Wofi Style .config/wofi/style.css
Swaylock .config/swaylock/config

Default Keybindings

Binding Action
Super + T Open terminal (kitty)
Super + D Open app launcher (wofi)
Super + P Cycle power profile
Super + S Rotate wallpaper
Alt + Print Screenshot
Super + Q Close window
Super + Enter Spawn terminal
Super + B Move window to scratchpad

Documentation

  • Package Guide - Detailed package selection and cross-distro compatibility
  • Module Guide - Widget/module documentation and configuration

Wallpapers

Wallpapers are included in the wallpapers/ directory. They are automatically copied when running the sync script if you choose to do so.


Credits

Wallpapers from Wallhaven

About

A custom desktop theme under developement.

Resources

Stars

Watchers

Forks

Contributors