9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] how to run rio from plan9port?
@ 2007-11-03 13:53 Угодай n/a
  2007-11-03 15:00 ` Sergey Zhilkin
  2007-11-03 18:33 ` Russ Cox
  0 siblings, 2 replies; 4+ messages in thread
From: Угодай n/a @ 2007-11-03 13:53 UTC (permalink / raw)
  To: 9fans

I had installed plan9port in debian. Now I learn it. If I try to run rio as

$ startx $PLAN9/bin/rio

rio started. But if I say "New" so as to create terminal. But X Window
Systems say:

--- rio: X_KillClient(0x600001): BadValue (integer parameter out of
range for operation)

what is it? how to configure rio?

I have find a lot of documentation about plan9, but I have not been
finding documentation about base plan9port concept: how it work, how
it intercommunicated with unix environment, how it configure? Give me
any urls please.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] how to run rio from plan9port?
  2007-11-03 13:53 [9fans] how to run rio from plan9port? Угодай n/a
@ 2007-11-03 15:00 ` Sergey Zhilkin
  2007-11-03 18:33 ` Russ Cox
  1 sibling, 0 replies; 4+ messages in thread
From: Sergey Zhilkin @ 2007-11-03 15:00 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

[-- Attachment #1: Type: text/plain, Size: 668 bytes --]

Hi :)

Fresh install ?

2007/11/3, Угодай n/a <ugoday@gmail.com>:
>
> I had installed plan9port in debian. Now I learn it. If I try to run rio
> as
>
> $ startx $PLAN9/bin/rio
>
> rio started. But if I say "New" so as to create terminal. But X Window
> Systems say:
>
> --- rio: X_KillClient(0x600001): BadValue (integer parameter out of
> range for operation)
>
> what is it? how to configure rio?
>
> I have find a lot of documentation about plan9, but I have not been
> finding documentation about base plan9port concept: how it work, how
> it intercommunicated with unix environment, how it configure? Give me
> any urls please.
>



-- 
С Уважением
Жилкин Сергей

[-- Attachment #2: Type: text/html, Size: 965 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] how to run rio from plan9port?
  2007-11-03 13:53 [9fans] how to run rio from plan9port? Угодай n/a
  2007-11-03 15:00 ` Sergey Zhilkin
@ 2007-11-03 18:33 ` Russ Cox
  2007-11-04 15:56   ` sqweek
  1 sibling, 1 reply; 4+ messages in thread
From: Russ Cox @ 2007-11-03 18:33 UTC (permalink / raw)
  To: 9fans

> I had installed plan9port in debian. Now I learn it. If I try to run rio as
> 
> $ startx $PLAN9/bin/rio
> 
> rio started. But if I say "New" so as to create terminal. But X Window
> Systems say:
> 
> --- rio: X_KillClient(0x600001): BadValue (integer parameter out of
> range for operation)

I've never seen this and have no idea what it means.

> what is it? how to configure rio?
> 
> I have find a lot of documentation about plan9, but I have not been
> finding documentation about base plan9port concept: how it work, how
> it intercommunicated with unix environment, how it configure? Give me
> any urls please.

In general there is no configuration of plan9port other than
what you are told at the end of the install: set $PLAN9 in your
profile along with adding $PLAN9/bin to your path.  That is, the
programs themselves require almost no configuration.  What little
is needed is mentioned in intro(1).

You might find it useful to customize the Unix startup scripts
to run your favorite programs, but that's different.  Here's
what I do.

First of all, when you log in your shell typically runs
$HOME/.profile.  If you use bash then it looks for $HOME/.bash_profile
first.  I work around this:

	$ cat $HOME/.bash_profile
	. ~/.profile
	$ 

And then my .profile says:

	$ cat $HOME/.profile
	OS="`uname | tr A-Z a-z`"
	ARCH="`uname -m | sed 's;i.86;x86;'`"
	BIN=$HOME/bin:$HOME/bin/$OS:$HOME/bin/$OS/$ARCH
	PLAN9=/usr/local/plan9
	PATH=.:$BIN:$PATH:$PLAN9/bin:/usr/bin/mh
	
	# Browser used by web(1) and thus plumber.
	BROWSER=firefox
	
	# This is still needed on OS X, which is about a decade behind.
	CVS_RSH=ssh	
	
	# Plumb files instead of starting new editor.
	EDITOR=E
	unset FCEDIT VISUAL
	
	# Let gs find the plan9port document fonts.
	GS_FONTPATH=$PLAN9/postscript/font
	
	# Make sure mpage prints in letter mode.
	MPAGE="-t -bLetter"
	
	# Get rid of backspace characters in Unix man output.
	PAGER=nobs
	
	# Prompt (is almost a no-op in bash)
	H=`hostname | sed 's/\..*//'`
	PS1=$H'=; '
	
	# Default font for Plan 9 programs.
	font=$PLAN9/font/lucm/unicode.9.font
	
	# Equivalent variables for rc(1).
	home=$HOME
	prompt="$H=; \x01	"
	user=$USER
	
	export \
		BROWSER\
		CVS_RSH\
		EDITOR\
		FCEDIT\
		GS_FONTPATH\
		H\
		MPAGE\
		PAGER\
		PATH\
		PLAN9\
		PS1\
		VISUAL\
		font\
		home\
		prompt\
		user\
	
	# Dump core files by default.
	ulimit -c unlimited
	
	# Tell core(1) where to find core files.
	if [ -d /core/rsc ]; then
		COREDIR=/core/rsc; export COREDIR
	fi
	
	. $HOME/.bashrc

	autostartx
	$ 

I'm using bash as my default shell (sorry rc fans) so some things
need to be done at the start of every bash instance, not just
the first one.  These things are in my .bashrc, included by the
profile for good measure:

	$ cat $HOME/.bashrc
	_cd () {
		\cd "$@" &&
		case "$TERM!$-" in
		linux!*)
			;;
		*!*i*)
			awd
		esac
	}
	alias cd=_cd
	set +o emacs
	set +o vi
	set -a	# autoexport
	
	[ -z "$PLAN9" ] && . $HOME/.profile
	$ 

The cd alias sets the current window label using awd (see label(1))
unless the window is on the Linux console.  This also helps 9term
send correct plumbing messages.

The meaning of the "set" commands is the reverse of what you'd
expect: the three above turn *off* emacs and vi line editing and
turn *on* autoexport of environment variables (like in rc).
Turning off the line editing keeps GNU readline out of the picture
so that editing the command line in 9term works (see 9term(1)).

The last line invokes .profile if $PLAN9 is not set; explained
below.

After running .bashrc, .profile runs autostartx, which starts
X11 if the current terminal is tty1 (virtual terminal 1 on Linux):

	$ cat $HOME/bin/autostartx
	#!/bin/sh
	
	if [ "`/bin/ls -l /proc/self/fd/0 2>/dev/null | awk '{print $NF}'`" = '/dev/tty1' ]
	then
		# echo
		# echo Console login.
		NAMESPACE=/tmp/ns.`hostname`
		export NAMESPACE
		rm -rf $NAMESPACE; mkdir $NAMESPACE
		# echo '	name' space $NAMESPACE
		# echo Starting factotum.
		9 factotum -n
		echo -n secstore ''
		aescbc -d < $HOME/lib/secstore.aes | 9p write -l factotum/ctl
		# echo Starting SSH agent.
		eval `9 ssh-agent -e`
		startx
	fi
	$

I override $NAMESPACE (see intro(4)) because X11 is not running
yet (that makes sense if you read intro(4)) but I want to start
factotum.  I load factotum's keys from an AES-encrypted file in
my home directory and then start the Plan 9 ssh agent, which
mediates between Unix ssh and Plan 9 factotum (see factotum(4)
and ssh-agent(1)).

Startx starts X11, runs .xinitrc, and then stops X11.  To run
rio as my window manager, I put it in .xinitrc:

	$ cat $HOME/.xinitrc
	plumber
	riostart
	rio &
	sleeper
	$ 

Running plumber first makes sure it is available to all the
programs I'm about to start.

Riostart is a shell script that starts my stats and acme windows
where I want them to be, and also starts firefox:

	$ cat $HOME/bin/riostart
	#!/usr/local/plan9/bin/rc
	
	stats -W 100x100@0,0 -lmisce 
	switch(`{hostname}){
	case tux
		acme -a -W 1592x1092@0,104 -l lib/acme.dump &
	case x40
		acme -a -W 1016x660@0,104 -l lib/acme.dump.small &
	case t23 *
		acme -a -W 1392x942@0,104 -l lib/acme.dump &
	}
	firefox &
	$ 

