Outro artigo falando sobre algo que eu configurei no meu ambiente de trabalho alguns anos atrás e que continuo usando até hoje 🙂. Dessa vez eu vou mostrar os menus que eu criei usando o rofi.
Então, o que é o rofi? É basicamente um programa para o qual você fornece uma lista de opções, e ele mostra uma janela onde o usuário pode filtrar e escolher uma opção. Então basicamente pode-se dizer que é um menu de seleção simples mas universal.
O rofi também tem alguns menus padrões, como um para abrir aplicações e outro para alternar entre janelas, que provavelmente são o seu uso mais comum. Eu também uso esses menus, mas como eles não são algo que eu mesmo customizei, eu não vou falar sobre eles.
Outras considerações
Esses são meus menus e o que eu queria compartilhar nesse artigo, mas vale mencionar alguns outros pontos.
Primeiro, tem um outro menu rofi que eu uso e gosto, mas ele não é um que eu mesmo criei. Ele se chama rofimoji e permite que você muito facilmente pesquise e copie emojis.
Em segundo lugar, vale mencionar que o rofi oficialmente só funciona no X11, então eu na verdade uso o fork do rofi para wayland, como eu mencionei no artigo "Mudando para o Wayland".
E finalmente, para tornar a criação de menus rofi mais fácil nos meus scripts em python, eu abstraí a execução do rofi em uma função python com o seguinte protótipo:
def select(prompt, options, multi=False, args=[]):
onde prompt
é a string que aparece no prompt, options
é a lista de
opções que podem ser escolhidas, multi
representa se múltiplas opções podem
ser escolhidas ou não, e args
permite passar argumentos adicionais ao rofi.
O retorno da função é a/as opção/opções que foi/foram selecionada(s) (apenas a
opção se multi
era falso, ou a lista de opções se era verdadeiro). Se a
seleção foi abortada uma exceção é lançada. Eu considerei usar o python-rofi ao
invés de criar meu próprio módulo, mas esse módulo retorna o índice do que foi
escolhido ao invés da string em si, o que apenas tornaria o uso mais complicado.
Já que era bem fácil criar meu próprio módulo, foi o que eu fiz.
E é isso. Eu realmente gosto do quão fácil é criar menus usando o rofi em python 🙂.