# [fvwm] Colores kde

## i92guboj

Por si a alguien le interesa. 

Estaba aburrido y me he dedicado a juguetear con awk para convertir los colorest de kde en algo que fvwm pueda entender. El resultado ha sido esto:

kde_colors: actualizado 13 de febrero del 2008

```

#!/bin/bash

COLORS_FILE="$(grep kcsrc ${HOME}/.kde/share/config/kdeglobals)"

COLORS_FILE="${HOME}/.kde/share/apps/kdisplay/color-schemes/${COLORS_FILE/colorScheme=/}"

echo "SetEnv kde_colors_file \"${COLORS_FILE}\""

[ -d "$COLORS_FILE" ] && \

{

  echo "#Predeterminado de KDE, seteando colores preconfigurados..."

  echo "SetEnv activeBackground #418EDC"

  echo "SetEnv activeBlend #6B91B8"

  echo "SetEnv activeForeground #FFFFFF"

  echo "SetEnv activeTitleBtnBg #DCDCDC"

  echo "SetEnv alternateBackground #EDF4F9"

  echo "SetEnv background #EFEFEF"

  echo "SetEnv buttonBackground #DDDFE4"

  echo "SetEnv buttonForeground #000000"

  echo "SetEnv foreground #000000"

  echo "SetEnv frame #EFEFEF"

  echo "SetEnv handle #EFEFEF"

  echo "SetEnv inactiveBackground #9DAABA"

  echo "SetEnv inactiveBlend #9DAABA"

  echo "SetEnv inactiveForeground #DDDDDD"

  echo "SetEnv inactiveFrame #EFEFEF"

  echo "SetEnv inactiveHandle #EFEFEF"

  echo "SetEnv inactiveTitleBtnBg #DCDCDC"

  echo "SetEnv linkColor #0000EE"

  echo "SetEnv selectBackground #678DB2"

  echo "SetEnv selectForeground #FFFFFF"

  echo "SetEnv visitedLinkColor #52188B"

  echo "SetEnv windowBackground #FFFFFF"

  echo "SetEnv windowForeground #000000"

} || \

awk '

  BEGIN {

    FS="="

  }

  /^\[/ { next }

  /^Name/ { next }

  /^# KDE/ {next }

  /\,/ && !/\#/ {

    FS="="

      n=split($2,dec,",")

      if ( n == 3)

      {

        printf("%s %s #","SetEnv",$1)

        for(i=1;i<=n;i++)

        {

          printf("%02X",dec[i])

        }

        printf("\n")

      }

  }

  !/\,/ && /\#/ {

    FS="="

    printf("%s %s %s\n","SetEnv",$1,$2)

  }' \

 "$COLORS_FILE"

```

Ese script, al ejecutarse debería devolver algo como esto:

```

SetEnv activeBackground #72C310

SetEnv activeBlend #66AE0E

SetEnv activeForeground #FFFFFF

SetEnv activeTitleBtnBg #66AE0E

SetEnv alternateBackground #2B4906

SetEnv background #595959

SetEnv buttonBackground #2F2F2F

SetEnv buttonForeground #96FF15

SetEnv foreground #FFFFFF

SetEnv frame #656668

SetEnv handle #7F7F7F

SetEnv inactiveBackground #2F5007

SetEnv inactiveBlend #66AE0E

SetEnv inactiveForeground #FFFFFF

SetEnv inactiveFrame #656668

SetEnv inactiveHandle #505050

SetEnv inactiveTitleBtnBg #83DF12

SetEnv linkColor #0173FF

SetEnv selectBackground #66AE0E

SetEnv selectForeground #000000

SetEnv visitedLinkColor #962CFF

SetEnv windowBackground #000000

SetEnv windowForeground #DAFFC7

```

Son los mismos nombres y colores de kde, pero convertidos a un formato que fvwm puede entender. Esto lo cargamos en nuestro fvwm con un simple "Piperead ~/path/to/kde_colors"

A partir de ahí podemos usar esas variables que contienen los colores de kde en nuestras configs de fvwm, como por ejemplo:

