Commit graph

277 commits

Author SHA1 Message Date
nepoz
2100a7cfdb Set up initial testing framework for network module 2021-07-08 12:10:46 -05:00
nepoz
3f524ab371 Refactoring, making use of netifaces 2021-07-08 09:04:40 -05:00
nepoz
911230c659 first complete implementation of the network module 2021-07-05 13:54:28 -05:00
nepoz
c7df1926dc Formatting fixes, fixed state management and added some icons 2021-07-05 13:09:17 -05:00
nepoz
448ab6de83 Functional display for wireless connection 2021-07-05 12:34:42 -05:00
nepoz
4987c7d3e2 added stateful behavior 2021-07-05 11:26:46 -05:00
nepoz
f141b95d8f Basic functionaly for dealingn with signal strength 2021-07-05 10:29:37 -05:00
nepoz
1232c4d960 Initial commit -- give basic message about interface being used 2021-07-05 07:55:47 -05:00
Sayan Sil
4485b65722
Use the existing util.cli module 2021-06-30 11:31:42 +05:30
Yufan You
37ccbd7f4a
[modules/playerctl]: support the stopped status 2021-06-26 18:19:24 +08:00
Sayan
e5007a5729 Add active gpu module using optimus-manager 2021-06-24 23:17:35 +05:30
Yufan You
c4046d0cd2
[doc]: link to the README instead of manpage 2021-06-11 18:12:13 +08:00
Yufan You
51f68addcd
[modules/playerctl]: BREAKING: use playerctl -f and add playerctl.args
1. Use `playerctl -f` to format, which is more powerful. This also fixes
   #767, which is caused by missing a few fields of the metadata.
2. Add `playerctl.args`, so that users can choose a specific player,
   etc.
3. Display nothing when there's no running player.

This is a breaking change. Users need to change `{title}` to
`{{title}}`.
2021-06-11 17:38:46 +08:00
tobi-wan-kenobi
4b6b4b9052 [core] add custom minimizer capability
Add a new set of parameters to allow modules to be customly minimized.

It works like this: If a module has the parameter "minimize" set to a
true value, it will *not* use the built-in minimizer, and instead look
for "minimized" parameters (e.g. if date has the "format" parameter, it
would look for "minimized.format" when in minimized state). This allows
the user to have different parametrization for different states.

Also, using the "start-minimized" parameter allows for modules to start
minimized.

Note: This is hinging off the *module*, not the *widget* (the current,
hard-coded hiding is per-widget). This means that modules using this
method will only show a single widget - the first one - when in
minimized state. The module author has to account for that.

see #791
2021-05-24 12:56:02 +02:00
tobi-wan-kenobi
dfd23a44de [modules/layout] add a new - generic - layout module
Add a new module "layout" that will eventually evolve into the only
keyboard layout module.

Right now, it uses an external binary (get-kbd-layout) to determine the
layout of a keyboard device (because I did not manage to call libX11
with ctypes correctly).

see #788
see #790
2021-05-16 21:09:58 +02:00
tobi-wan-kenobi
902288f30d [modules/sensors] do not truncate temperature
use strip() instead of a sub-list to get the value for the temperature.

fixes #787
2021-05-11 11:23:06 +02:00
tobi-wan-kenobi
9e20b48cee
Merge pull request #789 from fredj/sun_param_fix
Fix parameters name for the sun module
2021-05-10 17:46:24 +00:00
Frederic Junod
046b950b8a Fix parameters name for the sun module 2021-05-10 14:35:34 +02:00
tobi-wan-kenobi
1e13798c95 [core/input] add pseudo-event "update" to selectively update modules
to trigger an update of a module (without actually triggering a mouse
interaction), use the special event "update":

bumblebee-ctl -m <module> -b update

see #784
2021-04-28 12:41:04 +02:00
tobi-wan-kenobi
fb6be007e5 [core/output] fix minimum width with padding
when calculating the minimum width of a widget, also take the padding
into consideration.

see #785
2021-04-27 17:17:28 +02:00
tobi-wan-kenobi
10c169af8a [modules/core/cpu] optionally add per-cpu widget
if the parameter "percpu" is set to true, create one widget per cpu, and
also handle warning/error state on a per-widget basis.

see #785
2021-04-27 17:17:13 +02:00
tobi-wan-kenobi
8001ed3ada [modules/cpu] Add per-cpu mode
By explicitly setting "cpu.percpu=True" as parameter, it is now possible
to get the CPU utilization on a per-cpu basis.

Future extension: One widget per CPU (add ID of CPU and add
warning/error state on a per CPU basis)

