Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
SensibleSideButtons – side navigation for third-party mice in macOS (archagon.net)
92 points by accrual on Sept 6, 2020 | hide | past | favorite | 74 comments


I am a big fan of rectangle[0] for bringing windows style windows management to macOS. Gives you a set of shortcuts you can use to put windows where you want them on the screen. It is crazy to me that this is not standard on macs.

0. https://github.com/rxhanson/Rectangle


Switched to Rectangle from Spectacle[1] few weeks back after discovering it on HackerNews.

Rectangle is a fork of the now unmaintained Spectacle. I was using Spectacle for as very long time.

1. https://www.spectacleapp.com


I've been using BetterSnapTool for years: https://apps.apple.com/gb/app/bettersnaptool/id417375580

It's super cheap, and on top of the regular shortcuts, you can create custom shortcuts with their own specific positions, and it saves them per screen. I currently have a dozen of custom shortcuts, which is super handy for an ultrawide 38 inch screen.


FWIW, most (all?) of BetterSnapTool's functionality is included with BetterTouchTool. BTT is an amazing utility... worth every penny.


This looks like Magnet but in open source. Nice!


Through Apples settings you can, with no extra software, rebind them to Mission Control All Apps and App Windows.

I personally find this more useful for quickly changing Windows and moving then between spaces.


I don't know why, but I have a Logitech G MX518, and this doesn't work all the time. I assign Mouse Button M4 to activate mission control, but for some reason it doesn't do anything when I click it. I tried assigning M5, still nothing. It used to work normally, pre-Mojave. Any idea what's going on?


I've switched to Mac around 1 year ago and I was disappointed to see that additional mouse keys were not supported out of the box. I've been using SensibleSideButtons ever since.


This is from the same company that thinks that a one-button mouse is a really good idea.


At the time it was quite sensible. Many in the target audience were computer illiterate or beginners. The context menu is not discoverable and is counter intuitive to the point and touch metaphor. In addition, most of the right mouse button actions can be replaced by a two click alternative. Finally, the modifier keys can be used for power users.


Which makes the current infatuation with gestures even stranger. They're even less discoverable than a second mouse button.


This seems to conflict with the long-standing reputation that Macs were for designers.


Graphical designers vs UI designers...


It is. It forces app developers to actually think through their UX/UI.


Interesting! I had to deal with a related problem several times — I often want this from my Logitech mouse:

> I discovered that the side buttons emitted standard M4 and M5 commands just as they did in Windows

But there's no way of setting that up in Logitech's ‘Control Center’; ‘middle click’ is as fancy as that gets. If I'm lucky, I can use Control Center to set up a custom configuration for the specific application in question and make mouse buttons emulate keyboard events, then map those hotkeys to the desired actions within the application. But if the program doesn't allow custom hotkeys for triggering something that's meant to be done with extra mouse buttons, I'm pretty much out of luck.

