如何从命令行启动最大化的 nautilus?

Nic*_*oul 4 command-line nautilus window-manager maximized xdotool

我可以从命令行轻松地在特定目录上启动 Nautilus:

nautilus /home/nico/Documents
Run Code Online (Sandbox Code Playgroud)

但我希望 Nautilus 窗口最大化。
命令行怎么写?

nautilus好像不认识--maximized也不--fullscreen。我不情愿地尝试了--geometry 1500x1500,它似乎确实有任何效果。

Jac*_*ijm 6

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
Run Code Online (Sandbox Code Playgroud)

如何使用

  • 该脚本同时使用xdotoolwmctrl,第一个列出目标应用程序的窗口,最后一个因为我更喜欢xdotool调整窗口大小的方式。

    sudo apt-get install xdotool wmctrl
    
    Run Code Online (Sandbox Code Playgroud)
  • 然后将上面的脚本复制到一个空文件中,另存为 start_maximized.py

  • 通过以下命令测试运行脚本:

    python3 /path/to/start_maximized.py
    
    Run Code Online (Sandbox Code Playgroud)

    现在 nautilus 将启动一个新的最大化窗口。

  • 如果您愿意,可以将该命令作为快速列表(右键单击)项目添加到FilesUnity 启动器中的 (nautilus) 启动器。

2. 通用版;启动任何应用程序最大化

您可以在下面的通用脚本中启动任何GUI 应用程序(+ 它们的参数):

sudo apt-get install xdotool wmctrl
Run Code Online (Sandbox Code Playgroud)

使用它


另外,将选项添加到快速列表

在此处输入图片说明

您可以轻松地将该选项添加到nautilus快速列表中。假设您使用第二个(通用)版本:

现在您有一个如图所示的快速列表选项。

概念说明

最大化现有窗口并不是很困难。双方wmctrlxdotool提供选择这样做。

问题是如果你想最大化一个新创建的窗口,你在给出命令时还不知道窗口 ID。因此,脚本执行以下过程:

  1. 列出目标应用程序的当前现有窗口(如果有)
  2. 给出打开应用程序的命令(或正在运行的应用程序的新窗口)
  3. 留意应用程序的窗口出现
  4. 如果出现新窗口,显然我们的候选对象是最大化 -> 最大化它。

这样,我们可以“聪明地”最大化应用程序的新窗口,无论计算机速度慢(例如忙于繁重的工作)还是快速,它都可以工作。

最后,脚本有一个内置的安全时间限制,以防止在应用程序由于某种原因无法启动时一直等待。大约之后 15秒后,脚本放弃并退出一条路。