Yes! AutoHotkey is way better than any manufacturer's bundled software for rebinding, creating macros, managing windows, music etc. You can even make the scripts application specific and change keybindings based on the application you’re using.
BTT and Slate are worth checking out if you use OS X.
Off-topic: Besides rebindign keys, AutoHotkey can do text expansion with hotstrings.
I might do a longer post about productivity etc. if anyone is interested.
(Just to give a quick example, insterting links in markdown for me is as simple as copying the link to the clipboard and writing “;lin”, which will pop-up a tiny window where I can enter the link name, it’ll paste the clipboard contents to the brackets and move my cursor back to the front of the line.)
It seems not many people are aware of Slate, or they don't like the idea of editing a config file. It provides ultimate flexibility in configuring your own window management shortcuts. It does the same thing as Spectacle and Divvy, but is completely configurable.
For example, I have shortcuts that can throw a window to any specific screen (rather than moving from one to the next), and shortcuts for resizing directly to halves, thirds, 2/3 and 1080p centered views - no cycling, but going directly to exactly the position and size you want.
Dayum. I had never heard of Slate before reading this and it's fantastic. I think Slate will be replacing Window Wrangler and MercuryMover for me soon. It seems to be able to do all of the things that those two apps can do – after a little bit of fiddling with the configuration file at least. However, I do have some concerns about the lack of development activity on the GitHub page, as I try not to get used to software that will probably break or become buggy in the next one or two iterations of OS X from Apple.
I really need to change the key bindings for some of the Slate operations, by the way... they make editing text almost impossible.
I'm teaching myself some javascript so i can create the ultimate window management system on my mac.
if anyone is skill with javascript pls let me know if you can help out, i'm in a little over my head.
https://github.com/jigish/slate
edit: i did not create that git repo, the program allows for custom config files. that's what i'm writing.
Yeah El Capitan. For Slate I just followed the instructions on the github page. Here is my slate config for reference.
If you want something a bit more powerful/customizable than what comes with OS X, take a look at slate
(available through Homebrew, or at https://github.com/jigish/slate). It lets you write arbitrary window management logic in JavaScript; I use it for a bunch of keyboard shortcuts for throwing windows around.
It's perfect. I have hotkeys to set VIM at 1/3 screenWidth and my browser window at 2/3 screenWidth to the right of it.
VIM is exactly the right width to fit 80 characters wide.
The browser is exactly the right width to satisfy minimum horizontal width for websites.
I'll take a screenshot tomorrow when I'm at my workstation.
Version 3.5.1-1 is in MacPorts;
awesome @3.5.1_1 (x11, x11-wm) Extract Dependencies: xz Build Dependencies: cmake, ImageMagick, pkgconfig Library Dependencies: dbus, gdk-pixbuf2, lua, lua-lgi, glib2, pango, cairo, xorg-libxcb, xorg-libXcursor, xorg-xcb-util-image, xorg-xcb-util-keysyms, xorg-xcb-util-wm, xorg-randrproto, startup-notification, libxdg-basedir, imlib2, libev
As is the case with all X11 packages in MacPorts, you'll need to have built the repository's xorg-server
package from source rather than downloading and installing XQuartz.
Before you go and spend six hours and $20 worth of electricity for your CPU to get this done, I just wanna make sure you're aware that an X11 window manager can only manage X11 windows.
Any GTK or QT-based application you install through MacPorts will operate under Awesome
so long as they share the same X Server by means of the DISPLAY
environ. Cocoa applications however, and in fact all Apps under the Quartz layer, will remain separate.
Addendum: If you find xmonad
isn't powerful enough, you might be more satisfied with <code>slate</code>.
OP, check out third-party window managers and see if they're what you need.
The two that come to mind are Slate and Amethyst. If I understand their documentation correctly, they'll allow you to assign application windows to specific desktops, displays and parts of the display.
I don't use these tools, but I know their customization may be of help to you since you're utilizing multiple monitors.
Best of luck.
HyperDock kept me sane during the last two years of my undergrad career. The window previews were incredibly helpful when juggling multiple PDF's (across multiple desktops) AND it has a nifty and small window manager. It's certainly not as complete as Slate or Amethyst, but it gets the job done without having to install HomeBrew, CocoaPods or any other number of command line utilities.
Edit: Spellings
Slate because I run a single monitor (just laptop) in meetings, 3 monitors when in my office at work and 2 monitors when in my office at home. Having a configuration for each of them and to be able to quickly move all open apps to the screens I want is very helpful.
Kirta for photo editing as it is free and cross platform.
Gapplin for quick view of SVG files
SourceTree Charles Proxy Sublime iTerm 2 Vectr - SVG creation Monosnap - screen shots Vox - music player
I have been using slate to give me some control over window size/placement. It's an OSS tool that lets you bind keys to certain window actions. as an example, I have ctrl-option-cmd-[ and ] mapped to move a window to the laptop display or external display and maximize. It's very configurable (almost too much so) and indispensable to me.
I'm in a similar situation — mostly OS X, but tinkering with linux. I've been playing with Slate for a little while now — it will probably be able to do what you're looking for.
Slate is the best keyboard-based window manager!
And with the return of the original developer and Slate2 right around the corner, it's going to get even better!
You can use slate for this.
For example when I add the following to my ''~/.slate'' file it jumps to a maximized Fusion screen when I press ctrl-alt-9:
bind 9:ctrl;alt focus 'VMware Fusion'
Agreed. I've seen weird glitches with Magnet. Pretty much never had a problem with BetterSnapTool. I tried the BetterTouchTool but it wasn't completely caught up with BetterSnapTool the last I used it.
At work, I've been using https://github.com/jigish/slate which thankfully still works with Catalina. With this I never fumble with windows anymore except if I'm using full screen apps or multiple spaces. Can write a JS file to auto position windows across multiple monitors and keybind it.
This looks like a good alternative to Slate or Pheonix. What are the advantages?
And it might be a good to include examples providing basic functionality most people would want, like moving current window to left/right/top/bottom half or moving window to a corner 1/4th of the screen (top left, top right, bottom left, bottom right).
** First **
Slate is a tool I use every day and really have only hit the tip of the iceberg with it.
I use it primarily for two things.
I bound F14 to show 'hints' on each open window. A hint is a letter. Then, to navigate to the target window, hit the letter. No mouse navigation.
I bound control + alt + command + t to open the terminal.
EDIT:
There are many things that can be done with a tool like this.
** Second **
Git. configure your .gitconfig file for things you use. I currently have the following set up.
co = checkout ci = commit st = status br = branch hist =log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short smhist =!git --no-pager log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short type = cat-file -t dump = cat-file -p
I KNOW I have seen some good workflow posts on reddit, but I can't find any searching in retrospect.
I'm using Slate. I've rebound the fn key to act as a "hyper" key (fn+key that isn't f1-f12 is the same as cmd+alt+ctrl+shift+key) using Karabiner, and from that I've bound hyper+f,d,s,x,c,v,i to focus Firefox, iTerm, Skype, Finder, Preview, VLC, iTunes.
Also, hyper+h,j,k,l,b will focus window left,down,up,right,behind (as in, a window behind the current window)
and hyper+n,m,o,1,2,3,4,5 will move window left, window right, maximize, resize to 1/3 thirst third, resize to 1/3 second third, resize to 1/3 third third, resize to 2/3 left side, resize to 2/3 right side.
So, if I want to have a Firefox window that takes up 2/3 of the left side of my monitor and an iTerm window that takes up the right 1/3 of my monitor and I've got both applications running, I'd type <hyper-f><hyper-4><hyper-d><hyper-3>
(where hyper=fn).
You can find my .slate configuration file in my dotfiles, here.
Other than this, I also auto-hide the dock and menu bar.
I tried to use fullscreen for a while, but to a poweruser the built-in fullscreen is near useless on OS X. There's a massive delay when switching between desktops that can't be changed, and there's no way to create hotkeys for most actions.
+1 for Karabiner. I use it to map the backtick/tilde key to escape since they decided to make escape such a tiny little key so far away. I have only started scratching the surface with Slate though, mostly because its configuration is fairly obtuse and the examples don't work with the new config format.
> Works nicely for SizeUp.
Totally. (Except, Slate master race!)
> I can't map Hyper+A or Hyper+Q?
Meaning, your apps don't recognize ⇧⌃⌥⌘A or ⇧⌃⌥⌘Q, or what?
I don't know of Shiftlt, but Slate is made to be "A window management application (replacement for Divvy/SizeUp/ShiftIt)".
Says so here, in the development page at GitHub: https://github.com/jigish/slate
I recommend you this only if you want to meddle a bit with code or are okey with it, but the results are impressive, you can customize this thing to manage window like any other or even better than all paid applications out there. It's really cool.
Slate is a very simple window manager that will let do the old-school non-fullscreen maximise and has other features like switching to a specific app with a shortcut and pseudo tiling.
Found it in System -> Dock
: https://dl.dropboxusercontent.com/spa/quq37nq1583x0lf/exeuy7jb.png
Though unchecking it just replicates the shitty "maximize" of clicking the green button in the title bar.
I personally use https://github.com/jigish/slate to set hotkeys that manipulate window positions.
I used terminal vim and tmux with a full screen terminal on my external monitor until I switched to having two external monitors. On OS X, I can't have a single window span multiple monitors so I switched to MacVim on one monitor and iTerm2 on the other, both fullscreen. I slate set up with commands to switch between them which provides a similar workflow as I had with tmux which has worked out really well for me now.
Yeah better BetterTouchTool is great, haven't tried Magicprefs though. These days the only tools I'm using are Karabiner to remap key input, and extensive Javascript configs in Slate (combined with some shell scripts they invoke) to provide behavior. Unlike with BetterTouchTool, I have to do everything myself, but everything is exactly how it want it!
I use f.lux and Alfred, as well the window manager Slate. I try iTerm every couple of years, but keep going back to Terminal. Can't remember why right now, it's been a while, so maybe it's time to take another look; I know a lot of people really like it.
I've also been mainly an OSX user in the past and the nice UI is hard to leave :). I'm hoping to eventually get the best of both worlds on my Arch machine.
Btw, if you haven't seen them before, there are some nice programs for basic tiling on OSX. I've used one called Slate for a while, but it doesn't look like it's being maintained lately. There's another I've been meaning to look at called Amethyst.
I've tried out i3, bspwm, and herbstluftwm on my Arch machine, although I think I like bspwm the best so far. Still trying to figure out a good multi-monitor config though. My dotfiles are here if you're interested in checking them out: https://github.com/justbuchanan/dotfiles-arch.
Here's how you could conceivably pull this off:
I haven't seen how configurable Spectacle is, but check out Slate if it can't do something you want to do. I've used it to set up a bunch of 1/3 & 2/3 width shortcuts for an ultra-wide display.
Slate is a program I use to reorder and resize windows through keyboard shortcuts.
Another thing it can do is remember and restore window layouts. I think you'd want to create a snapshot of your layout which you can they restore. Hope it helps.
Slate (https://github.com/jigish/slate) is also nice. It lets you define config files that can auto-detect monitor changes so that when you plug it up to an external display, preset applications can move to certain monitors at certain sizes, etc.
Plus it supports the ability to configure it just like SizeUp, ShiftIt, Spectacle, etc (I use spectacle's shortcuts).
I use Slate for window management, but that might be overkill for just fixing a window size and position. Have you tried the 'Window->Zoom' option from the menu? Might bring your window back to a manageable position.
I've been playing around with Window managers recently, and Slate is the only one I've found that is actually capable of taking into account things like which applications windows belong to, or what titles windows have.
On the plus side, almost everything else about Slate it is ridiculously good as well. The obvious downside is, you have to be one of those people that is used to configuring stuff with code.
I found a free option to divvy/moom/etc the other day called slate. It's a little hairy to get set up, you have to read the config documentation and edit a plain text config file, but it's completely customizable. I was about to spend the money on one of these fancy options, but I really only need to be able to split two windows 50% vertically (or sometimes 66% + 33%). Now I can do this so easily with a quick keyboard shortcut.