see #785
2021-04-27 17:16:54 +02:00
tobi-wan-kenobi
4a6be622a8 [modules/rotation] fix widget creation
each iteration of the rotation module created new/duplicate widgets,
causing a status bar of infinite length.

fixes #782
2021-04-03 19:29:40 +00:00
tobi-wan-kenobi
0410ac9c6b [doc/shortcut] better example for shortcut module 2021-04-03 19:24:01 +00:00
tobi-wan-kenobi
527d1706c2 [core/module] add fallback for module loading
Looks like some Python versions work with find_spec(), others with
spec_from_file_location(), so add find_spec() as fallback.

fixes #779
2021-04-02 03:30:09 +00:00
jslabik
7756eaaa31 Adding the ability to change the editor to module todo 2021-03-20 01:18:46 +01:00
tobi-wan-kenobi
e560649531 [modules/shell] remove obsolete event handlers
modules are now automatically updated when clicked.

fixes #776
2021-03-18 15:30:03 +01:00
tobi-wan-kenobi
4187bddad6 [modules/shell] do not default to "makewide"
to avoid unnecessarily wide shell modules, set "makewide" to false, if
it is not set at all.

fixes #775
2021-03-18 15:29:06 +01:00
tobi-wan-kenobi
9f89e3a657 [core] make bumblebee more reactive
- set default delay to 0
- split input reading into 2 threads
- get rid of polling
2021-03-13 14:10:30 +01:00
tobi-wan-kenobi
868502d62e [modules/keys] add missing modules
forgot to add in the previous commit
2021-03-13 14:04:42 +01:00
tobi-wan-kenobi
8d88b23947 [modules] add a module "keys" that shows whether a key is pressed
also, add backend functionality to hide individual widgets of a module.
2021-03-13 13:17:20 +01:00
tobi-wan-kenobi
7d0d1455c8 [core/module] Add fallback for user module loading
If importlib.machinery is not present, fall back to importlib.util to
load the module by its absolute name.

hopefully fixes #763
2021-03-09 19:12:59 +01:00
Frederic Junod
0ff49ac7d5 [doc] Remove requests dependency in stock module
The module is using `urllib.request`
2021-03-02 17:00:14 +01:00
tobi-wan-kenobi
da7734d81f
Merge pull request #766 from michalroxorpl/enable_scroll_in_shell
Add code to enable scrolling of shell module output
2021-02-26 18:12:18 +01:00
Michal Cieslicki
6d7934f0fe Add code to enable scrolling of shell module output 2021-02-26 18:02:47 +01:00
Michal Cieslicki
618ebbeccc Add parameter to specify a configuration file 2021-02-20 13:50:31 +01:00
tobi-wan-kenobi
6e3caa6f14 [modules/shortcut] fix typo
fixes #760
2021-02-12 09:31:09 +01:00
tobi-wan-kenobi
0734c970b0 [modules/hddtemp] fix typo
fixes #761
2021-02-12 09:30:24 +01:00
tobi-wan-kenobi
406eadeac7 [modules/time] update once per second
fixes #676
2021-01-17 15:35:39 +01:00
tobi-wan-kenobi
a27c284869 [core/module] fix failing unit test
wrong error handling again
2021-01-17 15:29:44 +01:00
tobi-wan-kenobi
beca26c2bf [core/config] Allow modules to be hidden when in critical/error state
When a module is in critical state, the user can now hide the module
(e.g. if pulseaudio fails to load).

fixes #746
2021-01-17 15:21:40 +01:00
tobi-wan-kenobi
45c0a382c9 [core/module] fix load error when no user module exists 2021-01-17 15:17:14 +01:00
tobi-wan-kenobi
21ded8f640 [core] Allow module loading from user directory
If a module fails to load from both core and contrib, fall back to
loading by file name from "~/.config/bumblebee-status/modules/<name>.py"

fixes #757
2021-01-17 14:18:58 +01:00
tobi-wan-kenobi
0e37d6cbf2
Merge pull request #754 from gkeep/playerctl-improvements
[modules/playerctl] Add format and layout parameters
2020-12-27 17:58:33 +01:00
gkeep
b74ebce702 [modules/playerctl] Small fix 2020-12-27 19:12:36 +03:00
gkeep
436cea8f37 [modules/playerctl] Add format and layout parameters 2020-12-27 19:02:45 +03:00
tobi-wan-kenobi
7b1659a1b5 [core/theme] add /usr/share as theme directory
add a theme directory /usr/share/bumblebee-status/themes for system-wide
theme installation.

