Quais arquivos estão envolvidos na geração do título da janela? Por exemplo, se você abrir o Rhythmbox, verá o nome do programa como o título da janela. Mas não é gerado pelo .desktop
arquivo. Quais arquivos eu preciso editar para adicionar texto ao título de um aplicativo? Eu quero que as mudanças sejam permanentes
Eu uso o Ubuntu GNOME 15.04 com o GNOME 3.16.
window-manager
xdotool
wmctrl
xprop
Maud Kon
fonte
fonte
Respostas:
O nome inicial é geralmente definido pelo (código dentro) do próprio aplicativo. No entanto, você pode alterá-lo, por exemplo, usando o
xdotool
que você precisaria instalar primeiro:Então, uma vez instalado, você pode definir outro nome de janela (por exemplo) pelo comando:
Isso vai mudar:
para dentro:
Nota
Como você pode ver, o comando existe de:
O
<current_name>
tem que corresponder exatamente.Editar alternativamente
Pelo seu comentário, entendo que o comando acima não funcionou. Testei-o com diferentes aplicações e funcionou ...
Mas por uma razão que eu não entendo, NÃO com
Rhytmbox
(!! pode ser um bug)Uma alternativa é usar
wmctrl
, que você também teria que instalar:Em seguida, use o comando:
Eu testei com sucesso em
Rhythmbox
:Tornar as alterações permanentes?
Como mencionado, o nome da janela padrão é definido no código do aplicativo.
Alterar o título da janela padrão precisaria alterar o código. Isso pode ser feito se o código estiver disponível, precisaria recompilar em muitos casos e depender do idioma usado, entre outras coisas. Uma instrução geral seria bastante impossível e além (fora) do escopo da UA na minha opinião.
EDIT 2
Gerenciar / definir com flexibilidade nomes de janelas personalizadas por aplicativo a partir de um único arquivo
Na sua pergunta original, você estava se perguntando se havia algum tipo de arquivo para definir o título das novas janelas de um aplicativo específico. Conforme explicado, esse não é o caso, no entanto, ele pode ser criado.
Na configuração abaixo, você pode definir muito facilmente em uma base por aplicativo como as novas janelas são nomeadas. Basta criar um arquivo em
~
(seu diretório inicial), chamadowindow_names.txt
. Para cada um dos aplicativos para os quais você deseja definir um nome de vento específico, adicione uma linha do subseqüente, o aplicativo e o nome da janela desejada:Um arquivo de texto, definindo nomes de janelas por aplicativo
Explicação
A configuração existe de um script em segundo plano simples. O script é muito leve, portanto, não terá nenhum efeito perceptível no desempenho.
Depois que o script é iniciado, ele lê o arquivo
~/window_names.txt
e carrega as configurações por aplicativo. Em seguida, fica de olho nas janelas recém- criadas. Se aparecer uma janela que pertence a um dos aplicativos, definida no arquivo, ela define o nome da janela de acordo.Como configurar
O script usa ambos
wmctrl
exdotool
:Copie o script em um arquivo vazio, salve-o como
setwindowname.py
Crie o arquivo
~/window_names.txt
(exatamente nomeadowindow_names.txt
), adicione seus aplicativos no formato:por exemplo
O nome da janela pode incluir espaços.
Teste o script a partir do terminal, executando o comando:
Se tudo funcionar como esperado, adicione-o aos aplicativos de inicialização: Dash> Startup Applications> Add
Observe que, em alguns casos, um script pode ser interrompido se iniciar quando a área de trabalho ainda não estiver totalmente carregada. Se esse for o caso, o comando a ser adicionado aos aplicativos de inicialização seria:
O script
Notas
~/window_names.txt
for editado, o script precisará ser reiniciado.sudo
.fonte
xdotool search --name "Rhythmbox" set_window --name "Music"
Fiz o comando com o aplicativo aberto, fechado e reiniciei (alt + f2 + r) para verificar se funcionava, mas ainda mostra o mesmo título da janela.O título é gerado pelo aplicativo executável e não há uma maneira fácil de editá-lo.
Alterando o título de um aplicativo, uma vez aberto:
xdotool
comsudo apt-get install xdotool
pgrep myapp
(iepgrep rythmbox
)Altere o título da janela (substituindo
HERE_THE_PID
pela identificação do processo do aplicativo):Criando um script para iniciar qualquer aplicativo com um título personalizado:
Crie um script bash chamado
change-title
com este conteúdo:Torne executável com
chmod a+x change-title
./change-title "NewTitle" theapp --its-arguments
Para tornar a alteração permanente:
gksudo gedit /usr/local/bin/custom-title
(por exemplo, usuário / local / bin / música)sudo chmod a+x /usr/local/bin/custom-title
gksudo gedit /usr/share/applications/rhythmbox.desktop
Nesse arquivo, há uma linha (o número da linha é 35 no meu) que diz:
Substitua-o por este pelo nome do arquivo criado:
Para efetivar a alteração na função "abrir com"
gksudo gedit /usr/share/applications/rhythmbox-device.desktop
rhythmbox
para o nome usado no arquivo .desktop anterior.sudo kill rhythmbox
(Resumo) Visão geral dos arquivos que você deve ter
Para tornar o aplicativo totalmente funcional, você deve ter 3 arquivos .desktop
/usr/share/applications
ao concluir:music.desktop
ou o nome que você deu ao aplicativocom
Exec=music
eHidden=true
(adicione o último se não estiver presente)rhythmbox.desktop
com
Exec=rhythmbox %U
eHidden=true
rhythmbox-device.desktop
com
Exec=music --select-source %U
e SEM a entrada OcultaIsso significa que você sempre abre o último arquivo e o título é sempre como deveria. A única maneira de se redefinir é quando você atualiza sua sessão com ALT + F2 + R.
/usr/local/bin
claro.Notas finais:
--name "\a\b\c"
é para corrigir um erro , não substitua pelo nome do aplicativo!Explicação do
${@:2}
código solicitado por @Maud Kon :$@
é uma matriz que armazena todos os parâmetros posicionais.${@:2}
significa: Todos os parâmetros posicionais, exceto o primeiroDigamos que chamo um programa dessa maneira:
${@:1}
seriafoo bar baz fooz
${@:2}
seriabar baz fooz
${@:3}
seriabaz fooz
${@:4}
seriafooz
${@:5}
está vazio porque não há mais parâmetros posicionais.$@
,${@}
e${@:1}
são a mesma coisa: todos os parâmetros posicionais.fonte
Basta usar o arquivo de tradução!
Corri para este mesmo
problemadesafio com Thunar: Tornou-se irritante quando Compiz Escala exibido o título da janela Thunar como "AnyFolder - Gerenciador de Arquivos" e espaço consumida com informações desnecessárias.Tentei as maneiras acima mencionadas com
xdotool
ewmctrl
mas elas não eram permanentes, pois Thunar altera o título da janela toda vez que vou para outra pasta. E parecia exagerado ter um script em segundo plano para mudar o título de volta toda vez que Thunar o altera.Uma solução mais fácil foi usar o arquivo de tradução que acompanha todos os aplicativos. Você simplesmente precisa recompilar o arquivo de origem da tradução com uma ferramenta chamada
msgfmt
incluída nogettext
pacote. Eu apenas fiz isso pelo gThumb - apenas por diversão - e também funciona.1. Obtenha o código fonte do aplicativo em questão.
Digite ou vá para http://packages.ubuntu.com , obtenha a fonte e procure uma pasta chamada : ela contém arquivos de linguagem em texto sem formatação. Procure seu idioma. Digamos que você é do Brasil, esse arquivo seria
$ sudo apt-get source APPLICATION
po
pt_BR.po
2. Altere o arquivo de acordo com suas necessidades
Procure o exato! título da janela que você deseja remover ou alterar. No caso do Thunar foi "Gerenciador de Arquivos" e
pt_BR.po
eu acheionde
msgid
está o sinal que o aplicativo envia e paramsgstr
onde o langpack o traduz.Mude
msgstr
para o que quiser, ou sejamsgstr "o_-"
.Aprendi que, se você deixar a tradução vazia dessa maneira,
msgstr ""
o aplicativo voltará paramsgid
. Se você quiser que esteja "vazio", use espaço em branco. Ou um ponto. Ou qualquer símbolo ASCII descolado.3. Obtenha o compilador
Conforme mencionado, você precisa
msgfmt
dogettext
pacote, então precisa digitar$ sudo apt-get install gettext
4. Compilar
Abra um terminal, vá para a pasta com o seu alterado
pt_BR.po
e deixe o msgfmt verificar se há erros no arquivo:$ msgfmt --check --check-accelerators=_ -o /dev/null pt_BR.po
Se estiver tudo bem, vá em frente e compile-o:
$ msgfmt -c -o pt_BR.mo pt_BR.po
5. Coloque o arquivo Veja
como a tradução original em / usr / share / locale / YOUR_LANGUAGE / LC_MESSAGES / ou / usr / share / locale-langpack / YOUR_LANGUAGE / LC_MESSAGES / é nomeada e coloque seu arquivo lá. Se não existir nos dois lugares, coloque-o em um deles e experimente um pouco com o nome do arquivo: minúsculo, Camelcase ou algo do tipo,
gthumb.mo
ou seja, ouYOUR-APP.mo
.Faça um backup do original primeiro: depois copie sua nova tradução para lá
$ sudo cp /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo.BAK
$ sudo cp pt_BR.mo /usr/share/locale/YOUR_LANGUAGE/LC_MESSAGES/YOUR-APP.mo
Se o YOUR_APP estiver em execução, feche todas as instâncias.
Teste-o!
Dica Se você estiver executando o Ubuntu com a localização EN como eu, use qualquer * .po, exclua ou comente todos os pares inalterados de msgid / msgstr e coloque-o em / usr / share / locale / pt / LC_MESSAGES / .
Fontes:
http://wiki.xfce.org/translations/translation_guidance_in_xfce
fonte
.desktop
arquivos: novamente, você deve confundir minha resposta com outra que possa ter lido. A resposta não edita.desktop
arquivos e nenhuma ação é necessária quando um aplicativo é reinstalado..desktop
arquivos e faço isso com os arquivos de tradução. Você conhece isso? E eu posso dar a QUALQUER solução de script uma segunda chance, já que agora li "mu__Incoming -", onde eu tinha "mu__Incoming - File Manager" . Para aplicativos que possuem um título estático de janela sem nenhum "caminho / para / pasta", minhas soluções funcionam bem.Substituir (partes de) títulos de janela por wmctrl
Como minha própria resposta usando o arquivo de tradução do aplicativo não foi suficiente para vários casos, desenvolvi a solução de Jacob Vlijm e modifiquei seu script para substituir certas strings nos títulos das janelas. Espero que esteja tudo bem em postar uma resposta separada. Os créditos vão para Jacob Vlijm pela idéia e pela configuração do script!
Por exemplo, eu gosto de ler em
Some fancy website
vez deSome fancy website - Mozilla Firefox
. O plug-in de escala do Compiz está muito mais claro agora, como também removi- File manager
e outras strings.Alterações que fiz:
//
como separadorwindow_names.txt
para permitir espaços em brancowmctrl
vez dexdotool
modificar o título da janela (já que o xdotool não lida com caracteres não-ASCII muito bem):wmctrl -i -r [WindowIdentifier] -N 'new Title'
O modificado
window_names.txt
está estruturado da seguinte forma:[process name]//[exact text to replace]//[replacement text]
O script aprimorado:
Novamente: Os créditos vão para Jacob Vlijm pela idéia e configuração do script!
fonte