Skip to content

Run interactive xonsh shell session in milliseconds using prewarmed session from the background.

License

Notifications You must be signed in to change notification settings

anki-code/xonsh-prewarmed

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xonsh-prewarmed is to run interactive xonsh session in milliseconds using prewarmed session from the background screen.

If you like the idea click ⭐ on the repo and and tweet.

How it works

On first run of xonsh-prewarmed-* script it creates additional reserved xonsh session in the background. On the next runs of the script it uses the reserved sessions and create new reserved sessions in the background. As result the speed of run the new interactive xonsh sessions is milliseconds.

Supported screen managers:

Installation

wget https://raw.githubusercontent.com/anki-code/xonsh-prewarmed/main/xonsh-prewarmed-screen
wget https://raw.githubusercontent.com/anki-code/xonsh-prewarmed/main/xonsh-prewarmed-tmux
chmod +x xonsh-prewarmed-*

Usage

GNU Screen:

./xonsh-prewarmed-screen

Tmux:

./xonsh-prewarmed-tmux

Detect that xonsh was prewarmed

Use XONSH_PREWARMED environment variable to detect that xonsh was prewarmed in ~/.xonshrc:

if __xonsh__.env.get('XONSH_PREWARMED', False):
    print('This xonsh session was prewarmed!')

Cheatsheet

GNU Screen

Basics:

  • When you run screen the new session will be started and your current terminal will be attached to it.
  • You can put the screen session to background by pressing Ctrl + a and then press d. After this your terminal will be detached from the session but the session will stay active in background.
  • Run screen -ls to get list of all sessions. The sess_id is the number before dot.
  • Run screen -r <sess_id> to attach Detached session to the current terminal.
  • Run screen -rd <sess_id> to detach the Attached session and attach to the current terminal.
  • Run env | grep STY to get current sess_id.

Add another session manager

Feel free to add another session manager (e.g. zellij) by creating xonsh-prewarmed-<manager>.

About

Run interactive xonsh shell session in milliseconds using prewarmed session from the background.

Topics

Resources

License

Stars

Watchers

Forks

Languages