如何设置 gnome-terminal 的 X 和 Y 启动位置?

如何设置 gnome-terminal 的 X 和 Y 启动位置?

我一直在尝试gnome-terminal --geometry x y永久设置 的位置。我知道我需要找到一个包含终端设置的文件,但我不知道它的位置。基本上,我想要的是控制终端窗口在启动时的位置。

答案1

我不认为有这样的文件:这样的设置根本没有出现,无论是在gnome-terminal的偏好设置中还是在gnome-terminal的个人资料偏好设置中。

但是,尽管您不能直接设置如何gnome-terminal启动,但您始终可以设置系统如何调用gnome-terminal

cp /usr/share/applications/gnome-terminal.desktop ~/.local/share/applications
sed -i 's/^Exec=gnome-terminal$/& --geometry=80x24+100+100/' ~/.local/share/applications/gnome-terminal.desktop
gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal --geometry=80x24+100+100'
  • cp /usr/share/applications/gnome-terminal.desktop ~/.local/share/applications:复制/usr/share/applications/gnome-terminal.desktop~/.local/share/applications,即创建系统范围的桌面文件的用户特定版本gnome-terminal
  • sed -i 's/^Exec=gnome-terminal$/& --geometry=80x24+100+100/' ~/.local/share/applications/gnome-terminal.desktopExec=gnome-terminal:将系统范围的gnome-terminal桌面文件的用户特定版本中的行更改为Exec=gnome-terminal --geometry=80x24+100+100
  • gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal --geometry=80x24+100+100':更改 dconf 的设置,以便告诉桌面环境运行,gnome-terminal --geometry=80x24+100+100而不是gnome-terminal在点击CTRL+ ALT+时运行T

恢复方法:

rm ~/.local/share/applications/gnome-terminal.desktop
gsettings set org.gnome.desktop.default-applications.terminal exec 'gnome-terminal'

答案2

我还对终端窗口在随机位置弹出感到烦恼,而且由于我有多个垂直翻转的显示器,每次 bash 终端都会出现在屏幕的最顶部,导致我不得不将其拖到屏幕的底部,所以最后我不得不采取一些措施来解决这个问题。

此外,使用上面提供的解决方案(制作自定义gnome-terminal.desktop文件)也可以不是修复几乎所有情况下的问题,例如当您右键单击桌面以使用“打开终端”菜单(我经常这么做),或者如果你从终端菜单中选择“终端->新终端”,或者使用终端内的热键启动新窗口。如果仅通过单击桌面按钮启动终端,它确实有效,但对我来说这还不够。所以我想出了一个解决方案来解决这个问题,并动态地将终端窗口放置在您当前的指针位置。

我编写了一个小型 bash 脚本,您可以将其放在程序的最后,~/.bashrc 它会将您打开的任何终端窗口定位到当前鼠标指针的$X位置$Y。如果您正在使用 Unity 显示管理器(应该只与其他 DM 一起使用,但您可能需要调整脚本)并运行 Ubuntu 16.x(在 16.04 上测试),该脚本应该可以立即使用。

首先你需要确保已经安装wmctrlxdotool在 shell 中输入:

sudo apt-get 安装 wmctrl xdotool

.bashrc这是脚本,使用文本编辑器将其复制/粘贴到主目录中的文件末尾:

# This opens new terminal windows at the specified window size
# positioned at your current mouse position on screen 
# On 16.04 Terminals were defaulting to the TOP OF THE SCREEN and 
# since I have vertical 4k monitors this was driving me crazy. 
# This is a good little hack to fix all instances of gnome-terminal
# some which are baked into a core .so like the desktop "Open Terminal" 
# menu for example.  This is fun and should work in all cases :)
#
if [ -n "$XDG_CURRENT_DESKTOP" ] && [ -z ${GIO_LAUNCHED_DESKTOP_FILE+x} ]; 
then
    ###
    # change these to whatever resolution you want
    # the shell width and height to be in pixels:
    xWinWidth=1000
    yWinHeight=750

    xScreenRes=$(xdpyinfo  | grep dimensions | uniq | awk '{print $2}' | cut -d 'x' -f1)
    yScreenRes=$(xdpyinfo  | grep dimensions | uniq | awk '{print $2}' | cut -d 'x' -f2)

    #cool cmd to get mouse postion, returns result into $X and $Y:  
    eval $(xdotool getmouselocation --shell)

    # make sure window's x width stays on screen:
    if(( $(expr $xWinWidth + $X) > xScreenRes ));
    then
        X=$(expr $xScreenRes - $xWinWidth + 30)
    fi

    # make sure the window height stays on screen:
    if(( $(expr $yWinHeight + $Y) > yScreenRes ));
    then
        Y=$(expr $yScreenRes - $yWinHeight + 60)
    fi

    # set the current active window positon which, since this
    # is being run from .bashrc is always the terminal window!
    wmctrl -r :ACTIVE: -e 0,"$X","$Y","$xWinWidth","$yWinHeight"
                         #0,left, top,width,height  
fi

相关内容