0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linuxデスクトップでワークスペースごとにアプリを割り当てて利用する(Macでの操作性に近づける)

0
Last updated at Posted at 2026-01-12

対象

Linux Mintでデスクトップ環境はCinnamonです。
例えばUbuntu, Gnome環境でも同じように設定は出来るかと思います。

※2026/1/19追記:この記事で利用しているdevilspie2はx11環境でしか動かせないようです。Waylandだと無理でした。

やりたいこと概要

私は普段Macbookを利用していて、仮想デスクトップを10個作ってそれぞれにアプリを割り当てて使っています。

CleanShot 2026-01-12 at 15.01.34@2x.png

上記のような感じで

  • デスクトップ1:ブラウザ
  • デスクトップ5:XCode
  • デスクトップ6:ターミナル

というような割当をしています。
また、仮想デスクトップの切り替えにCtrl + 数字キーのショートカットを設定しています。
Ctrl + 1〜Ctrl + 0がそれぞれデスクトップ1〜デスクトップ10に割当たっています。
ターミナルを操作したい時はCtrl + 6。ブラウザを見たいときはCtrl + 1。という感じでアプリと数字が頭の中で結びついていて切り替えが素早く出来てとても気に入っています。

ちなみにMacではキーボードショートカットの設定のMission Controlのところでこの設定が出来ます。
CleanShot 2026-01-12 at 15.11.34@2x.png

アプリの仮想デスクトップへの割当は、アプリを割り当てたいデスクトップへ手動で移動しておいてDockで右クリックしてオプションの割当先を設定します。
CleanShot 2026-01-12 at 15.14.47@2x.png
私の場合メインモニタ(ディスプレイ1)の仮想デスクトップ6にターミナルを移動してから、上記の設定をします。
一度設定すると次からはアプリを起動したら、自動で割当先のデスクトップで起動してくれます。

というのをLinuxマシンを使っているときも同じようにしたいので設定してきます。

ワークスペースを10個にする

システム設定のワークスペースを開いてエキスポを表示をonにします。
image.png

Ctrl + Alt + Upキーでエキスポ画面というのが出ます。ワークスペース一覧画面です。
ここでワークスペースを10個にします。右端の+ボタンで増やせます。
image.png

キーボードショートカットでワークスペースの移動設定

これもシステム設定のキーボードショートカットで可能です。
image.png
ワークスペース1〜10に設定していきます。

アプリをワークスペースに割り当てる

このやり方が長らくわからなくて諦めていたんですが、devilspie2を使うと出来るようになります。
aptでインストールできます。

sudo apt install devilspie2

設定ファイルを書きます。ホームディレクトリの.config下に置きます。
例えばブラウザ(Chrome)をワークスペース1、ターミナルをワークスペース6に置くには以下のようにします。

/home/user/.config/devilspie2/config.lua
if (get_window_class() == "Google-chrome") then
    set_window_workspace(1);
    change_workspace(1);
    focus_window();
end

if (get_window_class() == "Gnome-terminal") then
    set_window_workspace(6);
    maximize();
    change_workspace(6);
    focus_window();
end

この設定でアプリを指定のワークスペースへ移動させて(set_window_workspace)、そのワークスペースに表示を切り替える(change_workspace)ことが出来るので上述したMacの設定とほぼ同じ挙動にできます。
またターミナルは最大化したいのでmaximizeも呼んでいます。

get_window_classで取れる名前のとり方ですが
ターミナルで以下のコマンドを実行すると、マウスカーソルが+の形になります。この状態で調べたいアプリのWindowをクリックすると名前が出てきます。
Chromeだと以下のような表示になります。

% xprop | grep WM_CLASS
WM_CLASS(STRING) = "google-chrome", "Google-chrome"

この2つ目に出ている名前をさきほどのconfig.luaに書けばOKです。
上記の例では "Google-chrome"の方です。

devilspie2を自動起動させる

設定を書いたらdevilspie2コマンドを起動させればいいので、ログイン時に自動起動するようにします。

システム設定の自動起動するアプリを以下のように登録します。
image.png
開始遅延時間5秒が重要です。あまり早く起動するとGUI関連の読み込みなどが間に合わず起動に失敗する時があります。今のところ5秒で私の環境では問題起きていません。

(最初はserviceとして起動するように設定したのですが、起動のタイミングが早すぎると失敗するのでログイン時の自動起動で動かすことにしました)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?