Existe um programa que irá iniciar um menu de contexto configurável

1

Eu estou procurando por algo como Zenity ou Yad, exceto que eu quero algo que se comporte como um menu, a saber: ele abre bem ao lado do cursor; leva um clique para selecionar coisas; é possível ter vários níveis.

A coisa mais próxima que encontrei é realmente as pastas do Autokey, mas o Autokey precisa estar sempre em execução (mesmo que eu chame autokey-run ), o que eu prefiro evitar.

O requisito principal é que eu seja capaz de clicar única em algo que apareça perto do meu cursor .

Alguma idéia?

    
por Alex R 18.03.2016 / 22:15

1 resposta

1

Sawfish gerencia seus menus com um programa associado sawfish-menu . Você pode usar esse programa mesmo se não estiver executando o Sawfish como seu gerenciador de janelas. O protocolo entre o peixe-serra e o menu de peixe-serra não parece estar documentado em nenhum lugar; é inspirado no formato de especificação de menu no próprio Sawfish.

echo '(popup-menu (("_toplevel" 0) ("_submenu" ("_foo" 1) () ("_bar" 2))))' |
/usr/lib/sawfish/1.5.3/x86_64-pc-linux-gnu/sawfish-menu

sawfish-menu imprime 0 se o usuário selecionar "toplevel", etc. Você pode especificar sequências (entre aspas duplas ou até mesmo sem aspas se elas forem identificadores Lisp válidos) em vez de números para as entradas. Se o usuário cancelar (por exemplo, pressionando Esc ), a saída será () .

Aqui está um resumo da sintaxe de entrada de sawfish-menu .

  • Comece com (popup-menu e termine com ) .
  • Para uma entrada de menu clicável, use ("TEXT" OUTPUT) onde TEXT é o texto da entrada e OUTPUT é o que o programa imprime se esta entrada de menu estiver selecionada.
    • Se houver um sublinhado em TEXT , o próximo caractere será o acelerador dessa entrada.
    • Você pode colocar uma marca de verificação na frente de uma entrada no menu, adicionando (check . t) , por exemplo, ("Foo" 42 (check . t)) .
    • Você pode colocar um marcador (botão de opção) na frente de uma entrada do menu, adicionando (group . SOMETHING) (check . t) . Apenas uma entrada dentro de um determinado grupo pode ter o botão.
    • Você pode deixar uma entrada em cinza e não selecionável adicionando (insensitive . t) .
  • Para um submenu, use ("TEXT" ENTRY…) .
  • Para um separador, use () .

Obviamente, não espere que as pessoas tenham esse utilitário instalado. Normalmente não é empacotado separadamente do Sawfish, mas na verdade não precisa de nada do próprio Sawfish; é um script de repetição, rep sendo o dialeto Lisp no qual o Sawfish (e basicamente nada mais) está escrito. No Debian, você precisa que o pacote rep-gtk execute sawfish-menu , além do script em si.

    
por 19.03.2016 / 18:53