alphapapa / burly.el

Save and restore frames and windows with their buffers in Emacs
GNU General Public License v3.0
301 stars 14 forks source link

Support for shell buffers (needs workaround or, preferably, upstream support) #22

Open jacquesdurden opened 3 years ago

jacquesdurden commented 3 years ago

Burly is great! Thank you for this super handy tool.

I have only a little problem, or maybe it's actually a new feature request.

I'd like to save a layout of say 3 windows in my frame with one of the window open on a shell (using just shell). My wish would be that by invoking the Burly bookmark of this layout, the 3 windows would reappear with my shell reopened exactly as before.

For now, while Burly is perfectly fine for standard windows open on files, I got this error message if one of them contains a shell Wrong type argument: stringp, nil

Thank you.

alphapapa commented 3 years ago

Hi Jacques,

Thanks, I'm glad you like it.

Supporting the various kinds of shell/terminal buffers would best be handled by giving each of those buffers' major modes a bookmark-make-record-function so their buffers could be bookmarked by Emacs. Ideally those functions would be merged into Emacs upstream so that everyone would benefit from them.

Other than that, we could add some mode-specific workarounds in this package, but we'd have to write essentially the same code, so it might as well be upstreamed.

I rarely keep shells open in Emacs, so I probably wouldn't use this feature very much right now. Would you be able/willing to work on that?

For now, while Burly is perfectly fine for standard windows open on files, I got this error message if one of them contains a shell Wrong type argument: stringp, nil

That part is a bug, so thanks for reporting that.

captain-yoshi commented 3 years ago

This module is great (elegant, simple and effective). Like @jacquesdurden I would like to store eshell with Burly.

I have come across this post that led me to this eshell bookmark github repo. I didn't have the chance to test this, but this could be a good starting point and/or solution.

jacquesdurden commented 3 years ago

Thank you for this solution @captain-yoshi! I tried it and it works! (just be sure though to well install eshell-bookmark with its activation command in your init.el, see its github page) This could be a good info for the Burly team too. I just have really minor positioning issues in the window containing eshell at startup but I can live with this. Thank you again.

captain-yoshi commented 3 years ago

Glad it could help! I'm currently using doom emacs and have problem opening the bookmark...

Warning (burly): Error while opening bookmark: ERROR:(void-function eshell-bookmark--restore)  RECORD:("" (defaults "*doom:eshell*") (filename . "~/Downloads/") (handler . eshell-bookmark--restore))

config.el

(add-hook! 'eshell-mode-hook #'eshell-bookmark-setup)

packages.el

(package! eshell-bookmark)

@jacquesdurden Is my configuration good? I'm fairly new to elisp and emacs. Thx

jacquesdurden commented 3 years ago

I don't use doom emacs but why have you "!" and "#" in you commands? It seems you must just write

(add-hook 'eshell-mode-hook 'eshell-bookmark-setup)

Have you also tried with

(use-package eshell-bookmark :after eshell :config (add-hook 'eshell-mode-hook #'eshell-bookmark-setup))

instead?

captain-yoshi commented 3 years ago

I think doom emacs uses the "!" and "#", see the documentation. Maybe @alphapapa can help with burly's warning.

(add-hook 'eshell-mode-hook 'eshell-bookmark-setup)

Gives me the same warning as my previous post.

alphapapa commented 3 years ago

@captain-yoshi Thanks for sharing the links. I added @Fuco1's article and package to the notes file. Ideally the eshell-bookmark package would be upstreamed into Emacs. Since I don't much use eshell (yet?), I'll leave that to you to pursue.

Regarding that error: it means what it says: the function is void. That means you haven't loaded it into your Emacs.

Since Doom and generic Emacs issues are off-topic here, please use an appropriate forum to seek help with them.

Thanks.

Fuco1 commented 3 years ago

I agree it would be nice to push upstream, I think someone even tried to do it already. Unfortunately I'm quite unable to tend to my packages these days, but it's certainly open for anyone (I have signed the fsf papers).

alphapapa commented 11 months ago

AFAIK there is no longer a bug here with regard to Burly.

The enhancement to shell in Emacs itself, to add bookmark support, is still needed. Maybe someone will get to that someday...