Support other compositors (niri, sway) through a compositor service in the shell
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- desktop, developer-experience
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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).
- Ngôn ngữ chính
- QML
- Star
- 3
- Fork
- 0
- Merge trung bình
- 48 phút
- Pull request đã merge (30 ngày)
- 99
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của angelobdev/dotfiles
-
area: installer area: shell enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
angelobdev/dotfiles#228 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: shell enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
angelobdev/dotfiles#222 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: theming enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
angelobdev/dotfiles#221 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Appearance → Wallpaper: the grid includes a "PLACEHOLDER WALLPAPER" tile and a nearly blank oneĐang mởarea: theming enhancement needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
angelobdev/dotfiles#218 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area: shell feature
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
angelobdev/dotfiles#213 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của angelobdev/dotfiles
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
WenyuChiou/agent-board#1345 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug bugfix priority: medium ui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
storytold/deckcraft#2037 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
[Linux] Generated .desktop files quote Exec path, so xdg-open/xdg-mime ignore the app as defaultĐang mởbug file-compat install linux priority: medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
storytold/craft-launcher#1393 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
developmentwithyash/yaan#62 ·
Maintainer thường phản hồi trong vòng 1 ngày