awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
niri-wm avatar

niri-wm/niri

0
View on GitHub↗
20,069 stars·699 forks·Rust·gpl-3.0·12 viewsniri-wm.github.io/niri↗

Niri

Niri is a Wayland compositor and tiling window manager designed for Linux systems. It functions as a display server that organizes application windows into a scrollable, column-based layout, providing a structured environment for managing graphical sessions, input routing, and hardware output.

The project distinguishes itself through a declarative configuration engine that enables live-reloading of settings, allowing users to modify window rules, input bindings, and visual appearance without restarting the session. It features a physics-based animation system that uses spring-based curves to synchronize window transitions and workspace switching with the monitor refresh rate. To ensure high performance, it utilizes a direct scanout pipeline that bypasses intermediate composition buffers, sending window content directly to the display hardware.

The compositor provides a comprehensive suite of tools for desktop management, including support for both tiling and floating window modes, tabbed organization, and dynamic workspace handling. It integrates with standard cross-desktop communication interfaces to support system services, accessibility tools, and legacy applications through an automated compatibility layer. Security is maintained through features like input restriction during session locks and the ability to obscure sensitive content during screen captures.

The system is configured through modular files that support imports and live updates. It is written in Rust and provides extensive documentation for managing display outputs, input devices, and custom visual effects.

