Gnome3 Classic 和 Window Snap

Gnome3 Classic 和 Window Snap

有没有办法在 Gnome3 Classic 中启用 Windows Snap?我一直在使用 KDE4,它是开箱即用的。现在我正在测试 Kali Llinux,并试图让它工作。

我想要一个轻量级环境,只需要捕捉。除了使用 KDE 或 compiz 构建自己的 Kali 之外,还有什么想法吗?

答案1

我不思考您可以在不进行合成的情况下激活 snap(Gnome3 classic)。它确实是在完整版 Gnome3 上开箱即用的(我认为),并且肯定在 Cinnamon 上如此。无论如何,我编写了一个基本上可以做同样事情的脚本。

它不会自动工作,也就是说,仅将窗口拖到屏幕边缘不会激活它,但您可以为其分配快捷方式。例如,Ctrl+R可捕捉到右侧等。

脚本需要分散和,所有这些都应该很容易获得xdpyinfowmctrl并且位于 debian 存储库中(kali 使用)。如果将脚本另存为snap_windows.sh,则可以按如下方式使用它:

  • snap_windows.sh将最大化/取消最大化当前窗口。
  • snap_windows.sh l将当前窗口捕捉到屏幕左侧
  • snap_windows.sh r将当前窗口捕捉到屏幕的右侧

如果您使用两个屏幕,它将始终捕捉到右侧屏幕的左侧/右侧。它并不完美,自从我切换到 Cinnammon 以来我还没有用过它,所以如果您遇到问题请告诉我。

脚本如下:

#!/bin/bash

## If no side has been given, toggle maximizing the current window and exit
if [ ! $1 ]
then
    wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz
    exit
fi

## If a side has been given, continue
side=$1;
## How many screens are there?
screens=`disper -l | grep -c display`
## Get screen dimensions
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'`;
HALF=$(($WIDTH/2));

## If we are running on one screen, snap to edge of screen
if [ $screens == '1' ]
then
    ## Snap to the left hand side
    if [ $side == 'l' ]
    then
        ## wmctrl format: gravity,posx,posy,width,height
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1
    ## Snap to the right hand side
    else
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1 
    fi
## If we are running on two screens, snap to edge of right hand screen
## I use 1600 because I know it is the size of my laptop display
## and that it is not the same as that of my 2nd monitor.
else
    LAPTOP=1600; ## Change this as approrpiate for your setup.
    let "WIDTH-=LAPTOP";
    SCREEN=$LAPTOP;
    HALF=$(($WIDTH/2));
    if [ $side == 'l' ]
    then
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$LAPTOP,0,$HALF,-1
    else
    let "SCREEN += HALF+2";
        wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$SCREEN,0,$HALF,-1;
    fi
fi

相关内容