我一直在尝试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.desktop
Exec=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 上测试),该脚本应该可以立即使用。
首先你需要确保已经安装wmctrl
并xdotool
在 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