gardesk/garwarp / 3f013c4

Browse files

claim dbus backend name

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
3f013c444114995247e6ac84a26b770985665c0d
Parents
00dff14
Tree
69bc13f

5 changed files

StatusFile+-
M Cargo.lock 1064 0
M garwarp/Cargo.toml 1 0
M garwarp/src/daemon.rs 11 0
A garwarp/src/dbus.rs 17 0
M garwarp/src/main.rs 1 0
Cargo.lockmodified
1078 lines changed — click to load
@@ -2,11 +2,308 @@
22
 # It is not intended for manual editing.
33
 version = 4
44
 
5
+[[package]]
6
+name = "anyhow"
7
+version = "1.0.102"
8
+source = "registry+https://github.com/rust-lang/crates.io-index"
9
+checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
10
+
11
+[[package]]
12
+name = "async-broadcast"
13
+version = "0.7.2"
14
+source = "registry+https://github.com/rust-lang/crates.io-index"
15
+checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
16
+dependencies = [
17
+ "event-listener",
18
+ "event-listener-strategy",
19
+ "futures-core",
20
+ "pin-project-lite",
21
+]
22
+
23
+[[package]]
24
+name = "async-channel"
25
+version = "2.5.0"
26
+source = "registry+https://github.com/rust-lang/crates.io-index"
27
+checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2"
28
+dependencies = [
29
+ "concurrent-queue",
30
+ "event-listener-strategy",
31
+ "futures-core",
32
+ "pin-project-lite",
33
+]
34
+
35
+[[package]]
36
+name = "async-executor"
37
+version = "1.14.0"
38
+source = "registry+https://github.com/rust-lang/crates.io-index"
39
+checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a"
40
+dependencies = [
41
+ "async-task",
42
+ "concurrent-queue",
43
+ "fastrand",
44
+ "futures-lite",
45
+ "pin-project-lite",
46
+ "slab",
47
+]
48
+
49
+[[package]]
50
+name = "async-io"
51
+version = "2.6.0"
52
+source = "registry+https://github.com/rust-lang/crates.io-index"
53
+checksum = "456b8a8feb6f42d237746d4b3e9a178494627745c3c56c6ea55d92ba50d026fc"
54
+dependencies = [
55
+ "autocfg",
56
+ "cfg-if",
57
+ "concurrent-queue",
58
+ "futures-io",
59
+ "futures-lite",
60
+ "parking",
61
+ "polling",
62
+ "rustix",
63
+ "slab",
64
+ "windows-sys",
65
+]
66
+
67
+[[package]]
68
+name = "async-lock"
69
+version = "3.4.2"
70
+source = "registry+https://github.com/rust-lang/crates.io-index"
71
+checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311"
72
+dependencies = [
73
+ "event-listener",
74
+ "event-listener-strategy",
75
+ "pin-project-lite",
76
+]
77
+
78
+[[package]]
79
+name = "async-process"
80
+version = "2.5.0"
81
+source = "registry+https://github.com/rust-lang/crates.io-index"
82
+checksum = "fc50921ec0055cdd8a16de48773bfeec5c972598674347252c0399676be7da75"
83
+dependencies = [
84
+ "async-channel",
85
+ "async-io",
86
+ "async-lock",
87
+ "async-signal",
88
+ "async-task",
89
+ "blocking",
90
+ "cfg-if",
91
+ "event-listener",
92
+ "futures-lite",
93
+ "rustix",
94
+]
95
+
96
+[[package]]
97
+name = "async-recursion"
98
+version = "1.1.1"
99
+source = "registry+https://github.com/rust-lang/crates.io-index"
100
+checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
101
+dependencies = [
102
+ "proc-macro2",
103
+ "quote",
104
+ "syn",
105
+]
106
+
107
+[[package]]
108
+name = "async-signal"
109
+version = "0.2.13"
110
+source = "registry+https://github.com/rust-lang/crates.io-index"
111
+checksum = "43c070bbf59cd3570b6b2dd54cd772527c7c3620fce8be898406dd3ed6adc64c"
112
+dependencies = [
113
+ "async-io",
114
+ "async-lock",
115
+ "atomic-waker",
116
+ "cfg-if",
117
+ "futures-core",
118
+ "futures-io",
119
+ "rustix",
120
+ "signal-hook-registry",
121
+ "slab",
122
+ "windows-sys",
123
+]
124
+
125
+[[package]]
126
+name = "async-task"
127
+version = "4.7.1"
128
+source = "registry+https://github.com/rust-lang/crates.io-index"
129
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
130
+
131
+[[package]]
132
+name = "async-trait"
133
+version = "0.1.89"
134
+source = "registry+https://github.com/rust-lang/crates.io-index"
135
+checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb"
136
+dependencies = [
137
+ "proc-macro2",
138
+ "quote",
139
+ "syn",
140
+]
141
+
142
+[[package]]
143
+name = "atomic-waker"
144
+version = "1.1.2"
145
+source = "registry+https://github.com/rust-lang/crates.io-index"
146
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
147
+
148
+[[package]]
149
+name = "autocfg"
150
+version = "1.5.0"
151
+source = "registry+https://github.com/rust-lang/crates.io-index"
152
+checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
153
+
154
+[[package]]
155
+name = "bitflags"
156
+version = "2.11.0"
157
+source = "registry+https://github.com/rust-lang/crates.io-index"
158
+checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
159
+
160
+[[package]]
161
+name = "blocking"
162
+version = "1.6.2"
163
+source = "registry+https://github.com/rust-lang/crates.io-index"
164
+checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21"
165
+dependencies = [
166
+ "async-channel",
167
+ "async-task",
168
+ "futures-io",
169
+ "futures-lite",
170
+ "piper",
171
+]
172
+
173
+[[package]]
174
+name = "bumpalo"
175
+version = "3.20.2"
176
+source = "registry+https://github.com/rust-lang/crates.io-index"
177
+checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
178
+
179
+[[package]]
180
+name = "cfg-if"
181
+version = "1.0.4"
182
+source = "registry+https://github.com/rust-lang/crates.io-index"
183
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
184
+
185
+[[package]]
186
+name = "concurrent-queue"
187
+version = "2.5.0"
188
+source = "registry+https://github.com/rust-lang/crates.io-index"
189
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
190
+dependencies = [
191
+ "crossbeam-utils",
192
+]
193
+
194
+[[package]]
195
+name = "crossbeam-utils"
196
+version = "0.8.21"
197
+source = "registry+https://github.com/rust-lang/crates.io-index"
198
+checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
199
+
200
+[[package]]
201
+name = "endi"
202
+version = "1.1.1"
203
+source = "registry+https://github.com/rust-lang/crates.io-index"
204
+checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099"
205
+
206
+[[package]]
207
+name = "enumflags2"
208
+version = "0.7.12"
209
+source = "registry+https://github.com/rust-lang/crates.io-index"
210
+checksum = "1027f7680c853e056ebcec683615fb6fbbc07dbaa13b4d5d9442b146ded4ecef"
211
+dependencies = [
212
+ "enumflags2_derive",
213
+ "serde",
214
+]
215
+
216
+[[package]]
217
+name = "enumflags2_derive"
218
+version = "0.7.12"
219
+source = "registry+https://github.com/rust-lang/crates.io-index"
220
+checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827"
221
+dependencies = [
222
+ "proc-macro2",
223
+ "quote",
224
+ "syn",
225
+]
226
+
227
+[[package]]
228
+name = "equivalent"
229
+version = "1.0.2"
230
+source = "registry+https://github.com/rust-lang/crates.io-index"
231
+checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
232
+
233
+[[package]]
234
+name = "errno"
235
+version = "0.3.14"
236
+source = "registry+https://github.com/rust-lang/crates.io-index"
237
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
238
+dependencies = [
239
+ "libc",
240
+ "windows-sys",
241
+]
242
+
243
+[[package]]
244
+name = "event-listener"
245
+version = "5.4.1"
246
+source = "registry+https://github.com/rust-lang/crates.io-index"
247
+checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab"
248
+dependencies = [
249
+ "concurrent-queue",
250
+ "parking",
251
+ "pin-project-lite",
252
+]
253
+
254
+[[package]]
255
+name = "event-listener-strategy"
256
+version = "0.5.4"
257
+source = "registry+https://github.com/rust-lang/crates.io-index"
258
+checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
259
+dependencies = [
260
+ "event-listener",
261
+ "pin-project-lite",
262
+]
263
+
264
+[[package]]
265
+name = "fastrand"
266
+version = "2.3.0"
267
+source = "registry+https://github.com/rust-lang/crates.io-index"
268
+checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
269
+
270
+[[package]]
271
+name = "foldhash"
272
+version = "0.1.5"
273
+source = "registry+https://github.com/rust-lang/crates.io-index"
274
+checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
275
+
276
+[[package]]
277
+name = "futures-core"
278
+version = "0.3.32"
279
+source = "registry+https://github.com/rust-lang/crates.io-index"
280
+checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
281
+
282
+[[package]]
283
+name = "futures-io"
284
+version = "0.3.32"
285
+source = "registry+https://github.com/rust-lang/crates.io-index"
286
+checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718"
287
+
288
+[[package]]
289
+name = "futures-lite"
290
+version = "2.6.1"
291
+source = "registry+https://github.com/rust-lang/crates.io-index"
292
+checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad"
293
+dependencies = [
294
+ "fastrand",
295
+ "futures-core",
296
+ "futures-io",
297
+ "parking",
298
+ "pin-project-lite",
299
+]
300
+
5301
 [[package]]
