¿Cómo establecer un acceso directo para "Siempre en la parte superior" para la ventana?

27

En 12.04 (Unity), me gustaría asignar un acceso directo a la "opción siempre en la parte superior" para una ventana. Probablemente algo como Ctrl+ Shift+ Homepara encender y Ctrl+ Shift+ Endpara apagar, o lo que sea. ¿Existe alguna opción para hacer esto en algún lugar del Compiz Settings Manager?

Esta publicación (antigua) afirmó que

Para compiz, habilite acciones WM adicionales. Verifique las propiedades e inserte ALT+ Aen el campo Clave para la acción Alternar siempre arriba.

Pero no pude encontrar eso.

Ian Hincks
fuente
1
¿Alguien aquí logró hacer que esto funcione en Ubuntu 12.10 sin usar ccsm? gracias
Suhaib

Respuestas:

32

Debería funcionar en todos los sistemas operativos Ubuntu desde la versión 9.04 sin instalar nada, modificando la creación de accesos directos.

Prueba Alt+ Space, T

  • Alt+ Space como el primer acceso directo abre el menú del mouse con el botón derecho

  • T selecciona la función "Siempre arriba".

usuario294298
fuente
1
Esta es absolutamente la mejor respuesta en la página.
dotancohen
Confirmado trabajando en Unity 14.04. El hecho de que alt + espacio active un menú desplegable ayuda especialmente para las funciones que se usan con poca frecuencia.
Frank M
Esta debería ser la respuesta seleccionada. ¡Gracias!
Nam G VU
1
Esto se publicó 2 años después de la pregunta, pero ahora representa la mejor respuesta, por lo que estoy cambiando la respuesta aceptada.
Ian Hincks
2
no funciona en 18.04, la T ya no selecciona la función 'Siempre arriba'.
rvbarreto
14

Como nadie ha mencionado esto todavía, dejaré una solución que funcionó para mí en Ubuntu 12.04.

Puede configurar un método abreviado de teclado normal y usar wmctrl para alternar la opción "Siempre en la parte superior".

Vaya a Configuración del sistema> Teclado> Accesos directos> Accesos directos personalizados . Presiona + y dale un nombre a tu acceso directo. Luego ingrese el siguiente comando.

wmctrl -r :ACTIVE: -b toggle,above

Si aún no lo tiene, puede instalar wmctrl desde los repositorios usando

sudo apt-get install wmctrl

Deberías tener algo similar a esto.

Captura de pantalla que muestra una pantalla de configuración de acceso directo de teclado personalizada

¡Presiona aplicar y deberías estar listo!

Esta solución vino de una discusión en los foros de Ubuntu .

Kasisnu
fuente
@Suhaib Esa parte ya está en la respuesta. :)
Kasisnu
LOL lo siento. No sé cómo me lo perdí xD
Suhaib
7

Si no es así, instale CCSM y complementos adicionales de compiz a través de:

sudo apt-get install compizconfig-settings-manager compiz-plugins-extra

Ten en cuenta por favor. CCSM puede matar a Unity3D en algunos sistemas.

Si aún no ha instalado compiz-plugins-extra, debe reiniciar Compiz para cargarlos (aunque se muestren en CCSM justo antes del reinicio) con Alt+ F2y

compiz --replace

Puede ver Acciones adicionales de WM en la sección Administración de Windows en CCSM como se explica en la publicación que encontró. Puede establecer la acción deseada allí fácilmente.

corazon magico
fuente
En realidad, reiniciar compiz solo es necesario para conocer los nuevos complementos. Después, puede cambiar los accesos directos sobre la marcha (es decir, no necesita reiniciar Compiz después de cada cambio de un acceso directo)
sup
Gracias por la información @sup. Simplemente lo expliqué usando la publicación dada. En realidad no lo intenté yo mismo.
heartsmagic
Bueno, lo reformulé para hacerlo aún más claro :-).
Sup
2

Otra mejor solución, creo, es agregar Alt+ Acomo un atajo para alternar la propiedad "Siempre en la parte superior" de una ventana. Esto se puede hacer a través de gconf-editor . Simplemente siga las sencillas instrucciones dadas en este video .

