Commit Graph

1221 Commits

Author SHA1 Message Date
patrick96
3ebb0b0b03 builder: Simplify open tag tracking
Using a bit vector to track the active attributes does not really give a
significant speed increase, especially for only two attributes

Checking if a syntaxtag or an attribute exists in the map just adds
unnecessary code
2019-08-06 21:36:20 +02:00
patrick96
f967cd5f59 builder: remove BUILDER_SPACE_TOKEN
Was around since the first commit but no documentation why. It was only
used in the text module and doesn't appear in any public documentation,
so this doesn't break anything.
2019-08-06 21:36:20 +02:00
Patrick Ziegler
56e24992df
config_parser: Introduce stricter syntax conventions (#1377)
This is the next step to merge #1237 in stages.

Currently there are barely any restrictions on how the config can be
written. This causes things like config files with DOS line endings to
not be parsed properly (#1366) because polybar splits by `\n` and when
parsing section headers, it can't deal with the `\r` at the end of the
line and thus doesn't recognize any section headers.

With this PR we introduce some rules as to what characters are allowed
in section names and keys.
Note: When talking about spaces I refer to any character for which
`isspace()` returns `true`.

The rules are as follows:
* A section name or a key name cannot contain any spaces as well as any
of there characters:`"'=;#[](){}:.$\%`
* Spaces at the beginning and end of lines are always ignored when
parsing
* Comment lines start with `;` or `#` and last for the whole line. The
whole line will be ignored by the parser. You cannot start a comment at
the end of a line.
* Section headers have the following form `[HEADER_NAME]`
* Key-value lines look like this:
`KEY_NAME{SPACES}={SPACES}VALUE_STRING` where `{SPACES}` represents any
number of spaces. `VALUE_STRING` can contain any characters. If it is
*surrounded* with double quotes (`"`), those quotes will be removed,
this can be used to add spaces to the beginning or end of the value
* Empty lines are lines with only spaces in them
* If the line has any other form, it is a syntax error

This will introduce the following breaking changes because of how
underdefined the config syntax was before:
* `key = ""` will get treated as an empty string instead of the literal
* string `""`
* Any section or key name with forbidden characters will now be syntax
errors.
* Certain strings will be forbidden as section names: `self`, `root`,
* `BAR`. Because they have a special meaning inside references and so a
* section `[root]` can never be referenced.

This replaces the current parser implementation with a new more robust
one that will later be expanded to also check for dependency cycles and
allow for values that contain references mixed with other strings.

This PR also now expands the config paths given over the command line so
that `--config=~/.config/polybar/config` resolves properly.

Closes #1032
Closes #1694

* config_parser: Add skeleton with tests

First step in the config_parser develoment. Only tests functions that
are easily testable without many outside dependencies. Integration tests
will follow.

* config_parser: Implement parse_header

* config_parser: Implement get_line_type

* feat(string): Add trim functions with predicate

Not only trimming based on single character matching but based on a
freely specifiable predicate. Will be used to trim all spaces (based on
isspace)

* config_parser: Implement parse_key

* config_parser: Implement parse_line for valid lines

* config_parser: Throw exception on invalid lines

* config_parser: Remove line_no and file_index from parse_line

Cleaner to let the caller catch and fill in the line number and file
path

* string: Clear up misleading description of trim

Before, trim would remove all characters that *didn't* match the
predicate and thus the predicate isspace wouldn't work correctly. But
because we used the inverse (isnospace_pred) it all worked out, but if
the function was used with any other function, it wouldn't have given
the desired output

* config_parser: Implement parse_file

* config_parser: Switch operation to config_parser

This changes the way the config is invoked. Now main.cpp creates a
config_parser object which then returns the singleton config object from
the parse method. Subsequent calls to config::make will return the
already created config object as before

The config_parser does not yet have all the functionality of the old
parser: `inherit` directives are not yet resolved. Other than that all
the old functionality is implemented (creating sectionmap and applying
include-file)

Any sort of dependency detection (except for include-file) are still
missing

* config: Move xrm initialization to constructor

config_parser handles the detection of xrdb references and passes that
info to the config object.

This finally allows us to delete the config::parse_file function because
everything in it has been implemented (except for xrdb detection and
file error handling)

* refactor(config_parser): Cleanup

* config_parser: Set config data after initialization

Looks much cleaner this way

* config_parser: Expand include-file paths

* config_parser: Init xrm if the config uses %{xrdb references

* config_parser: Use same type of maps as in old impl

Polybar has some weird, not yet fixed, inheriting behaviour and it
changes depending on the order in which the config stores its data.
Using the same type of maps ensures that the behaviour stays the same.

* refactor(config_parser): Clearer invalid name error message

* config_parser: Don't allow reserved section names

Sections with the names 'self', 'BAR', 'root' could never be referenced
because those strings have a special meaning inside references

* config_parser: Handle inherit directives

This uses the old copy_inherited function, so this still suffers from
crashes if there are cyclic dependencies.
This also fixes the behaviour where any key that starts with 'inherit'
would be treated as an inherit directive

* config_parser: Clearer dependency cycle error message

* refactor(config_parser): Handle file errors when parsing

This removes the need to check if the file exists separately

* fix(config): expand config file path

Now paths using ~ and environment variables can be used as the config
path

* fix(config): Properly recognize xrdb references

* config_parser: Make messages more informative

* doc(config): Improve commenting

Comments now describe what the config_parser actually does instead of
what it will do.

We also now follow the rule that single line comments inside functions
should use `//` comments

* refactor: Move else on same line as curly braces

* fix(config_parser): Don't duplicate paths in `files`

* refactor(config_parser): Use else if for clarity

* fix(config): Undefined behavior in syntax_error

Before the custom what() method produced undefined behavior because the
returned string became invalid once the function returned.

* refactor(config): descriptive name for useless lines

is_valid could easily be confused as meaning syntactically invalid
without it being clarified in a comment

* refactor(config): Use separate strings instead of key_value

Takes just as much space and is much better to read

* fix(config_parser): TestCase -> TestSuite and fix macro call

Ref: #1644

* config_parser: use const string& in method args

* config_parser: Improve comments

* config_parser: Incorporate review comments
2019-08-06 19:41:31 +02:00
Jérôme BOULMIER
58d72c4f19 feat(github): add support for github enterprise (#1841) 2019-08-04 20:58:25 +02:00
Brice Waegeneire
0740382851 fix(msg): use stdout when exiting with code 0 2019-06-19 16:09:56 +02:00
Jérôme BOULMIER
c650513b67 fix(i3): Surround ws names with quotes (#1798)
Fixes #1797
2019-06-04 23:34:16 +02:00
patrick96
a3e2e51ac9 build: remove xdamage extension
Unused

Ref: #1730
2019-06-03 00:46:12 +02:00
patrick96
38af08d29a build: remove xsync extension
Unused

Ref: #1730
2019-06-03 00:46:12 +02:00
patrick96
6ff2b2b37f build: remove xrender extension
Some build recipes (exherbo, sourcemage) for some reason enable this
even though it doesn't do anything any only causes compilation issues.

Ref: #1730
2019-06-03 00:46:12 +02:00
Sebastian Graf
cb75857ff6 pulse: Set volume to max when the increase was too huge (#1765)
Previously, when volume was in close proximity to n_max_volume, a larger
increase would not do anything. After this patch, volume is set to
m_max_volume in such scenarios. If the volume already is at
n_max_volume, we mirror the old behavior and emit a warning.

So, for example, consider m_max_volume was 100%, but the volume prior
to the increase was 96%. An increase of 5% would do nothing (emit a
warning, even) instead of setting the volume to 100%.

Note that this might happen even if the volume is at 95% according to
%percentage% due to rounding errors.
2019-05-14 22:06:14 +02:00
Roberto Santalla
b2b73b5d91 feat(battery): add %percentage_raw% token (#1756)
Displays real percentage instead of being set to 100 if percentage > full-at

* battery: added percentage_raw token, which ignores full-at

* battery: current_percentage returns raw, added clamping function instead

* battery: clamp percentage used by build()
Made clamp_percentage() const to allow its usage inside build()

* battery: read and return percentage in one line
2019-05-14 15:01:54 +02:00
patrick96
0ab9fcdc38 refactor: Remove all mentions of icon_t
Is exactly the same label_t
2019-04-08 09:01:48 +02:00
Kazufumi NOTO
7414e98008 feat(temp): Configurable lower bound for ramp (#1706)
Similar to warn-temperature, temps below `base-temperature` will use the first ramp icon.

Closes #1703
2019-04-07 18:36:09 +02:00
Jérôme BOULMIER
fca4151f36 fix(window): remove useless operator= and add default copy cstr (#1729)
Fixes compilation under GCC 9

The default copy constructor implicit generation is deprecated by C++ standard.

The window& operator=(const xcb_window_t win); operator seems to be useless.

Fixes #1728
Ref jaagr/xpp#16
2019-04-07 17:32:55 +02:00
patrick96
fc2d2db76f refactor(cmake): Determine version in cmake
We need to have the version string available in multiple places not just
the source code. It is now hardcoded in the root CMakeLists.txt and all
files that need it will be configured with cmake.

This also removed the unecessary duality of GIT_TAG and APP_VERSION and
GIT_TAG_NAMESPACE and APP_VERSION_NAMESPACE.
2019-04-05 23:43:37 +02:00
DrunkenChicken
25f99c0a61 fix(xworkspaces): active ws upon ws deletion (#1713)
Active desktop was tracked via it's index, but when desktops are removed from `_NET_DESKTOP_NAMES` that index may become invalid.

Fixes #1710
2019-04-01 18:04:44 +02:00
Jérôme BOULMIER
31a25af3d3 fix(tray): fix offset for negative percentage (#1669)
tray-offset-{x,y} were clamped between [0, max_value] rather than [-max_value, max_value]. Therefore negative percentage were ignored.

Fixes #1666
2019-03-22 09:55:08 +01:00
Kazufumi NOTO
82b9ea8a09 fs: Fix incorrect size report on 32bit machines (#1699)
Cast before multiplication to avoid overflow.

Fixes #743
2019-03-18 18:16:42 +01:00
Jérôme BOULMIER
e3b84c9595 fix(controller): ignore SIGUSR1 until polybar is fully reloaded. (#1678)
To avoid polybar from being killed by SIGUSR1 during reloading, SIGUSR1 is ignored until the signal is registered in the new polybar process.

As stated in signal(7) man page, the ignored signals are still ignored after a call to a function of the execvX family.

    During an execve(2), the dispositions of handled signals are reset to the default;
    the dispositions of ignored signals are left unchanged.

Fixes #428
2019-03-13 07:55:02 +01:00
patrick96
b3f7cd08e9 fix(xkeyboard): Only update indicators when used
Was causing a segfault if `format = <label-layout>`
2019-03-06 20:29:12 -08:00
patrick96
de3240b861 fix(xkeyboard): Print deprecation message
`config::warn_deprecated` does not accept keys of the form `<...>` and
strips the surrounding brackets like `load_label` does
2019-03-06 20:29:12 -08:00
patrick96
fbd870c343 fix(xkeyboard): Use correct indicator label field
Fixes #1660
2019-03-06 20:29:12 -08:00
Gilad Naaman
db9a83a83b feat(xkeyboard): Customizable indicators and layouts (#1559)
* `layout-icon-*` list that maps layouts to icons.
* `indicator-icon-*` list that maps indicators to off and on icons
* `label-indicator-off`
* `label-indicator-on` which replaces the now deprecated `label-indicator`
* `label-indicator-[on|off]-*` for each indicator. Overrides `label-indicator-on` and `label-indicator-off` 

Fixes #1558 
Closes #1048

* add icon support for xkeyboard layouts

* removed unneeded #include

* add sperate %icon% token that can be used in <label-layout>

* removed unneeded #include

* added caps lock indicator (was mentioned in wiki, but not actually implememnted) and support for indicator icons

* a few more fixes to make sure existing user configs are not broken

* ready to go

* Added an option to replace xkb indicator names

* Added labels for each indicator state

* Removed print left on accident

* Fixed review comments

* Update src/modules/xkeyboard.cpp

Co-Authored-By: Gilnaa <gilad@naaman.io>
2019-02-24 22:35:39 +01:00
striker.sh
ca4426a962 fix(xworkspace): Fully support _NET_DESKTOP_NAMES spec (#1579)
Ref https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm140200472706208

Fixes #1491
Fixes #248
Closes #904
2019-02-08 13:32:31 +01:00
patrick96
b3ceedde76 refactor(bar): Remove bar_settings.center
Not used anywhere
2019-02-05 11:50:25 +01:00
Patrick Ziegler
a7ad68da31
fix(randr): Check if there is a primary monitor (#1621)
* fix(randr): Check if there is a primary monitor

primary_info.name() throws an error if get_output_info is called with
XCB_NONE

Fixes #1620
2019-01-24 21:17:35 +01:00
NBonaparte
1145681cf5
feat(monitor): use primary monitor as default (#1426)
If the monitor option isn't set, the primary monitor (if connected) is chosen as the default display.
2019-01-20 11:20:30 -08:00
patrick96
b03f14400a fix(net): buffer overflow when gathering ipv6 addr 2019-01-20 15:12:22 +01:00
Benno Fünfstück
f74c524fff fix(renderer): Handling of missing root pixmap (#1608)
Polybar had issues when there is no background set or set by a tool like imagemagick which doesn't add the root pixmap to the root window properties.

There's not much we can do about it, but at least polybar doesn't crash anymore.

Fixes #1582 
Fixes #1585 

* fix(tray_manager): only enable transparency if neccessary

Previously, we always enabled transparency

* fix(background_manager): avoid needless fetching

* fix(renderer): move logging message to correct place

* fix(background_manager): handle dummy pixmap (_XSETROOT_ID) right

* fix(background_manager): more initialization + don't free on error

Freeing on error is incorrect, since we could still be called again later in
which case we still need the resources.

* fix(background_manager): add more infos to trace logs

* fix(background): correct typo (XROOTMAP -> XROOTPMAP)

* fix(background_manager): do not report "no background" as error

* style(background_manager): use braces for if

Co-Authored-By: bennofs <benno.fuenfstueck@gmail.com>

* fix(background_manager): better error message for dummy pixmap

Co-Authored-By: bennofs <benno.fuenfstueck@gmail.com>

* style(background): some more style fixes

* fix(connection): initialize pixmap in all cases in root_pixmap()

* style(connection): improve readability using early return
2019-01-17 14:22:48 +01:00
patrick96
01be9b3504 feat(net): All tokens for all labels
If you have `accumulate-stats = true` it is useful to be able to display
the current network speed even if the interface is disconnected.
2019-01-17 08:35:49 +01:00
patrick96
014606294c fix(net): Display N/A when no ipv4 address 2019-01-17 08:35:49 +01:00
Patrick Ziegler
921658f331
memory: Remove decimal places for megabytes (#1606)
As requested in #1598

Two decimal places for megabytes gives you precision at the scale of tenths of kilobytes, which is quite unnecessary for RAM
2019-01-17 08:32:42 +01:00
patrick96
a0b888b5e6 fix(fs): Calculate free bytes properly
Seems this was missed in a682d2af91

This is now also consistent with what df does

Closes #743
2019-01-17 08:31:48 +01:00
patrick96
67f1ceaaca feat: format-font
Resolves #19
2019-01-17 08:31:14 +01:00
Ddone
46b8bb84ed feat(border): Percentage and pixel offset (#1592)
Uses the same X%:Z format as width, height and offset-*

Resolves #1567
2019-01-12 11:48:09 +01:00
Ddone
b728fea5be fix(i3): crash without <label-state> (#1591)
Fixes #975
2019-01-09 18:38:44 +01:00
patrick96
4a506d429d xbacklight: Use monitor-strict from bar settings
monitor-strict in the xbacklight module was never documented anywhere so
it's fine to remove it.
2019-01-08 17:23:28 +01:00
patrick96
e793082008 randr: Add separate key for exact monitor matching
This adds `monitor-exact = true` in the bar section

This also properly does best-match instead of first-match if multiple
matches exists. For example if there are two monitors HDMI2 and HDMI-2
and we try to match HDMI-2 with monitor-exact = false, until now HDMI2
would be matched. Now exact matches are always preferred.

Fixes #1532
2019-01-08 17:23:28 +01:00
patrick96
fe0b072dd0 feat(bspwm): Support marked flag for focused nodes
This adds a new label in the bspwm module `label-marked`

This flag for focused nodes of a focused desktop was introduced in [1]
and released with bspwm 0.9.4

It adds the `M` flag to `G` type items in bspwm's report format

Resolves #1552

[1]: d0138af475
2019-01-08 17:14:39 +01:00
Benno Fünfstück
7256366112 fix(tray): correctly handle transparency when using offset (#1571)
This patch adds support for observing multiple slices of the desktop background.
This is used for the tray so that it doesn't have to rely on the bar's rect to
get the desktop background. In particular, it now handles the case where the
tray is not contained fully within the bar's outer rect (for example, when using tray-offset-{x,y})

Co-Authored-By: bennofs <benno.fuenfstueck@gmail.com>
2019-01-05 01:08:18 +01:00
Matthias Viehweger
dec801a114 fix(xworkspaces): FPE when no _NET_DESKTOP_NAMES (#1576)
Fixes #1462
2019-01-03 18:59:55 +01:00
Sergey
cc8947ac01 feat(cpu): Add percentage-sum token (#1517)
Adds `%percentage-sum%` token to cpu label that contains the cumulative load of all cores.
2018-12-03 01:48:18 +01:00
NBonaparte
35c0c4a343 fix(xcb): check for composite extension (#1430)
* fix(xcb): check for composite extension

* fix(travis): add xcb-composite to deps

* fix(xcb): always include composite when building
2018-12-02 16:39:14 +01:00
sunil
22af69545a feat(net): Support bridge interfaces (#1528)
Bridge interfaces don't provide linkspeed via ethtool but everything else works the same as with ethernet links.

Fixes #1522
2018-11-28 16:09:00 +01:00
sam-lunt
d3e37918e5 CMake refactor (#1510)
* Clean up CMake logic

- removed logic to find CppUnit (no longer used)
- removed "dirs" variable used to pass include directories
- removed add_library function (no longer used)
- removed make_executable function
    * only used in 2 places (polybar and polybar-msg)
    * it was more general than needed, logic is simpler without it
- split polybar into static library and executable
    * this allows linking unit tests to the library

* rename library

* add coverage build

- Added a CMake build type "Coverage" that builds C and C++
  code with the "--coverage" flag (recognized by both GCC and Clang)
- removed "-Wno-missing-field-initializers" from test flags,
  since it didn't seem to be needed any more
- removed logic from tests/CMakeLists to disable "-Werror" and "-pedantic-errors"
  since there didn't seem to be any warnings during the build

* fix whitespace

* update travis

* remove O2 from defalt flags

* allow tests to be built by default make target

* disable Werror for debug builds
2018-11-21 18:46:33 +01:00
patrick96
f8e4a5932a refactor: Unescape action cmd before emitting 2018-11-16 18:12:26 -08:00
patrick96
38f551f884 test(parser): Add tests for parse_action_cmd 2018-11-16 18:12:26 -08:00
patrick96
18e2609f11 fix(builder): Escape all colons in action command
Fixes #984
2018-11-16 18:12:26 -08:00
Denis Kasak
fa693aecf8 feat(script): Add double-click to script module (#1442) 2018-11-16 16:06:04 +01:00
patrick96
6ca4f06785 doc: Convert @ to \ doxygen commands
Ref #1377
2018-11-04 19:28:27 -08:00
patrick96
3c504bb913 fix(build): remove side-effects of iwlib.h
wireless_tools 29 redefines inline in iwlib.h as:
    #define inline inline __attribute__((always_inline))

which conflicts with POLYBAR_NS, which is defined as:

    #define POLYBAR_NS    \
      namespace polybar { \
        inline namespace APP_VERSION_NAMESPACE {

In version 30.pre9 this #define is moved into a source file and thus
cannot conflict.

The error only occurs when building with clang, so it seems gcc and
clang handle this differently

Fixes #1492
2018-10-31 17:00:13 -07:00
patrick96
3b32f5899a fix: Move return value of parse_layout_symbol
Fixes #1469
2018-10-16 11:05:14 -07:00
Patrick Ziegler
b80023fd41
feat(cpu): Add ramp-coreload-spacing (#1472)
Resolves #1389
2018-10-16 01:11:05 +02:00
Patrick Ziegler
6d0cfbdfde Revert "feat(cpu): Add ramp-coreload-spacing (#1472)"
This reverts commit 06adef1055.
2018-10-16 01:01:11 +02:00
Ryan Geary
06adef1055 feat(cpu): Add ramp-coreload-spacing (#1472)
Resolves #1389
2018-10-16 00:59:45 +02:00
patrick96
abdd5f9233 fix(script): Avoid duplicate action tags for tailed
If a tailed command is used polybar would generate two action tags, one
with %counter% replaced and one with %pid% replaced, but never both

This is a bug that was introduced in #934
2018-10-08 21:38:25 -07:00
patrick96
13b0ee7454 tray: Properly deprecate tray-transparent 2018-10-04 15:52:03 +02:00
Benno Fünfstück
70807a5a9f fix(renderer): remove debug code, add comment 2018-10-04 15:52:03 +02:00
Benno Fünfstück
6237e2d419 fix(renderer): fix pseudo-transparency wrong compositing
The idea is that pseudo-transparency should behave like real transparency as
much as possible. To achieve this, we now render the bar the same way in both
cases. The only part where pseudo-transparency differs is at the very end, where
the rendered bar is captured and composited against the desktop background
image. This should ensure that both modes behave the same.
2018-10-04 15:52:03 +02:00
Benno Fünfstück
9a92772617 fix(renderer): default m_comp_bg to OVER if pseudo-transparent 2018-10-04 15:52:03 +02:00
Benno Fünfstück
2d385150bd fix(background_manager): more cleanup in deactivate
This has no effects on bar behaviour, as `deactivate` is currently not used anywhere.
2018-10-04 15:52:03 +02:00
Benno Fünfstück
4221da71bf fix(renderer): render transparent blocks correctly
This reverts some behaviour differences introduced by the pseudo-transparency
implementation. The new implementation is much closer to the
non-pseudo-transparent case and thus keeps original behaviour.

For the new method we simply fill the bar with the background image fetched from
the root window if in pseudo-transparent mode, otherwise we do nothing. This
means that everything will work as in the fully-transparent mode.
2018-10-04 15:52:03 +02:00
Benno Fünfstück
35aca5b368 fix(tray): correctly compute background for tray if bar pos != (0,0)
We need to use positions relative to the position of the bar for indexing into
the background image slice, but the code used absolute ones.

This worked fine as long as absolute positions are the same as relative
positions (this is the case for a bar located at (0,0), so if bottom = false).
But for bottom bars (where the bar position is not (0,0)) this was wrong which
caused the tray background to be black (out of bounds for the background slice).
2018-10-04 15:52:03 +02:00
Benno Fünfstück
eacf5ce5ba fix(tray): fix transparency after background manager changes
The systray only supports pseudo transparency (real transparency would require
much larger changes) so the real transparency should only be used for the bar itself.
2018-10-04 15:52:03 +02:00
Benno Fünfstück
061fe83b2f feat(background_manager): option to disable pseudo-transparency
This adds a new config option to select between pseudo transparency and real transparency.
2018-10-04 15:52:03 +02:00
Benno Fünfstück
59c0ccef50 fix(tray): remove tray-transparent option
This option is no longer necessary because the tray background color can now
simply be set to any (semi-)transparent color (just like the bar background).
2018-10-04 15:52:03 +02:00
Benno Fünfstück
66cf9b8b99 docs(renderer): fix stale comment 2018-10-04 15:52:03 +02:00
Benno Fünfstück
51d58e7518 fix(render): support stacked bars
We now take the bar position that the window manager gives us instead of trying
to calculate it ourselves. This is more correct when multiple bars are attached
to the same edge, as the window manager may move some of them in that
case (assuming override redirect is not enabled)
2018-10-04 15:52:03 +02:00
Benno Fünfstück
eb742e228b fix(render): correctly handle semi-transparency for borders
We need to fetch the outer area from the root window, not just the inner area
because we paint the background below the borders as well.

This has the nice effect of supporting semi-transparency for borders as well.
2018-10-04 15:52:03 +02:00
Benno Fünfstück
3de914abca feat(render): support pseudo-transparency
This adds pseudo-transparency for the background of the bar and the
background of the systray.
2018-10-04 15:52:03 +02:00
james9837
654c667698 fix(build): replace caddr_t with char* (#1454)
caddr_t isn't defined on all systems

Fixes #1447
2018-10-03 16:35:31 +02:00
Vasili Karaev
2fba443f56 fix(cpu): Replace %percentage-cores% normally (#1282) 2018-09-19 19:58:09 -07:00
Roel Postelmans
11d66ee78d feat(mem): Add ramp and bar for swap (#1325)
Now all the tokens in the memory module also have ramp and bar counterparts.

These can be used exactly the same as `bar-used` and `ramp-used`, they are named `<bar-swap-used>`, `<bar-swap-free>`, `<ramp-swap-used>`, and `<ramp-swap-free>`
2018-09-14 20:42:04 +02:00
Vasili Karaev
a2ab4699ab refactor(temperature): Do not use 'm_' prefix with local variable 2018-09-04 14:07:22 -07:00
Vasili Karaev
68ae7a869a fix(mpd): Get format-online-{prefix,suffix} explicitly (#1399) 2018-09-01 00:46:06 -07:00
Patrick Ziegler
676d9d7e1a
fix(tray): Reconfigure tray on error (#1392)
This will fix the issue of the tray container not being
properly reconfigured when a tray client fails to be added
or removed.
2018-08-21 21:06:58 +02:00
BO41
238f8fb592 refactor: Simplify if statements (#1381) 2018-08-14 23:31:44 +02:00
patrick96
2a3b2b2b99 refactor(logger): Use better contrast for trace
The current colors are barely legible
2018-08-13 12:21:14 -07:00
taschenb
0daae86fc9 fix(net): Allow all characters for the SSID
Don't filter out any character that is not part of the current C
locale, since it might drop some wanted characters
2018-08-09 14:09:50 -07:00
NBonaparte
fba87227c7 feat(pulseaudio): add volume interval option 2018-08-07 11:52:38 +02:00
NBonaparte
83784fde14 feat(alsa): add volume interval option 2018-08-07 11:52:38 +02:00
patrick96
0421b5b05f refactor: Remove unnecessary quote trim operations
Trimming the quotes in labels and the date module are not needed at all,
because surrounding quotes are removed when loading the values from the
config.

Removing the quotes in the builder also doesn't seem to serve any
purpose at all.
2018-08-05 08:50:54 +02:00
NBonaparte
4cb0b18389 fix(controller): don't draw window if writing to stdout (#1322)
fixes #1314.
2018-07-24 19:39:32 +02:00
Tim Smith
01fc545e09 fix(i3): Play nice with workspace_auto_back_and_forth (#1312)
This makes polybar play nice with the i3wm feature `workspace_auto_back_and_forth`, and it is harmless when that option isn't set.
2018-07-23 15:51:42 +02:00
memeplex
1d6d44f4e9 feat(token): Zero pad when min val starts with '0' (#1341)
Closes #1332
2018-07-23 15:49:02 +02:00
memeplex
1808ca3c51 fix(ramp): Evenly distribute states (#1340)
Fixes #1328
2018-07-23 15:42:42 +02:00
patrick96
4a494e61e1 refactor(label): Throw exception with small maxlen
This now makes label-maxlen < len(ellipsis) (= 3) a fatal error
disabling the whole module that uses the offending label
2018-07-22 14:02:15 -07:00
patrick96
0346a965a7 refactor(builder): No exception when maxlen < 3
The check of the maxlen and ellipsis condition was also moved to the
label creation, this way get_label_text doesn't need to care about the
restrictions placed on maxlen and ellipsis
2018-07-22 14:02:15 -07:00
patrick96
7dc42f543f fix(builder): Respect label-ellipsis option
This slightly changes the existing behavior of maxlen. Before with a
maxlen of 4 'abcde' used to yield 'abcd...' now it yields 'a...'
2018-07-22 14:02:15 -07:00
patrick96
4b83468eb9 refactor(builder): Add failing test for ellipsis
Adds failing tests for the bug described in #1194
2018-07-22 14:02:15 -07:00
patrick96
028b1413ef refactor(mpd): Replace icon-repeatone with icon-single
The repeatone button doesn't influence repeating behaviour at all, so
the name is misleading.

This deprecates icon-repeatone for now, until we can completely remove
it

Fixes #1279
2018-06-23 10:14:30 +02:00
taschenb
3afc341c7b feat(net): Add nl80211 support (#1009)
This patch enables support for nl80211. In case the libnl-genl-3.0
library isn't found, it will fall back to Wext instead.
The library to use can also be manually set with the CMake option
WITH_LIBNL.

The Wireless-Extensions (WE or Wext) are deprecated and long replaced
by cfg80211.

Although Wext isn't used by WiFi drivers anymore, CFG80211_WEXT allows
old tools to communicate with modern drivers by providing a wrapper
API.
2018-06-18 20:16:09 -07:00
patrick96
f7a6e5ba98 refactor(build): Build wihtout xkb
The only reason polybar couldn't build without xkb is because the
xkeyboard module's source file was not removed during compilation.
xkeyboard already has an entry in unsupported.hpp

This effectively makes xcb-util-xkb optional
2018-06-18 11:49:31 +02:00
patrick96
943fd1aaec fix(build): Build without xrm
When xrm was disabled, main.cpp was missing the complete defintion of
connection from connection.hpp, which was included xresources.hpp when
xrm was enabled.
2018-06-18 11:49:31 +02:00
sqwishy
d1d307d500 feat(net): Add local_ip6 token (#1239)
It's queried the same way ipv4 addresses are queried, but here it displays globally routable addresses. If there are multiple such addresses, it picks one (same as with ipv4). It's possible that an address discovered this way is not in fact globally reachable but still marked as global.
2018-06-10 22:51:43 +02:00
NBonaparte
067aac1ac7 fix(bspwm): use monitor focus only when pinned 2018-06-06 17:38:17 +02:00
tamago
b70d5b55d8 feat(mpd): add support for MPD_TAG_ALBUM_ARTIST 2018-05-31 20:12:23 -07:00
patrick96
930be72c89 refactor(tray): Log restack failure as error
I suspect that people that are seeing the tray above their fullscreen
windows get this exception
2018-05-15 16:01:07 -07:00
patrick96
20f3d9a141 refactor: Don't initialize forward declared members
Using brace initialization here causes bar.hpp to not compile when
included on its own, forcing all clients to also include
tray_manager.hpp and so on, which defeats the purpose of forward
declaring those classes.

This also allows us to remove the tray_manager.hpp, renderer.hpp and
parser.hpp includes from the clients of bar.hpp
2018-05-10 00:05:18 +02:00
lukediamond
c2ac93db55 Added support for mixed percent/pixel geometry. 2018-05-10 00:05:18 +02:00
patrick96
3408db3475 fix(builder): Don't truncate colors with same channels
The builder would convert bg and fg colors like #00000000 to #000 which
would make it loose its alpha channel.

Fixes #1183
2018-05-07 00:12:29 +02:00
patrick96
8173a6473e fix(gcc): Fix -Wstringop-truncation warning
As mentioned in #1215, gcc >=8 will complain, if strncpy truncates the
source string or gcc can prove there is no NUL terminating byte.

This also updates the i3ipcpp submodule where there was a similar error

Fixes #1215
2018-05-06 14:17:10 -07:00
NBonaparte
f2010edf94 fix(pulseaudio): fix max_volume naming 2018-05-05 10:57:01 +02:00
NBonaparte
4bf73ddd81 fix(pulseaudio): listen for default sink changes, and use @DEFAULT_SINK@
Using @DEFAULT_SINK@ macro avoids having to retrieve default sink name
2018-05-05 10:57:01 +02:00
patrick96
095d68fad0 fix: Stop using ato* for string to num conversion
atoi, atof and so on have undefined behavior if anything goes wrong. We
now use strto*, but without error checking. In most places overflows and
the like *should* not happen. String to number conversions are only used
when reading data from other applications or from the config, if another
application gives unparsable strings or too large numbers, then most
likely there is something wrong with that application. If the error
comes from the user config, then the user has to live with values
provided by strto* on error (which are very reasonable)

Fixes #1201
2018-05-03 11:07:37 -07:00
Christoph Schiessl
cc334e5040 fix(battery): check current state to decide which framerate to use 2018-05-02 11:44:55 +02:00
Christoph Schiessl
2a9d5db179 feat(battery): implement animation-discharging 2018-05-02 11:44:55 +02:00
patrick96
7eb1f61080 fix(net): Mark not connected on querying failure
Fixes #1163
2018-04-18 09:27:12 +02:00
Kajzer
688658c306 (pulseaudio) Add max volume configuration 2018-04-09 20:27:55 -07:00
patrick96
36ea6fbff8 Revert "fix(pulseaudio): add mutex for queue"
This reverts commit d430174f0b.
Mutual exclusion is already guaranteed by the lock on
pa_threaded_mainloop

Fixes #1139
2018-04-07 13:52:48 -07:00
patrick96
428e54e0f6 log(mpd): typo 2018-04-07 12:10:10 -07:00
patrick96
ddb1fb4c3a log(mpd): Use __func__ instead of __FUNCTION__ 2018-04-07 12:10:10 -07:00
patrick96
57a2f95ff9 log(mpd): Log mpd input events 2018-04-07 12:10:10 -07:00
patrick96
bbe5769bb0 log(mpd): trace log setting boolean options 2018-04-07 12:10:10 -07:00
Keno Goertz
d31570fe2f feat(xwindow): Add label-empty
Allows for custom text, when window title is empty
2018-04-02 00:00:16 +02:00
NBonaparte
10632178a8 fix(pulseaudio): add fallthrough marking 2018-03-31 00:52:17 +02:00
NBonaparte
d430174f0b fix(pulseaudio): add mutex for queue 2018-03-31 00:52:17 +02:00
NBonaparte
5f88cd44c7 fix(pulseaudio): get default sink on new events when using default 2018-03-31 00:52:17 +02:00
Jon Gjengset
224ffa97c1 feat(config): Support fractional size and offset
Fixes #953.
2018-03-28 10:59:22 -07:00
NBonaparte
39c12edc8a fix(cursor): add lock to motion handler 2018-03-27 22:03:38 +02:00
patrick96
3ea60ace91 fix(pulse): Use distinct event names
volup, voldow, volmute, are caught by the alsa module, if there is an
alsa module on the bar.
2018-03-27 11:28:54 -07:00
Jan Holthuis
a2ce4ed725 fix(i3): Reconnect i3 IPC socket on restart/error (#762) 2018-03-25 23:06:03 +02:00
NBonaparte
0a8a326730 feat(net): Add unknown-as-up option
Fixes #457
2018-03-04 23:09:18 +01:00
Florian Brinker
692e6d9b4a Loglevel info for "No matching input area" (#1059) 2018-02-27 17:45:24 +01:00
Alexander
4f6e37449b feat(memory): Add swap tokens (#1018) 2018-02-25 12:12:38 +01:00
patrick96
2f62a6fbad feat(memory): Add memory used/free ramp
Closes #1037
2018-02-19 14:30:30 -08:00
patrick96
0fd614b0a9 refactor(controller): Print error message on select fail 2018-02-15 19:26:35 -08:00
patrick96
c30159abc6 feat(temp): Add units option
Avoids having lots of tokens
2018-02-15 18:50:59 -08:00
patrick96
a9014e31dc refactor(temp): Mark %temperature% token as deprecated 2018-02-15 18:50:59 -08:00
patrick96
e4634ce95f feat(temp): Add temperature tokens without unit 2018-02-15 18:50:59 -08:00
kokan
cb4111383f fix(github): libcurl stuck at curl_easy_perform
Signed-off-by: kokan <peter.kokai@balabit.com>
2018-02-15 10:50:05 +01:00
patrick96
482876b63a refactor(config): Print filename at very beginning
There have now been several instances of people reporting that their
bars are not found and polybar not printing the config file name because
the error is thrown first, making it very difficult to debug
2018-02-15 08:43:19 +01:00
patrick96
d2a7b0269c refactor(mpd): Print error on mpd_exception 2018-02-14 14:27:25 -08:00
patrick96
81d2d09ba9 fix(mpd): Clear mpd error after getting error info
Before, polybar would crash, trying to throw a server error because
mpd_connection_get_server_error asserts that the error is of type server
error, but it isn't because it was cleared
2018-02-14 14:27:25 -08:00
patrick96
f531613723 fix(alsa): Use proper speaker mixer name and soundcard
The old code causes a segmentation fault, if the speaker and headphone
soundcards differ.
2018-02-13 09:44:16 -08:00
NBonaparte
4d48ffed83 fix(battery): check without using path_battery 2018-02-11 20:21:43 +01:00
NBonaparte
539e2e09cf fix(cmake): look for and remove alsa.cpp if not used 2018-02-11 17:25:21 +01:00
NBonaparte
1ac5c23fd2 fix(xbacklight): respect enable-scroll 2018-02-11 17:22:44 +01:00
Vlad Glagolev
a5b310872c Respect 'enable-scroll' setting for xworkspaces module 2018-02-03 14:43:34 -08:00
Kareem El-Faramawi
2f113446c0 fix(battery): capture path_battery by copy (#992)
path_battery goes out of scope, so the stack reference becomes garbage

Fixes #985
2018-02-02 10:42:20 +01:00
patrick96
26abd0f6c4 fix(mpd): Check m_status before dereferencing it
This bug was introduced in 645a3142a1

Fixes #979
2018-01-31 22:17:25 -08:00
NBonaparte
2a056d5b23 fix(power): add comments to explain current/power_now 2018-01-30 21:24:51 +01:00
NBonaparte
95d3b4f1eb fix(battery): use power_now correctly 2018-01-30 21:24:51 +01:00
patrick96
5c7ff09ed6 fix(config): Use proper token object
When using the same token multiple times in the same label with
different length properties, polybar would always use the settings for
the first token. This now replaces the tokens one by one, so that a new
token object is used for the length settings each time a token is used
again. Because the token objects are added in order, the replacement
always uses the right token object for the token that is replaced.

Fixes #971
2018-01-27 23:40:19 -08:00
NBonaparte
06dee3dedd fix(volume): Warn instead of throw 2018-01-23 14:33:11 +01:00
NBonaparte
e16227ca43 refactor(alsa): rename and move volume -> alsa 2018-01-23 14:33:11 +01:00
patrick96
1d9dd719bc refactor(script): Loop over buttons and replace tokens 2018-01-21 14:41:52 -08:00
patrick96
f79aeac872 feat(script): Add %pid% token for tail commands
Is replaced with the pid of the exec command
2018-01-21 14:41:52 -08:00
NBonaparte
3af3aea534 fix(pulseaudio): warn only if default sink is not same as specified sink 2018-01-20 12:37:41 -08:00
NBonaparte
10656a94cb fix(pulseaudio): prevent nonresponsiveness and remove redundant getters 2018-01-20 12:37:41 -08:00
NBonaparte
1f35b9dc89 fix(pulseaudio): Add logging 2018-01-20 12:37:41 -08:00
NBonaparte
0eac7f5d04 fix(pulseaudio): use PA_VOLUME_UI_MAX 2018-01-20 12:37:41 -08:00
NBonaparte
8be5427c33 refactor(pulseaudio): remove headphone ramp 2018-01-20 12:37:41 -08:00
NBonaparte
1792090d66 refactor(pulseaudio): remove wait timeout, fix indents 2018-01-20 12:37:41 -08:00
NBonaparte
6e8b9dea29 fix(pulseaudio): Move pulseaudio to separate module 2018-01-20 12:37:41 -08:00
NBonaparte
a08c5c710a fix(pulseaudio): fix get_name(), cleanup 2018-01-20 12:37:41 -08:00
NBonaparte
5c6b56614e fix(pulseaudio): Rewrite error checking 2018-01-20 12:37:41 -08:00
NBonaparte
916c7b6852 refactor(pulseaudio): Use index instead of name to track sinks 2018-01-20 12:37:41 -08:00
NBonaparte
23ee9afb6f fix(pulseaudio): Use inc_volume() instead of set_volume() 2018-01-20 12:37:41 -08:00
NBonaparte
318a6d83cf refactor(pulseaudio): Move loop to inline function 2018-01-20 12:37:41 -08:00
NBonaparte
4f15f42f2c fix(build): Only use one volume backend 2018-01-20 12:37:41 -08:00
NBonaparte
81913cf181 wip(pulseaudio): create pulseaudio backend 2018-01-20 12:37:41 -08:00
patrick96
6ed4838738 fix(mpd): Update on MPD_IDLE_QUEUE events
MPD_IDLE_PLAYLIST is deprecated since 2009, it has the same value as
MPD_IDLE_QUEUE, so we are now using that
2018-01-15 19:32:02 +01:00
patrick96
645a3142a1 fix(mpd): Always update mpd data
Only updating when an mpd event occurred would cause issues when mpd was
playing and the machine was put to sleep because the elapsed time was
calculated by taking the time difference of the last update and now
which would give you wrong numbers, if the machine was in standby in
between.

Since the update function on the module is only called once a second (or
when an event happens), we can just update the data every time without a
huge performance hit.

Fixes #915
2018-01-15 19:32:02 +01:00
Patrick Ziegler
d8414c6ec5 feat(i3): Add workspace separator (#938)
Puts a label-separator node between workspaces on the bar. Since the
separator uses a label it can be configured like any other label

Closes: #929
2018-01-06 16:19:02 -08:00
Patrick Ziegler
a7eb7b3576 feat(bspwm): Add workspace separator (#942)
Same as the i3 workspace separator
2018-01-06 16:18:09 -08:00
Jens Henniges
d3abcc97f6 feat(mpd): Add support for icon-consume (#861) 2017-12-04 11:38:17 -08:00
NBonaparte
c348c3e917 fix(mpd): get format-online options for format-{playing,paused,stopped} (#868) 2017-11-30 21:58:34 +01:00
Vasili Karaev
5d2deb1a99 fix(renderer): Only draw text bg if color differs from bar bg (#831)
Fixes #759 by only drawing text background when its color is different from the background color of the bar itself.

Explicitly setting a module's background to `background-0` now stops working.
2017-11-12 09:53:54 +01:00
NBonaparte
3092a1b18f
feat(mpd): Get name and/or uri if title not found (#823) 2017-11-08 21:12:44 -08:00
Kókai Péter
3f9f2dc37f fix(github): Handle curl exceptions and bad status codes (#811)
If any error occurs, a warning is logged and -1 
is displayed as the number of notifications
2017-11-07 23:29:44 +01:00
Vasili Karaev
dc0edfb994 fix(i3): Check whether current ws is found (#826)
Fixes dereference of end() iterator in case current workspace is not found (#824).

Fixes #824
2017-11-01 16:47:07 +01:00
NBonaparte
d4d571425d refactor(mpd): Keep tag getters consistent 2017-10-23 15:07:03 -07:00
Chris Snell
5737156ae5 feat(temperature): Fahrenheit and Celsius tokens (#804)
%temperature-f% and %temperature-c%
2017-10-18 22:29:53 +02:00
Pier
cbd87efc64 fix(build): pow10 not defined on Fedora Rawhide (#807)
pow10 is a GNU extension and not available everywhere
2017-10-15 19:16:07 +02:00
NBonaparte
5b7d7b8232 Merge pull request #729 from NBonaparte/fix-prefix-suffix
fix(modules): Separate prefix/suffix tags, revert tag stack
2017-09-24 14:00:34 -07:00
patrick96
c7cb5ebf94
fix(renderer): Handle nested actions events properly
For nested actions, the inner action should override the outer action.
But because the list of actions was not iterated in reverse the outer
action was matched first.

Fixes #760
2017-09-23 16:53:04 +02:00
patrick96
251c3e874a
fix(renderer): Only close a single action
Before the renderer would close all active matching actions. That way
nested actions would also close their surrounding action block
2017-09-23 16:49:39 +02:00
NBonaparte
89fccde765 fix(modules): Apply format settings to pre/suffix 2017-09-22 23:40:31 -07:00
Patrick Ziegler
4663d01a51 Merge pull request #727 from NBonaparte/change-cursor
feat: Change cursors over clickable/scrollable areas
2017-09-17 22:33:32 +02:00
NBonaparte
27f53eb129 Merge pull request #745 from patrick96/issues/744
fix(date): date and time string limited to 63 chars
2017-09-17 13:20:55 -07:00
NBonaparte
70023b07c1 refactor(cursor): Include double clicks and fix scroll to click changes 2017-09-16 19:48:38 -07:00
NBonaparte
e612fe1624 refactor(cursor): use map for cursor list 2017-09-16 15:31:24 -07:00
NBonaparte
b7f1960a0a fix(cursor): change arrow_names to default_names 2017-09-16 15:31:24 -07:00
NBonaparte
1886cf97a8 fix: pass action by reference 2017-09-16 15:31:24 -07:00
NBonaparte
1dc111c0fa fix: make xcb-cursor optional for now 2017-09-16 15:31:24 -07:00
NBonaparte
65edba3321 feat: add cursor change 2017-09-16 15:31:24 -07:00
patrick96
b6a2c575fd
refactor(date): Use cpp string comparison 2017-09-16 00:09:26 +02:00
patrick96
0024e1e9e7
refactor(date): Remove obsolescent setlocale call 2017-09-15 14:22:42 +02:00
patrick96
1bc9933a88
refactor(date): Use single stringstream
Reduces code repetition and removes the need for setting the locale in
every update
2017-09-15 14:21:38 +02:00
patrick96
6e9e739d81
fix(date): Remove string length limitation
Fixes #744
2017-09-15 14:13:35 +02:00
Chase Geigle
a682d2af91
fix(fs): Use f_frsize in filesystem calculations
This is consistent with the documentation of
std::experimental::filesystem, so I think it is the more "correct"
thing to be doing here.
2017-09-14 19:02:55 -05:00
NBonaparte
9da06c0ec2 fix(modules): Remove redundant if statement 2017-09-06 20:16:08 -07:00
NBonaparte
3ce06585ab fix(parser): Revert tag stacks 2017-09-06 20:16:08 -07:00
NBonaparte
f3bddc5af4 fix(modules): Separate prefix and suffix from output 2017-09-06 20:15:28 -07:00
NBonaparte
138f5faed8 fix(fs): Calculate used, percentages according to df
Fixes #710.
2017-09-06 17:20:10 -07:00
Patrick Ziegler
a255a022a7 fix(renderer): Correct center module position (#673)
The changes introduced in 389bae2669 to
address #551 did not consider the left border

Now center modules are centered regardless of border (left or right)
settings or tray position

Fixes #672
2017-09-04 23:46:47 -07:00
NBonaparte
e329a8150a fix(config): Expand all environment variables and file references (#724) 2017-09-04 14:00:35 -07:00
NBonaparte
ce05aa36a1 feat(temperature): Add hwmon sysfs support (#688) 2017-08-29 15:10:28 -07:00
Patrick Ziegler
8c1ba8358d feat(menu): Add expand-right option (#658)
expand-right defaults to true to preserve the current functionality
If set to false, the items in the menu will be added to the left of the
toggle label (instead of the right side)

Should resolve the issue discussed in #655
2017-08-29 13:25:41 -07:00
Patrick Ziegler
b0f34c4b55 Reuse caps_str (#656)
Just to be consistent with the num lock part
2017-08-29 12:06:49 -07:00
patrick96
d35abc7620 Remove curlbuild include
Curl removed that header in 73a2fcea0b4adea6ba342cd7ed1149782c214ae3
([1])
http.cpp doesn't use anything from that header and compilation works for
fine with curl 7.54.1

Fixes #647
Ref:
[1]: 73a2fcea0b
2017-07-14 10:12:33 +02:00
Michael Carlberg
d3b0670f30 fix(config): Perform tilde expansion on include-file #603 2017-06-02 18:34:49 +02:00
rps
f581095cb7 Fixes #535 and #411. 2017-05-19 18:02:33 +02:00
Michael Carlberg
389bae2669 fix(renderer): Adjust center block position when using tray
Fixes #551
2017-05-19 17:25:04 +02:00
Michael Carlberg
2e8cc7f503 fix(parser): Ignore sequential duplicates in color stacks 2017-05-17 23:11:59 +02:00
Michael Carlberg
0bd8f1f69a fix(parser): Proper handling of %{R} #585 2017-05-17 23:11:06 +02:00
Michael Carlberg
5af5292808 Revert "fix(parser): Use value stacks for %{R} tag #585"
This reverts commit d141d8b5e4.
2017-05-17 22:20:38 +02:00
Michael Carlberg
d141d8b5e4 fix(parser): Use value stacks for %{R} tag #585 2017-05-17 22:06:12 +02:00
Michael Carlberg
86ff947e38 fix(process_util): Prefix shell env var
Fixes #566
2017-05-12 17:55:05 +02:00
Michael Carlberg
b6c5563b0b feat(ipc): Add visibility commands 2017-05-12 17:55:05 +02:00
Michael Carlberg
23a7717120 fix(controller): Remove unused function 2017-05-12 17:55:05 +02:00
Vasili Karaev
5c41e3d045 feat(mpd): Add state-specific formats #524 2017-05-09 14:56:29 +02:00
Michael Carlberg
b2f00cc08a feat(parser): Stack font indexes set with %{T} 2017-04-26 19:25:42 +02:00
Michael Carlberg
24b2de5534 refactor(parser): Naming of parse methods 2017-04-26 19:25:02 +02:00
Michael Carlberg
31ba2f38bd fix(parser): Make the %{U} tag use color stacks #544 2017-04-26 19:01:55 +02:00
Michael Carlberg
5c7e3cbbac fix(parser): Reset color stacks #544 2017-04-26 18:53:04 +02:00
Michael Carlberg
eebf1055e5 fix(parser): Overline tags 2017-04-25 20:30:21 +02:00
Michael Carlberg
f754fa2710 feat(parser): Keep track of formatting colors #544 2017-04-25 20:26:56 +02:00
Vasili Karaev
863c510903 fix(i3): Use ws name for click handling #520 2017-04-06 06:22:11 +03:00
Michael Carlberg
d6b0c5f003 fix(bspwm): Focus monitor before sending scroll cmd #503 2017-04-02 18:21:09 +02:00
Michael Carlberg
02833b7871 feat(volume): Optional event handling #84 2017-04-02 18:12:07 +02:00
Vasili Karaev
68beb8d744 fix(i3): Check whether current ws is focused before issuing scroll commands #503 2017-03-31 22:26:24 +02:00
Vasili Karaev
db0ab78d62 fix(i3): Handle scrolling internally #503 2017-03-31 22:26:24 +02:00
Vasili Karaev
7bb168679d fix(mpd): Check state before calling playback controls #500 2017-03-26 11:25:32 +03:00
Michael Carlberg
5c86842083 fix(renderer): Do not escape parsed action cmds #444 2017-03-21 16:21:53 +01:00
Michael Carlberg
f3089e88f2 feat(conf): Properties for top/bottom radius #445 2017-03-21 14:49:33 +01:00
Michael Carlberg
23a8042411 fix(tray): Remove invalid clients #487 2017-03-15 23:52:59 +01:00
Nicolò Balzarotti
84ee0d560c fs: Fix wrong size report 2017-03-13 10:21:21 +01:00
raidzero
50aba85ad0 Merge remote-tracking branch 'upstream/master' 2017-02-23 14:50:09 -07:00
raidzero
a00f052002 formatting changes 2017-02-23 09:04:49 -07:00
Adam Ransom
47bc459742 fix(bspwm): Update when focusing urgent desktops
When focusing a desktop with the urgent flag, two events are received
from `bspc` simultaneously, separated by a newline character.

This was not handled correctly and the second event was discarded causing
the urgent style to be removed, but the focused style would remain on the
previously focused desktop.

This fixes the problem by handling any number of events that arrive at the
same time (separated by newlines).
2017-02-23 13:28:26 +01:00
NBonaparte
44f12c6065 feat(xworkspaces): add urgent desktop detection 2017-02-23 13:20:26 +01:00
raidzero
93c425fdfe Add battery usage/charge in watts token %consumption% 2017-02-16 14:35:43 -07:00
Chase Geigle
bd8e748399 fix(builder): use unicode-aware truncation for label-maxlen 2017-02-16 09:19:26 +01:00
Chase Geigle
73faa18cf0 fix(label): Truncate label replacements based on codepoint count
This helps ensure that when a string is truncated it is not done in the
middle of a utf8 multi-byte sequence. This doesn't 100% correspond to
user-perceived characters, but it should be pretty close in most cases.
2017-02-15 14:19:47 +01:00
Michael Carlberg
1d06df25a9 fix(config): Use std::map to store sections #412 2017-02-07 14:56:56 +01:00
Michael Carlberg
384c12a896 fix(xwindow): Lock mutexes on update #416 2017-02-05 13:37:16 +01:00
Tudor Brindus
107bdb91e3 fix(memory): Implement memory updating for pre-3.4 kernels (#410)
Since 3.4, `/proc/meminfo` contains a `MemAvailable` field, which polybar uses to determine
`(gb|mb)_free` and `(gb|mb)_used`. This commit adds a fallback for when `MemAvailable` does
not exist, allowing a fairly-accurate approximation on older kernels.

This commit also removes the reliance on the exact order fields appear in `/proc/meminfo`.
2017-02-04 18:19:58 +01:00
Michael Carlberg
9ced7dbf73 fix(xcomposite): Disable extension query #406 2017-02-04 19:14:10 +01:00
Michael Carlberg
8146f65286 fix(xrender): Add header declarations #406 2017-02-04 19:13:08 +01:00
Michael Carlberg
82d360e634 fix(fs): Use available bytes to calculate free disk space
Refs #396
2017-01-30 14:39:06 +01:00
Michael Carlberg
9f1d9a14fd fix(renderer): Use correct width for top border
Refs #390
2017-01-29 15:25:31 +01:00
László Várady
7e7dc68e5a fix(github): Hide label if 'empty-notifications' is disabled
Before the first update(), the label should stay 'hidden'.
2017-01-29 15:16:00 +01:00
Michael Carlberg
3e4a4ce78f fix(renderer): Alignment blocks 2017-01-27 15:36:37 +01:00
Michael Carlberg
beedc5ab84 fix(color_util): Parsing 2017-01-27 13:46:27 +01:00
Michael Carlberg
af5f129b76 fix(tray): Drop warning 2017-01-27 13:33:39 +01:00
Michael Carlberg
eb5c82a5c3 fix(modules): Warmup in runner thread to avoid block 2017-01-27 13:29:10 +01:00
Michael Carlberg
fb709aeab3 fix(i3): Workspace state when visible on unfocused monitor 2017-01-27 03:03:57 +01:00
Michael Carlberg
07cb5f134e fix(renderer): Cleanup 2017-01-26 21:55:42 +01:00
Michael Carlberg
874e6b0d6c feat(config): Add directive for file inclusion 2017-01-26 20:10:33 +01:00
Michael Carlberg
43a17c3b36 refactor(cmake): Cleanup 2017-01-26 17:39:50 +01:00
Michael Carlberg
162e77793a fix(tray): Ignore if detached
Refs #383
2017-01-26 12:46:10 +01:00
Michael Carlberg
5283fbff01 fix(renderer): Fill background to the sub blocks
Paint the background on each sub block instead of the base surface.
Fixes the compositing ops.
2017-01-26 01:53:25 +01:00
Michael Carlberg
b16c105514 feat(modules): Move default format values to the config
Fallback values for all module formats can now be set
in the configuration. For example:

    [settings]
    format-padding = 2
    format-underline = #00f
2017-01-26 01:50:02 +01:00
Michael Carlberg
8138a12381 refactor(renderer): Cleanup 2017-01-25 23:38:51 +01:00
Michael Carlberg
09808e99f9 refactor(tray): Cleanup 2017-01-25 23:37:16 +01:00
Michael Carlberg
d8d007aa9c refactor(cairo): Cleanup 2017-01-25 23:37:13 +01:00
Michael Carlberg
886d0f4ff3 fix(renderer): Round floatig point numbers
Refs #378
2017-01-25 21:46:18 +01:00
Michael Carlberg
8fa879c8d8 fix(cmake): Require xcb-proto>=1.12 for monitor support
Refs #344
2017-01-25 20:16:04 +01:00
Michael Carlberg
017abee679 fix(cmake): Require randproto>=1.5 for monitor support
Refs #344
2017-01-25 17:36:40 +01:00
Michael Carlberg
95d5b03fa2 refactor(file_util): Expand tilde manually 2017-01-25 17:07:55 +01:00
Michael Carlberg
02ab1b9a81 fix: Allow explicit override with property shorthand
Refs #375
2017-01-25 15:13:03 +01:00
Michael Carlberg
eae612ce95 fix: Use correct name for padding shorthand
Refs #375
2017-01-25 15:03:57 +01:00
Michael Carlberg
f37ecfe959 fix(renderer): Falloff gradient 2017-01-25 15:00:34 +01:00
Michael Carlberg
1ca71ce401 fix(ci): Remove unused function 2017-01-25 12:20:06 +01:00
Michael Carlberg
c7f33e2567 refactor(renderer): Use redirection groups instead of pixmaps 2017-01-25 09:54:18 +01:00
Michael Carlberg
1a25be374f refactor(xworkspaces): Cleanup 2017-01-25 04:35:56 +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
1fdc742606 fix(command): Decrease log verbosity
Refs #362
2017-01-23 17:11:07 +01:00
Patrick Yates
2dfdbd240e feat(bspwm,i3): Fuzzy-matching names for icons
Added support for fuzzy matching workspace names when assigning icons.
This feature is enabled/disabled through a new option, 'fuzzy-match'.
It is disabled by default.
2017-01-23 17:01:30 +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
374ad655ae fix(xrsources): Safety check
Refs #356
2017-01-19 20:19:18 +01:00
Michael Carlberg
9e3a7cf06c fix(label): Add missing character 2017-01-17 15:38:28 +01:00
Michael Carlberg
e0e9cae2eb fix(label): Improve false positive token filtering 2017-01-17 15:28:52 +01:00
Michael Carlberg
0f87d37137 fix(fs): Set bytes_avail
Refs #343
2017-01-17 15:20:46 +01:00
Elohim Falcón
132b832c52 fix(xwindow): Give priority to _NET_WM_NAME (#342) 2017-01-17 14:59:32 +01:00
Michael Carlberg
826e125c80 fix(menu): Broadcast tree reset
Fixes #327
2017-01-15 03:46:31 +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
b395285a68 refactor(ipc): More state checks 2017-01-14 18:00:29 +01:00
Alexander Polynomdivision
d3d3f3e6fa Modify the 'volume' module to load the name of the soundcards of the master, speaker and headphone mixer 2017-01-14 17:59:47 +01:00
Alexander Polynomdivision
22e255747a Update the mixer class to support setting the name of the soundcard we want to get the mixer of 2017-01-14 17:59:47 +01:00
Michael Carlberg
6250a2b746 fix(streambuf): Buffer size 2017-01-14 09:57:09 +01:00
Michael Carlberg
dceb3606b1 refactor(stringstream): Shorten to sstream 2017-01-14 06:11:51 +01:00
Michael Carlberg
977efd15e5 fix(ci): Compiler errors 2017-01-14 06:02:43 +01:00
Michael Carlberg
53772e9c32 feat(ipc): Add pid token 2017-01-14 00:56:43 +01:00
Michael Carlberg
480c2cb44b controller: Lower verbosity of uncaught event msg 2017-01-14 00:34:35 +01:00
Michael Carlberg
dacf36b981 refactor(ipc): Cleanup 2017-01-14 00:27:29 +01:00
Michael Carlberg
ed87a8924f fix(ipc): And double-click handlers 2017-01-14 00:10:55 +01:00
Michael Carlberg
ef2ad7a504 fix(volume): Fixed action blocks
Refs #329
2017-01-13 17:08:16 +01:00
Michael Carlberg
2fea813c3d fix(github): Clear label on empty notifications
Fixes #278
2017-01-13 14:57:31 +01:00
Michael Carlberg
57e8914fa6 fix: Force update after running input command 2017-01-13 14:33:16 +01:00
Michael Carlberg
989e4c3039 cmake: MinSizeRel flags 2017-01-13 13:17:11 +01:00
Michael Carlberg
f52a3c1389 fix(ipc): Tool cleanup 2017-01-13 13:05:32 +01:00
Michael Carlberg
15f880eba4 fix(mpd): Handle broken connections 2017-01-13 13:02:51 +01:00
Michael Carlberg
22140f7db9 refactor(builder): Action wrapped labels 2017-01-13 13:01:46 +01:00
Michael Carlberg
e1dbd98c40 feat(string_util): Custom stringstream 2017-01-13 13:01:22 +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
8d355f8255 fix(ipc): Avoid clearing module content
Refs #324
2017-01-13 05:33:34 +01:00
Michael Carlberg
cacc11e3a2 fix: Do not require bar name to list monitors
Refs #208
2017-01-13 04:50:33 +01:00
Michael Carlberg
b48a275235 feat(command_line): Properly handle positional args 2017-01-13 04:47:25 +01:00
Michael Carlberg
761b224f7c fix(xrandr): Merge outputs and 1-output monitors
Refs #280
2017-01-13 04:31:54 +01:00
Michael Carlberg
081578b168 fix(cmake): Require XRandR 1.5+ for monitor support
Refs #280
2017-01-13 04:13:46 +01:00
Michael Carlberg
506ac3e4ac fix(xrandr): Enable monitor support by default
Refs #280
2017-01-13 04:02:27 +01:00
Michael Carlberg
385572ec64 feat(xrandr): Support for monitors
Refs #280
2017-01-13 03:52:57 +01:00
Michael Carlberg
40493497de fix: Allow size_t narrowing 2017-01-13 01:14:50 +01:00
Michael Carlberg
0a24dc4912 fix(cmake): Use target_compile_options for libflags
Refs #308
2017-01-13 01:05:10 +01:00
Michael Carlberg
6dd72aa6f7 refactor(fs): Read /proc/self/mountinfo
Refs #271
2017-01-12 23:33:32 +01:00
Michael Carlberg
c2ac7fde67 refactor: Filesize strings 2017-01-12 20:28:44 +01:00
Michael Carlberg
9184a8b046 fix(memory): Safety check 2017-01-12 20:25: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
ef6f649579 fix(fs): Make sure to match with correct mtab entry
Fixes #321
2017-01-12 15:30:47 +01:00
Michael Carlberg
5773b08cf8 fix(script): Poll file descriptors 2017-01-11 18:21:58 +01:00
Michael Carlberg
d7d0fbcae4 fix(battery): Safety check
Make sure returned label is valid before access.

Refs #318
2017-01-11 15:01:39 +01:00
Michael Carlberg
30201bac38 fix(env_util): Add missing header 2017-01-11 09:28:39 +01:00
Michael Carlberg
e441332f40 fix(xbacklight): Value type 2017-01-11 09:23:27 +01:00
Michael Carlberg
5b33ada576 refactor(common): Cleanup 2017-01-11 07:17: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
5c9bfc147c fix(xbacklight): Lower inc/dec value to 5 and fix flooring 2017-01-11 04:40:10 +01:00
Michael Carlberg
8cc885c316 refactor: Cleanup 2017-01-11 03:07:28 +01:00
Michael Carlberg
c1aa3319a1 fix(menu): Close tree when item commands are invoked 2017-01-11 02:44:44 +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
f4e8051e9e refactor(script): Merge back script handling 2017-01-10 05:12:53 +01:00
Michael Carlberg
946843ff59 feat(script): Configurable condition using exec-if
Add new config parameter `exec-if = cmd` that needs to
exit successfully before the main exec command will be invoked.

Closes #298
2017-01-10 03:02:00 +01:00
Michael Carlberg
79856d7ed2 feat(ipc): Add polybar-msg to facilitate ipc messaging 2017-01-10 02:09:33 +01:00
Michael Carlberg
0f0d786cbd fix(ipc): Always close file descriptor on receive 2017-01-09 23:09:16 +01:00
Michael Carlberg
7a26254844 feat(ipc): Initial exec of configured hook
Adds a new config parameter `initial = N` that will
make the hook at defined index N execute on start.
2017-01-09 23:06:41 +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
5f6a1f5ae6 fix(xkeyboard): Use separate throttle timers 2017-01-09 16:40:26 +01:00
Michael Carlberg
3d6084f0c0 fix(controller): Always process forced update events 2017-01-09 16:35:28 +01:00
Michael Carlberg
3722ac1617 fix(label): Drop token close character from suffix substring
Refs #305
2017-01-09 15:23:51 +01:00
Michael Carlberg
eeaad512a9 fix(battery): Calculation of remaining dis-/charge seconds
- Optimize calculation
- Do not allow division by zero

Refs #303
2017-01-09 14:58:14 +01:00
Michael Carlberg
6925415501 fix(tray): Force bar update on change
Refs #295
2017-01-09 14:27:56 +01:00
Michael Carlberg
35f441cdde fix(fs): Mounted state
Fixes #271
2017-01-08 20:42:59 +01:00
Michael Carlberg
ef442025fa fix(battery): File contents comparison
Refs #297
2017-01-07 12:08:16 +01:00
Michael Carlberg
5c55beed7b fix(fs): Value type 2017-01-02 02:50:22 +01:00
Michael Carlberg
e0688307f3 wip(systray): Add module base 2017-01-01 21:28:28 +01:00
Michael Carlberg
6341c7ab25 refactor(config): Defer xrm initialization 2017-01-01 21:12:38 +01:00
Michael Carlberg
ce7faa9fe7 refactor(x11): Close xlib display 2017-01-01 21:11:01 +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
0c39061c98 feat(bspwm): Add option to inline mode indicators 2017-01-01 16:39:25 +01:00
Michael Carlberg
796cdb52cc refactor: Rename restack function 2017-01-01 15:45:18 +01:00
Michael Carlberg
2ebaa0fb5f fix(i3): Put below root when restacking window
Refs #293
2017-01-01 15:37:50 +01:00
Michael Carlberg
9c191cb025 fix(net): Always close socket handle
Refs #283
2017-01-01 15:10:58 +01:00
Michael Carlberg
ccddf052ec refactor(script): Split non-/tail logic
Split the script module into one tailing output module and
one exec once module.

Refs #281
2017-01-01 09:05:18 +01:00
Michael Carlberg
611ed0e348 fix(battery): Cap value of full-at 2017-01-01 04:00:35 +01:00
Michael Carlberg
cc5a5ef25c fix(file_util): Type specification
Fixes #290
2017-01-01 01:23:50 +01:00
Michael Carlberg
0d7f040256 fix(xkb): Auto-deduce types
Fixes #291
2017-01-01 01:17:30 +01:00
Michael Carlberg
dd960cc5b5 refactor(fd_streambuf): Cleanup 2016-12-31 15:42:46 +01:00
Michael Carlberg
acb9ed910d fix(script): Unlock mutex before terminating command
Refs #281
2016-12-31 14:08:45 +01:00
Michael Carlberg
210695d377 refactor(x11): Merge xlib/xutils with connection 2016-12-31 10:02:32 +01:00
Michael Carlberg
22b93a1167 fix(battery): Use full namespace 2016-12-31 07:32:57 +01:00
Michael Carlberg
e3a51b235a refactor(clang-tidy): Apply fixes 2016-12-31 04:32:11 +01:00
Michael Carlberg
ad0af86a7b refactor(battery): Abstract value readers
Refs #263, #245
2016-12-31 04:20:48 +01:00
Michael Carlberg
14958bdd23 fix: Correct type for module interval 2016-12-31 03:04:01 +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
53f781f527 feat(fs): Add option to remove invalid/unmounted endpoints 2016-12-30 22:44:28 +01:00
Michael Carlberg
e1c6a4e5a3 fix(command_line): End with empty line 2016-12-30 21:14:22 +01:00
Berk Ozbalci
2fdbb6af41 feat(bspwm): Add support for pseudo tiled nodes 2016-12-30 20:49:38 +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
4bc203dd1f fix(fs): Output error if statvfs() fails
Refs #271
2016-12-27 02:03:15 +01:00
Michael Carlberg
55934c12a3 fix(fs): Use avail bytes to calculate percentage
Refs #271
2016-12-27 01:32:33 +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
334c454eec concurrency_util: Mutex wrapper 2016-12-26 10:33:23 +01:00
Michael Carlberg
f80d8ebf5b file_util: File descriptor streams 2016-12-26 10:29:32 +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
3681247dc1 refactor(file_util): Move block mode helpers 2016-12-25 19:58:52 +01:00
Michael Carlberg
24aba14541 fix(battery): Safety check
Refs #269
2016-12-24 05:29:12 +01:00
Michael Carlberg
85c915d35b refactor(main): Parse args before connecting to X 2016-12-24 02:55:21 +01:00
Michael Carlberg
bb0d6f580d fix(xkeyboard): Wrap click handler around contents 2016-12-23 22:39:59 +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
97fa7052fe refactor(clang-tidy): Apply fixes 2016-12-23 15:54:06 +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
7ecd132610 fix(net): Convert dBm to percentage
Fixes #249
2016-12-23 08:13:40 +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
48438b2556 fix(github): Replace initial token 2016-12-23 05:12:33 +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
b765094a29 refactor(string_util): Faster replace_all 2016-12-23 04:40:35 +01:00
Michael Carlberg
d4e3891ab6 refactor(connection): Listen for property notify by default 2016-12-23 01:05:36 +01:00
Michael Carlberg
9479b5abe2 refactor(xwindow): Cleanup 2016-12-23 01:03:38 +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
d9de16e888 fix(bspwm): Handle single char prefix clash 2016-12-22 02:17:26 +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
788a7ca3a3 refactor(modules): Get rid of .inl files 2016-12-21 09:21:35 +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
ff55421f52 feat(cpu): Load percentage per core
Display load percentage for individual cpu cores
or a concatenated string for all cores.

Example:

  label = %percentage-core1% %percentage-core4%
  label = %percentage-cores%

Refs #256
2016-12-20 15:24:42 +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
418dadf0b9 fix(xbacklight): Close cmd blocks 2016-12-20 07:04:13 +01:00
Michael Carlberg
de04fa3eac feat(github): Option to hide notification count if empty 2016-12-20 05:53:45 +01:00
Michael Carlberg
6ef1721b61 fix(label): Bool operator should check tokenized field 2016-12-20 05:52:59 +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
Michael Carlberg
b417c9f812 feat(github): New module
Module used to query the GitHub API for information.
Currently only supports notification count.

Ref #84
2016-12-19 22:12:31 +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
698814d17f fix(xkeyboard): Only wrap click around the label 2016-12-16 11:34:35 +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
09ea07b750 refactor(battery): Use charge_{now,full} to calculate percentage 2016-12-16 09:58: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
faab627771 fix(tray): Ignore restack state 2016-12-15 21:00:17 +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
Michael Carlberg
a0d485f79d refactor: Initialize data 2016-12-15 09:30:31 +01:00
Michael Carlberg
f9062d031c refactor(clang-tidy): Apply fixes 2016-12-15 03:30:41 +01:00
Michael Carlberg
78b5f9651f fix(config): Remove tabs 2016-12-14 20:39:40 +01:00
Michael Carlberg
0fca9a0c6e git: Remove unused headers for boost::di 2016-12-14 20:18:55 +01:00
Michael Carlberg
52a6dfb42c refactor(config): Use defined fallback for environment refs 2016-12-14 20:14:31 +01:00
Michael Carlberg
3489ac7852 fix(build): Strip alsa sources when not building with alsalib 2016-12-14 20:12:50 +01:00
Michael Carlberg
4c36d65cbe fix(eventloop): Acquire lock guard 2016-12-14 19:04:33 +01:00
Michael Carlberg
e11798253a fix(controller): Module margin require surrounding text 2016-12-14 19:03:59 +01:00
Michael Carlberg
cdec06ee5a fix(tray): Remove default disable warning 2016-12-14 17:19:32 +01:00
Michael Carlberg
4870204b4f feat(bspwm,i3): Configurable scroll direction 2016-12-14 17:18:20 +01:00
Michael Carlberg
0b949ee3bb fix(config): Allow empty values 2016-12-14 15:10:19 +01:00
Michael Carlberg
d3bc1f938f refactor(x11): Use shared_ptr for X pointers 2016-12-14 15:09:51 +01:00
Michael Carlberg
d8f69866cc refactor(alsa): Memory allocation 2016-12-14 15:04:10 +01:00
Michael Carlberg
16592ce514 fix(process_util): Memory leak 2016-12-14 15:02:56 +01:00
Michael Carlberg
b11a662d81 fix(tray): Re-activation 2016-12-14 11:34:09 +01:00
Michael Carlberg
8c3f40db5b refactor(eventloop): Use config wrapper 2016-12-14 11:01:44 +01:00
Michael Carlberg
b156d1bbf4 refactor(bspwm): Cleanup 2016-12-14 11:01:44 +01:00
Michael Carlberg
18597f8e1d fix(tray): Uninitialized value 2016-12-14 11:01:44 +01:00
Michael Carlberg
7822f912aa feat(socket): Utility function peek() 2016-12-14 11:01:44 +01:00
Michael Carlberg
4606c41577 fix(xkb): Memory leaks 2016-12-14 11:01:44 +01:00
Michael Carlberg
357e95335a fix(valgrind): Suppress Xrm warnings 2016-12-14 11:01:44 +01:00
Michael Carlberg
5077325044 refactor(string_util): Use rvalue references for *trim() 2016-12-14 11:01:44 +01:00
Michael Carlberg
eca870774f fix: Handle single input events 2016-12-14 11:01:44 +01:00
Michael Carlberg
c2caf4d7a6 fix(parser): Apply clang-tidy fixes 2016-12-14 11:01:44 +01:00
Michael Carlberg
7d07812fa6 fix(font_manager): Memory leak 2016-12-14 11:01:44 +01:00
Michael Carlberg
80a00bd596 refactor(config): Cleanup and minor tweaks 2016-12-14 11:01:44 +01:00
Michael Carlberg
5e2a0bd298 refactor(alsa): Forward alsa structs and split classes 2016-12-14 11:01:44 +01:00
Michael Carlberg
a33c15b3ad fix(xresources): Deallocate memory 2016-12-14 11:01:44 +01:00
Michael Carlberg
83f7d2ce91 refactor: Cleanup 2016-12-14 11:01:44 +01:00
Michael Carlberg
bff119834a refactor: Pass singleton instance directly 2016-12-14 11:01:44 +01:00
Michael Carlberg
5d5542169b refactor(command_line): Cleanup 2016-12-14 11:01:44 +01:00
Michael Carlberg
683ce7acc6 refactor(logger): Cleanup 2016-12-14 11:01:44 +01:00
Michael Carlberg
540bcb9fd0 refactor(config): Load on instantiation 2016-12-14 11:01:44 +01:00
Michael Carlberg
4fca0c89b4 refactor: Object construction 2016-12-14 11:01:44 +01:00
Michael Carlberg
1a2a6e5fab refactor: Construction methods 2016-12-14 11:01:44 +01:00
Michael Carlberg
08be86fbe1 wip(refactor): Improve signal and event handling 2016-12-14 11:01:44 +01:00
Michael Carlberg
d45fd76dcd refactor(config): Drop boost::property_tree 2016-12-14 10:57:45 +01:00
Michael Carlberg
8da52af6a2 fix(tray): Attached offset relative to inner area 2016-12-14 10:55:40 +01:00
Michael Carlberg
24df9e30a3 fix(tray): Correct alignment coords 2016-12-14 10:55:40 +01:00
Michael Carlberg
4c2d710169 fix(tray): Adjust action coords
Ref #241
2016-12-14 10:55:36 +01:00
Michael Carlberg
3a6ca90fcb refactor(i3): Remove wsname-maxlen 2016-12-14 04:45:34 +01:00
Michael Carlberg
0ed173b96e refactor(i3): Output based wrapping 2016-12-14 04:45:31 +01:00
Michael Carlberg
c57273e682 fix(alsa): Deallocate mixer element using wrapper 2016-12-14 00:53:49 +01:00
Michael Carlberg
f4529dde99 feat(i3): Conditional wrap around on scroll
Ref #242
2016-12-14 00:46:54 +01:00