Commit Graph

1017 Commits

Author SHA1 Message Date
Michael Carlberg
c6d85b2b92 refactor: Optimize build 2016-11-20 23:04:31 +01:00
Michael Carlberg
40fcabd644 fix(config): Proper dereference of ${self.key} 2016-11-19 19:18:28 +01:00
Michael Carlberg
88c8bbd940 refactor: Fwd declare drawtypes
Ref #164
2016-11-19 15:49:06 +01:00
Michael Carlberg
38f9ba81cd feat(battery): Estimated time remaining
Adds a new token %time% that will display an
estimate of the remaining time until fully
charged/discharged
2016-11-19 15:42:31 +01:00
Michael Carlberg
30c1cb3d50 fix(animation): Use defined base values 2016-11-19 12:23:31 +01:00
Michael Carlberg
489d429644 refactor(ci): Split into scripts 2016-11-19 12:23:02 +01:00
Michael Carlberg
bf23086687 fix(builder): Always close raw syntax tags
The lazy closing doesn't work well with raw
syntax tags so ignore it when closing tags.
2016-11-19 08:11:18 +01:00
Michael Carlberg
fd57ab0f3d fix: project rename 2016-11-19 06:26:07 +01:00
Michael Carlberg
1b159786f0 fix(xwindow): Ignore xcb timestamp 2016-11-19 04:34:46 +01:00
Michael Carlberg
ab5666a7ea fix: Memory leak 2016-11-19 04:06:05 +01:00
Michael Carlberg
51d8f289fa feat(xwindow): New module "xwindow"
Add module to display title of active window.
Requires WM with support for the _NET_ACTIVE_WINDOW hint.

Ref #84
2016-11-19 04:05:13 +01:00
Michael Carlberg
2fd88c4f60 feat(ipc): New message type "action:"
Adds a new message type, prefixed "action:"
that will perform the same task as mouse actions.

This could be used to control menu modules:

  echo action:menu-open-1 > /tmp/lemonbuddy_mqueue.<pid>
  echo action:menu-close > /tmp/lemonbuddy_mqueue.<pid>

Ref #84
2016-11-18 18:37:53 +01:00
Michael Carlberg
0a1e9c86c4 fix: Add monitor y to strut top value 2016-11-18 18:04:43 +01:00
Michael Carlberg
2140e11369 fix: Do not require custom font list 2016-11-18 18:04:43 +01:00
Michael Carlberg
1b5979ba10 feat(config): Default reference values
- Add fallback values to env/xrdb references:

  ${env:UNEXISTING:fallback value}
  ${xrdb:UNEXISTING:fallback value}

- Replace ${BAR.key} with ${root.key} and display
  deprecation warning if the former is used
2016-11-18 18:04:24 +01:00
Michael Carlberg
8758206ba3 fix: Strut end values should be inclusive 2016-11-16 12:00:52 +01:00
Edgard Castro
1ea39e562a feat(bspwm): Additional dimmed states configuration 2016-11-15 04:33:10 -02:00
Michael Carlberg
70a5f1d41e fix: Bottom strut relative to screen 2016-11-15 02:28:42 +01:00
Michael Carlberg
ffe76b0556 fix(tray): Avoid tray redraw on bar update 2016-11-15 01:00:51 +01:00
Michael Carlberg
2301de667b fix(temperature): Calculate percentage value 2016-11-14 17:56:29 +01:00
Michael Carlberg
e22ec91101 fix(network): Check for TUN/TAP devices
Ref #159
2016-11-14 17:55:35 +01:00
Michael Carlberg
7b293a42cd fix(network): Check for nullptr values
Ref #159
2016-11-14 14:54:49 +01:00
Michael Carlberg
983963d4e4 feat(network): Accumulate stats from all interfaces
Add config setting that will display accumulated
values for up-/downspeed (accumulate-stats = true)

Closes #144
2016-11-14 12:42:59 +01:00
Michael Carlberg
39b4f50c65 fix: Terminate on X connection error 2016-11-14 10:37:13 +01:00
Michael Carlberg
e3065d0e6c feat(ipc): New ipc module
Add a new module that allow users to configure hooks
on received ipc messages. The hook will execute the defined
shell script and the output of the script will be used
as the module content.

