Support other compositors (niri, sway) through a compositor service in the shell
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- desktop, developer-experience
Línea de trabajo
Start with shell.qml, ShellState.qml, and the listed shell files that import Quickshell.Hyprland; review the architecture and conventions docs before shaping the service. Check Quickshell’s compositor modules and niri’s JSON interface, then map the current Hyprland state, actions, and events onto a proposed first-step scope. Done means the team agrees on the service boundary and initial niri support scope; the issue explicitly asks to agree on the shape before substantial implementation.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Asked for on r/Fedora (niri and sway are in Fedora's official repositories; Hyprland comes from a COPR), and a niri user offered to help. This issue is to agree on the shape before writing a lot of code.
Proposal
A small compositor service in the shell (e.g. services/Compositor.qml) that the rest of the shell talks to instead of Quickshell.Hyprland directly, with one implementation per compositor: Hyprland first (exactly today's behaviour), then niri, maybe sway. Nothing changes for current users.
What the service needs to offer, from what the shell uses today:
- Focused monitor (
Hyprland.focusedMonitor, 12 uses): which screen a panel, popup or OSD opens on. - Active window (
Hyprland.activeToplevel, 13 uses) and the window list (toplevels): bar title, window menu, dock, Alt + Tab, emoji paste target. - Workspaces: the bar's pills, scrolling, the dock.
- Actions (
Hyprland.dispatch, in 7 files, written for the Lua config'shl.dsp): focus, move, close, send a shortcut, workspace changes. - Events: the raw
screencastevent for the privacy indicator.
Where Hyprland is used today
- Shell (20 files import
Quickshell.Hyprland):shell.qml,ShellState.qml,share.qml,bar/Bar.qml,bar/WindowMenuWindow.qml,components/MenuLayer.qml,dock/DockWindow.qml,notifications/NotificationPopups.qml,panels/DisplayPanel.qml,panels/Hints.qml,panels/WindowSwitcher.qml,session/Authentication.qml, and the servicesAgent,Assist,BluetoothAgent,Dock,Emoji,Osd,Privacy,Zoom. - Scripts and helpers calling
hyprctl(11):desktop-ai,desktop-area,desktop-power, andcommon.py,osk.py,plugins.py,portal_picker.py,recording.py,rotation.py,theme.py,wallpaper.pyinlibexec/desktop/. - Hyprland only, by nature: the Lua config itself (
hypr/), the plugins (Hyprspace overview, Hyprgrass gestures, Hyprglass, HyprCapture), the drop-down AI console (a special workspace with its own layout), and the XDPH screen-share picker (share.qml).
Open questions
- Scope of a first step: the shell running on niri with the core panels (bar, launcher, Control Center, notifications) is a realistic first PR; tablet mode, gestures and the console can stay Hyprland-only, hidden elsewhere.
- niri's side:
niri msg --jsonand its event stream for state; Quickshell's built-in modules cover Hyprland and i3/sway IPC (worth checking what fits niri best). - Config: niri and sway need their own compositor config (binds, rules, autostart), as a separate Stow package and installer profile.
- CI:
check.shshould keep passing; a niri config check if niri offers one.
Conventions to follow: architecture, conventions (every visible string through I18n.tr, in both catalogs).
- Lenguaje dominante
- QML
- Estrellas
- 3
- Forks
- 0
- Merge medio
- 48 min
- PR fusionados (30 d)
- 99
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de angelobdev/dotfiles
-
area: installer area: shell enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
angelobdev/dotfiles#228 ·
Los mantenedores suelen responder en 1 día
-
area: shell enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
angelobdev/dotfiles#222 ·
Los mantenedores suelen responder en 1 día
-
area: theming enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
angelobdev/dotfiles#221 ·
Los mantenedores suelen responder en 1 día
-
Appearance → Wallpaper: the grid includes a "PLACEHOLDER WALLPAPER" tile and a nearly blank oneAbiertoarea: theming enhancement needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
angelobdev/dotfiles#218 ·
Los mantenedores suelen responder en 1 día
-
area: shell feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
angelobdev/dotfiles#213 ·
Los mantenedores suelen responder en 1 día
Todos los issues de angelobdev/dotfiles
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
WenyuChiou/agent-board#1345 ·
Los mantenedores suelen responder en 1 día
-
bug bugfix priority: medium ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
storytold/deckcraft#2037 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
[Linux] Generated .desktop files quote Exec path, so xdg-open/xdg-mime ignore the app as defaultAbiertobug file-compat install linux priority: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
storytold/craft-launcher#1393 ·
Los mantenedores suelen responder en 1 día
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
developmentwithyash/yaan#62 ·
Los mantenedores suelen responder en 1 día