Commit graph

359 commits

Author SHA1 Message Date
tobi-wan-kenobi
a9f50f1b51 [core/config] add "core" config section
move theme and modules into a "core" config section
2020-07-09 07:04:22 +02:00
tobi-wan-kenobi
057f894d52 [core/config] change preferred theme source
now, it works like this:

- if present, use what's on the CLI
- if not, use what's present in the config
- fallback is "default"

see #679
2020-07-09 06:56:43 +02:00
ColdFire
aac2316d74
Updating config parser 2020-07-06 14:20:41 +05:30
Andrew Reisner
edb8eaf410
Small fix to xrandr module. 2020-07-05 12:35:44 -06:00
tobi-wan-kenobi
b4fc88b57e
Merge pull request #675 from xsteadfastx/iw
[modules/nic] Using `iw` to find out whats the SSID name
2020-06-30 20:20:17 +02:00
Marvin Steadfast
6d9d325eca [modules/nic] Using iw to find out whats the SSID name 2020-06-30 14:49:43 +02:00
tobi-wan-kenobi
f75f1a9f26 [modules/spotify] fix layout parameter 2020-06-30 07:20:54 +02:00
tobi-wan-kenobi
227a23fdb5 [core/theme] fix mergeing of iconsets
iconsets should only overwrite parameters that are *not* set in the main
theme file.

fixes #666
2020-06-29 20:07:24 +02:00
tobi-wan-kenobi
9136ebd321 [core/input] clear previous input registrations
make sure that for a given event (widget/object/module, whatever), only
a *single* input event per button can be registered at one time.

the problem otherwise is with modules that re-register their widgets
with the same IDs (cmus, spotify, etc.): Each time the widget is
re-created (each intervall, typically), it re-registers an input event,
creating an always longer list of callbacks being executed when the
button is clicked (not speaking of the memory leak this introduces).

fixes #668
2020-06-29 07:44:22 +02:00
gkeep
134bbbd743 Use icons depending on widget state and icon set 2020-06-29 00:57:01 +03:00
tobi-wan-kenobi
6b09be1993 Revert "[core/theme] Make theme iconsets *not* override settings"
This reverts commit 320bba97d0.
2020-06-28 20:09:55 +02:00
tobi-wan-kenobi
320bba97d0 [core/theme] Make theme iconsets *not* override settings
Make sure that iconsets used as part of a theme do *not* override
anything already existing inside the theme.

Only iconsets that are manually specified can override settings in the
theme now (because those, you typically specify on the CLI).

TODO: Write unit test for this

fixes #666
2020-06-28 20:01:08 +02:00
tobi-wan-kenobi
8f3d48c0e6 [modules/brightness] re-enable reading brightness from ACPI
to enable reading the brightness from ACPF, set the device path and -
other than previously - explicitly enable this by setting the parameter
"brightness.use_acpi" to "true".

fixes #665
2020-06-28 11:00:51 +02:00
tobi-wan-kenobi
fc8783ee13 [util/cli] fix CLI invokation for sway
in sway/wayland, make sure that the wayland socket is cleared, which
seems to cause issue for some unspecified reason.

also, while at it, improve code so that the environment dict that is
passed in is *not* modified.

fixes #628
2020-06-28 10:44:30 +02:00
tobi-wan-kenobi
350648b0cd [util/location] reverse location providers
seems that ipapi gives better results wrt. location
2020-06-27 15:05:57 +02:00
tobi-wan-kenobi
954d7545e3 [util/format] make temperature metric case insensitive
see #664
2020-06-27 15:02:55 +02:00
tobi-wan-kenobi
4925e09995 [modules/speedtest] no autostart, improve icons
do not start a speedtest automatically during startup, and improve the
icons a bit.
2020-06-26 09:40:35 +02:00
tobi-wan-kenobi
4ac8c2ef7a [modules/speedtest] small fix for retrigger 2020-06-25 20:46:13 +02:00
tobi-wan-kenobi
44b3df5827 [modules/speedtest] make speedtest re-triggerable 2020-06-25 20:44:55 +02:00
tobi-wan-kenobi
72deb7eaf8 [modules] add speed test module 2020-06-25 20:34:35 +02:00
tobi-wan-kenobi
e9b917c214 [doc] update spotify 2020-06-25 20:00:57 +02:00
tobi-wan-kenobi
542d841622 [modules/spotify] add contribution 2020-06-25 20:00:05 +02:00
tobi-wan-kenobi
54f6035e14
Merge pull request #663 from LtPeriwinkle/spotify-buttons-module
Spotify buttons module
2020-06-25 19:56:21 +02:00
LtPeriwinkle
4cbe04f0b0 remove -buttons, move getting song out of update() 2020-06-25 10:53:53 -07:00
LtPeriwinkle
057faa5577 replace original spotify with buttons version 2020-06-25 10:23:45 -07:00
LtPeriwinkle
6a8d830281 util.format.aslist() for layout 2020-06-25 10:20:02 -07:00
LtPeriwinkle
4b54d1981c fix grammar 2020-06-24 13:53:02 -07:00
LtPeriwinkle
7215a11ffe black -t py34 2020-06-24 12:22:03 -07:00
LtPeriwinkle
e1a9782458 modify comments 2020-06-24 12:18:28 -07:00
LtPeriwinkle
0c32d13e6f fix playback status 2020-06-24 12:15:32 -07:00
LtPeriwinkle
2eee4c390c put text on buttons 2020-06-24 12:14:26 -07:00
Tobias Witek
92ab1a3e00 [util/cli] make sure language is set to "C"
to make parsing of CLI output reliable (i.e. always in english), set
LC_ALL accordingly.

