L

LegnaZen

Usuario (Argentina)

Primer post: 22 feb 2014Último post: 11 feb 2015
2
Posts
111
Puntos totales
14
Comentarios
I
Idea para un panel estilo Gnome + mini guía de Conky
LinuxporAnónimo2/22/2014

Bueno señores (?), en esta ocasión les traigo una idea de cómo hacer un panel ''Gnome style'' usando Conky... De bajo presupuesto quizá, pero con toda la onda del mundo. Éste es el panel de Gnome (uno que encontré por ahí, como ejemplo): Y éste es el panel que hice: Antes que alguno ose apuntar su dedo acusador contra mí (?), les aviso que en ningún momento pretendo hacer una copia exacta del panel de Gnome. La idea fue usar su diseño como inspiración y además tomar algunas de las bondades de Conky para lograr un panel sencillo y minimalista que planeo instalar en algún momento en mi sistema Parabola (basado en ArchLinux) con Openbox... ¿tamos? A su vez, el objetivo del post pretende ser una mini guía básica de cómo usar Conky en general (no solamente para hacer paneles) y fomentar el interés para que otros creen sus propios diseños o puedan hacer modificaciones en alguno que encuentren por ahí. Es muy probable, también, que parte de lo que escriba a continuación sea sanata, pero la intención es buena... Tuve un atacazo artístico, lo llevé a cabo y lo quiero compartir con ustedes para ver qué les parece y si lo podemos mejorar. Así que si ven que algo está mal, es incorrecto o si tienen alguna sugerencia infórmenme así aprendemos entre todos... Este tutorial lo hice sobre un sistema Trisquel (basado en Ubuntu), que es donde hago todas las pruebas y experimentos, pero debe funcionar sobre cualquier sistema sin problemas. Bueno, ¡basta de cháchara y manos a la obra! Los ingredientes son: 1 Conky 1 Emulador de terminal (yo uso Guake, pero lo dejo a tu criterio) 1 Editor de texto (tipo el Gedit que viene con el Gnome) Editor de imágenes (para redimensionarlas), a gusto Birras, cantidad necesaria //////////////////////////////////////////////////////////////////////////////////////////// Lo primero que haremos es abrir un documento en blanco en el editor de texto que hayamos elegido. Luego copiaremos el código que les dejo más abajo (son sólo configuraciones para Conky, nada del otro mundo) y lo pegaremos en el documento en blanco que habíamos abierto. #---//ENCABEZADO//---# #---//config 1//---# own_window yes #al activarlo indico que quiero que Conky use su propia ventana own_window_type panel #indica el tipo de comportamiento que tendrá Conky own_window_transparent no #hace que el fondo sea totalmente totalmente transparente own_window_colour black #color del fondo, sólo si "own_window_transparent" está desactivado own_window_argb_visual no #al activarla podremos variar la transparencia del fondo, sólo si "own_window_transparent" está desactivado own_window_argb_value 255 #el nivel de transparencia del fondo, entre 0 y 255 #---//config 2//---# alignment mm #determina la posición de Conky en la pantalla gap_x 0 #mueve nuestro Conky de manera horizontal (se aceptan números negativos), en píxeles gap_y 0 #mueve nuestro Conky de manera vertical (se aceptan números negativos), en píxeles minimum_size 600 60 #tamaño de nuestro Conky, en píxeles #---//config 3//---# draw_borders no #al desactivarlo indico que no quiero usar bordes border_width 1 #ancho del borde en píxeles default_color white #color por defecto de la fuente y del borde draw_outline no #al desactivarlo indico que no quiero usar contornos en caracteres y bordes default_outline_color black #color por defecto del contorno de los caracteres y los bordes draw_shades no #al desactivarlo indico que no quiero usar sombras en los caracteres default_shade_color black #color por defecto de las sombras de los caracteres #---//config 4//---# cpu_avg_samples 2 #número de muestras a promediar para mostrar los datos del cpu net_avg_samples 2 #número de muestras a promediar para mostrar los datos de red format_human_readable yes #para que Conky muestre los valores muy grandes en KiB, MiB, GiB, etc. en vez de Bytes short_units yes #para que en vez de mostrar las unidades en KiB, MiB, etc. se muestren en K, M, etc. double_buffer yes #al activarlo se evita el "parpadeo" de Conky update_interval 1.0 #el tiempo que tarda en actualizarse la información que Conky nos muestra, en segundos update_interval_on_battery 1.0 #lo mismo que la variable anterior, pero estando en uso la batería de la laptop total_run_times 0 #indica las veces que se puede correr Conky, un valor 0 hace que Conky esté siempre activo override_utf8_locale yes #fuerza el uso de UTF-8, útil si se quiere mostrar texto con tildes por ejemplo use_xft yes #es necesario activarlo si se fuerza el uso de UTF-8 #-----------------------------------------------------------------------# #---//CUERPO//---# TEXT $time Por último lo guardaremos como a un documento de texto cualquiera poniéndole como nombre conkyrc en alguna ubicación de nuestro sistema (es recomendable guardarlo en nuestro directorio/carpeta personal). Entonces cuando queramos hacer alguna modificación en el diseño de Conky lo único que deberemos hacer es editar ese archivo con el editor de texto que prefiramos. Nota: todo lo que está luego de ''#'' en una misma línea, en el archivo de configuración que les pasé, es un comentario y no es tenido en cuenta por Conky al ser ejecutado. Sin embargo, sirve para hacer anotaciones que serán vistas por aquellos que abran el archivo conkyrc. En este caso me sirve para explicarles a ustedes para qué sirve cada línea anterior. Por ejemplo en las líneas 20 y 21: alignment mm #determina la posición de Conky en la pantalla alignment mm es la configuración que Conky tendrá en cuenta y lo que está abajo, luego de ''#'', es un comentario que hice para explicar el funcionamiento de alignment. En el archivo conkyrc de arriba, si lo dividimos por partes para estudiarlo mejor, por un lado tenemos algo así como un encabezado y por el otro lo que vendría a ser el cuerpo. En el encabezado van las configuraciones que hagamos que repercutirán en la apariencia y comportamiento de la ventana de Conky (ver debajo de ''config 1''), en sus dimensiones y ubicación en la pantalla (''config 2''), en la estética de lo que contendrá en su interior (''config 3'') y en otras propiedades que influyen en la manera de funcionar del programa (''config 4''). Esto de diferenciar cuatro tipos de configuraciones generales es una cosa mía para poder explicarles mejor este tutorial a ustedes y para que haya un orden y luego les sea más fácil ubicar los cambios que vayan a realizar. No obstante, ustedes pueden agregar todas las configuraciones que quieran en cualquier orden en el archivo conkyrc y no necesariamente como lo hice yo. En el cuerpo, por su parte, van las variables que le dicen a Conky lo que debe mostrarnos (texto, números, barras, gráficos, imágenes, es decir, todo aquello dentro de Conky que podamos ver). En el archivo de configuración de más arriba hay, por ahora, una sola (se deben agregar debajo de ''TEXT'') puesto que primero les explicaré cómo trabajar su encabezado para colocar a Conky donde queramos, con la estética y tamaño que nos guste, y luego recién voy a agregar el resto de sus elementos internos. Para correr Conky y hacer las pruebas de este tutorial abriremos nuestro emulador de terminal preferido e introduciremos en él la orden conky -c ruta, donde ruta es la dirección donde se encuentra nuestro archivo de configuración (o sea conkyrc). Vendría al pelo (así diría mi viejo) si el emulador de terminal admitiera pestañas. Por otra parte, para ''matar a Conky'' (cerrarlo) introduciremos la orden killall conky. Entonces el protocolo que seguiremos es: editamos el archivo conkyrc a gusto, lo abrimos a través del emulador de terminal para ver los resultados, si queremos seguir haciendo modificaciones matamos Conky y volvemos a repetir el ciclo tantas veces sea necesario hasta llegar a un resultado que nos satisfaga. Es un proceso tedioso, pero divertido... En fin, al ejecutar por primera vez Conky (con las configuraciones que les pasé al principio) lo primero que veremos es algo parecido a lo siguiente: Nuestro Conky, como vemos en la imagen, está justo en el medio, pero podemos moverlo si cambiamos el valor mm de alignment. Entonces: Para moverlo arriba hacia la izquierda: alignment tl Para moverlo abajo hacia la derecha: alignment br Para moverlo en el medio hacia la izquierda: alignment ml Otros valores que puede tener alignment son: mr (en el medio a la derecha), tr (arriba a la derecha), bl (abajo a la izquierda)... En realidad se trata de abreviaturas; tl = top left (arriba a la izquierda), tm = top middle (arriba al medio), tr = top right (arriba a la derecha), mr = middle right (en el medio a la derecha), mm = middle middle (justo en el medio), ml = middle left (en el medio a la izquierda), bl = bottom left (abajo a la izquierda), bm = bottom middle (abajo al medio) y br = bottom right (abajo a la derecha). Ahora, antes de continuar, veamos cómo hacer que el fondo de Conky sea totalmente transparente: own_window_transparent yes O con un cierto grado de transparencia: own_window_argb_visual yes own_window_argb_value 140 Para ello debemos variar el valor de own_window_argb_value por un número entero entre 0 (transparencia total) y 255 (opacidad total). Nota: además de desactivar own_window_transparent, el administrador de ventanas que usen debe soportar transparencias reales para que este efecto funcione adecuadamente. También podemos cambiar el color del fondo. Esto lo haremos manipulando own_window_colour (antes desactivemos las transparencias para apreciarlo mejor) que admite como valor el nombre de un color en inglés, así: own_window_colour red O el equivalente hexadecimal (sin el signo ''#'') de alguno: own_window_colour 94bd8d Para saber el código hexadecimal de otros colores se puede consultar en sitios como estos: http://html-color-codes.info/codigos-de-colores-hexadecimales/, http://www.colorcodehex.com/, entre otros. En mi caso quiero que el panel sea negro. Así que vuelvo a poner de ese color el fondo de Conky. Retomando el tema de cómo ubicar nuestro Conky en la pantalla. Una vez que aprendimos a alinearlo en algún punto, podemos moverlo hacia arriba o hacia abajo y hacia la derecha o la izquierda modificando gap_x (movimiento horizontal) y gap_y (movimiento vertical) para hacer un ajuste más fino. Así: gap_x 100 gap_y -100 En este caso lo que hice fue mover mi Conky 100px hacia la derecha y 100px hacia abajo. Tanto gap_x como gap_y admiten números negativos. No obstante, como lo que quiero es hacer un panel, que abarque toda la pantalla a lo ancho, lo más recomendable es no hacer cambios en estas variables, así que les volvemos a asignar 0 como valor a ambas. Con esto que vimos ya debemos poder ubicar nuestro Conky donde queramos, sólo hay que jugar un cacho con los valores. Además aprendimos a cambiarle de color y a volverlo transparente (muy útil si queremos que Conky parezca que es parte de nuestro fondo de pantalla). Ahora veamos cómo cambiar su tamaño con minimum_size. Esta vez, como lo que quiero es hacer un panel, debo indicarle en anchura el valor de ancho de la resolución de la pantalla (en mi caso 1366px, ustedes pongan el que corresponda) y, de alto, 24px estará bien por ahora. De esta manera: minimum_size 1366 24 Nota: el primer número (1366) indica el ancho en píxeles y el segundo (24), el alto en la misma unidad. Noten que hay un espacio entre ambos. Si se coloca un solo número, éste corresponderá al ancho y el alto se ajustará de forma automática acorde a lo que agreguemos en el cuerpo de Conky. Por ahora, éste es el resultado: Ustedes pueden darle las dimensiones que deseen. Por último, con ayuda de alignment lo colocamos arriba tirado a una punta como vimos anteriormente. Y voilà: Como se ve en la imagen de abajo, nuestro Conky ya se comporta como panel pues intento colocar una ventana encima de él y no me deja. Ya se puede decir formalmente que..... ¡¡¡HABEMUS PANEL!!! Un panel rudimentario aún, pero panel al fin y al cabo. Nota: si lo que quieren es que Conky sea parte del fondo de escritorio (no como panel), como se lo suele usar comúnmente, lo que deben hacer, además de habilitar la transparencia (esto si desean que Conky parezca que es parte del wallpaper), es cambiar el valor de own_window_type de panel a normal y agregar lo siguiente: own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager para que Conky no se vea y actúe como una ventana cualquiera. Bien, ahora veamos algunas configuraciones estéticas. Por ejemplo, si le cambiamos el valor a default_color podemos variar el color de la fuente. Esto sucede cuando le damos el valor red: default_color red Pero al hacer esto tenemos que tener en cuenta que además de definir el color de la fuente, también estamos definiendo el del borde. En la imagen anterior no se ve esto porque no fueron activados los bordes. Esto sucede si los activamos: draw_borders yes Veámoslo mejor si agrandamos los bordes unos 100px: border_width 100 En realidad cuando le decimos a Conky que dibuje los bordes, éste lo hace en los cuatro costados. En las imágenes se ve uno solo por la manera en la que tengo ubicado mi panel. También podemos agregarle algunos efectos simples al texto. Como una línea de contorno de otro color a los caracteres y la parte interna del borde: draw_outline yes default_outline_color green Éste es el resultado: O podemos agregar un efecto de sombra (antes desactivemos draw_outline para que se aprecie mejor este efecto), así: draw_shades yes default_shade_color white Bueno, esos fueron algunos simples detalles estéticos para tener en cuenta. Ahora vuelvo a dejar todo como antes. Para ello desactivemos las líneas de contorno, sombras y bordes, si los activaron al seguir esta guía, y cambiemos el color de la fuente nuevamente a blanco. No les voy a decir cómo, primero porque soy bien forro (?) y segundo porque ya deberían tener una noción de cómo hacerlo. ¡Listo! Con las configuraciones vistas hasta el momento se pueden lograr diseños muy creativos con un poco de práctica y ganas. Para otras opciones de configuración se puede consultar en la siguiente página (nomás hay que darse un poco de maña con el inglés o usar un buen traductor): http://conky.sourceforge.net/config_settings.html. Entren y vean... El asunto es así. Hay dos columnas, una se llama ''Variable'' y la otra ''Explanation''. La que se llama ''Variable'' indica las variables que podemos agregar a nuestro archivo de configuración (nosotros sólo debemos asignarle un valor que corresponda para que funcione) y la denominada ''Explanation'' nos ofrece una breve explicación de qué es lo que hace. Por ejemplo, sobre border_inner_margin la explicación es: ''margen interno del borde en píxeles (el margen entre el borde y el texto)''. O sea que admite valores en píxeles que modifican el tamaño del margen que hay entre el texto y la parte interna del borde. Para probarlo, lo agregamos en alguna parte de nuestro conkyrc, en cualquiera antes de ''TEXT'', y le adjudicamos un valor en píxeles para ver qué sucede cuando ejecutemos Conky (para apreciar mejor su funcionamiento activemos los bordes sólo para este ejemplo). Entonces: border_inner_margin 100 Como se puede ver el resultado de este experimento fue, efectivamente, agrandar el margen entre el texto y el borde unos 100px. Ahora que ya aprendimos cómo agregar más configuraciones, más allá de las que vimos en este tutorial, vamos a modificar lo que vendría a ser el cuerpo del monitor y que es lo que vemos dentro de Conky. Por ejemplo, en la siguiente imagen, el reloj con la fecha sería parte de éste: Vayamos al archivo conkyrc y debajo de ''TEXT'' escribamos lo siguiente (o algo parecido; sólo escriban lo que se les cante): $time ESTA ES UNA PRUEBAaaaAAaaaA!!! jua jua jua Antes de ejecutar Conky, con el cambio realizado, sería bueno borrar el tamaño vertical que habíamos definido en minimum_size (sólo por éste y el próximo ejemplo). Y el resultado sería éste: De esto se deduce que todo lo que escribamos debajo de ''TEXT'' lo veremos reflejado dentro de la ventana de Conky. Los espacios que dejemos en el archivo de configuración también se dejarán en el programa, incluso cuando hagamos un salto de línea o escribamos texto común al lado de una variable. Esto que parece básico, es muy importante para saber lo que tenemos a mano y cómo ordenar todo lo que vamos a ''meter'' en nuestro Conky. Notemos otra cosa. Las variables que escribamos en nuestro archivo de configuración (debajo de ''TEXT'') siempre van después del signo ''$'' (de lo contrario serían interpretadas como texto común y corriente). Por ejemplo, agreguemos una línea horizontal con la variable hr y escribamos hr sin el signo ''$'' para ver qué sucede: $time ESTA ES UNA PRUEBAaaaAAaaaA!!! $hr hr jua jua jua Se vería así: Algunos suelen usar esta línea a continuación de una palabra o frase a modo de título. Otros como separador. Pero eso es cuestión de gustos y de necesidades. El asunto por ahora es aprender a diferenciar texto ordinario respecto de las variables. Ahora aprendamos a modificar el reloj y la fecha a nuestro gusto y piacere. Para ello hay que tener en cuenta que hay variables que admiten opciones (formalmente ''argumentos''), como es el caso de time. Las opciones que ésta admite, entre las que más se usan, son: %d = muestra el número del día, así: ''28''. %A = muestra el nombre del día, así: ''lunes''. %a = muestra el nombre del día, así: ''lun''. %D = muestra la fecha, así: ''01/28/14''. %B = muestra el mes, así: ''enero''. %b = muestra el mes, así: ''ene''. %Y = muestra el año, así: ''2014''. %y = muestra el año, así: ''14''. %H = muestra la hora. %M = muestra los minutos. %S = muestra los segundos. Estas opciones, las que elijamos, deben ir a continuación de la variable time y todo, salvo el signo ''$'', debe estar entre llaves. Como se ve a continuación: ${time %a %d - %H:%M} Esto debe hacerse así para indicarle a Conky que esas opciones repercuten sólo sobre la variable correspondiente, de lo contrario éste las traduciría como un texto cualquiera. Nota: este acto de encerrar entre llaves una variable también debe hacerse siempre que queramos escribir un texto inmediatamente al lado de ella. De lo contrario se debe dejar un espacio entre ambos elementos. En mi configuración omití poner el mes y el año porque son cosas que uno suele tener presente y no me interesa ver cómo pasan los segundos, es más, me desespera... Me parece una cuenta regresiva o algo por el estilo. Es cuestión de gustos. Los espacios y los signos (el guión medio y los dos puntos) los agregué aparte, recordando que todo lo que escribimos debajo de ''TEXT'', que no es una variable o las opciones de alguna de ellas, también se verá dentro de Conky. He aquí el resultado: Va queriendo... ¿no? También es bueno saber que hay variables que afectan a otras variables. Por ejemplo color y alignc; la primera sirve para, valga la redundancia, cambiar el color de un elemento, mientras que por su parte alignc se encarga de centrar. Se usan, no necesariamente ambas a la vez, inmediatamente antes del elemento sobre el que queremos que actúe/n, como en este ejemplo: ${color red}$alignc${time %a %d - %H:%M} Ahora que sabemos lo esencial podemos empezar a añadir las variables que queramos en el cuerpo de nuestro archivo de configuración. Pero antes quería mostrarles la variable cpu... Lo que hace ésta es mostrar el uso del microprocesador en porcentaje. Puede mostrar el uso en general (cpu0), el del primer núcleo (cpu1), el del segundo (cpu2), etcétera, siempre y cuando se lo especifiquemos como opción. Veamos cómo hacerlo y a su vez cómo alinear los resultados a la derecha de la pantalla (con alignr) y darles color rojo, mientras que al resto (la fecha y la hora) se le asigna el verde. ${color green}${alignc}${time %a %d - %H:%M} ${color red}${alignr}cpu: ${cpu cpu0}% cpu1: ${cpu cpu1}% cpu2: ${cpu cpu2}% De esta manera, todo lo que está luego de alignc se centrará hasta que se indique otro comportamiento. En este caso repercute en todo lo que está antes de alignr, ya que éste actúa respecto a todo lo que viene después alineándolo a la derecha. Lo mismo ocurre con los colores y ocurrirá también con otras ''variables que actúan sobre variables''. Mientras tanto esto fue lo que hice: Presten atención a un pequeño detalle rompebolas: cuando los sensores pasan de marcar un número de un dígito a otro de dos es como que te desacomoda lo que habías ordenado. Como si un elemento del panel empujara a otro. Esto también pasa si quitamos alignc y alignr y ordenamos todo manualmente (dejando espacios). Por ahora sólo se los comento, luego les explicaré por qué sucede eso y cómo lo soluciono yo. Bien, ahora sí añadiré el resto de las variables de los sensores que me interesa tener en el panel. Si están siguiendo este tutorial paso a paso, borren lo que hay después de ''TEXT'' en conkyrc y copien el próximo código que les voy a pasar más abajo. Mientras tanto, para buscar otras variables pueden entrar acá: http://conky.sourceforge.net/variables.html. La primera columna nos indica su nombre, la segunda si acepta opciones y la tercera nos da una breve explicación de su funcionamiento. De todos modos a esta altura si siguieron el tutorial deben poder abrir el archivo de configuración de Conky de algún diseño que encuentren por ahí e identificar cada una de sus piezas para tomar lo que les guste e incorporarlo al diseño de ustedes. Yo voy a añadir los siguientes sensores: Porcentaje de espacio usado de mi partición root: fs_used_perc. Porcentaje de espacio usado de mi partición home: fs_used_perc. Memoria RAM en uso: membar. Memoria de intercambio en uso: swapbar. Uso general del microprocesador: cpugraph. Intensidad de la señal wi-fi: wireless_link_bar. Carga de la batería de mi computadora portátil: battery_bar. Aquellos que terminan en ''bar'' son barras y admiten como opción el alto y ancho en píxeles que les queramos dar, según la fórmula alto,ancho. Los que terminan en ''graph'' (sólo voy a usar uno) son gráficos y admiten la misma opción de altura y ancho que una barra común y corriente, pero se diferencian de éstas porque presentan la información en un gráfico de espectro de frecuencias y admiten más opciones. Existe memgraph también, aunque no es tan ''excitante'' (hagan la prueba). En los que muestran porcentajes, por otra parte, se debe agregar inmediatamente a continuación de cada variable el signo ''%'', aunque no es necesario, para saber que se trata de porcentajes cuando los veamos trabajar en el panel. En este caso hay una sola variable que la voy a usar dos veces, una para que me diga el porcentaje en uso de la partición de ''root'' y otra para mi partición ''home'' (en cada caso debo especificar como opción la ruta hacia la partición que corresponda). Así instalo los sensores: $alignc${time %a %d - %H:%M}$alignr home: ${fs_used_perc /home}% root: ${fs_used_perc /}% cpu: ${cpugraph 9,25} ram: ${membar 9,25} swap: ${swapbar 9,25} wi-fi: ${if_existing /proc/net/route wlan0}${wireless_link_bar 9,25 wlan0}${else}OFF${endif} bat: ${battery_bar 9,25} De todo lo que agregué, por ahí, lo más difícil de entender sea el código del sensor de señal wi-fi ya que es un poco más complejo: ${if_existing /proc/net/route wlan0}${wireless_link_bar 9,25 wlan0}${else}OFF${endif} Básicamente lo que dice es que cuando esté apagada la interfaz de mi tarjeta wi-fi (wlan0) el sensor presente el mensaje ''OFF'' en vez de la barra. Esto lo hice así porque cuando ponía solamente: ${wireless_link_bar 9,25 wlan0} al apagar mi dispositivo wi-fi se mostraba en pantalla el último estado de la barra antes del apagado como si se hubiera congelada. Es decir, el porcentaje no bajaba a cero para indicarme que no había señal o, bien, no me indicaba con un mensaje que mi dispositivo wi-fi estaba desconectado. El resultado de todo este lío es una cosa parecida a la siguiente: ¿Notan que la fecha y hora no están alineados en el centro del panel pese a que usé alignc? Esto es así porque tanto alignc como alignr no ordenan solamente respecto a los bordes de la pantalla, sino también respecto a otro texto (lo que esté primero). ¿Recuerdan el detalle ''rompebolas'' del que les comenté cuando vimos la variable cpu? Bueno, eso sucede cuando se acomoda una cosa respecto de otra que varía su tamaño en el transcurso del tiempo. Una forma de solucionar ese pequeño detalle es usando la variable goto para ordenar. Entonces, en vez de alignc voy a usar goto para mover a ojo al centro de mi panel la fecha y la hora y fijarlos ahí. Ésta acepta como opción la distancia en píxeles a la que quiero mover un elemento, siempre tomando como inicio el borde de la pantalla. O sea, cuando use goto SIEMPRE parto desde cero. Por lo tanto si quisiera ordenar ''algo'' que se ubique luego de la fecha y hora de mi panel, tendría que indicarle una distancia en píxeles superior a la que usé para ordenar aquella. Para el resto por ahora voy a seguir usando alignr, pero le voy a indicar que comience a hacer su trabajo después de 10px para que no me quede la barra de carga de la batería pegada contra el lado derecho de la pantalla. Tanto alignc como alignr aceptan como opción un valor positivo o negativo que se puede usar para correr un toque la alineación. Y, por último, voy a usar la variable color con la opción 00aad4 (es el equivalente hexadecimal del color del logo de ArchLinux) para colorear algunos elementos de mi panel. Esto es lo que hice: ${goto 624}${time %a %d - %H:%M}${alignr 10}home: ${color 00aad4}${fs_used_perc /home}%$color root: ${color 00aad4}${fs_used_perc /}%$color cpu: ${color 00aad4}${cpugraph 9,25}$color ram: ${color 00aad4}${membar 9,25}$color swap: ${color 00aad4}${swapbar 9,25}$color wi-fi: ${color 00aad4}${if_existing /proc/net/route wlan0}${wireless_link_bar 9,25 wlan0}${else}OFF${endif}$color bat: ${color 00aad4}${battery_bar 9,25}$color Y esto es lo que obtuve: Si revisaron el código anterior se habrán dado cuenta que después de cada parte que coloreé volví a usar la variable color sin especificarle una opción. De esta manera le estoy diciendo a Conky que quiero volver a usar el color por defecto que señalé en el archivo de configuración (blanco). Por ejemplo esto pasaría si a default_color le diera el valor red: Este mismo ''truco'' del color podemos usarlo para la variable font que modifica aspectos de la fuente. Entonces entre las opciones de configuración del encabezado ponemos la variable font y le indicamos como valor el tipo de fuente que queremos usar por defecto (en mi caso Droid Sans) y el tamaño, así: font Droid Sans :bold:size=8 También le indiqué que por defecto la letra esté en negrita mediante :bold; para cursiva habría que agregar :italic. Esta fuente la voy a usar para todo lo que esté dentro de mi panel menos para la fecha y la hora, en las que usaré DejaVu Sans con un tamaño de 10px, indicándolo donde corresponda debajo de ''TEXT'' en el archivo de configuración de Conky. Este método puede ahorrarnos mucho esfuerzo, sobre todo cuando trabajemos con diseños más complejos. A todo esto, hemos llegado al final de la mini guía y éste es el resultado: ${voffset 7}${font DejaVu Sans :bold:size=10}${goto 624}${time %a %d - %H:%M}$font${goto 850}home: ${color 00aad4}${fs_used_perc /home}%$color ${goto 917}root: ${color 00aad4}${fs_used_perc /}%$color ${goto 975}cpu: ${color 00aad4}${cpugraph 9,60}${goto 1066}${hwmon temp 1}°C$color ${goto 1095}ram: ${color 00aad4}${membar 9,25}$color ${goto 1155}swap: ${color 00aad4}${swapbar 9,25}$color ${goto 1220}wi-fi: ${color 00aad4}${if_existing /proc/net/route wlan0}${wireless_link_bar 9,25 wlan0}${else}${goto 1252}OFF${endif}$color ${goto 1280}bat: ${color 00aad4}${battery_bar 9,25}$color Ésta es una imagen de cómo quedaría el panel en el escritorio: A esta altura del partido ya no es necesario explicarles muy detalladamente lo que hice. Alcanza con decirles que además de cambiar la fuente específicamente a la fecha y la hora, ordené cada pieza de mi panel con goto (incluyendo el mensaje ''OFF'' que aparece cuando apago la interface wi-fi), cambié el tamaño del gráfico y de las barras, agregué un sensor de temperatura del microprocesador (gracias a hwmon) y moví todo 7px hacia abajo, para que no quede pegado contra el borde superior de la pantalla, con voffset (esta variable tiene una forma de actuar similar a gap_y, de cual vimos su funcionamiento cuando analizamos el encabezado del archivo de configuración, pero para los elementos dentro de Conky; su equivalente horizontal es offset). Eso es todo... Lo último que voy a explicar no lo voy a implementar en mi panel, pero pensé hacerlo... Para poner una imagen de fondo basta con tener una con las mismas dimensiones que nuestro Conky. Podemos usar un programa de edición (como Gimp o incluso ImageMagick) para redimensionarla si hiciera falta. La debemos guardar en algún rincón de nuestro sistema (de preferencia en nuestra carpeta personal como archivo oculto). Luego en conkyrc la llamaremos mediante la variable image, desde cualquier lugar debajo de ''TEXT'', y como opción le indicaremos la ruta donde se ubica. Si lo que queremos, por otro lado, es sustituir las leyendas ''home'', ''root'', ''cpu''... por iconos (esto era lo que tenía pensado desde un principio, pero me faltaron iconos ''copados'' para ello) o simplemente se nos antoja agregar imágenes más pequeñas al diseño. Hacemos como antes, pero esta vez para acomodarlas donde queramos usaremos la fórmula -p horizontal,vertical como opción. Como muestra este ejemplo: ${image ~/nombre_de_imagen.jpg -p 100,5} Debemos hacerlo así porque las imágenes no se acomodan como vimos anteriormente en textos, barras y gráficos. Nota: esto de poder usar imágenes en Conky sólo es posible si éste fue compilado con soporte de Imlib2; por lo general los paquetes precompilados que nos ofrecen las distros de GNU/Linux lo soportan. //////////////////////////////////////////////////////////////////////////////////////////// Para que nuestro Conky se inicie con el sistema, primero debemos guardar el archivo conkyrc en nuestra carpeta personal (si no lo hicieron antes) y luego cambiarle el nombre de conkyrc a .conkyrc (el punto antes del nombre hace que se oculte el archivo). Ahora si usan KDE o Gnome sigan los pasos de este enlace: http://conocimientoadictivo.blogspot.com/2012/03/conky-en-el-arranque-kde-gnome-3.html. En cambio, si están usando un administrador de ventanas en lugar de entorno de escritorio, entonces les recomiendo este otro: http://manualinux.heliohost.org/conky.html#Configurar_el_inicio (si el enlace no los lleva directamente, vayan a la parte ''Configurar el inicio de Conky''). Un consejo: pueden lograr diseños mucho más complejos si hacen varios Conkys y si le indican que tengan comportamientos diferentes. Incluso pueden ''fusionarlos'' con el wallpaper, es decir, hacer que parezca como si fueran parte de éste. //////////////////////////////////////////////////////////////////////////////////////////// Se estarán preguntando en este punto sobre la explicación de cómo hice lo que está en el lado izquierdo de mi panel y sobre el botón de apagado. Pero eso lo voy a dejar para cuando haga el siguiente post sobre el uso de Tint2. Cualquier duda que tengas sobre lo explicado en el post avisá y veo en lo que te puedo dar una mano... Slds!! FIN a)))

