マルチタッチを実装してみたくなった。
具体的には Comipoli にてフリックで次ページ移動をさせたい。
スマートフォンに慣れてしまうとどうしてもね。
本当は指一本フリックにしたいけど指定する手段が無いようだ。
当然か、マウスカーソルがある OS ではそれマウスカーソルの移動だ。
指一本で操作するには OS をマウスカーソル無しにするしか手段が無い。
上記一つだけでもデスクトップとタブレットで共通 OS は不可能と解る。
iOS と Mac OS みたいにイメージだけ共通にするべき。
結局 GNOME は Mac OS のようにしたいってことなんだろう。
でも GNOME のマルチタッチは本当に動くのかな?
そうだ、筆者は MacBook Air を持っているじゃないか。
MacBook Air に DVD ドライブを付けて Fedora LiveDVD で試す。
更に外付け HDD を繋いで Gedit にてテキストファイルを開く。
うん、二本指で上下スクロールは可能だ、慣性スクロールにも対応している。
次に EoG で画像を表示。
回転も拡大もできない、フリックで次ファイルのつもりがスクロールに。
駄目だこりゃ、多分 GNOME は Windows 10 のマルチタッチ仕様なんだろう。
他にも Mac で Fedora はキーボードのバックライトが点灯しないとか。
Fedora 24 でも WiFi には繋がらなかった。
多分下記と同じようにすればイケると思うけど。
MacBookへLinux(Fedora)をインストール – Qiita
ところで command キーがそのまま Super キーとして使えるのね。
control が Ctrl のままだ、Function キーは fn キーを押す必要あり。
fn+delete で Delete キーなんかは Mac OS と同じ。
うん、キーボードに関しては何も問題ない。
マルチタッチさえ気にしないならなんとか使えそうだが、うーん。
MacBook Air はやはり Mac のまま使うのが正解だろうな。
そもそも現状で何も困っていない。
脱線した、フリックで次ページ移動の話ね。
実はマウスで次ページに移動する手段を作ろうと考えた。
EoG のように画像に被さるボタンは嫌い、ならばフリックだ!
という理由でこんなことになった。
ClutterSwipeAction を使えば簡単にフリック動作を得られるようだ。
swipe シグナルの direction 引数は
CLUTTER_SWIPE_DIRECTION_UP | CLUTTER_SWIPE_DIRECTION_RIGHT
のように or 演算で届くので and 演算を使って確認する。
class ComipoliWindow(Gtk.ApplicationWindow): def __init__(self, app): # # etc... # # Gesture swipe = Clutter.SwipeAction() swipe.connect("swipe", self.on_swipe) self.stage.add_action(swipe) self.stage.set_reactive(True) # # etc... def on_swipe(self, action, actor, direction): if direction & Clutter.SwipeDirection.RIGHT: self.change_pixbuf(2) elif direction & Clutter.SwipeDirection.LEFT: self.change_pixbuf(-2) return True
なんだ、これだけでマウス左ボタンでのフリック動作が可能だ。
Mac のタッチパッドフリックじゃやっぱり動かないな。
EoG は同じようにマウスでは動かないので別の実装が必要なのかな?
マルチタッチ対応マシンを買わないと解らない、いつか気が向いたら。