Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  

Recommended Posts

<font color='#000000'>Essa semana comprei um mouse ótico com 5 botões (7 na verdade, pois o movimento da rodinha conta como dois botões)...  a configuração do funcionamento dos 3 botões e da rodinha foi normal... nem precisei alterar nada.

O problema é que eu queria usar os dois botões laterais para trocar de workspaces no openbox... aqui vai como eu fiz, se alguém se interessar pela ideia... eu tive um problema no final, mas acho que pode ser útil pra alguém...

no XFree86Config:


Section "InputDevice"

# Identifier and driver

   Identifier          "Mouse1"
   Driver              "mouse"
   Option              "Protocol"              "ExplorerPS/2"
   Option              "Device"                "/dev/misc/psaux"
   Option              "Buttons"               "7"
   Option              "ZAxisMapping"          "6 7"

no .Xmodmap


pointer = 1 2 3 6 7 4 5

Isso faz com que o X11 reconheça todos os botões... confira com o xev que captura eventos.... o problema é que ele reconhecia, mas obviamente não fazia nada... então eu fui no código do openbox (open source é uma maravilha, não ?)... aqui vai o patch...


diff -Naur openbox-2.2.3/src/Screen.cc openbox-2.2.4/src/Screen.cc
--- openbox-2.2.3/src/Screen.cc 2002-12-09 07:53:16.000000000 +0000
+++ openbox-2.2.4/src/Screen.cc 2003-07-05 16:10:21.000000000 +0000
@@ -2562,6 +2562,18 @@
      changeWorkspaceID(getWorkspaceCount() - 1);
    else
      changeWorkspaceID(getCurrentWorkspaceID() - 1);
+  // left side button
+  } else if (xbutton->button == 6) {
+    if (getCurrentWorkspaceID() == 0)
+      changeWorkspaceID(getWorkspaceCount() - 1);
+    else
+      changeWorkspaceID(getCurrentWorkspaceID() - 1);
+  // right side button
+  } else if (xbutton->button == 7) {
+    if (getCurrentWorkspaceID() >= getWorkspaceCount() - 1)
+      changeWorkspaceID(0);
+    else
+      changeWorkspaceID(getCurrentWorkspaceID() + 1);
  }

  if (resource.root_menu_button > 0 &&
diff -Naur openbox-2.2.3/src/Toolbar.cc openbox-2.2.4/src/Toolbar.cc
--- openbox-2.2.3/src/Toolbar.cc        2002-12-09 07:53:16.000000000 +0000
+++ openbox-2.2.4/src/Toolbar.cc        2003-07-05 16:06:37.000000000 +0000
@@ -865,7 +865,20 @@
      toolbarmenu->move(x, y);
      toolbarmenu->show();
    }
+  
+  } else if (be->button == 6) {
+    if (screen->getCurrentWorkspaceID() == 0)
+      screen->changeWorkspaceID(screen->getWorkspaceCount() - 1);
+    else
+      screen->changeWorkspaceID(screen->getCurrentWorkspaceID() - 1);
+  
+  } else if (be->button == 7) {
+    if (screen->getCurrentWorkspaceID() >= screen->getWorkspaceCount() - 1)
+      screen->changeWorkspaceID(0);
+    else
+      screen->changeWorkspaceID(screen->getCurrentWorkspaceID() + 1);
  }
+
}

Com esse patch ele troca os workspaces quando o mouse está sobre o desktop ou sobre a toolbar... o problema que eu não consegui resolver é que quando o mouse está sobre outra janela, a aplicação da janela captura o evento antes do openbox... me disseram que é possível usar o xmodmap para mapear eventos do mouse para atalhos do teclado, mas não consegui descobrir como...

Alguém sabe ???</font>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×