Commit Graph

725 Commits

Author SHA1 Message Date
cptpcrd
5cbbfd5c8a Close pipe if fork() fails when spawning processes
Prevents potential file descriptor leakage, albeit in a bit of an edge
case.
2023-05-21 12:15:49 -04:00
cptpcrd
df65cab17a Open command pipes as close-on-exec
Avoids a race where the pipe could be inherited by another process
spawning at about the same time. If the other process didn't exit
quickly (e.g. if it was a custom script that did its own looping), it
would keep the write end of the pipe open, and so reading from the pipe
to try to get the command's output would block.

This bug manifested as some custom modules randomly not appearing in the
bar, requiring a reload to fix. The custom script had run and exited,
but the pipe had been inherited by another process, and the thread that
updated the module's output was blocked trying to read from it.
2023-05-21 12:10:44 -04:00
MonstrousOgre
c04485a5d0 separate css class for empty workspaces 2023-05-05 00:09:32 +05:30
Paymon
3da3732cc9 network: detect if link is p2p and use local addr
without this we endup with peer's addr

Signed-off-by: Paymon MARANDI <darwinskernel@gmail.com>
2023-04-26 13:52:17 -04:00
Alan-Kuan
6a17139423
feat: tooltip for image module 2023-04-21 16:38:21 +08:00
Alex
ede1d25440 fix: lint 2023-04-17 09:01:14 +02:00
Alex
8be889c5aa
Merge pull request #2103 from xdavidel/dwl-module
Add DWL tags module
2023-04-17 09:01:00 +02:00
Alex
b1e3347fca
Merge pull request #2089 from MonstrousOgre/master 2023-04-17 08:59:22 +02:00
Alex
8aafe817bf
Merge pull request #2102 from LukashonakV/Cava 2023-04-16 18:06:53 +02:00
Viktar Lukashonak
a5607b66ca
Cava module
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
2023-04-15 02:36:15 +03:00
Viktar Lukashonak
6de3b58d6a
ISSUE#2073
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
2023-04-13 17:16:03 +03:00
David Delarosa
60cdf10e64 Add DWL tags module 2023-04-11 04:50:21 +03:00
Alex
a6084ea7e6
Merge pull request #2068 from TheRealLorenz/master 2023-04-03 09:44:04 +02:00
Alex
60467ad7f2
Merge pull request #2064 from en3wton/hyprland-language-format-replacements 2023-04-03 09:43:28 +02:00
Alex
ef99b0226c
Merge pull request #1932 from ldelossa/wlr-taskbar-sort-app-id 2023-04-03 09:42:19 +02:00
Alex
60e0584d16 fix: lint 2023-04-03 09:41:24 +02:00
chayleaf
0cfd1c7094 mpris: don't put ellipsis after whitespace 2023-03-31 19:54:44 +07:00
chayleaf
e5524d5059 mpris: switch base class from AModule to ALabel 2023-03-31 19:54:39 +07:00
chayleaf
5383f7bd56 mpris: add unicode support; add position tag 2023-03-31 19:54:20 +07:00
chayleaf
a53c97f7f6 mpris: add tooltip and length limits 2023-03-31 19:53:53 +07:00
TheRealLorenz
63525ec956 Rename function name 2023-03-25 17:33:01 +01:00
MonstrousOgre
5791a6abc6 Reading persistent workspaces 2023-03-24 23:11:47 +05:30
en3wton
bbcfb5e138 remove use of new on Layout 2023-03-21 19:30:35 +00:00
en3wton
4ab4ff790e add more format replacements for hyprland/language 2023-03-19 15:12:11 +00:00
Alex
b34d325a71
Merge pull request #2037 from LukashonakV/Happy_clang
Happy clang
2023-03-02 19:42:38 +01:00
Alex
3bda22da72
Merge pull request #1589 from qubidt/module-group-orientation
group module: configurable orientation
2023-03-02 19:42:22 +01:00
Viktar Lukashonak
61a6c00c02
Happy clang 2023-03-02 16:57:32 +03:00
Louis DeLosSantos
79eb2f5bc1 wlr-taskbar: allow sorting by app_id
some users (maybe only myself) may want to sort the task bar by app_id
which then places occurrences of the same task next to each other.

