Compiz 設定

提供: ArchWiki
2015年2月5日 (木) 20:14時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

関連記事

この記事では Compiz の高度な設定について説明します。Compiz はすでにインストールしていて、動作させるための基本的な設定は完了していることが前提です。インストール方法や基本的な設定、トラブルシューティングなどの情報は Compiz の記事を見て下さい。

ストレージオプションの設定

設定バックエンド

ノート: インストールしたパッケージによっては、使える Compiz バックエンドが限られることがあります。

デフォルトでは、Compiz は設定をプレーンなテキストファイル ~/.config/compiz-1/compizconfig/Default.ini に保存します。CCSM では、このファイルは 'Flat-file Configuration Backend' と呼ばれています。

Compiz では設定を GSettings や GConf データベースに保存することもできます。Compiz の設定の保存方法を変更するには、CCSM を開いて左カラムの 'Preferences' タブをクリックしてください。そして 'Backend' のリストから使いたいバックエンドを選択します。

~/.config/compiz-1/compizconfig/config ファイルを編集することで手動でバックエンドを変更することもできます。

次の行を編集します:

backend = ini
  • ini = Flat File Configuration Backend
  • gsettings = GSettings Configuration Backend
  • gconf = GConf Configuration Backend

ファイルを編集して保存すると、変更はすぐに適用されます。ログアウトする必要はありません。

プロファイル

プロファイルを使うことで Compiz の設定セットを簡単に切り替えることが可能です。新しいプロファイルを作成するには CCSM を開いて 'Preferences' タブをクリックしてください。'Profile' の下のプラス記号をクリックして新しいプロファイルを追加します。プロファイルを削除するときはマイナス記号です。CCSM での変更は全て現在使用しているプロファイルに書き込まれます。

プロファイルは使っているバックエンドによって左右されます。例えば、GSettings を使っている場合、新しく作成したプロファイルは GSettings プロファイルになります。バックエンドを他のものに切り替えた場合、現在のプロファイルは使えなくなり、自動的に、選択したバックエンドで使用できるプロファイルにスイッチします。

ノート: 'Default' という名前のプロファイルが複数存在する場合、おそらく複数のバックエンドを使用したのが原因です。例えば ini のデフォルトプロファイルと、GSettings や GConf のデフォルトプロファイルが出来るというわけです。

ウィンドウ装飾テーマ

Emerald

ノート: テーマによっては選択したとたんに Emerald をクラッシュさせてしまうことがあります。Compiz#テーマを選択すると Emerald がクラッシュする を見て下さい。

compiz-themes.org から様々な Emerald テーマをダウンロードすることができます。Emerald テーマは emerald-theme-manager プログラムを使うことでインストール・選択・削除することが可能です。テーマをダウンロードしたら、tarball を解凍して、テーママネージャの 'Import' オプションを使ってインストールしてください。

Emerald テーマの保存場所は2つあります:

  • /usr/share/emerald/themes -- システム
  • ~/.emerald/themes -- ユーザー

現在選択されている Emerald テーマは ~/.emerald/theme ディレクトリにコピーされます。

ウィンドウボタンのパルスなどの Emerald の設定は emerald-theme-manager で設定でき、~/.emerald/settings.ini ファイルに書き込まれます。

GTK Window Decorator

Metacity テーマは gnome-look.org からダウンロードできます。ダウンロードしたら、解凍して、ユーザーの ~/.themes ディレクトリに置いて下さい (ディレクトリが存在しない場合は作成してください)。また、お望みなら /usr/share/themes にテーマを配置することもできます。

  • Compiz 0.9 でテーマを選択する: GTK Window Decorator のバージョン 0.9 は GSettings からテーマの設定を読み込みます。GNOME#全体の外観 を見て下さい。
  • Compiz 0.8 でテーマを選択する: GTK Window Decorator のバージョン 0.8 は Metacity のテーマ設定が GConf に保存されていることを想定しています。実際には Metacity が GConf を使っていなかったとしても、次のコマンドを使うことでテーマを設定することができます:
$ gconftool-2 -s /apps/metacity/general/theme -t string theme-name

theme-name は使用したいテーマの名前に置き換えて下さい。

KDE Window Decorator

Kwin テーマは KDEsystemsettings パネルを使ってダウンロード・インストール・管理することができます。

ワークスペースとビューポート

ノート: かつては CCSM -> 'General Options' -> 'Desktop Size' に 'Number of Desktops' オプションがあり、ビューポートの代わりに標準のワークスペースを使うことができました。Compiz 0.9.11 (revision 3857) から 'Number of Desktops' オプションは削除されています。

他のウィンドウマネージャと違って、Compiz は複数のワークスペースを扱いません。代わりに、一つのワークスペースを複数のセクションに分割して、それぞれをビューポートと呼びます。