6302
 name = "garwarp"
7303
 version = "0.1.0"
8304
 dependencies = [
9305
  "garwarp-ipc",
306
+ "zbus",
10307
 ]
11308
 
12309
 [[package]]
@@ -19,3 +316,770 @@ version = "0.1.0"
19316
 dependencies = [
20317
  "garwarp-ipc",
21318
 ]
319
+
320
+[[package]]
321
+name = "getrandom"
322
+version = "0.4.1"
323
+source = "registry+https://github.com/rust-lang/crates.io-index"
324
+checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec"
325
+dependencies = [
326
+ "cfg-if",
327
+ "libc",
328
+ "r-efi",
329
+ "wasip2",
330
+ "wasip3",
331
+]
332
+
333
+[[package]]
334
+name = "hashbrown"
335
+version = "0.15.5"
336
+source = "registry+https://github.com/rust-lang/crates.io-index"
337
+checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
338
+dependencies = [
339
+ "foldhash",
340
+]
341
+
342
+[[package]]
343
+name = "hashbrown"
344
+version = "0.16.1"
345
+source = "registry+https://github.com/rust-lang/crates.io-index"
346
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
347
+
348
+[[package]]
349
+name = "heck"
350
+version = "0.5.0"
351
+source = "registry+https://github.com/rust-lang/crates.io-index"
352
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
353
+
354
+[[package]]
355
+name = "hermit-abi"
356
+version = "0.5.2"
357
+source = "registry+https://github.com/rust-lang/crates.io-index"
358
+checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
359
+
360
+[[package]]
361
+name = "hex"
362
+version = "0.4.3"
363
+source = "registry+https://github.com/rust-lang/crates.io-index"
364
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
365
+
366
+[[package]]
367
+name = "id-arena"
368
+version = "2.3.0"
369
+source = "registry+https://github.com/rust-lang/crates.io-index"
370
+checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954"
371
+
372
+[[package]]
373
+name = "indexmap"
374
+version = "2.13.0"
375
+source = "registry+https://github.com/rust-lang/crates.io-index"
376
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
377
+dependencies = [
378
+ "equivalent",
379
+ "hashbrown 0.16.1",
380
+ "serde",
381
+ "serde_core",
382
+]
383
+
384
+[[package]]
385
+name = "itoa"
386
+version = "1.0.17"
387
+source = "registry+https://github.com/rust-lang/crates.io-index"
388
+checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
389
+
390
+[[package]]
391
+name = "js-sys"
392
+version = "0.3.89"
393
+source = "registry+https://github.com/rust-lang/crates.io-index"
394
+checksum = "f4eacb0641a310445a4c513f2a5e23e19952e269c6a38887254d5f837a305506"
395
+dependencies = [
396
+ "once_cell",
397
+ "wasm-bindgen",
398
+]
399
+
400
+[[package]]
401
+name = "leb128fmt"
402
+version = "0.1.0"
403
+source = "registry+https://github.com/rust-lang/crates.io-index"
404
+checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
405
+
406
+[[package]]
407
+name = "libc"
408
+version = "0.2.182"
409
+source = "registry+https://github.com/rust-lang/crates.io-index"
410
+checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
411
+
412
+[[package]]
413
+name = "linux-raw-sys"
414
+version = "0.12.1"
415
+source = "registry+https://github.com/rust-lang/crates.io-index"
416
+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
417
+
418
+[[package]]
419
+name = "log"
420
+version = "0.4.29"
421
+source = "registry+https://github.com/rust-lang/crates.io-index"
422
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
423
+
424
+[[package]]
425
+name = "memchr"
426
+version = "2.8.0"
427
+source = "registry+https://github.com/rust-lang/crates.io-index"
428
+checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
429
+
430
+[[package]]
431
+name = "memoffset"
432
+version = "0.9.1"
433
+source = "registry+https://github.com/rust-lang/crates.io-index"
434
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
435
+dependencies = [
436
+ "autocfg",
437
+]
438
+
439
+[[package]]
440
+name = "once_cell"
441
+version = "1.21.3"
442
+source = "registry+https://github.com/rust-lang/crates.io-index"
443
+checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
444
+
445
+[[package]]
446
+name = "ordered-stream"
447
+version = "0.2.0"
448
+source = "registry+https://github.com/rust-lang/crates.io-index"
449
+checksum = "9aa2b01e1d916879f73a53d01d1d6cee68adbb31d6d9177a8cfce093cced1d50"
450
+dependencies = [
451
+ "futures-core",
452
+ "pin-project-lite",
453
+]
454
+
455
+[[package]]
456
+name = "parking"
457
+version = "2.2.1"
458
+source = "registry+https://github.com/rust-lang/crates.io-index"
459
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
460
+
461
+[[package]]
462
+name = "pin-project-lite"
463
+version = "0.2.16"
464
+source = "registry+https://github.com/rust-lang/crates.io-index"
465
+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
466
+
467
+[[package]]
468
+name = "piper"
469
+version = "0.2.4"
470
+source = "registry+https://github.com/rust-lang/crates.io-index"
471
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
472
+dependencies = [
473
+ "atomic-waker",
474
+ "fastrand",
475
+ "futures-io",
476
+]
477
+
478
+[[package]]
479
+name = "polling"
480
+version = "3.11.0"
481
+source = "registry+https://github.com/rust-lang/crates.io-index"
482
+checksum = "5d0e4f59085d47d8241c88ead0f274e8a0cb551f3625263c05eb8dd897c34218"
483
+dependencies = [
484
+ "cfg-if",
485
+ "concurrent-queue",
486
+ "hermit-abi",
487
+ "pin-project-lite",
488
+ "rustix",
489
+ "windows-sys",
490
+]
491
+
492
+[[package]]
493
+name = "prettyplease"
494
+version = "0.2.37"
495
+source = "registry+https://github.com/rust-lang/crates.io-index"
496
+checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b"
497
+dependencies = [
498
+ "proc-macro2",
499
+ "syn",
500
+]
501
+
502
+[[package]]
503
+name = "proc-macro-crate"
504
+version = "3.4.0"
505
+source = "registry+https://github.com/rust-lang/crates.io-index"
506
+checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983"
507
+dependencies = [
508
+ "toml_edit",
509
+]
510
+
511
+[[package]]
512
+name = "proc-macro2"
513
+version = "1.0.106"
514
+source = "registry+https://github.com/rust-lang/crates.io-index"
515
+checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
516
+dependencies = [
517
+ "unicode-ident",
518
+]
519
+
520
+[[package]]
521
+name = "quote"
522
+version = "1.0.44"
523
+source = "registry+https://github.com/rust-lang/crates.io-index"
524
+checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
525
+dependencies = [
526
+ "proc-macro2",
527
+]
528
+
529
+[[package]]
530
+name = "r-efi"
531
+version = "5.3.0"
532
+source = "registry+https://github.com/rust-lang/crates.io-index"
533
+checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
534
+
535
+[[package]]
536
+name = "rustix"
537
+version = "1.1.4"
538
+source = "registry+https://github.com/rust-lang/crates.io-index"
539
+checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
540
+dependencies = [
541
+ "bitflags",
542
+ "errno",
543
+ "libc",
544
+ "linux-raw-sys",
545
+ "windows-sys",
546
+]
547
+
548
+[[package]]
549
+name = "rustversion"
550
+version = "1.0.22"
551
+source = "registry+https://github.com/rust-lang/crates.io-index"
552
+checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
553
+
554
+[[package]]
555
+name = "semver"
556
+version = "1.0.27"
557
+source = "registry+https://github.com/rust-lang/crates.io-index"
558
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
559
+
560
+[[package]]
561
+name = "serde"
562
+version = "1.0.228"
563
+source = "registry+https://github.com/rust-lang/crates.io-index"
564
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
565
+dependencies = [
566
+ "serde_core",
567
+ "serde_derive",
568
+]
569
+
570
+[[package]]
571
+name = "serde_core"
572
+version = "1.0.228"
573
+source = "registry+https://github.com/rust-lang/crates.io-index"
574
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
575
+dependencies = [
576
+ "serde_derive",
577
+]
578
+
579
+[[package]]
580
+name = "serde_derive"
581
+version = "1.0.228"
582
+source = "registry+https://github.com/rust-lang/crates.io-index"
583
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
584
+dependencies = [
585
+ "proc-macro2",
586
+ "quote",
587
+ "syn",
588
+]
589
+
590
+[[package]]
591
+name = "serde_json"
592
+version = "1.0.149"
593
+source = "registry+https://github.com/rust-lang/crates.io-index"
594
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
595
+dependencies = [
596
+ "itoa",
597
+ "memchr",
598
+ "serde",
599
+ "serde_core",
600
+ "zmij",
601
+]
602
+
603
+[[package]]
604
+name = "serde_repr"
605
+version = "0.1.20"
606
+source = "registry+https://github.com/rust-lang/crates.io-index"
607
+checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
608
+dependencies = [
609
+ "proc-macro2",
610
+ "quote",
611
+ "syn",
612
+]
613
+
614
+[[package]]
615
+name = "signal-hook-registry"
616
+version = "1.4.8"
617
+source = "registry+https://github.com/rust-lang/crates.io-index"
618
+checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b"
619
+dependencies = [
620
+ "errno",
621
+ "libc",
622
+]
623
+
624
+[[package]]
625
+name = "slab"
626
+version = "0.4.12"
627
+source = "registry+https://github.com/rust-lang/crates.io-index"
628
+checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
629
+
630
+[[package]]
631
+name = "syn"
632
+version = "2.0.117"
633
+source = "registry+https://github.com/rust-lang/crates.io-index"
634
+checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
635
+dependencies = [
636
+ "proc-macro2",
637
+ "quote",
638
+ "unicode-ident",
639
+]
640
+
641
+[[package]]
642
+name = "tempfile"
643
+version = "3.26.0"
644
+source = "registry+https://github.com/rust-lang/crates.io-index"
645
+checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0"
646
+dependencies = [
647
+ "fastrand",
648
+ "getrandom",
649
+ "once_cell",
650
+ "rustix",
651
+ "windows-sys",
652
+]
653
+
654
+[[package]]
655
+name = "toml_datetime"
656
+version = "0.7.5+spec-1.1.0"
657
+source = "registry+https://github.com/rust-lang/crates.io-index"
658
+checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
659
+dependencies = [
660
+ "serde_core",
661
+]
662
+
663
+[[package]]
664
+name = "toml_edit"
665
+version = "0.23.10+spec-1.0.0"
666
+source = "registry+https://github.com/rust-lang/crates.io-index"
667
+checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269"
668
+dependencies = [
669
+ "indexmap",
670
+ "toml_datetime",
671
+ "toml_parser",
672
+ "winnow",
673
+]
674
+
675
+[[package]]
676
+name = "toml_parser"
677
+version = "1.0.9+spec-1.1.0"
678
+source = "registry+https://github.com/rust-lang/crates.io-index"
679
+checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4"
680
+dependencies = [
681
+ "winnow",
682
+]
683
+
684
+[[package]]
685
+name = "tracing"
686
+version = "0.1.44"
687
+source = "registry+https://github.com/rust-lang/crates.io-index"
688
+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
689
+dependencies = [
690
+ "pin-project-lite",
691
+ "tracing-attributes",
692
+ "tracing-core",
693
+]
694
+
695
+[[package]]
696
+name = "tracing-attributes"
697
+version = "0.1.31"
698
+source = "registry+https://github.com/rust-lang/crates.io-index"
699
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
700
+dependencies = [
701
+ "proc-macro2",
702
+ "quote",
703
+ "syn",
704
+]
705
+
706
+[[package]]
707
+name = "tracing-core"
708
+version = "0.1.36"
709
+source = "registry+https://github.com/rust-lang/crates.io-index"
710
+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
711
+dependencies = [
712
+ "once_cell",
713
+]
714
+
715
+[[package]]
716
+name = "uds_windows"
717
+version = "1.1.0"
718
+source = "registry+https://github.com/rust-lang/crates.io-index"
719
+checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9"
720
+dependencies = [
721
+ "memoffset",
722
+ "tempfile",
723
+ "winapi",
724
+]
725
+
726
+[[package]]
727
+name = "unicode-ident"
728
+version = "1.0.24"
729
+source = "registry+https://github.com/rust-lang/crates.io-index"
730
+checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
731
+
732
+[[package]]
733
+name = "unicode-xid"
734
+version = "0.2.6"
735
+source = "registry+https://github.com/rust-lang/crates.io-index"
736
+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
737
+
738
+[[package]]
739
+name = "uuid"
740
+version = "1.21.0"
741
+source = "registry+https://github.com/rust-lang/crates.io-index"
742
+checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb"
743
+dependencies = [
744
+ "js-sys",
745
+ "serde_core",
746
+ "wasm-bindgen",
747
+]
748
+
749
+[[package]]
750
+name = "wasip2"
751
+version = "1.0.2+wasi-0.2.9"
752
+source = "registry+https://github.com/rust-lang/crates.io-index"
753
+checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
754
+dependencies = [
755
+ "wit-bindgen",
756
+]
757
+
758
+[[package]]
759
+name = "wasip3"
760
+version = "0.4.0+wasi-0.3.0-rc-2026-01-06"
761
+source = "registry+https://github.com/rust-lang/crates.io-index"
762
+checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5"
763
+dependencies = [
764
+ "wit-bindgen",
765
+]
766
+
767
+[[package]]
768
+name = "wasm-bindgen"
769
+version = "0.2.112"
770
+source = "registry+https://github.com/rust-lang/crates.io-index"
771
+checksum = "05d7d0fce354c88b7982aec4400b3e7fcf723c32737cef571bd165f7613557ee"
772
+dependencies = [
773
+ "cfg-if",
774
+ "once_cell",
775
+ "rustversion",
776
+ "wasm-bindgen-macro",
777
+ "wasm-bindgen-shared",
778
+]
779
+
780
+[[package]]
781
+name = "wasm-bindgen-macro"
782
+version = "0.2.112"
783
+source = "registry+https://github.com/rust-lang/crates.io-index"
784
+checksum = "55839b71ba921e4f75b674cb16f843f4b1f3b26ddfcb3454de1cf65cc021ec0f"
785
+dependencies = [
786
+ "quote",
787
+ "wasm-bindgen-macro-support",
788
+]
789
+
790
+[[package]]
791
+name = "wasm-bindgen-macro-support"
792
+version = "0.2.112"
793
+source = "registry+https://github.com/rust-lang/crates.io-index"
794
+checksum = "caf2e969c2d60ff52e7e98b7392ff1588bffdd1ccd4769eba27222fd3d621571"
795
+dependencies = [
796
+ "bumpalo",
797
+ "proc-macro2",
798
+ "quote",
799
+ "syn",
800
+ "wasm-bindgen-shared",
801
+]
802
+
803
+[[package]]
804
+name = "wasm-bindgen-shared"
805
+version = "0.2.112"
806
+source = "registry+https://github.com/rust-lang/crates.io-index"
807
+checksum = "0861f0dcdf46ea819407495634953cdcc8a8c7215ab799a7a7ce366be71c7b30"
808
+dependencies = [
809
+ "unicode-ident",
810
+]
811
+
812
+[[package]]
813
+name = "wasm-encoder"
814
+version = "0.244.0"
815
+source = "registry+https://github.com/rust-lang/crates.io-index"
816
+checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319"
817
+dependencies = [
818
+ "leb128fmt",
819
+ "wasmparser",
820
+]
821
+
822
+[[package]]
823
+name = "wasm-metadata"
824
+version = "0.244.0"
825
+source = "registry+https://github.com/rust-lang/crates.io-index"
826
+checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909"
827
+dependencies = [
828
+ "anyhow",
829
+ "indexmap",
830
+ "wasm-encoder",
831
+ "wasmparser",
832
+]
833
+
834
+[[package]]
835
+name = "wasmparser"
836
+version = "0.244.0"
837
+source = "registry+https://github.com/rust-lang/crates.io-index"
838
+checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe"
839
+dependencies = [
840
+ "bitflags",
841
+ "hashbrown 0.15.5",
842
+ "indexmap",
843
+ "semver",
844
+]
845
+
846
+[[package]]
847
+name = "winapi"
848
+version = "0.3.9"
849
+source = "registry+https://github.com/rust-lang/crates.io-index"
850
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
851
+dependencies = [
852
+ "winapi-i686-pc-windows-gnu",
853
+ "winapi-x86_64-pc-windows-gnu",
854
+]
855
+
856
+[[package]]
857
+name = "winapi-i686-pc-windows-gnu"
858
+version = "0.4.0"
859
+source = "registry+https://github.com/rust-lang/crates.io-index"
860
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
861
+
862
+[[package]]
863
+name = "winapi-x86_64-pc-windows-gnu"
864
+version = "0.4.0"
865
+source = "registry+https://github.com/rust-lang/crates.io-index"
866
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
867
+
868
+[[package]]
869
+name = "windows-link"
870
+version = "0.2.1"
871
+source = "registry+https://github.com/rust-lang/crates.io-index"
872
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
873
+
874
+[[package]]
875
+name = "windows-sys"
876
+version = "0.61.2"
877
+source = "registry+https://github.com/rust-lang/crates.io-index"
878
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
879
+dependencies = [
880
+ "windows-link",
881
+]
882
+
883
+[[package]]
884
+name = "winnow"
885
+version = "0.7.14"
886
+source = "registry+https://github.com/rust-lang/crates.io-index"
887
+checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
888
+dependencies = [
889
+ "memchr",
890
+]
891
+
892
+[[package]]
893
+name = "wit-bindgen"
894
+version = "0.51.0"
895
+source = "registry+https://github.com/rust-lang/crates.io-index"
896
+checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
897
+dependencies = [
898
+ "wit-bindgen-rust-macro",
899
+]
900
+
901
+[[package]]
902
+name = "wit-bindgen-core"
903
+version = "0.51.0"
904
+source = "registry+https://github.com/rust-lang/crates.io-index"
905
+checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc"
906
+dependencies = [
907
+ "anyhow",
908
+ "heck",
909
+ "wit-parser",
910
+]
911
+
912
+[[package]]
913
+name = "wit-bindgen-rust"
914
+version = "0.51.0"
915
+source = "registry+https://github.com/rust-lang/crates.io-index"
916
+checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21"
917
+dependencies = [
918
+ "anyhow",
919
+ "heck",
920
+ "indexmap",
921
+ "prettyplease",
922
+ "syn",
923
+ "wasm-metadata",
924
+ "wit-bindgen-core",
925
+ "wit-component",
926
+]
927
+
928
+[[package]]
929
+name = "wit-bindgen-rust-macro"
930
+version = "0.51.0"
931
+source = "registry+https://github.com/rust-lang/crates.io-index"
932
+checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a"
933
+dependencies = [
934
+ "anyhow",
935
+ "prettyplease",
936
+ "proc-macro2",
937
+ "quote",
938
+ "syn",
939
+ "wit-bindgen-core",
940
+ "wit-bindgen-rust",
941
+]
942
+
943
+[[package]]
944
+name = "wit-component"
945
+version = "0.244.0"
946
+source = "registry+https://github.com/rust-lang/crates.io-index"
947
+checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2"
948
+dependencies = [
949
+ "anyhow",
950
+ "bitflags",
951
+ "indexmap",
952
+ "log",
953
+ "serde",
954
+ "serde_derive",
955
+ "serde_json",
956
+ "wasm-encoder",
957
+ "wasm-metadata",
958
+ "wasmparser",
959
+ "wit-parser",
960
+]
961
+
962
+[[package]]
963
+name = "wit-parser"
964
+version = "0.244.0"
965
+source = "registry+https://github.com/rust-lang/crates.io-index"
966
+checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736"
967
+dependencies = [
968
+ "anyhow",
969
+ "id-arena",
970
+ "indexmap",
971
+ "log",
972
+ "semver",
973
+ "serde",
974
+ "serde_derive",
975
+ "serde_json",
976
+ "unicode-xid",
977
+ "wasmparser",
978
+]
979
+
980
+[[package]]
981
+name = "zbus"
982
+version = "5.14.0"
983
+source = "registry+https://github.com/rust-lang/crates.io-index"
984
+checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc"
985
+dependencies = [
986
+ "async-broadcast",
987
+ "async-executor",
988
+ "async-io",
989
+ "async-lock",
990
+ "async-process",
991
+ "async-recursion",
992
+ "async-task",
993
+ "async-trait",
994
+ "blocking",
995
+ "enumflags2",
996
+ "event-listener",
997
+ "futures-core",
998
+ "futures-lite",
999
+ "hex",
1000
+ "libc",
1001
+ "ordered-stream",
1002
+ "rustix",
1003
+ "serde",
1004
+ "serde_repr",
1005
+ "tracing",
1006
+ "uds_windows",
1007
+ "uuid",
1008
+ "windows-sys",
1009
+ "winnow",
1010
+ "zbus_macros",
1011
+ "zbus_names",
1012
+ "zvariant",
1013
+]
1014
+
1015
+[[package]]
1016
+name = "zbus_macros"
1017
+version = "5.14.0"
1018
+source = "registry+https://github.com/rust-lang/crates.io-index"
1019
+checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222"
1020
+dependencies = [
1021
+ "proc-macro-crate",
1022
+ "proc-macro2",
1023
+ "quote",
1024
+ "syn",
1025
+ "zbus_names",
1026
+ "zvariant",
1027
+ "zvariant_utils",
1028
+]
1029
+
1030
+[[package]]
1031
+name = "zbus_names"
1032
+version = "4.3.1"
1033
+source = "registry+https://github.com/rust-lang/crates.io-index"
1034
+checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f"
1035
+dependencies = [
1036
+ "serde",
1037
+ "winnow",
1038
+ "zvariant",
1039
+]
1040
+
1041
+[[package]]
1042
+name = "zmij"
1043
+version = "1.0.21"
1044
+source = "registry+https://github.com/rust-lang/crates.io-index"
1045
+checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
1046
+
1047
+[[package]]
1048
+name = "zvariant"
1049
+version = "5.10.0"
1050
+source = "registry+https://github.com/rust-lang/crates.io-index"
1051
+checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b"
1052
+dependencies = [
1053
+ "endi",
1054
+ "enumflags2",
1055
+ "serde",
1056
+ "winnow",
1057
+ "zvariant_derive",
1058
+ "zvariant_utils",
1059
+]
1060
+
1061
+[[package]]
1062
+name = "zvariant_derive"
1063
+version = "5.10.0"
1064
+source = "registry+https://github.com/rust-lang/crates.io-index"
1065
+checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c"
1066
+dependencies = [
1067
+ "proc-macro-crate",
1068
+ "proc-macro2",
1069
+ "quote",
1070
+ "syn",
1071
+ "zvariant_utils",
1072
+]
1073
+
1074
+[[package]]
1075
+name = "zvariant_utils"
1076
+version = "3.3.0"
1077
+source = "registry+https://github.com/rust-lang/crates.io-index"
1078
+checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9"
1079
+dependencies = [
1080
+ "proc-macro2",
1081
+ "quote",
1082
+ "serde",
1083
+ "syn",
1084
+ "winnow",
1085
+]
garwarp/Cargo.tomlmodified
@@ -5,3 +5,4 @@ edition = "2024"
5
 
