peek icon indicating copy to clipboard operation
peek copied to clipboard

ANNOUNCEMENT: Deprecating the Peek project

Open phw opened this issue 1 year ago • 53 comments

With this announcement I officially declare the Peek project deprecated. This is something I should have done for a while now, but I always told myself that I will eventually do a last release, fixing some issues. As you know this never happened.

The last release has been 2 years ago, and even then activity was not very high, while issue reported piled up. The reason for the deprecation are manifold, but I try to explain. Peek started out as a small project with two goals:

  1. To solve a personal itch for a small, simple screen recording tool that can record into animated GIF, because at the time of creation sharing proper videos often was not possible on many platforms. My main use was short videos of partial UI elements, and that is what I used Peek for.
  2. As an experiment if it would be doable to implement the single window user interface Peek provides using standard Gtk3 widgets.

I really did not expect the kind of interest Peek gained. I am very thankful to everyone who used this software and who gave me feedback.

But now I am convinced that Peek faces some issues that are not solvable. The first goal in itself has become mostly obsolete. GIF was never chosen because it is a great format for videos, indeed it is very much unsuited for the purpose. It was chosen because it provided web compatibility. And I think the web today has much better for support for video formats. I never had intended Peek to become a feature-complete screen recording tool. It had always been meant for those small, short screen captures. If it would be just about this, though, I would be happy to continue maintaining Peek as this small tool it is.

The big issue is the second goal and how Peek fails it. While I am happy the UI worked as it did, there are too many technical challenges with it that I think Peek's UI has no future. Many of these have to do with how Wayland changed the way applications are being handled. This is a list of some of the technical challenges Peek's UI faces:

  • Peek's UI relies on the exact Window position to determine the recording area. On Wayland this is no longer an option, the application does not now its position. To workaround this Peek on Wayland always runs as an X11 application with XWayland. This was ok for a while, but even XWayland will eventually go away.
  • The click-through of the main window has some issues. Especially when running on Wayland this is very erratic. For some users it does not work at all, for those it does it raises the wrong windows on clicks. I assume that has something to do with mixing Wayland and X11 windows because of XWayland, but I am not sure. Also the whole click through depends on the window manager supporting this feature, which is not always the case.
  • Peek's UI makes some uses cases not easily possible. E.g. recording GNOME's top bar or full-screen recording (both never original goals of the project) cannot really be achieved and would require a different UI.
  • Implementing recording while moving the window is not possible.
  • Gtk3 is deprecated. At this point it is unclear whether Gtk4 would even be an option. It specifically no longer provides the deprecated API for the screen position of the application window.

Can the above be resolved? I don't think so, not with the current approach of Peek's user interface. For a proper support of screen casting solving the above issues you need a different UI, with a different way of selecting the recording area.

But developing a completely different UI is not in my interest. The whole point of Peek was to provide the UI it has. This experiment initially showed some success and found many people liking it. Thanks a lot for this support. But it has not stood the test of time and as of today this experiment is no longer successful.

Creating a new user interface would be very much a new project. There is little to reuse in Peek. If I would do it I would start a completely new project. But as I stated above I have no interest in it. There are other screen recorder exploring this space. I personally like the way Kooha is handling it. And even the built-in GNOME screen recording has become a viable option

There are additional technical issues with Peek that would need to be addressed:

  • On Wayland there was for a long time no standardized screen recording support. Hence Peek uses a GNOME specific interface. There are better solutions for this now, both Wayland extensions that are e.g. supported by wlroots and a newer DBus interface. Peek does not support either.
  • The integration of ffmpeg using the command line provides many compatibility issues and is one of the major causes for a lot of the bug reports. I think properly interfacing with ffmpeg as a library would result in a more reliable application.

These issues would be solvable, but with the problems described above I see little point in doing it.

This means this is the official end of Peek as a project. In the next days I will close the majority of issues and look over the remaining pull requests. I originally wanted to do a final release. But I feel uncomfortable releasing a software that on many systems works unreliable or not at all. If there is sufficient interest maybe we could do a small release just here for those who are really interested.

Thanks everyone. If you have suggestions for Peek alternatives please add them below.