When .xinitrc exits, startx makes X exit.  Typically the window
system is the last thing .xinitrc runs, but then when it exits,
X does.  I run "sleeper" so that I can kill and restart rio (or
other window managers) without losing my X session.

	$ cat $HOME/bin/sleeper
	#!/bin/sh
	while true
	do
		sleep 1000 
	done
	$ 

So that's everything from me logging in to having some programs
up and running.

There is one other situation worth mentioning.  On typical Linux
systems these days, X gets started before you log in.  You get
a nice gui login screen instead of logging in on tty1 and running
startx by hand (or by script).

In that case, after you've logged in, X runs $HOME/.xsession to
start your X session, not .xinitrc.  My .xsession makes sure the
existing plan9port apps really exited (useful if you just logged
out of an X session) and then runs factotum and .xinitrc:

	$ cat $HOME/.xsession
	killall -9 factotum plumber devdraw auxstats 9pserve stats
	9 factotum -n
	xterm -e 'aescbc -d < $HOME/lib/secstore.aes | 9p write -l factotum/ctl'
	eval `9 ssh-agent -e`
	. .xinitrc
	$ 

When run this way, .profile never runs, so the first instance
of bash in each new 9term sees an empty $PLAN9 during .bashrc
and invokes .profile manually (the odd line above).  I suppose
I might get away with running .profile in .xsession before
.xinitrc, but I haven't tried that, and this is working well
enough for now that I'm not going to mess with it.  All of this
is subtle and quick to anger.

All the man pages I mentioned are plan9port man pages.  
They are on the web at http://swtch.com/plan9port/man/.

Russ


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9fans] how to run rio from plan9port?
  2007-11-03 18:33 ` Russ Cox
@ 2007-11-04 15:56   ` sqweek
  0 siblings, 0 replies; 4+ messages in thread
From: sqweek @ 2007-11-04 15:56 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

On Nov 4, 2007 3:33 AM, Russ Cox <rsc@swtch.com> wrote:
> Plan 9 ssh agent, which
> mediates between Unix ssh and Plan 9 factotum (see factotum(4)
> and ssh-agent(1)).

 Ahah! I was wondering if someone had done that. Neat.
-sqweek


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-11-04 15:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-03 13:53 [9fans] how to run rio from plan9port? Угодай n/a
2007-11-03 15:00 ` Sergey Zhilkin
2007-11-03 18:33 ` Russ Cox
2007-11-04 15:56   ` sqweek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).