วิธีใช้ Window snapping สำหรับ Ubuntu [ซ้ำ]


14

ซ้ำเป็นไปได้:
วิธีเลียนแบบ winkey + arrow ทางลัดสูงสุดของ Windows 7 ได้อย่างไร

ฉันกำลังลอง Ubuntu และต้องการให้ windows ของฉันไปทางซ้ายและขวาเช่น Windows 7 เมื่อฉันใช้ปุ่มลัด Window Key + Arrow ฉันจะทำสิ่งนี้ได้อย่างไร


Ubuntu ใช้ Compiz เพื่อจัดเตรียมเอฟเฟกต์หน้าต่าง ฉันได้ดูแล้ว แต่ไม่เห็นปลั๊กอินอย่างเป็นทางการสำหรับ Compiz ที่จะให้เอฟเฟกต์ Win 7 ซึ่งน่าเสียดายเพราะมันเป็นคุณลักษณะของหน้าต่างที่ดี ฉันจะค้นหาต่อไปและโพสต์เป็นคำตอบถ้าฉันพบบางอย่าง

คำตอบ:


18

สิ่งนี้ง่ายต่อการเปิดใช้งานจาก CompizConfig Settings Manager (ติดตั้งถ้าคุณยังไม่ได้)

จากนั้นภายใต้การจัดการหน้าต่างให้เปิดใช้งานกริด ฉันได้เก็บค่าปริยายของ CTRL + ALT + NumPad ไว้แล้ว แต่คุณสามารถเปลี่ยน Super + Arrow ตามที่คุณต้องการได้อย่างง่ายดาย


สิ่งเดียวที่ฉันขาดหายไปจากการรวมการกระทำ เช่นย้ายหน้าต่างไปทางขวาและไปที่ด้านล่างผลลัพธ์ในหน้าต่างที่อยู่ในไตรมาสด้านล่างขวาของหน้าจอ (คล้ายกับพฤติกรรมของ windows)
kleinfreund

@kleinfreund หากคุณคลิกที่Gridปุ่มถัดจากช่องทำเครื่องหมายมีการตั้งค่ามากมายที่คุณสามารถเปลี่ยนได้ Corners / Edgesแท็บช่วยให้คุณสามารถตั้งค่าการเชื่อมต่อมุม
swref

สิ่งนี้ใช้ไม่ได้กับ Pop OS 18.10 ทางลัดหลักพวกเขาไม่ทำอะไรเลย
Zach Bloomquist

4

ไปที่นี่สำหรับคำแนะนำแบบเต็มรูปแบบในรูปแบบที่มนุษย์อ่านได้จาก Mike's Ubuntu (ขอบคุณ Mike) และนี่คือโพสต์ฟอรัม Ubuntu ดั้งเดิม (ขอบคุณ gotsanity) ฉันได้ตรวจสอบสิ่งนี้ในระบบของฉันแล้วจึงควรใช้งานได้สำหรับคุณ ฉันได้เพิ่มและแก้ไขเล็กน้อยเพื่อให้เข้าใจง่ายขึ้นเล็กน้อย

การเปลี่ยนแปลงเพียงอย่างเดียวที่ฉันทำกับเส้นทางของเขาคือคุณตรวจสอบก่อนเพื่อดูว่าคุณติดตั้ง compiz หรือไม่ (วิธีที่ง่ายที่สุดคือการใช้โปรแกรมจัดการซอฟต์แวร์และวาง "compiz" ในหน้าต่างค้นหา

ถ้าคุณทำแล้วพิมพ์ต่อไปนี้ใน terminal: -

sudo apt-get install compizconfig-settings-manager wmctrl

มิฉะนั้นตัวจัดการการตั้งค่า compiz จะไม่ปรากฏในระบบของคุณ

เปิดเทอร์มินัลแล้วพิมพ์:

xinput list

มันจะแสดงรายการ ค้นหาหมายเลขรหัสของคุณสำหรับเมาส์ของคุณ คุณจะต้องใช้หมายเลขนี้ในขั้นตอนถัดไป Mine คือ 10 คุณจะมีความแตกต่างอย่างมาก
คำสั่งถัดไปเหล่านี้สร้างโฟลเดอร์ที่ซ่อนใหม่ในโฟลเดอร์โฮมของคุณเพื่อเก็บสคริปต์ที่จำเป็นและย้ายคุณเข้าสู่โฟลเดอร์

mkdir .scripts

cd .scripts

จากนั้นพิมพ์

gedit compizsnap-left.sh    

เครื่องมือแก้ไขข้อความจะปรากฏขึ้น วางสิ่งนี้ลงในแล้วเปลี่ยนรหัสเมาส์ของคุณจาก 11 เป็นตัวเลขจากผลลัพธ์ของคำสั่ง "รายการ xinput" เมื่อคุณทำสิ่งนี้แล้วให้บันทึกไฟล์

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2-10))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -le 10 ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-10

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

