Archive:Getting Started/Run/Shell: Difference between revisions

From KDE TechBase
(minor updates)
m (Reverted edits by KennethMartinez (talk) to last revision by AnneW)
 
Line 109: Line 109:
{{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}}
{{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 ... \n
{{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 <tt>~/kde/bin</tt> using the <tt>cmakekde</tt> command}}


== Meet The New Boss: You ==
[[Category:KDE4]]
 
What do coffee growers in Ethiopia, hardware store owners in America, and Basque entrepreneurs have in common? For one thing, many of them belong to cooperatives. By pooling their money and resources, and voting democratically on how those resources will be used, they can compete in business and reinvest the benefits in their communities.
 
[[http://goodvillenews.com/Meet-The-New-Boss-You-wF4aeF.html Meet The New Boss: You]]
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
== Why You Should Always Trust Yourself ==
 
Trust yourself. You know more than you think you do. Benjamin SpockAs time passes by and the more work you will do on discovering and improving yourself, the more you will realize that the ancient Latin quotation: Ne te quaesiveris extra - Do not look outside of yourself for the truth, is true.
 
[[http://goodvillenews.com/Why-You-Should-Always-Trust-Yourself-TR2gYW.html Why You Should Always Trust Yourself]]
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
== Student Goes From Homeless to Harvard ==
 
Despite being abandoned to homelessness by her parents, Dawn Loggins worked as a high school custodian by day and studied hard by night to become the first person from her school to ever be admitted to Harvard.
 
[[http://goodvillenews.com/Student-Goes-From-Homeless-to-Harvard-QX9Vg4.html Student Goes From Homeless to Harvard]]
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
== What Is Your Legacy? Living A Meaningful life ==
 
I want the world to be better because I was here. I want my life, I want my work, my family, I want it to mean something and if you are not making someone elses life better then you are wasting your time Will Smith
 
[[http://goodvillenews.com/What-Is-Your-Legacy-Living-A-Meaningful-life-oBtnrB.html What Is Your Legacy? Living A Meaningful life]]
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]
 
== Man Builds Fairy Tale Home for $4700 ==
 
Simon Dale is a family man in Wales, the western part of Great Britain. His interest in self-sustainability and an ecological awareness led him to dig out and build his own homeone of the loveliest, warmest, most inviting dwellings you could ever imagine. And it cost him only 3,000, about $4,700 American dollars!
 
[[http://goodvillenews.com/Man-Builds-Fairy-Tale-Home-for-4700-CHIO9L.html Man Builds Fairy Tale Home for $4700]]
 
[[http://goodvillenews.com/wk.html GoodvilleNews.com - good, positive news, inspirational stories, articles]]

Latest revision as of 15:55, 31 July 2012

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
If you get an error about not being able to connect to an X server, be sure to issue
sudo xhost +local:kde-devel

as your regular KDE 3 user to ensure that the application can connect to your current X session.

Although your X server should accept incoming TCP connections, this is often switched off as a distribution default (like with Kubuntu Feisty). When using kdm you must edit /etc/kde3/kdm/kdmrc as root and make sure it does not contain:

ServerArgsLocal=-nolisten tcp

Once you have fixed this, you will need to restart your X server. The xhost command should no longer return an "unable to open display" error.

For convenience, you should put this in the Autostart of your regular user. To do this, create a new file in the $HOME/.kde/Autostart directory of your regular user with the following content:

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

Make sure that the new file is executable by using chmod +x on it.

If you'd like to find out more about the security issues involved with using xhost, see this article


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