buzz / volctl Goto Github PK
View Code? Open in Web Editor NEWPer-application volume control and OSD for Linux desktops.
Home Page: https://buzz.github.io/volctl/
License: GNU General Public License v2.0
Per-application volume control and OSD for Linux desktops.
Home Page: https://buzz.github.io/volctl/
License: GNU General Public License v2.0
Distro : Deepin Linux(Debian based)
Pavucontrol installed
Installation error ...
$ sudo ./setup.py install
[sudo] password for muz:
Verification successful
Traceback (most recent call last):
File "./setup.py", line 5, in <module>
from setuptools import find_packages, setup
ImportError: No module named setuptools
Hi.
Any chance the slider popup will open in the direction with the most place available?
Currently it is placed under the icon which is kinda hindering when panels are placed on the bottom of the screen.
sudo ./setup.py install
/usr/bin/env: ‘python’: No such file or directory
I'm loving the app. but is there a way to make the OSD smaller? Thanks !
Volume window fails to open with this error when left-clicking on the tray icon:
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/volctl-0.9.0-py3.9.egg/volctl/status_icon.py", line 279, in _cb_gtksi_button_press
File "/usr/lib/python3.9/site-packages/volctl-0.9.0-py3.9.egg/volctl/status_icon.py", line 185, in _cb_activate
File "/usr/lib/python3.9/site-packages/volctl-0.9.0-py3.9.egg/volctl/app.py", line 214, in show_slider
File "/usr/lib/python3.9/site-packages/volctl-0.9.0-py3.9.egg/volctl/slider_win.py", line 38, in __init__
File "/usr/lib/python3.9/site-packages/volctl-0.9.0-py3.9.egg/volctl/slider_win.py", line 115, in create_widgets
File "/usr/lib/python3.9/site-packages/volctl-0.9.0-py3.9.egg/volctl/slider_win.py", line 143, in recreate_sliders
KeyError: 'alsa.card_name'
I am using up-to-date Manjaro MATE with pipewire.
I have an IRC client (HexChat) that only appears as playing audio for about 1s, while the notification sound plays. This makes volctl update twice, stealing focus. It would be useful to be able to disable the popup-on-volume-change behavior, or prevent it from popping up when applications are added/removed.
Using git commit ffceaa7 (ie. latest when reported), the volume sliders do not appear with my system. The following error is reported on the console:
File "/usr/local/lib/python3.8/dist-packages/volctl-0.9.0-py3.8.egg/volctl/slider_win.py", line 115, in create_widgets
File "/usr/local/lib/python3.8/dist-packages/volctl-0.9.0-py3.8.egg/volctl/slider_win.py", line 143, in recreate_sliders
KeyError: 'alsa.card_name'
pacmd list-sinks
reports that there are 2 sinks. One of them is a filter, not an ALSA sound device, so there is no propery 'alsa.card_name'; it has only 3 properies
properties:
device.class = "filter"
device.description = "Simultaneous output to Built-in Audio Analog Stereo"
device.icon_name = "audio-card"
I made a work-around by catching the KeyError exception where it happens, and replacing the name with a dummy. But I think it would be better to filter the list of sinks (slider_win.py, line 133) to show only real output devices, perhaps using sink.proplist['device.class'] == 'sound'
or some other criterion.
Note that when you use volctl to adjust the level of this faulty sink 'Simultaneous output...', the corresponding slider in pavucontrol does NOT change, and vice versa. With the real ALSA device, the pavucontrol and volctl sliders stay in sync.
There seems to be something special about this sink: either this specific sink, or perhaps the entire 'filter' class of sinks.
Showing only ALSA cards is a quick fix.
Hi, @buzz
I just updated volctl on the Arch via AUR. And I have a problem when running volctl after updated, which displays the following message:
GLib-GIO-ERROR **: Settings schema 'apps.volctl' is not installed
What can I do to volctl can run normally as before the update?
Please help, thanks.
It would be very helpful to have the possibility of assigning keyboard keys to volume control, liking increasing and decreasing the volume, and muting the sound.
The big issue is with the slider, sometimes when I open it, it opens in the top left corner and it does not disappear after timeout. However; this does not always happen, sometimes it works.
@justaquestion: I saw this happening very rarely. Seems to be some sort of race condition between tray icon and slider window creation. If you can find a way to reproduce this issue, I'd be very happy.
If I had several sinks, for example, speakers and headphones, I can't set default sink, so I need to use other application for this. Maybe need to add some checkbox for this.
fails to start with the error importlib.metadata.PackageNotFoundError: volctl
Since the new AUR version update to 0.9.0-2, I see a considerable increase in CPU load. 22-23% in htop, while idling. In previous versions I would not see anything, CPU load close to 0% for volctl.
If there is any further information that would help tracking down the source of that, please just tell me and I will try to provide that.
Installed from AUR package via yay.
aur/volctl 0.7.1-1 (+10 0.06) (Installed)
Per-application volume control for GNU/Linux desktops
I have enabled OSD as seen in the preferences, however the OSD will not completely disappear after the timeout. The volume indicator fades out, but it leaves behind the black background (see screenshots).
Changing Volume, OSD shows up as expected
After timeout, volume indicator fades out, but leaves behind background
Please let me know if I can provide any other information to help debug and resolve.
@ScuttleSE #7 (comment)
I'm on a three monitor setup, and the slider-popups opens up almost in the middle of my middle monitor instead of on top of the tray icon, which is also on the middle screen.My guess is that the program gets the resolution of my left or right monitor and uses that for the positioning instead of the middle one.
Hi,
I'm running Arch Linux 5.7.12-arch1-1 with volctl 0.7.2. When I'm launching volctl, I got this:
https://user-images.githubusercontent.com/22876640/89700561-12165380-d8fd-11ea-940f-2bb565e28b58.png
Until I change the volume, which then disappears. Would it be possible to not show this blank square at the start of volctl?
Thanks
I installed volctl and statusnotifier but it still seems to error.
volctl
Traceback (most recent call last):
File "/usr/local/bin/volctl", line 33, in
sys.exit(load_entry_point('volctl==0.8.2', 'gui_scripts', 'volctl')())
File "/usr/local/bin/volctl", line 25, in importlib_load_entry_point
return next(matches).load()
File "/usr/lib/python3.9/importlib/metadata.py", line 77, in load
module = import_module(match.group('module'))
File "/usr/lib/python3.9/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 664, in _load_unlocked
File "", line 627, in _load_backward_compatible
File "", line 259, in load_module
File "/usr/local/lib/python3.9/dist-packages/volctl-0.8.2-py3.9.egg/volctl/main.py", line 12, in
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 664, in _load_unlocked
File "", line 627, in _load_backward_compatible
File "", line 259, in load_module
File "/usr/local/lib/python3.9/dist-packages/volctl-0.8.2-py3.9.egg/volctl/app.py", line 15, in
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 664, in _load_unlocked
File "", line 627, in _load_backward_compatible
File "", line 259, in load_module
File "/usr/local/lib/python3.9/dist-packages/volctl-0.8.2-py3.9.egg/volctl/status_icon.py", line 6, in
File "/usr/lib/python3/dist-packages/gi/init.py", line 126, in require_version
raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace StatusNotifier not available
statusnotifier version 1.0.0
Build information:
source code location : .
prefix : /usr/local
compiler warning flags : -Wall
build html documentation : no
example : no
dbusmenu : no
introspection : auto
Install paths:
binaries : /usr/local/bin
libraries : /usr/local/lib
documentation : /usr/local/share/doc/statusnotifier
man pages : /usr/local/share/man
I've switched to PipeWire as my audio server, and it's been working perfectly except for that volctl doesn't show applications, only devices. PipeWire is meant to be a drop-in pulseaudio replacement, and should work with no modification, so this is strange.
I've had a look at the python code but the issue seems to be in the C wrapper which I don't even know where to start with.
This could be a PipeWire issue and if you don't want to support it I would completely understand, but if someone with knowledge about the C wrapper could take a look it would be appreciated.
Thanks for this application, there's nothing else that's even close.
First, I just came across volctl, thank you for this programme.
The Mute options give slightly unexpected results in that if I use the Mute button on the pop up menu, volctl mutes the default stream and turn the systray icon to "muted". A left button click on the icon will show the volume controls for all the streams, with the default stream muted while any other streams could be either open or muted.
This means that I am now listening to the radio over the internet, with the volume icon showing as muted!
I can mute or unmute each stream from the volume controls, so I wonder if the Mute button is actually necessary.
My suggestion would be:
Of course the volume controls still allow indivual streams to be muted or unmuted.
I mentioned in #7, so just for documentary purposes.
Picture although not really that informative. Stuff outside of screen is.. well.. not captured :D
Right side is were it vanishes offscreen.
Dunno currently how to avoid it at best
I'm really excited to get this working as it's just the tool I'm looking for, without having to write my own.
I ran into some issues during install, specifically with dependencies I didn't know I needed, such as:
python-dev
libcairo2-dev
I also had to specify a version of pycairo in the setup.py file, because the latest pycairo doesn't support Python2 anymore.
I used version 1.18.1 of pycairo.
Now on install, I get these errors:
running install
running bdist_egg
running egg_info
writing requirements to volctl.egg-info/requires.txt
writing volctl.egg-info/PKG-INFO
writing top-level names to volctl.egg-info/top_level.txt
writing dependency_links to volctl.egg-info/dependency_links.txt
writing entry points to volctl.egg-info/entry_points.txt
reading manifest file 'volctl.egg-info/SOURCES.txt'
writing manifest file 'volctl.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/status_icon.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/__init__.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/slider_win.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/xwrappers.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/app.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/__main__.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/osd.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/pulsemgr.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/prefs.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/meta.py -> build/bdist.linux-x86_64/egg/volctl
byte-compiling build/bdist.linux-x86_64/egg/volctl/status_icon.py to status_icon.pyc
File "build/bdist.linux-x86_64/egg/volctl/status_icon.py", line 76
getattr(self, f"_create_{self._current_impl}")()
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/volctl/__init__.py to __init__.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/slider_win.py to slider_win.pyc
File "build/bdist.linux-x86_64/egg/volctl/slider_win.py", line 218
name = f"<b>{proplist['application.name']}</b>: {proplist['media.name']}"
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/volctl/xwrappers.py to xwrappers.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/app.py to app.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/__main__.py to __main__.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/osd.py to osd.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/pulsemgr.py to pulsemgr.pyc
File "build/bdist.linux-x86_64/egg/volctl/pulsemgr.py", line 176
obj_list = getattr(pulse, f"{fac}_list")()
^
SyntaxError: invalid syntax
byte-compiling build/bdist.linux-x86_64/egg/volctl/prefs.py to prefs.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/meta.py to meta.pyc
installing package data to build/bdist.linux-x86_64/egg
running install_data
creating build/bdist.linux-x86_64/egg/share
creating build/bdist.linux-x86_64/egg/share/applications
copying data/volctl.desktop -> build/bdist.linux-x86_64/egg/share/applications
creating build/bdist.linux-x86_64/egg/share/glib-2.0
creating build/bdist.linux-x86_64/egg/share/glib-2.0/schemas
copying data/apps.volctl.gschema.xml -> build/bdist.linux-x86_64/egg/share/glib-2.0/schemas
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist/volctl-0.8.2-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing volctl-0.8.2-py2.7.egg
Removing /usr/local/lib/python2.7/dist-packages/volctl-0.8.2-py2.7.egg
Copying volctl-0.8.2-py2.7.egg to /usr/local/lib/python2.7/dist-packages
volctl 0.8.2 is already the active version in easy-install.pth
Installing volctl script to /usr/local/bin
Installed /usr/local/lib/python2.7/dist-packages/volctl-0.8.2-py2.7.egg
Processing dependencies for volctl==0.8.2
Searching for pycairo==1.18.1
Best match: pycairo 1.18.1
Processing pycairo-1.18.1-py2.7-linux-x86_64.egg
pycairo 1.18.1 is already the active version in easy-install.pth
Using /usr/local/lib/python2.7/dist-packages/pycairo-1.18.1-py2.7-linux-x86_64.egg
Searching for pulsectl==21.3.4
Best match: pulsectl 21.3.4
Processing pulsectl-21.3.4-py2.7.egg
pulsectl 21.3.4 is already the active version in easy-install.pth
Using /usr/local/lib/python2.7/dist-packages/pulsectl-21.3.4-py2.7.egg
Searching for click==7.1.1
Best match: click 7.1.1
Processing click-7.1.1-py2.7.egg
click 7.1.1 is already the active version in easy-install.pth
Using /usr/local/lib/python2.7/dist-packages/click-7.1.1-py2.7.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py2.7-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth
Using /usr/local/lib/python2.7/dist-packages/PyYAML-5.4.1-py2.7-linux-x86_64.egg
Searching for PyGObject==3.36.0
Best match: PyGObject 3.36.0
Adding PyGObject 3.36.0 to easy-install.pth file
Using /usr/lib/python2.7/dist-packages
Searching for setuptools==44.0.0
Best match: setuptools 44.0.0
Adding setuptools 44.0.0 to easy-install.pth file
Installing easy_install script to /usr/local/bin
Using /usr/lib/python2.7/dist-packages
Finished processing dependencies for volctl==0.8.2
I didn't actually notice the errors the first time I tried installing after getting dependencies set up correctly, so then when I try to run volctl, I get this error, similar to the syntax errors on install:
Traceback (most recent call last):
File "/usr/local/bin/volctl", line 11, in <module>
load_entry_point('volctl==0.8.2', 'gui_scripts', 'volctl')()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 489, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2852, in load_entry_point
return ep.load()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2443, in load
return self.resolve()
File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2449, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "build/bdist.linux-x86_64/egg/volctl/__main__.py", line 12, in <module>
File "build/bdist.linux-x86_64/egg/volctl/app.py", line 15, in <module>
File "/usr/local/lib/python2.7/dist-packages/volctl-0.8.2-py2.7.egg/volctl/status_icon.py", line 76
getattr(self, f"_create_{self._current_impl}")()
^
SyntaxError: invalid syntax
Would love any help!
Running ubuntu 20.04
Thanks! :)
As the title says
If i have an instance of volctl running i would like to have volctl not run a second time. I have volctl in the startup script of my WM and reloading the config usually starts volctl a second time.
Thanks for this application.
Is it possible to add an option to volctl to launch it as a detached & temporary instance without tray icon?
I'm using Polybar with the "Pulseaudio" module. There is a tray area, but I would like to have as few icons as possible there.
I would like volctl to run from the command line at the cursor position and close when clicked outside. For example, with an option --oneshot or --detached.
Then we could incorporate it in Polybar as a module or as an action of the Pulseaudio module.
For reference, that is how I use Gsimplecal with the Polybar "Date" module as an action.
Hello, very nice small python app!
Can you just improve possibility to show OSD in the center, not in the corner?
_move_to_corner, _move_to_center as additional parameter in the settings?
Thanks!
volctl often does not start with my window manager at startup and I need to launch it, either through CLI or rofi. The error that I get at startup is
PulseAudio connected
Warning: Could not embed Gtk.StatusIcon.
Fatal error: Could not create a status icon. Are you sure you have a working notification area?
I'm launching volctl in my .xprofile
which is then executed by my window manager with volctl &
.
I ended up "fixing" the issue by increasing MAX_EMBED_ATTEMPTS
to 100. Before making this change I tried to reinstall the package through AUR multiple times with no difference.
SystemInfo:
Could you provide any guidance on how I should debug this further?
I would appreciate a complete list of the necessary dependencies to get your pythonscript running.
Looks like https://github.com/Valodim/python-pulseaudio and python2-gobject is required.
Seems like the server providing the libpulseaudio package in the venv script is down.
volctl looks like a promising project!
I am currently using volctl with pipewire and it works fine. We should remove pulse as a dependency and leave it to the user to decide what sound server they utilise volctl with.
Allow controlling the volume of inputs like a microphone using pulse.source_list()
and pulse.source_output_list()
I've been looking forever for a tray icon like this, so thank you! I think the only thing it's missing for me is the ability to control the volume of my microphone, both as a master volume and per app.
Not really sure how to describe this or where to look for more information.
Environment: Arch Linux
Window Manager: bspwm
System tray: polybar
Installed via AUR
can see in the video that on launch, the tray area does update, however no icon is displayed and no interface appears to be present.
There's some error output from the command, but I've not seen much online and I don't think anything relating to volctl directly.
Any ideas on where to begin looking or what the message even means?
Hi there, trying to use this on Arch with xfce. When starting volctl I get the following which just keeps repeating. There is no icon/applet in my system tray. Not sure if this is an error?
~
02:15:55 AM >> $ volctl
PulseAudio: Connection ready
Traceback (most recent call last):
File "_ctypes/callbacks.c", line 232, in 'calling callback function'
File "/usr/lib/python3.7/site-packages/volctl/pulseaudio.py", line 203, in _pa_sink_info_cb
self._dict_from_proplist(struct.contents.proplist))
File "/usr/lib/python3.7/site-packages/volctl/pulseaudio.py", line 312, in _on_new_pa_sink
self._pa_sinks[index].update(struct)
File "/usr/lib/python3.7/site-packages/volctl/pulseaudio.py", line 362, in update
if self == self.pa_mgr.get_first_sink():
File "/usr/lib/python3.7/site-packages/volctl/pulseaudio.py", line 269, in get_first_sink
return self._pa_sinks[0]
KeyError: 0
Hitting ctrl+c also gives:
^CTraceback (most recent call last):
File "/usr/bin/volctl", line 11, in <module>
load_entry_point('volctl==0.6.1', 'gui_scripts', 'volctl')()
File "/usr/lib/python3.7/site-packages/volctl/__main__.py", line 11, in main
Gtk.main()
File "/usr/lib/python3.7/site-packages/gi/overrides/Gtk.py", line 1641, in main
return _Gtk_main(*args, **kwargs)
File "/usr/lib/python3.7/contextlib.py", line 119, in __exit__
next(self.gen)
File "/usr/lib/python3.7/site-packages/gi/_ossighelper.py", line 251, in register_sigint_fallback
signal.default_int_handler(signal.SIGINT, None)
KeyboardInterrupt
I initially installed via pakku but using makepkg results in the same.
Probably prudent to link to the AUR package.
https://aur.archlinux.org/packages/volctl/
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=volctl
I also tried manually doing
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
since it was missing from the PKGBUILD but that results in the same.
Add a radio checkbox group to settings window that configures the status icon library to use:
Gtk.StatusIcon
.Gtk.StatusIcon
statusnotifier
)Write some documentation on SNI vs. volctl.
i am trying to install this app in elementary os. when i run
glib-compile-schemas /usr/share/glib-2.0/schemas/
it gives an error
sudo glib-compile-schemas /usr/share/glib-2.0/schemas No such key 'button-layout' in schema 'org.gnome.mutter:Pantheon' as specified in override file '/usr/share/glib-2.0/schemas/20_elementary.pantheon.wm.gschema.override'; ignoring override for this key. No such key 'enable-animations' in schema 'org.gnome.mutter:Pantheon' as specified in override file '/usr/share/glib-2.0/schemas/20_elementary.pantheon.wm.gschema.override'; ignoring override for this key.
Small feature request.
Currently it is needed to explicitly click again onto the panel icon to close the sliders.
Coming from volumeicon, where the slider is closed after a short while after the mouse is moved away from it, I would like to see it such a behaviour included with volctl if feasible.
I imagine mute/solo buttons per application could be quite useful.
Do we need this?
Keep only tray icon functionality in tray.py
. App logic should live in separate app.py
.
This will be a good addition
I just installed this from the aur & I'm a bit disappointed that it doesn't have a prepackaged .service file. This program is exactly what I searched for, but this is a bit of a turndown.
I installed it like it is described, but I don't see a tray icon even after restarting.
But I didn't got an error or something, so is there a way to fix this maybe?
I just switched from xorg (qtile) to wayland (sway) and volctl doesn't work. That's kinda sad because I loved it in my previous configuration.
Anyway, currently the icon just doesn't show up. When the volume is changed, then a new floating window pops up with 0% volume (in the exact center of the screen) and volctl prints this to console:
(volctl:260504): Gtk-CRITICAL **: 10:07:48.702: gtk_widget_get_scale_factor: assertion 'GTK_IS_WIDGET (widget)' failed
Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/volctl/app.py", line 141, in update_values
self._create_osd()
File "/usr/lib/python3.9/site-packages/volctl/app.py", line 94, in _create_osd
self._osd = VolumeOverlay(self)
File "/usr/lib/python3.9/site-packages/volctl/osd.py", line 63, in __init__
self._make_window_clicktrough()
File "/usr/lib/python3.9/site-packages/volctl/osd.py", line 177, in _make_window_clicktrough
win = X.XID(self.get_window().get_xid())
AttributeError: 'GdkWaylandWindow' object has no attribute 'get_xid'
The windows stack on top of each other, have window borders and don't close automatically.
I hope it's possible to implement basic wayland support.
Specifically, the files apps.volctl.gschema.xml
and volctl.desktop
in the data_files
in setup.py are not copied to their correct locations during setup. This results in (volctl:10047): GLib-GIO-ERROR **: 21:25:05.356: Settings schema 'apps.volctl' is not installed
. I fixed the issue by copying the files manually.
Since the setuptools docs say that data_files
are relative to either site.USER_BASE
or sys.prefix
, I checked these values in a python interpreter. They are /home/[username]/.local
and /usr
respectively. I checked the directories relative to both of these locations and the files were not copied. I also checked the standard GSettings schema directories listed in the XDG_DATA_DIRS
environment variable and did not find the schema file in them.
Environment: Debian Buster 10.2.0, XFCE 4.12, Python 2.7.16, setuptools 40.8.0 (installed from the python-setuptools 40.8.0-1 debian package).
Installation log:
$ sudo ./setup.py install
running install
running bdist_egg
running egg_info
writing volctl.egg-info/PKG-INFO
writing top-level names to volctl.egg-info/top_level.txt
writing dependency_links to volctl.egg-info/dependency_links.txt
writing entry points to volctl.egg-info/entry_points.txt
reading manifest file 'volctl.egg-info/SOURCES.txt'
writing manifest file 'volctl.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/volctl
copying volctl/pulseaudio.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/prefs.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/app.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/meta.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/tray.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/__main__.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/lib_pulseaudio.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/slider_win.py -> build/lib.linux-x86_64-2.7/volctl
copying volctl/__init__.py -> build/lib.linux-x86_64-2.7/volctl
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/pulseaudio.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/prefs.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/app.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/meta.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/tray.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/__main__.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/lib_pulseaudio.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/slider_win.py -> build/bdist.linux-x86_64/egg/volctl
copying build/lib.linux-x86_64-2.7/volctl/__init__.py -> build/bdist.linux-x86_64/egg/volctl
byte-compiling build/bdist.linux-x86_64/egg/volctl/pulseaudio.py to pulseaudio.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/prefs.py to prefs.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/app.py to app.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/meta.py to meta.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/tray.py to tray.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/__main__.py to __main__.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/lib_pulseaudio.py to lib_pulseaudio.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/slider_win.py to slider_win.pyc
byte-compiling build/bdist.linux-x86_64/egg/volctl/__init__.py to __init__.pyc
installing package data to build/bdist.linux-x86_64/egg
running install_data
creating build/bdist.linux-x86_64/egg/share
creating build/bdist.linux-x86_64/egg/share/applications
copying data/volctl.desktop -> build/bdist.linux-x86_64/egg/share/applications
creating build/bdist.linux-x86_64/egg/share/glib-2.0
creating build/bdist.linux-x86_64/egg/share/glib-2.0/schemas
copying data/apps.volctl.gschema.xml -> build/bdist.linux-x86_64/egg/share/glib-2.0/schemas
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying volctl.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist/volctl-0.6.2-py2.7.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing volctl-0.6.2-py2.7.egg
Copying volctl-0.6.2-py2.7.egg to /usr/local/lib/python2.7/dist-packages
Adding volctl 0.6.2 to easy-install.pth file
Installing volctl script to /usr/local/bin
Installed /usr/local/lib/python2.7/dist-packages/volctl-0.6.2-py2.7.egg
Processing dependencies for volctl==0.6.2
Finished processing dependencies for volctl==0.6.2
$ sudo update-desktop-database
$ sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
$ volctl
(volctl:10047): GLib-GIO-ERROR **: 21:25:05.356: Settings schema 'apps.volctl' is not installed
Trace/breakpoint trap
This setuptools issue might be related since I noticed that it created a .egg file in /usr/local/lib/python2.7/dist-packages
. I'm new to Linux so I might be missing something obvious.
Implement an on-screen volume indicator
A minimal configuration dialog with these options:
/usr/bin/pavucontrol
is hard-coded)pylint/flake8?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.