flameshot-org / flameshot

Powerful yet simple to use screenshot software :desktop_computer: :camera_flash:
https://flameshot.org
GNU General Public License v3.0
24.72k stars 1.58k forks source link

"Screenshot saved to /tmp" #2032

Open noobishply opened 2 years ago

noobishply commented 2 years ago

Flameshot version v0.10.1 (via command flameshot -v)

Describe the bug When taking a screenshot, a notification saying "Screenshot saved to /tmp" shows up. image

To Reproduce Take a screenshot with Flameshot with flameshot gui, then close the gui and you'll see a notification which says the screenshot was saved to /tmp

Expected behavior Gui opens up without any notification

System Information System: Host: Arch-Laptop Kernel: 5.14.14-arch1-1 x86_64 bits: 64 Desktop: KDE Plasma 5.23.2 Distro: Arch Linux Graphics: Device-1: Intel Haswell-ULT Integrated Graphics driver: i915 v: kernel Device-2: Microdia Integrated Webcam type: USB driver: uvcvideo Display: wayland server: X.Org 1.21.1.2 driver: loaded: modesetting unloaded: fbdev,vesa resolution: 1366x768~60Hz OpenGL: renderer: Mesa DRI Intel HD Graphics 4400 (HSW GT2) v: 4.5 Mesa 21.2.4

veracioux commented 2 years ago

@noobishply

noobishply commented 2 years ago

The escape key. I also realise that the notification comes up as soon as flameshot gui opens, so it's not when it exits. Configuration:

[General]
checkForUpdates=false
contrastOpacity=188
contrastUiColor=#003c5c
copyAndCloseAfterUpload=true
disabledTrayIcon=false
drawColor=#ff0000
drawFontSize=8
drawThickness=3
savePath=/home/noobishply/Pictures
savePathFixed=false
setSaveAsFileExtension=
showDesktopNotification=false
showHelp=false
showStartupLaunchMessage=false
startupLaunch=true
uiColor=#007dc1

[Shortcuts]
TYPE_ARROW=A
TYPE_CIRCLE=C
TYPE_CIRCLECOUNT=
TYPE_COMMIT_CURRENT_TOOL=Ctrl+Return
TYPE_COPY=Ctrl+C
TYPE_DELETE_CURRENT_TOOL=Del
TYPE_DRAWER=D
TYPE_EXIT=Ctrl+Q
TYPE_MARKER=M
TYPE_MOVESELECTION=Ctrl+M
TYPE_MOVE_DOWN=Down
TYPE_MOVE_LEFT=Left
TYPE_MOVE_RIGHT=Right
TYPE_MOVE_UP=Up
TYPE_OPEN_APP=Ctrl+O
TYPE_PENCIL=P
TYPE_PIN=
TYPE_PIXELATE=B
TYPE_RECTANGLE=R
TYPE_REDO=Ctrl+Shift+Z
TYPE_RESIZE_DOWN=Shift+Down
TYPE_RESIZE_LEFT=Shift+Left
TYPE_RESIZE_RIGHT=Shift+Right
TYPE_RESIZE_UP=Shift+Up
TYPE_SAVE=Ctrl+S
TYPE_SELECTION=S
TYPE_SELECTIONINDICATOR=
TYPE_SELECT_ALL=Ctrl+A
TYPE_TEXT=T
TYPE_TOGGLE_PANEL=Space
TYPE_UNDO=Ctrl+Z
veracioux commented 2 years ago

@noobishply Wait a second. The notification is not sent by flameshot :smile: :smile:. Based on the logo I'm guessing it's shutter? Please kill shutter and see if the problem goes away.

Are you calling flameshot gui using a keyboard shortcut defined in your DE? Maybe you have both flameshot and shutter bound to the same key.

noobishply commented 2 years ago

Well, the only other screenshot tool I have is Spectacle... I have Meta + X as a shortcut for Spectacle, and Meta + Z as a shortcut for Flameshot. I'm not sure how Spectacle opens on Meta + Z, though...

I've removed the Meta + X shortcut for Spectacle, but the issue still persists. Maybe it's a Wayland issue? This didn't happen in X11.

veracioux commented 2 years ago

Then I'm not sure what is going on. Could be caused by some KDE-specific handling that is done by flameshot.

Maybe @mmahmoudian, @borgmanJeremy will know what's going on.

mmahmoudian commented 2 years ago

How about running flameshot gui from terminal and without any shortcut keys?

The logo is not Spectacle, the file format is also not Spectacle's.

noobishply commented 2 years ago

Same result, the notification is still there. Also, I may add that I'm using the Papirus icon pack, which makes Spectacle's logo look like that.

borgmanJeremy commented 2 years ago

I have done very very little testing on Kwin+ Wayland.

noobishply commented 2 years ago

Okay, so I removed spectacle with sudo pacman -Rns spectacle and the issue still persists. I will add again that this does not happen in X11, the issue seems to only effect wayland. I've also checked /tmp, and I don't actually see the screenshot in there, despite the notification telling me that it was saved there.

Deleting Flameshot and re-installing does nothing to fix the problem.

borgmanJeremy commented 2 years ago

Thanks, I've been doing some work on wayland and can confirm this. Will post an update once i fix it.

borgmanJeremy commented 2 years ago

Okay this cannot be fixed (easily).

We are currently using the "old" DBus API api which will eventually be deprecated out of KDE. The old API works by saving a temp file to /tmp before passing to flameshot. The notification is not coming from Flameshot, but the underlying KWin DBus call (this is why the shutter icon is shown).

The long term fix is to move to the new API, but this will break new versions of Flameshot on older versions of Kwin. It also requires some refactoring as you pass the new API a named pipe to place the image in.

Since the only advantage to making the change now is preventing a notification, I am inclined to wait to make this change. I am not sure the best time to make it. When Ubuntu 22.04 is released we will drop support for 18.04, but the version of KWin in 20.04 is also too old unless the ubuntu team backports the API.

Reference for future work: https://invent.kde.org/plasma/kwin/-/blob/0683597099cddc1f54966f1546ae8fada3aa7dd6/src/effects/screenshot/org.kde.KWin.ScreenShot2.xml

mmahmoudian commented 2 years ago

@borgmanJeremy direct #2003 help this situation?

borgmanJeremy commented 2 years ago

@mmahmoudian no DBUS will still be used to get the screenshots on a Wayland session.

Although I thought about this more and I think its okay to change whenever. It's not like KDE Wayland in 20.04 is very functional, so I don't see a reason to hold back for it.