ビューポートの番号とレイアウトは CCSM -> 'General Options' -> 'Desktop Size' で設定することが可能です。'Horizontal Virtual Size' を変更すると横に並ぶビューポートの数が変わります。'Vertical Virtual Size' を変更すれば縦のビューポートを追加したり削除できます。

'Desktop Cube' プラグインを使用している場合、'Vertical Virtual Size' を増やして追加した縦のビューポートを使用することはできません。縦のビューポートを複数使いたい場合は、代わりに 'Desktop Wall' プラグインを使って下さい。

キーボードショートカット

以下の Compiz のデフォルトのキーボードショートカットのリストです。

  • ウィンドウの切り替え = Alt+Tab
  • 次のデスクトップに移動 = Ctrl+Alt+←
  • 前のデスクトップに移動 = Ctrl+Alt+→
  • ウィンドウの移動 = Alt+Left click
  • ウィンドウのリサイズ = Alt+Right click

詳細なリストは Compiz wiki の CommonKeyboardShortcuts にあります。また、プラグインの設定でいつでも確認できます。

CCSM のコマンドプラグインを使うことでショートカットを追加することも可能です。

エッジバインディング

マウスやキーのバインディングに加えて、Compiz は画面の端に関して特定のアクション (例: ウィンドウを画面端にドラッグ) にコマンドを割り当てることができます。例えば、'Rotate Cube' プラグインにはウィンドウを画面の端までドラッグしたときに次のビューポートに切り替えるというオプションがあります。エッジバインディングは CCSM で無効にすることができ、プラグインの設定セクションの 'Edge Flip' オプションのチェックを外すか、該当プラグインの 'Bindings' セクションで横にスクリーンアイコンがあるアクションを無効にします。

プラグイン

ほとんど全ての Compiz の機能はプラグインを使って実装されています。標準的なウィンドウマネージャの機能を実現するには必ず有効にしなくてはならないプラグインもあります。Compiz#主要なプラグインを有効にする を見て下さい。このセクションでは、標準のウィンドウ管理からは外れる、特別な機能を提供するプラグインについて説明します。

Grid

Windows 7 から使えるようになった 'Aero Snap' 機能のように、ウィンドウを画面の端にドラッグすることでウィンドウを並べたい場合、CCSM で 'Grid' プラグインを有効にしてください。'Desktop Wall' や 'Rotate Cube' プラグインを使っている場合は、プラグインのセクションで 'Edge Flip' オプションを無効にして、ウィンドウを画面の端にドラッグしたときに次のデスクトップに移動しないようにしてください。

ヒント:
  • The plugin in CCSM labelled 'Snapping Windows' merely adds resistance to the edges of the screen. It does not resize windows that are dragged to the screen edge.
  • The 'Grid' plugin in Compiz 0.8 does not support resizing windows by dragging them to the screen edge. Windows can only be compared by using keyboard shortcuts.

スケール

'Scale' プラグインは現在のビューポート内の全てのウィンドウのサムネイルを表示するオプションを用意します。KDE における 'Present Windows' 機能や GNOME Shell における 'Overview Mode' と似ています。プラグインを有効にした後、マウスカーソルを画面の右上に移動することで表示できます。使用する端はプラグインの設定セクションの 'Bindings' タブで設定できます。

ウィジェットレイヤー

'Widget Layer' プラグインを使用すると特定のウィンドウをウィジェットとして定義できるようになります。ウィジェットウィンドウは画面の別の'レイヤー'に表示されます。ウィジェットウィンドウを隠したときは、ウィジェットウィンドウとして定義されているウィンドウは全てアイコンになります。デフォルトでは、ウィジェットレイヤーは表示されるようになっており、F9 キーで隠すことができます。

ウィンドウをウィジェットとして定義するには、CCSM から 'Widget Layer' プラグインを開いて下さい。'Behaviour' タブをクリックして 'Widget Windows' フィールドの横にあるプラス記号のボタンをクリックします。ダイアログボックスが表示されたら、'Type' メニューから 'Window Title' を選択してください。'Value' フィールドにはウィンドウのタイトルを入力してください。例: galculator

画面の拡大

拡大機能を提供する Compiz プラグインは2つあります。1つ目は 'Magnifier' で、拡大鏡のように使います (四角形の中にあるものが全てズームされます)。CCSM でプラグインを有効にして Super+m を押すことで使えます。

もう1つのプラグインは 'Enhanced Desktop Zoom' です。このプラグインを有効にすると、Super キーを押しながら中マウスボタンをスクロールすることでマウスカーソル下のデスクトップが拡大されます。

クラッシュハンドラ

