web-dev-qa-db-ja.com

コマンドラインからnautilusを最大化して起動するには?

コマンドラインから特定のディレクトリでNautilusを簡単に起動できます。

nautilus /home/nico/Documents

しかし、Nautilusウィンドウを最大化する必要があります。
コマンドラインの書き方

nautilus--maximized--fullscreenも認識していないようです。私はしぶしぶ--geometry 1500x1500を試しましたが、効果があるようです。

4
Nicolas Raoul

1.最大化されたウィンドウでnautilusを起動します

ウィンドウを最大化してnautilusを開始するには、以下のスクリプトを使用できます。

#!/usr/bin/env python3
import subprocess
import time
import sys

def w_list():
    try:
        pid = subprocess.check_output(["pgrep", "nautilus"]).decode("utf-8").strip()
        w_list = subprocess.check_output(["wmctrl", "-lp"]).decode("utf-8").splitlines()
        return [l.split()[0] for l in w_list if pid in l]
    except subprocess.CalledProcessError:
        pass

relevant1 = w_list()
subprocess.Popen(["nautilus", "--new-window"])

t = 0
while t < 30:
    time.sleep(0.5)
    relevant2 = w_list()
    if all([relevant2 != None, relevant1 != None]):
        new = [w for w in relevant2 if not w in relevant1]
        if new:
            subprocess.Popen(["xdotool", "windowsize", new[0], "100%", "100%"])
            break
    relevant1 = relevant2
    t += 1

使い方

  • スクリプトはxdotoolwmctrlの両方を使用します。最初のリストはnewターゲットアプリケーションのウィンドウ、最後はxdotoolウィンドウのサイズを変更する方法をお勧めします。

    Sudo apt-get install xdotool wmctrl
    
  • 次に、上記のスクリプトを空のファイルにコピーし、start_maximized.pyとして保存します

  • 次のコマンドでスクリプトをテスト実行します:

    python3 /path/to/start_maximized.py
    

    これで、nautilusは新しいmaximizedウィンドウで起動します。

  • 必要に応じて、コマンドをクイックリスト(右クリック)アイテムとしてUnityランチャーのFiles(nautilus)ランチャーに追加します。

2.汎用バージョン。起動anyアプリケーションを最大化

以下の一般化されたスクリプトでany GUIアプリケーション(+引数)を起動できます。

#!/usr/bin/env python3
import subprocess
import time
import sys

appcommand = sys.argv[1:]
app = appcommand[0]
startup = (" ").join(appcommand)

def w_list():
    try:
        pid = subprocess.check_output(["pgrep", app]).decode("utf-8").strip()
        w_list = subprocess.check_output(["wmctrl", "-lp"]).decode("utf-8").splitlines()
        return [l.split()[0] for l in w_list if pid in l]
    except subprocess.CalledProcessError:
        pass

relevant1 = w_list()
subprocess.Popen(["/bin/bash", "-c", startup])

t = 0
while t < 30:
    time.sleep(0.5)
    relevant2 = w_list()
    if all([relevant2 != None, relevant1 != None]):
        new = [w for w in relevant2 if not w in relevant1]
        if new:
            subprocess.Popen(["xdotool", "windowsize", new[0], "100%", "100%"])
            break
    relevant1 = relevant2
    t += 1

それを使用するには

  • 上記とまったく同じセットアップを行います(wmctrlおよびxdotoolのインストールを含みますが、さらにターゲットアプリケーション(+可能な引数)を引数として使用してスクリプトを実行します。

    例えば:

    python3 /path/to/start_maximized.py nautilus --new-window
    

    または:

    python3 /path/to/start_maximized.py gedit
    

さらに、クイックリストにオプションを追加します

enter image description here

nautilusクイックリストにオプションを簡単に追加できます。 2番目の(一般化された)バージョンを使用すると仮定します。

  • グローバルnautilus.desktopファイルをローカルにコピーします。

    14.04および14.10にあります:nautilus.desktop:

    cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
    

    および15.04および15.10:org.gnome.Nautilus.desktop

    cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
    
  • (たとえば)geditでファイルを開き、次の行を探します:

    Actions=Window;
    

    次のように変更します。

    Actions=Window;Open a maximized window;
    

    ファイルの最後に追加します。

    [Desktop Action Open a maximized window]
    Name=Open a maximized window
    Exec=python3 '/path/to/start_maximized.py' nautilus --new-window
    OnlyShowIn=Unity;
    
  • ファイルを保存して閉じます。

  • ログアウトして再度ログインします。

これで、画像のようなクイックリストオプションがあります。

概念説明

既存ウィンドウを最大化することはそれほど難しくありません。 wmctrlxdotoolの両方が、そうするためのオプションを提供します。

問題は、新しく作成されたウィンドウを最大化する場合、コマンドを実行したときにウィンドウIDがまだわからないことです。したがって、スクリプトは次の手順を実行します。

  1. ターゲットアプリケーションの現在存在するウィンドウのリストを作成します(存在する場合)
  2. アプリケーション(または実行中のアプリケーションの新しいウィンドウ)を開くコマンドを与える
  3. new表示されるアプリケーションのウィンドウに注意してください
  4. 新しいウィンドウが表示される場合は、明らかに最大化する候補です->最大化します。

このようにして、アプリケーションの新しいウィンドウを「スマートに」最大化できます。これは、コンピューターが低速(たとえば、重いジョブに占有されている)でも高速でも動作します。

最後に、スクリプトには安全期限が組み込まれているため、アプリケーションが何らかの理由で起動に失敗した場合に待機することを防ぎます。承認後15秒後、スクリプトはgivesめて終了します。

6
Jacob Vlijm

Nautilusはウィンドウサイズを記憶しています。
通常どおり起動し、最大化してから閉じます。

ターミナルでnautilusと入力すると、最大化されて開きます。
Ubuntu 14.04 LTSでテスト済み。

3
Parto