Commit Graph

264 Commits

Author SHA1 Message Date
Michael Carlberg
c7f33e2567 refactor(renderer): Use redirection groups instead of pixmaps 2017-01-25 09:54:18 +01:00
Chase Geigle
6364bb4385 feature(renderer): Allow dpi-x and dpi-y configuration
Negative values for any of the DPI settings are used to mean "auto",
which will attempt to compute an appropriate DPI from monitor settings.
2017-01-25 04:35:35 +01:00
Chase Geigle
e7dc6b8bbb fix(renderer): Use proper font scaling based on DPI
This tries to mimic the old renderer's behavior as closely as possible.
In the absence of any information, DPI is assumed to be 96x96. DPI can
be configured on a per-bar basis using the configuration key "dpi".

To use the DPI configuration from Xresources (if built with support),
one can specify the following in the bar config:

dpi = ${xrdb:Xft.dpi:96}
2017-01-25 04:35:35 +01:00
Michael Carlberg
8d79b582ec fix(renderer): Default all comp. operators to OVER 2017-01-24 14:25:01 +01:00
Michael Carlberg
1a5246e940 refactor(cairo): Use shared_ptr for font list 2017-01-24 11:50:26 +01:00
Michael Carlberg
3e37b9ec8e fix(cairo): Increment textblock bg extents 2017-01-24 11:07:18 +01:00
Michael Carlberg
6692b4a8da refactor(x11): Cleanup 2017-01-24 10:49:14 +01:00
Michael Carlberg
a5d6670121 refactor(clang-tidy): Apply fixes 2017-01-24 08:01:04 +01:00
Michael Carlberg
8b9461e63e wip(refactor): Cairo drawing 2017-01-24 07:41:46 +01:00
Michael Carlberg
13633f715d fix(main): Exit on unrecognized positional arg 2017-01-24 07:11:14 +01:00
Michael Carlberg
d6a34717bf fix(ipc): Remove existing fifo file 2017-01-24 07:11:14 +01:00
Michael Carlberg
4558893c37 docs: Update manpage 2017-01-24 07:11:14 +01:00
Michael Carlberg
a59e115622 wip(refactor): Cairo drawing 2017-01-24 07:11:14 +01:00
Michael Carlberg
452afcdc68 refactor: Integral types 2017-01-24 07:11:14 +01:00
Michael Carlberg
5e1886a312 wip(refactor): Cairo drawing 2017-01-24 07:11:14 +01:00
Chase Geigle
47a2cce03d fix: Ensure reloading when IN_IGNORED fired on config (#371)
This fixes a "bug" where polybar wouldn't reload on a configuration
file change on some configurations of vim, which don't actually issue
any IN_MODIFY events because they choose to move the file, replace it
with a new one, and then delete the file instead.

To work around this, we now also listen for IN_IGNORED which fires when
the file we are watching is destroyed. When this happens, we re-attach
the configuration file watcher to the new file and reload.
2017-01-24 07:10:55 +01:00
Michael Carlberg
48749b12d8 fix(bar): Improve error message for unparsable color 2017-01-20 02:32:52 +01:00
Michael Carlberg
892673c405 fix(config): Require value reference without fallback 2017-01-20 02:31:55 +01:00
Michael Carlberg
5ad0081e76 fix(command_line): Filter positional args 2017-01-20 02:30:05 +01:00
Michael Carlberg
e1483c3f65 refactor(xresources): Use xcb-util-xrm
Drop the Xlib version and handle X resource
lookups using xcb-util-xrm

Refs #356
2017-01-20 02:26:01 +01:00
Michael Carlberg
100c64a20c refactor: Make xresource_manager a singleton
Refs #356
2017-01-19 21:27:01 +01:00
Michael Carlberg
90d1fff4e2 fix(xresources): Avoid continuous reconstruction
Refs #356
2017-01-19 20:37:02 +01:00
Michael Carlberg
40d482d039 fix: By-pass double click timers if no handlers are defined
Fixes #338
2017-01-15 02:00:35 +01:00
Michael Carlberg
3292cea786 refactor(tokens): Move token suffix to configuration 2017-01-14 18:00:35 +01:00
Michael Carlberg
480c2cb44b controller: Lower verbosity of uncaught event msg 2017-01-14 00:34:35 +01:00
Michael Carlberg
57e8914fa6 fix: Force update after running input command 2017-01-13 14:33:16 +01:00
Michael Carlberg
22140f7db9 refactor(builder): Action wrapped labels 2017-01-13 13:01:46 +01:00
Michael Carlberg
6fb48c8e6f feat(build): Add flag for drawing visible whitespace 2017-01-13 11:04:43 +01:00
Michael Carlberg
a26a15d485 fix(config): Type mismatch 2017-01-13 10:57:43 +01:00
Michael Carlberg
b48a275235 feat(command_line): Properly handle positional args 2017-01-13 04:47:25 +01:00
Michael Carlberg
385572ec64 feat(xrandr): Support for monitors
Refs #280
2017-01-13 03:52:57 +01:00
Michael Carlberg
2cde3f31a0 fix(config): Comply to parameter naming scheme 2017-01-12 18:09:56 +01:00
Michael Carlberg
d49b1cacd3 fix(config): Rename parameter for individual border size
Rename `border-{left,top,right,bottom}` to `border-{left,top,right,bottom}-size`
to follow the naming scheme used for other size parameters
2017-01-12 17:55:56 +01:00
Michael Carlberg
ca1aac2ed6 feat(config): Shorthand for {padding,module-margin}-{left,right} 2017-01-12 17:32:11 +01:00
Michael Carlberg
f72ddf9294 refactor(signals): Use full namespace 2017-01-12 16:34:14 +01:00
Michael Carlberg
da9f1d90f4 fix(controller): Ensure module runstate 2017-01-12 16:33:41 +01:00
Michael Carlberg
f33d383726 refactor: Wait with tray initialization until ready 2017-01-12 16:12:54 +01:00
Michael Carlberg
568837d06a fix(x11): Preload the _NET_WM_WINDOW_OPACITY atom 2017-01-11 05:00:23 +01:00
Michael Carlberg
8cc885c316 refactor: Cleanup 2017-01-11 03:07:28 +01:00
Michael Carlberg
30f516dd7d fix(formatting): Make formats parse specs as-is
This removes the spacing tinkering when parsing format specs.
The following example uses the old behavoir:

    format-test = <label-foo>  <label-bar>
    format-breaks = <label-foo><label-bar>/<bar-test>

`format-test` would replace all occurences of ' ' with the
a space string with defined `spacing` as its width. `format-breaks` would
not validate as the tags where split with ' ' as delimiter.

All that nonsense has been removed and each tag is extracted as is.
The `spacing` parameter can still be used to apply N extra whitespaces
between the tags, but it is now 0 by default.
2017-01-11 02:43:37 +01:00
Michael Carlberg
0f0d786cbd fix(ipc): Always close file descriptor on receive 2017-01-09 23:09:16 +01:00
Michael Carlberg
f4406783e2 fix(signals): Use pointer to value
Only pass pointers to emitted signal value since the signal receivers
will be called on the same thread as the signal emitter.

Refs #302
2017-01-09 18:52:04 +01:00
Michael Carlberg
3d6084f0c0 fix(controller): Always process forced update events 2017-01-09 16:35:28 +01:00
Michael Carlberg
6925415501 fix(tray): Force bar update on change
Refs #295
2017-01-09 14:27:56 +01:00
Michael Carlberg
6341c7ab25 refactor(config): Defer xrm initialization 2017-01-01 21:12:38 +01:00
Michael Carlberg
a2bcb1a627 refactor(signals): Avoid reinterpret_cast 2017-01-01 20:31:09 +01:00
Michael Carlberg
d9c035381e refactor(i3): Restack above global root window
Refs #293
2017-01-01 19:34:48 +01:00
Michael Carlberg
796cdb52cc refactor: Rename restack function 2017-01-01 15:45:18 +01:00
Michael Carlberg
dd960cc5b5 refactor(fd_streambuf): Cleanup 2016-12-31 15:42:46 +01:00
Michael Carlberg
210695d377 refactor(x11): Merge xlib/xutils with connection 2016-12-31 10:02:32 +01:00
Michael Carlberg
e3a51b235a refactor(clang-tidy): Apply fixes 2016-12-31 04:32:11 +01:00
Michael Carlberg
a989d401d9 fix(renderer): Content shifting bounds 2016-12-31 03:01:22 +01:00
Michael Carlberg
31608bb706 refactor(renderer): Cast signal data 2016-12-31 01:27:37 +01:00
Michael Carlberg
78bb3695e6 refactor(config): Deduce return type from default value 2016-12-30 23:32:05 +01:00
Michael Carlberg
a0f1d97c2b fix(controller): UB sanitizer patch 2016-12-30 23:28:58 +01:00
Michael Carlberg
e1c6a4e5a3 fix(command_line): End with empty line 2016-12-30 21:14:22 +01:00
Michael Carlberg
dffdc6a20b fix(builder): Sub-string check
Fixes #282
2016-12-30 20:34:23 +01:00
Michael Carlberg
18cf9df86c refactor: Cleanup 2016-12-27 04:58:41 +01:00
Michael Carlberg
f101a303bd fix(bar): Only initialize config values when using --print-wmname 2016-12-27 04:15:01 +01:00
Michael Carlberg
db7aa7c490 fix(format): Ignore empty contents 2016-12-27 04:03:46 +01:00
Michael Carlberg
7b780a3201 refactor(builder): Cleanup 2016-12-26 17:06:28 +01:00
Michael Carlberg
b9f9092bbe refactor: Cleanup 2016-12-26 10:37:14 +01:00
Michael Carlberg
baaba4adf9 refactor(ipc): Rename signals 2016-12-26 10:36:14 +01:00
Michael Carlberg
00ac4bea63 refactor(x11): Header cleanup 2016-12-26 10:27:30 +01:00
Michael Carlberg
11aabac227 refactor(connection: Use custom base 2016-12-26 09:46:48 +01:00
Michael Carlberg
789800a68f refactor(signals): Simple types 2016-12-23 22:19:42 +01:00
Michael Carlberg
b422d1d1a4 refactor(modules): Input handling 2016-12-23 20:43:52 +01:00
Michael Carlberg
92424f0d49 refactor(cmake): Install components 2016-12-23 18:10:19 +01:00
Michael Carlberg
9c14531542 fix(config): Require wrapping quotes to trim 2016-12-23 14:39:12 +01:00
Michael Carlberg
1cb8e455fb fix(controller): Invalid move constructions
Refs #268, #265
2016-12-23 13:03:05 +01:00
Michael Carlberg
e551dbfea9 fix(controller): Raise signal on quit from eventqueue 2016-12-23 05:51:33 +01:00
Michael Carlberg
debb3534c7 concurrency_ytil: Thread id 2016-12-23 05:18:58 +01:00
Michael Carlberg
8cc275ccd1 refactor(controller): Process eventqueue concurrently 2016-12-23 05:10:40 +01:00
Michael Carlberg
8cff01e3d8 refactor(event_handler): Abstract sink attaching 2016-12-23 05:08:19 +01:00
Michael Carlberg
d4e3891ab6 refactor(connection): Listen for property notify by default 2016-12-23 01:05:36 +01:00
Michael Carlberg
417d90f411 refactor(controller): Store module input handlers locally
Refs #265, #262
2016-12-23 00:54:14 +01:00
Michael Carlberg
e47e439954 refactor(modules): Replace callbacks with signals
Refs #265
2016-12-22 22:11:30 +01:00
Michael Carlberg
a914526949 fix(config): Use strtoul
Refs #267
2016-12-22 18:37:23 +01:00
Michael Carlberg
bc9b9f0d12 refactor: Cleanup 2016-12-21 23:22:02 +01:00
Michael Carlberg
185363056a refactor(x11): Cleanup 2016-12-21 15:04:16 +01:00
Michael Carlberg
7979f5b3d4 refactor(modules): Handle events using signal_receiver 2016-12-21 08:38:44 +01:00
Michael Carlberg
c01f111e34 refactor(modules): Move setup to constructor 2016-12-21 08:00:09 +01:00
Michael Carlberg
81e6fb062f wip: Window autohide 2016-12-21 04:50:43 +01:00
Michael Carlberg
3aa7c3b106 fix(taskqueue): Type error 2016-12-20 18:14:43 +01:00
Michael Carlberg
abd30860e0 fix(button_press): Use correct double click button 2016-12-20 15:51:45 +01:00
Michael Carlberg
c14c46b998 refactor: Font index cleanup 2016-12-20 15:09:11 +01:00
Michael Carlberg
8ef8900ca2 refactor: Defer buttonpress using taskqueue 2016-12-20 13:03:46 +01:00
Michael Carlberg
b8ff0da693 feat: Add taskqueue component 2016-12-20 12:54:17 +01:00
Michael Carlberg
3a01bcf308 fix: Apply x position once to action blocks 2016-12-20 08:00:08 +01:00
Michael Carlberg
1cccd100bb fix(bar): Remove double click 2016-12-20 07:46:30 +01:00
Michael Carlberg
cd31d92713 fix(controller): Check eventpipe reads/writes 2016-12-20 05:36:10 +01:00
Michael Carlberg
a89c4ef2dd refactor: Move all event handling to the controller 2016-12-20 05:16:04 +01:00
NBonaparte
e72f85079f feat(monitor): Add monitor-fallback option #243
Adds new parameter monitor-fallback, which allows the bar to revert to a
specified monitor. Polybar should now be compatible with dynamic
multi-monitor setups when using screenchange-reload = true (no need to
stop and restart the bar with a different environment variable).

Closes #243
2016-12-16 13:09:19 +01:00
Michael Carlberg
519172b6ec feat(xkeyboard): Switch layout group on click
When serveral layout groups are defined for the keyboard
they can be cycled when clicking on the module.

   For example:

   $ setxkbmap -layout us,sv,fr

Ref #84
2016-12-16 11:31:08 +01:00
Michael Carlberg
f50f43af02 refactor: Cleanup 2016-12-16 10:23:54 +01:00
Michael Carlberg
697638db2b fix(tray): Follow window fade 2016-12-16 07:10:45 +01:00
Michael Carlberg
a7005be82c feat: Fade if unfocused and handle double clicks 2016-12-16 06:44:55 +01:00
Michael Carlberg
b90856157b fix: Update font visual if depth changes 2016-12-15 18:22:34 +01:00
Michael Carlberg
b2e8428550 wip(refactor): Improve parsing and font glyph caching 2016-12-15 17:28:58 +01:00
Michael Carlberg
9f9f438fae refactor: Remove last usage of boost::optional
Since it's the only thing boost was used for at the moment
we drop it to be able to get rid of a dependency.
2016-12-15 17:13:16 +01:00