gechr / whichspace Goto Github PK
View Code? Open in Web Editor NEW🖥 Active space menu bar icon for macOS 10.11+
License: MIT License
🖥 Active space menu bar icon for macOS 10.11+
License: MIT License
Add a way to see which spaces are used and which not so you don't have to swipe through your entire workspace. This way you save time and find directly an empty space.
A similar function can be found in Linux based tiling window managers.
There are many various ways that the active desktop workspace can be changed manually. I can use the keyboard hotkeys Ctl+Left and Ctl+Right, swipe left or right, open Mission Control and pick a Desktop from the list that appears at the top of the screen, etc. And there are ways the desktop workspace gets changed without my direct decision. I click an application in the taskbar and instead of opening a new window, I get taken to the space that already has an open window. I use the Chrome tab list feature (the down arrow at the upper right) and pick a tab and I have no idea what space that window is in, but I go there. If I'm reading a PDF and click a link, it will open a new tab in whatever happened to be the most recently used browser window, whatever desktop space that happens to be in.
Is there some way in which, no matter what is causing me to change spaces, in or out of my control, a script or function could be called and be given parameters of the old and new space numbers, or at least the new space number?
I am looking for ways to replicate some of the functionality of CurrentKey Stats, which is no longer supported. In the latest versions of CKS, a feature can be turned on so that whenever the space was changed, by whatever means, an AppleScript script is called, in this case it's /Users/[username]/Library/Application Scripts/com.currentkey.stats/ck.scpt
and a function in that script is given a parameter of the identity of the new space. This turns out to be really useful.
One of the features of CKS is that spaces (Spencer calls them Rooms) can have text names of 16 or 17 characters and you can edit those names as you wish. To replicate that, I would at least need to know whenever the current space changes and where I am now, by number. Then I can look up what the name is to display it, etc.
But doing anything along those lines seems to hinge on being able to be notified whenever any app or system process changes the current space and what that change is.
Similarly, could it be possible to query for what the active space number is?
Is that currently possible in WhichSpace? If not, could it be?
Some window managers like Yabai can have labeled spaces. It would be neat if WhichSpace had a way of knowing and displaying the name of a space.
I am happy to submit a PR for this, but I am lost as to how to implement it in an orthogonal way. We can get the space labels (and other information, too, like open windows) using
yabai -m query --spaces
The output is a JSON array that is really easy to parse with JSONDecoder
. Using the JSON from Yabai, we can know the names of spaces, and have a list of windows that are open in each space that we can display when the status bar dropdown is opened.
However, querying Yabai using a shell command feels a bit dangerous and also not very orthogonal. It would be better if we had a mechanism for receiving such metadata. For Yabai, sending metadata can be done using signals.
Is this something that WhichSpace users would be interested in? If so, what would an appropriate messaging interface be? Yabai and friends seem to use sockets, which has the benefit of not showing annoying permission alerts to the user. Übersicht has an AppleScript interface.
Please add a license if possible - thanks!
WhichSpace is great! Thank you for sharing it. I have over 10 spaces set up on my MBP and I'd get lost without WhichSpace. 😉
It would be great if WhichSpace made the SpaceNumber available via AppleScript (or some other means). I'm not a macOS programmer, but maybe the easiest way would be to write the space number to a text file in the Library (just a thought).
I use Keyboard Maestro to switch spaces. If the space number was available, I could save the number and then create a macro that would allow me to easily toggle between two spaces.
Thanks for considering my request. Again, thanks for sharing WhichSpace!
It's kinda like a feature request.
Add Like [1][2][3][4] for 4 spaces into top bar, make them switchable by click (like i3wm offers)
Hi,
first thanks for the very helpful tool.
I want to report a bug/ make a feature request:
I am using 2 monitors connected to my mac and move windows mostly by command shortcuts.
However, whichspace
always shows the number of the current workspace.
Is it possible to show the workspace number of the current workspace shown on the screen?
Eg. Monitor 1 shows workspace 1 and monitor 2 shows workspace 2.
(currently, both monitors show the same workspace number)
Would it be possible to display a space ID for each monitor?
Is it supposed to behave like this? I think it doesn't hurt if you add a option to change this behavior and just show the actual "Desktop" number
Maybe it's a question, maybe it's an enhancement request.
I've seen on some Macs I installed WhichSpace on, that "Space 1" according to Mission Control is shown as "2" by WhichSpace, and also the rest off by one. I suspect that this is because of the Dashboard being internally counted as Space No. 1.
Unfortunately starting with Catalina there is no way to configure Dashboard in the System Preferences any more, and I couldn't find a way to postumously deactivate Dashboard to make the Spaces count start at 1. I tried:
defaults write com.apple.dashboard mcx-disabled -bool true
defaults write com.apple.dashboard enabled-state -int 1
defaults write com.apple.dock dashboard-in-overlay -bool true
but nothing helped so far.
? Is there a way to correct macOS' internal Spaces count to start at 1?
? If not: Could maybe WhichSpace as a workaround do what Mission Control does and correct the count shown?
This was done for fullscreen apps in #12, but not for the Dashboard, although that was mentioned there too by martin-braun.
Similarly to #17 I'd like to personalize the desktops. I agree that custom names are not very suitable for the menu bar (too long), but what about icons?
I thought about something like CurrentKey Stats offers with monochrome icons or even emojis. Unfortunately, that program is not working well with multiple desktops, so I think this feature would be handy here.
Here a screenshot of the CurrentKey Stats:
The app is a mess and unstable, so I prefer WhichSpace, but numbers are not so useful.
Hi
Love this app (from what I have seen). Can't install. Error Message reads:
“WhichSpace.app” can’t be opened because Apple cannot check it for malicious software.
This software needs to be updated. Contact the developer for more information.
Safari downloaded this file today at 08:30 from objects.githubusercontent.com."
Please advise.
Thanks!
Suggestion: allow users to set and change titles for spaces.
For example, if I'm working on two projects in two spaces, say "work" and "side project", I could enter that somewhere and have WhichSpace show my spaces as "1 - work" and "2 - side project" rather than "1" and "2".
Thanks
For example, on the "Desktop 1" I see number 2 on the icon and so on.
Currently, the space number shown in the menu bar is not central aligned, which makes it (or makes me) feeling the app not rendering the position correctly. Is there any way we could make this number 1
/2
/etc central aligned in the gray box? Thanks.
I am not sure if this is a bug, and the screenshot posted in the github repo seems correct and the number 4
is central aligned in the picture
I run the app, nothing exists in my menu bar ... no sign of the app anywhere.
MacOS Sonoma 14.5, M1 Macbook Air
It would be nice if there was an option to not count apps in fullscreen mode as spaces. For example, I often fullscreen my terminal and stick it between the first and third space. If I need to switch to the third space I must press ctrl+2. It would be nice if "whichspace" provivded an option to not count fullscreen spaces so ctrl+n matches with what "whichspace" displays as the nth space.
The app is currently built only for Intel-based macs. Can you make an universal binary so that the app will work natively on M1 macs?
I'm not familiar with OS X code signing, but that appears to be the issue. I am attaching the log of an update attempt failing.
WhichSpace.log.zip
I am running Sonoma 14.4 and when I start WhichSpace it shows up in the menubar and shows a 3 but I am in Space 2.
Related BigSur Issue #20
This is a great app, very simple, exactly what I was looking for!
My only issue is that my external monitor displays the space number of my primary monitor. It would be nice if the status bar could display different numbers on the primary and secondary monitor but that might not be possible. If not, could we at least show the space number for whatever space is the active space?
is it possible to make is a command line app to print the current space?
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.