Archive:Getting Started/Run/Shell: Difference between revisions
Neverendingo (talk | contribs) m (Text replace - "<code ini>" to "<syntaxhighlight lang="ini">") |
Neverendingo (talk | contribs) m (Text replace - "<code bash>" to "<syntaxhighlight lang="bash">") |
||
Line 5: | Line 5: | ||
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. | 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 < | To login, type <syntaxhighlight lang="bash">sux - kde-devel</code> | ||
All environment variables and everything else should be set up correctly by your {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}}. To start an application, simply type it's name; for example < | All environment variables and everything else should be set up correctly by your {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}}. To start an application, simply type it's name; for example <syntaxhighlight lang="bash">kwrite</code> | ||
{{Note|If you get errors about missing mimetypes or such, try running the following:< | {{Note|If you get errors about missing mimetypes or such, try running the following:<syntaxhighlight lang="bash">unset XDG_DATA_DIRS ; kbuildsycoca4</code> | ||
}} | }} | ||
== Using the normal shell without sux == | == Using the normal shell without sux == | ||
The simplest method to launch KDE 4 applications is using <tt>su</tt> to login as the <tt>kde-devel</tt> user and then simply start any KDE 4 application from command line. To login, type | The simplest method to launch KDE 4 applications is using <tt>su</tt> to login as the <tt>kde-devel</tt> user and then simply start any KDE 4 application from command line. To login, type | ||
< | <syntaxhighlight lang="bash">su - kde-devel</code> | ||
and then, after entering your password | and then, after entering your password | ||
< | <syntaxhighlight lang="bash">export DISPLAY=:0</code> | ||
{{Note|Exporting the <tt>DISPLAY</tt> variable is necessary so that the KDE 4 applications appear on your normal KDE 3 desktop.}} | {{Note|Exporting the <tt>DISPLAY</tt> 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 {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}}. To start an application, simply type it's name; for example < | All environment variables and everything else should be set up correctly by your {{path|[[Getting_Started/Increased_Productivity_in_KDE4_with_Scripts/.bashrc|.bashrc]]}}. To start an application, simply type it's name; for example <syntaxhighlight lang="bash">kwrite</code> | ||
{{Note| | {{Note| | ||
If you get errors about missing mimetypes or such, try the following: | If you get errors about missing mimetypes or such, try the following: | ||
* run < | * run <syntaxhighlight lang="bash">unset XDG_DATA_DIRS ; kbuildsycoca4</code> | ||
}} | }} | ||
{{Note| | {{Note| | ||
If you get an error about not being able to connect to an X server, be sure to issue | If you get an error about not being able to connect to an X server, be sure to issue | ||
< | <syntaxhighlight lang="bash">sudo xhost +local:kde-devel</code> | ||
as your regular KDE 3 user to ensure that the application can connect to your current X session. | as your regular KDE 3 user to ensure that the application can connect to your current X session. | ||
Line 32: | Line 32: | ||
For convenience, you should put this in the Autostart of your regular user. To do this, create a new file in the <tt>$HOME/.kde/Autostart</tt> directory of your regular user with the following content: | For convenience, you should put this in the Autostart of your regular user. To do this, create a new file in the <tt>$HOME/.kde/Autostart</tt> directory of your regular user with the following content: | ||
< | <syntaxhighlight lang="bash"> | ||
#! /bin/sh | #! /bin/sh | ||
xhost +local:kde-devel | xhost +local:kde-devel | ||
Line 44: | Line 44: | ||
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 <tt>kde-devel</tt> user like this: | 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 <tt>kde-devel</tt> user like this: | ||
< | <syntaxhighlight lang="bash">ssh -X kde-devel@localhost</code> | ||
Now you can launch KDE apps as usual, for example: | Now you can launch KDE apps as usual, for example: | ||
< | <syntaxhighlight lang="bash">kwrite</code> | ||
The two lines can be conveniently combined: | The two lines can be conveniently combined: | ||
< | <syntaxhighlight lang="bash">ssh -X kde-devel@localhost kwrite</code> | ||
{{Note| | {{Note| | ||
Line 57: | Line 57: | ||
=== Passwordless login === | === 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: | 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: | ||
< | <syntaxhighlight lang="bash">ssh-keygen -t rsa</code> | ||
Hit enter three times to accept the path of {{path|~/.ssh/id_rsa}} and an empty passphrase. Now, copy the single line in {{path|~/.ssh/id_rsa.pub}} that's printed after running this command: | Hit enter three times to accept the path of {{path|~/.ssh/id_rsa}} and an empty passphrase. Now, copy the single line in {{path|~/.ssh/id_rsa.pub}} that's printed after running this command: | ||
< | <syntaxhighlight lang="bash">cat ~/.ssh/id_rsa.pub</code> | ||
After that line is copied, <tt>ssh</tt> back into the <tt>kde-devel</tt> user and put the copied line in the file {{path|$HOME/.ssh/authorized_keys}}: | After that line is copied, <tt>ssh</tt> back into the <tt>kde-devel</tt> user and put the copied line in the file {{path|$HOME/.ssh/authorized_keys}}: | ||
< | <syntaxhighlight lang="bash">ssh -X kde-devel@localhost $HOME/kde/bin/kwrite \ | ||
$HOME/.ssh/authorized_keys</code> | $HOME/.ssh/authorized_keys</code> | ||
Paste in the line, save the file, and quit KWrite. | Paste in the line, save the file, and quit KWrite. | ||
Next make sure {{path|$HOME/.ssh/authorized_keys}} has the correct permissions: | Next make sure {{path|$HOME/.ssh/authorized_keys}} has the correct permissions: | ||
< | <syntaxhighlight lang="bash">ssh kde-devel@localhost chmod og-xrw ~kde-devel/.ssh/authorized_keys</code> | ||
Now try running KWrite again with the same SSH command; you shouldn't have to enter a password anymore: | Now try running KWrite again with the same SSH command; you shouldn't have to enter a password anymore: | ||
< | <syntaxhighlight lang="bash">ssh -X kde-devel@localhost $HOME/kde/bin/kwrite</code> | ||
{{warning|Using a passwordless SSH login has certain '''security risks''', so make sure you protect your <tt>~/.ssh/id_rsa</tt> file by restricting access to it with | {{warning|Using a passwordless SSH login has certain '''security risks''', so make sure you protect your <tt>~/.ssh/id_rsa</tt> file by restricting access to it with | ||
< | <syntaxhighlight lang="bash">chmod og-xrw ~/.ssh/id_rsa</code>(although the file should have these permissions when it is created)}} | ||
=== The SSH desktop file === | === The SSH desktop file === | ||
Line 78: | Line 78: | ||
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: | 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: | ||
< | <syntaxhighlight lang="bash"> | ||
ssh -X kde-devel@localhost $HOME/kde/bin/ | ssh -X kde-devel@localhost $HOME/kde/bin/ | ||
</code> | </code> |
Revision as of 20:41, 29 June 2011
Getting_Started/Run/Shell
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
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 <syntaxhighlight lang="bash">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 <syntaxhighlight lang="bash">kwrite
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 <syntaxhighlight lang="bash">su - kde-devel and then, after entering your password <syntaxhighlight lang="bash">export DISPLAY=:0
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 <syntaxhighlight lang="bash">kwrite
- run <syntaxhighlight lang="bash">unset XDG_DATA_DIRS ; kbuildsycoca4
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: <syntaxhighlight lang="bash">ssh -X kde-devel@localhost Now you can launch KDE apps as usual, for example: <syntaxhighlight lang="bash">kwrite The two lines can be conveniently combined: <syntaxhighlight lang="bash">ssh -X kde-devel@localhost kwrite
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: <syntaxhighlight lang="bash">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: <syntaxhighlight lang="bash">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: <syntaxhighlight lang="bash">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: <syntaxhighlight lang="bash">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: <syntaxhighlight lang="bash">ssh -X kde-devel@localhost $HOME/kde/bin/kwrite
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.
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:
<syntaxhighlight lang="bash">
ssh -X kde-devel@localhost $HOME/kde/bin/
A simple .desktop file that runs KWrite would have the following contents:
<syntaxhighlight lang="ini"> [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=