Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ANNOUNCEMENT: Deprecating the Peek project #1191

Open
phw opened this issue Jan 14, 2023 · 60 comments
Open

ANNOUNCEMENT: Deprecating the Peek project #1191

phw opened this issue Jan 14, 2023 · 60 comments

Comments

@phw
Copy link
Owner

phw commented Jan 14, 2023

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 phw pinned this issue Jan 14, 2023
@esauvisky
Copy link

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.

@mcmxcdev
Copy link

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!

@SuperMewio
Copy link

SuperMewio commented Jan 16, 2023

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!

@phw
Copy link
Owner Author

phw commented Jan 17, 2023

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.

@esauvisky
Copy link

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.

@RadoRado
Copy link

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

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

@hartwork
Copy link

hartwork commented Feb 2, 2023

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 .

@marcel0ll
Copy link

@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.

@dandv
Copy link

dandv commented Feb 9, 2023

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

@firatkiral
Copy link

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.

@MostHated
Copy link

MostHated commented Feb 11, 2023

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

@hartwork
Copy link

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!

@firatkiral
Copy link

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

@Robert-Riedl
Copy link

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

@dandv
Copy link

dandv commented Feb 14, 2023

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

@Robert-Riedl
Copy link

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

@bodqhrohro
Copy link

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

@hartwork
Copy link

hartwork commented Feb 17, 2023

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:

@nafanz
Copy link

nafanz commented Mar 1, 2023

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.

@gort818
Copy link
Contributor

gort818 commented Mar 3, 2023

@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!

@nicorikken
Copy link

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.

@rzr
Copy link

rzr commented Mar 4, 2023

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

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

@thegrasshopper104
Copy link

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

@amytimed
Copy link

amytimed commented Mar 7, 2023

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.

@rzr
Copy link

rzr commented Mar 7, 2023

what about using rdp backend ? does it makes sense ?

@taozuhong
Copy link

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

@Trones21
Copy link

Trones21 commented May 29, 2023

This thread is the only reason I realized that GNOME could do video as well as screenshots! lol 🤦 ...such a small switch

@dandv
Copy link

dandv commented Jun 2, 2023

what are the alternatives that just work

@vkohaupt's vokoscreenNG

thiagokokada added a commit to thiagokokada/nix-configs that referenced this issue Jun 10, 2023
@jpenalbae
Copy link

jpenalbae commented Jun 13, 2023

Here is an quick and dirt alternative for linux on X11. It uses two bash commands: ffmpeg and slop.

I asked copilot chat to generate a bash script for the following use case:

  • Select a desktop area with the mouse
  • Record using mp4 format
  • No need for gui
  • Record sound

Here you can find the result: https://gist.github.com/jpenalbae/e81d8180284539ad6a63c3f2aaf2636e

It is something like the import command to take screenshots, but to record videos instead.

@patillacode
Copy link

patillacode commented Jun 13, 2023

I took the liberty of refactoring your gist a bit @jpenalbae and adding support for macOS using screencapture

My solution is basically yours with slop + ffmpeg for linux and screencapture on macOS

Also, if it helps anyone, i saw this in the slop readme as an example:

#!/bin/bash
slop=$(slop -f "%x %y %w %h %g %i") || exit 1
read -r X Y W H G ID <<< $slop
ffmpeg -f x11grab -s "$W"x"$H" -i :0.0+$X,$Y -f alsa -i pulse ~/myfile.webm

@melroyvandenberg
Copy link

Sad day for me.

@metodiew
Copy link

I just want to say thank you for the project! I have used it for recording quick small videos to showcase a feature and/or a problem and it was working great. Thank you for the hard work and respect for the decision!

@TurkerTunali
Copy link

TurkerTunali commented Nov 2, 2023

Thank you for all your hard work. I use it daily with my lovely 2011 computer which runs Zorin OS.

My new M2 Mac has a screen recorder tool but its file size is huge. I can't share it.

@seefood
Copy link

seefood commented Dec 14, 2023

I opened a report and only then saw this "announcement". so since there is no way to pin this issue to the top, and this being the wrong place for the announcement anyway, can @phw please edit the README.md so the github page reflects the current status of the project, and then archive it so people get a clear indication this is EOL?
Thanks in advance.

