Domanda

Mi può consigliare un Window Manager per Mac? Mi piacerebbe avere una scorciatoia da tastiera che scattare una finestra per la metà sinistra o destra del mio schermo.

È stato utile?

Soluzione 3

Dopo aver testato SizeUp e Breeze, ho deciso che Breeze si adatta alle mie esigenze al meglio. Entrambi consentono di finestre di posizione a sinistra, a destra o a tutto schermo. La caratteristica che lo ha venduto per me stava tramontando una dimensione predefinita e la posizione per un'applicazione e l'assegnazione di un tasto di scelta rapida.

Altri suggerimenti

SizeUp è esattamente quello che vi serve:

SizeUp consente di posizionare rapidamente una finestra per riempire esattamente la metà dello schermo (split screen), un quarto dello schermo (quadrante), a schermo intero, o al centro tramite la barra dei menu o scorciatoie a livello di sistema configurabile (hotkeys). Simile a "finestre in cotto" funzionalità disponibili su altri sistemi operativi.

Divvy

Divvy è un'applicazione po barra dei menu che consente di ridimensionare automaticamente qualsiasi finestra attiva. Divviy virtualmente divide lo schermo in una griglia 6x6. Quando viene richiamato, Divvy porta in primo piano un po ' HUD al centro dello schermo con questa griglia 6x6. A seconda di quale parte dello schermo che si desidera ridimensionare la tua finestra attiva, è sufficiente trascinare e selezionare quelle piazze sul HUD e la finestra fa il resto. È quello semplice.

ShiftIt (versione originale al link interrotto) fa questo, ed è libero e open source .

Modifica: Il progetto è ora in GitHub , tuttavia l'ultima release è stata nel novembre 2010

Moom

Ho sentito alcune persone parlare questo uno troppo:

Non si spende un sacco di tempo in movimento e lo zoom finestre, in modo da poter vedere meglio e lavorare con tutti i contenuti sul vostro Mac? Invece di fare questo lavoro da soli, lasciare che Moom gestire l'attività per voi.

Se si dispone di un mouse o il trackpad magia magia, BetterTouchTool è meglio come è possibile impostare i gesti specifici per la gestione le finestre. Come un colpo di sinistra quattro dito può essere quello di ridimensionare la finestra a sinistra il 50% dello schermo.

Moom è grande. È possibile scattare finestre: a schermo intero, la metà dello schermo, schermo trimestre. È inoltre possibile ridimensionare con una griglia. Supporta scorciatoie da tastiera personalizzate, anche.

Moom screenshot

Io personalmente uso SizeUp e Divvy su base giornaliera. Se avessi saputo ShiftIt in precedenza, io probabilmente non avrei pagato per SizeUp. Un altro per verificare che non è stato ancora menzionato è BetterTouchTool , che ha un sacco di altre caratteristiche, ma nascosta nelle opzioni avanzate è una bella caratteristica che chiamano "finestra Aggancio" che scatta la finestra a sinistra oa destra dello schermo quando si trascina di lato. Non ha funzionalità scorciatoia da tastiera inclusa, ma è un bel supplemento al SizeUp e Divvy.

Ho trovato qui da un fuori tema domanda su Stack Overflow :

Ci sono state due mangiatoie Open Source menzionati lì che non ha mostrato su questa lista:

Un altro da App Store

Si può anche provare a Slate che è libero e open source.

Si potrebbe anche voler leggere questo articolo su di esso.

Ecco un AppleScript che tegola volontà tutte le finestre aperte nel applicazione in primo piano. Aggiungere al ~/Library/Scripts e chiamata dal menu di Applescript nella barra dei menu. Aggiungere sale a piacere (e gratuito).

--tile windows of frontmost applications in a grid
--this script is useful for
--multiple window chatting
--working side by side of several windows of the same app

--make need to make it as a stay open application later
--for now assume that it is opened and closed per invokation

property horizontalSpacing : 10 -- sets the horizontal spacing between windows
property verticalSpacing : 10 -- sets the vertical spacing between windows
property maxRows : 2
property maxCols : 2

on run {}
    local a
    set userscreen to my getUserScreen()

    --display dialog (getFrntApp() as string)
    try
        set applist to getFrntApp()
        if length of applist = 0 then
            return
        end if
        set a to item 1 of getFrntApp()
    on error the error_message number the error_number
        display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
    end try

    try
        tileScriptable(a, userscreen)
    on error the error_message number the error_number
        --display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
        try
            tileUnscriptable(a, userscreen)
        on error the error_message number the error_number
            display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
        end try
    end try