จากนั้นทำเช่นเดียวกันสำหรับอีกสองสคริปต์ (ไม่ลืมเปลี่ยนรหัสเม้าส์)

compizsnap-right.sh

รหัส:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2))

echo $WIDTH
TEMPWIDTH=$(($WIDTH-10))
echo $TEMPWIDTH
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done

    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -ge $TEMPWIDTH ]
    then

        wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

และ

compizsnap-max.sh

รหัส:

#!/bin/sh
#
# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
# This script adds window snapping functionality to compiz using the commands plugin.
#
# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
#

MOUSE="11"

# ----- Don't edit below this line unless you know what you are doing.
if /usr/bin/X11/xinput --query-state $MOUSE | grep down
then
    while (/usr/bin/X11/xinput --query-state $MOUSE | grep down)
    do
        echo 'button pressed'
    done
    if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[1\]=." | sed s/"valuator\[1\]="//)" -le 10 ]
    then

        wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz

    else
        echo "exiting without matching"
        exit 1
    fi
else
        echo "exiting because button isnt "
        exit 1
fi    

(คุณจำเปลี่ยนรหัสเมาส์ได้หรือไม่)

ตอนนี้เราต้องบอกคอมพิวเตอว่าจะทำอย่างไรเมื่อเมาส์เลื่อนไปทางขวาบนและด้านซ้ายของหน้าจอ

เรียกใช้ระบบ> การตั้งค่า> ตัวจัดการการตั้งค่า CompizConfig ไปที่ส่วนคำสั่ง ตั้งค่าต่อไปนี้:
ในฟิลด์คำสั่ง 0:

sh ~/.scripts/compizsnap-left.sh

ในฟิลด์คำสั่ง 1:

sh ~/.scripts/compizsnap-right.sh

ในฟิลด์คำสั่ง 2:

sh ~/.scripts/compizsnap-max.sh

สุดท้ายให้ไปที่แถบผูกขอบแล้วตั้งคำสั่ง 0 ไปทางซ้ายตั้งคำสั่ง 1 ไปทางขวาแล้วตั้งค่าคำสั่ง 2 ไปด้านบน

NB Compiz อาจบ่นว่ามีฟังก์ชั่นที่ตั้งค่าไว้ที่การผูกขอบแล้วคุณต้องการใช้ - แทนที่พวกเขาด้วยของคุณ


มันใช้งานได้ดีและมีเคล็ดลับเกี่ยวกับวิธีทำให้มันใช้งานได้กับจอภาพสองจอในการกำหนดค่า TwinView หรือไม่
Nathan Schwermann

2

หนึ่งในความแตกต่างระหว่างตัวจัดการหน้าต่าง Unix ส่วนใหญ่และ Windows คือตัวจัดการหน้าต่าง Unix ส่วนใหญ่มีความต้านทานต่อการเคลื่อนไหวของหน้าต่างที่ขอบของหน้าจอ ดังนั้นคุณไม่จำเป็นต้องมีคำสั่งพิเศษใด ๆ เพื่อย้ายหน้าต่างไปทางขอบซ้ายหรือขวาของหน้าจอ เพียงแค่ลากไปทางขอบและมันจะหยุดเมื่อมันไปถึงที่นั่น ฉันไม่รู้จัก Gnome (ตัวจัดการหน้าต่าง Ubuntu มาตรฐานตอนนี้) แป้นพิมพ์ลัดที่ย้ายหน้าต่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.