@teodorlu
Copy link

I wanted to add a thank you for Peek. I loved the interface, it let me quickly explain things with a gif/small video that I would otherwise struggle to formulate in words.

@Solarunit
Copy link

Solarunit commented Feb 3, 2024

Just found out that Peek is dead. What a sad day, it was my favorite gif tool. Now I need a new alternative.

@seefood
Copy link

seefood commented Feb 3, 2024

Seriously, WTF? I went through at least 5 or 6 screen cap programs, each is dying or deprecated for a different reason. Fact is video confferencing tools like teams and Zoom allow screen sharing, and gamers share high quality game streams, so there IS an API to do it even with Wayland, I just need an easy little FOSS tool (smaller and easier than OBS studio please) to capture 30 seconds of screen snippets to send a quick howto to a boomer relative or a demonstration of a bug to a support ticket. How is it that this is an impossible app in 2024?

@melroyvandenberg
Copy link

quick howto to a boomer relative

Understandable. Same here.

@TurkerTunali
Copy link

Seriously, WTF? I went through at least 5 or 6 screen cap programs, each is dying or deprecated for a different reason. Fact is video confferencing tools like teams and Zoom allow screen sharing, and gamers share high quality game streams, so there IS an API to do it even with Wayland, I just need an easy little FOSS tool (smaller and easier than OBS studio please) to capture 30 seconds of screen snippets to send a quick howto to a boomer relative or a demonstration of a bug to a support ticket. How is it that this is an impossible app in 2024?

I've migrated to this https://github.com/firatkiral/pypeek/

@jkmunson
Copy link

jkmunson commented Feb 12, 2024

I just read this announcement, I guess I was late to the party.

I absolutely love peek, and have been using it daily for over three years! I often need to explain to others how a task can be performed, or need to show how a model functions, etc. Peek has been an incredible tool for this, and is responsible for thousands of short .gifs sent to team members over the years.

I was aware of the wayland issues: I actually have never migrated to wayland because of peek. It's such a useful tool that I'm not willing to give it up. I found this because I was checking in, hoping that there was a solution.

I guess wayland has destroyed yet another project because their devs cant imagine why you would ever want to know where a window is or capture a screen.

Thank you so much for your work on this project - I'll be running it on x11 for as long as physically possible. Best wishes in your future ventures.

@ror6ax
Copy link

ror6ax commented Feb 27, 2024

Thanks for giving us such an amazing bit of software. I hope for Wayland port in near future.

@johnwoltman
Copy link

Thanks for the write-up. I only just discovered Peek and have been using it for a project, so I will be sorry that it's gone. Thank you for the time you've spent on Peek :) and good luck!

@ardianta
Copy link

ardianta commented Sep 3, 2024

Thanks for your work. I have been using Peek to create screen capture for my blog post.

@t-lock
Copy link

t-lock commented Sep 4, 2024

Seriously, WTF? I went through at least 5 or 6 screen cap programs, each is dying or deprecated for a different reason. Fact is video confferencing tools like teams and Zoom allow screen sharing, and gamers share high quality game streams, so there IS an API to do it even with Wayland, I just need an easy little FOSS tool (smaller and easier than OBS studio please) to capture 30 seconds of screen snippets to send a quick howto to a boomer relative or a demonstration of a bug to a support ticket. How is it that this is an impossible app in 2024?

I've migrated to this https://github.com/firatkiral/pypeek/

^^^
Also doesn't have Wayland support

@ossdhaval
Copy link

This was a great tool and thanks for creating and maintaining for all this time.

Frankly, there is no real alternative to peek for Linux users. 😞

Kooha is creating humongous sized GIFs as compared to what Peek used to create.

@gitressa
Copy link

I learned via #430 that GNOME (for example Debian/Ubuntu) offers a replacement, though it does not offer GIF support ...

@c00
Copy link

c00 commented Oct 16, 2024

Peek is one of those application that is just peak (ha) user experience. Super intuitive, one button, does what it says on the tin, nothing more nothing less. Just a pure joy to use.

I'm sad to see it deprecated, but I thank you for your efforts!

@vergelli
Copy link

thank you for all.

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

No branches or pull requests