104

After modified screenrc, how to see the changes without restarting screen?

4 Answers 4

125

You could try Ctrl-a : source ~/.screenrc.

11
  • 7
    Sourcing the file should work. Detaching and reattaching will not.
    – Zed
    Oct 25, 2010 at 19:35
  • 1
    @Zed: But it will re-apply the termcap/terminfo stuff which will not happen when you use source. Oct 25, 2010 at 19:36
  • @Dennis, I tried detaching and reattaching and it didn't work, hence I came to ask this question. Also, using source can open all windows from .screenrc, however it doesn't refresh the session, but creating duplicate windows in one session. Thanks.
    – garconcn
    Oct 25, 2010 at 22:17
  • 3
    Using "source" is the correct (and only) way to have screen re-read the .screenrc in a running session. Yes, this means it will re-run any commands you have inside it, including commands that create windows or layouts. You could edit the file to comment out the commands that create thew new windows/layouts; source the file; and then un-comment those lines. Of course, if it's the window creation you're wanting to test, you don't have much choice here... Oct 25, 2010 at 22:46
  • 10
    @garconcn: If this is something you might do frequently, put that stuff (non-screen-creation instructions) in a second file and source it from .screenrc (which will contain your screen creation instructions) for regular startup and when you need to source it again after screen has already started, just do "ctrl-a : source secondary-file" to skip the screen-creation stuff. Oct 25, 2010 at 23:53
38

I tried the option mentioned here - Ctrl-a : source ~/.screenrc and it didn't work for me.

This is what worked for me - Ctrl-a : source $HOME/.screenrc

7
  • It would be normal to expect ~ to expand to your home directory.
    – user9517
    Dec 8, 2011 at 11:44
  • @Iain I know, ideally it should. I guess something was wrong with my ENV then. Nevertheless, it worked.
    – holydevil
    Dec 13, 2011 at 10:41
  • I had this exact same issue on CentOS 5.
    – slm
    Dec 22, 2012 at 3:28
  • Same issue with zsh and oh-my-zsh on archlinux.
    – Jaseem
    Nov 23, 2013 at 9:39
  • 4
    Same issue on my Mac, had to use 'source $HOME/.screenrc'
    – bobmagoo
    Mar 6, 2015 at 19:50
22

I have this in my .screenrc file:

bind R eval "source $HOME/.screenrc" "echo '.screenrc reloaded!'"

Which causes screen to reload the .screenrc file when Ctrl-AShift-R is pressed.

Of course, this only works if you've already got the line in your .screenrc file! To 'bootstrap' this sortcut on an existing screen session, add the line above line to your .screenrc file and then follow @Dennis Williamson's answer. After that, you'll be able to use the new keyboard shortcut.

1
  • 1
    This is brilliant. Is there anything that can be added to the command to stop the reload from opening additional windows? I have .screenrc configured to automatically start two shell windows on startup, so reloading .screenrc continually opens two new windows. Nov 11, 2019 at 16:19
0

The Ctrl-a : source ~/.screenrc (or variants) mentioned by others are indeed "the way to go".

But if you are using a frontend for screen (e.g. byobu), a bit of extra work is needed:

  • Open a new terminal
  • Attach the screen here too: screen -x
  • Run Ctrl-a : source ~/.screenrc (like everyone suggested)
  • Detach the screen: Ctrl-a d
  • Stop the new terminal: exit

The settings are now applied everywhere this screen is attached, no matter what frontend you are using. (Even when using no frontend at all)

You must log in to answer this question.

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