J'essaie d'écrire un script bash qui bascule entre les espaces de travail avec des invites de dialogue en cours de route. Je suis sous Ubuntu 17.04 avec Budgie remix.
Lorsque vous utilisez wmctrl
ou zenity
séparément, ils fonctionnent correctement. Rassemblez-les cependant et le gestionnaire de fenêtres de perruche se bloque avec une erreur de segmentation.
Cela se produit avec wmctrl -s 0
et xdotool set_desktop 0
. Ils fonctionnent bien seuls mais pas en combinaison avec zenity
.
#!/bin/bash
desktop=$(xdotool get_desktop) #Get current workspace id
if [ "${desktop}" -eq 0 ] #If workspace == 0
then
wmctrl -s 3 #Switch to workspace 3
firefox --new-window "http://www.reddit.com"
else
zenity --question --title "Switch Workspace?" --text "Are you sure you wish to return to previous workspace?"
if ! $? #If response Yes
then
wmctrl -s 0 #Switch back
else
notify-send "Operation Aborted" "User canceled workspace return."
fi
fi
wmctrl
est utilisée seule#!/bin/bash
desktop=$(xdotool get_desktop) #Get current workspace id
if [ "${desktop}" -eq 0 ] #If workspace == 0
then
wmctrl -s 3 #Switch to workspace 3
firefox --new-window "http://www.reddit.com"
else
wmctrl -s 0 #Switch back
fi
zenity
est utilisée seule#!/bin/bash
desktop=$(xdotool get_desktop) #Get current workspace id
if [ "${desktop}" -eq 0 ] #If workspace == 0
then
wmctrl -s 3 #Switch to workspace 3
firefox --new-window "http://www.reddit.com"
else
zenity --question --title "Switch Workspace?" --text "Are you sure you wish to return to previous workspace?"
if ! $? #If response Yes
then
notify-send "Switch Workspace" "Operation placeholder."
else
notify-send "Operation Aborted" "User canceled workspace return."
fi
fi
journalctl
Dec 02 11:17:54 main budgie-wm.desktop[20079]: Window manager warning: Received a NET_CURRENT_DESKTOP message from a broken (outdated) client who sent a 0 timestamp
Dec 02 11:17:54 main kernel: budgie-wm[20079]: segfault at 18 ip 00007fa255e8dfc1 sp 00007fff13189710 error 4 in libmutter-0.so.0.0.0[7fa255df0000+131000]
Dec 02 11:17:55 main gnome-session-binary[19810]: WARNING: Application 'budgie-wm.desktop' killed by signal 11
Dec 02 11:17:55 main gnome-session[19810]: gnome-session-binary[19810]: WARNING: Application 'budgie-wm.desktop' killed by signal 11
Dec 02 11:17:55 main ckb.desktop[20137]: QXcbConnection: XCB error: 148 (Unknown), sequence: 423, resource id: 0, major code: 140 (Unknown), minor code: 20
Dec 02 11:17:56 main budgie-wm[21537]: invalid (NULL) pointer instance
Dec 02 11:17:56 main budgie-wm[21537]: g_signal_connect_object: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
Quelle est la cause de l'erreur de segmentation lorsque zenity
est utilisé pour déclencher le commutateur d'espace de travail alors que les deux composants fonctionnent correctement séparément?
Classé comme bug dans Zenity, voir: https://bugs.launchpad.net/ubuntu/+source/zenity/+bug/1735917