Linux에서와 같이 Windows에서 ALT를 사용하여 창을 이동


14

대부분의 Linux 창 관리자에서 Alt키를 사용하여 클릭하고 끌어서 창을 다시 정렬 할 수 있습니다. 이것은 Linux 창 관리자가 가장 좋아하는 기능 중 하나입니다.

Windows 7에서 이것을 수행하는 방법이 있습니까?


" 일부 Linux 창 관리자에서 가장 좋아하는 기능 중 하나 ". FTFY. 그리고 당신은 하나 그것을 밖으로 시도 갈 수있는 행동을 인식하지 못하는 사람, 그래서 그것을 두 ... 이름을 할 수 있습니다
dmckee을 --- 전 사회자 고양이

Windows 7로 업그레이드하면 Windows 키가 행복해집니다
Ivo Flipse

AFAIK Gnome, KDE, Xfce 및 여러 * box 변형은 기본적으로 또는 쉬운 구성으로이를 지원합니다.
Corey D


복제본은 다른 방법으로 사용해야합니다.
fixer1234

답변:



1

자동 단축 키 스크립트를 사용하십시오 .

  • Windows 10에서 완벽하게 작동
  • 설치가 용이
  • 독립형 앱으로 컴파일 가능

출처 : 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

스크립트는 다른 스케일을 사용하는 두 개의 화면에서 큰 문제가 있습니다. 하나 하나의 화면 또는 같은 규모 아마 두 개의 화면이 불행하게도 나는 그 고급 :)이없는, 완벽하게 작동 할 수 있습니다
krizajb

규모 란 무엇입니까? 해결? DPI? 윈도우 폰트 스케일링?
Ярослав Рахматуллин

예를 들어 한 화면은 250 % 배율이고 다른 화면은 175 % 배율입니다.
krizajb

alt-tab을 사용할 때 문제가 있습니다. 스크립트없이 작동하는 alt-tab 창이 표시되어 있으면 프로그램을 선택할 수 없습니다. 다른 답변에서 언급 한 AltDrag는 모두 함께 수행됩니다.
JaKu

1

윈 엑스 이동

이 프로그램은 MS-Windows에서 창 조작 (이동 / 크기 조정)을 훨씬 쉽게 해줍니다. 이제 대부분의 X11 창 관리자에서 수행되는 것처럼 왼쪽 및 오른쪽 마우스 버튼으로 각각 창의 임의 지점을 드래그하여 이동 및 크기를 조정할 수 있습니다.

http://winxmove.sourceforge.net/

앱을 실행 한 상태에서 키보드의 Alt 키를 누른 상태에서 아무 곳이나 마우스 왼쪽 버튼으로 클릭하면 창을 이동할 수 있습니다. 창의 크기를 조정하려면 Alt 및 Ctrl 키를 누른 상태에서 창의 아무 곳이나 마우스 오른쪽 단추로 클릭하고 창의 크기를 조정할 방향으로 마우스 포인터를 이동하십시오.

Win-X-Move : 응용 프로그램 내에서 아무 곳이나 클릭하여 앱 창 이동 또는 크기 조정


AltDrag

AltDrag는 새로운 방식으로 창을 이동하고 크기를 조정할 수있는 기능을 제공합니다. AltDrag를 시작한 후에 Alt 키를 누른 상태에서 아무 창이나 클릭하고 드래그하면됩니다.

이 동작은 Linux 및 기타 운영 체제에 이미 존재하며 AltDrag는 해당 동작을 Windows 플랫폼으로 복사 한 다음 새로운 직관적 기능으로 추가 확장하는 임무를 수행했습니다.

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

그것은 훨씬 더 구성 가능하며 이전 창보다 많은 기능을 가지고 있습니다 : 스냅 창, 투명도 변경, 볼륨 변경, 다중 모니터 지원 ...


위의 두 응용 프로그램은 모두 이식 가능하며 다운로드, 추출 및 실행이 필요합니다.


AltDrag의 경우 +1
JaKu

0

다른 답변에서 언급 된 개선 된 스크립트 버전은 패키지 응용 프로그램으로 사용할 수 있습니다 : KDE Mover-Sizer . Autohotkey 스크립트이기 때문에, 나는 나름대로 커스터마이징 된 버전을 가지고 있습니다.


링크 전용 답변은 링크가 썩을 때 유효하지 않기 때문에 좋지 않습니다
phuclv

링크가 썩지 않은 방법이 마음에 들지만 @Kelbizzle의 답변이 있습니다. :
shrug

또한 연결된 소프트웨어의 전체 소스가 게시 제한을 초과합니다. "본문은 30000 자로 제한되어 있습니다. 91131을 입력했습니다." 포함 할 수 없습니다.
forivall '20

너무 큰 경우에도 여전히 요약 (및 가능한 경우 주요 처리 부분)을 게시해야합니다. 커뮤니티 친화적 인 방식으로 외부 리소스에 연결하려면 어떻게해야합니까? , meta.stackexchange.com/a/143996/230282 . 현재로서는 "앞서 언급 한 대본"이 무엇인지
전혀 모릅니다.

링크 한 응용 프로그램 소스 코드의 주요 처리 부분을 게시해야합니다. 링크 전용 답변은 좋지 않습니다. 게다가, 당신은 편집을 제안하는 담당자가 있습니다. 당신은 큰 소년입니다, 당신은 일을 할 수 있습니다
forivall
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.