diff options
Diffstat (limited to '')
-rw-r--r-- | 2022/talks/detached.md | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/2022/talks/detached.md b/2022/talks/detached.md new file mode 100644 index 00000000..f4b17e92 --- /dev/null +++ b/2022/talks/detached.md @@ -0,0 +1,89 @@ +[[!sidebar content=""]] +[[!meta title="Getting detached from Emacs"]] +[[!meta copyright="Copyright © 2022 Niklas Eklund"]] +[[!inline pages="internal(2022/info/detached-nav)" raw="yes"]] + +<!-- Initially generated with emacsconf-generate-talk-page and then left alone for manual editing --> +<!-- You can manually edit this file to update the abstract, add links, etc. ---> + + +# Getting detached from Emacs +Niklas Eklund (he/him, <mailto:niklas.eklund@posteo.net>) + +[[!inline pages="internal(2022/info/detached-before)" raw="yes"]] + + +As an enthusiastic Emacs user I would find myself replacing the usage +of an external terminal emulator with the Emacs alternative +interfaces. This included using packages such as dired for file +management, magit for git and proced for processes. However I always +kept a terminal around for running shell commands. These were +commands that I knew would either, take a long time to run, produce a +lot of rapid text output or that I would run on a remote machine. In +the remote case I would rely on tmux to be able to detach and let the +command run even when I wasn't connected. + +To rid me of the need for the terminal emulator in these situations I +developed the detached.el package. It is a package that builds on top +of the dtach program, which provides the ability to detach and +re-attach to processes, to offload Emacs from these processes. The +package seamlessly integrates the ability to detach and attach into +Emacs, and offers integration with many built in features such as +shell, eshell, compile, org and dired. + +In this talk I will demonstrate the features of this alternative way +to run detached processes and how the package can leverage built in +Emacs functionality to provide a great experience. The user interface +will be showcased and how the processes essentially becomes text, +which fits very well into Emacs. + +# Bio + +- Blog: <https://niklaseklund.srht.site/> +- Source code: <https://sr.ht/~niklaseklund/> + +My name is Niklas Eklund. I am 35 years young and I live in Gothenburg +(Sweden) with my wife and our dog. In my daily work, I write code in +C++ and Python. My free time I dedicate to music, board-games, improvement, +and of course, Emacs. + +More than 4 years has passed since I first started using Emacs and +there is so much to like about it: its community, the ethics and how +it encourage me to experiment and explore. Whether it is about writing +a small function, or a package, the ability to mold Emacs to what +makes sense to us as individuals is something to cherish. + +# Discussion + +## Questions and answers + +- Q: Can it replace ssh+tmux for persistent sessions on remote hosts? + - A: Not yet; being considered for future work. +- Q: I see integration with projectile in the readme, does it also + integrate with project.el? + - A: Not yet but should be easy to add. +- Q: Can you detach a session from shell-mode and reattach from + eshell/vterm/term-mode? Or start a compile in shell-mode and attach + it from compilation-mode? + - A: +- Q: How do you talk to detached? Could it be feasible to run a child + emacs instead of detached? Would it make sense? Better communication + maybe? + - A: +- Q: How does it handle processes that require user input? (Usually to + type y/n, etc). M-x compile is great but can't handle user input. + - A: +- Q: Can you rerun a command (session?) but in another directory? + - A: +- Q: What are some other places where this might be useful? mu4e + fetching mail? Git processes started by Magit? What things would + you like to see working in a 1-2 year timeframe? + - A: +- Q: What are you currently excited about in emacs? + + +[[!inline pages="internal(2022/info/detached-after)" raw="yes"]] + +[[!inline pages="internal(2022/info/detached-nav)" raw="yes"]] + + |