Difference between revisions of "Getting Started/Set up KDE 4 for development (es)"

Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Getting_Started/Set_up_KDE_4_for_development}}
+
 
 
{{warning (es)|Esta página está siendo traducida en estos momentos.}}
 
{{warning (es)|Esta página está siendo traducida en estos momentos.}}
 
{{TutorialBrowser (es)|
 
{{TutorialBrowser (es)|
Line 36: Line 36:
 
Para este método, se necesita la herramienta '''sux''' (http://fgouget.free.fr/sux/sux-readme.shtml). '''sux''' está disponible en la mayoría de distribuciones. De lo contrario podrías utilizar el método ''consola normal sin sux''. '''sux''' permite cambiar a otro usuario con una gestión implícita de los detalles de la transferencia de las X (exportación de autenticación y DISPLAY) de una forma limpia y simple.
 
Para este método, se necesita la herramienta '''sux''' (http://fgouget.free.fr/sux/sux-readme.shtml). '''sux''' está disponible en la mayoría de distribuciones. De lo contrario podrías utilizar el método ''consola normal sin sux''. '''sux''' permite cambiar a otro usuario con una gestión implícita de los detalles de la transferencia de las X (exportación de autenticación y DISPLAY) de una forma limpia y simple.
  
Para iniciar sesión, escribe <code bash>sux - kde-devel</code>
+
Para iniciar sesión, escribe <syntaxhighlight lang="bash">sux - kde-devel</syntaxhighlight>
  
El {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}} debería configurar correctamente las variables de entorno y todo lo demás. Para iniciar una aplicación, simplemente escribe su nombre; por ejemplo <code bash>kwrite</code>
+
El {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}} debería configurar correctamente las variables de entorno y todo lo demás. Para iniciar una aplicación, simplemente escribe su nombre; por ejemplo <syntaxhighlight lang="bash">kwrite</syntaxhighlight>
 
{{Note (es)|
 
{{Note (es)|
 
Si aparecen errores acerca de tipos mime inexistentes o algo parecido, intenta lo siguiente:
 
Si aparecen errores acerca de tipos mime inexistentes o algo parecido, intenta lo siguiente:
* ejecutar <code bash>unset XDG_DATA_DIRS ; kbuildsycoca4</code>
+
* ejecutar <syntaxhighlight lang="bash">unset XDG_DATA_DIRS ; kbuildsycoca4</syntaxhighlight>
 
}}
 
}}
  
 
==== Usar la consola normal sin sux ====
 
==== Usar la consola normal sin sux ====
 
El método más sencillo para lanzar aplicaciones de KDE 4 es usar <tt>su</tt> para iniciar sesion como el usuario <tt>kde-devel</tt> y después simplemente inicia cualquier aplicación de KDE 4 desde la línea de comandos. Para iniciar sesión, escribe
 
El método más sencillo para lanzar aplicaciones de KDE 4 es usar <tt>su</tt> para iniciar sesion como el usuario <tt>kde-devel</tt> y después simplemente inicia cualquier aplicación de KDE 4 desde la línea de comandos. Para iniciar sesión, escribe
<code bash>su - kde-devel</code>
+
<syntaxhighlight lang="bash">su - kde-devel</syntaxhighlight>
 
y después, trás introducir la contraseña
 
y después, trás introducir la contraseña
<code bash>export DISPLAY=:0</code>
+
<syntaxhighlight lang="bash">export DISPLAY=:0</syntaxhighlight>
 
{{Note (es)|Exportar la variable <tt>DISPLAY</tt> es necesario para que las aplicaciones de KDE 4 aparezcan en el escritorio normal de KDE 3.}}
 
{{Note (es)|Exportar la variable <tt>DISPLAY</tt> es necesario para que las aplicaciones de KDE 4 aparezcan en el escritorio normal de KDE 3.}}
El {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}} debería configurar correctamente las variables de entorno y todo lo demás. Para iniciar una aplicación, simplemente escribe su nombre; por ejemplo <code bash>kwrite</code>
+
El {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}} debería configurar correctamente las variables de entorno y todo lo demás. Para iniciar una aplicación, simplemente escribe su nombre; por ejemplo <syntaxhighlight lang="bash">kwrite</syntaxhighlight>
 
{{Note (es)|
 
{{Note (es)|
 
Si aparecen errores acerca de tipos mime inexistentes o algo parecido, intenta lo siguiente:
 
Si aparecen errores acerca de tipos mime inexistentes o algo parecido, intenta lo siguiente:
* ejecutar <code bash>unset XDG_DATA_DIRS ; kbuildsycoca4</code>
+
* ejecutar <syntaxhighlight lang="bash">unset XDG_DATA_DIRS ; kbuildsycoca4</syntaxhighlight>
 
}}
 
}}
 
{{Note (es)|
 
{{Note (es)|
 
Si aparece un error indicando que no es posible conectar con un servidor X, ejecuta
 
Si aparece un error indicando que no es posible conectar con un servidor X, ejecuta
<code bash>sudo xhost +local:kde-devel</code>
+
<syntaxhighlight lang="bash">sudo xhost +local:kde-devel</syntaxhighlight>
 
como el usuario normal de KDE 3 para asegurarte de que la aplicación se puede conectar a la sesión X actual.
 
como el usuario normal de KDE 3 para asegurarte de que la aplicación se puede conectar a la sesión X actual.
  
 
Aunque el servidor X debería aceptar conexiones TCP entrantes, las distribuciones suelen desactivado por defecto (como en Kubuntu Feisty). Si usas <tt>kdm</tt> debes editar <tt>/etc/kde3/kdm/kdmrc</tt> como root y asegurarte de que no contenga:
 
Aunque el servidor X debería aceptar conexiones TCP entrantes, las distribuciones suelen desactivado por defecto (como en Kubuntu Feisty). Si usas <tt>kdm</tt> debes editar <tt>/etc/kde3/kdm/kdmrc</tt> como root y asegurarte de que no contenga:
<code>ServerArgsLocal=-nolisten tcp</code>
+
<syntaxhighlight lang="text">ServerArgsLocal=-nolisten tcp</syntaxhighlight>
 
Una vez que hayas corregido esto, necesitarás reiniciar el servidor X. El comando <tt>xhost</tt> ya no debería devolver el error "unable to open display".
 
Una vez que hayas corregido esto, necesitarás reiniciar el servidor X. El comando <tt>xhost</tt> ya no debería devolver el error "unable to open display".
  
 
Por comodidad, deberías poner esto en el Autostart del usuario habitual. Para ello, crea un nuevo archivo en el directorio <tt>$HOME/.kde/Autostart</tt> del usuario normal con el siguiente contenido:
 
Por comodidad, deberías poner esto en el Autostart del usuario habitual. Para ello, crea un nuevo archivo en el directorio <tt>$HOME/.kde/Autostart</tt> del usuario normal con el siguiente contenido:
<code bash>
+
<syntaxhighlight lang="bash">
 
#! /bin/sh
 
#! /bin/sh
 
xhost +local:kde-devel
 
xhost +local:kde-devel
</code>
+
</syntaxhighlight>
 
Asegúrate de que el nuevo archivo es ejecutable usando <tt>chmod +x</tt> sobre él.
 
Asegúrate de que el nuevo archivo es ejecutable usando <tt>chmod +x</tt> sobre él.
  
Line 77: Line 77:
  
 
La manera más simple de ejecutar una aplicación de KDE con SSH en tu entorno de escritorio actual es tener una sesión X-aware en la consola como usuario <tt>kde-devel</tt> así:
 
La manera más simple de ejecutar una aplicación de KDE con SSH en tu entorno de escritorio actual es tener una sesión X-aware en la consola como usuario <tt>kde-devel</tt> así:
<code bash>ssh -X kde-devel@localhost</code>
+
<syntaxhighlight lang="bash">ssh -X kde-devel@localhost</syntaxhighlight>
 
Ahora puedes ejecutar aplicaciones de KDE como normalmente lo harías, por ejemplo:
 
Ahora puedes ejecutar aplicaciones de KDE como normalmente lo harías, por ejemplo:
<code bash>kwrite</code>   
+
<syntaxhighlight lang="bash">kwrite</syntaxhighlight>   
 
Las dos lineas pueden ser combinadas:
 
Las dos lineas pueden ser combinadas:
<code bash>ssh -X kde-devel@localhost kwrite</code>
+
<syntaxhighlight lang="bash">ssh -X kde-devel@localhost kwrite</syntaxhighlight>
  
{{Nota|
+
{{Note (es)|
 
Si esto te da algún error, intenta con los consejos de la parte superior.
 
Si esto te da algún error, intenta con los consejos de la parte superior.
 
}}
 
}}
Line 90: Line 90:
  
 
Antes de que podamos hacer algo serio con este método, es necesario crear una sesión sin contraseña. Para empezar, ejecuta el siguiente comando como el usuario regular de tu escritorio:
 
Antes de que podamos hacer algo serio con este método, es necesario crear una sesión sin contraseña. Para empezar, ejecuta el siguiente comando como el usuario regular de tu escritorio:
<code bash>ssh-keygen -t rsa</code>
+
<syntaxhighlight lang="bash">ssh-keygen -t rsa</syntaxhighlight>
Presiona ENTER trés veces para aceptar la ruta {{path|~/.ssh/id_rsa}} y la clave vacía. Ahora, copia la única linea en{{path|~/.ssh/id_rsa.pub}} que aparece después de ejecutar este comando:<code bash>cat ~/.ssh/id_rsa.pub</code>
+
Presiona ENTER trés veces para aceptar la ruta {{path|~/.ssh/id_rsa}} y la clave vacía. Ahora, copia la única linea en{{path|~/.ssh/id_rsa.pub}} que aparece después de ejecutar este comando:<syntaxhighlight lang="bash">cat ~/.ssh/id_rsa.pub</syntaxhighlight>
 
Después de copiar esa linea, regresa dentro del usuario <tt>kde-devel</tt>  
 
Después de copiar esa linea, regresa dentro del usuario <tt>kde-devel</tt>  
 
y pon la linea copiada en el archivo {{path|$HOME/.ssh/authorized_keys}}:
 
y pon la linea copiada en el archivo {{path|$HOME/.ssh/authorized_keys}}:
Line 97: Line 97:
 
   $HOME/.ssh/authorized_keys
 
   $HOME/.ssh/authorized_keys
 
Pega la linea, guarda el archivo y cierra KWrite. Ahora, intenta ejecutar KWrite otra vez con el mismo comando SSH; no deberías de necesitar introducir una contraseña desde ahora:
 
Pega la linea, guarda el archivo y cierra KWrite. Ahora, intenta ejecutar KWrite otra vez con el mismo comando SSH; no deberías de necesitar introducir una contraseña desde ahora:
<code bash>ssh -X kde-devel@localhost $HOME/kde/bin/kwrite</code>
+
<syntaxhighlight lang="bash">ssh -X kde-devel@localhost $HOME/kde/bin/kwrite</syntaxhighlight>
  
{{Advertencia|Usando una sesión SSH sin contraseña tiene muchos "riesgos de seguridad", así que asegurate de proteger tu archivo <tt>~/.ssh/id_rsa</tt> restringiendo el acceso con <code bash>chmod og-xrw ~/.ssh/id_rsa</code>(although the file should have these permissions when it is created)}}
+
{{Warning (es)|Usando una sesión SSH sin contraseña tiene muchos "riesgos de seguridad", así que asegurate de proteger tu archivo <tt>~/.ssh/id_rsa</tt> restringiendo el acceso con <syntaxhighlight lang="bash">chmod og-xrw ~/.ssh/id_rsa</syntaxhighlight>(although the file should have these permissions when it is created)}}
  
 
===== El archivo .desktop de SSH =====
 
===== El archivo .desktop de SSH =====
 
Si quieres ser capaz de ejecutar aplicaciones más fácilmente que ejecutarlas con un comando SSH desde la consola, una manera de hacerlo es crear archivos <tt>.desktop</tt> que <tt>ssh</tt> dentro de la otra sesión.
 
Si quieres ser capaz de ejecutar aplicaciones más fácilmente que ejecutarlas con un comando SSH desde la consola, una manera de hacerlo es crear archivos <tt>.desktop</tt> que <tt>ssh</tt> dentro de la otra sesión.
  
{{Nota|Esto será útil únicamente si tu escritorio soporta archivos .desktop, pero por lo menos KDE y GNOME lo hacen.}}
+
{{Note (es)|Esto será útil únicamente si tu escritorio soporta archivos .desktop, pero por lo menos KDE y GNOME lo hacen.}}
  
 
Puedes iniciar con un archivo .desktop existente como una plantilla (como alguno que esté en tu escritorio o puedes crear uno desde el inicio. La idea principal es establecer la ruta de la consola con este comando:
 
Puedes iniciar con un archivo .desktop existente como una plantilla (como alguno que esté en tu escritorio o puedes crear uno desde el inicio. La idea principal es establecer la ruta de la consola con este comando:
<code bash>
+
<syntaxhighlight lang="bash">
 
ssh -X kde-devel@localhost $HOME/kde/bin/
 
ssh -X kde-devel@localhost $HOME/kde/bin/
</code>
+
</syntaxhighlight>
  
 
Un archivo .desktop normal que ejecuta KWrite tendría el siguiente contenido:
 
Un archivo .desktop normal que ejecuta KWrite tendría el siguiente contenido:
  
<code ini>
+
<syntaxhighlight lang="ini">
 
[Desktop Entry]
 
[Desktop Entry]
 
Categories=Qt;KDE;TextEditor;
 
Categories=Qt;KDE;TextEditor;
Line 135: Line 135:
 
X-KDE-SubstituteUID=false
 
X-KDE-SubstituteUID=false
 
X-KDE-Username=
 
X-KDE-Username=
</code>
+
</syntaxhighlight>
  
{{Sugerencia| Las aplicaciones ejecutadas usando SSH de esta manera no realizan las respuestas correctas de lanzamiento, por lo que probablemente querrás deshabilitar el registro de lanzamiento de tus archivos .desktop}}
+
{{Tip| Las aplicaciones ejecutadas usando SSH de esta manera no realizan las respuestas correctas de lanzamiento, por lo que probablemente querrás deshabilitar el registro de lanzamiento de tus archivos .desktop}}
  
{{Nota|Para crear correctamente un archivo .desktop para una aplicación de KDE 4 usando este método, el paquete de la aplicación tiene que haber sido instalado dentro del directorio <tt>~/kde/bin</tt> usando el comando <tt>cmakekde</tt>}}
+
{{Note (es)|Para crear correctamente un archivo .desktop para una aplicación de KDE 4 usando este método, el paquete de la aplicación tiene que haber sido instalado dentro del directorio <tt>~/kde/bin</tt> usando el comando <tt>cmakekde</tt>}}
  
=== Launching KDE 4 sessions ===
+
=== Lanzando sesiones de KDE 4 ===
==== Nested KDE 4 session ====
+
==== Anidando una sesión de KDE 4 ====
 
     {|align="right"  
 
     {|align="right"  
 
     |[[image:Snapshot1.png|right|thumb|200px|Nested]]
 
     |[[image:Snapshot1.png|right|thumb|200px|Nested]]
 
     |}
 
     |}
Instead of using a full-blown new virtual X for developing software you can use Xephyr to embed your KDE 4 session into your working KDE 3 or other X11 environment.
+
En lugar de usar una nueva X virtual para desarrollar software, puedes usar Xephyr para anidar tu sesión de KDE 4 dentro de tu KDE 3 actual u otro entorno X11.
  
You can also do this with xnest, but as xnest cannot handle extensions like Render many people prefer Xephyr.
+
Puedes hacer esto también con xnest, pero como xnest no maneja extenciones como Render, mucha gente prefiere Xephyr.
  
If you want to get a minimal KDE session up and running, just launch Xephyr (available in Kubuntu as xserver-xephyr; Gentoo users compile x11-base/xorg-server with USE="kdrive"):
+
Si quieres tener una sesión mínima de KDE funcionando, simplemente lanza Xephyr (disponible en Kubuntu como xserver-xephyr; los usuarios de Gentoo sólo compilen x11-base/xorg-server con USE="kdrive"):
  
 
  Xephyr :1 -extension GLX &
 
  Xephyr :1 -extension GLX &
  
You can now launch KDE:
+
Ahora puedes lanzar KDE:
  
 
  export DISPLAY=:1
 
  export DISPLAY=:1
 
  /path/to/kde4/bin/startkde-modified &
 
  /path/to/kde4/bin/startkde-modified &
  
startkde-modified is a copy of the startkde-script which includes the following lines on the top:
+
startkde-modified es una copia de startkde-script que incluye las siguientes lineas en la parte de arriba:
  
<code bash>
+
<syntaxhighlight lang="bash">
 
export KDEDIR=`kde4-config --prefix`
 
export KDEDIR=`kde4-config --prefix`
 
export LD_LIBRARY_PATH=$KDEDIR/lib
 
export LD_LIBRARY_PATH=$KDEDIR/lib
 
export PATH=$KDEDIR/bin/:$PATH
 
export PATH=$KDEDIR/bin/:$PATH
 
export KDEHOME=~/.kde4
 
export KDEHOME=~/.kde4
</code>
+
</syntaxhighlight>
  
You can also use Xephyr with KDM via the Xdmcp protocol and simply a new KDE 4 session to KDM.
+
Puedes usar Xephyr con KDM mediante el protocolo Xdmcp y simplemente una nueva sesión de KDE 4 para KDM.
+
On Kubuntu, you can enable it by changing
+
  
<code ini>
+
En Kubuntu, lo puedes habilitar cambiando:
 +
 
 +
<syntaxhighlight lang="ini">
 
[Xdmcp]
 
[Xdmcp]
 
# Whether KDM should listen to incoming XDMCP requests.
 
# Whether KDM should listen to incoming XDMCP requests.
 
# Default is true
 
# Default is true
 
Enable=false
 
Enable=false
</code>
+
</syntaxhighlight>
  
in {{path|/etc/kde3/kdm/kdmrc}} to
+
en {{path|/etc/kde3/kdm/kdmrc}} a:
  
<code ini>
+
<syntaxhighlight lang="ini">
 
[Xdmcp]
 
[Xdmcp]
 
# Whether KDM should listen to incoming XDMCP requests.
 
# Whether KDM should listen to incoming XDMCP requests.
 
# Default is true
 
# Default is true
 
Enable=true
 
Enable=true
</code>
+
</syntaxhighlight>
  
and adjust your {{path|/etc/kde3/kdm/Xaccess}} to allow your local machine access. Additionally you should make sure to set up a port blocking policy on all external interfaces for the Xdmcp port if you are doing this on a laptop or a PC in an untrusted environment.
+
y ajustar tu {{path|/etc/kde3/kdm/Xaccess}} para permitir el acceso a tu máquina local.  
+
 
If you are done, simply launch Xephyr:
+
Adicionalmente deberías segurarte de configurar directivas de bloqueo de puerto en toda las interfaces externas para el puerto Xdmcp si esto lo estás haciendo en una laptop o una PC en un entorno poco confiable.
 +
 
 +
Si haces esto, simplemente lanza Xephyr:
 
   
 
   
 
  Xephyr -query localhost :1 -host-cursor -screen 1024x768&
 
  Xephyr -query localhost :1 -host-cursor -screen 1024x768&
  
where <tt>-host-cursor</tt> tries to reuse the host's cursor and <tt>-screen</tt> sets the screen dimensions.
+
Donde <tt>-host-cursor</tt> trata de reusar el cursor principal y <tt>-screen</tt> establece las dimenciones de pantalla.
  
Note: If you get lots of refused connection errors, you might want to use the -ac option of Xephyr. For example:
+
Nota: Si obtienes muchos errores de rechazo de conexión, podrías querer usar la opción -ac de Xephyr. Por ejemplo:
  
 
  Xephyr -ac :1&
 
  Xephyr -ac :1&
  
Another option to try if you get lots of refused connection errors is you may need to grant assess to your kde-devel user to your X server. As root or using sudo execute:
+
Otra opción a tratar si obtienes muchos errores de rechazo de conexión es que tal vez necesites acceso a tu usuario kde-devel para X server. Como root o usando sudo ejecuta:
  
 
  xhost +local:kde-devel
 
  xhost +local:kde-devel
  
If you do not have Xephyr, you can also use Xnest:
+
Si no tienes Xephyr, puedes usar también Xnest:
  
 
  Xnest -ac :1& export DISPLAY=:1
 
  Xnest -ac :1& export DISPLAY=:1
Line 212: Line 214:
 
{{improve}}
 
{{improve}}
 
[[User:Sping|Sping]] 00:25, 9 April 2007 (CEST)<BR>
 
[[User:Sping|Sping]] 00:25, 9 April 2007 (CEST)<BR>
I use this for my start script ''nested_kde4.sh'':
+
Yo use este para mi script de inicio "nested_kde4.sh":
  
 
  #! /bin/bash
 
  #! /bin/bash
Line 222: Line 224:
 
  export DISPLAY=${NESTED_KDE_DISPLAY_BACKUP}
 
  export DISPLAY=${NESTED_KDE_DISPLAY_BACKUP}
  
If you run into
+
Si obtienes:
  
 
  "Call to lnusertemp failed (temporary directories full?).
 
  "Call to lnusertemp failed (temporary directories full?).
 
   Check your installation."
 
   Check your installation."
  
try this:
+
Intenta esto:
  
 
  mkdir /var/tmp/kde-devel-kde4
 
  mkdir /var/tmp/kde-devel-kde4
  
The above code assumes you work with user ''kde-devel''.
+
Este código asume que trabajas con el usuario "kde-devel".
{{Note|In most cases you have to replace ''startkde-modified'' with ''startkde''}}
+
{{Note|En la mayoría de los casos necestas reemplazar "startkde-modified" con "startkde"}}
 
-----
 
-----
  
Line 248: Line 250:
 
or you can can add it to your login manager. If you are using KDM (or a compatible login manager) this is done by creating a .desktop file in either {{path|`kde-config --prefix`/share/apps/kdm/sessions/}} or in {{path|/usr/share/xsessions/}}. The easiest thing to do is to copy an existing {{path|kde.desktop}} file and name it {{path|kde4.desktop}}. Open this new .desktop file in a text editor and change the <tt>Exec</tt>, <tt>TryExec</tt> and <tt>Name</tt> entries to look something like this:
 
or you can can add it to your login manager. If you are using KDM (or a compatible login manager) this is done by creating a .desktop file in either {{path|`kde-config --prefix`/share/apps/kdm/sessions/}} or in {{path|/usr/share/xsessions/}}. The easiest thing to do is to copy an existing {{path|kde.desktop}} file and name it {{path|kde4.desktop}}. Open this new .desktop file in a text editor and change the <tt>Exec</tt>, <tt>TryExec</tt> and <tt>Name</tt> entries to look something like this:
  
<code ini>
+
<syntaxhighlight lang="ini">
 
Exec=$HOME/kde/bin/startkde
 
Exec=$HOME/kde/bin/startkde
 
TryExec=$HOME/kde/bin/startkde
 
TryExec=$HOME/kde/bin/startkde
 
Name=KDE4
 
Name=KDE4
</code>
+
</syntaxhighlight>
  
 
Replace {{path|$HOME/kde}} in the example above with the prefix you are installing KDE4 into.
 
Replace {{path|$HOME/kde}} in the example above with the prefix you are installing KDE4 into.
Line 277: Line 279:
 
Be sure you followed the steps in the KDE 4 [[Getting_Started/Build/KDE4|build instructions]] and have a working KDE 4 environment.  Make sure simple KDE 4 applications like ''Konsole'' or ''KWrite'' can be started from the command line of the ''kde-devel'' user without problems.  
 
Be sure you followed the steps in the KDE 4 [[Getting_Started/Build/KDE4|build instructions]] and have a working KDE 4 environment.  Make sure simple KDE 4 applications like ''Konsole'' or ''KWrite'' can be started from the command line of the ''kde-devel'' user without problems.  
  
The following steps are all done with the ''kde-devel'' user. You need to login as that user by typing <code bash>su - kde-devel</code>.
+
The following steps are all done with the ''kde-devel'' user. You need to login as that user by typing <syntaxhighlight lang="bash">su - kde-devel</syntaxhighlight>.
  
 
==== Setting up the environment ====
 
==== Setting up the environment ====
  
 
KDevelop has no native support for CMake projects. Fortunately, CMake has the ability to generate KDevelop project files itself. In order to do this, you need to pass the ''-GKDevelop3'' flag to the ''cmake'' command. This tells CMake to generate project files for KDevelop alongside the normal makefiles. The best way to do this is to modify your ''cmakekde'' function in your [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|{{path|.bashrc}}]]. Just change
 
KDevelop has no native support for CMake projects. Fortunately, CMake has the ability to generate KDevelop project files itself. In order to do this, you need to pass the ''-GKDevelop3'' flag to the ''cmake'' command. This tells CMake to generate project files for KDevelop alongside the normal makefiles. The best way to do this is to modify your ''cmakekde'' function in your [[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|{{path|.bashrc}}]]. Just change
<code bash>
+
<syntaxhighlight lang="bash">
 
cmake $srcFolder -DCMAKE_INSTALL_PREFIX=$KDEDIR \
 
cmake $srcFolder -DCMAKE_INSTALL_PREFIX=$KDEDIR \
 
-DCMAKE_BUILD_TYPE=debugfull&& \
 
-DCMAKE_BUILD_TYPE=debugfull&& \
 
make && \
 
make && \
 
make install;
 
make install;
</code>
+
</syntaxhighlight>
 
to
 
to
<code bash>
+
<syntaxhighlight lang="bash">
 
cmake $srcFolder -GKDevelop3 -DCMAKE_INSTALL_PREFIX=$KDEDIR \
 
cmake $srcFolder -GKDevelop3 -DCMAKE_INSTALL_PREFIX=$KDEDIR \
 
-DCMAKE_BUILD_TYPE=debugfull&& \
 
-DCMAKE_BUILD_TYPE=debugfull&& \
 
make && \
 
make && \
 
make install;
 
make install;
</code>
+
</syntaxhighlight>
  
 
After you have done that, re-login so that the changes to the {{path|.bashrc}} file take effect. Then you need to rerun ''cmakekde'' in the (root) build directory of the project you want to work on with KDevelop (if you didn't use ''-GKDevelop3'' on the [[Getting_Started/Build/KDE4#Setting_up_the_environment|building step]]). For example, if you want to work on Konsole, which lives in ''kdebase'', you need to run cmakekde in the {{path|$KDE_BUILD/KDE/kdebase}} directory. This unfortunately completely rebuilds everything, but only once when you change the generator.
 
After you have done that, re-login so that the changes to the {{path|.bashrc}} file take effect. Then you need to rerun ''cmakekde'' in the (root) build directory of the project you want to work on with KDevelop (if you didn't use ''-GKDevelop3'' on the [[Getting_Started/Build/KDE4#Setting_up_the_environment|building step]]). For example, if you want to work on Konsole, which lives in ''kdebase'', you need to run cmakekde in the {{path|$KDE_BUILD/KDE/kdebase}} directory. This unfortunately completely rebuilds everything, but only once when you change the generator.
Line 301: Line 303:
 
A simple way to do this is to add the following function to your {{path|.bashrc}}:
 
A simple way to do this is to add the following function to your {{path|.bashrc}}:
  
<code bash>
+
<syntaxhighlight lang="bash">
 
function start3app {
 
function start3app {
 
   mkdir -p /tmp/$USER-kde
 
   mkdir -p /tmp/$USER-kde
Line 315: Line 317:
 
   source $HOME/.bashrc  #Reset environment variables again
 
   source $HOME/.bashrc  #Reset environment variables again
 
}
 
}
</code>
+
</syntaxhighlight>
  
The ''PATH'' and ''LD_LIBRARY_PATH'' variables are taken from the KDE 3 user, and they may be different on your system. Type <code bash>echo $PATH</code> and <code bash>echo $LD_LIBRARY_PATH</code> as normal KDE 3 user to get these values. The above function assumes that KDE 3 is installed in the {{path|/usr}} prefix, as it is the case on Debian-based systems. If your KDE 3 is installed to a different prefix, you need to change the line setting ''KDEDIR'' accordingly. Here's an example how you find out your KDE installation prefix; in this example it is /opt/kde3:
+
The ''PATH'' and ''LD_LIBRARY_PATH'' variables are taken from the KDE 3 user, and they may be different on your system. Type <syntaxhighlight lang="bash">echo $PATH</syntaxhighlight> and <syntaxhighlight lang="bash">echo $LD_LIBRARY_PATH</syntaxhighlight> as normal KDE 3 user to get these values. The above function assumes that KDE 3 is installed in the {{path|/usr}} prefix, as it is the case on Debian-based systems. If your KDE 3 is installed to a different prefix, you need to change the line setting ''KDEDIR'' accordingly. Here's an example how you find out your KDE installation prefix; in this example it is /opt/kde3:
  
<code bash>
+
<syntaxhighlight lang="bash">
 
kde-config --prefix
 
kde-config --prefix
 
/opt/kde3
 
/opt/kde3
</code>
+
</syntaxhighlight>
  
 
Now you should be able to start KDevelop by typing <tt>start3app kdevelop</tt>. Do that now.
 
Now you should be able to start KDevelop by typing <tt>start3app kdevelop</tt>. Do that now.

Latest revision as of 11:05, 15 July 2012

{{{3}}}
 
noframe
Esta página está siendo traducida en estos momentos.
Aviso


Configurar KDE 4 para el desarrollo
Serie   Getting Started
Requisitos previos   Build KDE 4 (es)
Siguiente   Otros temas sobre desarrollo
Lectura avanzada   n/d
{{{3}}}
 
noframe
Esta página da por hecho que has compilado kdelibs, kdepimlibs y kdebase según estas instrucciones
Nota


Contents

[edit] Lanzar aplicaciones y sesiones de KDE 4

Al empezar el desarrollo de KDE 4, generalmente hay tres opciones disponibles:

Las tres opciones se describen en las secciones a continuación.

{{{3}}}
 
noframe

Si encuentras errores al ejecutar una aplicación kde4, como:

 Qt: Session management error: Could not open network socket
 QMutex::lock: Deadlock detected in thread -1241241936 

o si al ejecutar startkde se queda colgado, lee este artículo para una solución provisional.

Nota


[edit] Lanzar aplicaciones KDE 4

[edit] Usar la consola normal con sux

Para este método, se necesita la herramienta sux (http://fgouget.free.fr/sux/sux-readme.shtml). sux está disponible en la mayoría de distribuciones. De lo contrario podrías utilizar el método consola normal sin sux. sux permite cambiar a otro usuario con una gestión implícita de los detalles de la transferencia de las X (exportación de autenticación y DISPLAY) de una forma limpia y simple.

Para iniciar sesión, escribe
sux - kde-devel
El .bashrc debería configurar correctamente las variables de entorno y todo lo demás. Para iniciar una aplicación, simplemente escribe su nombre; por ejemplo
kwrite
{{{3}}}
 
noframe

Si aparecen errores acerca de tipos mime inexistentes o algo parecido, intenta lo siguiente:

  • ejecutar
    unset XDG_DATA_DIRS ; kbuildsycoca4
Nota


[edit] Usar la consola normal sin sux

El método más sencillo para lanzar aplicaciones de KDE 4 es usar su para iniciar sesion como el usuario kde-devel y después simplemente inicia cualquier aplicación de KDE 4 desde la línea de comandos. Para iniciar sesión, escribe

su - kde-devel

y después, trás introducir la contraseña

export DISPLAY=:0
{{{3}}}
 
noframe
Exportar la variable DISPLAY es necesario para que las aplicaciones de KDE 4 aparezcan en el escritorio normal de KDE 3.
Nota


El .bashrc debería configurar correctamente las variables de entorno y todo lo demás. Para iniciar una aplicación, simplemente escribe su nombre; por ejemplo
kwrite
{{{3}}}
 
noframe

Si aparecen errores acerca de tipos mime inexistentes o algo parecido, intenta lo siguiente:

  • ejecutar
    unset XDG_DATA_DIRS ; kbuildsycoca4
Nota


{{{3}}}
 
noframe

Si aparece un error indicando que no es posible conectar con un servidor X, ejecuta

sudo xhost +local:kde-devel

como el usuario normal de KDE 3 para asegurarte de que la aplicación se puede conectar a la sesión X actual.

Aunque el servidor X debería aceptar conexiones TCP entrantes, las distribuciones suelen desactivado por defecto (como en Kubuntu Feisty). Si usas kdm debes editar /etc/kde3/kdm/kdmrc como root y asegurarte de que no contenga:

ServerArgsLocal=-nolisten tcp

Una vez que hayas corregido esto, necesitarás reiniciar el servidor X. El comando xhost ya no debería devolver el error "unable to open display".

Por comodidad, deberías poner esto en el Autostart del usuario habitual. Para ello, crea un nuevo archivo en el directorio $HOME/.kde/Autostart del usuario normal con el siguiente contenido:

#! /bin/sh
xhost +local:kde-devel

Asegúrate de que el nuevo archivo es ejecutable usando chmod +x sobre él.

Si quieres saber más acerca de los problemas de seguridad que implica el uso de xhost, consulta este artículo

Nota


[edit] Usar SSH

La manera más simple de ejecutar una aplicación de KDE con SSH en tu entorno de escritorio actual es tener una sesión X-aware en la consola como usuario kde-devel así:

ssh -X kde-devel@localhost

Ahora puedes ejecutar aplicaciones de KDE como normalmente lo harías, por ejemplo:

kwrite

Las dos lineas pueden ser combinadas:

ssh -X kde-devel@localhost kwrite
{{{3}}}
 
noframe

Si esto te da algún error, intenta con los consejos de la parte superior.

Nota


[edit] Iniciar sesión sin contraseña

Antes de que podamos hacer algo serio con este método, es necesario crear una sesión sin contraseña. Para empezar, ejecuta el siguiente comando como el usuario regular de tu escritorio:

ssh-keygen -t rsa
Presiona ENTER trés veces para aceptar la ruta ~/.ssh/id_rsa y la clave vacía. Ahora, copia la única linea en~/.ssh/id_rsa.pub que aparece después de ejecutar este comando:
cat ~/.ssh/id_rsa.pub

Después de copiar esa linea, regresa dentro del usuario kde-devel y pon la linea copiada en el archivo $HOME/.ssh/authorized_keys:

ssh -X kde-devel@localhost $HOME/kde/bin/kwrite \
 $HOME/.ssh/authorized_keys

Pega la linea, guarda el archivo y cierra KWrite. Ahora, intenta ejecutar KWrite otra vez con el mismo comando SSH; no deberías de necesitar introducir una contraseña desde ahora:

ssh -X kde-devel@localhost $HOME/kde/bin/kwrite
{{{3}}}
 
noframe
Usando una sesión SSH sin contraseña tiene muchos "riesgos de seguridad", así que asegurate de proteger tu archivo ~/.ssh/id_rsa restringiendo el acceso con
chmod og-xrw ~/.ssh/id_rsa
(although the file should have these permissions when it is created)
Aviso


[edit] El archivo .desktop de SSH

Si quieres ser capaz de ejecutar aplicaciones más fácilmente que ejecutarlas con un comando SSH desde la consola, una manera de hacerlo es crear archivos .desktop que ssh dentro de la otra sesión.

{{{3}}}
 
noframe
Esto será útil únicamente si tu escritorio soporta archivos .desktop, pero por lo menos KDE y GNOME lo hacen.
Nota


Puedes iniciar con un archivo .desktop existente como una plantilla (como alguno que esté en tu escritorio o puedes crear uno desde el inicio. La idea principal es establecer la ruta de la consola con este comando:

ssh -X kde-devel@localhost $HOME/kde/bin/

Un archivo .desktop normal que ejecuta KWrite tendría el siguiente contenido:

[Desktop Entry]
Categories=Qt;KDE;TextEditor;
Comment=
DocPath=kwrite/index.html
Encoding=UTF-8
Exec=ssh -X kde-devel@localhost /home/kde-devel/kde/bin/kwrite %U
GenericName=Text Editor
Icon=kwrite
InitialPreference=8
MimeType=text/plain
Name=KWrite (kde-devel)
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-StartupType=Multi
X-DCOP-ServiceType=non
X-KDE-StartupNotify=true
X-KDE-SubstituteUID=false
X-KDE-Username=
Ktip.png
 
Tip
Las aplicaciones ejecutadas usando SSH de esta manera no realizan las respuestas correctas de lanzamiento, por lo que probablemente querrás deshabilitar el registro de lanzamiento de tus archivos .desktop


{{{3}}}
 
noframe
Para crear correctamente un archivo .desktop para una aplicación de KDE 4 usando este método, el paquete de la aplicación tiene que haber sido instalado dentro del directorio ~/kde/bin usando el comando cmakekde
Nota


[edit] Lanzando sesiones de KDE 4

[edit] Anidando una sesión de KDE 4

Nested

En lugar de usar una nueva X virtual para desarrollar software, puedes usar Xephyr para anidar tu sesión de KDE 4 dentro de tu KDE 3 actual u otro entorno X11.

Puedes hacer esto también con xnest, pero como xnest no maneja extenciones como Render, mucha gente prefiere Xephyr.

Si quieres tener una sesión mínima de KDE funcionando, simplemente lanza Xephyr (disponible en Kubuntu como xserver-xephyr; los usuarios de Gentoo sólo compilen x11-base/xorg-server con USE="kdrive"):

Xephyr :1 -extension GLX &

Ahora puedes lanzar KDE:

export DISPLAY=:1
/path/to/kde4/bin/startkde-modified &

startkde-modified es una copia de startkde-script que incluye las siguientes lineas en la parte de arriba:

export KDEDIR=`kde4-config --prefix`
export LD_LIBRARY_PATH=$KDEDIR/lib
export PATH=$KDEDIR/bin/:$PATH
export KDEHOME=~/.kde4

Puedes usar Xephyr con KDM mediante el protocolo Xdmcp y simplemente una nueva sesión de KDE 4 para KDM.

En Kubuntu, lo puedes habilitar cambiando:

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=false

en /etc/kde3/kdm/kdmrc a:

[Xdmcp]
# Whether KDM should listen to incoming XDMCP requests.
# Default is true
Enable=true

y ajustar tu /etc/kde3/kdm/Xaccess para permitir el acceso a tu máquina local.

Adicionalmente deberías segurarte de configurar directivas de bloqueo de puerto en toda las interfaces externas para el puerto Xdmcp si esto lo estás haciendo en una laptop o una PC en un entorno poco confiable.

Si haces esto, simplemente lanza Xephyr:

Xephyr -query localhost :1 -host-cursor -screen 1024x768&

Donde -host-cursor trata de reusar el cursor principal y -screen establece las dimenciones de pantalla.

Nota: Si obtienes muchos errores de rechazo de conexión, podrías querer usar la opción -ac de Xephyr. Por ejemplo:

Xephyr -ac :1&

Otra opción a tratar si obtienes muchos errores de rechazo de conexión es que tal vez necesites acceso a tu usuario kde-devel para X server. Como root o usando sudo ejecuta:

xhost +local:kde-devel

Si no tienes Xephyr, puedes usar también Xnest:

Xnest -ac :1& export DISPLAY=:1



noframe
 
This section needs improvements: Please help us to

cleanup confusing sections and fix sections which contain a todo


Sping 00:25, 9 April 2007 (CEST)

Yo use este para mi script de inicio "nested_kde4.sh":

#! /bin/bash
NESTED_KDE_DISPLAY_BACKUP=$DISPLAY
export DISPLAY=:0
Xephyr :1 -screen 1024x768 &
export DISPLAY=:1
$HOME/kde/bin/startkde-modified &
export DISPLAY=${NESTED_KDE_DISPLAY_BACKUP}

Si obtienes:

"Call to lnusertemp failed (temporary directories full?).
 Check your installation."

Intenta esto:

mkdir /var/tmp/kde-devel-kde4

Este código asume que trabajas con el usuario "kde-devel".

noframe
 
Note
En la mayoría de los casos necestas reemplazar "startkde-modified" con "startkde"

[edit] Solitary KDE 4 session

Solitary

To run a full KDE 4 desktop environment session, you can either start it from the command line as you normally would, with something like this:

X :1 & export DISPLAY=:1
startkde
noframe
 
Note
If the X server refuses the connection saying something like: Xlib: connection to ":1.0" refused by server, try X -ac :1 instead.

or you can can add it to your login manager. If you are using KDM (or a compatible login manager) this is done by creating a .desktop file in either `kde-config --prefix`/share/apps/kdm/sessions/ or in /usr/share/xsessions/. The easiest thing to do is to copy an existing kde.desktop file and name it kde4.desktop. Open this new .desktop file in a text editor and change the Exec, TryExec and Name entries to look something like this:

Exec=$HOME/kde/bin/startkde
TryExec=$HOME/kde/bin/startkde
Name=KDE4

Replace $HOME/kde in the example above with the prefix you are installing KDE4 into.

After restarting the login manager (Alt+e in KDM) this new entry should appear in the sessions menu.

noframe
 
Note
You should have path to 'qdbus' program (usually it is $QTDIR/bin) in your $PATH to login successfully. If it is not there, you'll get an error message "Could not start DBus. Check your installation."

[edit] Development tasks

[edit] KDevelop

This section will explain how to use KDevelop 3.4 to develop KDE 4 applications. If you have any questions, corrections or rants about this section, please post them on the discussion page.

[edit] Prerequisites

You need at least KDevelop 3.4 for this, which is still a KDE 3 application. Versions lower than 3.4 do not have Qt 4 support among other things. The KDE 4 version of KDevelop is not yet ready for serious development. You can get KDevelop at the KDevelop homepage. Make sure you install KDevelop like all other KDE 3 applications, not with your kde-devel user.

You also need the lastest GDB version, which is currently 6.6.0.

You need to have the kdelibs API documentation locally, which is described in the build instructions.

You also need ctags, htdig, htmerge and htsearch. valgrind and callgrind can also be useful.

Be sure you followed the steps in the KDE 4 build instructions and have a working KDE 4 environment. Make sure simple KDE 4 applications like Konsole or KWrite can be started from the command line of the kde-devel user without problems.

The following steps are all done with the kde-devel user. You need to login as that user by typing
su - kde-devel
.

[edit] Setting up the environment

KDevelop has no native support for CMake projects. Fortunately, CMake has the ability to generate KDevelop project files itself. In order to do this, you need to pass the -GKDevelop3 flag to the cmake command. This tells CMake to generate project files for KDevelop alongside the normal makefiles. The best way to do this is to modify your cmakekde function in your .bashrc. Just change

cmake $srcFolder -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull&& \
make && \
make install;

to

cmake $srcFolder -GKDevelop3 -DCMAKE_INSTALL_PREFIX=$KDEDIR \
-DCMAKE_BUILD_TYPE=debugfull&& \
make && \
make install;

After you have done that, re-login so that the changes to the .bashrc file take effect. Then you need to rerun cmakekde in the (root) build directory of the project you want to work on with KDevelop (if you didn't use -GKDevelop3 on the building step). For example, if you want to work on Konsole, which lives in kdebase, you need to run cmakekde in the $KDE_BUILD/KDE/kdebase directory. This unfortunately completely rebuilds everything, but only once when you change the generator.

Since all environment variables of the kde-devel user are KDE 4 specific, these need to be set back to match your KDE 3 environment before starting KDevelop. A simple way to do this is to add the following function to your .bashrc:

function start3app {
  mkdir -p /tmp/$USER-kde
  export PATH=/opt/kde3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games 
  export LD_LIBRARY_PATH= 
  export KDETMP=/tmp/$USER-kde 
  export KDEVARTMP=/var/tmp/$USER-kde 
  export KDEHOME=$HOME/.kde 
  export KDEDIR=/usr 
  export KDEDIRS=$KDEDIR 
  export DISPLAY=:0 
  eval "$@"
  source $HOME/.bashrc   #Reset environment variables again
}
The PATH and LD_LIBRARY_PATH variables are taken from the KDE 3 user, and they may be different on your system. Type
echo $PATH
and
echo $LD_LIBRARY_PATH
as normal KDE 3 user to get these values. The above function assumes that KDE 3 is installed in the /usr prefix, as it is the case on Debian-based systems. If your KDE 3 is installed to a different prefix, you need to change the line setting KDEDIR accordingly. Here's an example how you find out your KDE installation prefix; in this example it is /opt/kde3:
kde-config --prefix
/opt/kde3

Now you should be able to start KDevelop by typing start3app kdevelop. Do that now.

Ktip.png
 
Tip
You can start any KDE 3 application with the start3app function. Useful candidates include Kompare and kdesvn. However, you can not start KDbg this way to debug KDE 4 applications, since then the environment variables for the debugged application are wrong.


[edit] TroubleShooting

Symptome: kdevelop says "cannot talk to klauncher". You cannot open a file.

Solution: add your KDE library path to LD_LIBRARY_PATH, e.g.:

export LD_LIBRARY_PATH=/opt/kde3/lib

[edit] Setting up KDevelop

Now that KDevelop has started, you need to adjust a few settings. Go to Settings->Configure KDevelop...->Documentation for this. Remove all entries that are not relevant to KDE 4 coding.

noframe
 
Note
Although environment variables like $HOME are used in this section, you should replace them with real paths because KDevelop does not resolve environment variables.

Optionally, you can add the kdelibs API documentation. You must create it before. Then add the documentation by clicking Add.... In this dialog, use the following settings:

  • Type: Doxygen Documentation Collection (needs to be set first)
  • Location: $KDE_SRC/KDE/kdelibs/kdelibs-apidocs/index.html

Now add the Qt API documentation, using the following settings:

  • Type: Qt Documentation Collection (needs to be set first)
  • Location: $HOME/qt-copy/doc/html/qt.dcf

After you have added kdelibs and Qt API documentation, make sure all checkboxes (TOC,Index and Search) are enabled. Then, go to the Full Text Search tab and make sure the paths to the htdig, htmerge and htsearch executables are correct. You can then close the settings dialog.

Now it is time to open the project you want to work on by clicking Project->Open Project.... The project files are located in the build directory. For example, if you want to work on Konsole, you need to open $KDE_BUILD/KDE/kdebase/apps/konsole/konsole.kdevelop. You now need to adjust a few project-specific settings in Project->Project Options. You need to do this every time you start to work on a different project.

noframe
 
Note
Sometimes, a KDevelop project file is not present for the folder you want to work on.

This can have several reasons, it depends on how the CMake files are written. Usually, CMake files which have a project(projectname) statement in them should work fine. Once you are familiar enough with CMake, you can try adding the statement.

A workaround for this is to simply use the KDevelop project file of the parent folder, or even higher. In this case, you need to use the Make Active Directory entry in the context menu of the File Selector sidetab. With this, you can ignore the other unwanted folders when building and installing.
  • C++ Support->Code Completion
Here you need to add code completion databases for Qt and kdelibs, and more if you like, for example you might need a database for kdepimlibs when working on kdepim.
For kdelibs, click the Add... button and choose KDevelop Custom Directory PCS Importer, then add your KDE include directory ($HOME/kde/include) to the list and proceed. You can use the file selection dialog and the Add button to add it.
Now, add the database for Qt 4 by selecting KDevelop Qt4 PCS Importer this time. You need to select the Qt 4 include directory, which is $HOME/qt-copy/include.
noframe
 
Note
The Qt4 PCS Importer is only needed if you didn't install Qt4, i.e. you use it directly from the build directory. The drawback of using the Qt4 importer is that it doesn't show progress and the application seems to hang while it imports. The alternative is to use the Custom Directory PCS Importer for this too
  • C++ Support->Qt Options
Check Enable Qt options and choose Qt4 as your version. Set the QMake Binary path to $HOME/qt-copy/bin/qmake. Then choose Qt 4 style as Qt include syntax. Use $HOME/qt-copy/bin/designer as Designer Binary. Make sure to use the Change Plugin Paths dialog to add the plugin directory from KDE so you see the KDE widgets when designer is started. To do this add $HOME/kde/lib/kde4/plugins to the lineedit and then click the Add button.
  • Run Options
Make sure you use the correct binary as Executable. For example, if you want to run Konsole, this is $KDE_BUILD/KDE/kdebase/apps/konsole/src/konsole. You should add --nofork to the Debug Arguments or debugging some applications like KMail will not work at all.
Because the start3app functions changes some environment variables, you need to change them back here so the KDE 4 applications can be run without problems from within KDevelop.
For some applications, like Konsole, this is not strictly necessary, but others like KMail will crash if you do not change this.
Simply click the Add / Copy button to add new environment variables. You will need the following, which are the same as in your .bashrc:
Name Value
KDEHOME $HOME/.kde4
PATH $KDEDIR/bin:$QTDIR/bin:/usr/local/bin:$PATH
LD_LIBRARY_PATH $KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
KDETMP /tmp/$USER-kde4
KDEVARTMP /var/tmp/$USER-kde4
KDEDIR $HOME/kde
KDEDIRS $KDEDIR
LD_BIND_NOW 42


  • Build Options->Build
Make sure the correct build directory is selected. Again, for Konsole, this would be $KDE_BUILD/KDE/kdebase/apps/konsole.
  • Build Options->Make
You might want to check Abort on first error. You also might want to add VERBOSE= or VERBOSE=1 to Additional make options to control the level of verbosity for the build process.
If you have more than one processor or if you have access to an icecream cluster, you might want to check the Run multiple jobs option and set the Number of simultaneous jobs to the number of available processors. This increases the compile speed. It is the same as the -j option for make.
  • Formatting
You should set all options here to match the coding style of the project you are working on.
  • CTags->General
You need to correctly set the Path to ctags binary, which is /usr/bin/ctags on Debian-based systems.
You probably want to enable the When more than one hit, go directly to the first option.

Now you have finished adjusting your project-specific settings. Now you should remove some plugins you do not need, in Settings->Configure Plugins.... I for example disable the following plugins:

Abbreviation Expansion, Code Snippets, Doxygen Support, Embedded Konsole, File Tree, Final Packaging Support, "Open with" Menu Addon, QuickOpen, Regular Expression Tester, Scripting, Security Checker, Shell Filtering and Insertion, Text Structure and Tools Menu Addition.

You should at least disable the bold ones.

Now, open any source file if none is open already. This will enable the Settings->Configure Editor... entry, where you need to set the tab options to match the tab style used by the project you are working on. The important settings are:

  • Appearance->Borders->Show line numbers: Should be checked.
  • Appearance->Borders->Show icon border: Should be checked.
  • Editing->Tabulators
  • Editing->Static Word Wrap->Show marker: Should be checked
  • Indentation->Automatic Indentation->Indentation mode: Should be C Style
  • Indentation in general

In the mainwindow, click the CTags tab on the bottom tabbar, then click the Regenerate button to create a CTags database for easier source code navigation.

Now you have completed all essential configuration, congratulations!

[edit] Using KDevelop

Refer to the KDevelop manual for general help using KDevelop. The following section will only deal with special cases for KDE 4.

[edit] Debugging

KDE apps have many symbols, which means that you need a lot of memory to get a decent loading times for debugging. To quote a GDB developer: "I would be reluctant to debug KDE on something with <1GB RAM." If the stepping function of the debugger is slow for you, try the following tips:

  • Hide local variables. The Locals part of the variable tab on the left causes a big slowdown when stepping if you have many local variables. Simple collapse the Locals part of the tree, the local variables are then not updated every step. You can still examine variables by using the Evaluate expression function.
  • Use the patch at http://bugs.kde.org/show_bug.cgi?id=143977. It prevents the update of the framestack widget at each step, speeding up stepping considerably. The patch introduces some minor glitches, which is why it is not yet commited.
noframe
 
Note
KDevelop does not yet support modifing the CMake build system. This means you can not use KDevelop to add or remove files from the project or to change any other aspect of your project's build process. You need to modify the CMake files by hand and then rerun cmakekde instead. Read the CMake tutorial to learn how to do this.
Ktip.png
 
Tip
When you work on libraries, you first need to install them before you can test or debug your changes.

Since this is cumbersome and time consuming, you should create symlinks (ln -s) pointing from the build directory to the installation directory for all affected libraries.

Often, even simple programs use libraries internally, for example the settings dialog of Konsole is really a library.

This page was last modified on 15 July 2012, at 11:05. This page has been accessed 8,801 times. Content is available under Creative Commons License SA 3.0 as well as the GNU Free Documentation License 1.2.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V.Legal