终端快捷键 ctrl + alt + T,2 个终端,不同大小

终端快捷键 ctrl + alt + T,2 个终端,不同大小

在 Ubuntu 中,你可以使用以下命令更改终端的默认大小(编辑>个人资料偏好)更改大小。如何使用快捷方式调出终端ctrl++来创建两个不同大小的终端,以便它们一个接一个地放置在屏幕的右侧?这样,一个终端的高度小于另一个终端,但宽度相等altT

答案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

基本流程:

  1. sudo apt-get install wmctrl
  2. touch bin/twoterm.sh && sudo chmod +x bin/twoterm.sh
  3. 复制下面的脚本并将其保存到bin/twoterm.sh文件中
  4. 创建自定义快捷键 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 wmctrlaskubuntu 帖子
  • 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 &

相关内容