Любые оконные менеджеры позволяют мне защелкнуть окна по бокам дисплея?
-
16-10-2019 - |
Вопрос
Можете ли вы порекомендовать менеджер Window для Mac? Я хотел бы иметь сочетание клавиш, которая закрепила бы окна слева или правую половину моего экрана.
Решение 3
После тестирования размера и бриза я решил, что Ветер Подходит мне наилучшим образом. Оба позволяют вам расположить окна слева, справа или полноэкранной. Функцией, которая продала его для меня, была настройка размера и позиции по умолчанию для приложения и назначение ему ярлык.
Другие советы
Размер именно то, что вам нужно:
SizeUp позволяет быстро поместить окно, чтобы заполнить ровную половину экрана (Splitscreen), четверть экрана (квадрант), полный экран или центрированный через строку меню или настраиваемые общеобразовательные ярлыки (Hotkeys). Аналогично функциональности "Tiled Windows", доступной в других операционных системах.
Дивизионный
Divvy - это небольшое приложение Menubar, которое позволяет автоматически изменять размер любого активного окна. Divviy практически делит ваш экран на сетку 6x6. При обращении на вызов Divvy поднимает немного HUD в середине экрана с этой сеткой 6x6. В зависимости от того, какая часть вашего экрана вы хотите изменить размер своего активного окна, просто перетащите и выберите эти квадраты на HUD, а окно делает все остальное. Это так просто.
Мюм
Я слышал, как некоторые люди тоже говорят об этом:
Вы тратите много времени на перемещение и масштабируя окна, чтобы лучше увидеть и работать со всем контентом на вашем Mac? Вместо того, чтобы выполнять эту работу самостоятельно, позвольте Муму выполнить задачу для вас.
Если у вас волшебная мышь или волшебная трекпад, BetterTouchtool лучше, так как вы можете установить конкретные жесты для управления окнами. Как пролив налево из четырех пальцев, чтобы изменить размер окна слева 50% экрана.
Мюм отлично. Вы можете защелкнуть Windows: Полный экран, полуэкран, четверть экрана. Вы также можете изменить размер с помощью сетки. Он также поддерживает пользовательские сочетания клавиш.
Я лично использую Sizeup и Divvy ежедневно. Если бы я знал о ShiedIt раньше, я бы, вероятно, не заплатил бы за размер. Еще один, чтобы проверить, что еще не упомянуто BetterTouchtool, который имеет много других функций, но в расширенных параметрах спрятана хорошая функция, которую они называют «схватывающимся», которая щелкает окном влево или справа от экрана, когда вы перетаскиваете его в сторону. У меня нет функциональности сочетания клавиш, но это хорошая добавка к SizeUp и Divvy.
Я нашел здесь из ВОПРОС В ТЕХА ОПР:
Там упоминалось два менеджера с открытым исходным кодом, которые не отображались в этом списке:
- Spectacle -> http://spectacleapp.com/
- Slate -> https://github.com/jigish/slate (Настройка требует работы по командной строке)
Другой из магазина приложений
Вот AppleScript, который приведет к тому, что все открытые окна в самом первом приложении. Добавить к ~/Library/Scripts
и позвоните в меню AppleScript в строке меню. Добавить соль по вкусу (и бесплатно).
--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
Источник: MacScripter через Google
Из того, что я видел и слышал, Вон это отличное приложение для управления окнами Windows 7 в Mac OS X.
Прежде всего, если для вас важно бесплатно, получите ShiefitIt.
Если для вас важно удобство от мыши, получите привязку. Это в Mac App Store.
Наконец, если у вас есть MacBook или волшебный трекпад, получите Jitouch. Это позволит вам назначить жест многим, многим вещам; Одним из которых является полноэкранной, полу-левой, пол-правой. Серьезно проверьте это, если вам нравятся жесты даже немного. Это как иметь мышь с 100+ кнопками.Джитуш
Mercurymover
Вы также можете посмотреть на MercuryMover, который дает вам ряд инструментов для перемещения в окнах под серией сопоставлений клавиш. Раньше я много использовал это при борьбе с небольшим экраном ноутбука, и вы можете заставить его перевернуть окно к краю экрана и т. Д. Он наиболее близко отображает функциональность меню «Переместить», которую вы получаете в обычных окнах » Windows '.
Насколько я понимаю, вам вопрос, вы хотите палка Окно к краю экрана, так что сторона окна находится прямо на краю экрана. Теперь это возможно на Macos Sierra (10.12) изначально.
Все, что вам нужно сделать, это переместить окно, которое вы хотите расположить (щелкнув и перетаскивая верхнюю часть окна) в сторону, к которой вы хотите, чтобы оно придерживалось. Вы должны делать это медленно, иначе это не сработает. После того, как вы перетащите окно к краю, оно будет застрять некоторое время, и тогда вы должны остановиться.