phw avatar Jan 14 '23 17:01 phw

Thank you for all the hard work you've put in over the years. I haven't come across anything as straightforward as Peek, but I do have a few suggestions.

For Gnome users, there's a built-in screenshot tool that's recently been updated. To be honest, the update wasn't well received, but it does have a screen recording feature. It could use some improvement in terms of design and functionality, but if you're interested, let me know and I might be able to help. Here's a demonstration of its current performance: https://user-images.githubusercontent.com/18354658/212623229-70a4618c-b14b-4ef7-ad69-d8eba43efce2.mp4

Another option is OBV. Recently, I've been using OBV for longer videos because Peek tends to crash. The catch is that it's not as easy to quickly select an area of the screen and start recording like it is with Peek. I don't have much experience with OBV, so I'm not sure if that's something that can be achieved through scripting or other means. However, if you're looking for full screen recordings, OBV is a solid choice.

I've used SimpledScreenRecording in the past, which is a middle ground between complexity and ease of use, but although never played tricks on me, I'd just go for OBS in this case.

esauvisky avatar Jan 16 '23 08:01 esauvisky

Thanks from my side as well, this was such a helpful project with great UX! Although there are multiple tools listed as replacement, I have tried all of them and they are inferior at least for my needs e.g. recording parts of the screen.

~10k GitHub stars is a lot so maybe this project will even be forked, let's hope so!

mcmxcdev avatar Jan 16 '23 17:01 mcmxcdev

https://gifcap.dev | https://github.com/joaomoreno/gifcap - Gifcap is also pretty good, it works on wayland as well if you enable pipewire in your browser. Downside is that it needs a browser to function. You record what you need then can crop/slice out what you don't. I have not tried it with Gnome. I use it under kde wayland as there are almost no alternatives with simplicity that function correctly. Kooha, as an example, records things in slow motion when on kde with wayland. I do wish gifcap was made into an electron app as a cross platform piece of software.

Thanks for all the hard work you did!

SuperMewio avatar Jan 16 '23 19:01 SuperMewio

Thanks to all of you for the kind words.

~10k GitHub stars is a lot so maybe this project will even be forked, let's hope so!

Yes, it really still amazes me how many enjoyed the project. It's great to see that so many liked the minimal UI concept I aimed for. I still like it myself. But in the end it's why I delayed this step so long, always telling myself that I'll fix the bugs and things will be good. But unfortunately I really don't see a sustainable way forward, especially none that I'm doing myself.

I'm happy to support anyone who wants to fork the project, though. But whoever wants to do it, do yourself a favor and come up with a clear goal what you want to achieve and think about whether the existing code and technology of Peek is really suitable for this. My opinion is still that whatever can be done should be a new project, re-thinking both the UI and the technological base.

phw avatar Jan 17 '23 07:01 phw

Thanks to all of you for the kind words.

~10k GitHub stars is a lot so maybe this project will even be forked, let's hope so!

Yes, it really still amazes me how many enjoyed the project. It's great to see that so many liked the minimal UI concept I aimed for. I still like it myself. But in the end it's why I delayed this step so long, always telling myself that I'll fix the bugs and things will be good. But unfortunately I really don't see a sustainable way forward, especially none that I'm doing myself.

I'm happy to support anyone who wants to fork the project, though. But whoever wants to do it, do yourself a favor and come up with a clear goal what you want to achieve and think about whether the existing code and technology of Peek is really suitable for this. My opinion is still that whatever can be done should be a new project, re-thinking both the UI and the technological base.

I'll get chased for this, but honestly, be it you or anyone else, be careful and monetize if you see your idea becomes popular. because if it does, it means it provides value, and therefore not only deserves, but requires value in return to be feasible. It's not (only) about merit, but specially to avoid sad resolutions like this exact one, so common in the open source community. Now go ahead and light up the torches, those you just paid for 😄

I'll look at the source code for the first time in a week or so, and see how daunting (or not) it looks. Forks will keep it alive. Keep up the good work, we can take care of this.

esauvisky avatar Jan 18 '23 07:01 esauvisky

Just wanted to express gratitude for the great piece of software that you've built :heart:

