How do I get GNU screen not to start in my home directory in OS X?

11

3

GNU Screen (screen) behaves differently on OS X 10.5 (Leopard) and 10.6 (Snow Leopard) compared to Linux (at least Ubuntu, Red Hat, and Gentoo) and OS X 10.4 (Tiger). In 10.5 and 10.6, new screens (made with screen or ^A c) always places me in my home directory ~. In Linux and OS X Tiger, new screens have a pwd of wherever the screen was created originally.

Made up examples to illustrate what I mean:

Tiger:

$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben/foo
$ screen # or ^A c
$ pwd
/Users/ben/foo

Leopard, Snow Leopard:

$ cd ~/foo
$ pwd
/Users/ben/foo
$ screen
$ pwd
/Users/ben
$ screen # or ^A c
$ pwd
/Users/ben

How do I get Leopard and Snow Leopard to behave like Tiger used to?

Benjamin Oakes

Posted 2009-12-02T16:09:55.063

Reputation: 2 585

Answers

7

A better way to check what exactly is being run when you type screen would be to run command -V screen. This will tell you whether it's running a binary (in which case the full path will be given) or a shell alias, function, etc.

Another thing to check is whether there's a chdir command in either your ~/.screenrc or the system-wide screenrc.

jamessan

Posted 2009-12-02T16:09:55.063

Reputation: 1 021

3Finally found out what was doing it. I had shell -$SHELL in a section copied from a coworker. The problem went away when it was removed. It doesn't behave the same way as on Linux, etc. – Benjamin Oakes – 2010-02-10T14:23:30.763

3

The screen(1) man page describes the Screen chdir command.

   chdir [directory]

   Change the current directory of screen to the specified directory or,
   if called without an argument, to your home  directory  (the  value  of  the
   environment  variable  $HOME).  All windows that are created by means of the
   "screen" command from within ".screenrc" or by means of "C-a : screen
   ..." or "C-a c" use this as their default directory.  Without a chdir command,
   this would be the directory from which screen was  invoked. …

My Screen configuration for a programming session includes the command

chdir "$HOME/Projects"

bignose

Posted 2009-12-02T16:09:55.063

Reputation: 1 981

2

The first step is to make sure that screen isn't an alias.

Type alias and look for screen. Be warned that this list could be long. You may want to type alias | grep screen to separate the wheat from the chaff.

If screen turns out to be an alias for something like cd ~ && screen you can remove this using unalias screen.

eleven81

Posted 2009-12-02T16:09:55.063

Reputation: 12 423

Even better: use type screen – thiagowfx – 2018-05-27T20:16:35.763

1

I believe this web page here has your answer: http://code.google.com/p/silassewell/wiki/ScreenOSX

shaond

Posted 2009-12-02T16:09:55.063

Reputation: 655