Features

  • Tiling Window Managers - Organizes application windows into a scrollable, column-based tiling layout.
  • Workspace Navigation - Move focus between windows, columns, monitors, and workspaces using keyboard shortcuts to traverse the desktop environment efficiently.
  • Display Compositors - Acts as a display server that manages window placement, input routing, and graphical output.
  • Tiling Window Managers - Organizes application windows into efficient, keyboard-driven column layouts with support for tiling and floating modes.
  • Column-Based Tiling - Organizes application windows into a scrolling, column-based layout.
  • Declarative Configuration Engines - Uses a declarative configuration engine to enable live-reloading of window rules and settings.
  • Desktop Environment Components - Functions as a graphical platform for Linux that manages windows, input devices, and display outputs.
  • Persistent Workspace Definitions - Supports creating named, persistent workspaces that can be pinned to specific display outputs.
  • Workspace Overview Management - Activate the workspace overview when the cursor is moved into a designated monitor corner, including during drag-and-drop actions.
  • Window Geometry Managers - Enables managing window geometry, including floating positions and tiling constraints.
  • Direct Scanout Controllers - Manages direct scanout behavior for overlay planes to bypass intermediate buffers and optimize display performance.
  • Direct Scanout Pipelines - Optimizes display performance by sending window content directly to the hardware display controller.
  • Configuration Engines - Enables building and customizing the desktop environment through a declarative, live-reloading configuration engine.
  • Floating Window Management - Supports floating window modes that exist independently of the primary column-based workspace structure.
  • Legacy Display Compatibility Layers - Connect legacy software to the compositor by integrating compatibility layers that translate older display protocols into modern formats for consistent window management.
  • Session Management - Provides controls for managing graphical session lifecycles, including session exit and state transitions.
  • Configuration Modularization - Supports modular configuration files with nested imports and live-reloading capabilities.
  • Display Configuration Managers - Provides granular control over monitor hardware settings like resolution, refresh rate, and positioning.
  • Physics-Based Animations - Calculates smooth motion for window transitions and workspace switching using physics-based spring curves.
  • Window Rules - Match windows by application ID or title to conditionally apply layout, appearance, and behavior properties.
  • Input Mapping Systems - Maps keyboard, mouse, and touchpad inputs to system actions for window management and session control.
  • Animation and Transition Engines - Orchestrates physics-based spring animations for smooth window transitions during opening, closing, and resizing.
  • Compositors and Shells - Scrollable tiling compositor.
  • Configuration Collections - Official showcase for user configurations and inspiration.
  • Workspace Visualizers - Provides a zoomed-out interface to view all active windows and workspaces for easier navigation and rearrangement.
  • Interactive Window Manipulation - Enables interactive window movement, resizing, and layout toggling via mouse gestures.
  • Workspace Management - Supports dynamic workspace management, including runtime naming and monitor assignment.
  • Desktop Content Streaming - Captures monitors or individual windows for external applications using standard portal protocols.
  • Pointing Device Configurators - Provides comprehensive controls for managing pointing device behavior, including acceleration and output mapping.
  • Desktop Integration - Connects applications to standard system interfaces for file picking, settings, and secret management.
  • Background Visual Effects - Configure blur, noise, and saturation settings for the area behind a layer surface to enhance visual clarity or style.
  • Desktop Environment Customizers - Provides a declarative configuration engine for tailoring the user experience through modular settings and input bindings.
  • Keybinding Modifier Configurators - Provides configuration for defining primary modifier keys for system-wide shortcuts.
  • Graphical Application Runtimes - Integrate with external satellite services to support legacy applications and screen readers within a modern graphical environment.
  • Session Lock Input Restrictions - Restricts user interactions and keybindings during session locks to maintain system security.
  • Navigation Animations - Provides fluid spring-based motion effects for workspace switching and camera scrolling.
  • Window Effects - Overrides visual settings including opacity, corner radius, borders, and shadows for application windows.
  • Sensitive Window Obscuration - Replaces specific windows with solid black rectangles during screen captures to protect private information.
  • Surface Capture Obscuration - Obscures sensitive layer surfaces during screen recordings to protect private information.
  • Tabbed Window Organization - Groups windows within a column into a tabbed interface to maximize vertical space.
  • Legacy Workflow Supports - Supports legacy X11 software through automated compatibility layers and protocol translation.
  • Drag-and-Drop Layout Interactions - Enables workspace switching and layout scrolling through drag-and-drop operations at screen edges.
  • Custom Shader Programs - Executes custom fragment shaders during window animations to generate unique visual effects.
  • Desktop Shells - Positions interface elements like bars or launchers on specific display layers within the desktop shell.
  • Layer Surface Management - Apply custom visual and functional rules to specific layer-shell surfaces based on their namespace or layer type.
  • Server-Side Decoration Protocols - Instructs applications to use system-provided borders and focus indicators for consistent visual appearance.
  • Display Power Managers - Controls screen sleep and power state behavior for individual monitors.
  • Compatibility Layers - Controls the lifecycle of legacy compatibility layers to allow older applications to run seamlessly within a modern environment.
  • Execution Isolation - Launches legacy applications within dedicated, ephemeral server instances to maintain system security and stability.
  • Sensitive Content Obscuration - Protects private information by replacing specific windows with solid black rectangles during screen captures.
  • Performance Profiling Tools - Retrieves detailed timing and resource statistics to identify performance bottlenecks.
  • Column Layout Configurations - Allows controlling column alignment and display modes like tabbed or normal layouts.
  • Interaction Animations - Animates system notifications, dialogs, and overlays to provide polished and responsive user interaction feedback.
  • Pixel Alignment Engines - Calculate and round window positions, borders, and gaps to integer physical coordinates to prevent rendering artifacts like blurriness on high-resolution displays.
  • Fullscreen Window Modes - Covers the entire display with a single window and renders a black backdrop for media playback.
  • Window Management Systems - Provides a socket interface to remotely control the compositor and query the state of windows and workspaces.
  • Workspace Layouts - Enables applying unique layout behaviors and styles to individual named workspaces.
  • Screen Capture Utilities - Captures screen content including entire screens or specific windows while managing storage and pointer visibility.
  • Window Dimension Constraints - Allows setting default window widths and toggling between preset proportions or fixed sizes.
  • Display Hardware Initializers - Forces specific monitor states and resets connectors to resolve hardware initialization issues.
  • Signal Optimization Utilities - Adjusts variable refresh rates, color bit depth, and custom modelines to resolve hardware compatibility or bandwidth issues.
  • Rendering Pipelines - Visualizes internal rendering states like opaque regions and scanout status to diagnose performance problems.
  • Background Service Managers - Integrates with system services to automatically start, monitor, and manage background utilities.
  • Display Protocol Compatibility - Configures compatibility layers to force native output for improved performance and compatibility with modern display protocols.
  • Window Indicators - Allows customizing the appearance of focus rings, borders, and tab indicators to distinguish active windows.
  • Refresh Rate Synchronization - Aligns animation frame updates with monitor refresh cycles to ensure smooth motion.
  • Column Maximization - Expands a column to fill the entire screen width while respecting gaps and struts.
  • Keyboard Layout Configurations - Define keyboard mappings, variants, and tracking behavior for global or per-window input states using standard system locale settings or custom keymap files.
  • Output Interaction Customizers - Configures per-monitor hot corners and window layout behaviors to tailor the user experience for different display types.
  • Focus Management - Supports enabling focus-follows-mouse behavior with configurable scrolling limits.
  • Screen Area Struts - Allows defining struts to reserve screen area and create persistent margins around the workspace.
  • Opacity Controls - Modify the opacity of layer surfaces and their sub-elements to create layered or semi-transparent visual effects.
  • Tabbed Window Navigation - Switches between active tabs using standard focus commands or visual indicators.
  • Window Spacing Rules - Provides configurable gaps between windows and screen edges to manage layout density.
  • Edge Maximization - Expands an individual window to the boundaries of the available screen area while keeping system bars visible.
  • Recent Window Switchers - Cycles through recently focused windows using a visual switcher to facilitate navigation.

