PaperWM es una extensión experimental de Gnome Shell que proporciona mosaico desplazable de ventanas y áreas de trabajo por monitor. Está inspirado en cuadernos de papel y gestores de ventanas de mosaico.
Compatible con Gnome Shell 3.28, 3.30 y 3.32 en X11 y wayland.
Aunque técnicamente es una extensión , en gran medida está construida sobre el escritorio de Gnome en lugar de simplemente extenderlo.
Instalación
Clone el repositorio y ejecute el
install.shscript desde el directorio. El instalador vinculará el repositorio a $XDG_DATA_HOME/gnome-shell/extensionspaperwm@hedning:matrix.org/donde gnome-shell puede encontrarlo../install.sh
La clonación del repositorio directamente
$XDG_DATA_HOMEtambién funciona:git clone ' https://github.com/paperwm/PaperWM.git ' \
" $ {XDG_DATA_HOME : - $ HOME / .local / share} /gnome-shell/extensions/paperwm@hedning:matrix.org "
Luego puedes habilitar la extensión en Gnome Tweaks, o habilitarla desde la línea de comandos:
gnome-shell-extension-tool -e paperwm @ hedning: matrix.org
Hay algunas configuraciones de Gnome Shell que funcionan mal con PaperWM. Para utilizar la configuración recomendada ejecute
set-recommended-gnome-shell-settings.sh. Se genera un script de "restaurar configuración anterior" para que la configuración original no se pierda.
La ejecución de la extensión instalará automáticamente un archivo de configuración del usuario como se describe en Desarrollo y configuración del usuario .
Uso
La mayoría de las funcionalidades están disponibles usando un mouse, por ejemplo. activando una ventana en el borde del monitor haciendo clic en ella. En wayland es posible navegar con movimientos de 3 dedos en el trackpad. Pero el enfoque principal es crear un entorno que funcione bien con un teclado.
Todas las combinaciones de teclas comienzan con el Supermodificador. En la mayoría de los teclados es la tecla de Windows, en los teclados de Mac es la tecla Comando. Es posible y recomendable modificar la distribución del teclado de modo que Superse cambie para que sea Altmás fácil acceder a todas las combinaciones de teclas. Esto se puede hacer a través de Gnome Tweaks en
Keybard & Mouse⟶ Additional Layout Options⟶ Alt/Win key behavior⟶ Left Alt is swapped with Left Win.
La mayoría de las combinaciones de teclas agarrarán el teclado mientras Superse mantiene presionado, solo cambiar de foco cuando Superse suelta. Escapeabortará la navegación y volverá a la ventana activa anterior.
Agregar Ctrla una combinación de teclas llevará la ventana actual con usted cuando navegue.
La gestión de ventanas y la navegación se basan en los tres conceptos siguientes.
Azulejo de ventana desplazable
Las ventanas nuevas se colocan automáticamente en mosaico a la derecha de la ventana activa, ocupando la mayor altura posible. SuperReturnabrirá una nueva ventana del mismo tipo que la ventana activa.
La activación de una ventana asegurará que sea completamente visible, desplazando el mosaico si es necesario. Al pulsar se Super.activa la ventana a la derecha. Super,Activa la ventana a la izquierda. En un teclado de EE. UU. Estas teclas están marcadas de forma intuitiva por , <y >también se ordenan de la misma manera en casi todos los diseños de teclado. Se mostrará un minimapa cuando Superse presione continuamente, como se puede ver en la captura de pantalla anterior.
Al presionar SuperIse moverá la ventana a la derecha debajo de la ventana activa, agrupándolas verticalmente en una columna. SuperOhará lo contrario, empujando la ventana inferior fuera de la columna actual.
Al deslizar el trackpad horizontalmente con tres dedos, se desplazará el mosaico (solo disponible en Wayland).
AltTab Por supuesto, también está disponible.
PaperWM no maneja muy bien los cuadros de diálogo modales adjuntos, por lo que es mejor desactivarlo en Gnome Tweaks (en Windows).
| Atajos de teclado | |
|---|---|
| Super, o Super. | Activar la ventana siguiente o anterior |
| SuperLeft o SuperRight | Activar la ventana a la izquierda o derecha. |
| SuperUp o SuperDown | Activar la ventana arriba o abajo. |
| SuperHome o SuperEnd | Activar la primera o la última ventana. |
| SuperCtrl, o SuperCtrl. | Mueve la ventana actual a la izquierda o derecha |
| SuperCtrlLeft o SuperCtrlRight | Mueve la ventana actual a la izquierda o derecha |
| SuperCtrlUp o SuperCtrlDown | Mueve la ventana actual hacia arriba o hacia abajo |
| Supert | Toma la ventana, colocándola cuando haya terminado de navegar. |
| SuperTab o AltTab | Recorre las ventanas usadas más recientemente |
| SuperShiftTab o AltShiftTab | Ciclo hacia atrás a través de las ventanas utilizadas más recientemente |
| SuperC | Centrar la ventana activa horizontalmente |
| SuperR | Cambiar el tamaño de la ventana (ciclos a través de anchos útiles) |
| SuperShiftR | Cambiar el tamaño de la ventana (ciclos de alturas útiles) |
| SuperF | Maximiza el ancho de una ventana |
| SuperShiftF | Cambiar a pantalla completa |
| SuperReturn o SuperN | Crear una nueva ventana desde la aplicación activa. |
| SuperBackspace | Cerrar la ventana activa |
| SuperI | Absorber la ventana a la derecha en la columna activa |
| SuperO | Expulsa la ventana inferior hacia la derecha. |
La pila de espacios de trabajo y monitores
Presionando SuperAbove_Tabdeslizará el área de trabajo activa hacia abajo, revelando la pila como se muestra en la captura de pantalla anterior. Luego puede hojear los espacios de trabajo usados más recientemente Above_Tabpresionando repetidamente mientras mantiene Superpresionado. Above_Tabes la clave anterior Tab( `en un diseño qwerty de EE. UU.). Al igual que alt-tab Shiftse agrega para mover en orden inverso.
El nombre del área de trabajo se muestra en la esquina superior izquierda, reemplazando el
Activitiesbotón y agregando algunas mejoras. Desplazarse en el nombre le permitirá navegar por la pila del área de trabajo igual que SuperAbove_Tab. Al hacer clic con el botón derecho en el nombre, puede acceder y cambiar el nombre del área de trabajo y el color de fondo:
Deslizar el trackpad verticalmente con tres dedos le permite navegar por la pila del área de trabajo (solo disponible en Wayland).
Hay un solo mosaico desplazable por área de trabajo. Agregar otro monitor simplemente hace posible tener otro espacio de trabajo visible. La pila del espacio de trabajo se comparte entre todos los monitores, las ventanas se redimensionan verticalmente según sea necesario cuando el espacio de trabajo se muestra en otro monitor.
PaperWM actualmente funciona mejor usando espacios de trabajo estáticos, esto se puede activar con Gnome Tweaks en Workspaces.
| Atajos de teclado | |
|---|---|
| SuperAbove_Tab o SuperPage_Down | Recorre los espacios de trabajo utilizados más recientemente. |
| SuperShiftAbove_Tab o SuperPage_Up | Ciclo hacia atrás a través de los espacios de trabajo utilizados más recientemente |
| SuperCtrlAbove_Tab o SuperCtrlPage_Down | Recorre la última ventana utilizada, llevándola contigo |
| SuperCtrlShiftAbove_Tab o SuperCtrlPage_Up | Recorre hacia atrás a través del último uso, llevándose la ventana activa con usted |
Capa rayada
La capa de scratch es una compuerta de escape para un diseño flotante familiar. Esta capa está diseñada para almacenar ventanas que son útiles a nivel mundial como las aplicaciones de chat y, en general, sirven como fregadero de la cocina. Cuando la capa de rayado está activa, flotará sobre las ventanas en mosaico, y cuando esté oculta, las ventanas se minimizarán.
Abrir una ventana cuando la capa de scratch está activa lo hará flotar automáticamente.
Al presionar se SuperEscapealterna entre mostrar y ocultar las ventanas en la capa de inicio. La activación de las ventanas en la capa de inicio se realiza usando SuperTablas ventanas flotantes que tienen prioridad en la lista mientras están activas. <
Al presionar se SuperEscapealterna entre mostrar y ocultar las ventanas en la capa de inicio. Cuando la capa de scratch está activa SuperTabda prioridad a las ventanas flotantes. Cuando el mosaico está activo, SuperShiftTabselecciona la última ventana reutilizada utilizada.
SuperCtrlEscapemoverá una ventana en mosaico a la capa de scratch o alternativamente una ventana ya flotante. También se puede acceder a esta funcionalidad a través del menú contextual de la ventana ( AltSpace).
| Atajos de teclado | |
|---|---|
| SuperEscape | Alternar entre mostrar y ocultar la ventana de scratch más reciente |
| SuperShiftEscape | Alternar entre mostrar y ocultar las ventanas de scratch |
| SuperCtrlEscape | Alternar entre flotar y colocar en mosaico la ventana actual |
| SuperTab | Recorre las ventanas reutilizables más recientes |
| SuperH | Minimizar la ventana actual |
Desarrollo y configuración del usuario.
Se
user.jscrea una configuración de usuario predeterminada, ~/.config/paperwm/con tres funciones init, enabley disable. initse ejecutará solo una vez en el inicio, enabley disablese ejecutará siempre que se indique a las extensiones que se deshabiliten y habiliten. P.ej. Al bloquear la pantalla con SuperL.
También hicimos un paquete emacs, gnome-shell-mode , para hacer que la piratería en la configuración y las extensiones de escritura sean una experiencia más agradable. Para admitir esto de manera inmediata, también instalamos un
metadata.jsonmodo gnome-shell-mode recogerá el contexto de archivo correcto, lo que le proporcionará una evaluación interactiva y completa. Mirando el cristal directamente en emacs.
Al pulsar SuperInsertasignará la ventana activa a una variable global
metaWindow, su ventana el actor que actor, a su espacio de trabajo para workspacey su espacio de trabajo de estilo PaperWM a space. Esto hace que sea fácil inspeccionar el estado y probar cosas.Winprops
Es posible crear reglas simples para colocar nuevas ventanas. Actualmente es más útil cuando una ventana debe colocarse en la capa de cero automáticamente. Un ejemplo, mejor colocado en la
initparte de user.js: let Tiling = Extension . importaciones . suelo de baldosas ;
Alicatado . defwinprop ({
wm_class : " Spotify " ,
scratch_layer : verdadero ,
oneshot : true
});
Se
wm_classpuede consultar el estado de una ventana haciendo clic SuperInserty luego verificando el valor de metaWindow.wm_classen emacs o espejo.Nuevos manejadores de ventanas
Si abrir una nueva ventana de aplicación con SuperReturnno está haciendo exactamente lo que desea, puede crear funciones personalizadas para satisfacer sus necesidades. Supongamos que desea que las nuevas ventanas de Emacs abran el búfer actual de forma predeterminada o que los nuevos terminales hereden el directorio actual:
dejar que App = Extension . importaciones . aplicación ;
App . customHandlers [ ' emacs.desktop ' ] =
() => imports . misceláneos . util . spawn ([ ' emacsclient ' , ' --eval ' , ' (make-frame) ' ]);
App . customHandlers [ ' org.gnome.Terminal.desktop ' ] =
( metaWindow , app ) => app . action_group . activate_action (
" win.new-terminal " ,
nuevo imports.gi.GLib.Variant ( " (ss) " , [ " ventana " , " actual " ]));
El id de la aplicación de una ventana se puede ver de la siguiente manera:
var Shell = importaciones . gi . Shell ;
Var Tracker = Shell . Window Tracker . get_default ();
var aplicación = Tracker . get_window_app (metaWindow);
aplicación . get_id ();
Las acciones de aplicación disponibles se pueden listar así:
aplicación . action_group . list_actions ();
Atajos de teclado
Debido a las limitaciones en la API de enlace de teclas de murmullo, necesitamos robar algunas acciones integradas en Gnome Shell de forma predeterminada. P.ej. la acción incorporada
switch-groupcon la SuperAbove_Tabcombinación de teclas predeterminada se anula para recorrer los espacios de trabajo utilizados recientemente. Si una acción anulada tiene varias combinaciones de teclas, desafortunadamente todas activarán la anulación, así que, por ejemplo, porque AltAbove_Tabtambién está vinculada a switch-groupella, se anulará de forma predeterminada. Si quieres evitar esto, por ejemplo. que desee AltTaby AltAbove_Tabutilizar el comportamiento incorporado simplemente eliminar los conflictos (es decir. SuperTaby SuperAbove_Taby sus Shiftvariantes) de /org/gnome/desktop/wm/keybindings/switch-group(no se reinicia requeridos).Keybindings definidos por el usuario
Extension.imports.keybindings.bindkey(keystr, name, handler, options)| Opción | Valores | Sentido |
|---|---|---|
activeInNavigator | true,false | La combinación de teclas está activa cuando el minimapa / navegador está abierto |
opensMinimap | true,false | El minimapa se abrirá cuando se invoque el enlace de teclas |
vamos Keybindings = Extensión . importaciones . combinaciones de teclas ;
Combinaciones de teclas . bindkey ( " <Super> j " , " my-favorite-width " ,
( metaWindow ) => {
let f = metaWindow . get_frame_rect ();
metawindow . move_resize_frame ( verdadero , f . x , f . y , 500 , f . h );
}
{activeInNavigator : true });
Vea
examples/keybindings.jspara más ejemplos.Extensiones recomendadas
Estas extensiones son buenos complementos para PaperWM:
- Switcher - ventana combinada switcher y launcher
- Dash to Dock - un gran muelle
Trabajo prioritario
Aparentemente, se probó una idea similar hace un tiempo: http://10gui.com/




Comentarios
Publicar un comentario
Todos sus comentarios seran bienvenidos, no se admiten insultos todo con el debido respeto que se merece cada persona, o de lo contrario seran eliminado cada comentario inrespetuoso hacia los demas. y autores del blog tambien puedes seguirnos en:
Facebook: https://www.facebook.com/groups/HackingTeamCyber/
Grupo de Telegram: https://t.me/TheHackForceOfficial
Canal de Youtube: https://www.youtube.com/channel/UCXy8Lg28OuGuI5Z-2EWJaNA?view_as=subscriber
Canal Vimeo: https://vimeo.com/403136547?activityReferer=1
Red Social Twitter: https://twitter.com/TheHackForce