5
 
6
 [dependencies]
6
 [dependencies]
7
 garwarp-ipc = { path = "../garwarp-ipc" }
7
 garwarp-ipc = { path = "../garwarp-ipc" }
8
+zbus = "5.14.0"
garwarp/src/daemon.rsmodified
@@ -6,6 +6,7 @@ use std::thread;
6
 use garwarp_ipc::{ControlRequest, ControlResponse, HealthStatus, StatusResponse};
6
 use garwarp_ipc::{ControlRequest, ControlResponse, HealthStatus, StatusResponse};
7
 
7
 
8
 use crate::config::Config;
8
 use crate::config::Config;
9
+use crate::dbus::{self, SessionNameGuard};
9
 use crate::lock::SingleInstanceGuard;
10
 use crate::lock::SingleInstanceGuard;
10
 use crate::logging;
11
 use crate::logging;
11
 use crate::runtime::RuntimePaths;
12
 use crate::runtime::RuntimePaths;
@@ -17,6 +18,7 @@ pub fn run() -> io::Result<()> {
17
 
18
 
18
     let _lock = SingleInstanceGuard::acquire(&paths.lock_file)?;
19
     let _lock = SingleInstanceGuard::acquire(&paths.lock_file)?;
19
     remove_stale_socket(&paths.control_socket)?;
20
     remove_stale_socket(&paths.control_socket)?;
21
+    let _dbus_guard = acquire_dbus_name()?;
20
 
22
 
21
     let listener = UnixListener::bind(&paths.control_socket)?;
23
     let listener = UnixListener::bind(&paths.control_socket)?;
22
     listener.set_nonblocking(true)?;
24
     listener.set_nonblocking(true)?;
@@ -51,6 +53,15 @@ pub fn run() -> io::Result<()> {
51
     Ok(())
53
     Ok(())
52
 }
54
 }