```

#Panel

Colorset   6 bg $[background], sh $[background], hi $[background]

# Menú, selección

Colorset   7 bg $[selectBackground], hi $[selectBackground], sh $[selectBackground], fg $[selectForeground]

# Menú, fondo

Colorset   8 bg $[inactiveFrame], fg $[foreground], sh $[buttonBackground], hi $[buttonBackground]

#Pager, fondo escritorio inactivo

Colorset   9 bg $[background], fg $[foreground], sh $[foreground], hi $[foreground]

#Pager, fondo escritorio activo

Colorset  10 bg $[activeBlend], fg $[foreground]

#Pager, ventana inactiva

Colorset  11 bg $[alternateBackground], fg $[foreground]

#Pager, ventana activa

Colorset  12 bg $[activeBackground], fg $[foreground]

```

Por supuesto cada uno tendrá sus colorsets, eso de arriba es solo un ejemplo de como usarlo. Lo bueno de esto es que si cambiamos los colores de kde tan solo tendremos que reiniciar fvwm para tenerlo a juego  :Wink: 

Saludos.Last edited by i92guboj on Wed Feb 13, 2008 4:15 pm; edited 2 times in total

----------

## achaw

Peticion para incorporarlo a la recopilaciones de mejores mensajes y guias.

Saludos

----------

## i92guboj

He corregido algunos problemas:

1.- Al escoger el tema predeterminado de kde, la configuración no apunta a ningún archivo .kcsrc, utilizo dicha condición para detectarlo y configuro los colores desde el mismo script. Por tanto, ahora el script funciona también con el tema por defecto de kde.

2.- Al escoger un tema de los que vienen con kde, resulta que los colores vienen codificados en hexadecimal directamente, en lugar de venir codificador en tres números decimales separados por comas. Mi script ahora detecta eso, y es capaz de manejar ambos formatos, espero que no haya más  :Razz: 

3.- He mejorado la detección de las líneas que realmente importan, y he desechado las demás.

La nueva versión del script está en el primer post. Así ahorro confusiones.

----------

## kropotkin

lo que tengo ganas de hacer desde hace un tiempo, pero de perezoso no e conseguido es crearme una buena config de fvmw pero sin panel ni nada, si no que para utilizar fvwm como wm de kde.

alguien a echo eso? osea de que se puede se puede pero todavía no creo la config x_x

----------

## i92guboj

 *kropotkin wrote:*   

> lo que tengo ganas de hacer desde hace un tiempo, pero de perezoso no e conseguido es crearme una buena config de fvmw pero sin panel ni nada, si no que para utilizar fvwm como wm de kde.
> 
> alguien a echo eso? osea de que se puede se puede pero todavía no creo la config x_x

 

En realidad no hace falta nada especial para eso. Fvwm puede trabajar bastante bien con kde, tan solo que tienes que tener en cuenta unas cosillas. 

La config del wm irá aparte de kde, por supuesto. O sea, para configurar el comportamiento de las ventanas, colores, decos y demás, no podrás usar kcontrol (para el resto de estilos y eso si que seguirá funcionando como siempre).

Aquí es donde puede venir bien mi script, que al menos te coloreará fvwm a juego con tu config de kde  :Smile: 

Por lo demás, no necesitas nada especial en realidad. Tan solo recuerda que ahora la posición de kicker también la controlará fvwm. Tendrás que darle estilos en fvwm para quitarle el título y el borde de ventana (porque en fvwm todo tiene una ventana por defecto, y kicker no sería una excepción).

Si te animas yo te puedo ir guiando en este hilo. Así tendremos aquí una especia de guía ilustrada de como cambiar kwin por fvwm sin morir en el intento  :Wink: 

En realidad no es nada difícil  :Smile: 

----------

## i92guboj

Estaba aburrido y he ido un paso más lejos.

He estado empollando un poco de imagemagick, y he conseguido crear una deco que autotinta los bitmaps para adaptarlos a los colores de kde. Por lo que a partir de ahora también podemos tener la deco de nuestra elección, y hacer que encaje de forma perfecta en el esquema de colores de kde que estemos usando.

El código principal de esto está en el archivo crux_kde.deco que posteo a continuación:

