LinuxでWacom Proグラフィックタブレットを接続するか、bashがアーティストを支援する方法



Intuos Proの幸運な所有者であり、誇りに思うLinuxユーザーであれば、私と同じ失敗に苦しんでいる可能性があります。 問題は、この記事の執筆時点では、最新のWacomグラフィックタブレットモデルに対する通常のサポートがなかったことです。 ただし、Linux Wacomプロジェクトといくつかのbashスクリプトのおかげで、この問題は解決できます。



全体の話は、私が家のプロジェクトのためにたくさん描く必要があったという事実から始まりました、そして、古いGeniusタブレットはこれにまったく適していませんでした。 Wacom Intuos Pro Midlleに買収されました 。 Win7を搭載したコンピューターでは、インストールと構成が非常に簡単です。 プロファイルを設定して、使用するアプリケーションに応じてデバイスのキーにさまざまな機能を割り当てる機能に特に満足しました。 喜びは際限がありませんでした。



途中で、収益を生まないプロジェクトのためにPhotoshopを購入することはまったく面白くないことに気付きました。 しかし、開発者の仕事と私の自由は感謝し、したがって海賊版を使用しません。 視線はフリーソフトウェアに向けられました。



Gimpが好きではなく、サイトやフォーラムを登るとき、私はKritaプログラムに落ち着きました。Kritaプログラムは、ブラシの設定が豊富な非常に便利なラスターエディターです。 すぐにホリバーを避けるために、KritaはPhotoshopの代替品ではありませんが、描画の点でより高度な場合があります。



不運とは何ですか



この時点で、Ubuntuを搭載したコンピューターに完全に移行する必要がありました。 私はいつも設定でワコムのセクションを見たことを思い出して、私はタブレットワイヤーを大胆に接続しました。 そして何も...その後、私はワイヤレスアダプタを接続しました。 結果なし。 検索とあらゆる種類のアドバイス-すべて同じです。 かつて、私は天才の設定を思い起こして、どこかで対立があると思いました。 MintとCinnamonを試してみたかったので、ダウンロードしてインストールしました。 再び何も。



Linux Wacom Tablet Projectは救助に来ました。その主な作者の1人はRed Hatの従業員Peter Hattererです。 私はすべて初めてスムーズに行ったとは言いませんが、 askubuntuでのこの一連のアクションは私を助けてくれました。

  1. ここからinput-wacomカーネルドライバーの最新バージョンをダウンロードします。

    http://sourceforge.net/projects/linuxwacom/files/latest/download
  2. 必要に応じて、依存関係をインストールします。

    sudo apt-get install build-essential libX11-dev libxi-dev x11proto-input-dev xserver-xorg-dev libxrandr-dev libncurses5-dev autoconf libtool





    sudo apt-get install linux-headers-generic





  3. 開梱

    tar xjvf input-wacom-0.20.0.tar.bz2





  4. 中に入る

    cd input-wacom-0.20.0







    ./configure --prefix=/usr





  5. カーネルの下のフォルダーからドライバー自体を置きます(3.7があります)

    sudo cp ./3.7/wacom.ko /lib/modules/`uname -r`/kernel/drivers/input/tablet/wacom.ko







    sudo depmod -a





タブレットが接続されているかどうかによって、再起動が必要になる場合があります。



幸せの分



繰り返しますが、2つのボタンしか機能せず、スタイラスで描画するときにタッチがオフにならないことに気付くまでは嬉しかったです。 KDEとGnomeの下にはGUIがあり、Cinnamonの下ではコンソールユーティリティxsetwacomを使用しなければなりませんでした。



プロジェクトサイトにはxsetwacomを使用したスクリプトの例がありますが、Intuos Proのバージョン用に設計されていません。 ボタンの数を実験的に決定する必要がありました(それらは多少ランダムに散在しています)。 さらに、デバイスのリストでは、タブレットは、ワイヤーなしでワイヤーに接続されている場合に異なる方法で定義されます。



かなり高度なセットアップ



私はプログラマーではありませんが、スクリプト言語を理解できることを望みました。 xsetwacomとgrepからの出力を使用して、デバイスは常に変数に代入され、 notify-sendは使用されているプロファイルを表示します。