see #662
2020-06-24 07:47:31 +02:00
Tobias Witek
441e7d5041 [core] fix minimize for all modules (nic, traffic, etc.)
make it possible to toggle the display state of a widget between
"displayed" and "minimized" also for modules that re-create their
widgets during each iteration.

see #661
2020-06-23 20:03:17 +02:00
Tobias Witek
34dadadf90 [core] re-enable minimize of widgets
by default, allow toggling the minimized state of a widget via the
middle mouse and draw a single unicode char instead of the actual
widget, maintaining all states.

fixes #661
2020-06-23 15:51:14 +02:00
tobias.hannaske
3558176044 Do not execute iwgetid if the interface is recognized as tunnel 2020-06-22 10:33:49 +02:00
LtPeriwinkle
ca62f68906 create + map widgets for buttons 2020-06-21 12:31:11 -07:00
LtPeriwinkle
f67ef9d64a add spotify-buttons 2020-06-21 10:28:37 -07:00
es80
e17ef8614f
fix a regression for shell subprocess 2020-06-21 17:56:52 +01:00
Tobias Witek
b2e92d816d [tests] add pytest for core.output
see #642
2020-06-20 14:51:49 +02:00
Tobias Witek
542d235c1a [modules/traffic] ignore all errors during update
to investigate whether the assumption that a stray exception causes
issues is correct, temporarily catch all errors.

see #655
2020-06-20 13:52:55 +02:00
tobi-wan-kenobi
1ebbfbae14 [doc] add dev documentation on widget states
fixes #651
2020-06-09 20:45:54 +02:00
tobi-wan-kenobi
16269ff01e [core/input] add variables to custom cli calls
when specifying event bindings via CLI (e.g. disk.left-click=thunar),
allow for variables ({instance} and {name}, in particular).

fixes #650
2020-06-09 20:29:51 +02:00
tobi-wan-kenobi
a394469c0f
Merge pull request #646 from smitajit/master
[module] playerctl to displays information about the current song in …
2020-06-06 16:01:05 +02:00
tobi-wan-kenobi
ba82f5a50f [core/theme] Fix loading of iconsets
* First, make iconsets override anything already present in the "base"
configuration
* Second, make sure that CLI provided iconsets have higher priority than
"built-in" ones

see #648
2020-06-06 15:59:19 +02:00
smitajit
2dff5e2de7 migrated playerctl script to new bumblebee_status APIs 2020-06-06 14:39:50 +02:00
tobi-wan-kenobi
034e8eefb9 [core/theme] make iconsets take precedence over "main" theme
see #648
2020-06-05 20:10:50 +02:00
tobi-wan-kenobi
cb9a60668a [core/theme] Fix detection of "best matching theme"
Previous code accepted the "first" hit in a theme - particularly, if a
module is called "A" and a *different* module "B" uses "A" as state, a
widget of module B with state A would be themed as *module* A, wrongly.

Essentially, made sure that the last (most specific) themeing "wins".

