Você precisa de um arquivo desktop
e um script de wrapper:
-
O arquivo
desktop
-
Crie um arquivo da área de trabalho
nano ~/.local/share/applications/wrapper.desktop
-
Adicione a configuração abaixo
[Desktop Entry] Name=File size dependent editor Comment=File size dependent editor Exec=/home/user/bin/wrapper %f Icon=gedit Terminal=false Type=Application Categories=Editor; StartupNotify=true MimeType=text/plain;
-
Substitua
user
emExec=/home/user/bin/wrapper %f
pelo seu nome de usuário, a saída deecho $USER
-
Substitua o nome do ícone em
Icon=gedit
por um nome ou caminho de sua preferência -
Use
MimeType=text/plain
para especificar os tipos de arquivos mímicos para os quais a decisão deve ser aplicada. Separe vários tipos de mime via;
Obtenha o tipo MIME via
mimetype your_file
por exemplo. para um arquivo de texto
text/plain
-
Se você quiser usar um editor com uma CLI, como nano, em vez de substituir
false
emTerminal=false
comtrue
-
-
O script de wrapper
-
Crie um novo script
mkdir -p ~/bin nano ~/bin/wrapper
-
Adicione o código abaixo
#!/usr/bin/env bash LARGE_FILE_EDITOR="glogg" SMALL_FILE_EDITOR="gedit" MAX_SMALL_FILE_SIZE=1000000 FILESIZE=$(stat -c%s "") if [ "$FILESIZE" -le $MAX_SMALL_FILE_SIZE ]; then "$SMALL_FILE_EDITOR" "" else "$LARGE_FILE_EDITOR" "" fi exit 0
-
Defina seu editor para arquivos grandes em
LARGE_FILE_EDITOR
, por exemploglogg
-
Defina seu editor para arquivos pequenos em
SMALL_FILE_EDITOR
, por exemplogedit
-
Defina o tamanho máximo de arquivo para o
$SMALL_FILE_EDITOR
emMAX_SMALL_FILE_SIZE
, por exemplo 1000000 para 1MB -
Torne seu script de wrapper executável
chmod +x ~/bin/wrapper
-
-
Reinicie o Unity / GNOME Shell, para o GNOME Shell, por exemplo. Alt - F2 , digite
r
e Digite -
Associe um ou mais tipos de arquivo ao wrapper
-
Abra o gerenciador de arquivos e clique com o botão direito do mouse em um arquivo cuja decisão é aplicar
-
Clique em Abrir com outro aplicativo
-
Clique no botão Visualizar todos os aplicativos
-
Selecione a entrada Editor dependente do tamanho do arquivo
-
-
Aproveite ;)