Ref #84
2016-11-14 09:26:40 +01:00
Michael Carlberg
04fac96d78 fix(mpd): Hide module on empty playlist
Closes #149
2016-11-14 01:21:58 +01:00
Michael Carlberg
4b0e648cb8 refactor: Cleanup 2016-11-14 00:46:50 +01:00
Michael Carlberg
489f3ce480 wip: Inter-process messaging 2016-11-13 19:05:30 +01:00
Michael Carlberg
c480f6fd1e refactor: Move strut handling to window class 2016-11-13 16:10:20 +01:00
Michael Carlberg
4224d838a8 refactor(bar): Strut values based on EMWH spec 2016-11-13 13:25:57 +01:00
Michael Carlberg
c8f2a934b1 refactor(fs): Update naming to reflect actual usage
The module currently only handle mounted filesystem
and not block devices or partitions. Change naming
to be more clear.
2016-11-13 08:50:14 +01:00
Michael Carlberg
910baaecb2 fix(string_util): Use binary base for file sizes 2016-11-13 08:15:53 +01:00
Michael Carlberg
d2a6773c26 fix(fs): Remove unmounted format tags 2016-11-13 06:40:35 +01:00
Michael Carlberg
9a0df75a91 feat(fs): New filesystem module
Module that displays details about
mounted filesystems, #84

Closes #153
2016-11-13 06:14:34 +01:00
Michael Carlberg
ed5b7a508a fix(bspwm): Wrap the scroll handlers around workspaces 2016-11-13 01:13:41 +01:00
Michael Carlberg
4d7f6c14e6 fix(xrandr): Less strict monitor matching
Be less strict when matching randr outputs
against specified name. This is a workaround
to fix the output naming issue when switching
between graphic drivers.

On my system the output names include a dash
when using the nvidia drivers but the intel
driver does not.

   nvidia:
      HDMI-1
      eDP-1
   xf86-video-intel:
      HDMI1
      eDP1

When strict mode is disabled the matching
won't care about the connection state.

The user can re-enable exact matching and
connection state testing by setting the
config parameter `monitor-strict = true`
2016-11-12 20:42:56 +01:00
Michael Carlberg
3edd33be99 fix(build): Include poll.h instead of sys/poll.h
- Include <poll.h> to get rid of musl warnings
2016-11-12 15:50:18 +01:00
Michael Carlberg
42bcfd9fa1 feat(bspwm): Configurable scroll/click actions 2016-11-12 13:37:07 +01:00
Michael Carlberg
171e69bd30 fix: tray-position should be optional 2016-11-12 13:14:08 +01:00
Michael Carlberg
23996fdcdc refactor: Tray transparency and code cleaning
- Make pseudo-transparency work as intended, fixes #158
- Fill tray pixmap in case a root pixmap is not found
- Split up bar bootstrap routine
- Formatting (clang-format)
2016-11-12 13:09:50 +01:00
Michael Carlberg
f2bbd301f2 feat(xbacklight): Change value on scroll
- Add action handlers for scroll up/down (conf: enable-sroll = true)
- Use xcb_timestamps instead of the throttle util
2016-11-12 13:07:05 +01:00
Michael Carlberg
2740e69a38 refactor(i3): Cleanup and configurable actions
- Do not throw on handle_event failure
- Add settings to disable mouse scroll/click actions
- Add fold markers
- Misc cleanup
2016-11-12 13:07:05 +01:00
Michael Carlberg
1e08aa455b feat(temperature): Support for <ramp> 2016-11-12 13:07:05 +01:00
NBonaparte
fbd957bf33 feat(bspwm): added scrolling 2016-11-11 10:55:37 -08:00
Michael Carlberg
dc2d33ceba fix(bspwm): Remove monitor property
- Use the bar settings stored in the base class.
- Add fold markers
2016-11-11 11:05:22 +01:00
Michael Carlberg
fd44bcd8f6 fix(bspwm): Do not print empty mode labels 2016-11-11 11:04:53 +01:00
Michael Carlberg
d9707068f9 fix(tray): Disable tray if nodraw is set 2016-11-11 10:23:21 +01:00
NBonaparte
a06b38f534 feat(temperature): Added temp module and examples 2016-11-10 22:54:07 -08:00
Michael Carlberg
a8e902c579 fix(progressbar): Safety check
Fixes #152
2016-11-08 13:55:21 +01:00
NBonaparte
dce81d4266 feat(volume): Added volume mapping 2016-11-05 14:32:09 -07:00
Michael Carlberg
23a57b6226 fix(tray): Ensure minimum window width 2016-11-04 21:08:14 +01:00
Michael Carlberg
0fd89ec358 fix(tray): Reconfigure on re-activate 2016-11-04 20:41:24 +01:00
Michael Carlberg
a1d30ddee3 feat: Configurable _NET_WM_STRUT_PARTIAL
Bspwm just released support for _NET_WM_STRUT_PARTIAL
which can be used to fix the workspace padding