fixes #647
2020-06-04 20:56:31 +02:00
Smitajit Biswal
4912fcc57b [module] playerctl to displays information about the current song in vlc, audacious, bmp, xmms2, spotify and others 2020-06-03 21:50:36 +02:00
tobi-wan-kenobi
23d7222576 [core/theme] take alias into consideration when themeing
see #643
2020-06-03 07:59:09 +02:00
tobi-wan-kenobi
20866ca7c0 [modules/arch-update] perform update in background 2020-06-03 07:51:44 +02:00
tobi-wan-kenobi
cb30b7175d [tests] update test_config for pytests
see #642
2020-06-02 20:34:49 +02:00
tobi-wan-kenobi
800d603c1f
Merge pull request #644 from ammgws/patch-1
contrib/apt: amend typo
2020-06-02 20:15:32 +02:00
tobi-wan-kenobi
5e40dfb28a [all] small fixed picked up by pytest
- unicode stuff
- make all regexps regex strings
2020-06-02 20:13:39 +02:00
Jason
cd0d97791e
contrib/apt: amend typo 2020-06-02 23:20:20 +09:00
tobi-wan-kenobi
9cadcee844 [core/events] simplify args/kwargs detection 2020-06-01 11:35:26 +02:00
tobi-wan-kenobi
d38a21983c [modules/ping] Use framework background update functionality
see #640
2020-05-30 17:25:47 +02:00
tobi-wan-kenobi
547874dafd [core/module] allow modules to perform updates in background
a module can now set `self.background = True` in its `__init__()` method
to make sure its update method is invoked in a separate thread.

also, do a PoC implementation of this for the github module.

TODO: add this to dev doc

see #640
2020-05-30 17:22:02 +02:00
tobi-wan-kenobi
55121c86d4 [util/popup] add generic "close" on root menu
add a "close" entry for the root menu of all popup menus (if they are
not automatically destroyed when leaving the menu).

fixes #633
2020-05-30 15:19:31 +02:00
tobi-wan-kenobi
1c04068f89 [util/popup] replace mainloop with custom loop
add a custom event loop for popups that closes the menu on mouse button
release events and - most importantly - propagates this event back to
any parent menu.

