Gunakan ALT untuk memindahkan windows di Windows seperti di Linux


14

Di sebagian besar pengelola jendela Linux, seseorang dapat menggunakan Altkunci sambil mengeklik dan menarik untuk mengatur ulang jendela. Ini adalah salah satu fitur favorit saya dari manajer jendela Linux.

Apakah ada cara untuk melakukan ini di Windows 7?


"salah satu fitur favorit saya dari beberapa manajer jendela Linux". FTFY. Dan Anda mungkin ingin menyebutkan satu atau dua yang melakukannya sehingga orang yang tidak mengetahui perilaku tersebut dapat mencobanya ...
dmckee --- ex-moderator kitten

Tingkatkan ke Windows 7 dan Anda adalah kunci Windows yang akan membuat Anda bahagia
Ivo Flipse

AFAIK Gnome, KDE, Xfce, dan beberapa varian * kotak mendukung ini baik secara default atau dengan konfigurasi yang mudah.
Corey D


Duplikat harus sebaliknya.
fixer1234

Jawaban:



1

Gunakan skrip autohotkey ini :

  • bekerja dengan SEMPURNA di windows 10
  • mudah dipasang
  • dapat dikompilasi menjadi aplikasi mandiri

sumber: https://autohotkey.com/docs/scripts/EasyWindowDrag_(KDE).htm

; Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jonny
; http://www.autohotkey.com
; This script makes it much easier to move or resize a window: 1) Hold down
; the ALT key and LEFT-click anywhere inside a window to drag it to a new
; location; 2) Hold down ALT and RIGHT-click-drag anywhere inside a window
; to easily resize it; 3) Press ALT twice, but before releasing it the second
; time, left-click to minimize the window under the mouse cursor, right-click
; to maximize it, or middle-click to close it.

; This script was inspired by and built on many like it
; in the forum. Thanks go out to ck, thinkstorm, Chris,
; and aurelian for a job well done.

; Change history:
; November 07, 2006: Optimized resizing code in !RButton, courtesy of bluedawn.
; February 05, 2006: Fixed double-alt (the ~Alt hotkey) to work with latest versions of AHK.

; The Double-Alt modifier is activated by pressing
; Alt twice, much like a double-click. Hold the second
; press down until you click.
;
; The shortcuts:
;  Alt + Left Button  : Drag to move a window.
;  Alt + Right Button : Drag to resize a window.
;  Double-Alt + Left Button   : Minimize a window.
;  Double-Alt + Right Button  : Maximize/Restore a window.
;  Double-Alt + Middle Button : Close a window.
;
; You can optionally release Alt after the first
; click rather than holding it down the whole time.

If (A_AhkVersion < "1.0.39.00")
{
    MsgBox,20,,This script may not work properly with your version of AutoHotkey. Continue?
    IfMsgBox,No
    ExitApp
}


; This is the setting that runs smoothest on my
; system. Depending on your video card and cpu
; power, you may want to raise or lower this value.
SetWinDelay,2

CoordMode,Mouse
return

!LButton::
If DoubleAlt
{
    MouseGetPos,,,KDE_id
    ; This message is mostly equivalent to WinMinimize,
    ; but it avoids a bug with PSPad.
    PostMessage,0x112,0xf020,,,ahk_id %KDE_id%
    DoubleAlt := false
    return
}
; Get the initial mouse position and window id, and
; abort if the window is maximized.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
    return
; Get the initial window position.
WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id%
Loop
{
    GetKeyState,KDE_Button,LButton,P ; Break if button has been released.
    If KDE_Button = U
        break
    MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position.
    KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position.
    KDE_Y2 -= KDE_Y1
    KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; Apply this offset to the window position.
    KDE_WinY2 := (KDE_WinY1 + KDE_Y2)
    WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2% ; Move the window to the new position.
}
return

!RButton::
If DoubleAlt
{
    MouseGetPos,,,KDE_id
    ; Toggle between maximized and restored state.
    WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
    If KDE_Win
        WinRestore,ahk_id %KDE_id%
    Else
        WinMaximize,ahk_id %KDE_id%
    DoubleAlt := false
    return
}
; Get the initial mouse position and window id, and
; abort if the window is maximized.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
    return
; Get the initial window position and size.
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
; Define the window region the mouse is currently in.
; The four regions are Up and Left, Up and Right, Down and Left, Down and Right.
If (KDE_X1 < KDE_WinX1 + KDE_WinW / 2)
    KDE_WinLeft := 1
Else
    KDE_WinLeft := -1
If (KDE_Y1 < KDE_WinY1 + KDE_WinH / 2)
    KDE_WinUp := 1
Else
    KDE_WinUp := -1
Loop
{
    GetKeyState,KDE_Button,RButton,P ; Break if button has been released.
    If KDE_Button = U
        break
    MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position.
    ; Get the current window position and size.
    WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
    KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position.
    KDE_Y2 -= KDE_Y1
    ; Then, act according to the defined region.
    WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2  ; X of resized window
                            , KDE_WinY1 +   (KDE_WinUp+1)/2*KDE_Y2  ; Y of resized window
                            , KDE_WinW  -     KDE_WinLeft  *KDE_X2  ; W of resized window
                            , KDE_WinH  -       KDE_WinUp  *KDE_Y2  ; H of resized window
    KDE_X1 := (KDE_X2 + KDE_X1) ; Reset the initial position for the next iteration.
    KDE_Y1 := (KDE_Y2 + KDE_Y1)
}
return

