在 Ubuntu 中,你可以使用以下命令更改终端的默认大小(编辑>个人资料偏好)更改大小。如何使用快捷方式调出终端ctrl++来创建两个不同大小的终端,以便它们一个接一个地放置在屏幕的右侧?这样,一个终端的高度小于另一个终端,但宽度相等alt。T
答案1
我将为您提供详细且经过测试的指南,帮助您实现期望的结果。
首先简单概括一下步骤:
- 编写一个简短的 bash 脚本,打开两个具有指定大小和位置的终端窗口。
- 设置脚本文件的“可执行”标志
- 测试脚本(避免拼写错误并确保一切正常)
- 禁用/更改旧终端快捷键以释放加速键Ctrl++AltT
- 设置新的自定义快捷方式
现在具体指南如下:
由于您只能使用键盘快捷键启动单个命令(据我所知),因此我们必须编写一个简短的 bash 脚本来打开两个窗口。我们还可以将一个特殊参数交给 gnome-terminal,该参数设置窗口的大小(以字符为单位,而不是像素)和位置(以屏幕上的像素为单位)。它应该如下所示:
#!/bin/bash
# File: open-two-terminals.sh
# Purpose: launch two windows of gnome-terminal with different
# sizes (in characters) and positions (in pixels)
gnome-terminal --geometry=80x30+400+400 &
gnome-terminal --geometry=60x20+500+50 &
# geometry-syntax: --geometry=[width]x[height]+[x-position]+[y-position]
# Info: & continues with the next command right after the execution
# of the command it is written after, instead of waiting until
# the program finished and returns.
请注意,您可以/必须对几何值进行一些试验,以便按照您想要的方式调整窗口的大小和位置。我只使用了示例值。
将这些行(只需要第一行和没有 的行#
,因为其他行只是注释)保存到open-two-terminals.sh
您想要的任何位置的文件中。我建议您的主bin
目录/home/MYUSERNAME/bin
(如果不存在,请创建此目录),但您可以将其更改为您想要的内容(只要它位于 中的某个位置PATH
)以及文件名,它应该仅以 结尾.sh
。
所以我现在假设您有一个脚本文件/home/MYUSERNAME/bin/open-two-terminals.sh
。
下一步是使脚本可执行,因为现在它只不过是一个好看的纯文本文件。为此,请在终端中运行以下命令:chmod +x /home/MYUSERNAME/bin/open-two-terminals.sh
现在,设置可执行标志后,您可以进行第一次测试,看看到目前为止是否一切都正确。通过open-two-terminals.sh
在终端窗口或Alt+ F2-HUD 中输入来运行脚本。它应该会打开两个具有不同配置文件和大小的新终端窗口。
如果此操作有效(否则您犯了一个错误,应仔细检查并重试所有步骤),您可以设置键盘快捷键。
转到您的系统设置面板并点击键盘. 更改为快捷方式选项卡并选择发射器在左侧列表中。您会看到发射终端在右侧列表中。
首先,您必须禁用此快捷方式(作为新快捷方式输入)或分配除+ +Backspace之外的不同的键,因为您想稍后将它们用作自定义快捷方式。CtrlAltT
之后,选择自定义快捷方式在左侧列表中。通过点击+符号。将弹出一个窗口,要求输入快捷方式的名称(任何你想要的名称,例如Open Two Terminals
)和要运行的命令(输入之前创建的脚本文件,例如open-two-terminals.sh
)。单击确认好的。
现在我们要做的最后一件事是将旧的终端键Ctrl+ Alt+分配T给这个新的快捷键。因此,单击包含加速键的右侧列(默认值为已禁用- 很重要,因为单击包含标题的左侧列会打开弹出窗口),然后按住要分配给快捷方式的键。现在您应该会在快捷方式标题的左侧看到它们。
关闭控制面板并享受新的双终端快捷方式!:-D
希望本详细指南能帮到您并解决您的问题。如果是这样,请快速点击左侧的灰色勾号接受答案,以表示您的感谢。如果您或其他任何阅读本文的人遇到问题、需要进一步说明或发现错误,请给我留言!
答案2
基本流程:
sudo apt-get install wmctrl
touch bin/twoterm.sh && sudo chmod +x bin/twoterm.sh
- 复制下面的脚本并将其保存到
bin/twoterm.sh
文件中 - 创建自定义快捷键 Ctrl+Alt+R ,它将调用命令“gnome-terminal -e /home/yourusername/bin/twoterm.sh
剧本
#!/bin/bash
# Author: Serg Kolo
# Date: 2/18/2015
# Description: A simple script to create two windows on right side
# of the screen with specific size.
sleep 1
gnome-terminal -t WINDOW-ONE
gnome-terminal -t WINDOW-TWO
if [ $? == 0 ]
then
wmctrl -r WINDOW-ONE -e 0,1300,300,250,250
sleep 0.5
wmctrl -r WINDOW-TWO -e 0,1300,0,250,250
fi
解释:
wmctrl
是一个帮助与窗口管理器和打开的窗口交互的程序。更多信息man wmctrl
,这和这askubuntu 帖子gnome-terminal -t WINDOM-TITLE
要求使用具有特定标题的 gnome-terminal 窗口。无需创建不同的配置文件,尽管您可以决定这样做。请参阅 ByteCommander 的回答wmctrl -r WINDOW-NAME -e g,x,y,w,h
,告诉具有特定标题 WINDOW-NAME 的窗口具有精确的参数重力、屏幕上的 x 位置、屏幕上的 y 位置、窗口宽度、窗口高度。
缺陷/怪癖:
显然 hud 会逐一执行所有内容,但 gnome-terminal 可以更快地执行脚本的各部分,这就是为什么我在快捷方式中调用
gnome-terminal -e '/home/username/bin/twoterm.sh'
;这样就会在一瞬间创建一个 gnome-terminal 窗口,从而允许两个窗口正确执行脚本。if 语句的原因是脚本由于某种原因无法按顺序执行
- 语句的原因
sleep
是为了让第二个窗口赶上第一个窗口。显然脚本不能wmctrl
同时调用两个实例 - 快捷方式+脚本只能执行一次。如果多次调用脚本,则最终会出现多个窗口,但命令
wmctrl
只会整理第一次调用的原始两个窗口。
截图:
替代脚本:
根据 ByteCommander 的建议,我编辑了脚本,使其纯粹由/bin/sh
并删除了 if 语句执行。
#!/bin/bash
# Author: Serg Kolo
# Date: 2/18/2015
# Description: A simple script to create two windows on right side
# of the screen with specific size.
gnome-terminal -t WINDOW-ONE &
gnome-terminal -t WINDOW-TWO &
sleep 1
wmctrl -r WINDOW-ONE -e 0,1300,300,250,250 &
wmctrl -r WINDOW-TWO -e 0,1300,0,250,250 &