Kritaのスクリプト例
 # ,   ,       DEVICE_STYLUS=`xsetwacom list dev | grep -E -o ".*stylus"` DEVICE_ERASER=`xsetwacom list dev | grep -E -o ".*eraser"` DEVICE_CURSOR=`xsetwacom list dev | grep -E -o ".*cursor"` DEVICE_PAD=`xsetwacom list dev | grep -E -o ".*pad"` DEVICE_TOUCH=`xsetwacom list dev | grep -E -o ".*touch"` #    . notify-send "Using Krita profile" #    #     2    1: MapToOutput 3286x1080+0+0 xsetwacom set "$DEVICE_STYLUS" MapToOutput 1920x1080+0+0 ##    xsetwacom set "$DEVICE_STYLUS" RawSample "2" # -      xsetwacom set "$DEVICE_STYLUS" Threshold "27" #    xsetwacom set "$DEVICE_STYLUS" PressureCurve "5 10 90 95" #    xsetwacom set "$DEVICE_STYLUS" TabletPCButton "off" #       xsetwacom set "$DEVICE_STYLUS" Mode "Absolute" #        xsetwacom set "$DEVICE_STYLUS" Button 1 "1" #   xsetwacom set "$DEVICE_STYLUS" Button 2 "3" #   xsetwacom set "$DEVICE_STYLUS" Button 3 "2" #   ##  xsetwacom set "$DEVICE_ERASER" RawSample "2" xsetwacom set "$DEVICE_ERASER" Threshold "27" xsetwacom set "$DEVICE_ERASER" PressureCurve "0 10 90 100" xsetwacom set "$DEVICE_ERASER" Mode "Absolute" xsetwacom set "$DEVICE_ERASER" Button 1 "1" ##   xsetwacom set "$DEVICE_PAD" Button 2 "key shift" xsetwacom set "$DEVICE_PAD" Button 3 "key ctrl" xsetwacom set "$DEVICE_PAD" Button 8 "key ctrl Z" xsetwacom set "$DEVICE_PAD" Button 9 "key ctrl shift A" # ,     #xsetwacom set "$DEVICE_PAD" Button 4 "key D" #xsetwacom set "$DEVICE_PAD" Button 5 "key E" xsetwacom set "$DEVICE_PAD" AbsWheelDown "5" #    xsetwacom set "$DEVICE_PAD" Button 1 "key E" #    xsetwacom set "$DEVICE_PAD" AbsWheelUp "4" #    xsetwacom set "$DEVICE_PAD" Button 10 "key ctrl K" xsetwacom set "$DEVICE_PAD" Button 11 "key ctrl M" xsetwacom set "$DEVICE_PAD" Button 12 "key O" xsetwacom set "$DEVICE_PAD" Button 13 "key I" xsetwacom set "$DEVICE_PAD" ScrollDistance "10" xsetwacom set "$DEVICE_PAD" TapTime "50"
      
      







原則として、コメントは各パラメーターが何を担当しているかを明確にします。 プログラム内で物理キーとその番号がどのように関連付けられているかに注目してください。

コミュニケーション




次の失望は、さまざまなプログラムのプロファイルがなかったことです。 原則として、複数のスクリプトを作成し、それぞれをアクティブにするホットキーを構成できます。 ただし、アプリケーションを頻繁に切り替えると、これにより不便が生じ始めます。



救助へのバッシュ



以下の実装はまだそのバイクであることを理解していますが、実際にはシステムをロードせずにうまく機能します。

したがって、次のものが必要です。

  • awk-出力でウィンドウIDを検索します。 cutまたはgrepでうまくいくかもしれませんが、議論を読んだ後、awkに実装することにしました
  • xprop-フォーカスされている現在のウィンドウを取得するために使用
  • wmctrl -Firefoxなどの目的のキーワードを持つウィンドウIDのリストを取得します-ブラウザに切り替えたときにキーを再割り当てします。 また、複数のウィンドウが実行されている場合もあります。たとえば、Terminalという名前で、異なるIDがあり、プロファイルは1つである必要があります


プロファイルを切り替えるスクリプト
 #!/bin/bash awk_string1="/" awk_string2="/{print \$1}" window_in_focus_old="" while true do #ID ,    window_in_focus=`xprop -root |awk '/_NET_ACTIVE_WINDOW/ {print $5; exit;}'` #     ,     if [[ "$window_in_focus" -ne "$window_in_focus_old" ]] then window_in_focus_old=$window_in_focus #    list_of_progr=$(<$HOME/xsetwacom/programs) #     for name_of_progr in $list_of_progr do awk_string_result="$awk_string1$name_of_progr$awk_string2" #  ,        list_of_running_prog=`wmctrl -l | awk "${awk_string_result}"` #         - #    for running_progr in $list_of_running_prog do if [[ "$running_progr" -eq "$window_in_focus" ]] then $HOME/xsetwacom/$name_of_progr fi done done fi sleep 1 done
      
      







一般に、インストールアルゴリズムは次のとおりです。

  1. wacom-profile-switcherフォルダーをホームディレクトリにコピーします。
  2. プログラムファイルに、プロファイルが必要なアプリケーションの名前を追加します。 名前は、アプリケーションウィンドウの碑文に対応する必要があります。たとえば、gedit、LibreOffeceなどです。
  3. そのような名前ごとに、必要なグラフィックタブレットの設定を行うファイルを作成します。 ファイル名は、プログラムファイルのように記述する必要があります。
  4. 次に、必要に応じてスクリプトを実行するか、スタートアップにスローします。 ユーザーが1つのウィンドウから別のウィンドウに切り替えるまで、スクリプトは、ウィンドウIDがフォーカスで変更されたかどうかを1秒に1回だけチェックします。




この2輪スポーツシミュレーター全体は、Linux Mint PetraおよびWacom Pro Mでテストされました。理論的には、このバージョンの他のファミリーメンバーでも動作します。 それ以外の場合は、ボタンが一致しないため、スクリプトを編集する必要があります。



ツールチップが欲しいのですが、それだけです!



そして、WacomがLinuxに視線を向けて、通常のドライバーのリリースを開始することを今でも望んでいます。 ここでは、1つのシナリオで降りることはできません。



便宜上、すべてのスクリプトをgithubに配置しました



All Articles