40
0
Tratando imágenes con ImageMagick
Tratando imágenes con ImageMagick
LinuxporAnónimo2/11/2015

Hola mi gente beeeeeiaa... (?) En esta ocasión quiero mostrarles cómo usar uno de los programas que por lo general suele pasar inadvertido para el usuario de GNU/Linux, pero que esconde un gran poder en su interior... Estoy hablando de ImageMagick (ver acá), que es nada más y nada menos que una colección de utilidades para el tratamiento de imágenes. Mediante este programa podremos editar nuestras imágenes a través de la línea de comandos. Si bien para estos menesteres solemos hacer uso de Gimp, que por si fuera poco posee una interfaz gráfica divina para agrado y deleite de los bobitos de la nueva ola (?), lo cierto es que ImageMagick patea traseros... Bueno, no tan de ese modo. Ambas herramientas pueden convivir y complementarse. Por un lado Gimp (o el programa de edición que prefieran con interfaz gráfica) es ideal para retoques finos, por el otro, ImageMagick se luce a la hora de lidiar con enormes cantidades de imágenes a la vez y es que de hecho es ahí donde se aprecia mejor su potencia... ImageMagick nos permite trabajar optimizando tiempos de manera rápida y eficiente con una enorme cantidad de archivos de distinto formato a la vez a través de la ejecución de simples comandos y nos evita el tedio y el fastidio de tener que abrir un programa pesado para ello. CONSIDERACIONES PREVIAS Primero. Para ejecutar las órdenes que se detallarán más adelante debemos tener en cuenta que lo vamos a hacer por medio de un emulador de terminal (yo uso Tilda, a veces Guake, pero también existen: Gnome Terminal, Xterm, etc.). Luego, debemos saber cómo movernos entre los directorios (carpetas) de nuestro sistema haciendo uso de éste ya que para ejecutar las órdenes (por razones de comodidad) debemos estar en el directorio donde se encuentran las "imágenes de entrada" (o sea las imágenes que vamos a manipular con ImageMagick). Segundo. Si advierten palabras encerradas entre llaves en las órdenes genéricas que verán más abajo no es más que para advertirles que podrán sustituirlas a criterio de ustedes. Igualmente siempre les voy a decir por qué "cosas" sí podrán hacerlo. Mientras tanto les voy a explicar cómo tienen que sustituir {entrada} (las imágenes que vamos a modificar) y {salida} (las imágenes resultantes ya modificadas) que requieren una explicación especial. Supongamos que en una carpeta (directorio) tenemos las siguientes imágenes: a-imagen1.jpg b-imagen2.jpg b-imagen3.png a-imagen4.svg b-imagen5.tiff c-imagen6.jpg a-imagen7.png Si sólo queremos modificar las de extensión .jpg reemplazamos *.jpg por {entrada}, si queremos modificar las de extensión .jpg y también las de extensión .png reemplazamos *.jpg *.png por {entrada}, si no nos importa la extensión de las imágenes y queremos modificarlas a todas entonces reemplazamos * por {entrada}. También podemos seleccionar de a una. Si queremos modificar sólo la imagen c-imagen5.jpg reemplazamos c-imagen5.jpg por {entrada}, si queremos modificar sólo la primera y la segunda imagen de la lista entonces reemplazamos a-imagen1.jpg b-imagen2.jpg por {entrada} y así... Por último, notamos que existe un patrón en los nombres de las imágenes, una partícula que se repite, entonces si queremos modificar las que empiezan por b (sin importarme el formato) reemplazo b* por {entrada}. Esto de seleccionar, o mejor dicho filtrar, imágenes debemos tenerlo muy claro ya que nos ahorrará muchísimo tiempo y permitirá trabajar con enormes cantidades de imágenes a la vez. Por último un consejo que pueden seguir o no (problema de ustedes). Cuando deban nombrar un archivo de imagen no dejen espacios en blanco, prefieran los "guiones bajos" en su lugar o HaganloDeEstaForma y eviten acentuar. A su vez, si tienen varias imágenes de distinto tema y deben volcarlas a todas en una misma carpeta, sepárenlas por medio de partículas de este modo: FiestitaDelaYani-imagen1.jpg FiestitaDelaYani-imagen2.jpg PartuzaDelNico-imagen1.jpg y así... De este modo será luego más práctico para ustedes manipularlas y agilizarán procesos... Por otra parte {salida} puede ser "cualquier cosa" que respete esta forma: nombre.extensión como por ejemplo salida.png o sea, dicho de otro modo, es un nombre que designaremos nosotros a gusto y piacere con la extensión que queramos. Por lo general la única regla es que {salida} no sea reemplazado por el nombre de un archivo que colocaron en {entrada} o el programa sobreescribirá en esa imagen los cambios que hagamos. Tengan en cuenta también que si el programa necesita generar más de un archivo de salida lo hará automáticamente de este modo: nombre-0.extensión nombre-1.extensión nombre-2.extensión y así sucesivamente. Así que no se preocupen por eso. Un consejo, si sólo reemplazan {salida} por "cualquier cosa" que respete nombre.extensión los archivos de salida se generarán en el mismo directorio donde se encuentran las imágenes de entrada. Si queremos evitar eso, en vez de {salida} pondremos "algo" que respete: ruta/nombre.extensión donde "ruta" ha de ser la dirección a otro directorio que queramos (debe existir). De esta manera nos ahorraremos el paso de tener que mover los archivos luego... Por último, nada, sólo decirles que para los ejemplos usé de entrada esta imagen de 370x250 píxeles: Bueno esto fue todo el sermón inicial, pasemos a la acción... TRATANDO IMÁGENES CON IMAGEMAGICK CONVERTIR A OTROS FORMATOS ImageMagick soporta la conversión entre una enorme variedad de formatos de imagen (ver acá). Para cambiar el formato de una imagen basta con ejecutar: convert {entrada} {salida} REDIMENSIONAR El cambio de tamaño de una imagen se consigue mediante la orden: convert -resize {dimensión} {entrada} {salida} Donde {dimension} es el tamaño en píxeles al que se quiere redimensionar la imagen de entrada. Por ejemplo, si en lugar de {dimensión} ponemos el número 200 lo que vamos a conseguir es redimensionar la imagen de entrada a 200px de ancho (la altura va a ser calculada automáticamente por el programa manteniendo la relación de aspecto). El resultado se aprecia a continuación: Si lo que nos interesa es redimensionar la altura de la imagen a 200px, sin importarnos el ancho, entonces en lugar de {dimensión} introducimos la letra x seguida inmediatamente por el número 200 así: x200, luego ejecutamos la orden y como resultado vamos a obtener lo siguiente: Noten dos cosas: una, que no necesariamente se obtiene lo mismo redimensionando de ancho que de alto pese a que introducimos el mismo número y, dos, que en los casos anteriores el programa siempre conserva la relación de aspecto. Ahora suponiendo que eso de la relación de aspecto nos importa un joraca y se nos canta redimensionar nuestra imagen de entrada a 150px de ancho por 300px de alto. Bueno, en ese caso, en vez de {dimension} introducimos \!150x300 y conseguimos esto: La verdad es que la imagen de salida no se ve bien ya que existe una distorsión muy notoria (adrede, puesto que lo hice así para que ustedes lo noten) propia de la pérdida de la relación de aspecto, pero en fin, cada uno hace lo que se le canta el toor... Ustedes sepan que existe esta alternativa también por si la llegan a necesitar. Sepan además que otra forma de agrandar y achicar imágenes es mediante la orden: convert -resize {porcentaje} {entrada} {salida} Ésta es igual a la anterior, sólo que debemos introducir porcentajes en vez de dimensiones en píxeles. De esta manera el tamaño de nuestra imagen de entrada representa el 100% y si nosotros queremos, por ejemplo, agrandarla un 10% de ancho debemos introducir 110% en lugar de {porcentaje} ya que si introducimos 10% lo que conseguimos es achicarla hasta ese porcentaje. En conclusión, excepto que se usan porcentajes en vez de dimensiones en píxeles, esta orden admite el mismo tratamiento que la anterior. VOLTEAR Horizontalmente: convert -flop {entrada} {salida} Verticalmente: convert -flip {entrada} {salida} Incluso se puede combinar ambas órdenes para ahorrarnos un paso: convert -flip -flop {entrada} {salida} ROTAR Conocida también como "girar". Lo que hace la orden siguiente es exactamente eso: gira la imagen en sentido horario en un ángulo que nosotros debemos indicar. convert -rotate {angulo} -background {color} {entrada} {salida} Antes que nada sepan que {color} (que en este caso hace referencia al que queremos para el fondo) puede ser sustituido por el nombre de un color en inglés (en el ejemplo usé un simple white), por un equivalente hexadecimal del modo "#ffffff" (con las comillas), entre otras formas de notación para colores que no viene al caso tratar. Otra cosa muy interesante es que si cuando debemos especificar un color introducimos transparent lo que vamos a conseguir es transparencia para esa zona a la que asignamos ese "color", no obstante para que esto se vea reflejado en la imagen de salida ésta debe tener un formato que soporte transparencias (como las imágenes de extensión .png). Por último, desde ahora en adelante, siempre que deban declarar un color en ImageMagick tengan en cuenta este párrafo. No voy a volver a profundizar sobre esto... Luego, al parecer no hay mucho que explicar, para el ejemplo reemplacé {angulo} por 25 (o sea 25 grados) y obtuve esta imagen: Ah sí, me olvidaba, si en vez de {angulo} se introduce un número negativo, la imagen rotará en sentido antihorario. AGREGAR BORDES Esto lo vamos a conseguir mediante la ejecución de esta orden: convert -bordercolor {color} -border {horizontal}x{vertical} {entrada} {salida} Por un lado {color} hace referencia en este caso al color del borde, declárenlo de acuerdo a la explicación de más arriba (para el ejemplo de abajo usé gray), por otro lado, {horizontal} es un número en píxeles que hace referencia al ancho de los bordes laterales de la imagen y {vertical} hace lo propio con los bordes superior e inferior. En el ejemplo de abajo reemplacé {horizontal}x{vertical} por 10x20 para que se note esto que se está indicando. De todas formas ésta no es la única forma de obtener bordes para nuestras imágenes, existen otras mediante efectos. Por ejemplo, ejecuto: convert -raise {horizontal}x{vertical} {entrada} {salida} Y éste es un resultado posible: O si ejecuto: convert -polaroid {angulo} -background transparent {entrada} {salida} Puedo obtener un "efecto Polaroid" o efecto imitación de fotografía: Nota: no sé si es un bug o qué, pero no consigo que el fondo sea de "un color" distinto de transparente, por ello es que la orden para este efecto es la dada (tengan en cuenta que si usan fondo transparente el formato de la imagen debe soportarlo). Incluso existen bordes biselados, suelen servir, o servían, para hacer botones o imitación de cuadros, pero creo que ya es suficiente con lo expuesto hasta ahora sobre este tema. APLICAR EFECTOS ImageMagick deja a nuestra disposición una gran variedad de efectos para que retoquemos nuestras imágenes. Anteriormente mostré un "efecto Polaroid", ahora, en este caso quiero mostrarles cómo aplicar un efecto sepia (de los que más me gustan a mí en lo personal) así que ejecuto: convert -sepia-tone {porcentaje} {entrada} {salida} Donde sólo se debe variar el porcentaje para conseguir que el efecto sea más agradable a nuestro gusto. Por ejemplo si en vez de {porcentaje} pongo 75% consigo este resultado: Les dejo a ustedes la tarea de investigar sobre el resto de los efectos disponibles... VARIAR NIVELES DE BRILLO, SATURACIÓN Y TONO De entrada los niveles de brillo, saturación y tono de una imagen se encuentran al 100%, entonces si nosotros queremos aumentar alguno de ellos debemos usar un número superior al 100, mientras que si lo que queremos es bajarlos debemos introducir números menores. Esta es la orden genérica: convert -modulate {brillo},{saturacion},{tono} {entrada} {salida} Por ejemplo, si en vez de {brillo},{saturacion},{tono} introduzco 120,0,100 hago que mi imagen cambie a blanco y negro (ya que bajé la saturación a cero) y que tenga algo más de brillo, así: Por otro lado, si coloco 100,100,120, obtengo esta otra imagen: En este caso sólo varié un poco el tono. En fin, existen infinitas combinaciones posibles para experimentar. JUNTAR O UNIR Supongamos que queremos unir varias imágenes una después de la otra y/o una abajo de la otra. Va de nuevo, supongamos que queremos unir seis imágenes en dos filas y tres columnas. Bueno esto se consigue así: montage -tile {columnas}x{filas} -geometry +{horizontal}+{vertical} -background {color} {entrada} {salida} Donde {columnas}x{filas} en nuestro caso es reemplazado por 3x2 y donde +{horizontal}+{vertical}, que hace referencia al ancho en píxeles de los "separadores" de las imágenes, es sustituido por +2+2 (si no se quiere usar "separadores" en vez de +2+2 se debe declarar +0+0). Éste es el resultado (observación: luego de obtener la imagen la redimensioné para adaptarla al sitio): Una idea: observen las imágenes que coloqué a la izquierda en la imagen compuesta, la de arriba y la de abajo, parecen espejadas. Puede llegar a ser un efecto interesante... INSERTAR TEXTO Bueno, esto lo conseguimos mediante la orden: convert -font {fuente} -pointsize {tamaño} -gravity {posicion} -fill {color} -draw 'text {horizontal} {vertical} "{texto}"' {entrada} {salida} Pasemos a la explicación... {fuente} es, valga la redundancia, el nombre de la fuente que queremos usar (debemos tenerla instalada en nuestro sistema; incluso, y más recomendable, podemos especificar la ruta completa hacia ella). Su tamaño en píxeles y color están dados respectivamente por {tamaño} y {color}. {posicion}, por otra parte, hace referencia a la ubicación del texto que vamos a insertar en la imagen (puede ser: north, northeast, northwest, south, southeast, southwest, center, east, west, en fin). Luego {horizontal} y {vertical} son los márgenes, en píxeles, que habrá entre el texto y los lados de la imagen (si declaramos 0 0 el texto estará pegado contra ellos). La inserción de texto en imágenes se puede usar para identificarlas, como una simple marca, para poner la fecha y lugar donde fue tomada, etc. Un resultado posible es el que se ve a continuación: Sepan que se puede añadir más de una cadena de texto a la misma imagen, para ello sólo tenemos que agregar otra vez -font {fuente} -pointsize {tamaño} -gravity {posicion} -fill {color} -draw 'text {horizontal} {vertical} "{texto}"', pero con las preferencias para la nueva cadena, a continuación de convert. Tengan en cuenta que si insertan más de un texto puede que tengan que acomodarlos modificando lo que ponen en {horizontal} y en {vertical} o puede que aparezcan encimados. Ésta es una imagen de ejemplo para que vean las posibilidades que tienen a mano: Incluso se puede generar imágenes desde cero (esto es sin tener que especificar una de entrada) con texto insertado ejecutando: convert -size {ancho}x{alto} xc:{fondo} -font {fuente} -pointsize {tamaño} -gravity {posicion} -fill {color} -draw 'text {horizontal} {vertical} "{texto}"' {salida} De esta orden la mayoría de sus partes ya las conocemos. Noten que no hay que declarar una imagen de entrada ya que su función no es modificar una imagen existente, sino generar una nueva. Las dimensiones de ésta van a estar dadas por lo que pongamos en {ancho}x{alto} y en {fondo} podemos especificar que el fondo sea transparente o bien del color que queramos como lo venimos haciendo hasta ahora. A partir de esta orden, la imagen original y lo aprendido sobre unión de imágenes conseguí el resultado que se ve abajo: Dominar la técnica de inserción de texto en ImageMagick puede ser un tanto complicado, pero con práctica se consiguen muy buenos resultados... CAMBIAR EL ESPACIO DE COLOR Los colores se forman de distinta manera dependiendo del modelo o espacio de color (ver acá). Para definir el espacio de color de nuestra imagen podemos valernos de la orden siguiente: convert -colorspace {espacio} {entrada} {salida} Si queremos consultar los espacios de color disponibles, antes podemos ejecutar: convert -list colorspace Esto nos devolverá una lista con todos los que tengamos a disposición y que podemos sustituir por {espacio} en la orden de más arriba. Esto suele ser útil a la hora de imprimir nuestras imágenes. COMBINAR Cuando expliqué cómo unir imágenes lo que en realidad hice es mostrar un tipo de combinación de éstas. Pero supongamos que queremos "pegar" una imagen encima de la otra y no una junto a la otra. Bueno, en esos casos es donde haremos uso de esta orden en concreto: composite -gravity {posicion} -geometry +{horizontal}+{vertical} -dissolve {porcentaje} {entrada} {salida} Nota: si a +{horizontal}+{vertical} lo reemplazamos por +0+0, la imagen superior va a estar "pegada" contra los lados dependiendo de lo que hayan indicado en {posicion}. De esto se deduce que manipulando los valores que demos a {vertical} y a {horizontal} vamos a conseguir un ajuste mucho más fino de la posición de la imagen superior. De esta manera podemos lograr resultados como el que se muestra a continuación: Ahora supongamos que quiero poner la siguiente marca de agua (generada también con ImageMagick) a mi imagen original: Bueno, en este caso puedo variar el porcentaje de disolución hasta uno que me satisfaga y con ello conseguir algo parecido a esto: Para el ejemplo usé un 40%, pero es a gusto de cada uno, un 100% indica que no queremos usar disolución. Es decir, a medida que el porcentaje de disolución disminuya la imagen que superpongamos o "peguemos" se irá volviendo cada vez más transparente. La combinación de imágenes es muy útil para hacer montajes, en un futuro voy a mostrarles cómo hacerlos usando ImageMagick y sin disponer de la opción "varita mágica" muy común en los programas de diseño con interfaz gráfica. ANIMAR Si queremos crear una imagen .gif a partir de imágenes estáticas que tengamos tiradas por ahí podemos hacerlo de este modo: convert -delay {tiempo} -loop {cantidad} {entrada} {salida} Donde {tiempo} es un número en milisegundos que indica cuánto tardará la transición de un fotograma a otro y {cantidad} es el número de veces que se repetirá la secuencia (si ponemos 0 se repetirá indefinidamente como suele ser habitual en este tipo de imágenes). Nota: en este caso la imagen de salida debe tener sí o sí la extensión .gif o sino no vamos a lograr el resultado esperado. Por otra parte, si necesitamos extraer los fotogramas de una imagen .gif podemos hacer uso de esta otra orden: convert -adjoin {entrada} {salida} Donde ahora el archivo de entrada debe ser una imagen con extensión .gif o de nuevo no conseguiremos nuestro cometido. Los archivos de salida pueden tener cualquier formato de imagen estática como .jpg o .png por ejemplo. CAPTURAR PANTALLA Esta funcionalidad es ideal, sobre todo, para sistemas minimalistas donde disponemos de simples manejadores de ventanas en vez de complejos entornos de escritorio. De esta manera, si nos damos algo de maña podemos mapear ciertas combinaciones del teclado con las órdenes que voy a dar a continuación para poder ejecutarlas con sólo presionar un par de teclas. En fin... Para capturar la pantalla completa: import -window root {salida} Nota: si estamos en un entorno sin X también se puede hacer uso de esta orden. Para capturar una ventana: import {salida} En este último caso el puntero del mouse se transformará en una cruz que si la posamos sobre una ventana y hacemos clic sobre ella conseguiremos capturarla. Incluso si mantenemos presionado el botón de acción y arrastramos el mouse podremos capturar una sección de esa ventana. CONSIDERACIONES FINALES Una última aclaración para ir cerrando la persiana... Con convert lo que hacemos no es en sí modificar una imagen, sino generar una nueva a partir de la que especifiquemos en la entrada. Si lo que queremos es sí o sí modificar una imagen, o sea, que el programa sobreescriba los cambios en la imagen que especifiquemos de entrada debemos sustituir derecho viejo (lo único que va a cambiar es que ya no deben hacer uso de {salida} al ejecutar una orden, así que ignoren esa parte) convert por mogrify. Este último hace lo mismo que convert cuando declaramos el mismo nombre con la misma extensión para el archivo de entrada y el de salida, pero la diferencia radica en que mogrify puede modificar grandes cantidades de imágenes. "Úsenlon" con moderación o pueden estropear sus imágenes... Comiencen de a un archivo de entrada hasta que le agarren la mano y luego vayan incrementando las cantidades. Por último, sólo decir que lo que mostré en esta ocasión no es todo el arsenal de cosas que se pueden hacer con ImageMagick, de hecho es sólo una pequeña parte, lo básico como para que ustedes arranquen y puedan empezar a utilizarlo. Para funciones más avanzadas deberán investigar ustedes mismos, sin embargo en el futuro seguramente les mostraré otras cosas que se pueden hacer con este noble programa. El único límite está dado por la capacidad de imaginación de cada uno. Bueno... Esto fue " Tratando imágenes con ImageMagick"... Espero que les haya gustado... ¡Chau!

71
20
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.