程序占用屏幕的 2/3 和 1/3?

程序占用屏幕的 2/3 和 1/3?

是否有任何已知的应用程序可以实现这一点?如果没有,有没有办法自己干预呢?对于特定的设置,我不需要 50/50,我需要一个程序占用 2/3,另一个程序占用 1/3。这将非常有用!

如上所述,如果不存在程序,我应该阅读什么才能使其工作?(例如 2/3 的特定快捷方式和 1/3 的另一个快捷方式)

从今天起使用 Pantheon。

答案1

介绍

下面的脚本要求用户为窗口选择 1/3 或 2/3 调整大小选项,然后允许用户选择要调整大小的窗口。要调整为 1/3 的窗口将跳到左侧,而要调整为 2/3 的窗口将跳到右侧。可以根据需要将脚本绑定到键盘快捷键。

初步设置

该脚本依靠wmctrl程序来完成工作。确保先安装该程序

sudo apt-get install wmctrl

设置脚本

  1. 在您的主文件夹中创建名为 的文件夹bin。您可以使用命令执行此操作

    mkdir $HOME/bin`
    
  2. 在该文件夹中创建一个文件resizer.sh。将下面的脚本复制到该文件中。

  3. 确保脚本可执行

    chmod 755 $HOME/bin/resizer.sh
    
  4. 打开System Settings-> Keyboard-> Shortcuts-> Custom Shortcuts
    创建一个新的快捷方式并将脚本的完整路径作为命令,
    例如/home/serg/bin/resizer.sh

我的例子

我先设置快捷方式:

在此处输入图片描述

然后按快捷键。弹出菜单允许选择 1/3 或 2/3 调整大小;我选择 1。请注意,除了一个 1 数字外,没有其他输入

在此处输入图片描述

接下来我选择自由浮动的浏览器窗口。它跳到左边,现在宽度为桌面高度的 1/3。

在此处输入图片描述

2/3 选项的行为相同,但 2/3 窗口将放置在右侧 在此处输入图片描述

怪癖

CtrlSuper测试此脚本后,调整大小在最大化或左右分割窗口 ( / )上不起作用。因此,窗口必须是非最大化的、自由浮动的。

脚本源

#!/bin/bash

#--------------------
# Author: Serg Kolo
# Date: Sept 26,2015
# Purpose: a script to resize a window to its
# 1/3 or 2/3 of width.
# Written for http://askubuntu.com/q/678608/295286
#--------------------


#---------------------
# This part takes user input through graphical popup;
# Input must be 1 or 2, anything else results into an error
# If user selects 1, we set window to 1/3 of desktop width
# and place it on the left;
# If user selects 2,  we set window to 2/3 of desktop width
# and place it on the right;
SIZE=$(zenity --entry --text "Enter (1) for 1/3 and (2) for 2/3 of width")
case  $SIZE in
    "1")NUM=0.333; XPOS=0;;
    "2")NUM=0.667;XPOS=455;;
    *) zenity --error --text="Invalid input"; exit  ;;
esac
#--------------------
# In this part we determine the geometry of the desktop
# and then calculate the width that we want the window to 
# be set using bc, the command line calculator
# printf is used to convert floating point result to 
# integer value, which is required for wmctrl
ROOT_WIDTH=$(xwininfo -root | awk '/Width/ {print $2}')
ROOT_HEIGHT=$(xwininfo -root | awk '/Height/ {print $2}' )
NEW_WIDTH=$(bc <<< $ROOT_WIDTH*$NUM)
NEW_WIDTH=$(printf "%.0f" $NEW_WIDTH)
#----------------------
# This is what actually does the job.
# wmctrl allows you to select the window with -r :SELECT:
# and sets that window to specific gravity,x-position,y-position,width
# height. To keep the script neutral, I've decided to set the 
# height to default desktop height. User can resize the height as 
# necessary by themselves
wmctrl -r :SELECT: -e 0,$XPOS,0,$NEW_WIDTH,$ROOT_HEIGHT

相关内容