fixes #753
2020-12-20 10:23:06 +01:00
tobi-wan-kenobi
a94114dd94 [core/module] better error reporting for failed module loads
if a module fails to load, explicitly log errors for core and contrib in
the error log, but be a bit less verbose (and less confusing) in the
module error message itself.

fixes #747
2020-12-19 13:07:29 +01:00
gkeep
601b2115ce Add initial spotifyd compatibility 2020-12-18 13:56:26 +03:00
tobi-wan-kenobi
fa66873582 [core/theme] add xresources support
add support for reading foreground and background, and colors, from
xresources.py

many thanks to @Aliuakbar for the addition!

fixes #731
2020-12-07 09:01:08 +01:00
tobi-wan-kenobi
cd851340e2 [pip] updated/fixed dependencies
many thanks to @jayvdb for pointing those out!

fixes #741
2020-12-02 21:21:34 +01:00
Florian Eich
3c08eafa4a Add TiB to disk units, add SI unit option for disk space 2020-12-02 19:08:45 +01:00
tobi-wan-kenobi
a8d1254e06 [modules/nic] Make regex for SSID a raw string 2020-12-01 15:58:55 +01:00
Florian Eich
de01d96b91 Change iw call in module nic from link to info 2020-12-01 00:19:17 +01:00
tobi-wan-kenobi
d0ee1b06e4 [modules/nic] make exclude list regular expression capable
Allow the usage of regexps in the exclude list, but keep the "this is a
prefix" logic for backwards compatibility.

