Bem-vindo: Ter, 19 de Março 2024, 3:44 Pesquisa avançada

[Bash] Dmenu - carregar pastas, editar ficheiros e...

Escreveu alguma aplicação ou script que quer partilhar? Ou conhece algo que quer partilhar? Sabe alguma linguagem de programação e quer partilhar esse conhecimento com um tutorial? Tem alguma dúvida em alguma linguagem? Então este é o sítio certo.

[Bash] Dmenu - carregar pastas, editar ficheiros e...

Mensagempor Luis Cardoso » Dom, 7 de Setembro 2014, 15:29

... lançar aplicações




Há dias descobri o potencial da ferramenta dmenu, e como podemos fornecer-lhe qualquer coisa para a sua entrada... Pensei um pouco e perguntei-me: Para quê restringir-se apenas para lançar aplicações? Porque não lançar outras coisas, que fique ali à mão, ao estilo de um HUD como o que se tem no Unity?!

Depois de explorar um pouco, lá comecei a desenvolver um pequeno script, inicialmente para abrir ficheiros a editar e depois, passado algum tempo (quando verifiquei que tudo estava a correr bem) coloquei a abrir pastas.

Depois de verificar que este script até é bastante útil e que tem até potencial para promover a produtividade, porque não partilhar com o pessoal, pode ser que até consigam adicionar ainda mais alguma característica ou até proporcionar algumas dicas.

Assim, deixo-vos aqui o código usado para o script:
Código: Selecionar todos
#!/bin/bash

file_manager="pcmanfm"
text_editor="leafpad"

dmenu_param="-p >"

main_app="browse
edit
run"

browse_app="home
documents
downloads
images
musics
videos"

edit_app="bashrc
dmenu
conky
ob_rc"

prog="edit_bashrc
edit_dmenu
edit_conky
edit_ob_rc
$(dmenu_path)"

cmd=$(echo "$main_app" | dmenu $dmenu_param)

case "$cmd" in
browse)
    browse_folder=$(echo "$browse_app" | dmenu $dmenu_param)
    case "$browse_folder" in
    home)       exec $file_manager "$HOME";;
    documents)  exec $file_manager "$HOME/Documentos";;
    downloads)  exec $file_manager "$HOME/Downloads";;
    images)     exec $file_manager "$HOME/Imagens";;
    musics)     exec $file_manager "$HOME/Músicas";;
    videos)     exec $file_manager "$HOME/Vídeos";;
    *)          exec $file_manager;;
    esac
;;
edit)
    edit_file=$(echo "$edit_app" | dmenu $dmenu_param)
    case "$edit_file" in
    bashrc)     exec $text_editor "$HOME/.bashrc";;
    dmenu)      exec $text_editor "$HOME/.my_scripts/my_dmenu.sh";;
    conky)      exec $text_editor "$HOME/conky/my_conky2.conkyrc";;
    ob_rc)      exec $text_editor "$HOME/.config/openbox/rc.xml";;
    *)          exec $text_editor;;
    esac
;;
run)
    run_app=$(dmenu_path | dmenu $dmenu_param)
    exec $run_app
;;
*)
    exec $cmd
;;
esac
exit 0


Antes de o poderem usar, convém ter o seguinte pacote instalado (Debian):
sudo apt-get install -y suckless-tools


E ainda, deixo-vos um vídeo deste a funcionar (adicionei o script no ficheiro rc.xml do Openbox com um atalho de teclado, fazendo com que este seja chamado pelo atalho).
ImagemImagem
«Escolhe um trabalho de que gostes, e não terás que trabalhar um só dia na tua vida» - Confúcio
Avatar do usuário
Luis Cardoso
Redator
 
Mensagens: 10455
Registrado em: 26 Maio, 2011
Localização: Portugal

Voltar para Scripts, programação e aplicações em desenvolvimento

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes

cron