【Ubuntu Desktop】Albert と CopyQ でクリップボード履歴を管理する

結論

Ubuntu でも Mac の Alfred のようなクリップボード履歴機能を使いたいなら、Albert と CopyQ を組み合わせると良い。

やったこと

Alfred Powerpack に入っている Clipboard History がとても便利で、これ無しでは生きられない体になってしまったので Ubuntu でもなるべく近いクリップボード環境を目指す。

www.alfredapp.com

Albert

まずは Linux 用ランチャーの Albert をインストール。

albertlauncher.github.io

Ubuntu 20.04 向けのコマンドが載っているのでそれを使う。

ansible playbook だとこんな感じ。

- name: Add Albert GPG key
  apt_key:
    url: https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_20.04/Release.key
  become: yes

- name: Add apt repository
  apt_repository:
    repo: "deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04/ /"
    filename: home:manuelschneid3r
  become: yes

- name: Install Albert
  apt:
    name:
      - albert
    state: present
  become: yes

インストールしたらツールバー的なところにアイコンが出てくるはずなので、設定画面を開いてホットキーとか見た目とかいろいろ調整する。

f:id:yukin_01:20200627030533p:plain

また Albert は python拡張機能を作れるらしく、公式で諸々込みのリポジトリを公開してくれているのでついでに入れる。

(ちなみに後述する CopyQ 用の拡張機能もすでに用意されていてとても便利)

github.com

特定のパスに配置するだけで良いらしい。

- name: Install Albert python extentions repository
  git:
    repo: https://github.com/albertlauncher/python.git
    dest: "{{ ansible_env.HOME }}/.local/share/albert/org.albert.extension.python/modules"

CopyQ

次に Linux 向けクリップボードマネージャーの CopyQ をインストールする。

hluk.github.io

他にもいろんな種類のツールがあるが、Albert 拡張機能が対応していたのとインストールの楽さで CopyQ を採用した。

universe リポジトリに入っているので

$ sudo apt-get install copyq

でインストールできる。

(最新版を使いたい人のために PPA も用意してくれている)

CLI で操作したりショートカットで履歴画面を呼び出したりできるらしいが基本的に Albert 経由でしか使わないので別に覚えなくて良い。

念のため設定画面で自動起動になっていることを確認する。

f:id:yukin_01:20200627025137p:plain

Albert Extensions

Albert から CopyQ を呼び出せるように拡張機能を設定する。

f:id:yukin_01:20200627031251p:plain

CopyQ にチェックをつけるだけで cq で履歴が表示されるようになる。

f:id:yukin_01:20200627032829p:plain

余談だが、Albert はデフォルトだとアプリの起動のみで画面切り替えには対応していない。

依存パッケージの wmctrl を入れての上の Extentions で Window Switcher を有効にすると画面の切り替えもできるようになる。

$ sudo apt-get install wmctrl

正直 Alfred 自体そこまで使いこなせていないので他の機能をどの程度 Albert で再現できるかはわからないが、クリップボード履歴機能に関してはかなり近い形で再現できたのかなと思う。

Ansible Playbook

最終的な ansible playbook はこのような形になった。

- name: Add Albert GPG key
  apt_key:
    url: https://download.opensuse.org/repositories/home:manuelschneid3r/xUbuntu_20.04/Release.key
  become: yes

- name: Add apt repository
  apt_repository:
    repo: "deb http://download.opensuse.org/repositories/home:/manuelschneid3r/xUbuntu_20.04/ /"
    filename: home:manuelschneid3r
  become: yes

- name: Install Albert and CopyQ
  apt:
    name:
      - albert
      - copyq
      - wmctrl # for window_switcher.py
    state: present
  become: yes

- name: Install Albert python extentions repository
  git:
    repo: https://github.com/albertlauncher/python.git
    dest: "{{ ansible_env.HOME }}/.local/share/albert/org.albert.extension.python/modules"