should address (see #738)
2020-11-30 17:21:17 +01:00
James Baumgarten
02465ea0c2 add rofication module 2020-11-23 20:44:17 -08:00
Tobias Witek
08ef42834e [modules/nic] update documentation to include iwgetid
fixes #734
2020-11-13 14:56:31 +01:00
tobi-wan-kenobi
0fc1782e0b
Merge pull request #733 from martindoublem/main
[module] Improved smartstatus with combined_singles
2020-11-06 12:36:33 +01:00
Martin Morlot
a811c9c886 [module] Improved smartstatus with combined_singles
Added combined_singles as way to detect the drives that are permanently inside your machine and not plugged via USB.

As USB flash drives without smartstatus sometime caused the module to crash.
2020-11-06 12:14:56 +01:00
Joe Finney
9b82e736a0
Fix arch-updates off-by-one.
There's a newline in the output so this overcounts by one.
2020-10-25 17:29:00 -07:00
Joachim Mathes
3c0499ba56 Provide alternative dunstctl implementation 2020-10-18 21:53:47 +02:00
tobi-wan-kenobi
68bd6f8ef8
Merge pull request #727 from w1kl4s/master
Fix Python 3.9 compatibility
2020-10-14 18:30:56 +02:00
w1kl4s
1a7ae9ecc6 Fix Python 3.9 compatibility
Replaced threading.Thread.isAlive() with threading.Thread.is_alive()
2020-10-14 18:07:29 +02:00
Martin Morlot
1912f3053d [Bluetooth2] fixed the execution of the toggle state 2020-10-09 10:59:59 +02:00
Thaynã Moretti
04a2ea438b Create layout-xkbswitch tests 2020-10-07 17:37:04 -03:00
Thaynã Moretti
180a87e0c3 Create dunstctl tests 2020-10-05 20:10:01 -03:00
tobi-wan-kenobi
1751e4afa2
Merge pull request #718 from joshbarrass/spotify
Add "concise controls" to Spotify module
2020-10-04 16:54:42 +02:00
Joshua Barrass
fbe5764313
Add "concise controls" to spotify module 2020-10-04 15:41:15 +01:00
Joshua Barrass
823a57d261
Add org-mode TODO module 2020-10-04 14:44:27 +01:00
Thaynã Moretti
4df495601a Create symbolic links 2020-10-01 19:10:46 -03:00
tobi-wan-kenobi
8a4fc40947 Revert "[modules/spotify] properly initialize widgets"
This reverts commit aa6238a5c6.
2020-09-15 20:27:50 +02:00
Tobias Witek
aa6238a5c6 [modules/spotify] properly initialize widgets
see #702
2020-09-13 11:19:05 +02:00
Tobias Witek
fcbb89db90 [modules/spotify] make global dbus object
instead of creating a new dbus instance during each update interval,
reuse one dbus instance.

see #702
2020-09-13 11:17:21 +02:00
tobi-wan-kenobi
070fe865dd [modules/spotify] update in the background
to rule out issues in the dbus communication, update the spotify module
in the background.

see #702
2020-09-09 14:15:16 +02:00
tobi-wan-kenobi
b79c19b616 [modules/spotify] fix song not shown issue
the previous commit accidentially removed the song display. re-add that
and also add a bit of logging for troubleshooting.
2020-09-06 14:27:17 +02:00
tobi-wan-kenobi
965e7b2453 [modules/spotify] improve update mechanism
instead of updating the widget list during each update, create the list
of widgets during initialization, and later only update the widget
states.

see #702
2020-09-06 14:00:32 +02:00
tobi-wan-kenobi
7a4d4d5ab6
Merge pull request #706 from cristianmiranda/thunderbird
[modules/thunderbird]: Thunderbird's unread email counts by inbox
2020-09-06 07:13:46 +02:00
Cristian Miranda
100568206a [modules/thunderbird]: Thunderbird's unread email counts by inbox 2020-09-05 19:22:40 -03:00
Cristian Miranda
d568ef3622 [modules/dunstctl]: Toggle dunst v1.5.0+ notifications using dunstctl 2020-09-04 17:30:46 -03:00
Thaynã Moretti
6c0930cfae Add load module tests 2020-09-02 14:33:07 -03:00
Thaynã Moretti
032a651efa Improve network traffic module tests 2020-09-01 22:12:54 -03:00
Thaynã Moretti
49de0e520b Reduce code cognitive complexity 2020-08-30 12:37:58 -03:00
Thaynã Moretti
6f6f3cedd9 Improve meminfo parse logic 2020-08-30 12:28:48 -03:00
Thaynã Moretti
820598b1b8 Fix memory module tests 2020-08-30 12:11:48 -03:00
Bernhard B
c339a16365 small improvements in octoprint plugin
* octoprint sometimes returns additional information a the 3d printer is offline.
  so, it's better to check if the octoprint job state starts with "Offline".

* in case the returned job state is really long, truncate it.
2020-08-30 09:03:34 +02:00
Thaynã Moretti
dff187252a Fix RECV/SENT start values 2020-08-29 21:09:59 -03:00
tobi-wan-kenobi
905f71fa52 [core] fix broken "sparse" updates
c77f3aa accidentially broke "sparse" updates (i.e. updates that do not
trigger during each update interval).

Introduce a new update parameter, "force", to model the use case "update
everything on SIGUSR1".

fixes #692
2020-08-28 17:14:05 +02:00
tobi-wan-kenobi
362d1a5f6f [modules/contrib/dnf] fix undefined "widget" error
while refactoring, i overlooked that the variable "widget" doesn't exist
anymore.

see #692
2020-08-28 14:03:34 +02:00
tobi-wan-kenobi
db41792afb [dnf] simplify threading
use framework threading to simplify the dnf module

see #692
2020-08-27 20:07:10 +02:00
Cristian Miranda
9b5477675c [github]: Remove error printing if exception caught
I experienced that when an exception is caught and we print it
I get an ugly error on the whole bar making it unusable. This
fixes that problem.
2020-08-20 10:47:56 -03:00
tobi-wan-kenobi
738a846853 Merge branch 'master' into main 2020-08-11 20:54:23 +02:00
tobi-wan-kenobi
d759ed5051
Merge pull request #690 from joshbarrass/deadbeef-patch
Quotes around the deadbeef string to prevent parsing errors by deadbeef
2020-08-11 06:16:58 +02:00
Joshua Barrass
9e04e0a27b
Quotes around the deadbeef string to prevent parsing errors by deadbeef 2020-08-11 00:54:35 +01:00
Joshua Barrass
c77f3aa3bc
Force update using USR1 signal 2020-08-11 00:45:13 +01:00
Alexander Scheid-Rehder
5959d73cde Fix wrong usage of asbool in layout-xkb 2020-08-06 14:49:41 +02:00
Andreas Lindahl Flåten
5de616ff89 [modules/contrib/stock] handle urllib request exception
Handle exception that is raised when e.g. your network connection is
down.
2020-07-31 15:26:49 +02:00
Naya Verdier
06d6739da4
[xrandr] Add autotoggle behavior to xrandr
Also makes i3 subscription events and widget click live-update
2020-07-26 13:21:49 -07:00
Naya Verdier
b1adc382aa
[vault] Turns out, <Leave> is triggered when going into a submenu 2020-07-25 12:38:28 -07:00
Naya Verdier
647ad44b31
ModuleNotFoundError incompatible with python 3.4, 3.5 2020-07-25 11:50:13 -07:00
Naya Verdier
22d85d6d1d
[xrandr-test] Catch all exceptions if i3 Subscription fails 2020-07-25 11:33:42 -07:00