Star history

Star history chart for niri-wm/niriStar history chart for niri-wm/niri

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does niri-wm/niri do?

Niri is a Wayland compositor and tiling window manager designed for Linux systems. It functions as a display server that organizes application windows into a scrollable, column-based layout, providing a structured environment for managing graphical sessions, input routing, and hardware output.

What are the main features of niri-wm/niri?

The main features of niri-wm/niri are: Tiling Window Managers, Workspace Navigation, Display Compositors, Column-Based Tiling, Declarative Configuration Engines, Desktop Environment Components, Persistent Workspace Definitions, Workspace Overview Management.

What are some open-source alternatives to niri-wm/niri?

Open-source alternatives to niri-wm/niri include: yalter/niri — Niri is a Wayland compositor that provides a desktop environment for Linux. Its primary purpose is to implement a… swaywm/sway — Sway is a Wayland compositor and tiling window manager for Linux. It functions as a display server that manages window… glzr-io/glazewm — Glazewm is a tiling window manager and desktop automation framework designed to organize application windows into… wayfirewm/wayfire — Wayfire is a modular Wayland compositor for Linux that functions as a graphical session controller and window manager.… asmvik/yabai — Yabai is a system-level utility for macOS that provides automated window management and workspace organization. It… material-shell/material-shell — Material Shell is a tiling window manager and Linux desktop environment that replaces traditional window management…

Open-source alternatives to Niri

Similar open-source projects, ranked by how many features they share with Niri.
  • yalter/niriYaLTeR avatar

    YaLTeR/niri

    25,282View on GitHub↗

    Niri is a Wayland compositor that provides a desktop environment for Linux. Its primary purpose is to implement a scrollable tiling window management system, which organizes application windows in a non-overlapping layout that allows horizontal scrolling to access content beyond the screen edge. The compositor features multi-monitor workspace coordination, managing window arrangements and fractional scaling across displays with different resolutions and pixel densities. It supports a dynamic workspace organization model where independent vertical workspace stacks are maintained per monitor.

    Rust
    View on GitHub↗25,282
  • swaywm/swayswaywm avatar

    swaywm/sway

    17,054View on GitHub↗

    Sway is a Wayland compositor and tiling window manager for Linux. It functions as a display server that manages window placement and input handling, organizing application windows into logical grids to maximize screen space. The project is designed for a keyboard-driven workflow, allowing users to manage workspaces and window geometry without relying on a mouse. It provides a modular environment for desktop customization and includes translation layers to support legacy applications, facilitating the replacement of older window management systems. The compositor utilizes hardware-accelerated

    Ccompositorwayland
    View on GitHub↗17,054
  • glzr-io/glazewmglzr-io avatar

    glzr-io/glazewm

    12,314View on GitHub↗

    Glazewm is a tiling window manager and desktop automation framework designed to organize application windows into non-overlapping layouts. It functions as a keyboard-driven controller, allowing users to manage window focus, workspace navigation, and layout configurations entirely through custom keybindings. By intercepting system-level events, the software overrides default window placement and behavior to maximize screen space and maintain a structured workspace. The project distinguishes itself through a highly configurable environment that supports complex multi-monitor setups and dynamic

    Rusti3wmrusttiling-window-manager
    View on GitHub↗12,314
  • wayfirewm/wayfireWayfireWM avatar

    WayfireWM/wayfire

    3,001View on GitHub↗

    Wayfire is a modular Wayland compositor for Linux that functions as a graphical session controller and window manager. It provides the core infrastructure for a desktop environment by managing window placement, input device handling, and display output configurations. The compositor utilizes hardware-accelerated rendering to manage the desktop state and coordinate the interaction between client applications and the display server. The project is distinguished by its plugin-based architecture, which allows for the dynamic extension of core functionality through modular components. It offers ex

    C++wayfirewaylandwayland-compositor
    View on GitHub↗3,001
  • See all 30 alternatives to Niri→