53
 
55
 
56
+fn acquire_dbus_name() -> io::Result<SessionNameGuard> {
57
+    SessionNameGuard::acquire().map_err(|error| {
58
+        io::Error::other(format!(
59
+            "failed to claim dbus name {}: {error}",
60
+            dbus::BACKEND_DBUS_NAME
61
+        ))
62
+    })
63
+}
64
+
54
 #[derive(Debug)]
65
 #[derive(Debug)]
55
 struct DaemonState {
66
 struct DaemonState {
56
     health: HealthStatus,
67
     health: HealthStatus,
garwarp/src/dbus.rsadded
@@ -0,0 +1,17 @@
1
+use zbus::blocking::Connection;
2
+
3
+pub const BACKEND_DBUS_NAME: &str = "org.freedesktop.impl.portal.desktop.garwarp";
4
+
5
+pub struct SessionNameGuard {
6
+    _connection: Connection,
7
+}
8
+
9
+impl SessionNameGuard {
10
+    pub fn acquire() -> zbus::Result<Self> {
11
+        let connection = Connection::session()?;
12
+        connection.request_name(BACKEND_DBUS_NAME)?;
13
+        Ok(Self {
14
+            _connection: connection,
15
+        })
16
+    }
17
+}
garwarp/src/main.rsmodified
@@ -1,5 +1,6 @@
1
 mod config;
1
 mod config;
2
 mod daemon;
2
 mod daemon;
3
+mod dbus;
3
 mod lock;
4
 mod lock;
4
 mod logging;
5
 mod logging;
5
 mod runtime;
6
 mod runtime;