Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
ximper-shell-panel
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ximper Linux
ximper-shell-panel
Commits
d748843c
Verified
Commit
d748843c
authored
Jun 19, 2026
by
Kirill Unitsaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
panel: add output selection
parent
ddbe4520
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
2 deletions
+23
-2
README.md
README.md
+10
-0
config.json
data/config.json
+2
-2
config.go
src/config.go
+7
-0
generate.go
src/generate.go
+4
-0
No files found.
README.md
View file @
d748843c
...
...
@@ -57,6 +57,16 @@ Supported panel types:
panel, floating, islands
```
Optional monitor filter:
```
json
{
"output"
:
[
"DP-1"
,
"HDMI-A-1"
]
}
```
An empty or missing
`output`
list leaves Waybar on its default outputs.
## Module Resolution
The config stores logical module names. At generation time, the panel merges
...
...
data/config.json
View file @
d748843c
{
"position"
:
"top"
,
"type"
:
"panel"
,
"output"
:
[],
"modules_left"
:
[
"image#menu"
,
"tray"
...
...
@@ -17,4 +18,4 @@
"bluetooth"
,
"custom/notification"
]
}
\ No newline at end of file
}
src/config.go
View file @
d748843c
...
...
@@ -20,6 +20,7 @@ const (
type
Config
struct
{
Position
string
`json:"position"`
Type
string
`json:"type"`
Output
[]
string
`json:"output"`
ModulesLeft
[]
string
`json:"modules_left"`
ModulesCenter
[]
string
`json:"modules_center"`
ModulesRight
[]
string
`json:"modules_right"`
...
...
@@ -76,6 +77,12 @@ func (c Config) Validate() error {
return
fmt
.
Errorf
(
"unsupported panel type %q"
,
c
.
Type
)
}
for
_
,
output
:=
range
c
.
Output
{
if
strings
.
TrimSpace
(
output
)
==
""
{
return
errors
.
New
(
"output name cannot be empty"
)
}
}
for
_
,
name
:=
range
append
(
append
([]
string
{},
c
.
ModulesLeft
...
),
append
(
c
.
ModulesCenter
,
c
.
ModulesRight
...
)
...
)
{
if
strings
.
TrimSpace
(
name
)
==
""
{
return
errors
.
New
(
"module name cannot be empty"
)
...
...
src/generate.go
View file @
d748843c
...
...
@@ -30,6 +30,10 @@ func GenerateConfig(cfg Config, registry Registry) ([]byte, error) {
out
[
"name"
]
=
cfg
.
Type
}
if
len
(
cfg
.
Output
)
>
0
{
out
[
"output"
]
=
cfg
.
Output
}
if
cfg
.
Type
==
"floating"
||
cfg
.
Type
==
"islands"
{
applyFloatingMargins
(
out
,
cfg
.
Position
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment