Difference between revisions of "Dwm (Español)"

From ArchWiki
Jump to: navigation, search
m (codeline -> ic)
Line 31: Line 31:
  
 
===Creación e instalación del paquete===
 
===Creación e instalación del paquete===
Use {{Ic|cd}} para acceder al directorio que contiene los scripts de creación (en el ejemplo previo utilizamos {{Filename|~/dwm}}). Luego ejecute:
+
Use {{Ic|cd}} para acceder al directorio que contiene los scripts de creación (en el ejemplo previo utilizamos {{ic|~/dwm}}). Luego ejecute:
 
  $ makepkg -i
 
  $ makepkg -i
  
 
Ésto compilará dwm, creará un paquete de Arch Linux conteniendo los archivos resultantes e instalará los paquetes, todo en un sólo paso. De ocurrir un problema durante éste proceso, verifique el mensaje mostrado por pantalla en busca de información relacionada.
 
Ésto compilará dwm, creará un paquete de Arch Linux conteniendo los archivos resultantes e instalará los paquetes, todo en un sólo paso. De ocurrir un problema durante éste proceso, verifique el mensaje mostrado por pantalla en busca de información relacionada.
  
{{Tip|Si el directorio ({{filename|~/dwm}}) es conservado, puede ser utilizado posteriormente para realizar cambios en la configuración por defecto.}}
+
{{Tip|Si el directorio ({{ic|~/dwm}}) es conservado, puede ser utilizado posteriormente para realizar cambios en la configuración por defecto.}}
  
 
==Configuración==
 
==Configuración==
Como se mencionó anteriormente, dwm es configurado exclusivamente en tiempo de compilación mediante algunos de sus archvos de código fuente, siendo éstos {{Filename|config.h}} y {{Filename|config.mk}}. Si bien la configuración inicial es funcional, es lógico esperar que en algún momento los usuarios deseen realizar modificaciones y ajustes a sus configuraciones.
+
Como se mencionó anteriormente, dwm es configurado exclusivamente en tiempo de compilación mediante algunos de sus archvos de código fuente, siendo éstos {{ic|config.h}} y {{ic|config.mk}}. Si bien la configuración inicial es funcional, es lógico esperar que en algún momento los usuarios deseen realizar modificaciones y ajustes a sus configuraciones.
  
 
===Método 1: Re-crear con ABS (recomendado)===
 
===Método 1: Re-crear con ABS (recomendado)===
Line 45: Line 45:
  
 
====Personalizando config.h====
 
