Tag: Interface

MIDI controllerでLinux desktopのモニター入力と明るさを操作する

目的

KORG nanoKONTROL2 のような USB MIDI controller を、Linux desktop の物理操作盤として使いたいのでGolangで作った。

midi-switch

MIDI event を ALSA sequencer で読み、ddcutil でディスプレイの入力ソース、明るさ、コントラストを操作し、必要なら pactl で音量も操作する。

構成は単純にする。

USB MIDI controller
  -> ALSA sequencer event
  -> small daemon
  -> ddcutil / pactl
  -> display input / brightness / contrast / volume

できた感想

リモートワークで窓際で作業してるのですが時間帯や天気によってディスプレーの明るさやコントラストを変えたくなるのですが MIDIのスライドバーとかボリュームボタンで変えられて嬉しいです あとラズパイの検証時、ディスプレー入力をちょいちょい変えたくなるので便利になった(稀に起動初期の画面がみたい事がある)

方針

初期実装では MIDI library へ直接つながず、aseqdump の stdout を読む方式で十分に価値がある。

理由:

  • aconnect -laseqdump の結果をそのまま調査ログとして使える
  • MIDI button、knob、slider の note / controller 番号を目視で確定しやすい
  • ALSA sequencer port が見えていれば Go や shell からすぐ扱える
  • 仕様が固まってから gomidi / RtMidi などへ移行できる

ddcutil 側も、まずは ddcutil detectgetvcpsetvcp を外部 command として呼ぶ。 daemon 内で DDC/CI protocol を直接実装しないことで、モニター差分の切り分けを ddcutil に寄せられる。

Read more...

Wayland desktopでキーバインドをOS横断に寄せる設計メモ

Wayland desktopでキーバインドをOS横断に寄せる設計メモ

目的

macOS、Windows、Linux で、アプリ起動、ウィンドウ移動、タイル配置、仮想デスクトップ移動の操作感を近づけたい。 ただし Linux Wayland では、X11 時代のように外部プロセスから任意ウィンドウを横断操作する前提にしていない。

Wayland では compositor が入力とウィンドウ管理の権限境界になる。 このため、キーボードの低レイヤ変換とウィンドウ操作を分ける。

一旦考えた基本方針

  • CapsLock/Ctrl や layer 的なキー変換は keyd に寄せる
  • アプリ起動、ウィンドウ移動、最大化、タイル配置は compositor / window manager 側に寄せる
  • KDE Plasma Wayland では KWin global shortcut と .desktop entry を使う
  • labwc では ~/.config/labwc/rc.xml の native action を使う
  • package install、service enable、設定配置は Ansible などの構成管理に寄せる

keyd は「キーを別のキーとして見せる」層に留める。 アプリ起動やウィンドウ制御まで keyd でやろうとすると、Wayland の compositor 境界を迂回する設計になりやすい。

責務分離

領域Linuxでの担当理由
CapsLockをCtrlにするkeydsession / compositor 非依存にしたい
Hyper風の修飾キーkeyd または keyboard firmware入力層で完結させたい
アプリ起動.desktop entry / compositor shortcutdesktop environment の仕組みに乗せる
ウィンドウのhalf snapKWin / labwc native actionWayland では compositor が正規の管理者
物理ディスプレイ間移動KWin / labwc native actionmonitor layout を compositor が持つ
同一アプリ内のwindow cyclecompositor native action外部プロセスで window list を触らない

KDE Plasma Wayland

KDE Plasma Wayland では、KWin の global shortcut と .desktop entry を中心にする。

Read more...

macOS設定の個人的な事

環境

  • macOS Monterey

デスクトップ環境のメモ

コピペを繰り返す用のツール

Clipy - Clipboard extension app for macOS からダウンロードして起動。変更した設定

  • メニューに表示する文字数: 100文字

参考

「Clipy」でMacのクリップボードを拡張、チョイ効率化してみる - ケータイ Watch

初期セットアップ

仮想デスクトップ(スペース)を増やす

  • 5個まで増やす
  • キーボードショートカット設定
    • [システム環境設定]->[キーボード]->[キーボードショートカット]->[Mission Control]
      • ctrl + command + H を左スペース
      • ctrl + command + L を左スペース – ctrl + command + Y から ctrl + command + p までを各デスクトップに割り当て

ディスプレイごとに個別の操作スペースをオフにする

ログアウトが必要 [システム環境設定]->[デスクトップとDock]->[ディスプレイごとに個別のスペース]をオフにする

自動的にスペースを入れ替える機能をオフにする

なぜかスペースが勝手に入れ替わるのでオフにする [システム環境設定]->[デスクトップとDock]->[Mission Control]->[最新の使用状況に基づいて操作スペースを自動的に並べ替える]をオフにする。

macでSlackにコピペするとクォーテーションがおかしくなる

なんとmac側の設定でそういうのがある… Slackにコードを貼り付けたら引用符が勝手に変わってしまいます

シェルスクリプトをダブルクリックで

https://qiita.com/hkwid/items/c7453abac6aa6449e50b

cronつかう

cronコマンドにパーミッションが必要

https://admin-it.xyz/operation-efficiency/mac-cron-does-not-work-well/ 【システム環境設定】->【セキュリティとプライバシー】->【フルディスクアクセス】で、/usr/sbin/cronにフルディスクアクセスを付与

パスの指定 /usr/sbin/cron の指定がしづらいが、shift+ command + g でディレクトリが指定できる

Read more...