end run

on tileScriptable(a, screen)
    local i, c
    set i to 1
    tell application named a
        set theWindows to every window of application a whose visible is true and floating is false and ¬
            modal is false -- and miniaturized is false
        set c to count theWindows
        if c = 0 then
            return
        end if
        set tiles to calTileBounds(c, screen, 1)
        repeat with theWindow in theWindows
            my tileScriptableWindow(a, theWindow, item i of tiles)
            set i to i + 1
        end repeat
    end tell
end tileScriptable

on tileUnscriptable(a, screeninfo)
    -- unscriptable app
    local i, c
    set i to 1
    tell application "System Events"
        set theWindows to (every window of application process a)
        --set theWindows to my filterUnscriptableInvisible(theWindows)

        set c to count theWindows

        if c = 0 then
            return
        end if

        --display dialog screeninfo as string giving up after 5
        set tiles to my calTileBounds(c, screeninfo, 1)
        repeat with theWindow in theWindows
            --display dialog (class of visible of theWindow)
            my tileUnScriptableWindow(a, theWindow, item i of tiles)
            set i to i + 1
        end repeat

    end tell
end tileUnscriptable

on filterUnscriptableInvisible(ws)
    -- filter out from ws windows that are docked    
    set newws to {}
    set docklist to getNamesDocked()
    --display dialog (docklist as string)
    repeat with theWindow in ws
        if name of theWindow is not in docklist then
            set end of newws to theWindow
        end if
    end repeat

    --display dialog (count newws)
    return newws
end filterUnscriptableInvisible

on getNamesDocked()
    tell application "System Events" to tell process "Dock"'s list 1
        set l to name of UI elements whose subrole is "AXMinimizedWindowDockItem"
    end tell

    return l
end getNamesDocked

on tileScriptableWindow(a, w, bound)
    tell application a
        set bounds of w to bound
    end tell
end tileScriptableWindow

on tileUnScriptableWindow(a, w, bound)
    tell application "System Events"
        --display dialog (count position of w)
        set AppleScript's text item delimiters to " "

        set position of w to {(item 1 of bound), (item 2 of bound)}

        -- why the -5?
        set size of w to {(item 3 of bound) - (item 1 of bound) - 5, ¬
            (item 4 of bound) - (item 2 of bound) - 5}
        --display dialog (count properties of w)
    end tell
end tileUnScriptableWindow

on calTileBounds(nWindows, screen, direction)
    -- return a list of lists of window bounds
    -- a simple tile algo that tiles along direction (current only 1=horizontal)

    local nrows, nColumns, irow, icolumn, nSpacingWidth, nSpacingHeight, nWindowWidth, nWindowHeight
    set {x0, y0, availScreenWidth, availScreenHeight} to screen
    set ret to {}

    set nrows to (nWindows div maxCols)
    if (nWindows mod maxCols) ≠ 0 then
        set nrows to nrows + 1
    end if

    if nrows < maxRows then
        set nSpacingHeight to (nrows - 1) * verticalSpacing
        set nWindowHeight to (availScreenHeight - nSpacingHeight) / nrows
    else
        set nSpacingHeight to (maxRows - 1) * verticalSpacing
        set nWindowHeight to (availScreenHeight - nSpacingHeight) / maxRows
    end if

    repeat with irow from 0 to nrows - 1
        if nrows ≤ maxRows and irow = nrows - 1 then
            set nColumns to nWindows - irow * maxCols
        else
            set nColumns to maxCols
        end if
        set nSpacingWidth to (nColumns - 1) * horizontalSpacing
        set nWindowWidth to (availScreenWidth - nSpacingWidth) / nColumns
        set nTop to y0 + (irow mod maxRows) * (verticalSpacing + nWindowHeight)
        --display dialog "Top: " & nTop buttons {"OK"} default button 1
        repeat with icolumn from 0 to nColumns - 1
            set nLeft to x0 + (icolumn) * (horizontalSpacing + nWindowWidth)
            set itile to {¬
                nLeft, ¬
                nTop, ¬
                nLeft + nWindowWidth, ¬
                nTop + nWindowHeight}
            set end of ret to itile
            --display dialog item 3 of itile as string
            --set itile to {x0 + (icolumn - 1) * wgrid, y0, wgrid, hgrid}
            --set item 3 of itile to ((item 1 of itile) + (item 3 of itile))
            --set item 4 of itile to ((item 2 of itile) + (item 4 of itile))
        end repeat
    end repeat

    return ret
