17

私はちょうど私のwmとして素晴らしいをインストールしました。awesomeを使用してalt+tabを実行すると、2つのアプリを切り替えるだけで、他のアプリをアクティブにすることはできません。

4

7 に答える 7

22

デフォルトでは、クライアントはフォーカスがあった前のウィンドウにフォーカスを設定します。Alt + Tabキーを押してウィンドウを変更すると、前のウィンドウが元のウィンドウになります。したがって、2つのウィンドウ間を循環します。

これを修正するには、以下を変更する必要があります。

デフォルトのrc.luaでは、ウィンドウサイクリングを制御するセクションは次のようになります。

    awful.key({ modkey,           }, "Tab",
        function ()
            awful.client.focus.history.previous()
            if client.focus then
                client.focus:raise()
            end
        end),

前のウィンドウだけでなく、すべてのウィンドウを循環するには、上記のコードを次のように変更します。

awful.key({ modkey,           }, "Tab",
    function ()
        -- awful.client.focus.history.previous()
        awful.client.focus.byidx(-1)
        if client.focus then
            client.focus:raise()
        end
    end),

awful.key({ modkey, "Shift"   }, "Tab",
    function ()
        -- awful.client.focus.history.previous()
        awful.client.focus.byidx(1)
        if client.focus then
            client.focus:raise()
        end
    end),

これは、を押すとウィンドウを循環し、を押すAlt+Tabと逆の順序で循環しますAlt+Shift+Tab。(で始まる2行--はコメントなので、結果には影響しません。)

タグ上のすべてのクライアントを循環するには、最小化されたクライアントであっても、この関数が役立つ場合があります。

awful.key({ modkey,           }, "Tab",
    function ()
        for c in awful.client.iterate(function (x) return true end) do
            client.focus = c
            client.focus:raise()
        end
    end),

これらのソリューションはいずれも履歴を考慮せず、代わりに、フォーカスが最も少ないウィンドウに切り替わります(つまり、ウィンドウがフォーカスされた順序は考慮されません)。

于 2012-07-29T10:43:55.003 に答える
8

このためのモジュールを作成しました:https ://github.com/blueyed/awesome-cyclefocus

さまざまな方法Alt-Tab(READMEを参照)をサポートしており、ウィンドウを循環しているときに適用されるフィルターを介して、好みに合わせて簡単に構成できます。たとえば、同じWMクラスのウィンドウのみ、または同じ画面/タグでフィルターをかけます。

于 2014-03-02T05:41:47.047 に答える
5

クリスがソリューションで提供したセットアップと同様のことを行いました。ただし、すべてのウィンドウにフォーカスを移すのではなく、実際にはマスタースタックとスレーブスタックを循環させます。言い換えれば、それらはすべて画面上で目に見えて回転します。

awful.key({ modkey, "Shift"   }, "Tab",
    function ()
        awful.client.cycle(false)
        awful.client.focus.byidx(0,awful.client.getmaster()) -- Added 2013-03-01
    end),

awful.key({ modkey,           }, "Tab",
    function ()
        awful.client.cycle(true)
        awful.client.focus.byidx(0,awful.client.getmaster()) -- Added 2013-03-01
    end),

サイクル操作全体を通してマスターウィンドウにフォーカスを維持したいので(少なくとも表示されるように)、まだ少し調整する必要があります。とても簡単なaweful.client.cycleを見つけたとき、私はまだAwesomeLuaAPIに精通しています。:)

これは、私が調査した最初のリソースの1つであり、同様の質問に対処したものであるため、この現在の解決策を使用することにしました。それが役に立てば幸い。

于 2013-02-27T06:21:53.140 に答える
3

デフォルトでは、最後に使用された2つのアプリケーション間でMod+Tabサイクルをバインドします。Mod+jまたはMod+k(逆順)を探していました。

于 2012-07-28T10:06:09.393 に答える
1

awesome-switcher-previewと呼ばれるawesomeのライブラリがあります。これにより、他のオペレーティングシステムやウィンドウマネージャーで期待されるのと同様のalt-tabの動作が実装されます。最近フォーカスされた順序でウィンドウを循環します。画面に選択したタグセット内のすべてのクライアントを循環します。最小化されたクライアントが含まれます。選択が行われるまで、履歴を台無しにしないようにします。スタックをあまり変更しません。Altキーを押したままにすると、プレビュー/Alt-Tabスイッチャーが表示されたままになります。

ここで入手できます: https ://github.com/berlam/awesome-switcher-preview

于 2016-12-09T16:38:25.730 に答える
0

別のオプションは、スタンドアロンのサードパーティアプリケーションを使用することです:https ://github.com/sagb/alttab

于 2017-12-15T13:09:59.603 に答える
0

探していた動作を実現するために、適切な構成を設定するのに時間がかかったと言わなければなりません。すべてのウィンドウを、(特に!)最小化されたウィンドウを含めて、上げたりフォーカスしたりせずに、プレビューを使用して循環します。または通知。

  • 素晴らしい設定の編集(上記):最小化されていないウィンドウのみを循環します。
  • awesome_alttabは 非推奨になりました
  • 素晴らしい-素晴らしい3.5のスイッチャー
  • サイクルフォーカス:ついに!行102をコメントアウトした後でのみ機能しましたが、 rc.luaの空 でオーバーライドすることはできませんでしたcycle_filters

awesome-cyclefocus / init.lua:

cycle_filters = {
  --function(c, source_c) return not c.minimized end,  --luacheck: no unused args
},

rc.lua

 cyclefocus.key({ "Mod1", }, "Tab", {
          show_clients = false,
          focus_clients = false,
 }),
于 2021-05-05T20:23:11.540 に答える