¿Qué archivos están involucrados en la generación del título de la ventana? Por ejemplo, si abre Rhythmbox, verá el nombre del programa como el título de la ventana. Pero no es generado por el .desktop
archivo. ¿Qué archivo (s) necesito editar para agregar texto al título de una aplicación? Quiero que los cambios sean permanentes.
Yo uso Ubuntu GNOME 15.04 con GNOME 3.16.
window-manager
xdotool
wmctrl
xprop
Maud Kon
fuente
fuente
Respuestas:
El nombre inicial generalmente lo establece el (código dentro) de la propia aplicación. Sin embargo, puede cambiarlo, por ejemplo, mediante el uso
xdotool
, que primero deberá instalar:Luego, una vez que está instalado, puede configurar otro nombre de ventana mediante (por ejemplo) el comando:
Esto cambiará:
dentro:
Nota
Como puede ver, el comando existe de:
El
<current_name>
tiene que coincidir exactamente.Editar alternativamente
Por su comentario, entiendo que el comando anterior no funcionó. Lo probé con diferentes aplicaciones, y funcionó ...
Pero por una razón que no entiendo, NO con
Rhytmbox
(¡podría ser un error!)Una alternativa es usarla
wmctrl
, que también deberías instalar:Luego usa el comando:
Lo probé con éxito en
Rhythmbox
:¿Hacer los cambios permanentes?
Como se mencionó, el nombre de la ventana predeterminada se define en el código de la aplicación.
Cambiar el título predeterminado de la ventana necesitaría cambiar el código. Eso se puede hacer si el código está disponible, sería necesario volver a compilar en muchos casos y depende del idioma utilizado, entre otras cosas. Una instrucción general sería bastante imposible y más allá (fuera) del alcance de AU en mi opinión.
EDITAR 2
Administre / configure de manera flexible nombres de ventanas personalizados por aplicación desde un solo archivo
En su pregunta original, se preguntaba si había algún tipo de archivo para establecer el título de nuevas ventanas de una aplicación específica. Como se explicó, ese no es el caso, sin embargo, se puede crear.
En la configuración a continuación, puede definir fácilmente en una base por aplicación cómo se nombran las nuevas ventanas. Simplemente cree un archivo en
~
(su directorio de inicio), llamadowindow_names.txt
. Para cada una de las aplicaciones para las que desea establecer un nombre de ventana específico, agregue una línea de subsecuencia, la aplicación y el nombre de ventana deseado:Un archivo de texto que define los nombres de las ventanas por aplicación.
Explicación
La configuración existe de un script de fondo simple. El guión es muy ligero, por lo que no tendrá ningún efecto notable en el rendimiento.
Una vez que se inicia el script, lee el archivo
~/window_names.txt
y carga la configuración por aplicación. Luego vigila las ventanas recién creadas. Si aparece una ventana que pertenece a una de las aplicaciones, definida en el archivo, establece el nombre de la ventana en consecuencia.Como instalar
El script usa ambos
wmctrl
yxdotool
:Copie el script en un archivo vacío guárdelo como
setwindowname.py
Cree el archivo
~/window_names.txt
(exactamente nombradowindow_names.txt
), agregue sus aplicaciones en el formato:p.ej
El nombre de la ventana puede incluir espacios.
Pruebe y ejecute el script desde la terminal con el comando:
Si todo funciona como se esperaba, agréguelo a las aplicaciones de inicio: Tablero> Aplicaciones de inicio> Agregar
Tenga en cuenta que, en algunos casos, un script puede romperse si se inicia cuando el escritorio aún no está completamente cargado. Si ese fuera el caso, el comando para agregar a las aplicaciones de inicio sería:
La secuencia de comandos
Notas
~/window_names.txt
se edita, la secuencia de comandos debe reiniciarse.sudo
.fuente
xdotool search --name "Rhythmbox" set_window --name "Music"
Hice el comando con la aplicación abierta, cerrada e hice un reinicio (alt + f2 + r) para verificar si funcionaba, pero aún muestra el mismo título de ventana.El título es generado por el ejecutable de la aplicación y no hay una manera fácil de editarlo.
Cambiar el título de una aplicación una vez abierta:
xdotool
consudo apt-get install xdotool
pgrep myapp
(es decirpgrep rythmbox
)Cambie el título de la ventana (reemplazando
HERE_THE_PID
con la identificación del proceso de la aplicación):Hacer un script para iniciar cualquier aplicación con un título personalizado:
Cree un script bash llamado
change-title
con estos contenidos:Hazlo ejecutable con
chmod a+x change-title
./change-title "NewTitle" theapp --its-arguments
Para hacer el cambio permanente:
gksudo gedit /usr/local/bin/custom-title
(fx. Usuario / local / bin / music)sudo chmod a+x /usr/local/bin/custom-title
gksudo gedit /usr/share/applications/rhythmbox.desktop
En este archivo, hay una línea (el número de línea es 35 en la mía) que dice:
Reemplácelo con esto con el nombre del archivo creado:
Para que el cambio sea efectivo para la función "abrir con"
gksudo gedit /usr/share/applications/rhythmbox-device.desktop
rhythmbox
al nombre utilizado en el archivo .desktop anterior.sudo kill rhythmbox
(Resumen) Descripción general de los archivos que debe tener
Para que la aplicación sea completamente funcional, debe tener 3 archivos .desktop
/usr/share/applications
cuando haya terminado:music.desktop
o el nombre que le diste a la aplicacióncon
Exec=music
yHidden=true
(agregue el último si no está presente)rhythmbox.desktop
con
Exec=rhythmbox %U
yHidden=true
rhythmbox-device.desktop
con
Exec=music --select-source %U
y SIN la entrada ocultaEsto significa que siempre abre el último archivo y el título es siempre como debería. La única forma en que se restablece es cuando actualiza su sesión con ALT + F2 + R.
/usr/local/bin
supuesto.Notas finales
--name "\a\b\c"
es para corregir un error , ¡no lo reemplace con el nombre de la aplicación!Explicación del
${@:2}
código solicitado por @Maud Kon :$@
es una matriz que almacena todos los parámetros posicionales.${@:2}
significa: todos los parámetros posicionales excepto el primeroDigamos que llamo a un programa de esta manera:
${@:1}
seríafoo bar baz fooz
${@:2}
seríabar baz fooz
${@:3}
seríabaz fooz
${@:4}
seríafooz
${@:5}
está vacío porque no hay más parámetros posicionales.$@
,${@}
y${@:1}
son lo mismo: todos los parámetros posicionales.fuente
¡Solo usa el archivo de traducción!
Me encontré con este
problemamuyproblemáticocon Thunar: se volvió molesto cuando Compiz Scale mostraba el título de la ventana de Thunar como "AnyFolder - File Manager" y consumía espacio con información innecesaria.Probé las formas mencionadas anteriormente con
xdotool
ywmctrl
pero no fueron permanentes ya que Thunar cambia el título de su ventana cada vez que voy a otra carpeta. Y se sintió exagerado tener un guión sentado en el fondo para cambiar el título cada vez que Thunar lo altera.Una solución más fácil fue usar el archivo de traducción que viene con cada aplicación. Simplemente necesita volver a compilar el archivo fuente de traducción con una herramienta llamada
msgfmt
incluida en elgettext
paquete. Acabo de hacer esto para gThumb -solo por diversión- y allí también funciona.1. Obtenga el código fuente de la aplicación en cuestión.
Escriba o diríjase a http://packages.ubuntu.com , obtenga la fuente y busque una carpeta llamada : contiene archivos de texto sin formato. Busca tu idioma. Digamos que eres de Brasil, ese archivo sería
$ sudo apt-get source APPLICATION
po
pt_BR.po
2. Modifique el archivo según sus necesidades
¡Busque el exacto! título de la ventana que desea eliminar o cambiar. En el caso de Thunar fue "Administrador de archivos" y
pt_BR.po
encontrédónde
msgid
está la señal que envía la aplicación y amsgstr
qué se traduce el langpack.Cambia
msgstr
a lo que quieras, es decirmsgstr "o_-"
.Aprendí que si dejas la traducción vacía así,
msgstr ""
la aplicación volverá amsgid
. Si quiere que esté "vacío" use espacios en blanco. O un punto O cualquier símbolo funky ASCII.3. Obtenga el compilador
Como se mencionó que necesita
msgfmt
delgettext
paquete, por lo que debe escribir$ sudo apt-get install gettext
4. Compilar
Abra una terminal, vaya a la carpeta con su alterado
pt_BR.po
y deje que msgfmt verifique si hay errores en el archivo:$ msgfmt --check --check-accelerators=_ -o /dev/null pt_BR.po
Si está bien, continúe y compílelo:
$ msgfmt -c -o pt_BR.mo pt_BR.po
5. Coloque el archivo Vea cómo se nombra
la traducción original en / usr / share / locale / YOUR_LANGUAGE / LC_MESSAGES / o / usr / share / locale-langpack / YOUR_LANGUAGE / LC_MESSAGES / y coloque su archivo allí. Si no existe en ambos lugares, colóquelo en uno de ellos y experimente un poco con el nombre del archivo: minúsculas, Camelcase o algo así, es decir,
gthumb.mo
oYOUR-APP.mo
.Primero haga una copia de seguridad del original: luego copie su nueva traducción allí
$ 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
Si YOUR_APP se está ejecutando, cierre todas las instancias.
¡Pruébalo!
Sugerencia Si está ejecutando Ubuntu con la localización EN como yo, simplemente use cualquier * .po, elimine o comente todas las parejas msgid / msgstr que no hayan cambiado y póngalo en / usr / share / locale / en / LC_MESSAGES / .
Fuentes:
http://wiki.xfce.org/translations/translation_guidance_in_xfce
fuente
.desktop
archivos: nuevamente, debe confundir mi respuesta con otra que haya leído. La respuesta no edita.desktop
archivos y no se necesita ninguna acción cuando se reinstala una aplicación..desktop
archivos y lo hago con los archivos de traducción. ¿Lo sabes? Y puedo darle a CUALQUIER solución de script una segunda oportunidad ya que ahora leí, por ejemplo, "mu__Incoming -" donde tenía "mu__Incoming - File Manager" . Para las aplicaciones que tienen un título de ventana estática sin ninguna "ruta / a / carpeta", mis soluciones funcionan bien.Reemplazar (partes de) títulos de ventanas con wmctrl
Dado que mi propia respuesta usando el archivo de traducción de la aplicación no fue suficiente para varios casos, desarrollé la solución de Jacob Vlijm y modifiqué su script para reemplazar ciertas cadenas en los títulos de las ventanas. Espero que esté bien publicar esta respuesta por separado. ¡Los créditos van a Jacob Vlijm por la idea y la configuración del guión!
Por ejemplo, me gusta leer en
Some fancy website
lugar deSome fancy website - Mozilla Firefox
. El complemento de escala Compiz es mucho más claro ahora, ya que también eliminé- File manager
y otras cadenas.Cambios que hice:
//
como separadorwindow_names.txt
para permitir espacios en blancowmctrl
lugar dexdotool
modificar el título de la ventana (ya que xdotool no maneja muy bien los caracteres no ASCII):wmctrl -i -r [WindowIdentifier] -N 'new Title'
El modificado
window_names.txt
está estructurado así:[process name]//[exact text to replace]//[replacement text]
El guión proxeneta:
De nuevo: ¡Los créditos van a Jacob Vlijm por la idea y la configuración del guión!
fuente