Peek is / was part of my toolbox for a very long time & it was dead-simple to use.

If you or someone else decides to fork peek & seeks financial support - I think there are enough of us happy users, to help with that.

Cheers

RadoRado avatar Jan 30 '23 08:01 RadoRado

On Wayland this is no longer an option, the application does not now its position. To workaround this Peek on Wayland always runs as an X11 application with XWayland. This was ok for a while, but even XWayland will eventually go away.

@phw do you have a link with more details on that topic? I'd be curious what Wayland's motivation is there and what other options there are. I can think of a hacks without XWayland but I would like to understand the Wayland situation better.

If you have suggestions for Peek alternatives please add them below.

https://github.com/MaartenBaert/ssr works great, and any non-gif result can be converted to gif with e.g. ffmpeg. That's how I created https://github.com/hartwork/sdl_video_demo/blob/master/recording.gif .

hartwork avatar Feb 02 '23 16:02 hartwork

@phw thank you for your work with peek. I am sad that this is the end but totally understand your stance. I've been using peek for quite some time exactly for the minimalist UI and ease to record short UI interaction examples.

marcel0ll avatar Feb 07 '23 14:02 marcel0ll

Maybe one day ChatGPT will become smart enough to be able to fix these bugs. :robot:

dandv avatar Feb 09 '23 00:02 dandv

Hi,

I started cross platform version as pypeek written in Python and QT with enhanced features.

https://github.com/firatkiral/pypeek

Its also available:

Apple Store

Microsoft Store

Cheers.

firatkiral avatar Feb 11 '23 19:02 firatkiral

Hi, I started cross platform version as pypeek written in Python and QT with enhanced features. firatkiral/pypeek

Sorry to post this here, you don't have an issues board active. I went to try pypeek out and my DE segfaulted as soon as I tried to click on one of the buttons. Had to hotkey over to a terminal session to reboot. Just wanted to let you know. Unfortunately, none of the logs seem particularly helpful, either. Just in case it is helpful, I have included system details.

Log Messages
Feb 11 16:56:26 pop-os kernel: [18477.599149] show_signal_msg: 2 callbacks suppressed
Feb 11 16:56:26 pop-os kernel: [18477.599151] gnome-shell[20955]: segfault at 20 ip 00007f01d5937639 sp 00007ffcbc991528 error 4 in libmutter-10.so.0.0.0[7f01d5849000+143000]
Feb 11 16:56:26 pop-os kernel: [18477.599158] Code: f0 48 83 c4 08 5b 5d c3 66 0f 1f 84 00 00 00 00 00 48 83 7b 20 00 75 b9 48 8b 5b 08 48 85 db 75 f0 48 83 c4 08 31 c0 5b 5d c3 <48> 8b 04 25 20 00 00 00 0f 0b b8 01 00 00 00 c3 b8 01 00 00 00 eb
Feb 11 16:56:35 pop-os xdg-desktop-por[21713]: Error reading events from display: Broken pipe
Feb 11 16:56:35 pop-os remmina[21263]: Error reading events from display: Broken pipe
Feb 11 16:56:35 pop-os leapd[1676]: [2023-02-11 16:56:35] [error] handle_read_frame error: websocketpp.transport:7 (End of File)
Feb 11 16:56:35 pop-os leapd[1676]: [2023-02-11 16:56:35] [disconnect] Disconnect close local:[1006,End of File] remote:[1006]
Feb 11 16:56:35 pop-os org.telegram.desktop.desktop[21438]: The Wayland connection broke. Did the Wayland compositor die?
Feb 11 16:56:35 pop-os solaar[21291]: Error reading events from display: Broken pipe
Feb 11 16:56:35 pop-os gnome-shell[21379]: (EE) failed to read Wayland events: Connection reset by peer
System Details
OS: Pop!_OS 22.04 LTS x86_64
Host: X670E Taichi
Kernel: 6.0.12-76060006-generic
Uptime: 8 mins
Packages: 4477 (dpkg), 43 (nix-default), 116 (flatpak), 17 (snap)
Shell: zsh 5.8.1
Resolution: 2560x1080
DE: GNOME 42.5
WM: Mutter
WM Theme: Pop-dark
Theme: Pop-dark [GTK2/3]
Icons: Flatery-Orange-Dark [GTK2/3]
Terminal: alacritty
CPU: AMD Ryzen 9 7950X (32) @ 5.881GHz
GPU: AMD ATI Radeon RX 6900 XT
GPU: AMD ATI 59:00.0 Device 164e
Memory: 7210MiB / 63415MiB