CCSM の 'Crash handler' プラグインを有効にするのは良い考えです。何らかの理由で、セッションを使って Compiz が起動できなかったときやセッション中に Compiz がクラッシュした場合に、このプラグインはクラッシュログを保存して別のウィンドウマネージャを起動します。クラッシュ時に Compiz を置き換えるウィンドウマネージャを指定するには、'Crash handler' プラグインをクリックして 'Start Other Window Manager' オプションのチェックを入れて下さい。そして、'Window Manager Command Line' フィールドに、起動するウィンドウマネージャのコマンドを入力します。例: xfwm4 --replace

CCSM を使うわずに Compiz を設定

Compiz は必ずしも CCSM で設定しなければならないというわけではありません。直接プロファイルを編集することでも設定は変更できます。Flat File プロファイルの場合、~/.config/compiz-1/compizconfig/Default.ini などのファイルを編集して変更を加えます。GSettings や GConf プロファイルの場合、gsettingsgconftool-2 ツールを使って DConf や GConf データベースに変更を加えます。

フラットファイルの設定例

キューブグリッドなどのプラグインを使用する設定ファイルの例 (注釈付き)

[core]
s0_focus_prevention_level = 0 ## this disables focus prevention
s0_active_plugins = core;composite;crashhandler;opengl;decor;move;imgsvg;place;text;imgpng;imgjpeg;compiztoolbox;grid;regex;resize;wobbly;animation;workspacenames;cube;rotate;switcher; ## a list of all the enabled plugins

[rotate] ## change cube rotation settings
s0_speed = 1.850000 ## cube rotation slowed down so there is no 'bounce' when switching viewports
s0_edge_flip_dnd = false ## stops the cube from rotating when a window is dragged to the screen edge (set this if using grid)
s0_edge_flip_window = false ## same as above

[cube]
s0_top_color = #a2a2a2ff
s0_bottom_color = #a2a2a2ff
s0_skydome_gradient_start_color = #f3f2ceff
s0_skydome_gradient_end_color = #87879eff
s0_skydome = true ## if skydome is set to false, the cube will be surrounded by blackness. set to true if you want a colour gradient or a picture behind your cube

[decor]
s0_command = emerald --replace ## this starts emerald with compiz.

[crashhandler]
s0_start_wm = true ## if crash handler plugin is enabled, this option ensures that another window manager will be loaded if Compiz crashes
s0_wm_cmd = xfwm4 --replace ## this option defines the window manager that will replace Compiz in the event of a crash. I've chosen xfwm but it could be metacity or openbox or any other wm
 
[switcher]
s0_icon = false ## this stops icons being shown in the alt-tab switcher. only window previews are shown
s0_minimized = false ## this stops minimised windows from being shown in the switcher
 
[grid]
s0_put_restore_key = <Super>F5 ## I've remapped the restore key to Super+F5. the original binding is Alt+F5 but it clashes with Unmaximize Window in CCSM general options
s0_outline_color = #635bac9f ## the default selection colours for grid are orange and brown. here I've changed them to shades of blue
s0_fill_color = #706a9a4f ## same as above

[place]
s0_mode = 2 ## smart window placement method chosen
s0_mode_matches = title=Application Finder;title=File Operation Progress; ## this defines windows for which I want special placement options.
s0_mode_modes = 1;1; ## placement mode 1 is centered. the windows defined above will be centered

ウィンドウ装飾を使わずに Compiz をタイル型ウィンドウマネージャとして使用

  • ctrl+alt+[numpad] arranges the current window
  • left and right bottom corner shows Taskbar
  • mouse control for everything (but typing ;))
  • some effects
  • & more
[core]
as_active_plugins = core;session;glib;grid;notification;workarounds;place;put;wall;regex;blur;dbus;fs;inotify;widget;animation;resize;text;mousepoll;obs;expo;fade;move;staticswitcher;mag;scale;scaleaddon;
s0_hsize = 2
s0_vsize = 2

[wall]
as_show_switcher = false
s0_edgeflip_dnd = true
as_flip_down_edge = 

[expo]
as_reflection = false
as_vp_brightness = 100.000000
as_expo_edge = 
as_expo_button = Button9
as_mipmaps = true
as_zoom_time = 0.150000
as_vp_distance = 0.000000

[scale]
as_initiate_edge = 
as_initiate_all_button = Button8
s0_darken_back = false
s0_opacity = 100
s0_overlay_icon = 0
s0_multioutput_mode = 1
as_show_desktop = false
s0_hover_time = 100
s0_spacing = 4
s0_timestep = 0.100000
s0_speed = 2.615500

[scaleaddon]
s0_window_highlight = true
s0_highlight_color = #ffffff08
s0_window_title = 0

[mag]
as_zoom_in_button = <TopEdge>Button4
as_zoom_out_button = <TopEdge>Button5
s0_mode = 2
s0_radius = 600

