blueman-project / blueman Goto Github PK
View Code? Open in Web Editor NEWBlueman is a GTK+ Bluetooth Manager
License: GNU General Public License v3.0
Blueman is a GTK+ Bluetooth Manager
License: GNU General Public License v3.0
Original post: namili/blueman/issues/2
File name: thunar-sendto-blueman.desktop
.
Directory path: /usr/share/Thunar/sendto/
.
[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
Name=Bluetooth Device
Icon=blueman
Exec=blueman-sendto %f
Maybe %F
(multiple file selection) would be better.
Referred icons blueman-tray and blueman-tray-disabled are not available.
blueman-tray should be replaced by just blueman.
blueman-tray-disabled needs some new icon.
To reproduce:
(1) I run './autogen.sh'
(2) then run 'make'.
'make' emits the following errosr:
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/usr/include/startup-notification-1.0 -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libdrm -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pygtk-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/python3.3 -I/usr/include/python3.3 -DSN_API_NOT_YET_FROZEN -g -O2 -MT _blueman_la-_blueman.lo -MD -MP -MF .deps/_blueman_la-_blueman.Tpo -c _blueman.c -fPIC -DPIC -o .libs/_blueman_la-_blueman.o
_blueman.c:89:33: error: parameter 1 has incomplete type
_blueman.c: In function 'DL_EXPORT':
_blueman.c:89:52: error: expected declaration specifiers before '*' token
_blueman.c:90:13: error: storage class specified for parameter '__pyx_f_8_blueman_sn_error_trap_push'
_blueman.c:91:13: error: storage class specified for parameter '__pyx_f_8_blueman_sn_error_trap_pop'
_blueman.c:93:13: error: storage class specified for parameter '__pyx_k1'
_blueman.c:93:1: error: parameter '__pyx_k1' is initialized
_blueman.c:94:13: error: storage class specified for parameter '__pyx_k2'
_blueman.c:94:1: error: parameter '__pyx_k2' is initialized
_blueman.c:95:13: error: storage class specified for parameter '__pyx_k3'
_blueman.c:95:1: error: parameter '__pyx_k3' is initialized
_blueman.c:96:13: error: storage class specified for parameter '__pyx_k4'
_blueman.c:96:1: error: parameter '__pyx_k4' is initialized
_blueman.c:97:13: error: storage class specified for parameter '__pyx_k5'
_blueman.c:97:1: error: parameter '__pyx_k5' is initialized
_blueman.c:98:13: error: storage class specified for parameter '__pyx_k6'
_blueman.c:98:1: error: parameter '__pyx_k6' is initialized
_blueman.c:99:13: error: storage class specified for parameter '__pyx_k7'
_blueman.c:99:1: error: parameter '__pyx_k7' is initialized
_blueman.c:100:13: error: storage class specified for parameter '__pyx_k8'
_blueman.c:100:1: error: parameter '__pyx_k8' is initialized
_blueman.c:101:13: error: storage class specified for parameter '__pyx_k9'
_blueman.c:101:1: error: parameter '__pyx_k9' is initialized
_blueman.c:102:13: error: storage class specified for parameter '__pyx_k10'
_blueman.c:102:1: error: parameter '__pyx_k10' is initialized
_blueman.c:103:13: error: storage class specified for parameter '__pyx_k11'
_blueman.c:103:1: error: parameter '__pyx_k11' is initialized
_blueman.c:104:13: error: storage class specified for parameter '__pyx_k12'
_blueman.c:104:1: error: parameter '__pyx_k12' is initialized
_blueman.c:105:13: error: storage class specified for parameter '__pyx_k13'
_blueman.c:105:1: error: parameter '__pyx_k13' is initialized
_blueman.c:106:13: error: storage class specified for parameter '__pyx_k14'
_blueman.c:106:1: error: parameter '__pyx_k14' is initialized
_blueman.c:107:13: error: storage class specified for parameter '__pyx_k15'
_blueman.c:107:1: error: parameter '__pyx_k15' is initialized
_blueman.c:108:13: error: storage class specified for parameter '__pyx_k16'
_blueman.c:108:1: error: parameter '__pyx_k16' is initialized
_blueman.c:109:13: error: storage class specified for parameter '__pyx_k17'
_blueman.c:109:1: error: parameter '__pyx_k17' is initialized
_blueman.c:110:13: error: storage class specified for parameter '__pyx_k18'
_blueman.c:110:1: error: parameter '__pyx_k18' is initialized
_blueman.c:111:13: error: storage class specified for parameter '__pyx_k19'
_blueman.c:111:1: error: parameter '__pyx_k19' is initialized
_blueman.c:112:13: error: storage class specified for parameter '__pyx_k20'
_blueman.c:112:1: error: parameter '__pyx_k20' is initialized
_blueman.c:113:13: error: storage class specified for parameter '__pyx_k21'
_blueman.c:113:1: error: parameter '__pyx_k21' is initialized
_blueman.c:114:13: error: storage class specified for parameter '__pyx_k22'
_blueman.c:114:1: error: parameter '__pyx_k22' is initialized
_blueman.c:115:13: error: storage class specified for parameter '__pyx_k23'
_blueman.c:115:1: error: parameter '__pyx_k23' is initialized
_blueman.c:116:13: error: storage class specified for parameter '__pyx_k24'
_blueman.c:116:1: error: parameter '__pyx_k24' is initialized
_blueman.c:117:13: error: storage class specified for parameter '__pyx_k25'
_blueman.c:117:1: error: parameter '__pyx_k25' is initialized
_blueman.c:118:13: error: storage class specified for parameter '__pyx_k26'
_blueman.c:118:1: error: parameter '__pyx_k26' is initialized
_blueman.c:119:13: error: storage class specified for parameter '__pyx_k27'
_blueman.c:119:1: error: parameter '__pyx_k27' is initialized
_blueman.c:120:13: error: storage class specified for parameter '__pyx_k28'
_blueman.c:120:1: error: parameter '__pyx_k28' is initialized
_blueman.c:121:13: error: storage class specified for parameter '__pyx_k29'
_blueman.c:121:1: error: parameter '__pyx_k29' is initialized
_blueman.c:122:13: error: storage class specified for parameter '__pyx_k30'
_blueman.c:122:1: error: parameter '__pyx_k30' is initialized
_blueman.c:123:13: error: storage class specified for parameter '__pyx_k31'
_blueman.c:123:1: error: parameter '__pyx_k31' is initialized
_blueman.c:124:13: error: storage class specified for parameter '__pyx_k32'
_blueman.c:124:1: error: parameter '__pyx_k32' is initialized
_blueman.c:125:13: error: storage class specified for parameter '__pyx_k33'
_blueman.c:125:1: error: parameter '__pyx_k33' is initialized
_blueman.c:126:13: error: storage class specified for parameter '__pyx_k34'
_blueman.c:126:1: error: parameter '__pyx_k34' is initialized
_blueman.c:127:13: error: storage class specified for parameter '__pyx_k35'
_blueman.c:127:1: error: parameter '__pyx_k35' is initialized
_blueman.c:128:13: error: storage class specified for parameter '__pyx_k36'
_blueman.c:128:1: error: parameter '__pyx_k36' is initialized
_blueman.c:129:13: error: storage class specified for parameter '__pyx_k37'
_blueman.c:129:1: error: parameter '__pyx_k37' is initialized
_blueman.c:130:13: error: storage class specified for parameter '__pyx_k38'
_blueman.c:130:1: error: parameter '__pyx_k38' is initialized
_blueman.c:131:13: error: storage class specified for parameter '__pyx_k39'
_blueman.c:131:1: error: parameter '__pyx_k39' is initialized
_blueman.c:132:13: error: storage class specified for parameter '__pyx_k40'
_blueman.c:132:1: error: parameter '__pyx_k40' is initialized
_blueman.c:133:13: error: storage class specified for parameter '__pyx_k41'
_blueman.c:133:1: error: parameter '__pyx_k41' is initialized
_blueman.c:134:13: error: storage class specified for parameter '__pyx_k42'
_blueman.c:134:1: error: parameter '__pyx_k42' is initialized
_blueman.c:135:13: error: storage class specified for parameter '__pyx_k43'
_blueman.c:135:1: error: parameter '__pyx_k43' is initialized
_blueman.c:136:13: error: storage class specified for parameter '__pyx_k44'
_blueman.c:136:1: error: parameter '__pyx_k44' is initialized
_blueman.c:137:13: error: storage class specified for parameter '__pyx_k45'
_blueman.c:137:1: error: parameter '__pyx_k45' is initialized
_blueman.c:138:13: error: storage class specified for parameter '__pyx_k46'
_blueman.c:138:1: error: parameter '__pyx_k46' is initialized
_blueman.c:139:13: error: storage class specified for parameter '__pyx_k47'
_blueman.c:139:1: error: parameter '__pyx_k47' is initialized
_blueman.c:140:13: error: storage class specified for parameter '__pyx_k48'
_blueman.c:140:1: error: parameter '__pyx_k48' is initialized
_blueman.c:141:13: error: storage class specified for parameter '__pyx_k49'
_blueman.c:141:1: error: parameter '__pyx_k49' is initialized
_blueman.c:142:13: error: storage class specified for parameter '__pyx_k50'
_blueman.c:142:1: error: parameter '__pyx_k50' is initialized
_blueman.c:143:13: error: storage class specified for parameter '__pyx_k51'
_blueman.c:143:1: error: parameter '__pyx_k51' is initialized
_blueman.c:144:13: error: storage class specified for parameter '__pyx_k52'
_blueman.c:144:1: error: parameter '__pyx_k52' is initialized
_blueman.c:145:13: error: storage class specified for parameter '__pyx_k53'
_blueman.c:145:1: error: parameter '__pyx_k53' is initialized
_blueman.c:146:13: error: storage class specified for parameter '__pyx_k54'
_blueman.c:146:1: error: parameter '__pyx_k54' is initialized
_blueman.c:147:13: error: storage class specified for parameter '__pyx_k55'
_blueman.c:147:1: error: parameter '__pyx_k55' is initialized
_blueman.c:148:13: error: storage class specified for parameter '__pyx_k56'
_blueman.c:148:1: error: parameter '__pyx_k56' is initialized
_blueman.c:149:13: error: storage class specified for parameter '__pyx_k57'
_blueman.c:149:1: error: parameter '__pyx_k57' is initialized
_blueman.c:150:13: error: storage class specified for parameter '__pyx_k58'
_blueman.c:150:1: error: parameter '__pyx_k58' is initialized
_blueman.c:151:13: error: storage class specified for parameter '__pyx_k59'
_blueman.c:151:1: error: parameter '__pyx_k59' is initialized
_blueman.c:152:13: error: storage class specified for parameter '__pyx_k60'
_blueman.c:152:1: error: parameter '__pyx_k60' is initialized
_blueman.c:153:13: error: storage class specified for parameter '__pyx_k61'
_blueman.c:153:1: error: parameter '__pyx_k61' is initialized
_blueman.c:154:13: error: storage class specified for parameter '__pyx_k62'
_blueman.c:154:1: error: parameter '__pyx_k62' is initialized
_blueman.c:155:13: error: storage class specified for parameter '__pyx_k63'
_blueman.c:155:1: error: parameter '__pyx_k63' is initialized
_blueman.c:156:13: error: storage class specified for parameter '__pyx_k64'
_blueman.c:156:1: error: parameter '__pyx_k64' is initialized
_blueman.c:157:13: error: storage class specified for parameter '__pyx_k65'
_blueman.c:157:1: error: parameter '__pyx_k65' is initialized
_blueman.c:158:13: error: storage class specified for parameter '__pyx_k66'
_blueman.c:158:1: error: parameter '__pyx_k66' is initialized
_blueman.c:159:13: error: storage class specified for parameter '__pyx_k67'
_blueman.c:159:1: error: parameter '__pyx_k67' is initialized
_blueman.c:160:13: error: storage class specified for parameter '__pyx_k68'
_blueman.c:160:1: error: parameter '__pyx_k68' is initialized
_blueman.c:161:13: error: storage class specified for parameter '__pyx_k69'
_blueman.c:161:1: error: parameter '__pyx_k69' is initialized
_blueman.c:162:13: error: storage class specified for parameter '__pyx_k70'
_blueman.c:162:1: error: parameter '__pyx_k70' is initialized
...
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/blueman/gui/MessageArea.py", line 127, in style_set
self.anim.color = self.hbox.style.base[0]
AttributeError: 'HBox' object has no attribute 'style'
Using Blueman Device Manager 1.23
an AZUS BT400 dongle
and Samsung HM3500
On recient xubuntu install on dell Latitude D620
Speakers and headphones work fine.
When running Connect to; A2DP Sink
Also get a good connect when Connect To Headset service, except no sound output
The Samsung HM3500 has the following ο»ΏProfile: HFP1.1, HSP1.5, A2DP1.2
http://www.bluez.org/profiles/
lists ο»ΏA2DP 1.3 as supported.
Is Bluez backward compatible with an A2DP 1.2 device?
ο»ΏHFP 1.6 is also listed as supported with Bluez
The Samsung HM3500 is an HFP1.1 device.
Is Bluez backward compatible with an HFP 1.6 device?
Same hardware works fine with WinXP
With device paired, hcidump lists the following events on power up
HCI Event: Connect Request (0x04) plen 10
bdaddr 68:EB:AE:13:FA:72 class 0x240404 type ACL
HCI Event: Command Status (0x0f) plen 4
Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
HCI Event: Connect Complete (0x03) plen 11
status 0x00 handle 12 bdaddr 68:EB:AE:13:FA:72 type ACL encrypt 0x00
HCI Event: Command Status (0x0f) plen 4
Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
HCI Event: Read Remote Supported Features (0x0b) plen 11
status 0x00 handle 12
Features: 0xff 0xfe 0x0f 0xc6 0x9b 0xbf 0x59 0x83
HCI Event: Command Status (0x0f) plen 4
Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
HCI Event: Read Remote Extended Features (0x23) plen 13
status 0x00 handle 12 page 1 max 1
Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
HCI Event: Remote Name Req Complete (0x07) plen 255
status 0x00 bdaddr 68:EB:AE:13:FA:72 name 'HM3500'
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi 0
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 10
Link Key Request Reply (0x01|0x000b) ncmd 1
status 0x00 bdaddr 68:EB:AE:13:FA:72
HCI Event: Encrypt Change (0x08) plen 4
status 0x00 handle 12 encrypt 0x01
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -2
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -2
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -2
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -6
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCIdump lists this when headset connects:
HCI Event: Connect Request (0x04) plen 10
bdaddr 68:EB:AE:13:FA:72 class 0x240404 type ACL
HCI Event: Command Status (0x0f) plen 4
Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
HCI Event: Connect Complete (0x03) plen 11
status 0x00 handle 12 bdaddr 68:EB:AE:13:FA:72 type ACL encrypt 0x00
HCI Event: Command Status (0x0f) plen 4
Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 1
HCI Event: Read Remote Supported Features (0x0b) plen 11
status 0x00 handle 12
Features: 0xff 0xfe 0x0f 0xc6 0x9b 0xbf 0x59 0x83
HCI Event: Command Status (0x0f) plen 4
Read Remote Extended Features (0x01|0x001c) status 0x00 ncmd 1
HCI Event: Read Remote Extended Features (0x23) plen 13
status 0x00 handle 12 page 1 max 1
Features: 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00
HCI Event: Command Status (0x0f) plen 4
Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
HCI Event: Remote Name Req Complete (0x07) plen 255
status 0x00 bdaddr 68:EB:AE:13:FA:72 name 'HM3500'
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi 0
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 10
Link Key Request Reply (0x01|0x000b) ncmd 1
status 0x00 bdaddr 68:EB:AE:13:FA:72
HCI Event: Encrypt Change (0x08) plen 4
status 0x00 handle 12 encrypt 0x01
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -2
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -2
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -2
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
HCI Event: Command Complete (0x0e) plen 7
Read RSSI (0x05|0x0005) ncmd 1
status 0x00 handle 12 rssi -6
HCI Event: Command Complete (0x0e) plen 7
Read Link Quality (0x05|0x0003) ncmd 1
status 0x00 handle 12 lq 255
HCI Event: Command Complete (0x0e) plen 7
Read Transmit Power Level (0x03|0x002d) ncmd 1
status 0x00 handle 12 level 3
The Pulse Audio Volumn control dialog lists these configurations:
Analog Stereo Duplex
Analog Stereo Output
Digital Stereo (IEC958) Output + Analog Stereo Input
Digital Stereo (IEC958) Output
Analog Stereo Input
Off
No Bluetooth
The PulseAudio Manager list the following clients
Login session c2
Xfce volume daemon
XSMP session on xfce4- sesion as 23 bla bla
Ubuntu Audio settings
Blueman
Blueman
PulseAudio Manager
With the new notification lib Notify.Notification.__init__(self, summary, message)
in blueman/gui/Notification.py gives me GObject.__init__() takes exactly 0 arguments (2 given)
Downloaded Bluetooth Manager using the following π
Sudo apt-get install bluetooth blueman bluez-hcidump bluewho python-bluez bluez-tools
item shows up as installed--- but will not launch-- removed from OS --restarted computer --- same story dash says installed c/w date--- but program will NOT launch
any ideas or comments
Thanks
Right now network NAP connections require dhclient to work
Would be nice is dhcpcd was also supported
Long way to go, but sooo needed...
As MATE will integrate with Blueman for BlueZ 5 support, the application doesn't run at all. According to the Terminal, here's the output:
[jigs@dell-latitude-d630 Desktop]$ blueman-manager
** (blueman-manager:6387): WARNING **: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Loading configuration plugins
Using GConf config backend
Load (/usr/lib/python2.7/site-packages/blueman/main/PluginManager.py:54)
['PulseAudioProfile', 'Services']
ERROR:dbus.proxies:Introspect error on org.blueman.Applet:/: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus)
Traceback (most recent call last):
File "/usr/bin/blueman-manager", line 289, in
Blueman()
File "/usr/bin/blueman-manager", line 51, in init
self.Plugins.Load()
File "/usr/lib/python2.7/site-packages/blueman/main/PluginManager.py", line 84, in Load
import(self.module_path.name + ".%s" % plugin, None, None, [])
File "/usr/lib/python2.7/site-packages/blueman/plugins/manager/PulseAudioProfile.py", line 12, in
if not "PulseAudio" in a.QueryPlugins():
File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 70, in call
return self._proxy_method(_args, *_keywords)
File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 145, in call
**keywords)
File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus)
Would be great to have dhcpcd support also
here is a rough draft of a patch
diff --git a/blueman/main/DhcpClient.py b/blueman/main/DhcpClient.py
index c84dbf2..750e621 100644
--- a/blueman/main/DhcpClient.py
+++ b/blueman/main/DhcpClient.py
@@ -28,36 +28,64 @@ class DhcpClient(GObject.GObject):
#arg: interface name eg. ppp0
'connected' : (GObject.SignalFlags.NO_HOOKS, None, (GObject.TYPE_PYOBJECT,)),
'error-occurred' : (GObject.SignalFlags.NO_HOOKS, None, (GObject.TYPE_PYOBJECT,)),
}
quering = []
def __init__(self, interface, timeout=30):
GObject.GObject.__init__(self)
self.interface = interface
self.timeout = timeout
+ self.DHCP_CLIENT = False
+ try:
+ self.dhclient = subprocess.Popen(["dhclient", "--version"])
+ self.dhclient.terminate()
+ self.DHCP_CLIENT = "DHCLIENT"
+ except OSError:
+ try:
+ self.dhcpcd = subprocess.Popen(["dhcpcd", "--version"])
+ self.dhcpcd.terminate()
+ self.DHCP_CLIENT = "DHCPCD"
+ except OSError:
+ raise Exception("no DHCP client found, please install dhcpcd or dhclient")
+
def Connect(self):
if self.interface in DhcpClient.quering:
- raise Exception("dhclient already running on this interface")
+ raise Exception("DHCP already running on this interface")
else:
DhcpClient.quering.append(self.interface)
-
- try:
- self.dhclient = subprocess.Popen(["dhclient", "-e", "IF_METRIC=100", "-1", self.interface])
- except:
- raise Exception("dhclient binary not found")
-
- GObject.timeout_add(1000, self.check_dhclient)
- GObject.timeout_add(self.timeout*1000, self.on_timeout)
-
+ if self.DHCP_CLIENT == "DHCLIENT":
+ try:
+ self.dhclient = subprocess.Popen(["dhclient", "-e", "IF_METRIC=100", "-1", self.interface])
+ except:
+ #Should never happen now...
+ raise Exception("dhclient binary not found")
+ GObject.timeout_add(1000, self.check_dhclient)
+
+ elif self.DHCP_CLIENT == "DHCPCD":
+ try:
+ self.dhcpcd = subprocess.Popen(["dhcpcd", "-m", "100", self.interface])
+ except:
+ #Should never happen now...
+ raise Exception("dhcpcd binary not found")
+ GObject.timeout_add(1000, self.check_dhcpcd)
+
+ GObject.timeout_add(self.timeout*1000, self.on_timeout)
+
+
def on_timeout(self):
- if self.dhclient.poll() == None:
- dprint("Timeout reached, terminating dhclient")
- self.dhclient.terminate()
-
+ if self.DHCP_CLIENT == "DHCLIENT":
+ if self.dhclient.poll() == None:
+ dprint("Timeout reached, terminating dhclient")
+ self.dhclient.terminate()
+ elif self.DHCP_CLIENT == "DHCPCD":
+ if self.dhcpcd.poll() == None:
+ dprint("Timeout reached, terminating dhcpcd")
+ self.dhcpcd.terminate()
+
def check_dhclient(self):
status = self.dhclient.poll()
if status != None:
@@ -65,16 +93,36 @@ class DhcpClient(GObject.GObject):
def complete():
ip = get_net_address(self.interface)
dprint("bound to", ip)
self.emit("connected", ip)
GObject.timeout_add(1000, complete)
DhcpClient.quering.remove(self.interface)
return False
else:
dprint("dhclient failed with status code", status)
self.emit("error-occurred", status)
DhcpClient.quering.remove(self.interface)
return False
return True
+
+ def check_dhcpcd(self):
+ status = self.dhcpcd.poll()
+ if status != None:
+ if status == 0:
+ def complete():
+ ip = get_net_address(self.interface)
+ dprint("bound to", ip)
+ self.emit("connected", ip)
+
+ GObject.timeout_add(1000, complete)
+ DhcpClient.quering.remove(self.interface)
+ return False
+
+ else:
+ dprint("dhcpcd failed with status code", status)
+ self.emit("error-occurred", status)
+ DhcpClient.quering.remove(self.interface)
+ return False
+
+ return True
Dennis Gilmore filed this request as RHBZ 925110,
https://bugzilla.redhat.com/show_bug.cgi?id=925110
"Support for the ARM 64 bit CPU architecture (aarch64) was introduced in
autoconf 2.69. blueman appears to use an earlier version of
autoconf, preventing its being built. This can be fixed in of three ways (In order of preference):
I don't have the hardware to test Blueman in Aarch64, but I'm guessing Dennis does have hardware available with Bluetooth to run the tests.
The loop body in GtkAnimation.py line 175 is broken with GTK+ 3.
cairo_get_clip_rectangle
needs less parameters, rectangle
needs more.
pyrex is old, obsolete and incompatible with python3. Please consider pyrex as a blocking issue
Original post: namili/blueman/issues/1
In Bug 9674 β Ignore NoDisplay=true there is an example for adding a blueman-adapters.desktop
entry to xfce4-settings-manager.
[Desktop Entry]
Name=Bluetooth Adapters
Comment=Set Bluetooth Adapter Properties
Exec=blueman-adapters
Icon=blueman-device
Terminal=false
Type=Application
Categories=X-XFCE;Settings;DesktopSettings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
StartupNotify=true
Encoding=UTF-8
NoDisplay=false
X-XfceSettingsName=Bluetooth
X-XfcePluggable=true
Unfortunately, X-XfcePluggable=true
does not work for blueman-adapters
dialog so it is opened in a separate window.
With GTK+ 3 / introspection the handling of SIGINT changed. Previously blueman-applet could be killed after starting it in a terminal.
Now, if I use CTRL+C, nothing happens at first and if I than interact with the status icon's menu, a KeyboardInterrupt exception is thrown in the handler of the item I click.
When an exception occurs in blueman-manager and shall be written into the message area, I get the following error:
(blueman-manager:19344): Gtk-CRITICAL **: gtk_style_context_get_property: assertion `priv->widget != NULL || priv->widget_path != NULL' failed
/usr/local/lib/python2.7/dist-packages/blueman/gui/MessageArea.py:171: Warning: /tmp/buildd/glib2.0-2.36.4/./gobject/gtype.c:4239: type id `0' is invalid
self.show()
/usr/local/lib/python2.7/dist-packages/blueman/gui/MessageArea.py:171: Warning: can't peek value table for type `<invalid>' which is not currently referenced
self.show()
I can't exactly remember, what I was doing when it crashed, crashed after closing "Setup..." dialog (or when that dialog was active).
Traceback:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/blueman/gui/manager/ManagerDeviceList.py", line 169, in on_event_clicked
self.menu = ManagerDeviceMenu(self.Blueman)
File "/usr/lib/python2.7/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 59, in __init__
self.Generate()
File "/usr/lib/python2.7/dist-packages/blueman/gui/manager/ManagerDeviceMenu.py", line 238, in Generate
device = self.Blueman.List.get(self.Blueman.List.selected(), "device")["device"]
TypeError: 'bool' object has no attribute '__getitem__'
Version 1.23 from Ubuntu packages.
Filed as RHBZ#997351 ( https://bugzilla.redhat.com/show_bug.cgi?id=997351 ) and Launchpad#908375 ( https://bugs.launchpad.net/blueman/+bug/908375 )
Leesa on Launchpad suggested a fix.
Hi!
This bug was reported in RedHat Buzilla, by Jan HutaΕ
https://bugzilla.redhat.com/show_bug.cgi?id=1021367
He provided the following patch that adds support for Thunar:
--- /usr/bin/blueman-browse.ORIG 2013-10-21 09:25:51.869107418 +0200
+++ /usr/bin/blueman-browse 2013-10-21 09:26:26.141949747 +0200
@@ -63,9 +63,9 @@
conf = Config("transfer")
if conf.props.browse_command == None:
conf.props.browse_command = DEF_BROWSE_COMMAND
if "nautilus" in DEF_BROWSE_COMMAND:
if not have("nautilus"):
conf.props.browse_command = "thunar obex://[%d]"
if "nautilus" in DEF_BROWSE_COMMAND:
if not have("nautilus"):
conf.props.browse_command = "thunar obex://[%d]"
cmd = conf.props.browse_command.replace("%d", addr)
args = cmd.split(" ")
I can provide a git pull with the patch if it'll make things easier. :-)
Even with ./configure --enable-sendto=no
It always compiles the nautilus plugin.
I have tried --enable-send-to=no, and --disable-sendto as well (just in case!) but it is still always compiled
Radio buttons are always toggled. E. g. the ordering in the view menu. Not so useful. π
@teknocrat I cannot reproduce it. Any more information? Does the segfault happen in the applet (then it's an issue within the startup_notification function) or in the invoked blueman-services binary?
The applet segfaults if gconf (introspection lib) is not available. Gconf has previously been an optional dependency and it would be great to achieve this again.
ERROR:root:Could not find any typelib for GConf
ERROR:root:Could not find any typelib for GConf
ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 230, in maybe_handle_message
self._handler(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/blueman/plugins/config/File.py", line 64, in on_value_changed
if self.plugin().section == section:
AttributeError: 'NoneType' object has no attribute 'section'
There is an applet plugin for NM 0.7 (NMIntegration) for both PAN and DUN and two plugins for NM 0.8 (NMPANSupport and NMDUNSupport).
A similar plugin (or two) is necessary for NM 0.9. The older plugins should be disabled by default.
Currently the code should be compatible with 2.6 and 2.7.
Goal is to also make it compatible with 3.2+ 3.3+
The ExitItem plugin has issues with GTK+ 3: Instead of an icon and a correct label, the menu just shows "gtk-quit".
It may be very kind if releases will be on this github like systemd do. Example 1 then 2 then 3 then 4 then you know 5 and 6 and many many. But never 1.1, 1.2, 1.2.1 - no no no, it's not very kind. :-)
Die state of the bluetooth adapter (on/off) should be saved in the config of bluetooth.
For example, if I disable the bluetooth adapter in blueman applet, I would like the bluetooth adapter to stay off after a reboot.
This is a topic for the wishlist... You're doing a great job!
Best
smiddy
connecting bluetooth headset to Mint 17 using blueman. Headset connects but blueman headset service says "Device added successfully, but failed to connect." Headset doesnt show up in sound devices for output either.
SetAdapter (/usr/lib/python2.7/dist-packages/blueman/gui/DeviceList.py:276)
No such adapter
The about dialog contains a list of contributors. We should either drop it (not so nice) or (constantly) update it to include (at least) all GitHub and Transifex contributors. Also it's questionable if the Launchpad list is up to date.
@stefano-k Is there an easy way to get such a list out of Transifex?
Valmantas already started here
Drops PyGobject dependency
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.