#1 Le 23/08/2008, à 13:07
- Calvin01
Raccourcis switch bureau Clavier-Molette souris
Bonjour,
Je n'ai pas trouvé la solution à mon problème sur le forum, j'ai juste réussi à retrouver gconf-editor apps>metacity>global_keybindings pour ne pas avoir à passer par Système>Préférences>Raccourcis clavier qui ne permet pas de créer des raccourcis avec un bouton de la souris.
Je voudrais changer les raccourcis switch to workspace down et up les raccourcis actuel sont :
Ctrl + Alt + Down (Bureau du bas)
Ctrl + Alt + Up (Bureau du haut)
Je veux remplacer la flèche du bas/haut par la molette du bas/haut. J'ai essayé plusieurs combinaison pour button 4, avec espace, ou deux-points, mais ça ne fonctionne pas. J'ai vérifier le nom des boutons avec la commande xev|grep button.
Donc si quelqu'un pouvait m'éclairer sur le terme à ajouter dans la ligne <Control><Alt>Down
Compiz n'est pas activé, et je n'ai pas envie de l'activer juste pour un raccourcis
calvin01@jabber.org
Ubuntu 12.10 (Gnome-Remix) / Linux Mint Debian Edition (Gnome-shell) / ArchLinux (Gnome-shell)
Hors ligne
#2 Le 25/08/2008, à 03:49
- andso
Re : Raccourcis switch bureau Clavier-Molette souris
bonjour,
pour changer d' espace de travail avec la roulette ?, t' as ça sous xfce
IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!
Hors ligne
#3 Le 25/08/2008, à 23:21
- lonelycaty
Re : Raccourcis switch bureau Clavier-Molette souris
bonjour,
pour changer d' espace de travail avec la roulette ?, t' as ça sous xfce
Le changement de bureau avec la molette est activé par défaut avec compiz sous ubuntu.
#4 Le 26/08/2008, à 00:54
- Calvin01
Re : Raccourcis switch bureau Clavier-Molette souris
Je pensais avoir répondu...
Je n'ai pas envie de changer d'environnement juste pour un raccourcis, pas plus que d'activer compiz-fusion, je voulais juste savoir s'il était possible grace à gconf-editor de creer un tel raccourcis ?
calvin01@jabber.org
Ubuntu 12.10 (Gnome-Remix) / Linux Mint Debian Edition (Gnome-shell) / ArchLinux (Gnome-shell)
Hors ligne
#5 Le 27/08/2008, à 09:29
- Calvin01
Re : Raccourcis switch bureau Clavier-Molette souris
Personne n'a d'idée ?
calvin01@jabber.org
Ubuntu 12.10 (Gnome-Remix) / Linux Mint Debian Edition (Gnome-shell) / ArchLinux (Gnome-shell)
Hors ligne
#6 Le 12/05/2009, à 15:08
- Tonio 571
Re : Raccourcis switch bureau Clavier-Molette souris
Hello, aurais tu trouvé la solution depuis le temps ? j'aimerai aussi pouvoir passer par la molette sans avoir a utiliser compiz...
Hors ligne
#7 Le 12/05/2009, à 17:47
- andso
Re : Raccourcis switch bureau Clavier-Molette souris
http://www.ubuntu-france.org/resultats.html?cref=http%3A%2F%2Fwww.ubuntu-france.org%2Fcref_cse.xml&client=partner-pub-0150107076181427&cof=FORID%3A9&q=param%C3%A9trer+souris&sa=Search#1292
http://doc.ubuntu-fr.org/btnx#attribution_des_actions
ça doit dépendre de la souris? en fait étant sous xfce... ça marche, bon, je sors.
Dernière modification par andso (Le 12/05/2009, à 17:53)
IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!
Hors ligne
#8 Le 12/05/2009, à 17:55
- Tonio 571
Re : Raccourcis switch bureau Clavier-Molette souris
Ben ecoutes, je ne trouve rien dans ces liens...ça marche parfaitement ac compiz dc je ne pense pas que ça ai un lien ac la souris...
Hors ligne
#9 Le 12/05/2009, à 18:09
- andso
Re : Raccourcis switch bureau Clavier-Molette souris
pas de soluce sous le coude
IMPORTANT: Booster votre (X et K)ubuntu: http://forum.ubuntu-fr.org/viewtopic.php?id=241092 (pfou!...)
à essayer, et... demain debian? http://fr.wikipedia.org/wiki/Demain_les_chiens
demain les biens? mes biens biens? t' exagére ... la banque!
Hors ligne
#10 Le 12/05/2009, à 18:10
- Tonio 571
Re : Raccourcis switch bureau Clavier-Molette souris
merci qd meme
Hors ligne
#11 Le 15/05/2009, à 15:19
- compte supprimé
Re : Raccourcis switch bureau Clavier-Molette souris
Bonjour,
Ca fait un moment que je cherche cette fonctionnalite pour metacity.
J'ai trouve un debut de solution avec imwheel qui permet de mapper des commandes souris vers des commandes clavier. Il suffit de creer le fichier .imwheel dans le home directory avec dedant :
"desktop_window"
None, Up, Alt_L|Left, 1
None, Down, Alt_L|Right, 1
et de lancer imwheel avec l'option -f.
ca fait :
molette vers le haut quand la souris est sur le bureau => touches ALT + <fleche vers la gauche>
molette vers le bas quand la souris est sur le bureau => touches ALT + <fleche vers la droite>
Reste a configurer (ca doit etre le cas par defaut) le switch du workspace avec ces touches.
Mais 2 petits problemes :
1/ on a pas la circularite comme dans compiz-fusion (passage du dernier workspace au premier)
2/ si on fait rouler la molette un peu trop vite , ca met dans un etat ou la touche alt est activee en permanence et faut appuyer sur la touche alt pour sortir de cet etat
Finalement je me suis lance dans l'ecriture d'un bout de code en examinant le code de imwheel (merci a l'auteur au passage).
Voici ce que ca donne (switch_workspace_metacity.c) :
/*
* 15/05/2009 -- Alain Ducasse
*
* Switch workspace with your mousewheel for metacity window manager.
*
* Fr : Change de bureau avec la molette de la souris pour le gestionaire
* de fenetre metacity (a la mode de compiz-fusion).
*
* Compile :
* gcc switch_workspace_metacity.c -o switch_workspace_metacity -lX11
*
* (Required library : libX11-dev)
*
* To stop : CTRL+C or 'killall switch_workspace_metacity'
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <signal.h>
#include <unistd.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
// #define LOG_FILE /* log file in /var/tmp/ for debug */
static int G_ok = 1;
/*--------------------------------------------------------------------------*/
unsigned int get_nb_desktop(Display *disp, Window root)
{
Atom a;
Atom xa_ret_type;
int ret_format;
unsigned long ret_nitems;
unsigned long ret_bytes_after;
unsigned char *ret_prop;
unsigned int nb_desktop;
a = XInternAtom(disp, "_NET_NUMBER_OF_DESKTOPS", False);
if (XGetWindowProperty(disp, root, a, 0,
1, False, XA_CARDINAL, &xa_ret_type, &ret_format,
&ret_nitems, &ret_bytes_after, &ret_prop) != Success)
{
fprintf(stderr,"Cannot get _NET_NUMBER_OF_DESKTOPS property\n");
return -1;
}
if (xa_ret_type != XA_CARDINAL)
{
fprintf(stderr,"Invalid type of _NET_NUMBER_OF_DESKTOPS property\n");
XFree(ret_prop);
return -1;
}
assert(ret_nitems == 1);
assert(ret_format == 32);
memcpy((unsigned char *) &nb_desktop, ret_prop, 4);
XFree(ret_prop);
return nb_desktop;
}
unsigned int get_cur_desktop(Display *disp, Window root)
{
Atom a;
Atom xa_ret_type;
int ret_format;
unsigned long ret_nitems;
unsigned long ret_bytes_after;
unsigned char *ret_prop;
unsigned int cur_desktop;
a = XInternAtom(disp, "_NET_CURRENT_DESKTOP", False);
if (XGetWindowProperty(disp, root, a, 0,
1, False, XA_CARDINAL, &xa_ret_type, &ret_format,
&ret_nitems, &ret_bytes_after, &ret_prop) != Success)
{
fprintf(stderr,"Cannot get _NET_CURRENT_DESKTOP property\n");
return -1;
}
if (xa_ret_type != XA_CARDINAL)
{
fprintf(stderr,"Invalid type of _NET_CURRENT_DESKTOP property\n");
XFree(ret_prop);
return -1;
}
assert(ret_nitems == 1);
assert(ret_format == 32);
memcpy((unsigned char *) &cur_desktop, ret_prop, 4);
XFree(ret_prop);
return cur_desktop;
}
void set_cur_desktop(Display *disp, Window root, unsigned int cur_desktop)
{
Atom a;
XEvent xevent;
a = XInternAtom(disp, "_NET_CURRENT_DESKTOP", False);
xevent.type = ClientMessage;
xevent.xclient.type = ClientMessage;
xevent.xclient.display = disp;
xevent.xclient.window = root;
xevent.xclient.message_type = a;
xevent.xclient.format = 32;
xevent.xclient.data.l[0] = cur_desktop;
xevent.xclient.data.l[1] = CurrentTime;
xevent.xclient.data.l[2] = 0;
xevent.xclient.data.l[3] = 0;
xevent.xclient.data.l[4] = 0;
XSendEvent(disp, root, False,
SubstructureNotifyMask | SubstructureRedirectMask,
&xevent);
}
void grab_buttons(Display *disp, Window win)
{
int i;
for(i = 4; i <= 5; i++) /* mouse wheel : UP (4) & DOWN (5) */
{
XGrabButton(disp,i,AnyModifier,win,
False, ButtonPressMask,
GrabModeAsync, GrabModeAsync,
None,None);
}
}
void ungrab_buttons(Display *disp, Window root, Window win)
{
int i;
XSync(disp,False);
for(i = 4; i <= 5; i++)
{
XUngrabButton(disp,i,AnyModifier,win);
}
XUngrabButton(disp, AnyButton, AnyModifier, root);
XSync(disp,False);
}
Window find_window(Display *disp, Window root, char *wname)
{
Window r;
Window win;
Window *kids;
unsigned i,nkids;
char *title;
XQueryTree(disp,root,&r,&win,&kids,&nkids);
win = root;
for (i = 0; i < nkids; i++)
{
XFetchName(disp,kids[i],&title);
if (title && strcmp(title,wname) == 0)
{
win = kids[i];
XFree(title);
break;
}
if (title)
XFree(title);
}
XFree(kids);
return win;
}
void handler_signal(int param)
{
/* CTRL-C or KILL */
G_ok = 0;
}
void switch_workspace_with_mousewheel(void)
{
Display *disp;
XEvent xe;
Window root,desktop;
unsigned int cur_desktop;
unsigned int nb_desktop;
int wait_desktop;
#ifdef LOG_FILE
FILE *f;
f = fopen("/var/tmp/switch_workspace_metacity.log","wb");
assert(f);
#endif
disp = XOpenDisplay(NULL);
if (!disp)
{
#ifdef LOG_FILE
fprintf(f,"Erreur XOpenDisplay()\n");
#endif
exit(-1);
}
root = DefaultRootWindow(disp);
wait_desktop = 0;
desktop = root;
while ((wait_desktop < 60) && (desktop == root))
{
desktop = find_window(disp, root, "x-nautilus-desktop");
sleep(1);
wait_desktop++;
}
#ifdef LOG_FILE
fprintf(f,"Attente desktop : %d s\n",wait_desktop);
#endif
if (desktop != root)
{
fprintf(stdout,
"\n>>> Switch workspace with your mousewheel for metacity\n\n");
nb_desktop = get_nb_desktop(disp,root);
cur_desktop = get_cur_desktop(disp,root);
#ifdef LOG_FILE
fprintf(f,"nb_desktop = %d, cur_desktop = %d\n",nb_desktop,cur_desktop);
#endif
XAllowEvents(disp,AsyncBoth,CurrentTime);
grab_buttons(disp,desktop);
signal(SIGINT,handler_signal);
signal(SIGTERM,handler_signal);
#ifdef LOG_FILE
fprintf(f,"Attent la molette ...\n");
fflush(f);
#endif
while (1)
{
// while (G_ok && (XPending(disp) == 0))
// usleep(100);
if (!G_ok)
break;
XNextEvent(disp,&xe);
if(xe.type == ButtonPress)
{
#ifdef LOG_FILE
fprintf(f," %s\n",xe.xbutton.button == 5 ? "DOWN" : "UP");
fflush(f);
#endif
if (xe.xbutton.button == 5)
{
cur_desktop = (cur_desktop + 1) % nb_desktop;
}
else
{
if (cur_desktop)
cur_desktop--;
else
cur_desktop = nb_desktop - 1;
}
set_cur_desktop(disp, root, cur_desktop);
}
}
ungrab_buttons(disp,root,desktop);
}
#ifdef LOG_FILE
else
fprintf(f,"Desktop non trouve !!!\n");
#endif
#ifdef LOG_FILE
fprintf(f,"Exit de switch_workspace_with_mousewheel()\n");
fclose(f);
#endif
XCloseDisplay(disp);
}
int main()
{
switch_workspace_with_mousewheel();
return 0;
}
Faut la librairie libX11-dev pour compiler.
Une fois lance ca devrait marcher !
Reste plus qu'a le lancer au demarrage de gnome (Systeme->Preferences->Applications au demarrage) en executant un script qui contient :
/le/repertoire/du/programme/switch_workspace_metacity &
Bon test.
a+
Dernière modification par alduc1 (Le 16/05/2009, à 00:12)
#12 Le 02/11/2009, à 13:27
- tuxce
Re : Raccourcis switch bureau Clavier-Molette souris
merci pour le programme, ça fonctionne parfaitement
Hors ligne
#13 Le 01/04/2010, à 21:47
- Lo_pescofi
Re : Raccourcis switch bureau Clavier-Molette souris
Pour changer de bureau avec la molette de la souris, j'ai aussi cherché longtemp, la réponse est ici :
http://www.linuxmint-fr.org/forum/suppo … ouris.html
tu y trouveras :
"allez dans le gestionnaire de configuration compizconfig
puis changeur de bureau onglet "destop-based viewport switching"
et là activer "bureau suivant" mettre button4 et "bureau précédent" mettre button5"
mais aussi :
ouvrir un terminal et taper 'gconf-editor' (sans être en "su")
Trouver les clés suivantes et changer les valeurs par ce qui est en gras ci dessous :
apps > compiz > plugins > vpswitch > allscreens > options > next_button Button5
apps > compiz > plugins > vpswitch > allscreens > options > prev_button Button4
Voilà
Hors ligne
#14 Le 14/05/2010, à 12:18
- NicoR
Re : Raccourcis switch bureau Clavier-Molette souris
"allez dans le gestionnaire de configuration compizconfig
puis changeur de bureau onglet "destop-based viewport switching"
et là activer "bureau suivant" mettre button4 et "bureau précédent" mettre button5"
Excellent, exactement ce que je cherchais. Marche impec.
Merci.
Dernière modification par NicoR (Le 14/05/2010, à 12:19)
Hors ligne
#15 Le 01/06/2011, à 11:29
- ztroudi
Re : Raccourcis switch bureau Clavier-Molette souris
Pour changer de bureau avec la molette de la souris, j'ai aussi cherché longtemp, la réponse est ici :
http://www.linuxmint-fr.org/forum/suppo … ouris.htmltu y trouveras :
"allez dans le gestionnaire de configuration compizconfig
puis changeur de bureau onglet "destop-based viewport switching"
et là activer "bureau suivant" mettre button4 et "bureau précédent" mettre button5"mais aussi :
ouvrir un terminal et taper 'gconf-editor' (sans être en "su")
Trouver les clés suivantes et changer les valeurs par ce qui est en gras ci dessous :
apps > compiz > plugins > vpswitch > allscreens > options > next_button Button5
apps > compiz > plugins > vpswitch > allscreens > options > prev_button Button4Voilà
J'ai appliqué ces modification, mais comment je peux le tester ?
Merci d'avance
Hors ligne