https://bugs.kde.org/show_bug.cgi?id=412731

Askar Safin <safinas...@mail.ru> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|WAITINGFORINFO              |---
             Status|NEEDSINFO                   |REPORTED

--- Comment #4 from Askar Safin <safinas...@mail.ru> ---
(In reply to David Edmundson from comment #3)
> I am happy to help do what we need to address any valid use cases, if we can
> solve them properly.
Thanks a lot!

> However, I still don't yet understand, how does this
> help with a crash?

I often have something like 50 various windows opened. When my computer
crashes, of course, I am completely disappointed and frustrated. Because all
information about state of my computer and all information about my work is
lost. In some sense set of opened windows *is* to-do list.

When I start to do something, I open relevant windows. Then this work may for
some reason become postponed and some new urgent work may appear. Then I open
new windows (without closing previous set of windows). This can happen a lot of
times and then I may got 50+ windows, some of them are "new" (i. e. opened
recently) and some "old" (i. e. I saw them very lot of time ago).

I rarely reboot my computer and I often use hibernate.

So, I want to record video from every window. If my computer crashes, I will
watch all this videos (with a paper and pencil in my hands) and thus I will be
able to open all this windows again restoring their state.

You may ask: why you need to watch video, why not just see the last screenshot?

Well, there is a lot of programs, such that their state cannot be restored by
last screenshot. For example, browser window with tabs. I need to watch video
in reverse order starting from last screenshot until all tabs will show up in
video. Same for konsole windows. I need to watch entire video to see all
commands and their output. Last screenshot will show me only few last commands.

So I will watch all this videos in reverse order from last screenshot until all
information from this particular video is restored.

Okey, what I do currently? Currently I don't have such program. I use X11, and
I simply record video from whole screen using "ffmpeg -f x11grab". When my
computer crashes I watch this video (with a paper and pencil) from last frame
until all windows will show up in video and all information from them is
restored.

I usually restart video capturing once a day and unminimize all windows to make
sure all they are captured. So in case of crash I need to watch no more than
last day. Watching such video usually takes whole day.

What programs I use? Most of time I use 3 programs only: konsole, chromium and
kate/kwrite. Usually I have lots of konsole windows opened, lots of chromium
windows opened and a few kate/kwrite windows. Currently I have 8 konsoles and
11 chromiums (i. e. 19 windows). This is good situation, often windows count is
more.

You may ask: why not just use build-in capabilities in this programs for
restoring state? Chromium can restore tabs, kate can restore unsaved files and
for konsole we have .bash_history. Well, this is true, but unfortunately all
this features are not complete.

Let's begin from Chromium. Usually it restores form data correctly. But
unfortunately sometimes this just fails. Also, Chromium doesn't restore form
data for dynamically created form elements. If I remember correctly Chromium
dev even said to me in bug tracker that Chromium will never restore form data
in dynamically created elements. For example, go open https://paste.gg/ . Then
click "Add file". Additional dynamically created <textarea> will open. Type
some text to it, then crash your browser and restore tabs. That text will be
lost.

Now let's speak about konsole. I use konsole windows as to-do list in some
sense. Let me explain. For example, I created some file or directory using
konsole. Say, I typed "mkdir /some-dir". Then I will not close this window
while I need this dir. I. e. this window serves as reminder that this directory
exists and that I should delete it when it becomes not needed. So I need to
restore all konsole windows. To know what files and dirs I created to know that
I should delete them. Of course, all this applies not only to files and dirs,
but to other things, too. For example, I temporary moved some file from one
place to another. Then this konsole window with "mv" command serves as reminder
that this file should be moved back. Etc, etc. Okey, what about .bash_history?
Well, first of all, in case of hard crash commands in opened windows are lost
(because bash writes .bash_history at exit). But bash can be configured to
write command to history immediately. So, let us assume we configured bash so.
What next? Well, then .bash_history will contain all commands. From opened
windows and from closed. But I need from opened only! Because they are in some
sense to-do list. They mean actions which started but not finished. Temporary
dirs which I created and not yet deleted etc. Also I need output of commands,
not only commands themselves.

Okey, all this problems with programs can be fixed.

I can write Chromium extension which will save tabs better than standard
mechanism. I can use something like asciinema or script (
https://manpages.debian.org/buster/bsdutils/script.1.en.html ) to save konsole
state (side note: asciinema and script don't handle change of window size
correctly, so they are not full solution, either). But I still need some
mechanism which will simply record video from all windows. Why? For two
reasons:

1. Robustness. Having general failback mechanism in addition to
application-specific hacky solutions (chromium extensions and asciinema) is a
good thing. Robustness is a good thing.
2. Most of time I use konsole, chromium and kate/kwrite, but sometimes I use
something different. And I don't want to research ways to restore state in new
application before using it. I want state saving to simply work.

Ask me questions if you still have them. I can explain you everything. I also
can show you code I wrote so far. I wrote tool which captures videos for all
X11 windows. This program is unfinished, so I currently don't use it. Also I
wrote my own small analog of asciinema/script.

You may ask: why not simply fix all software and hardware problems which can
cause crashes? Well, reasons are diverse. This can be power outage on my
laptop. This can be something completely different. For example, one day I
created isolated container on my laptop and gave away the access to this
container to members of public IRC channel. I thought this container is
completely isolated and anonymous IRC members will not cause any harm to my
computer. But this was mistake. Someone simply started fork bomb and my
computer got completely frozen. So I forcibly rebooted it and lost all state
(this was time when I didn't use "ffmpeg -f x11grab" yet).

> Not currently, but it's something I do want to add.
Thanks a lot. If you address my use case, this would be great

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to