```

Piperead 'convert $FVWM_USERDIR/decorations/crux_kde/titlebt_active_gray.png \

        -fill $selectBackground -tint 100 $FVWM_USERDIR/decorations/crux_kde/titlebt_active.png'

Piperead 'convert $FVWM_USERDIR/decorations/crux_kde/titleunder_active_grey.png \

        -fill $selectBackground -tint 100 $FVWM_USERDIR/decorations/crux_kde/titleunder_active.png'

Piperead 'convert $FVWM_USERDIR/decorations/crux_kde/titlert_active_grey.png \

        -fill $selectBackground -tint 100 $FVWM_USERDIR/decorations/crux_kde/titlert_active.png'

Piperead 'convert $FVWM_USERDIR/decorations/crux_kde/options_activeup_grey.png \

        -fill $selectBackground -tint 100 $FVWM_USERDIR/decorations/crux_kde/options_activeup.png'

Piperead 'convert $FVWM_USERDIR/decorations/crux_kde/options_activedown_grey.png \

        -fill $selectBackground -tint 100 $FVWM_USERDIR/decorations/crux_kde/options_activedown.png'

Piperead 'convert $FVWM_USERDIR/decorations/crux_kde/titlert_active_grey_mask.png \

        -fill $selectBackground -tint 100 $FVWM_USERDIR/decorations/crux_kde/titlert_active.png'

Piperead 'composite $FVWM_USERDIR/decorations/crux_kde/titlert_active.png \

        $FVWM_USERDIR/decorations/crux_kde/titlert_active_grey.png \

        $FVWM_USERDIR/decorations/crux_kde/titlert_active.png'

ButtonStyle 1 ActiveUp Pixmap crux_kde/options_activeup.png

ButtonStyle 6 ActiveUp Pixmap crux_kde/iconify_activeup.png

ButtonStyle 4 ActiveUp Pixmap crux_kde/maximize_activeup.png

ButtonStyle 2 ActiveUp Pixmap crux_kde/close_activeup.png

ButtonStyle 1 ActiveDown Pixmap crux_kde/options_activedown.png

ButtonStyle 6 ActiveDown Pixmap crux_kde/iconify_activedown.png

ButtonStyle 4 ActiveDown Pixmap crux_kde/maximize_activedown.png

ButtonStyle 2 ActiveDown Pixmap crux_kde/close_activedown.png

ButtonStyle 1 Inactive Pixmap crux_kde/options_inactive.png

ButtonStyle 6 Inactive Pixmap crux_kde/iconify_inactive.png

ButtonStyle 4 Inactive Pixmap crux_kde/maximize_inactive.png

ButtonStyle 2 Inactive Pixmap crux_kde/close_inactive.png

ButtonStyle All -- Flat UseTitleStyle

TitleStyle ActiveUp MultiPixmap Main crux_kde/title_active.png, LeftMain crux_kde/titlebt_active.png, UnderText crux_kde/titleunder_active.png, RightOfText crux_kde/titlert_active.png

TitleStyle ActiveDown MultiPixmap Main crux_kde/title_active.png, LeftMain crux_kde/titlebt_active.png, UnderText crux_kde/titleunder_active.png, RightOfText crux_kde/titlert_active.png

TitleStyle Inactive MultiPixmap Main crux_kde/title_inactive.png, LeftMain crux_kde/titlebt_inactive.png, UnderText crux_kde/titleunder_inactive.png, RightOfText crux_kde/titlert_inactive.png

TitleStyle -- Flat

BorderStyle -- HiddenHandles !NoInset Raised

TitleStyle LeftJustified Height 19

Style * Font         $[ThemeTitleFont]

Style * HandleWidth  4

Style * ForeColor    #606060

Style * BackColor    #808080

Style * HilightFore  #C0C0C0

Style * HilightBack  #A0A0A0

```

Tanto este archivo como todos los bitmaps están contenidos en mi última configuración de fvwm, por si a alguien le interesa.

http://jesgue.homelinux.org/fvwm-files/versatile-ng-latest.tar.bz2

Por ahora, solo la deco crux_kde está adaptada con éste método. Pero en principio podemos ajustar cualquiera. Tan solo es necesario separar las partes de los bitmaps que queramos tintar e incluír los correspondientes pipereads en el archivo de la deco para tintarlos basándonos en el color almacenado en $selectBackground. Por supuesto, esto requiere el uso del script de más arriba para leer los colores de kde y pasarlos a variables que fvwm pueda entender.

Espero que a algún despistado como yo le sirva, y si no pues nada  :Razz: 

----------

