AvengeMedia / AvengeMedia/DankMaterialShell

Feature Request: Add Display Mode Options for Multi-Monitor Setups

Open
#3,036 2 comments 0 reactions 0 assignees View on GitHub
feature request
Dominant language
QML
Stars
8.1k
Forks
515
Avg merge
1d 8h
Merged PRs (30d)
102

Description

### Feature Description

Please add a simple display-mode selector to DankMaterialShell's **Display Settings** for multi-monitor setups.

Currently, when using **CachyOS + Niri + DankMaterialShell** on a laptop with an external monitor, managing the laptop display and external display requires manually configuring Niri. It would be much more convenient if DMS provided common display modes directly from its display settings.

### Proposed display modes

Add options such as:

* **Extend Displays** — use the laptop display and external monitor as separate displays.
* **Mirror / Duplicate** — mirror the laptop display to the external monitor.
* **External Monitor Only** — disable the laptop's internal display and use only the external monitor.
* **Laptop Display Only** — disable external monitors and use only the laptop display.

### Laptop lid behavior

It would also be useful if **External Monitor Only** could work naturally with laptop lid events.

For example:

1. Connect an external monitor.
2. Select **External Monitor Only**.
3. Close the laptop lid.
4. The internal `eDP` display is disabled.
5. Existing workspaces/windows are moved or made available on the external monitor.
6. New applications open on the external monitor rather than attempting to use the disabled laptop display.

When the laptop lid is opened again, the user could optionally restore the previous display configuration.

### Why this would be useful

This would make DMS much more convenient for laptop users who frequently switch between:

* Laptop-only usage
* External-monitor-only/docked usage
* Dual-monitor/extended usage
* Presentation/mirroring mode

It would also reduce the need for users to manually edit Niri configuration or use additional tools/scripts just to switch between common display layouts.

### Environment

* **OS:** CachyOS
* **Compositor:** Niri
* **Desktop Shell:** DankMaterialShell (DMS)
* **Hardware:** Laptop + external monitor

### Expected UI

Something similar to:

```text
Display Mode

○ Extend
○ Mirror / Duplicate
○ Laptop Display Only
○ External Monitor Only
```

Ideally, the selected mode would be persisted and applied automatically whenever the corresponding monitor configuration is detected.

Thanks for considering this feature!

### Use Case

_No response_

### Compositor(s)

Niri

### If Other, please specify

_No response_

### Proposed Solution

_No response_

### Alternatives/Existing Solutions

_No response_

Contributor guide

Open the contributing guide

Research direction

Start in DMS Display Settings and review how Niri monitor configuration and laptop-lid events are currently handled. Define the supported extend, mirror, laptop-only, and external-only modes, including workspace behavior and optional restoration after reopening the lid; done means each mode applies reliably when the corresponding monitors are detected.

Written by the indexing model from the issue text.

Assessment

Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.