MostHated avatar Feb 11 '23 23:02 MostHated

Okay wow! While there is no bug tracker, there is an e-mail address linked at https://pypi.org/project/pypeek/ if anyone needs it. @firatkiral I would like to second the request for opening the issue tracker. Thank you!

hartwork avatar Feb 11 '23 23:02 hartwork

@MostHated, @hartwork issue board is there now. Thank you.

firatkiral avatar Feb 11 '23 23:02 firatkiral

thanks for all the hard work. I'm still on X11 because Wayland (still) sucks anyway...

Robert-Riedl avatar Feb 14 '23 11:02 Robert-Riedl

@Robert-Riedl Linux in general sucks. And the security isn't what it's cracked up to be.

dandv avatar Feb 14 '23 20:02 dandv

as someone who has been working with Linux as a daily driver for almost 20 years soon.. I strongly disagree @dandv ...

Robert-Riedl avatar Feb 15 '23 08:02 Robert-Riedl

I wouldn't even come up with an idea of a screencaster which directly produces GIFs, lol. I just made a script using ffmpeg/ImageMagick/gifsicle which converts videos to highly quantized (rather than dithered), and thus lightweight GIFs: https://gist.github.com/bodqhrohro/d71900f9d00f2acd5933abe8998bdfde

bodqhrohro avatar Feb 15 '23 23:02 bodqhrohro

If you have suggestions for Peek alternatives please add them below.

LIVEcap seems to play in the same realm, targets Windows and macOS (and Linux through Wine), latest release 2022-08:

  • https://www.cockos.com/licecap/
  • https://github.com/justinfrankel/licecap/tree/main/licecap

hartwork avatar Feb 17 '23 15:02 hartwork

I did not expect such a turn, for me it was the most convenient option to record small areas of the screen.

Nothing can be done about the time to look for alternatives or continue to use the outdated version while it is functional.

Thank you for your work.

nafanz avatar Mar 01 '23 07:03 nafanz

@phw Thanks for all your work on peek, it has been fun. It was a pleasure contributing! I learned a lot from you. Thank you!

gort818 avatar Mar 03 '23 17:03 gort818

Thanks for your work on Peek, I used it a couple of times for recording a small clip for which it was great! The announcement makes it clear why this is a dead end. I hope this frees up your time and mental space for new ventures.

nicorikken avatar Mar 04 '23 15:03 nicorikken

Would you be interested to transfer project to @abandonware org for best effort cooperative maintenance ?

https://purl.org/rzr/abandonware ?

rzr avatar Mar 04 '23 23:03 rzr

Thanks for working on it all this time. Peek is my favorite screen recorder, it's sad to see it go

thegrasshopper104 avatar Mar 06 '23 12:03 thegrasshopper104

So, Wayland has no way to get the exact window position? What if it runs under root? If I ever switch to Wayland, I'd definitely want to be able to keep having some screen recorder with a UI like Peek.

aMyTimed avatar Mar 07 '23 14:03 aMyTimed

what about using rdp backend ? does it makes sense ?

rzr avatar Mar 07 '23 17:03 rzr

Peek is a great Vala project on Github.com, Long live the Peek.

taozuhong avatar Mar 12 '23 07:03 taozuhong

It was great while it lasted!

ars9 avatar Mar 14 '23 09:03 ars9

I used every day to build my gifs explanations. Thank you.

IgorAvilaPereira avatar Mar 14 '23 18:03 IgorAvilaPereira

Alternatives for the future? A VM with an adequately older OS and Peek installed. That's how 😻 great it is.

SomeTroglodyte avatar Mar 16 '23 13:03 SomeTroglodyte

Peek served me well during a long time. I am sad, but personally thank you sir.

Jbbouille avatar Mar 17 '23 10:03 Jbbouille