Ir ao conteúdo
  • Cadastre-se

Mouse


PedroWerneck

Posts recomendados

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 ???

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...