Você está falando em um menu de programa (lxmenu) ou atalhos em uma barra de desktop ou painel? Para aqueles que você deve ser capaz de adicionar novos atalhos com o nome genérico (ou qualquer nome) que você gostaria. Ou uma seção "pessoal" com apenas os aplicativos que você costuma usar, nomeados do jeito que preferir (é o que eu faria).
Mas, desde que você esclareceu que "eu gostaria de alterar todos os nomes para os nomes genéricos de uma só vez, não fazê-los individualmente ... Cada aplicativo tem um nome genérico incorporado ao seu. arquivo da área de trabalho " aqui está uma resposta para" como fazer isso ".
Isso usa algumas ferramentas de linha de comando, como grep
& amp; sed
para procurar a parte "Name = ..." e substituí-la pela parte "GernericName = ...".
NOTA:
-
Você deve usar uma cópia local dos arquivos .desktop, colocando-os em
~/.local/share/applications/
, comcp -R --no-clobber -v /usr/share/applications/ ~/.local/share > ~/cp-applications.log
(isso pode adicionar mais arquivos do que você deseja ou precisa, mas grava um "log" em
~/cp-applications.log
do que foi copiado para o local no caso de você desejar desfazê-lo mais tarde), mas deixando o original está sozinho, e não sobrescrevendo nenhum arquivo local já existente. Também estou usando a opçãosed
-i
para fazer uma cópia de backup dos arquivos com o nome * .BAK. E - Se você quiser voltar às versões originais dos arquivos .desktop, poderá sobrescrever o arquivo .desktop com a sua cópia .desktop.BAK ou com o original de
/usr/share/applications/
. - Se houver outros arquivos .desktop com os quais você gostaria de brincar, você poderia pesquisar por todos os lugares, se quiser, com
find / -type f -name "*.desktop"
(canalizado para menos ou talvez um arquivo), mas isso retornará mais do que você deseja. - E se você quiser que o nome genérico específico do idioma seja editado, clique nele (por exemplo, "GenericName [en_GB]=").
Isso só altera a primeira ocorrência de "Nome=" (assim, deixa as coisas como "Abrir uma nova janela" do Firefox como estão):
#!/bin/bash
targetdir=~/.local/share/applications/
for i in $(grep -l "^GenericName=" "$targetdir"/*.desktop)
do
echo Hit on $i
tmphit=$(sed -n 's/^GenericName=//p' "$i")
echo Generic name is:"$tmphit"
sed -iBAK "0,/^Name=/s/^Name=.*/Name=$tmphit/g" "$i" || echo "SED FAILED!!!!"
done
Provavelmente, existe uma maneira de fazer isso com um marcador em perl
ou mesmo sed
, awk
, mas "meh".
Sinta-se à vontade para remover o eco também. E veja estas respostas para mais informações:
- Como usar variáveis no comando sed
- grep para conteúdo após padrão
- Como usar sed para substituir apenas a primeira ocorrência em um arquivo
Ou se você quiser executá-los a partir de um terminal, basta adicionar alguns links ao programa real, sob qualquer nome genérico que desejar. Encontre a localização do programa com which
(geralmente /usr/bin
) e vincule com ln
.