New config section:

[global/wm]
margin-top = 5
margin-bottom = 5
margin-left = 5
margin-right = 5
2016-11-04 20:23:15 +01:00
Michael Carlberg
de2ee4db1b fix(tray): Default to bar background rgb 2016-11-04 19:33:38 +01:00
Michael Carlberg
0814ed381f refactor: Group consecutive ascii chars and render string 2016-11-04 19:22:00 +01:00
Michael Carlberg
869c5fe718 refactor: Code cleanup 2016-11-04 19:21:56 +01:00
Michael Carlberg
ae501d6ae1 fix(tray): Support for pseudo transparency
Copy contents from the root pixmap onto the background

Fixes #125
2016-11-04 19:01:51 +01:00
Michael Carlberg
004d499ce3 fix: Make sure background colors are filled
Fixes a bug where alignment changes caused
the previous background to bleed over because
of the shift.

Fixes #141
2016-11-04 12:06:52 +01:00
Michael Carlberg
d74dd7f3ef fix(build): Remove disabled libs 2016-11-03 19:01:45 +01:00
Michael Carlberg
37ad86fa1c fix(build): GCC warnings 2016-11-03 18:19:47 +01:00
Michael Carlberg
5f21d7d440 feat(bspwm): Support for multi monitors listing
- All available workspaces can now be listed, grouped
by monitor, by setting the module config `pin-workspaces`
to false

- Adds a new format tag <label-monitor>

- Treat <label-mode> as a normal format tag
2016-11-03 17:56:07 +01:00
Michael Carlberg
12a64bd3d6 fix(i3): Trim workspace names
Closes #126
2016-11-03 15:43:46 +01:00
Michael Carlberg
a1472dfd0f refactor(battery): Poll values by default
Fixes jaagr/lemonbuddy#140
2016-11-03 15:21:46 +01:00
Michael Carlberg
52c08675e6 fix(battery): Ignore the fake inotify event
Assume fake event if polling flag is set.