fixes #633
2020-05-30 10:02:12 +02:00
tobi-wan-kenobi
7f7f464193 Merge remote-tracking branch 'origin/development' 2020-05-29 11:11:56 +02:00
Cristian Miranda
c2d869278a [modules/github] - New module supporting unread notifications count by reason with backward compatibility 2020-05-28 17:45:57 -03:00
tobi-wan-kenobi
4f2b283a55 [modules/vault] Emit leave events for submenus
this seems to at least partially fix #633
2020-05-28 21:06:22 +02:00
tobi-wan-kenobi
ebd98663c6 [modules/vault] fix copy of wrong password
- fix bad errors (missing "show" in pass command)
- pass in whole environment (otherwise clipboard doesn't work)
- generate lambda to avoid late binding

fixes #593
2020-05-28 21:05:58 +02:00
Cristian Miranda
f7e37ef7d7 [modules/github] - Removed legacy module 2020-05-28 15:59:39 -03:00
tobi-wan-kenobi
8cdc84871f [modules] move amixer2 to amixer 2020-05-28 08:23:47 +02:00
tobi-wan-kenobi
006a1d05a9
Merge pull request #635 from ardadem/pr-amixer2
[modules] New amixer module with input support
2020-05-28 08:20:28 +02:00
tobi-wan-kenobi
caf2fea04b [modules/battery] gracefully handle "no batteries" case
if no batteries are found, assume the machine is running on AC.

fixes #636
2020-05-28 08:17:35 +02:00
Arda Demir
3df0b7047f [modules] New amixer module with input support 2020-05-26 18:23:58 +03:00
Tobias Witek
f23566f5d0 [modules/arch-update] fix log error 2020-05-26 08:15:15 +02:00
Tobias Witek
f1ce5e162a [theme] load custom iconset first
the "merge" algorithm only fills in missing elements - i.e. the most
important pieces of a data structure must be filled in first. since the
iconset specified on the CLI takes precedence over anything present in
the config, load the CLI-provided iconset *first*.

hopefully fixes #634
2020-05-26 07:56:04 +02:00
tobi-wan-kenobi
3d14931cb7 [docs] add new module 2020-05-23 16:55:24 +02:00
tobi-wan-kenobi
20f9ac3ae0 [modules/arandr] add contribution 2020-05-23 16:53:10 +02:00
tobi-wan-kenobi
d393da47ed Merge remote-tracking branch 'origin/development' 2020-05-23 16:52:34 +02:00
Zero Rust
f944d7c489 Merge branch 'development' into arandr 2020-05-23 08:03:34 -04:00
Zero Rust
8c8fef61eb linting 2020-05-23 07:58:50 -04:00
Zero Rust
3921bab32e added display toggling to the arandr module 2020-05-23 07:53:28 -04:00
Zero Rust
90fbc249af cleaner way to activate a layout 2020-05-23 07:28:00 -04:00
Zero Rust
ffd04e9710 full menu and command for arandr scripts 2020-05-23 07:13:47 -04:00
Zero Rust
de00f9bdce getting display and layout state for populating menu 2020-05-22 23:53:38 -04:00
Zero Rust
1b34993fa9 adding separator addition to popup 2020-05-22 23:53:21 -04:00
Zero Rust
f5c9272291 first go at popup functionality for arandr 2020-05-22 22:44:38 -04:00
tobi-wan-kenobi
5dec4fd371 [docs] add psutil dependency to cpu module 2020-05-21 13:10:53 +02:00
tobi-wan-kenobi
922575fcda [core/widget] make arbitrary modules scrollable
Use a boolean parameter "scrolling" that's applied generically to
modules to allow arbitrary modules to scroll.

see #606

TODO: Add to documentation
2020-05-18 13:13:06 +02:00
tobi-wan-kenobi
e359c75603 [core/widget] remove module from widget initializer 2020-05-18 12:59:47 +02:00
Zero Rust
2fcd277cf9 Merge branch 'development' into arandr 2020-05-18 06:58:07 -04:00
tobi-wan-kenobi
fbbd95b7a8 [modules/network_traffic] Minor refactoring 2020-05-18 12:56:41 +02:00
tobi-wan-kenobi
172781d2c4
Merge pull request #631 from zerorust/fix_network_traffic
Fix network_traffic mobule on development
2020-05-17 14:15:00 +02:00
Zero Rust
f5d296df80 adding first version of arandr module to contrib 2020-05-17 08:03:03 -04:00
Zero Rust
6d89cef600 cleaning up to match style 2020-05-17 07:16:33 -04:00
tobi-wan-kenobi
1355a7e5d3 [core/decorators] add docstrings 2020-05-16 15:28:15 +02:00
tobi-wan-kenobi
a697500491 [core] add debugging around click events
log commandline outputs and errors. allow input handlers to be
configured as "waiting" for debugging purposes.

see #628
2020-05-16 15:16:23 +02:00
Zero Rust
f2d6f2f319 moving the module setter to after module init 2020-05-16 07:24:14 -04:00
tobi-wan-kenobi
02a80840a1 [core] more black'ing 2020-05-16 12:00:55 +02:00
tobi-wan-kenobi
eea3c758de [core/input] Invoke commands in a subshell
add shell capability to util.cli and make sure that the input module
uses that to reliably spawn whatever command the user wants to run.

see #628
2020-05-16 11:43:43 +02:00
Pavle Portic
a8df4a5f9d
Handle n+1 characters in the scrolling decorator 2020-05-15 20:31:37 +02:00
tobi-wan-kenobi
3bb2fb8247 [core/module] add missing registration of input events via CLI
see #628
2020-05-15 19:59:13 +02:00
tobi-wan-kenobi
bfe5d8f493 [module/battery] exception typo
see #628
2020-05-15 19:48:10 +02:00
tobi-wan-kenobi
835ed070e5 [core/module] Add docstrings 2020-05-15 10:22:10 +02:00
tobi-wan-kenobi
1b53e7ecf2 [util/popup] add docstrings 2020-05-15 10:07:07 +02:00
tobi-wan-kenobi
bc382e67d3 [general] black code some more 2020-05-14 20:36:01 +02:00
tobi-wan-kenobi
526560ea54 [core/decorators] use difflib to make scrolling reset detection fuzzy
when scrolling text that is subject to *slight* changes (e.g. a song
that contains the current position within the song), allow for slight
variations in the displayed text.

fixes #629
2020-05-14 20:35:09 +02:00
tobi-wan-kenobi
3fdd2d2be6 [modules/arch-update] Gracefully handle exit code 2
fixes #624
2020-05-11 15:10:20 +02:00
tobi-wan-kenobi
b4f8870a95 [doc] update API docs 2020-05-10 13:25:13 +02:00
tobi-wan-kenobi
8ca036bc4c [util/graph] Add API documentation 2020-05-10 13:15:47 +02:00
tobi-wan-kenobi
106bb9e8c3 [util/graph] Remove docstrings in prep for more complete documentation 2020-05-10 13:07:08 +02:00
tobi-wan-kenobi
b803f385a1 [tests] Fix failing tests 2020-05-10 12:56:30 +02:00
tobi-wan-kenobi
c560c07890 [packaging/pip] Make binary utility tools functional 2020-05-10 12:52:20 +02:00
tobi-wan-kenobi
92577e7d26 [all] black code :) 2020-05-09 21:24:28 +02:00
tobi-wan-kenobi
320827d577 [core] restructure to allow PIP packaging
OK - so I have to admit I *hate* the fact that PIP seems to require a
subdirectory named like the library.

But since the PIP package is something really nifty to have (thanks to
@tony again!!!), I updated the codebase to hopefully conform with what
PIP expects. Testruns so far look promising...
2020-05-09 21:22:00 +02:00