Signed-off-by: Louis DeLosSantos <louis.delos@gmail.com>
2023-03-01 12:16:28 +00:00
Alex
c9c8b09e3f
Merge pull request #1991 from alex-courtis/add-river-layout 2023-03-01 09:42:39 +01:00
Viktar Lukashonak
e25a7c9719
ISSUE#1977. AModule implements module actions call
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
2023-02-28 15:32:28 +03:00
Alexander Courtis
5e4a47c0a8 Merge branch 'master' into add-river-layout 2023-02-11 13:22:46 +11:00
Alex
ea38eec2af fix: lint 2023-02-09 13:25:39 +01:00
Kuruyia
e8c4b85328 feat(backlight): use dbus to set the brightness 2023-02-03 12:58:52 +01:00
Kuruyia
a78f0124d2 feat(backlight): add brightness control 2023-02-01 14:46:55 +01:00
Alexander Courtis
757a450324 add river/layout 2023-01-31 16:34:38 +11:00
Alex
0ecfce9c61
Merge pull request #1975 from bd-g/fix-image 2023-01-27 14:38:26 +01:00
Viktar Lukashonak
5d8f9a8273
Clock. Formating simplify
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
2023-01-27 15:57:18 +03:00
Brent George
e128c48573 image module CSS fix 2023-01-24 14:34:02 -05:00
Viktar Lukashonak
ed31b20c26
Merge branch 'master' into YearCalendar
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
2023-01-23 18:42:32 +03:00
Sasha Moak
4e8ccf36b5 fix(wireplumber): waybar crashes when default node changes
In order to fix the issue, the default node name is cached rather than
the default node id. This is due to ids being unstable. So now when the
object manager is installed (ie ready), the default node name is
retrieved and stored for later.

Now when the mixer changed signal is emitted, the id of the changed node
is used to get the node from the object manager. The nodes name is
grabbed off that node and compared against the default node name, if
they match the volume is updated. Some safeguarding has been added such
that if the node cannot be found off the object manager, it's ignored.

Additionally, the "changed" signal on the default nodes api is now
utilized to update the default node name if it has changed. This way if
the default node changes, the module will be updated with the correct
volume and node.nick.

This adds additional debug logging for helping diagnose wireplumber
issues.

This also adds the wireplumber man page entry to the main waybar
supported section.
2023-01-16 10:29:35 -08:00
Rene D. Obermueller
328573332f sway-window, Issue 1399: new style classes
Provides CSS classes empty, floating, tabbed, tiled, solo, stacked and
app_id.

Adds offscreen-css bool option (default false), only effective when
"all-outputs" is true. This adds styles on outputs without focused
node, according to its focused workspaces window situation.

Adds an "offscreen-css-text" string option (default empty), only
effective when "all-outputs" and "offscreen-style" are set. This
is shown as a text on outputs without a focused node.

Adds a "show-focused-workspace" bool option (default false) to indicate
the workspace name if the whole workspace is focused when nodes are
also present. If not set, empty text is shown, but css classes
according to nodes in the workspace are still applied.

Limitation:
When the top level layout changes, there is no sway event so the
module cannot react. Perhaps in the future recurring polling can
be added to go around this limitation.
2023-01-12 05:53:59 +01:00
Robert Günzler
24d03d13ce
mpris: fix build errors
to address https://github.com/Alexays/Waybar/pull/1520#issuecomment-1374229080

Signed-off-by: Robert Günzler <r@gnzler.io>
2023-01-07 01:44:25 +01:00
Alex
86850f5c7a
Merge pull request #1520 from robertgzr/mpris-module 2023-01-06 22:35:24 +01:00
Robert Günzler
0bc5314e08
Add mpris module
Uses libplayerctl to use the MPRIS dbus protocol to query, listen and
control media players.

Signed-off-by: Robert Günzler <r@gnzler.io>
2023-01-06 20:55:31 +01:00
Alex
1938bb5d28 fix: lint 2023-01-04 16:26:50 +01:00
Enes Hecan
4d59de42af Implement hyprland submap module 2022-12-21 01:45:57 +01:00
Viktar Lukashonak
0079092699
ISSUE#1874
1. Calendar. Weeks. Fix right paddings when first days of the week is
Monday
2. Fix small perfomrance penalty(avoid of defining parameter in the
month loop)
3. Small name convention for format string variables
2022-12-14 16:43:23 +03:00
Viktar Lukashonak
57ad7f9536
ISSUE#1877 Calendar week numbers
1. Let's do code simplier
2. Week format using regexp. Needs when user provide additional
characters in format string and need to align week days according
3. Week format has got default formats: ":%U",":%V"
4. Week number is based on the first day of the week now. The output is
the same as of date library now.
5. Avoiding of unnecessary operations
2022-12-10 14:02:15 +03:00
Alex
80b2b29a77
Merge pull request #1397 from JakeStanger/feat/image-module
Resolves https://github.com/Alexays/Waybar/issues/1191
2022-11-24 20:40:56 +01:00
Simon Plakolb
235861fd3d button: Remove AButton class 2022-11-24 13:08:16 +01:00
Simon Plakolb
5e9bbe5c76 modules: Revert button to label 2022-11-24 13:08:16 +01:00
herlev
2c7cb0e9d4 Fix crashes when using named workspaces in Hyprland
The first crash occurs when trying to parse the
ID of a workspace as an uint, since named
workspaces has negative IDs. This is fixed by
using ints for workspace IDs instead of uints.

