Use ALT para mover janelas no Windows como no Linux


14

Na maioria dos gerenciadores de janelas Linux, é possível usar a Alttecla enquanto clica e arrasta para reorganizar as janelas. Este é um dos meus recursos favoritos dos gerenciadores de janelas Linux.

Existe uma maneira de fazer isso no Windows 7?


"um dos meus recursos favoritos de alguns gerenciadores de janelas Linux". FTFY. E você pode querer citar um ou dois que fazê-lo para que as pessoas que não estão cientes do comportamento pode ir experimentá-lo ...
dmckee --- ex-moderador gatinho

Atualizar para o Windows 7 e você está tecla Windows vai fazer você feliz
Ivo Flipse

O AFAIK Gnome, KDE, Xfce e várias variantes * box suportam isso por padrão ou com configuração fácil.
Corey D


A duplicata deve ser o contrário.
precisa saber é o seguinte

Respostas:



1

Use este script de autohotkey :

  • funciona perfeitamente no windows 10
  • fácil de instalar
  • pode ser compilado em um aplicativo independente

fonte: 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

O script tem grandes problemas com duas telas usando escalas diferentes. Um uma única tela ou, provavelmente, duas telas com mesma escala que poderia funcionar perfeitamente, infelizmente, eu não tenho esse luxo :)
krizajb

O que você quer dizer com escala? Resolução? DPI? windows-font-scaling?
Ярослав Рахматуллин 02/09/19

Escala de resolução, por exemplo, com uma tela com escala de 250% e outra com escala de 175%.
krizajb 3/09/19

Há um problema ao usar o alt-tab. Você não pode selecionar um programa quando a janela alt-tab estiver visível clicando nele, que funciona sem o script. AltDrag mencionado em outra resposta faz as duas coisas juntos.
JaKu 16/09/19

1

Win-X-Move

Este programa facilita muito a manipulação de janelas (mover / redimensionar) no MS-Windows. Agora você pode mover e redimensionar arrastando a tecla Alt em qualquer ponto da janela com o botão esquerdo e direito do mouse, respectivamente, como é feito na maioria dos gerenciadores de janelas X11.

http://winxmove.sourceforge.net/

Com o aplicativo em execução, você pode mover as janelas simplesmente clicando com o botão esquerdo em qualquer lugar dentro delas enquanto mantém pressionada a tecla Alt no teclado. Para redimensionar janelas, mantenha pressionadas as teclas Alt e Ctrl enquanto clica com o botão direito do mouse em qualquer lugar da janela e move o ponteiro do mouse na direção em que deseja que a janela seja redimensionada.

Win-X-Move: Mover ou redimensionar o Windows de aplicativos clicando em qualquer lugar dentro deles


AltDrag

O AltDrag permite mover e redimensionar janelas de uma nova maneira. Depois de iniciar o AltDrag, você pode simplesmente manter pressionada a tecla Alt e clicar e arrastar qualquer janela.

Esse comportamento já existe no Linux e em outros sistemas operacionais, e o AltDrag foi criado com a missão de copiar esse comportamento para a plataforma Windows e depois expandi-lo com novas funcionalidades intuitivas.

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

É muito mais configurável e possui mais recursos do que o anterior: encaixe janelas, mude a transparência, mude o volume, suporte a vários monitores ...


Ambos os aplicativos acima são portáteis e só precisam fazer o download, extrair e executar


+1 para AltDrag.
JaKu 16/09/19

0

Uma versão aprimorada do script mencionado em outra resposta aqui está disponível como um aplicativo em pacote: KDE Mover-Sizer . Como é um script de Autohotkey, tenho minha própria versão altamente personalizada.


única de vínculo respostas não são boas , uma vez que vai tornar-se inválido quando o link apodrece
phuclv

Gosto de como meu link não apodreceu, mas a resposta de @Kelbizzle sim. : shrug:
forivall 20/02/19

Além disso, a fonte completa do software vinculado excede o limite de postagem: "O corpo é limitado a 30000 caracteres; você inseriu 91131". não pode ser incluído.
Forivall

mesmo que seja muito grande, você ainda deve publicar um resumo (e a parte principal de processamento, se possível). Como posso vincular a um recurso externo de uma maneira amigável à comunidade? , meta.stackexchange.com/a/143996/230282 . A partir de agora eu não tenho nenhuma ideia que "roteiro já mencionado" é
phuclv

você deve postar a parte principal de processamento do código-fonte dos aplicativos que você vinculou. As respostas somente para links não são boas, você sabe. além disso, você tem o representante para sugerir edições. você é um menino grande, você pode fazer o trabalho
forivall
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.