Fixes jaagr/lemonbuddy#140
2016-11-03 14:40:12 +01:00
Michael Carlberg
b9e4ee9b92 fix: Disable modules with error 2016-11-03 14:10:48 +01:00
Michael Carlberg
af2289e397 fix(battery): Poll until real inotify event occurs
Fixes jaagr/lemonbuddy#140
2016-11-03 12:56:35 +01:00
Michael Carlberg
e7cb345cec wip: Separate source from definitions 2016-11-03 12:54:32 +01:00
Michael Carlberg
e62b545d1c Revert "refactor: Dropping XInitThreads();"
This reverts commit d5515ebcb0.
2016-10-30 19:34:21 +01:00
Michael Carlberg
d5515ebcb0 refactor: Dropping XInitThreads(); 2016-10-30 02:41:18 +01:00
Michael Carlberg
1075144b00 refactor(eventloop): Use concurrent queue for events
Events are now enqueued using a thread safe concurrent queue
which makes the previous eventloop locking redundant.
2016-10-29 06:48:51 +02:00
Michael Carlberg
7905f37462 refactor(di): Move configure_T() to anonymous ns 2016-10-25 01:55:59 +02:00
Michael Carlberg
9e22b3e693 refactor(cmake): Target libc++ 2016-10-25 01:46:35 +02:00
Michael Carlberg
c4e9f9d035 wip: Update CMakeLists 2016-10-12 02:16:48 +02:00
Michael Carlberg
eb38fb85ac fix: Make the application work properly using i3wm 2016-10-11 23:42:01 +02:00
Michael Carlberg
bae90cb4a9 fix(cmake): Added empty source file to build lib 2016-10-10 18:10:32 +02:00
Michael Carlberg
d359ab6057 refactor: Application rewrite 2016-10-10 14:52:57 +02:00
Michael Carlberg
99f97b07eb fix(bspwm): Look for socket path in env variable
Fixes jaagr/lemonbuddy#29
2016-06-30 16:12:13 +02:00
Michael Carlberg
e8cb754c27 builder: Get bar options lazily 2016-06-30 05:18:53 +02:00
Michael Carlberg
96179de06a feat: Support alpha using tags %{F#00} 2016-06-29 12:43:13 +02:00
Michael Carlberg
80e6936cdc refactor: Use shared_ptr for Bar/Opts 2016-06-29 12:42:54 +02:00
Michael Carlberg
f406f1eb9f Cleanup and compiler check fixes 2016-06-29 11:06:44 +02:00
Michael Carlberg
f2999b7272 fix(date): Do not trigger updates when unchanged 2016-06-29 11:05:30 +02:00
Michael Carlberg
35d84ccb8d fix(i3): Release wait lock 2016-06-28 17:16:46 +02:00
Michael Carlberg
4c83b363bf feat(build): Build with version 2016-06-28 15:06:30 +02:00
Michael Carlberg
e1279d6582 refactor(xcb): Namespacing 2016-06-28 06:18:17 +02:00
Michael Carlberg
b8a1dd628e refactor(bspwm): Better socket handling
- Reconnect on POLLHUP
- Switch desktop using socket instead of std::system()

Fixes jaagr/lemonbuddy#27
2016-06-28 05:11:14 +02:00
Michael Carlberg
99cb53a565 fix(logger): Use local ptr 2016-06-28 04:59:07 +02:00
Michael Carlberg
8b030930af refactor: Better handling of spaces between format tags
Ignore spaces if the previous tag was not outputted
2016-06-28 01:05:48 +02:00
Michael Carlberg
ab06ed2c16 refactor(mpd): Cleanup 2016-06-28 01:05:45 +02:00
Michael Carlberg
f25d26fbd9 fix(mpd): Safety check 2016-06-27 22:55:52 +02:00
Michael Carlberg
78823fda6d fix(mpd): Broadcast connection state changes once 2016-06-27 22:23:42 +02:00
Michael Carlberg
26daf744bb fix: Conditional modules 2016-06-27 21:52:21 +02:00
Michael Carlberg
718cfd294d fix(xcb): Use xcb_rectangle for monitor bounds 2016-06-24 01:42:58 +02:00
Michael Carlberg
825b47b7d4 Cleanup of bar::load 2016-06-24 00:26:08 +02:00
Michael Carlberg
52335d4f63 cmake: Cleanup 2016-06-24 00:26:08 +02:00
Michael Carlberg
8b7f2b7268 refactor: Replace X11 handling with xpp+xcb
xrandr 1.5 is no longer required for the monitor
handling to work

fixes jaagr/lemonbuddy#12
fixes jaagr/lemonbuddy#24
2016-06-24 00:22:33 +02:00
Michael Carlberg
911b862f06 fix(builder): Cap percentage values 2016-06-22 20:06:30 +02:00
Michael Carlberg
8caa95de7f fix: Initialize token labels in constructor 2016-06-22 19:07:57 +02:00
Michael Carlberg
04bd48d104 fix(volume): Cleanup mixers on early destruct 2016-06-21 16:35:37 +02:00
Michael Carlberg
5f0a90722a fix(battery): Replace debug message with trace 2016-06-21 07:50:05 +02:00
Michael Carlberg
fd88c60b97 fix(network): Use local logger 2016-06-21 07:49:15 +02:00
Michael Carlberg
3ea64e5cbe refactor(registry): Changed naming of wait vars 2016-06-21 07:47:51 +02:00
Michael Carlberg
e36cf8518a refactor: Pass by value 2016-06-21 06:01:21 +02:00
Michael Carlberg
21290e103c feat(registry): Log module refresh 2016-06-21 05:25:31 +02:00
Michael Carlberg
d8a3d7d5f6 feat(mpd): Format tags for back-/forward seek 2016-06-21 05:10:18 +02:00
Michael Carlberg
006f3f8efd fix(mpd): Default tag values 2016-06-21 04:38:14 +02:00
Michael Carlberg
89ea8d9146 fix(battery): Store paths 2016-06-21 04:38:01 +02:00
Michael Carlberg
4d444da0e4 refactor(logger): Restrict trace logs to debug builds 2016-06-21 04:29:33 +02:00
Michael Carlberg
ec2c27a44b fix: Lock all mutexes on destruct 2016-06-21 04:26:42 +02:00
Michael Carlberg
ac22b59a40 feat: EventThrottler 2016-06-21 04:23:28 +02:00
Michael Carlberg
c506829e4e fix(core): Move non-templated method bodies out of header 2016-06-21 04:23:28 +02:00
Michael Carlberg
d451318bbd fix(mpd): Disconnect on destruct 2016-06-21 04:23:28 +02:00
Michael Carlberg
e1f8c001dd refactor: Pass by value 2016-06-21 04:23:23 +02:00
Michael Carlberg
b26ab9ce5f task: Removed obsolete timer util 2016-06-20 22:18:53 +02:00
Michael Carlberg
ec92ac91ab feat(core): Custom thread sleep
Makes it possible to manually wake up sleeping threads
2016-06-20 22:11:58 +02:00
Michael Carlberg
d530da0d50 fix(core): Output more details about defined bars at failure 2016-06-20 18:44:48 +02:00
Michael Carlberg
3adcb5fd61 fix(core): Exit with correct status code 2016-06-20 18:44:36 +02:00
Michael Carlberg
55f5a6fb70 task: Removed torrent module 2016-06-20 15:08:13 +02:00
Michael Carlberg
ff7e15db88 logger: Output INFO messages as default 2016-06-20 14:47:55 +02:00
Michael Carlberg
7490841e55 fix(mpd): Ignore timer updates if not playing 2016-06-15 05:16:59 +02:00
Michael Carlberg
939a704764 fix(core): Conform to musl libc 2016-06-14 13:17:03 +02:00
Michael Carlberg
6cae06c4dc refactor(script): Better handling of tail scripts 2016-06-14 12:15:22 +02:00
Michael Carlberg
c959d2c7c6 refactor(bar): Make monitor vector local 2016-06-14 12:15:22 +02:00
Michael Carlberg
3bc408e3cf refactor(eventloop): Pipe handling 2016-06-14 12:15:21 +02:00
Michael Carlberg
ea15f4a5de fix(battery): Prevent broadcast if values are unchanged 2016-06-14 05:24:56 +02:00
Michael Carlberg
4991e18b19 fix(registry): Offset module loading 2016-06-14 02:55:32 +02:00
Michael Carlberg
f7734de26a feat(script): Option to tail script output 2016-06-13 23:41:59 +02:00
Michael Carlberg
552c0b58a5 fix(command): try to please linter 2016-06-11 13:55:10 +02:00
Michael Carlberg
2c74cb06de task(dsl): Replace colons with dashes
Colons break ini syntax highlighters and linters.
2016-06-11 07:49:14 +02:00
Michael Carlberg
0e52c02a5f fix(core): Exit with correct status code on failure 2016-06-10 16:19:27 +02:00
Michael Carlberg
0e9900db74 fix(volume): Improve mixer event handling
Fixes jaagr/lemonbuddy#14
2016-06-10 01:09:54 +02:00
Michael Carlberg
f667b739f0 task(mpd): Move connection settings to config
Closes jaagr/lemonbuddy#16
2016-06-09 13:44:01 +02:00
Michael Carlberg
20ebe00656 fix(volume): Do not require pending events when querying for headphones 2016-06-02 19:00:04 +02:00
Michael Carlberg
8c8d5bc4a8 fix(core): Always initialize input pipe 2016-06-02 18:47:26 +02:00
Michael Carlberg
331c94c248 fix(volume): Handle non synced mute 2016-06-02 18:45:48 +02:00
Michael Carlberg
39d3f61497 refactor(core): Clean-up
- use "#pragma once" instead of the regular include guard
- fix errors and warnings reported by cppcheck
2016-06-02 01:32:06 +02:00
Michael Carlberg
b63e25d6e7 fix(core): Nullptr checks 2016-06-01 17:03:11 +02:00
Michael Carlberg
a410e182a9 fix(volume): Unit testing would be nice 2016-06-01 16:35:24 +02:00
Michael Carlberg
89a476e94c fix(mpd): Avoid nullptrs 2016-06-01 16:29:17 +02:00
Michael Carlberg
78effb28b8 fix(volume): Prevent nullptr 2016-06-01 16:26:44 +02:00
Michael Carlberg
f1e7991279 fix(battery): Check file existance 2016-06-01 16:06:36 +02:00
Michael Carlberg
9321fb0db9 fix(backlight): Check file existance 2016-06-01 16:06:24 +02:00
Michael Carlberg
af6ef01ea6 fix(cpu): Bad value for total load percentage 2016-06-01 08:18:49 +02:00
Michael Carlberg
f573fcc531 fix(bspwm): Do not output empty click handlers 2016-06-01 07:49:14 +02:00
Michael Carlberg
a6ec504513 feat(core): Throttle writes to stdout 2016-06-01 01:07:23 +02:00
Michael Carlberg
85f9dfd872 fix(network): Remove pointless lock 2016-05-31 16:07:55 +02:00
Michael Carlberg
688ca94658 fix(battery): Remove pointless lock 2016-05-31 15:51:48 +02:00
Michael Carlberg
260519ec55 fix(battery): Better safety checks 2016-05-31 15:40:17 +02:00
Michael Carlberg
9f520dea7a fix(network): Proper handling of connectivity testing 2016-05-31 12:34:49 +02:00
Michael Carlberg
f8c8204a91 fix(core): Expand tilde in config path 2016-05-31 06:27:30 +02:00
Michael Carlberg
d63c0af5f1 fix(core): Safety check 2016-05-31 04:46:34 +02:00
Michael Carlberg
de1d5f3f4a fix(battery): Make it possible to disable polling 2016-05-31 03:05:09 +02:00
Michael Carlberg
4a6a36f08f fix(battery): Poll capacity level
Some distros doesn't report any inotify event's for
the filesystem where the battery capacity file is located.

Resort to polling for now...
2016-05-31 02:55:08 +02:00
Michael Carlberg
4adb3120d1 fix(core): Remove redundant includes 2016-05-30 23:58:26 +02:00
Michael Carlberg
9972d56bb2 fix(build): Dont include old util lib 2016-05-26 23:22:19 +02:00
Michael Carlberg
23b2cc69dd fix(battery): Proper handling of charge animation
Closes jaagr/lemonbuddy#3
2016-05-26 11:50:01 +02:00
Michael Carlberg
40524979d0 fix(script): Do not process empty script output 2016-05-24 23:37:16 +02:00
Michael Carlberg
d1eed705e0 fix(core): Only include network module header if compile flag is set 2016-05-24 12:53:41 +02:00
Michael Carlberg
6a4e8d4196 fix(core): Replace space with dash in lemonbar args 2016-05-24 08:38:03 +02:00
Michael Carlberg
0ec71829e4 task(core): Merge consecutive lemonbar tags 2016-05-24 08:11:17 +02:00
Michael Carlberg
d75a375538 fix(core): Be more clean why the module is invalid 2016-05-24 06:30:06 +02:00
Michael Carlberg
a6ebd3986f fix(build): Conditionally include network module 2016-05-24 04:37:14 +02:00
Michael Carlberg
34832d8cd8 fix(core): Catch exit codes 2016-05-24 04:00:01 +02:00
Michael Carlberg
a83ecb36db fix(memory): Set vars to 0 if exception is thrown 2016-05-24 03:47:31 +02:00
Michael Carlberg
92e1216574 fix(fonts): Default offset to 0 if not specified 2016-05-24 00:49:35 +02:00
Michael Carlberg
c7b6554668 fix(mpd) Support relative seek percentages 2016-05-20 05:34:07 +02:00
Michael Carlberg
eeefb3c610 init(git): Base commit 2016-05-19 20:23:45 +02:00