end calTileBounds



on getFrntApp()
    tell application "System Events" to set frntProc to ¬
        name of every process whose frontmost is true and visible ≠ false
    return frntProc
end getFrntApp

on getUserScreen()
    -- size of the menubar
    tell application "System Events"
        set {menuBarWidth, menuBarHeight} to size of UI element 1 of application process "SystemUIServer"
        --display dialog "Menubar width: " & menubarWidth & ", height: " & menubarHeight
        set dockApp to (application process "Dock")
        set {dockWidth, dockHeight} to size of UI element 1 of dockApp
        --display dialog "Dock width: " & dockWidth & ", height: " & dockHeight
        set dockPos to position of UI element 1 of dockApp
        --display dialog "Dock x: " & (item 1 of dockPos) & ", y: " & (item 2 of dockPos)
    end tell

    -- size of the full screen
    (*
   {word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") as number, ¬
       word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") as number}
   *)
    tell application "Finder"
        set screenSize to bounds of window of desktop
        set screenWidth to item 3 of screenSize
        set screenHeight to item 4 of screenSize
    end tell
    --display dialog "Screen width: " & screenWidth & ", height: " & screenHeight

    -- by default, set the available screen size to the full screen size
    set availableWidth to screenWidth
    set availableHeight to screenHeight - menuBarHeight
    set availableX to 0
    set availableY to menuBarHeight

    --determine the userscreen origin and size

    -- case 0: hidden dock
    -- if (item 1 of dockPos < 0 or item 1 of dockPos ≥ screenHeight) then
    -- no need to change anything
    -- end if

    -- case 1: bottom dock
    if ((item 2 of dockPos) + dockHeight = screenHeight) then
        set availableHeight to availableHeight - dockHeight
    end if

    -- case 2: left dock
    if (item 1 of dockPos = 0) then
        set availableWidth to availableWidth - dockWidth
        set availableX to dockWidth
    end if

    -- case 3: right dock
    if ((item 1 of dockPos) + dockWidth = screenWidth) then
        set availableWidth to availableWidth - dockWidth
    end if

    return {availableX, availableY, availableWidth, availableHeight}
end getUserScreen

Fonte: MacScripter tramite Google

Da quello che ho visto e sentito, Cinch è una grande applicazione per portare la gestione delle finestre Windows 7 a Mac OS X.

Prima di tutto, se libero è importante per voi, get ShiftIt.

Se la convenienza da un mouse è importante per voi, ottenere Cinch. E 'nel Mac App Store.

Infine, se si dispone di un MacBook o un Magic Trackpad, ottenere JiTouch. Essa vi permetterà di assegnare un gesto per molte, molte cose; uno dei quali è a schermo intero, la metà sinistra, la metà a destra. Scherzi a controllarlo fuori se vi piace gesti anche un po '. E 'come avere un mouse con 100 tasti. JiTouch

MercuryMover

Si potrebbe anche guardare MercuryMover, che ti dà una serie di strumenti di finestre in movimento sotto una serie di mappature di tastiera. Ho usato per usare questo molto quando alle prese con un piccolo schermo del computer portatile, e si può farlo per capovolgere una finestra sul bordo di una schermata etc. mappe più da vicino le funzionalità del menu di sistema 'movimento' che si ottiene in condizioni normali di Windows ' finestre.

sto usando Magnet, è disponibile su AppStore

entrare descrizione dell'immagine qui

http://magnet.crowdcafe.com

Per quanto ho capito domanda, si desidera bastone la finestra al bordo dello schermo, in modo che il lato della finestra è direttamente sul bordo dello schermo. Questo è ora possibile su MacOS Sierra (10.12) in modo nativo.

Tutto quello che devi fare è quello di spostare la finestra che si desidera posizione (cliccando e trascinando la parte superiore della finestra) per il lato che si desidera rispettare. Hai bisogno di fare questo lentamente, altrimenti non funzionerà. Dopo aver trascinato la finestra verso il bordo, che si attacchi un po 'e che quando si dovrebbe smettere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top