The second crash occurs when converting a
workspace name that isn't a number to an integer.
This is fixed by wrapping std::stoi in a try
block and only sorting by number, when both names
can successfully be converted to integers.
2022-11-24 02:16:44 +01:00
Sasha Moak
c2f98d07ef feat: wireplumber support
Adds basic support for showing volume via wireplumber. Allows specifying
the node-id or falling back to the default Audio/Sink node id if node-id
is not set. If tooltip on hover is enabled, will show `{node_name}` by
default otherwise `tooltip-format`.

Format replacements:

`{volume}` - Volume in percentage
`{node_name}` - The node's nickname (`node.nick` property)
2022-11-16 23:23:07 -08:00
Dordovel
1111763251 added path settings 2022-11-16 08:04:18 +03:00
Dordovel
769858fbb4 fix call parent event handle, added commang to open user folder 2022-11-15 16:15:26 +03:00
Dordovel
454ba610f4 clicking on the user label opens the default file manager 2022-11-11 15:15:12 +03:00
Jef Steelant
8f4f67f69f Do not crash when a monitor is removed 2022-11-09 09:34:19 +01:00
Baltazár Radics
d02e23c759 feat(backlight): hide if the display is powered off 2022-11-07 13:57:21 +01:00
Alex
2d7e21ed7d fix: lint 2022-10-26 17:26:15 +02:00
bi4k8
ff61e7bf4e taskbar: implement drag-and-drop task reordering 2022-10-25 19:39:23 +00:00
Alex
e8e8ccb6cf
Merge pull request #1661 from asas1asas200/zeng-feat-improve_keyboard 2022-10-20 10:50:35 +02:00
Alex
a24f2d72a7
Merge pull request #1730 from herlev/hyprland-window-rewrite 2022-10-20 10:48:57 +02:00
Simon Plakolb
1f591e36f1 button: Hardcode min-width property set to zero
Buttons come with an intrinsic min-width but lack a method to alter this
property. Setting the requested size to zero has also no effect on it.
The only way found to work is to hard code the CSS into the button.
2022-10-20 10:31:11 +02:00
herlev
54e04b5a30 Refactor rewriteTitle 2022-10-19 13:25:08 +02:00
herlev
f72c1a54d3
Merge branch 'Alexays:master' into hyprland-window-rewrite 2022-10-19 12:18:22 +02:00
Alex
6b221133c2
Merge pull request #1703 from lbartoletti/freebsd_battery 2022-10-19 09:08:47 +02:00
Loïc Bartoletti
9d5f0e45c0 Add test if there is battery 2022-10-18 19:30:23 +02:00
Loïc Bartoletti
45e44e03bd Apply jbeich suggestion for if defined(__linux__) 2022-10-18 19:30:21 +02:00
Loïc Bartoletti
830c5cd5d0 FreeBSD: Add support to battery
This commit aims to propose a FreeBSD to gain battery support using sysctl on hw.acpi.battery.*
2022-10-18 19:30:04 +02:00
herlev
97ae2ff343 Add rewrite option to hyprland/window 2022-10-18 13:18:43 +02:00
herlev
cb842d9d50
Merge branch 'Alexays:master' into sort-workspaces-by-number 2022-10-18 12:19:00 +02:00
Alex
6e73c58e60 fix: lint 2022-10-18 09:01:45 +02:00
Alex
209225e381
Merge pull request #1701 from Dordovel/master 2022-10-18 09:01:00 +02:00
Alex
7746328daa
Merge pull request #1667 from asas1asas200/zeng-feat-sway_scratchpad 2022-10-18 09:00:31 +02:00
Dordovel
4ed13df092
Merge branch 'Alexays:master' into master 2022-10-17 19:00:21 +03:00
herlev
4dfea72db0
Merge branch 'Alexays:master' into sort-workspaces-by-number 2022-10-17 10:01:12 +02:00
herlev
56ec72c31c
Merge branch 'master' into master 2022-10-17 09:44:17 +02:00
Alex
8551c4bbe3 fix: lint 2022-10-17 09:19:00 +02:00
Alex
58362abfaf
Merge pull request #1630 from duxovni/pow_format 2022-10-17 09:16:47 +02:00
Alex
bfa3adcfd6
Merge pull request #1120 from pinselimo/use_gtk_button_v2 2022-10-17 09:09:12 +02:00
Alex
5b0c5ea9ce
Merge pull request #1720 from IanManske/inhibitor-default-state 2022-10-17 09:06:26 +02:00
Mika Braunschweig
f86dff60e6
utils: add sanitize_str to encode '&' etc.
gtk requires some chars (<>&"') to be encoded for them to render
properly. `sanitize_str` sanitizes raw strings that have such chars and
returns a properly encoded string
2022-10-17 00:31:19 +02:00
herlev
9a0013cb10 Add option to wlr/workspaces to sort workspaces by number 2022-10-15 01:44:58 +02:00
Ian Manske
cca5227210 Add config value for inhibitor default state. 2022-10-13 21:47:57 -04:00
herlev
015409acaf Allow hyprland/window to show active window on a per monitor basis 2022-10-13 23:41:56 +02:00
Simon Plakolb
b8322c4b4b button: Add AButton class
The AButton class is designed as full a substitute to ALabel. The
GtkButton attribute 'button_' is initialized with a label. This
label can the be referenced by the subsequent inheritors of AButton
instead of the GtkLabel attribute 'label_' of ALabel.
For convenience a GtkLabel* 'label_' attribute is added to AButton.

If the button cannot be clicked it is disabled, effectively acting
like its label predecessor.

GtkButton seems to catch one-click mouse events regardless of the
flags set on it. Therefore, 'signal_pressed' is connected to a
function creating a fake GdkEventButton* and calling 'handleToggle'
(for details on this possible bug in GTK see:
https://stackoverflow.com/questions/45334911 )

In accordance with other GtkButtons (i.e. the sway/workspace ones)
set_relief(Gtk::RELIEF_NONE) is called on the 'button_' instance.
2022-10-12 10:25:29 +02:00
Dordovel
9758833027 added user module 2022-09-30 14:33:23 +03:00
Alex
ac193ae669
Merge pull request #1646 from LukashonakV/ISSUE#1545
Issue#1545. Calendar scrolling opportunity
2022-09-07 09:16:59 +02:00
Alex
79f21c0d7b
Merge pull request #1600 from leophys/master
Add support for reading the config path from env
2022-09-05 10:56:01 +02:00
Alex
29bdff5314
Merge pull request #1657 from vaxerski/hyprlandLanguage
Added a basic hyprland/language module
2022-09-05 09:12:17 +02:00
Blallo
eb017347b8
Add support for reading the config path from env
This commit adds support to reading the config base path from the
environment variable `WAYBAR_CONFIG_DIR`. If it is set, but no
configuration is found there, it falls back to the previous mechanism
of using the default paths, without erroring.
2022-09-05 08:21:36 +02:00
Bao Trinh
f5a24d12e5
group module: configurable orientation
currently, the orientation of group modules is always the opposite of
the bar. Change it so that:

* the default orientation of the group module is always the opposite of
  its parent, even for nested groups
* the orientation can be overridden in the config
* css ID and class are set for the group element
2022-09-03 18:37:35 -05:00
Alex
4deb6d812d
Merge pull request #1653 from kennypm/dsp
add JACK module
2022-09-02 08:12:57 +02:00
asas1asas200
d2ff116c92 feat(sway/scratchpad): add some configs
Add some configs for displaying.
Remove draft codes.
2022-08-31 16:27:25 +08:00
asas1asas200
e3342467fc feat(sway/scratchpad): add basic counter 2022-08-31 16:27:25 +08:00
asas1asas200
dcd75b3b40 feat(keybaord): enable hotplug support
Use inotify listening devices path changes to implement hotplug support.
The new hotplug thread is also an event loop, so the interval value has
no effect.
The evdev is now open on demand.

Fix libinput_interface object life-time.
2022-08-23 23:30:16 +08:00
asas1asas200
061f4550f4 feat(keyboard): improve keyboard response time
Use libinput event for keyboard state updates.
The state will update when CAPS_LOCK, NUM_LOCK or SCROLL_LOCK has been
released,
`interval` will have no effect after this change.
2022-08-22 22:49:59 +08:00
ViktarL
8839a86afe
Merge branch 'Alexays:master' into ISSUE#1545 2022-08-19 13:52:52 +00:00
vaxerski
43c3ca1d38 added the thing i was talking about 2022-08-18 18:59:34 +02:00
vaxerski
16d5619f3b added a basic hyprland/language module 2022-08-18 18:00:27 +02:00