====Personalizando config.h====
Busque y diríjase al directorio que contiene el código fuente de dwm utilizado durante la [[#Instalación|instalación]] ({{filename|~/dwm}} en el ejemplo anterior). Dentro de ésta carpeta encontramos el archivo {{filename|config.h}}, en el cual se almacenan las preferencias generales de configuración de dwm. La mayoría de las opciones que encontramos dentro de éste archivo deberían ser auto-descriptivas, pese a que algunas no compartan el mismo rasgo. Para una información detallada de éstas opciones, visite el http://www.suckless.org/dwm/ sitio de dwm].
+
Busque y diríjase al directorio que contiene el código fuente de dwm utilizado durante la [[#Instalación|instalación]] ({{ic|~/dwm}} en el ejemplo anterior). Dentro de ésta carpeta encontramos el archivo {{ic|config.h}}, en el cual se almacenan las preferencias generales de configuración de dwm. La mayoría de las opciones que encontramos dentro de éste archivo deberían ser auto-descriptivas, pese a que algunas no compartan el mismo rasgo. Para una información detallada de éstas opciones, visite el http://www.suckless.org/dwm/ sitio de dwm].
  
{{note|Asegúrese de realizar una copia de respaldo del archivo {{filename|config.h}}, en caso de que algo no funcione correctamente.}}
+
{{note|Asegúrese de realizar una copia de respaldo del archivo {{ic|config.h}}, en caso de que algo no funcione correctamente.}}
  
 
Una vez que realizamos los cambios , redirigimos el nuevo md5sums a [[PKGBUILD]]:
 
Una vez que realizamos los cambios , redirigimos el nuevo md5sums a [[PKGBUILD]]:
 
  $ makepkg -g >> PKGBUILD
 
  $ makepkg -g >> PKGBUILD
Ésto eliminará un error de comparación entre los checksum del archivo {{filename|config.h}} original y la copia modificada.
+
Ésto eliminará un error de comparación entre los checksum del archivo {{ic|config.h}} original y la copia modificada.
  
 
El paso siguiente es compilar y re-instalar:
 
El paso siguiente es compilar y re-instalar:
Line 61: Line 61:
  
 
====Notas====
 
====Notas====
De ahora en más, en vez de actualizar el md5sum para cada modificación del archivo {{filename|config.h}}, que es sabido que ocurre frecuentemente, simplemente se podría eliminar el arreglo (array) de md5sum y re-crear dwm con la opción {{Ic|--skipinteg}}:
+
De ahora en más, en vez de actualizar el md5sum para cada modificación del archivo {{ic|config.h}}, que es sabido que ocurre frecuentemente, simplemente se podría eliminar el arreglo (array) de md5sum y re-crear dwm con la opción {{Ic|--skipinteg}}:
 
  $ makepkg -efi --skipinteg
 
  $ makepkg -efi --skipinteg
  
Line 69: Line 69:
 
dwm es mantenido mayoritariamente con una versión de control [http://www.selenic.com/mercurial/wiki/ Mercurial] en [http://hg.suckless.org/dwm suckless.org]. Aquellos ya familiarizados con Mercurial pueden encontrar conveniente mantener las configuraciones y los parches con éste sistema. En el sitio web oficial podemos encontrar un [http://www.suckless.org/dwm/customisation/patch_queue.html tutorial avanzado] referido al tema.
 
dwm es mantenido mayoritariamente con una versión de control [http://www.selenic.com/mercurial/wiki/ Mercurial] en [http://hg.suckless.org/dwm suckless.org]. Aquellos ya familiarizados con Mercurial pueden encontrar conveniente mantener las configuraciones y los parches con éste sistema. En el sitio web oficial podemos encontrar un [http://www.suckless.org/dwm/customisation/patch_queue.html tutorial avanzado] referido al tema.
  
Antes de crear dwm desde las fuentes Mercurial, asegúrese de modificar el archivo {{Filename|config.mk}} adecuadamente, ya que un error en éste paso puede resultar en la caída del servidor X. Estos son los valores que necesitan ser modificados:
+
Antes de crear dwm desde las fuentes Mercurial, asegúrese de modificar el archivo {{ic|config.mk}} adecuadamente, ya que un error en éste paso puede resultar en la caída del servidor X. Estos son los valores que necesitan ser modificados:
  
 
Modify {{Ic|PREFIX}}:
 
Modify {{Ic|PREFIX}}:
Line 79: Line 79:
  
 
==Iniciando dwm==
 
==Iniciando dwm==
Para iniciar dwm con {{Ic|startx}} o con el gestor de inicio de sesión [[SLIM]], simplemente agregue las siguientes líneas al archivo {{Filename|~/.xinitrc}}:  
+
Para iniciar dwm con {{Ic|startx}} o con el gestor de inicio de sesión [[SLIM]], simplemente agregue las siguientes líneas al archivo {{ic|~/.xinitrc}}:  
 
  exec dwm
 
  exec dwm
  
Si utiliza [[GDM]], debe agregar la línea a {{Filename|~/.Xclients}}, y seleccionar "Run XClient Script" del menú Sessions.
+
Si utiliza [[GDM]], debe agregar la línea a {{ic|~/.Xclients}}, y seleccionar "Run XClient Script" del menú Sessions.
  
 
==Configuración de la barra de estado (statusbar)==
 
==Configuración de la barra de estado (statusbar)==
Line 88: Line 88:
  
 
===Barra de estado básica===
 
===Barra de estado básica===
Este ejemplo indica como mostrar la fecha en formato [http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]. Debemos agregar a {{filename|~/.xinitrc}} or {{filename|~/.Xclients}} las siguientes líneas:
+
Este ejemplo indica como mostrar la fecha en formato [http://en.wikipedia.org/wiki/ISO_8601 ISO 8601]. Debemos agregar a {{ic|~/.xinitrc}} or {{ic|~/.Xclients}} las siguientes líneas:
 
<pre>
 
<pre>
 
while true; do
 
while true; do
Line 123: Line 123:
 
</pre>
 
</pre>
  
{{note|Debe asegurarse de tener solamente una instancia de dwm en {{filename|~/.xinitrc}} o {{filename|~/.Xclients}}.}}  
+
{{note|Debe asegurarse de tener solamente una instancia de dwm en {{ic|~/.xinitrc}} o {{ic|~/.Xclients}}.}}  
  
 
===Barra de estado con conky===
 
===Barra de estado con conky===
Line 130: Line 130:
 
  exec dwm
 
  exec dwm
  
El siguiente ejemplo de {{filename|.conkyrc}} muestra diversa información de una computadora con doble núcleo:
+
El siguiente ejemplo de {{ic|.conkyrc}} muestra diversa información de una computadora con doble núcleo:
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
background no
 
background no
Line 142: Line 142:
 
</pre>
 
</pre>
  
Es posible también utilizar la versión estándar de [[conky]] agregando la opción {{Ic|out to x no}} a la configuración de {{filename|.conkyrc}}. En el anterior ejemplo se vería así:
+
Es posible también utilizar la versión estándar de [[conky]] agregando la opción {{Ic|out to x no}} a la configuración de {{ic|.conkyrc}}. En el anterior ejemplo se vería así:
 
<pre style='overflow:auto'>
 
<pre style='overflow:auto'>
 
background no
 
background no
Line 166: Line 166:
  
 
===Eliminar espacios entre ventanas de las terminales ===
 
===Eliminar espacios entre ventanas de las terminales ===
Si se ven espacios vacíos en el escritorio fuera de las ventanas de las terminales, probablemente se deba al tamaño de la fuente de la terminal. Para solucionar ésto, o bien puede ajustar el tamaño de la fuente hasta encontrar la escala ideal que elimina el hueco, o modificar {{Ic|resizehints}} a ''False'' en el archivo {{filename|config.h}}:
+
Si se ven espacios vacíos en el escritorio fuera de las ventanas de las terminales, probablemente se deba al tamaño de la fuente de la terminal. Para solucionar ésto, o bien puede ajustar el tamaño de la fuente hasta encontrar la escala ideal que elimina el hueco, o modificar {{Ic|resizehints}} a ''False'' en el archivo {{ic|config.h}}:
 
  static Bool resizehints = False; /* False means respect size hints in tiled resizals */
 
  static Bool resizehints = False; /* False means respect size hints in tiled resizals */
  
Line 188: Line 188:
 
Ahora dwm puede ser reiniciado sin cerrar súbitamente otras ventanas X utilizando la combinaciones de teclas correspondiente ({{Ic|Mod1+Shit+q}} por defecto).
 
Ahora dwm puede ser reiniciado sin cerrar súbitamente otras ventanas X utilizando la combinaciones de teclas correspondiente ({{Ic|Mod1+Shit+q}} por defecto).
  
Es una buena idea poner el script anterior en un archivo separado, por ejemplo {{Filename|~/bin/startdwm}}, y ejecutarlo con {{filename|~/.xinitrc}}. De ésta manera, cuando se desee reiniciar la sesión X, simplemente debe ejecutar {{Ic|killall startdwm}}, o asignarlo a una tecla de su conveniencia.
+
Es una buena idea poner el script anterior en un archivo separado, por ejemplo {{ic|~/bin/startdwm}}, y ejecutarlo con {{ic|~/.xinitrc}}. De ésta manera, cuando se desee reiniciar la sesión X, simplemente debe ejecutar {{Ic|killall startdwm}}, o asignarlo a una tecla de su conveniencia.
  
 
===Deshabilitar el ganar foco con el ratón (mouse)===
 
===Deshabilitar el ganar foco con el ratón (mouse)===
Para deshabilitar la posibilidad de ganar foco utilizando el ratón, simplemente hay que comentar la siguiente línea en la definición de la estructura de control en {{Filename|dwm.c}}:
+
Para deshabilitar la posibilidad de ganar foco utilizando el ratón, simplemente hay que comentar la siguiente línea en la definición de la estructura de control en {{ic|dwm.c}}:
 
<pre>[EnterNotify] = enternotify, </pre>
 
<pre>[EnterNotify] = enternotify, </pre>
  

Revision as of 11:58, 13 February 2012

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Resumen del artículo help replacing me
Provee la información necesaria para instalar y configurar dwm
Artículos relacionados
dmenu
wmii

dwm es un gestor de ventanas dinámico para X. Permite posicionar las mismas en forma de mosaico (tiling), en forma de pila (stack), y en pantalla completa (monocle), así como en diversas modalidades adicionales mediante la ayuda de parches opcionales. La disposición de las ventanas puede ser aplicada en forma dinámica optimizando así el entorno en función de la aplicación en uso y la tarea a realizar. dwm es extremadamente liviano y rápido, está escrito en C con la premisa de que su código fuente no supere las 2000 líneas. Provee soporte de multi-monitor para xrandr y Xinerama.

Instalación

Estas instrucciones le indicarán como instalar dwm utilizando makepkg junto a al Arch Build System, o ABS. Ésto le permitirá modificar la configuración posteriormente sin complicaciones. Si solamente está interesado en probar dwm, puede simplemente instalar el paquete binario desde los repositorios:

# pacman -S dwm

Tenga en cuenta que al omitir compilar dwm desde su código fuente la personalización se verá truncada, ya que toda la configuración de dwm es realizada editando el código fuente. Teniendo ésto en cuenta, el resto del artículo asume que dwm ha sido compilado desde el código fuente como será explicado a continuación en ésta sección.

Quizá también quiera considerar instalar dmenu, un menú dinámico, rápido y liviano para X

  1. pacman -S dmenu

Requerimientos

Las herramientas básicas de programación presentes en el paquete Template:Package Official son requeridas para compilar dwm y crear un paquete de éste, y el paquete de Template:Package Official también es un requisito para obtener los scripts de creación:

# pacman -S base-devel abs

Descarga de los scripts de creación con ABS

Una vez que los paquetes requeridos están instalados, utilize ABS para obtener los últimos scripts de creación desde los repositorios:

# abs community/dwm

Por último, copie los scripts de creación de dwm desde el árbol de directorios de ABS a un directorio temporal. Por ejemplo:

$ cp -r /var/abs/community/dwm ~/dwm

Creación e instalación del paquete

Use cd para acceder al directorio que contiene los scripts de creación (en el ejemplo previo utilizamos ~/dwm). Luego ejecute:

$ makepkg -i

Ésto compilará dwm, creará un paquete de Arch Linux conteniendo los archivos resultantes e instalará los paquetes, todo en un sólo paso. De ocurrir un problema durante éste proceso, verifique el mensaje mostrado por pantalla en busca de información relacionada.

Tip: Si el directorio (~/dwm) es conservado, puede ser utilizado posteriormente para realizar cambios en la configuración por defecto.

Configuración

Como se mencionó anteriormente, dwm es configurado exclusivamente en tiempo de compilación mediante algunos de sus archvos de código fuente, siendo éstos config.h y config.mk. Si bien la configuración inicial es funcional, es lógico esperar que en algún momento los usuarios deseen realizar modificaciones y ajustes a sus configuraciones.

Método 1: Re-crear con ABS (recomendado)

Modificar la configuración de dwm es bastante sencillo utilizando éste procedimiento.

Personalizando config.h

Busque y diríjase al directorio que contiene el código fuente de dwm utilizado durante la instalación (~/dwm en el ejemplo anterior). Dentro de ésta carpeta encontramos el archivo config.h, en el cual se almacenan las preferencias generales de configuración de dwm. La mayoría de las opciones que encontramos dentro de éste archivo deberían ser auto-descriptivas, pese a que algunas no compartan el mismo rasgo. Para una información detallada de éstas opciones, visite el http://www.suckless.org/dwm/ sitio de dwm].

Note: Asegúrese de realizar una copia de respaldo del archivo config.h, en caso de que algo no funcione correctamente.

Una vez que realizamos los cambios , redirigimos el nuevo md5sums a PKGBUILD:

$ makepkg -g >> PKGBUILD

Ésto eliminará un error de comparación entre los checksum del archivo config.h original y la copia modificada.

El paso siguiente es compilar y re-instalar:

$ makepkg -efi

Asumiendo que los cambios realizados en la configuración son válidos, éste comando compilará dwm, re-creará y re-instalará el paquete resultante. De ocurrir un problema durante éste proceso, verifique el mensaje mostrado por pantalla en busca de información relacionada.

Finalmente, reiniciamos dwm para aplicar los nuevos cambios.

Notas

De ahora en más, en vez de actualizar el md5sum para cada modificación del archivo config.h, que es sabido que ocurre frecuentemente, simplemente se podría eliminar el arreglo (array) de md5sum y re-crear dwm con la opción --skipinteg:

$ makepkg -efi --skipinteg

Luego de agregar unas líneas al script de inicio de dwm, es posible reiniciar dwm sin cerrar sesión y programas abiertos.

Método 2: Mercurial (avanzado)

dwm es mantenido mayoritariamente con una versión de control Mercurial en suckless.org. Aquellos ya familiarizados con Mercurial pueden encontrar conveniente mantener las configuraciones y los parches con éste sistema. En el sitio web oficial podemos encontrar un tutorial avanzado referido al tema.

Antes de crear dwm desde las fuentes Mercurial, asegúrese de modificar el archivo config.mk adecuadamente, ya que un error en éste paso puede resultar en la caída del servidor X. Estos son los valores que necesitan ser modificados:

Modify PREFIX:

PREFIX = /usr

The X11 include folder:

X11INC = /usr/include/X11

And the the X11 lib directory:

X11LIB = /usr/lib/X11

Iniciando dwm

Para iniciar dwm con startx o con el gestor de inicio de sesión SLIM, simplemente agregue las siguientes líneas al archivo ~/.xinitrc:

exec dwm

Si utiliza GDM, debe agregar la línea a ~/.Xclients, y seleccionar "Run XClient Script" del menú Sessions.

Configuración de la barra de estado (statusbar)

dwm utiliza xsetroot -name para mostrar información en su barra de estado (statusbar)

Barra de estado básica

Este ejemplo indica como mostrar la fecha en formato ISO 8601. Debemos agregar a ~/.xinitrc or ~/.Xclients las siguientes líneas:

while true; do
   xsetroot -name "$( date +"%F %R" )"
   sleep 1m    # Update time every minute
done &
exec dwm

Este ejemplo está pensado para las computadoras portátiles que dependen del paquete Template:Package Official para mostrar información correspondiente a la batería:

while true ; do
    xsetroot -name "$( acpi -b | awk '{ print $3, $4 }' | tr -d ',' )"
    sleep 1m
done &
exec dwm

Éste script muestra la cantidad de batería restante, así como de su estado de carga mediante el comando awk para recortar el texto innecesarios de acpi y tr para eliminar las comas.

Una alternativa al script anterior es mostrar el estado de la batería de forma selectiva, en función del estado actual de carga:

while sleep 1m; do
  batt=`LC_ALL=C acpi -b`

  case $batt in
    *Discharging*) batt=${batt_main#* * * }; batt="${batt%%, *} " ;;
    *)             batt=''                                        ;;
  esac

  xsetroot -name "$batt`date +"%R"`"
done &
exec dwm
Note: Debe asegurarse de tener solamente una instancia de dwm en ~/.xinitrc o ~/.Xclients.

Barra de estado con conky

Disponible en AUR, Template:Package AUR es una versión especial de conky que imprime la información a stdout. Si ya se encuentra acostumbrado a conky, puede crear una barra de estado con abundante información en cuestión de minutos. Una vez que conky ha sido confiugrado a gusto, simplemente imprima el resultado redirigiendo conky a la barra de estado con xsetroot -name:

conky | while read -r; do xsetroot -name "$REPLY"; done &
exec dwm

El siguiente ejemplo de .conkyrc muestra diversa información de una computadora con doble núcleo:

background no
out_to_console yes
update_interval 2
total_run_times 0
use_spacer none

TEXT
$mpd_smart :: ${cpu cpu1}% / ${cpu cpu2}%  ${loadavg 1} ${loadavg 2 3} :: ${acpitemp}c :: $memperc% ($mem) :: ${downspeed eth0}K/s ${upspeed eth0}K/s :: ${time %a %b %d %I:%M%P}

Es posible también utilizar la versión estándar de conky agregando la opción out to x no a la configuración de .conkyrc. En el anterior ejemplo se vería así:

background no
out_to_x no
out_to_console yes
update_interval 2
total_run_times 0
use_spacer none

TEXT
$mpd_smart :: ${cpu cpu1}% / ${cpu cpu2}%  ${loadavg 1} ${loadavg 2 3} :: ${acpitemp}c :: $memperc% ($mem) :: ${downspeed eth0}K/s ${upspeed eth0}K/s :: ${time %a %b %d %I:%M%P}

Uso extendido

Parches y modos de mosaico (tiling) adicionales

El sitio oficial tiene varios parches que pueden agregar funcionalidad adicional a dwm. Los usuarios pueden personalizar fácilmente dwm mediante la aplicación de las modificaciones que deseen. Por ejemplo, el parche Bottom Stack provee una forma de posicionamiento en mosaico adicional que divide la pantalla en forma horizontal, al contrario de la forma original, que lo hace verticalmente. Así mismo, Bottom Stack divide los mosaicos secundarios en forma horizonta.

El parche gaplessgrid permite que la división en mosaicos sea en forma de grilla.

Habilitar un posicionamiento (layout) diferente por cada tag

El comportamiento por defecto de dwm es aplicar el posicionamiento seleccionado a todos los tags en forma simultánea. Para tener diferentes posicionamientos en diferentes tags, debemos utilizar el partche pertag.

Eliminar espacios entre ventanas de las terminales

Si se ven espacios vacíos en el escritorio fuera de las ventanas de las terminales, probablemente se deba al tamaño de la fuente de la terminal. Para solucionar ésto, o bien puede ajustar el tamaño de la fuente hasta encontrar la escala ideal que elimina el hueco, o modificar resizehints a False en el archivo config.h:

static Bool resizehints = False; /* False means respect size hints in tiled resizals */

Ésto causará que dwm ignore las peticiones de ajuste de tamaño de todas las ventanas, no sólo de las terminales. La desventaja de esta solución es que algunas terminales pueden sufrir anomalías al ser re-dibujadas en pantalla, tales como líneas fantasma o saltos de líneas premators, entre otras.

Urxvt

Una opción para los usuarios de urxvt es aplicar el parche 'hints patch' y regresar a dwm a su comportamiento original:

static Bool resizehints = True;

Reiniciar dwm sin cerrar sesión y programas abiertos

Para reiniciar dwm sin cerrar sesión o cerrar los programas abiertos, modifique o agregue el siguiente código al script de inicio, así dwm carga en un bucle while, de la siguiente manera:

while true; do
    # Log stderror to a file 
    dwm 2> ~/.dwm.log
    # No error logging
    #dwm >/dev/null 2>&1
done

Ahora dwm puede ser reiniciado sin cerrar súbitamente otras ventanas X utilizando la combinaciones de teclas correspondiente (Mod1+Shit+q por defecto).

Es una buena idea poner el script anterior en un archivo separado, por ejemplo ~/bin/startdwm, y ejecutarlo con ~/.xinitrc. De ésta manera, cuando se desee reiniciar la sesión X, simplemente debe ejecutar killall startdwm, o asignarlo a una tecla de su conveniencia.

Deshabilitar el ganar foco con el ratón (mouse)

Para deshabilitar la posibilidad de ganar foco utilizando el ratón, simplemente hay que comentar la siguiente línea en la definición de la estructura de control en dwm.c:

[EnterNotify] = enternotify, 

Recursos adicionales