[place]
s0_multioutput_mode = 3
s0_mode = 2

[workarounds]
as_notification_daemon_fix = true
as_firefox_menu_fix = true
as_legacy_fullscreen = true
as_qt_fix = true
as_convert_urgency = true

[move]
as_opacity = 85 

[blur]
s0_filter = 1
s0_independent_tex = true
s0_mipmap_lod = 1.700000
s0_gaussian_radius = 7
s0_alpha_blur_match = (any) & !(class=Conky)

[put]
as_put_next_output_button = Button10
s0_speed = 10.441400
s0_timestep = 0.100000 

[obs]
s0_opacity_matches = type=dock | Tooltip | Menu | PopupMenu | DropdownMenu;(any) & !(class=Whaawmp.py | class=Gimp | class=Inkscape | class=Xfdesktop | class=Ristretto);
s0_opacity_values = 70;90;

[animation]
s0_close_effects = animation:Dream;animation:Fade;animation:Fade;
s0_open_effects = animation:Magic Lamp;animation:Fade;animation:Fade;
s0_focus_effects = animation:Dodge;
s0_open_durations = 150;100;100;
s0_close_durations = 150;100;100;
s0_minimize_durations = 150;
s0_shade_durations = 150;
s0_focus_durations = 150;

[widget]
s0_bg_brightness = 100
s0_fade_time = 0.250000
s0_match = type=Dock
as_toggle_edge = BottomLeft|BottomRight
s0_end_on_click = false

[staticswitcher]
s0_highlight_mode = 2
s0_highlight_rect_hidden = 2
as_next_key = Disabled
as_next_no_popup_key = <Alt>Tab
as_prev_all_key = Disabled

Gsettings の設定

ノート:
  • Most Compiz schemas are relocatable. This means that a path needs to provided along with the schema name itself - in this case, the path to the Compiz profile, for example: :/org/compiz/profiles/Default/plugins/.
  • That a Compiz plugin's schema is installed does not guarantee that the plugin itself is installed.

使用できる Compiz プロファイルを全て表示:

$ gsettings list-recursively org.compiz | grep existing-profiles

使用中の Compiz プロファイルを表示:

$ gsettings list-recursively org.compiz | grep current-profile

使用する Compiz プロファイルを設定:

$ gsettings set org.compiz current-profile profile-name

使用できる Compiz プラグインスキーマを全て表示:

$ gsettings list-relocatable-schemas | grep org.compiz

Compiz プラグインの設定とその値を全て表示 (以下の例では Static Application Switcher の設定が表示されます):

$ gsettings list-recursively org.compiz.staticswitcher:/org/compiz/profiles/Default/plugins/staticswitcher/

特定の Compiz 設定の値を表示 (以下の例では Static Application SwitcherIcon オプションが有効になっているかどうか確認します):

$ gsettings get org.compiz.staticswitcher:/org/compiz/profiles/Default/plugins/staticswitcher/ icon

Compiz プラグインの設定の値を変更 (以下のコマンドは Static Application Switcher のアイコンを無効にします):

$ gsettings set org.compiz.staticswitcher:/org/compiz/profiles/Default/plugins/staticswitcher/ icon false

GSettings を使って Compiz のプラグインを有効化または無効化

ヒント:
  • active-plugins の値を上書きするときはクオーテーションマークを忘れないで下さい、例: "['core']"
  • プラグインの名前を間違って入力したりインストールしてないプラグインの名前を入力した場合でも、コマンドはエラーを出力しないで終了します。ただし間違って入力した名前は自動的に取り除かれます。

手順は2段階です。まず、以下のコマンドを使って Compiz の使用中のプラグインのリストを取得してください:

$ gsettings get org.compiz.core:/org/compiz/profiles/Default/plugins/core/ active-plugins

コマンドを実行すると以下のような出力がされます:

['core', 'composite', 'opengl', 'compiztoolbox', 'decor', 'vpswitch', 'snap', 'mousepoll', 'resize', 'place', 'move', 'wall', 'grid', 'regex', 'imgpng', 'session', 'gnomecompat', 'animation', 'fade', 'workarounds']

出力をコピーして使用するプラグインを設定するコマンドに貼り付けて下さい。必要に応じてプラグインは追加したり削除してください。例えば Static Application Switcher を有効にする場合:

$ gsettings set org.compiz.core:/org/compiz/profiles/Default/plugins/core/ active-plugins "['core', 'composite', 'opengl', 'compiztoolbox', 'decor', 'vpswitch', 'snap', 'mousepoll', 'resize', 'place', 'move', 'wall', 'grid', 'regex', 'imgpng', 'session', 'gnomecompat', 'animation', 'fade', 'workarounds', 'staticswitcher']"

参照