@@ -56,10 +56,11 @@ Example query:
5656Fetch a single output by name when you only care about one:
5757
5858``` graphql
59- query ($name : String ! ) {
60- output (name : $name ) {
59+ query ($name : String ! , $tagList : Boolean = true ) {
60+ output (name : $name , tagList : $tagList ) {
6161 name
6262 focusedTags
63+ focusedTagsList
6364 layoutName
6465 }
6566}
@@ -77,20 +78,37 @@ subscription {
7778}
7879```
7980
80- To watch a single output, filter by its human-readable name:
81+
82+ ## Working with Tag Lists
83+
84+ By default RiverQL exposes tag bitmasks as river does. Some environments — notably [ eww] ( https://elkowar.github.io/eww/ ) —
85+ struggle with bit operations, so any query or subscription can opt into decoded
86+ lists by passing ` tagList: true ` .
87+ When enabled, ` focusedTagsList ` / ` urgentTagsList ` fields become non-null while
88+ the original mask fields remain available for backward compatibility.
8189
8290``` graphql
83- subscription ($name : String ! ) {
84- eventsForOutput (outputName : $name ) {
85- __typename
86- ... on OutputFocusedTags { name tags }
91+ query ($tagList : Boolean = true ) {
92+ outputs (tagList : $tagList ) {
93+ name
94+ focusedTags
95+ focusedTagsList
96+ urgentTags
97+ urgentTagsList
8798 }
8899}
89100```
90101
91- ### WebSocket Client Mode
102+ ``` graphql
103+ subscription ($name : String ! , $tagList : Boolean = true ) {
104+ eventsForOutput (outputName : $name , tagList : $tagList ) {
105+ __typename
106+ ... on OutputFocusedTags { name tags tagsList }
107+ }
108+ }
109+ ```
92110
93- ### Client mode
111+ ### Client Mode
94112
95113When a widget or script (for example an eww widget) needs data, invoke ` riverql `
96114without ` --server ` :
@@ -116,7 +134,7 @@ Polling a query:
116134
117135``` clojure
118136(defpoll river_outputs :interval " 5s"
119- " riverql 'query { outputs { name focusedTags } }' | jq -c '.data.outputs'" )
137+ " riverql 'query { outputs { name focusedTags } }' | jq --unbuffered - c '.data.outputs'" )
120138
121139(defwidget river-tags []
122140 (box :orientation " vertical"
@@ -130,7 +148,7 @@ Listening for live events:
130148
131149``` clojure
132150(deflisten events :initial " {}"
133- " riverql 'subscription { events { __typename ... on OutputFocusedTags { name tags } } }' | jq -c '.data.events'" )
151+ " riverql 'subscription { events { __typename ... on OutputFocusedTags { name tags } } }' | jq --unbuffered - c '.data.events'" )
134152
135153(defwidget river-event-feed []
136154 (box :orientation " vertical"
0 commit comments