EDITAR: copiado del video

  1. si está utilizando 12.04 && 12.10, debe instalar gconf-editor

    sudo apt-get install gconf-editor

  2. Escriba gconf-editoren la terminal.

  3. Haga clic en aplicaciones

  4. Ir a metacity

  5. window_keybindings

  6. haga clic derecho dentro del cuadro derecho y haga clic en new key

  7. Elija stringde la lista desplegable.

  8. Agrega la palabra toggle_above

  9. Escribe cualquier comando que quieras. es decir: A y presione OK

Hecho :-)

tamakisquare
fuente
no funcionó :-(
Suhaib
Sí, tampoco funciona para 12.10.
sup
Debería ser dconf-editor en 14.04 ... pero tampoco funciona.
Ed Villegas
1

Intenté usar el wmctrlcomando de alternar, pero no funcionó en mi configuración de Ubuntu. La palanca se activaría, pero no se desactivaría. (Creo que podría ser porque estoy usando el entorno de escritorio gnome, en el que wmctrlAFAIK está ligeramente roto).

De todos modos, después de mucha investigación y averiguar cómo escribir el código adecuado en bash, creé un solo comando que usa los wmctrlcomandos dentro de una capa de lógica para alternar el estado 'siempre en la parte superior' de manera efectiva en el escritorio actual de GNOME. Publiqué esta respuesta en Ask Unix / Linux, pero pensé en publicarla aquí también en caso de que alguien tuviera el mismo problema.

Aquí está el comando:

bash -c 'wmctrl -r :ACTIVE: -b $([[ $(xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") _NET_WM_STATE) =~ "ABOVE" ]] && echo "remove" || echo "add"),above'

Comprueba la propiedad de estado de la ventana activa "_NET_WM_STATE" utilizando xprops, y si contiene el texto "ARRIBA", significa que la opción 'siempre en la parte superior' está activa. Luego simplemente ejecuta el wmctrlcomando con el parámetro addo removesegún corresponda.


Desglose de comandos (cada comando se inserta en el siguiente, reemplazando el marcador de posición):

  • Obtener ID de ventana activa:

    xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}"
    
  • Obtenga el estado de la ventana al xpropusar la identificación:

    xprop -id $(■) _NET_WM_STATE
    
  • Compruebe si el estado contiene "ARRIBA", lo que indica que la ventana está configurada como "siempre arriba":

    [[ $(■) =~ "ABOVE" ]]
    
  • Devuelve "remove" si es verdadero, de lo contrario devuelve "add":

    ■ && echo "remove" || echo "add"
    
  • Ejecute el wmctrlcomando utilizando el valor devuelto como parámetro:

    wmctrl -r :ACTIVE: -b $(■),above
    
  • Envíe todo para bashque pueda usar la sustitución de comandos ${ ... }, la evaluación booleana de bash [[ ... ]]y el operador de coincidencia de expresiones regulares =~:

    bash -c '■'
    

    Este último paso en particular me llevó mucho tiempo resolverlo. Hasta que me di cuenta de que los atajos de teclado no se ejecutaban en bash de forma predeterminada, no tenía idea de por qué los comandos funcionaban en la consola mientras los probaba, pero fallaban silenciosamente cuando se ejecutaban directamente como atajos de teclado. ¡Me llevó por la pared por siglos!

Nota: debido a que necesita comillas alrededor del comando que está enviando a bash, tuve que tener cuidado al escribir el comando de que nunca fui más de un nivel más profundo (usando comillas dobles). Cualquier anidamiento adicional de cadenas entre comillas habría requerido muchas barras invertidas confusas para escapar de las comillas.

Geoff Davids
fuente
0

Puede ser demasiado tarde, pero si alguien lo busca de nuevo y viene aquí, hay una solución más simple para mí:

En ubuntu y en muchas otras distribuciones que usan GTK (en su mayoría comparten el panel de configuración), puede ir a Configuración -> teclado> acceso directo. En la "lista" de acceso directo, encontrará la entrada sin asignar para mantener una ventana en la parte superior. No estoy seguro del nombre en inglés, pero en francés es "Activer / Désactiver la mise au premier plan de la fenêtre".

Configúralo y eso es todo :)

Gabriel Genois
fuente