; "Alt + MButton" may be simpler, but I
; like an extra measure of security for
; an operation like this.
!MButton::
If DoubleAlt
{
    MouseGetPos,,,KDE_id
    WinClose,ahk_id %KDE_id%
    DoubleAlt := false
    return
}
return

; This detects "double-clicks" of the alt key.
~Alt::
DoubleAlt := A_PriorHotkey = "~Alt" AND A_TimeSincePriorHotkey < 400
Sleep 0
KeyWait Alt  ; This prevents the keyboard's auto-repeat feature from interfering.
return

Script memiliki masalah besar dengan dua layar menggunakan skala yang berbeda. Satu layar tunggal atau mungkin dua layar dengan skala yang sama mungkin berfungsi dengan sempurna, sayangnya saya tidak memiliki kemewahan itu :)
krizajb

Apa yang Anda maksud dengan skala? Resolusi? DPI? windows-font-scaling?
Ярослав Рахматуллин

Skala resolusi, misalnya memiliki satu layar dengan skala 250% dan yang lain dengan skala 175%.
krizajb

Ini memiliki masalah saat menggunakan alt-tab. Anda tidak dapat memilih program ketika jendela alt-tab terlihat dengan mengkliknya, yang berfungsi tanpa skrip. AltDrag yang disebutkan dalam jawaban lain melakukan keduanya bersamaan.
JaKu

1

Win-X-Move

Program ini membuat manipulasi jendela (pemindahan / pengubahan ukuran) di bawah MS-Windows, jauh lebih mudah. Anda sekarang dapat bergerak dan mengubah ukuran dengan menyeret alt pada setiap titik jendela dengan tombol mouse kiri dan kanan masing-masing, seperti yang dilakukan pada sebagian besar manajer jendela X11.

http://winxmove.sourceforge.net/

Dengan aplikasi berjalan, Anda dapat memindahkan windows hanya dengan mengklik kiri di mana saja di dalamnya sambil menahan tombol Alt di keyboard Anda. Untuk mengubah ukuran windows, Anda tahan tombol Alt dan Ctrl sambil mengklik kanan di mana saja di jendela dan memindahkan pointer mouse ke arah yang Anda inginkan untuk mengubah ukuran jendela.

Win-X-Move: Memindahkan Atau Mengubah Ukuran Aplikasi Windows Dengan Mengklik Di Mana Saja Di Dalam Mereka


AltDrag

AltDrag memberi Anda kemampuan untuk memindahkan dan mengubah ukuran windows dengan cara baru. Setelah memulai AltDrag, Anda cukup tahan tombol Alt lalu klik dan seret jendela mana pun.

Perilaku ini sudah ada di Linux dan sistem operasi lain, dan AltDrag dibuat dengan misi untuk menyalin perilaku itu ke platform Windows, dan kemudian memperluasnya dengan fungsionalitas intuitif baru.

https://stefansundin.github.io/altdrag/

Ini jauh lebih dapat dikonfigurasi dan memiliki lebih banyak fitur daripada yang sebelumnya: snap windows, ubah transparansi, ubah volume, dukungan multi-monitor ...


Kedua aplikasi di atas bersifat portabel dan hanya perlu mengunduh, mengekstrak, kemudian jalankan


+1 untuk AltDrag.
JaKu

0

Versi skrip yang disempurnakan yang disebutkan dalam jawaban lain di sini tersedia sebagai aplikasi terpaket: KDE Mover-Sizer . Karena ini adalah skrip Autohotkey, saya memiliki versi saya sendiri yang sangat disesuaikan.


hanya tautan jawaban yang tidak baik , karena mereka akan menjadi tidak valid ketika tautan membusuk
phuclv

Saya suka bagaimana tautan saya belum membusuk, tetapi jawaban dari @Kelbizzle sudah. :
shrug

Selanjutnya, sumber lengkap dari perangkat lunak yang ditautkan melebihi batas posting: "Badan dibatasi hingga 30000 karakter; Anda memasukkan 91131." itu tidak bisa dimasukkan.
forivall

bahkan jika terlalu besar Anda harus tetap memposting ringkasan (dan bagian pemrosesan utama jika memungkinkan). Bagaimana saya bisa menautkan ke sumber daya eksternal dengan cara yang ramah komunitas? , meta.stackexchange.com/a/143996/230282 . Sampai sekarang saya tidak tahu yang mana "naskah tersebut"
phuclv

Anda harus memposting bagian pemrosesan utama dari kode sumber aplikasi yang Anda tautkan. jawaban hanya tautan tidak bagus, Anda tahu. selain itu, Anda memiliki perwakilan untuk menyarankan pengeditan. Anda anak besar, Anda dapat melakukan pekerjaan
forivall
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.