You don't even get the standard mouse button events when you don't install Control Center at all — then the extra buttons (on my particular older model; no idea about current Logitech products) do nothing at all :(

So the funny thing is: I'd need a ‘sensible side buttons’ hack that does the exact opposite of this one.


I can recommend Steermouse[0]. It gave me control over the upper buttons on my Kensington Slimblade


+1 for Steermouse — I find it to be the perfect midway point between something basic like Sensible, and something highly complex like USB overdrive.


Steermouse has high CPU usage (up to 5%) when moving the mouse. But I agree, it's the best tool so far.


Ironically, iPadOS now has better built-in support for multiple mouse buttons than macOS: https://aws13-customer-care-assets.s3-us-west-2.amazonaws.co...


Check out steermouse.jp. Solves the same problem. Been using it for many years. Replaced crappy Razer software on my Mac.


There's also https://mousefix.org which has the extra bonus in that it tries to solve the smooth scrolling problem that can occur when using a mouse on a mac.


I just noticed that Steermouse has high CPU usage 5% if you continuously move your mouse cursor. I have a brand new MacBook Pro. It's using more CPU Time than Mail, Finder, Terminal.

Steermouse the easiest to use with most functionality so far compared to Sensible Side Buttons, USB Overdrive, ControllerMate. I tried out Steermouse for past couple of weeks. Just paid for it yesterday... but noticed the CPU usage today.


I really like the idea, but personally I got better results simply binding back and forward buttons to keyboard macros for 'ctrl -' and 'ctrl shift -' using Logitech‘s G-Hub software.

The shortcuts 'ctrl -' and 'ctrl shift -' are the default for 'go back' and 'go forward' being supported even in many apps (including that don't support the gestures), and since they are keyboard shortcuts you can usually add support for them in apps by rebinding the shortcuts for back and forward (or anything else you want to bind in that particular software).


I'm still using ControllerMate for keyboard, mouse, and general USB-device control on the Mac but to my extreme disappointment it seems to be a dead project at this point. While its GUI is arguably a touch funky, it's always been an incredibly powerful and unique tool able to do both rebinding and extremely complex macros with customized controls for any application. I'm glad there are other tools continuing to be developed to help fill some tiny holes but it's a shame it couldn't be kept up, or if fully abandoned open sourced.


I love ControllerMate, but I think Catalina is first macos it doesn't support. It was the first program I found which allowed me to edit mouse acceleration with a custom curve. I made the Mac mouse feel the same as a Window mouse.


MacOS generally is the best laptop OS and the worst desktop OS.

Half baked mouse support, awful windows management with incongruent fullscreen functionality, half baked multi monitor integration, terrible thermals/performance, and the removal of anti-aliased text made MacOS a generally poor desktop experience for me.

Some of these problems can be ameliorated by third party apps, but I get the impression the desktop experience (and maybe more generally MacOS) has not been a concern at Cupertino for some time.


> MacOS generally is the best laptop OS and the worst desktop OS.

I'm afraid I don't understand the premise, given that the experience is the same.


I was always a 'laptop only' guy at work, but since COVID I've used my (multi thousand dollar) MBP as a desktop primarily.

The number of random apps that I have to install because of odd quirks that don't work like I'd want/expect. The most egregious IMO is no support for mouse4/5 as back/forward (seriously, it's 2020.... every mouse has some form of theses unless explicitly designed not to), but it goes past that. The first two months of using my mac as a desktop, about weekly I would run into the case that something wouldn't work as expected, I'd google it, and find a stackexchange post where someone is like "yeah that behavior is intentional, no way to change it, by the way I wrote this little open source tool to fix this."

My mac sits on my desk, but faces opposite of me because I want to be able to charge it in the right port, not the left. Left port seems to make my kernel_task go crazy. Two monitors (using an HP workstation thunderbolt dock) seem to make the fans go nuts as well.

Maybe I need a desktop form of Apple hardware, but lol $5999.

Luckily the OS is somewhat extensible, but I fully agree that the desktop experience feels half baked at best. Easily the worst out of Windows, OSX, and Ubuntu (defaults).


Another big annoyance: you can't turn on natural scrolling for trackpads but have it off for the mouse. The two separate settings are inexplicably linked.


Sadly, another open-source-tool-bandaid is the solution. Karabiner-Elements can define per-device settings for scroll direction. Overkill (considering all of its feature set), but works.


> Half baked mouse support, awful windows management with incongruent fullscreen functionality, half baked multi monitor integration, terrible thermals/performance, and the removal of anti-aliased text made MacOS a generally poor desktop experience for me.

All of these features pose significant issues on a desktop that utilizes multiple monitors, large screen real estate per monitor, a mouse, and sub 1440p displays. They all are considerably less important factors on a laptop that commonly utilizes a trackpad and a single retina resolution screen with limited real estate.


i.e. that trackpad UX is great, but standard mouse UX is terrible?


As a Mac user who has not fully bought into their ecosystem this is an important productivity tool for me. Also I find it sad how such basics are missing from OSX.


Yeah. Nowadays it feels like macOS is designed mostly for touchpads.


MacOS generally is the best laptop OS and the worst desktop OS.

Half baked mouse support, awful windows management with incongruent fullscreen functionality, half baked multi monitor integration, terrible thermals/performance, and the removal of anti-aliased text made MacOS a generally poor desktop experience for me.

Some of these problems can be ameliorated by third party apps, but I get the impression the desktop experience (and maybe more generally MacOS) has not been a concern at Cupertino for some time.


Maybe it is a war on the cursor.


iPadOS just got one though. I think they’re just pushing gestures.


My main gripe since buying a MBP last year is the sheer amount of third party applications I need to install in order to restore basic functionality.

I guess most users never discover these limitations but between this, the absence of window snapping (and associated key shortcuts), and the terrible external monitor support it’s hard not to regret the move when I stare at my (admittedly very pretty) laptop.

I get that most reviewers aren’t really heavy users, and seem to think (like Apple) that a “pro” user is someone who works exclusively in photo and video editing, but I need to get my work done.

It’s really disheartening that they don’t seem to understand these types of problems.

But hey, at least they’re giving us Escape keys back.


> the terrible external monitor support

What exactly is terrible here? IME macOS is the only OS that can cope with multiple monitors of different DPIs in a sane manner, and deal with restoring window locations after temporarily switching from laptop-screen-only to external display usage.


"Walking" my windows across the displays with key shortcuts is my biggest pain point here of a bunch of little conveniences that add up.

I have three identical 1080P displays on my desk. On Windows, and it's one example of a bunch of little things, I can press Windows key and an arrow to expand the current Window to half a display - I press it again and it snaps to the next half, and does so across screens - so I can really quickly expand my workspace to fill the screen area depending on the task I'm working on (one or two key presses).

There's not way for me to do this on macOS even without keyboard shortcuts. There's no reason for this, and what's worse, with side-by-side view this experience should be better than Windows for me as I'm never working on less than half a display per window - but it's just un-necessarily painful.

It would take no time at all to bind side-by-side snapping to keypresses and have it operate predictably across multiple displays but they just don't do it, won't allow me to, and I don't understand why.


No no it's totally fine. You just need to search stackexchange and find a few posts where people talk about how this is by design, then find some random utility that kinda does what you need but often has a ton of bloat and will nagware you to drop the $29 bucks so that you can have basic window manager functionality.

It really is wild to me. It's like nobody ever used two monitors or needed two apps side by side...


> then find some random utility that kinda does what you need but often has a ton of bloat and will nagware you to drop the $29 bucks

Rectangle [1] is free. Spectacle [2] before that was free. There are several other choices for window snapping in OS X and have been since the earliest days. Personally I use Magnet [3], which was some trivial amount of money many years ago and comes from the App Store - thus has no "nagware" aspect.

FWIW the built-in Windows snapping support is terrible - if you have a 49" widescreen display, you'll find it can't snap windows to thirds of the screen and you're back to (true) "bloat and nagware" of third party Windows utilities.

> It's like nobody ever used two monitors or needed two apps side by side...

Since ~2002 I've had setups that range between 2 and 6 monitors - mostly 3. I've used Windows, Linux, macOS and OpenSolaris in that timeframe, and have found macOS to be _by far_ the least hassle for getting whatever monitor configuration I have wanted.

[1]: https://rectangleapp.com

[2]: https://www.spectacleapp.com

[3]: https://magnet.crowdcafe.com


The lack of window snapping is truly perplexing.


Agreed, although hovering over the green window button gives you the option to put 2 windows side by side in full screen, and option+ hovering the option to put them side by side without going full screen.

Still a far cry from Win10, where it’s automatic by dragging to the side of the screen, where you have quarters, hotkeys, auto resize etc.


I've used https://www.spectacleapp.com/ for a few years to split windows on osx


I used Spectacle for a while, and recently switched to Amethyst. It works very well, but it would be nice if there were at least basic functionality built in.


I wasn't a fan, it seemed really laggy to me when I used it


I guess you’re looking for something more full-featured than split view?

What is terrible about the external monitor support?


Honestly, OS X's built-in "split view" window tiling support is a sad, clunky, slow-as-molasses, fullscreen-only nightmare substitute for the instantly snapping windows you get from something like BetterTouchTool, or Spectacle's hotkey-based window resizing. It's night and day, and it's really disappointing to me that a trillion+-dollar company took as long as it did to offer such a mediocre workaround.


Without even talking about features, split view works only for a fraction of applications, I found. And only if you're happy using fullscreen mode


MacOS's fullscreen 'solution' is just atrocious compared to the default window snapping in Windows. It manages to feel both half assed in design and half assed in implementation. A third party window manager for Mac OS is a must. I use Swish and love it.


I run Kubuntu on my Macbook Pro 2015. It's way better than OS X and no functionality (excluding apple specific things like iCloud and Airplay) was lost, battery life is the same.


I will never understand this attitude that certain features from other OSes, however much one might have gotten used to them, constitute "basic functionality" that should so obviously be expected everywhere.

Window snapping is a cool feature, I'm sure, but how long has it even existed on Windows or common Linux distributions...? (This is a genuine question; I have only heard about it in the last few months, and I have no idea how long it has been present.)

You might as well say that a menu bar at the top of the screen is "basic functionality" (is it even possible to replicate that in Windows?), or Emacs keybinds in system textboxes are "basic functionality."

Different OSes have different features, and a blind assumption that something that has become a part of your workflow is a necessary part of every OS just seems arrogant to me.

And I don't have a clue what you mean about "terrible external monitor support". I have never had a problem with multiple monitors on Macs, while when I have to deal with even one on Windows, I regularly have to struggle with driver issues and the OS thinking that one of its several interfaces is the "primary" one that you have to plug into first, and it won't even consider outputting on another interface without being explicitly told to.


Window snapping was introduced in Windows 7, released in 2009.


>a blind assumption that something that has become a part of your workflow is a necessary part of every OS just seems arrogant to me

Like no copy and paste in iOS? Apple has a history of not adding features just because no matter how useful they would be and no matter how much it is holding back its users. That is arrogant, not the user asking for features that is standard for most.

> the OS thinking that one of its several interfaces is the "primary" one that you have to plug into first, and it won't even consider outputting on another interface without being explicitly told to.

This is just wrong. Windows since at least windows xp shows something on all screens as default. You sound like a Mac user who doesn't know Windows. FYI I use Linux primarily so unlike you I'm not biased (I think both has it uses but both also suck).


> This is just wrong

Oh, yes, thank you for telling me my personal experiences don't exist.

I have had this happen to me on multiple occasions when setting up Windows—XP and later—machines with multiple display interfaces. Plug into VGA—nothing. Plug into one of the DisplayPorts—nothing. Plug into the other DisplayPort—OK, there's the primary. (Or, worse, plug into the bizarre double-DVI with a special adapter, that one's the primary.)


Serious question, why are you using a Mac? Are you developing for Apple products?

Because indeed, most people I see using macs professionally tend to be artists (photo and video editors but also musicians, designers, architects,...). But from my experience tech workers and engineers are more likely to use PCs unless there is some special need (ex: iOS dev).

Edit: Downvoted, as expected. But it is not a troll. I recognize that MacBook pros have really nice features, like a second to none trackpad, nice screen, nice SSD,... Plus it looks good and it "just works". Artists like it a lot and I understand them. But for tech and engineering work, ThinkPads seem to be preferred. They are robust laptops with great keyboards and better connectivity. If computing power is required, powerful desktops and workstation class laptops tend to be used. Finally, for office work, Macs are often considered too expensive.


I've been an IT consultant for many years. I have been using MacBooks since around 2009. After an initial bumpy migration to macOS (OS X back then) after at least 10 years of using Linux (mostly Debian) exclusively, I never looked back.

It mostly just works and I can focus on writing my applications and operating my systems. I get a nice UNIX-like ecosystem on the metal and almost everything I need to write code I can get on Homebrew.

It runs Docker for those times when I want actual Linux locally, although I've been using that less and less since I can build and run my containers on the cloud.

I haven't counted but I suspect more than half of my IT colleagues use Macs, and almost everyone else uses Linux. Windows is the exception, where the only people crazy enough to inflict that upon themselves tend to be .NET/C#/F#/Microsoft-oriented devs.

macOS is the most hassle-free experience you can get. I say that whilst keeping a very close eye on Linux development since I'd like to break away from Apple eventually. Unfortunately no Linux distro comes even close to Macs in terms of simplicity and reliability.


Well the corollary to above is that there's some stuff that I find really helpful.

The ecosystem sucked me in. I got an Apple Watch and iPhone for the first time not long ago for other reasons (mostly I need to track swimming and could not for the life of me find a decent non-Apple smart watch that would do this for me). The integration between the iPhone and the MBP - as basic as it is - has been a massive productivity boost for me. Just having the call handling route through my laptop when I'm at the desk is a huge convenience feature that gives me time back.

Is it worth the sum of small issues I keep hitting like this? Sometimes it is, a lot of the time it's not. I'd like to see Apple fix these kind of basic things before making the icons look more like the phone, though.

Craig Federighi said Big Sur is the most significant release since OSX. Sometimes it's hard to distill the engineering from the marketing but I sincerely hope that's not what they really believe as it is desperately in need of another Snow Leopard release. Just spend a year fixing stuff that should never have been broken in the first place.


I had to plop down $3100 on used MBP (needed that 32GB of ram) because company I contracted for sprung this as a term.

After a year, I finally heard an unofficial and unconfirmed explanation that the reason is to prevent parent company from hijacking their IT with their own Windows setup that is apparently "known bad".

Still, resulted in me having to deal with mac and finding pain points daily.


Had to switch to MBP last year due to work and have been using SensibleSideButtons from the first day.

I am missing an "always on top" application to pin windows to the top layer - like there is in most Linux distros. Anyone knows a little app that provides this function?


For folks looking for more complex options than Back and Forward events, USBOverdrive serves that need, but requires a kext. (It also fixes an issue with older Razer mice not having working mouseover support on macOS due to, iirc, their invalid M16 signaling.)


I've always had horrible experience purchasing things like this in that they never stay working for long, are poorly supported when new versions of the OS come out, or are just broken by default. How long have you been using it? How are system upgrades? Is it reliable? Not trying to be an ass, it's just every time I've tried shit like this in the past on someone's recommendation it's been a fucking waste.


I only use it because it has a driver fix for my broken-as-designed mouse, and I don’t do complicated expert-user things to my Mac, so I honestly can’t say whether it’ll work for you or not. I assume they have a trial and such, but it’s been a while since I looked.


I've been using USB Overdrive 10+ years (probably 15+ but I can't verify exactly).


Huh, I use a Logitech M720 and never really thought about using the side buttons until now. I did a little experiment, and BetterTouchTool does support the side buttons as triggers. I guess it's the start of a deep rabbit hole for me...


I recommend page up and page down. It's quicker than using the scroll wheel.


I'm fairly certain the side buttons can be programmed using Karabiner Elements[1]. If so Karabiner Elements has a lot more options.

[1]: https://karabiner-elements.pqrs.org/docs/help/how-to/mouse-b...


Did you actually read the article? It is about why a simple remapping is not sufficient or at least has some caveats.


I’ll admit I could not and still can’t get the videos to load so I’m not 100% sure of the behavior this has. Karabiner Elements has complex modifications I’ll sit done at my Mac later and check for sure.


This is some pretty nice detective work. I need to check if my M720 does the same as the MX.


Another Logitech M720 user here. I had to uninstall Logitech's Options app on Mac because I found (via opensnoop) that it was capturing Cmd-Alt-Shift-A and Cmd-Alt-Shift-S (which I was already using with Moom). I couldn't find out why Options was capturing these shortcuts; I asked Logitech on Twitter but they never responded.


> SensibleSideButtons lives in your menu bar.

No! This looked so useful, but there's so much crap in the menubar now. A pref pane would be better.


There is an option you can click so it doesn't show up in menu bar.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: