Ubuntu 12.04のデフォルトのグラフィカルモードでタスクスイッチングを使用する場合、それらが同じ種類の複数のウィンドウである場合。複数のターミナルウィンドウでは、それらをすべてまとめて表示し、必要なものを選択できます。
私の問題は、これらのウィンドウの順序が絶えず変更されることです。 「最後に使用された」順序に従います。私は常に修正順序でそれらが欲しいです。どうすればいいですか?
ユニティコードベースを変更するのではなく、デスクトップを使用して目的の結果を得ることができます。
CompizConfigSettingsManagerでCompizデスクトップキューブを使用する例
CompizConfigSettingsManager(ccsm
)を開き、次のように設定を変更します。
ターミナル1を開く
キーボードショートカットCTRL-ALT->(右矢印)を使用して、右側の次のデスクトップに移動します。
ターミナル2を開く
キーボードショートカットCTRL-ALT->(右矢印)を使用して、右隣のデスクトップに再度移動します。
ターミナル3を開く
キーボードショートカットCTRL-ALT-< 左矢印)を使用して、ターミナル2を含む前のデスクトップに移動します(または2回ターミナル1に戻ります)
別のオプション
CompizConfig SettingManagerでビューポートマネージャーを使用し、キーの組み合わせを割り当てて、選択したデスクトップに直接移動します。
注:この方法では12が可能であるはずですが、これまでは10しか機能しませんでした。
更新:コメントで表明された懸念に基づいて:
Geditのタイトルバーを右クリックして、常に表示されるワークスペースを選択します...
別のオプション:
多数のアクティビティ用に個別のターミナル(またはワークスペース)を開くのではなく、gnomeターミナルでタブを使用することもできます。タブ切り替え用のショートカットキーは、端末設定から利用できます。下記参照:
---(
nity 7 のソースコードを変更することでこれを達成できると思います。開発者サイトで説明されている手順に従いますが、ビルドプロセスを開始する前に./trunk/plugins/unityshell/src/unityshell.cpp
を実行し、SetUpAndShowSwitcher
関数を確認します。
void UnityScreen::SetUpAndShowSwitcher(switcher::ShowMode show_mode)
{
RaiseInputWindows();
if (!optionGetAltTabBiasViewport())
{
if (show_mode == switcher::ShowMode::CURRENT_VIEWPORT)
show_mode = switcher::ShowMode::ALL;
else
show_mode = switcher::ShowMode::CURRENT_VIEWPORT;
}
auto results = launcher_controller_->GetAltTabIcons(show_mode == switcher::ShowMode::CURRENT_VIEWPORT,
switcher_controller_->show_desktop_disabled());
if (switcher_controller_->CanShowSwitcher(results))
switcher_controller_->Show(show_mode, switcher::SortMode::FOCUS_ORDER, results);
}
ここで、これがまさに私たちが探していた機能であることを明確に見ることができます。上部は、ビューポートモードの切り替えを担当します。
この切り替えは、アプリのグループに移動するたびに、またはグループから移動するたびに表示されます。 optionGetAltTabBiasViewport
は、これがいつ発生するかを示します。次に、正しいアイコンを取得するためにGetAltTabIcons
が関与します。そして最後に、SortMode::FOCUS_ORDER
を持つShow
関数が呼び出され、ソートされたアイコンが表示されます。 SortModeは列挙型です:
enum class SortMode
{
LAUNCHER_ORDER,
FOCUS_ORDER,
};
FOCUS_ORDER
をLAUNCHER_ORDER
に変更すると、問題が解決するはずです。 Show
を呼び出す前に追加のifステートメントを挿入して、ShowMode::ALL
ケースでのランチャーの順序のソートを防ぐことができます。
Unity 8のソースコードは完全に異なっていることに注意してください。したがって、このソリューションはUnity 7でのみ機能する可能性があります。不足している依存関係を30分修正し、さらに1時間cmakeと戦った後、明日VMで試してみることにしました;)