Użyj ALT, aby przenosić okna w systemie Windows, tak jak w systemie Linux


14

W większości menedżerów okien systemu Linux można użyć Altklawisza podczas klikania i przeciągania, aby zmienić kolejność okien. To jedna z moich ulubionych funkcji menedżerów okien Linuksa.

Czy jest na to sposób w Windows 7?


„jedna z moich ulubionych funkcji niektórych menedżerów okien Linuksa”. FTFY. I możesz wymienić jednego lub dwóch, które to robią, aby ludzie, którzy nie są świadomi tego zachowania, mogli go wypróbować ...
dmckee --- były moderator kotek

Uaktualnij do systemu Windows 7, a będziesz kluczem do systemu Windows, dzięki czemu będziesz szczęśliwy
Ivo Flipse

AFAIK Gnome, KDE, Xfce i kilka * * wariantów skrzynek obsługują to domyślnie lub przy łatwej konfiguracji.
Corey D


Duplikat powinien być odwrotnie.
fixer1234

Odpowiedzi:



1

Użyj tego skryptu autohotkey :

  • działa IDEALNIE na Windows 10
  • łatwe do zainstalowania
  • można skompilować w samodzielną aplikację

źródło: 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

Skrypt ma ogromne problemy z dwoma ekranami używającymi innej skali. Jeden ekran lub prawdopodobnie dwa ekrany o tej samej skali może działać idealnie, niestety nie mam tego luksusu :)
krizajb

Co rozumiesz przez skalę? Rozkład? DPI? skalowanie czcionek w systemie Windows?
Ярослав Рахматуллин

Skala rozdzielczości, na przykład jeden ekran ze skalą 250%, a drugi ze skalą 175%.
krizajb

Występuje problem podczas korzystania z klawisza Alt. Nie można wybrać programu, gdy okno Alt-Tab jest widoczne, klikając go, co działa bez skryptu. AltDrag wspomniany w innej odpowiedzi robi oba razem.
JaKu,

1

Win-X-Move

Ten program znacznie ułatwia manipulowanie oknami (przenoszenie / zmiana rozmiaru) w MS-Windows. Możesz teraz przesuwać i zmieniać rozmiar, przeciągając Alt w dowolnym punkcie okna, odpowiednio lewym i prawym przyciskiem myszy, tak jak dzieje się to w większości menedżerów okien X11.

http://winxmove.sourceforge.net/

Przy uruchomionej aplikacji możesz przenosić okna, klikając lewym przyciskiem myszy dowolne miejsce w nich, przytrzymując klawisz Alt na klawiaturze. Aby zmienić rozmiar okna, przytrzymaj klawisz Alt i Ctrl, klikając prawym przyciskiem myszy dowolne miejsce w oknie i przesuwając wskaźnik myszy w kierunku, w którym chcesz zmienić rozmiar okna.

Win-X-Move: Przenieś lub zmień rozmiar aplikacji Windows, klikając w dowolnym miejscu w nich


AltDrag

AltDrag daje możliwość przenoszenia i zmiany rozmiaru okien w nowy sposób. Po uruchomieniu AltDrag możesz po prostu przytrzymać klawisz Alt, a następnie kliknąć i przeciągnąć dowolne okno.

Takie zachowanie istnieje już w systemie Linux i innych systemach operacyjnych, a AltDrag został utworzony z myślą o skopiowaniu tego zachowania na platformę Windows, a następnie dalszym rozszerzeniu go o nową intuicyjną funkcjonalność.

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

Jest o wiele bardziej konfigurowalny i ma więcej funkcji niż poprzednie: przyciąganie okien, zmiana przezroczystości, zmiana głośności, obsługa wielu monitorów ...


Obie powyższe aplikacje są przenośne i wystarczy pobrać, rozpakować, a następnie uruchomić


+1 dla AltDrag.
JaKu,

0

Ulepszona wersja skryptu wymieniona w innej odpowiedzi tutaj jest dostępna jako aplikacja w pakiecie: KDE Mover-Sizer . Ponieważ jest to skrypt Autohotkey, mam własną mocno dostosowaną wersję.


odpowiedzi tylko na link nie są dobre , ponieważ staną się one nieprawidłowe, gdy link
zgnije

Podoba mi się, że mój link nie zgnił, ale odpowiedź @Kelbizzle ma. : wzruszenie ramion:
forivall

Ponadto pełne źródło połączonego oprogramowania przekracza limit wpisów: „Treść jest ograniczona do 30000 znaków; wpisano 91131”. nie można go włączyć.
forivall

nawet jeśli jest zbyt duży, powinieneś opublikować podsumowanie (i główną część przetwarzania, jeśli to możliwe). Jak mogę połączyć się z zasobem zewnętrznym w sposób przyjazny dla społeczności? , meta.stackexchange.com/a/143996/230282 . Na razie nie mam pojęcia, który to „wspomniany skrypt”
phuclv

powinieneś opublikować główną część kodu źródłowego połączonych aplikacji. Wiesz, odpowiedzi tylko na link nie są dobre. poza tym masz przedstawiciela, który sugeruje zmiany. jesteś dużym chłopcem, możesz wykonać robotę
najpierw
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.