Commit Graph

2749 Commits

Author SHA1 Message Date
Mattéo Delabre
d8706af2ea
Terminate custom module scripts on exit
(Fixes #358.)

Subprocesses created for custom module scripts were previously left
running when the parent Waybar process exited. This patch sets the
parent-death signal of child processes (PR_SET_PDEATHSIG on Linux,
PROC_PDEATHSIG_CTL on FreeBSD) to SIGTERM.

Caveats:

* This uses Linux-specific or FreeBSD-specific calls. I don’t know if
  this project targets other systems?
* There is a possibility that Waybar exits after calling `fork()`, but
  before calling `prctl` to set the parent-death signal. In this case,
  the child will not receive the SIGTERM signal and will continue to
  run. I did not handle this case as I consider it quite unlikely, since
  module scripts are usually launched only when Waybar starts. Please
  let me know if you think it needs to be handled.

Testing:

* With `htop` open, run Waybar v0.9.5 with a custom module that has an
  `exec` script. Terminate the Waybar process and notice that the
  script’s subprocess stays alive and is now a child of the init
  process.
* Run Waybar with this patch and follow the same steps as above. Notice
  that this time the script’s subprocess terminates when the parent
  exits.
2021-02-12 21:14:46 +01:00
Alex
08e19602f7
Merge pull request #1015 from alebastr/rfkill-events
rfkill code refactoring
2021-02-11 10:20:13 +01:00
nullobsi
b12b500bfc
Merge branch 'master' into master 2021-02-10 09:39:03 -08:00
Aleksei Bavshin
e786ea601e
fix(rfkill): handle EAGAIN correctly 2021-02-10 08:26:21 -08:00
Alex
36da8117c0
Merge pull request #1026 from euclio/idle-inhibit-fix
disable Idle Inhibitor module if unsupported
2021-02-10 10:32:09 +01:00
Aleksei Bavshin
6d5afdaa5f
fix(network): don't block the main thread on rfkill update
Moving rfkill to the main event loop had unexpected side-effects.
Notably, the network module mutex can block all the main thread events
for several seconds while the network worker thread is sleeping.

Instead of waiting for the mutex let's hope that the worker thread
succeeds and schedule timer thread wakeup just in case.
2021-02-09 21:27:22 -08:00
Aleksei Bavshin
52dd3d2446
refactor(bluetooth): remove interval and timer thread
The timer thread was always reading the same value from Rfkill state.
2021-02-09 21:27:21 -08:00
Aleksei Bavshin
ecc32ddd18
refactor(bluetooth): remove Bluetooth::status_
The string was always overwritten in `update()`; don't need to store
temporary value in the class.
2021-02-09 21:27:20 -08:00
Aleksei Bavshin
38c29fc242
refactor(rfkill): poll rfkill events from Glib main loop
Open rfkill device only once per module.
Remove rfkill threads and use `Glib::signal_io` as a more efficient way
to poll the rfkill device.
Handle runtime errors from rfkill and stop polling of the device instead
of crashing waybar.
2021-02-09 21:27:19 -08:00
Aleksei Bavshin
40f4dc9ecf
fix(rfkill): accept events larger than v1 event size
Kernel 5.11 added one more field to the `struct rfkill_event` and broke
unnecessarily strict check in `rfkill.cpp`. According to `linux/rfkill.h`,
we must accept events at least as large as v1 event size and should be
prepared to get additional fields at the end of a v1 event structure.
2021-02-09 21:27:18 -08:00
Andy Russell
95a6689077
disable Idle Inhibitor module if unsupported 2021-02-09 18:37:13 -05:00
Alex
c5f875dc5f
Merge pull request #1027 from alebastr/output-fixes
Fix more issues with duplicated bars
2021-02-09 11:17:16 +01:00
Aleksei Bavshin
89b5e819a3
fix(client): improve guard from repeated xdg_output.done events
Multiple .done events may arrive in batch. In this case libwayland would
queue xdg_output.destroy and dispatch all pending events, triggering
this callback several times for the same output.

Delete xdg_output pointer immediately on the first event and use the
value as a guard for reentering.
2021-02-08 23:25:58 -08:00
Aleksei Bavshin
6585381230
fix(client): remove unnecessary wl_output_roundtrip
At this point we're not awaiting any protocol events and flushing
wayland queue makes little sense. As #1019 shows, it may be even harmful
as an extra roundtrip could process wl_output disappearance and delete
output object right from under our code.
2021-02-08 22:30:01 -08:00
Alex
f3ce7ff86c
Merge pull request #1021 from jgmdev/taskbar-icons
[wlr/taskbar] Check StartupWMClass
2021-02-07 16:52:34 +01:00
jgmdev
e4a65c72dd Added missing 'if' space. 2021-02-07 04:27:16 -04:00
jgmdev
f14a73584f [wlr/taskbar] Added break when matching StartupWMClass is found. 2021-02-07 01:01:57 -04:00
jgmdev
fffb52dd93 [wlr/taskbar] Check StartupWMClass on list returned by g_desktop_app_info_searchi() 2021-02-07 00:50:52 -04:00
Alex
71f9ed3099
Merge pull request #1018 from jgmdev/taskbar-icons
[wlr/taskbar] Fix unhandled exception crash when icon name is a path.
2021-02-04 10:05:02 +01:00
jgmdev
e293b89f6b [wlr/taskbar] Removed unnecessary catch statement. 2021-02-04 04:57:08 -04:00
jgmdev
8a284e7c74 [wlr/taskbar] Declared load_icon_from_file() static. 2021-02-03 21:14:04 -04:00
jgmdev
22ed153004 [wlr/taskbar] Fix unhandled exception crash when icon name is a path. 2021-02-03 21:04:10 -04:00
Alex
ff9f09a24e
Merge pull request #1014 from Moonlight-Angel/disable-auto-back-and-forth
Add a way to configure auto_back_and_forth on Sway workspaces
2021-02-03 09:57:05 +01:00
Genesis
7eb2a6b709
Add a configuration entry to disable auto_back_and_forth on Sway workspaces 2021-02-02 21:58:26 +01:00
Alex
f2e9bb54f0
Merge pull request #1011 from jgmdev/taskbar-icons
[wlr/taskbar] More icon search improvements.
2021-02-02 09:03:35 +01:00
jgmdev
ac6667b1c9 [wlr/taskbar] More icon search improvements.
* Added ~/.local/share prefix to search in user defined apps.
* Add support for apps that don't properly set an id like pamac.
2021-02-02 01:03:28 -04:00
Alex
7d78a3aeef
Merge pull request #1001 from max-k/master
[sway/window] Add app_id to usable fields in title
2021-02-01 22:23:49 +01:00
Alex
aa088721c3
Merge pull request #1008 from nullobsi/label-sizing
improve module sizing options
2021-02-01 22:22:33 +01:00
nullobsi
97f7050d7d
Update man pages 2021-02-01 08:34:51 -08:00
Alex
e21be3382b
Merge pull request #1007 from nullobsi/fullwidth-length
[calendar] CJK locale formatting
2021-02-01 11:15:30 +01:00
nullobsi
72cd753c02
align should use rotate property 2021-02-01 01:44:51 -08:00
nullobsi
c8d7b6fa92
rename fixed-length to min-length 2021-01-31 14:03:49 -08:00
nullobsi
8c70513a24
add common align config property to set text alignment
add fixed-length property to set the fixed width of the label
2021-01-31 13:58:41 -08:00
nullobsi
35062ceb99
Merge branch 'master' into master 2021-01-31 12:01:49 -08:00
nullobsi
f05afb5468
Merge branch 'master' into fullwidth-length 2021-01-31 11:58:12 -08:00
nullobsi
ecba117dc0
remove unnessecary logging 2021-01-31 11:56:25 -08:00
nullobsi
d2a1f41750
Use g_unichar_iswide to properly align calendar on CJK locales 2021-01-31 11:53:53 -08:00
Alex
be777b8525
Merge pull request #1006 from jgmdev/taskbar-icons
Improved wlr/taskbar icon search.
2021-01-31 20:47:23 +01:00
jgmdev
3881af4bbe Improved wlr/taskbar icon search. 2021-01-31 15:37:26 -04:00
Alex
933e0f5280
Merge pull request #1003 from joshuachp/patch-1
Update waybar-bluetooth.5.scd
2021-01-31 15:44:00 +01:00
Joshua Chapman
149c1c2f1b
Update waybar-bluetooth.5.scd
Remove the `status` from the `tooltip-format` example since it will
throw error. Related to #685
2021-01-31 11:37:41 +01:00
nullobsi
6cc3212605
add length limits for MPD module tags 2021-01-30 18:04:59 -08:00
Thomas Sarboni
e19aa1d43a
[sway/window] Add app_id to usable fields in title 2021-01-30 01:41:45 +01:00
Alex
69a366dced
Merge pull request #996 from martin2250/master
add power formatter to battery module
2021-01-24 23:33:12 +01:00
Alex
c9ef731fd0
Merge pull request #992 from alebastr/990-duplicated-bars-on-output-events
Fix duplicate bars on xdg_output property changes
2021-01-24 23:31:34 +01:00
Martin Pittermann
cd97bdb30f document power formatter in battery module 2021-01-24 21:49:00 +01:00
Martin Pittermann
3bcf390484 add power to battery formatter 2021-01-24 21:39:14 +01:00
Aleksei Bavshin
7fa1c11833
fix(client): unsubscribe after receiving xdg_output.done event
Ignore any further xdg_output events. Name and description are constant
for the lifetime of wl_output in xdg-output-unstable-v1 version 2 and we
don't need other properties.

Fixes #990.
2021-01-21 08:35:38 -08:00
Aleksei Bavshin
ab0f2c13af
fix(client): attach styles only once
Gdk >= 3.10 has only one GdkScreen. No need to reattach styles on every
output change.
2021-01-21 08:32:44 -08:00
Kamus Hadenes
dc38640341
Merge branch 'master' into patch-1 2021-01-18 10:55:40 -03:00