Skip to content

Port to python3 and current GNU screen#16

Open
cyanogilvie wants to merge 6 commits into
skoneka:masterfrom
cyanogilvie:master
Open

Port to python3 and current GNU screen#16
cyanogilvie wants to merge 6 commits into
skoneka:masterfrom
cyanogilvie:master

Conversation

@cyanogilvie

Copy link
Copy Markdown

I've had a first pass at bringing this project up to date with the latest python and upstream GNU screen sources. Basic functionality works but scs manage is still broken.

I'm only a very occasional python programmer, I maybe work in it once every couple of years, so before I plow a lot of time into knocking off the python rust again I'm submitting this PR to gauge if there is still interest in this project upstream. If there is I'll work on fixing manage properly, otherwise I'll probably just reverse engineer that portion and implement it in another language I'm more comfortable with (if I'm going to be the one to take on the primary maintainer role for it).

@skoneka

skoneka commented Aug 13, 2024

Copy link
Copy Markdown
Owner

Hi @cyanogilvie , thanks for all the work around scs! Screen-session was built to "scratch my own back" but I've moved on. I would be very happy to transfer this project to someone who currently finds it useful and can continue working on it. Perhaps you could consider becoming the new upstream for this project ?

@cyanogilvie

Copy link
Copy Markdown
Author

I think I have a similar itch to scratch now :)

Since I'll have to maintain a forked version of screen anyway, I've started an experiment embedding a Tcl safe interpreter directly into screen itself and exposing commands for the screen commands (like at, etc) into the scripting environment. That way I can just build the session save and load functions as Tcl scripts that run in screen itself and can access any of its internals that it needs. So far it looks like it will work, so I'll likely go down that road. Your work on this project will be very helpful for the logic of how to actually persist the state, and really means the difference between this being a project I can feasibly address and not, so thank you :)

@seamusdemora

Copy link
Copy Markdown

@cyanogilvie :

I'm interested! Have you made any progress in the past year? How do I get to your forked version (assuming that's the way you decided to go)??

@cyanogilvie

Copy link
Copy Markdown
Author

My experiment is in my escreen fork. I got pulled off before implementing the actual session save and restore logic, all it has is an embedded Tcl interp (--enable-tcl configure arg) and wiring for calling Tcl from screen: :tcl <script> screen command, and calling screen commands from the embedded Tcl interp: screen::<command> ?arg ...?. The screen::at command has special handling, though I forget why now, possibly different arity.

I can't believe this was just over a year ago, it feels like 5 at least. I'm in the process of emigrating and everything is upside down at the moment. I'd still like to implement session save and restore in this way, but haven't found the time yet to finish it. Would the embedded Tcl interp approach be useful to you? If so I might find a day or two to square that work away (I think it will only build on a late Tcl 8.7 series interp, which is now not intended to be released, and will need minor work to port to Tcl 9).

Quickly skimming the changes to refresh my memory, it looks like it has what it needs to in order to implement the session save logic in Tcl scripts (call any screen command from Tcl). If you speak Tcl and feel like giving it a go, I'd be interested in the result :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants