12

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?

4 Answers 4

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.

1
  • 4
    Finally 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. Feb 10, 2010 at 14:23
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"
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.

1
  • Even better: use type screen
    – thiagowfx
    May 27, 2018 at 20:16
1

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .