How to make GNU Screen start a new window at the CURRENT working directory?

Rio picture Rio · Oct 4, 2009 · Viewed 21.2k times · Source

By default, when you create a new window in GNU Screen, it will start in the directory where screen is invoked. I want to start a new window in GNU Screen at the current working directory of the window I'm currently in. How to do that? Thanks!

Answer

Dan Midwood picture Dan Midwood · Oct 4, 2009

See the gnu screen chdir command. All new windows created in screen use this as their initial directory. Using this you can do something like

chdir /home/dan/newscreendir
screen

And your new window (along with any future created windows) will be in the set directory. If it's always going to be the current working dir you may be able to set something up in your screenrc to do this one in one command.

See the gnu screen man page, it's quite comprehensive.

Screen chdir command

Screen cannot access your shell variable nor execute backticked commands. The closest I can get to doing it in one click is with a small bash script like this

screen -X setenv currentdir `pwd`
screen -X eval 'chdir $currentdir' screen

or more compactly

screen -X eval "chdir $PWD"

screen -X sends the command to the currently running screen session. The first line creates a variable called currentdir. The second line sends the currentdir to the chdir command and then creates a new screen window.