Wayland screenshot

gtk_drag_dest_add_image_targets は思っていたのと違った。
選択範囲の移動とかみたいなものかと思ったけどそれ cairo の仕事や。
結局使い道はワカランまんま、他を追記したのでそれでよしということで。

問題はそれより下の項目に多過ぎだった。
動画プレイヤーを作るは Wayland では動かないし。
仮想端末エミュレーターはバインドが以前のままで新しい API が使えないし。
スクリーン情報を得るに書いた関数は全部 deprecated だし。
スクリーンショットを保存も Wayland で動かない。
もういや!

スクリーンショットは gnome-screenshot のソースを見ればいいか。

gnome-screenshot で検索、っておいサルブンツども。
「使い方」とかの誰でも解るしょーもないページを大量生産するなよ。。。。。
Google も公式サイトを一番上にしてほしい、サルブンツのはページランクゼロでいいよ。
gnome-screenshot github で検索やりなおし。

gnome-screenshot/screenshot-utils.c at master ? GNOME/gnome-screenshot ? GitHub

Gnome-Shell の機能を DBus で呼び出しているっぽい。
DBus ならメインループがいるな。
Window を作らなければ GApplication は勝手に終了する手法は使えるかな?

#!/usr/bin/env python3

from gi.repository import GLib, Gio

FILENAME = f'{GLib.get_home_dir()}/screenshot_2.png'

class App(Gio.Application):
    '''
        use mainloop
        Since there is no window, it ends as it is.
    '''
    def __init__(self):
        Gio.Application.__init__(self)

    def do_startup(self):
        Gio.Application.do_startup(self)
        #
        connection = self.get_dbus_connection()
        connection.call_sync(
            'org.gnome.Shell.Screenshot',
            '/org/gnome/Shell/Screenshot',
            'org.gnome.Shell.Screenshot',
            'Screenshot',
            GLib.Variant('(bbs)', (False, True, FILENAME)),
            None, 0, -1)

    def do_activate(self):
        pass

app = App()
app.run()

できた!
って、でもコレじゃ gnome-screenshot を使えでいいじゃん。
Gnome-Shell 以外で動くのかもよく解らないし。
そもそもコレ Gdk じゃないし、うーん色々困ったことに。