Archive:Getting Started/Run/Shell

    From KDE TechBase
    Revision as of 14:47, 3 March 2011 by Odysseus (talk | contribs) (Created page with '{{Template:I18n/Language Navigation Bar|Getting_Started/Run/Shell}} == Using the normal shell with sux == For this method, the tool '''sux''' (http://fgouget.free.fr/sux/sux-re...')
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


    Getting_Started/Run/Shell


    Using the normal shell with sux

    For this method, the tool sux (http://fgouget.free.fr/sux/sux-readme.shtml) is required. sux is available on most distributions. Otherwise you could rely on the normal shell without sux method below. sux allows you to change to another user with an implicit managing of the X forwarding details (authentication and DISPLAY exporting) in a clean and simple way.

    To login, type sux - kde-devel

    All environment variables and everything else should be set up correctly by your .bashrc. To start an application, simply type it's name; for example kwrite

    Note
    If you get errors about missing mimetypes or such, try running the following:unset XDG_DATA_DIRS ; kbuildsycoca4


    Using the normal shell without sux

    The simplest method to launch KDE 4 applications is using su to login as the kde-devel user and then simply start any KDE 4 application from command line. To login, type su - kde-devel and then, after entering your password export DISPLAY=:0

    Note
    Exporting the DISPLAY variable is necessary so that the KDE 4 applications appear on your normal KDE 3 desktop.

    All environment variables and everything else should be set up correctly by your .bashrc. To start an application, simply type it's name; for example kwrite

    Note
    If you get errors about missing mimetypes or such, try the following:
    • run unset XDG_DATA_DIRS ; kbuildsycoca4
    Note
    {{{1}}}


    Using SSH

    The simplest way to run a KDE 4 application with SSH in your current desktop environment is to get an X-aware shell prompt as the kde-devel user like this: ssh -X kde-devel@localhost Now you can launch KDE apps as usual, for example: kwrite The two lines can be conveniently combined: ssh -X kde-devel@localhost kwrite

    Note
    If this gives you any errors, try the troubleshooting tips from the section above. If you receive something like "kwrite: cannot connect to X server", open /etc/ssh/sshd_config and enable the "X11Forwarding" key. Restart sshd and it should work fine.


    Passwordless login

    Before anything serious can be done using this method, a passwordless login needs to be set up. To start, run the following command as the regular desktop user: ssh-keygen -t rsa Hit enter three times to accept the path of ~/.ssh/id_rsa and an empty passphrase. Now, copy the single line in ~/.ssh/id_rsa.pub that's printed after running this command: cat ~/.ssh/id_rsa.pub After that line is copied, ssh back into the kde-devel user and put the copied line in the file $HOME/.ssh/authorized_keys: ssh -X kde-devel@localhost $HOME/kde/bin/kwrite \

     $HOME/.ssh/authorized_keys
    

    Paste in the line, save the file, and quit KWrite.

    Next make sure $HOME/.ssh/authorized_keys has the correct permissions: ssh kde-devel@localhost chmod og-xrw ~kde-devel/.ssh/authorized_keys Now try running KWrite again with the same SSH command; you shouldn't have to enter a password anymore: ssh -X kde-devel@localhost $HOME/kde/bin/kwrite

    Warning
    Using a passwordless SSH login has certain security risks, so make sure you protect your ~/.ssh/id_rsa file by restricting access to it with chmod og-xrw ~/.ssh/id_rsa(although the file should have these permissions when it is created)


    The SSH desktop file

    If you want to be able to launch apps more easily than running them with an SSH command from the command line, one way is to create .desktop files that ssh into the other account.

    Note
    This will only be useful if your desktop environment supports .desktop files, but at least KDE and GNOME do.


    You can start with an existing .desktop file as a template (like one from your desktop) or you can make one from scratch. The main idea is to prefix the command being run with this string: ssh -X kde-devel@localhost $HOME/kde/bin/

    A simple .desktop file that runs KWrite would have the following contents:

    [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=

    Tip
    Apps launched using SSH like this don't trigger the correct launch responses, so you probably want to disable "launch feedback" for your .desktop files


    Note
    In order to create a .desktop file for a KDE 4 app by using this pattern, the app's package will have to have been installed into ~/kde/bin using the cmakekde command