ianyh / amethyst Goto Github PK
View Code? Open in Web Editor NEWAutomatic tiling window manager for macOS à la xmonad.
Home Page: https://ianyh.com/amethyst/
License: MIT License
Automatic tiling window manager for macOS à la xmonad.
Home Page: https://ianyh.com/amethyst/
License: MIT License
Just installed Mavericks and it looks like Amethyst is broken. I have enabled it to use Accessbility services but that didn't help.
Many windows aren't useful when sized quite small. Things like Xcode recognize this and force a minimum and there's a solution for that (push offscreen when not focused, but move fully onscreen when focused), so maybe we should enforce a global minimum to make sure that windows are actually usefully sized.
It doesn't have a grow button. Should gracefully degrade to something straightforward like top middle or upper left.
In order to distinguish layouts, as a user, I want to be able to determine at a glance which layout is currently being enforced on a particular space.
Scenario:
I have Space 1 set to Tall Layout and Space 2 set to Columns layout (as well as one or more floating windows per space)
I should be able to predict with 100% accuracy where the next window will be added to the screen
I should be able to predict the "next layout" when I iterate layouts
One convenient way would be to have the Amethyst toolbar icon display a layout icon.
Just a heads up: On both the github readme, and on the ianyh.com site, the direct download link for an already-built Amethyst is outdated. It points to version 0.8, and now we are on 0.8.2
The pop-up/sub-windows in Eclipse that open when pressing, say ^Space, cause the windows to refresh/resize, which automatically closes the pop-up, making it nearly impossible to use Eclipse.
Right now when switching spaces, the windows will be tiled in the same layout as in the previously active space. I think there should be a seperate layout for each space, so that one can arrange the windows in one space without destroying the layout of a different space.
When switching spaces we do a potentially expensive computation to determine the identifier of the active space. There is a reported case of this making amethyst unresponsive for several seconds, which is too long.
If a screen is removed, its windows just seem to stop being tracked.
Sometimes windows refuse to size correctly so we end up with a min size that is too big and there's no way to get rid of it without destroying and recreating the window.
It should just focus the main window like focusing clockwise does.
Amethyst crashes occasionally. Not often enough to be a dealbreaker, but once or twice a day. As often as not, it just disappears. I'd love to be able to get some info on when/why it crashes (to help with debugging on my end and yours). To that end, I'd love to see some sort of debug level output or log file that I could review.
Someone encountered a case where the hidden creative cloud and dropbox menu item windows were being considered as visible and active, causing empty spots in layouts.
I can build amethyst with xcode with no trouble but I get this error when I run rake install
:
/bin/sh -c /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Intermediates/Amethyst.build/Debug/Amethyst.build/Script-4026AB451777C357001E3783.sh
cp: /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Products/Debug/Amethyst.app/Contents/Frameworks/Sparkle.framework/Resources/Resources: No such file or directory
cp: /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Products/Debug/Amethyst.app/Contents/Frameworks/Sparkle.framework/Versions/A/A: Too many levels of symbolic links
cp: /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Products/Debug/Amethyst.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Resources: No such file or directory
cp: /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Products/Debug/Amethyst.app/Contents/Frameworks/Sparkle.framework/Versions/Current/A: Too many levels of symbolic links
cp: /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Products/Debug/Amethyst.app/Contents/Frameworks/Sparkle.framework/Versions/Current/Resources/Resources: No such file or directory
** BUILD FAILED **
The following build commands failed:
PhaseScriptExecution "Run Script" /Users/david/Library/Developer/Xcode/DerivedData/Amethyst-gptvjcbzknstfhdhvvfgovtndsmk/Build/Intermediates/Amethyst.build/Debug/Amethyst.build/Script-4026AB451777C357001E3783.sh
(1 failure)
I tried running xcodebuild clean
in the Sparkle submodule and also removing ~/Library/Developer/Amethyst-*
, but neither had any effect.
I'd love to be able to close windows with amethyst.
Could it be possible to have a 3 vertical windows layout?
https://gist.github.com/dhgwilliam/cc38c0895cdf341030e3
Admittedly, the use case would be mitigated by a solution to #2, but I'm trying to use floating windows+Moom to create a column layout on a single Space (whereas the rest of the spaces use the Maximize/Fullscreen layout), and Amethyst crashes whenever I try to swap-{cw,ccw} two times in a row, I believe. Crash log attached.
The flickering is annoying and expensive with certain windows. If it can be safely done with one operation we should only do it with one.
If I drag a window to another screen, it should then tile on that screen with the appropriate tiling algorithm. Otherwise it just snaps back.
This might not be doable if the icon can't know what screen it's on, buuuut...
It would be awesome if the Amethyst icon would change to reflect the current layout, in the way AwesomeWM does.
Currently, that may not be doable, since it's only on your menu bar, and you don't have a menu bar on every display. Maybe it will be doable in mavericks?
Regardless, some on screen indicator of current layout would be great. Even if it's just something that flashes when you're actually changing the layout.
It's because we move to position (0, 0), when we should be moving to upper left of the window's screen. It's really disorienting.
I experienced this issue on 10.9, so it might be an issue with that.
After quitting and re-launching Amethyst, most functions seem to not work.
Switching focus to another screen seems to work fine, but most of the other shortcuts don't do anything. Moving the focused window to another screen will move the window, but it doesn't seem to resize it and place in the main pane.
Hi there,
I have a hidden menubar so I adjusted the code to account for the full screen size (no space left for dock). You can view the commit here on my fork
leonardt@b101dd7
Would the logic be hard to implement a configuration file entry for setting a global variable then adding a conditional checking for that variable? The conditional part would be easy, I'm just not familiar with config files and haven't been able to dissect how you are parsing it. If you could give me a pointer I'd be glad to implement the feature myself.
AwesomeWM has a "float mode" which allows windows to remain un-tiled while still responding to generic actions (focus, etc). This can be applied either as a) a layout, or b) per-window/application, either manually or programmatically. This would be a great add, as I typically don't want, e.g., my twitter or chat client to be tiled.
from the FAQ: http://awesome.naquadah.org/wiki/FAQ#How_to_toggle_clients_floating_state.3F
It focuses the main window instead of the window that's actually on top of the stack and the effect is kind of jarring.
This happens a lot when trying to increase their width. For some reason it will just fail to do anything and the accessibility APIs don't notice that it failed.
It would be very convenient if I could manage floated window geometry with Amethyst, in particular, maximizing the window. It might also be beneficial to have the maximize command float a window if it's not already floated, saving the user a keypress or two.
The only one I've encountered so far is the application I use for crossword puzzles, but it makes it really hard to use it with Amethyst running.
We don't manage the sheet and the window can't actually become focused because the sheet steals the focus, so attempts to interact with the underlying window fail.
My best guess is that there's a race condition in kCGWindowIsOnscreen
in CGWindow
info dictionaries. So we switch spaces and then check to see if a window on a now-not-active space is on screen and there's some probability that we incorrectly get YES back.
Should figure out a way to get around this or at the very least reduce the probability to less than it is now.
.amethyst should override, but everything configurable via .amethyst
should also be configurable via UI in the application.
It seems that keyboard shortcuts such as mod1-j or mod1-k use the physical key and do not take the keyboard layout into account.
It looks like when you open a project/workspace in Xcode it spawns a window that isn't manageable, and then modifies it to actually open the project/workspace at which point it becomes manageable.
Hello,
First of all, thank you for this great project. I'm always looking for a nice tiling window manager for OS X and this looks very promising.
I'm having trouble with the spaces support. I did enable the ctrl-n keyboard shortcut, but when I do option-ctrl-n, I just switch to the space and but the window is not sent there. Am I doing something wrong?
(I'm using Total Spaces, but I see the problem even when it does not run.)
Example: if you change the main pane count for a layout, change spaces, and then come back, it sometimes seems to reset to 0.
I have found several times (often once or more per day) that Amethyst crashes when I navigate to a desktop that is using an "old" layout (i.e. I have changed the layout while "in" another Space). I can't recreate this reliably, but my evidence is that though I mostly use Amethyst in fullscreen/maximized layout, I often have to relaunch Amethyst while looking at what I think is the Tall layout... I'd be happy to offer any other information you might be interested in, but I don't know how to get debug information out of Amethyst at the moment.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.