My mouse driver is asking for a firewall exemption (2019)
twitter.com
twitter.com
> The reversed hardware is kindly provided by Roccat.
> The sound files and the Roccat logo are property of Roccat and are used with their approval.
A few years back, I owned a Roccat mouse myself and was delighted to find a decent Linux driver for it.
Plug-and-play, flash your own firmware if you like. Current models ship with QMK (open firmware), although I believe my older trackball didn't, I'd have to flash it.
I have both a left-handed trackball (rare!) and a right-handed mouse from them, I like to alternate.
Two obvious complaints:
- They're really expensive
- They're 3D-printed, which means manufacturing isn't polished. My trackball had a sticky mousewheel, which I ultimately had to buy a replacement for and swap out. My mouse has some rough edges I haven't filed down yet, and the 3D-printed texture may not be for everyone.
The good news is that it's easy to make replacement parts and repairs yourself!
Still, I wish they would make mass-produced versions with more conventional and precise manufacturing techniques, just with the option to 3D-print your own parts if you feel like it / need to. Maybe that would bring the price down while also improving build quality.
Tell that wikipedia ;)
It's a pity they don't sell the electronic bits (preloaded with the firmware). I can probably fashion quite a nice trackball enclosure from a block of wood; probably much nicer than 3D printed cheap-feeling plastic.
The draw of these is that they are fully (properly) programmable and can run QMK.
Also, the form factor and things like the Ploopy Nano are super cool. And because it's open source if you don't like the hardware/software you can easily change it. We use interface devices all day, everyday. Not having an ergonomic interface will catch up with you.
Every mouse I tried (suggested by reviews) does oops clicks sometimes, so I always turn off side buttons and live with the fact that they are just there discomforting my thumb.
I don't touch the side buttons when gripping or rebasing the mouse. That's not a G502 but every mouse I've tried so far (except for the G600) has been grippable without touching any buttons.
It's almost always used ironically, but there are probably a few edgy GamerGate types who take it to heart.
I'd be very curious to hear more about how you would go about making a wood enclosure, because I thought the same thing, but I do not have any woodworking skills. I have gotten used to the 3D-printed texture but I wouldn't mind having a nice wooden enclosure instead.
I have been very impressed by Keyboardio's use of wood, for example: https://shop.keyboard.io/ I got an Atreus with a wooden palmrest for my partner, who loves it and uses it daily. I just haven't found an open hardware mouse with similar build quality yet.
Mill two halves, then screw them together with the electronics inside?
File/Sand/Plane down a block for the top, hollow out the interior and close off the hollow with a thin balsa sheet?
The way I made propellers - with a craft knife, cut the wafer thin sheets sold by model airplane stores with successive concentric overlapping ovals for each 1mm height of the enclosure. Glue them all together and sand it down smooth.
Why don't you look it up and tell us?
:-)
Ever since I read that one I've loved being able to introduce people to things rather than doing the question mark "you should know this" sort of reply
It was a wild search tangent admittedly
I think* it has to do with not wanting to say something as 100% truth without knowing it's 100% true. Which can be interpreted as weakness/insecurity among more business/marketing minded folks.
*see my own usage of "I think"
I can see how that fits, nice one
I didn't take it as snarky[1], so I wouldn't worry about that if I were you.
[1] I even replied in kind, with a question :-)
b) Well made
c) Open source/hardware
Choose any two.
The open source community figured out how to write software that can turn CAD drawings into CNC instructions and wrote firmware that could drive the printers. Meanwhile, multiple Chinese manufacturers built hardware, competing with each other to build better stuff and increasingly cheaper prices. The end result is that you can buy really decent 3D printers at around $250 with open firmware.
"Need local admin and have physical access? ..."
What is the point of downplaying local privilege escalation vulnerabilities just because it's a hard scenario to defend against?
In my experience, it is in fact pretty trivial.
I'm not saying it shouldn't be fixed, I'm saying it isn't nrealy as big a deal as people are making it out to be. The infosec community likes to latch on to any little vulnerability it can and act like the sky is falling even if, when taken in context, said vulnerability is only a problem in narrow use cases or requires the target to pretty much already be completely exploited.
That's because while a given potential exploit might not be a huge deal, a collection of exploits become greater than the sum of their parts, so if you're security-minded, then you want as few of those parts as possible.
If you are talking about scenarios where full disk encryption is not enabled, then that is irrelevant. You may as well say that privilege escalation is trivial because some users don't put passwords on their account. The user obviously needs to take care of the basic expectancies first before worrying about vulnerabilities.
That's fair, I was making that assumption because it is true in literally every case I've come across. But consider that if you have local access to a logged in account you've already got access to unencrypted files for that user anyway. You don't even need admin.
FDE is orthogonal to user accounts, but yes it would prevent the trivial local access methods of taking over the admin account.
Not that, you know, anything the user cares about requires an admin account to get at anyway, as ransomware has consistently proven.
at the end of the day, users are responsible for the software they run on their machine. but viruses/worms that run amok are largely over thanks to restraining userland permissions.
Your opinion is dangerous, professional negligence.
https://news.ycombinator.com/item?id=27871956
Where its (mainly) one person in their spare time that is able to put these official drivers to shame.
It's usually common for one person to be motivated enough to do the work, so they are the ones most knowledgeable yeah. But the code is out there, it doesn't stop anyone else from looking at it/understanding it just as well. From the looks of piper, it looks like several folks understood it enough to add drivers of their own.
> Like, weren't practically all Linux webcam drivers implemented by one French guy at some point?
I really don't know.
So I bought a sealed-in-box new Logitech G500 from ebay as a spare because of course none of the new mice are anything close to the quality of the older models. Especially after being burnt on switch quality.
The Ploopy mice have an awful name but are definitely intriguing to me. QMK firmware is pretty much perfect, and I wish I could use it on the Logitech G500.
I used to recommend Roccat mice to people, but their lack of Mac and Linux support is a dealbreaker these days.
I've ruined myself with regards to mice. Over the years I've become very used to the G500 format: 2 side buttons for page up and page down make web and code browsing very fast. And a button by the primary left button is mapped to "show all windows" which used to be called exposé on Mac, and the equivalent in Gnome 40. I've also started recently using another button to plain-text-paste, which is surprisingly useful when pasting code to coworkers in MS Teams.
I had several Rival 110's before and was similarly happy, I like the Zowie a bit more because it's larger.
I know these switches work and can last a fair bit longer then the ones from the factory: https://www.digikey.com/en/products/detail/omron-electronics...
Supposedly will last a good amount of time, though I only did the replacement a month ago so I can't confirm that. The mouse was easy to get open and it was a very easy soldering job to get the old switches out and the new ones in.
Does the Roccat software even require registration, or it's just bloated because that's all they could do?
I'd even say Razer wins on assholery.
Truer words have never been spoken. It's a crying shame that "caveat emptor" has become so thoroughly ingrained in the tech scene. More and more, I see some gizmo that seems interesting, take a deeper look, and run away screaming when I find out what a crawling horror it really is.
The users are just fanatically tolerating Synapse 3 and are still giving Razer their money. Until they stop, this kind of stuff will continue to happen.
Also no tinkering required if your mouse is supported by libratbag.
Because they're HID compliant they do just work out of the box (on Windows or on Linux).
In Linux there is no "Oh! Oh! Install this proprietary bullshit to wring more money out of you. Please. Please! Come on, spare a few bucks!" step. If you don't want to do any tinkering the mouse Just Works™
But if you wish the little features worked, like apparently changing LED light colours, you can install third party software. At that point yes you are tinkering, but you aren't dealing with constant appeals to please let it change your default web browser, or whatever like in Windows, so that still seems like you're ahead.
I'm astonished Microsoft didn't just outright ban this nonsense. It's an awful user experience compared to Linux where all this stuff Just Works and Windows could have that too, not with more engineering work but with less by simply not allowing this crap.
https://github.com/libratbag/piper
it's a GUI app, it looks pretty nice. It's also in the Debian repos, so you can just install it with "apt install piper"
Looks pretty simple to me.
Why the heck does a few hundred KB in actual drivers and a simply configuration program need 200MB? When I had an MS mouse intellipoint was only ~20MB, and the current MS Mouse & Keyboard Center is still only about 50MB (which still seems much larger than necessary)
I have no idea why a keyboard without much interesting extras even needs 512K of firmware, let alone why the stock firmware fails on 3 of the buttons. They're only there since 1985 or so, you'd think they got around to test the numeric pad by now
If you want to know more about it, just google "Logitech Download Assistant". There should be a device for it in your Device Manager and an LDA.exe process running.
Not only that, it automatically installed the software somehow when I plugged it in, which I didn't want.
"Razer mouse software bug easily grants Windows admin privileges"
https://www.slashgear.com/razer-mouse-software-bug-easily-gr...
I had this with the Leadr model that they discontinued.
Yes, their software is horrible, but it's not necessary except for controlling the lighting. And the lighting is irritating. A lot of the custom buttons are superfluous for my needs..
But beyond that? It's a great mouse, the best I've had in decades. It's accurate, has great weight and traction, both wired/wireless options, and most importantly it has the thumb paddle so I can press down or up with my thumb to scroll.
No more repeated rolling of the scroll wheel, or pressing the wheel down while dragging the entire mouse forward or back...
Why don't more mice have this? And why'd they get rid of it on their newer mice?
Drivers installers on Windows aren't exempt from this nonsense as well since years, so every driver started coming with its companion app, very often a huge VB "thing" that did nothing important except showing its shiny icon on the desktop. Then years later they started phoning home to profile users, attempt to offer purchases for consumables (as printer drivers do), etc. In the old days however one had a way to control it: the .exe was often a self extracting .zip, so it could be fed to 7Zip and the like to extract the archive without executing it, then one would throw away the unnecessary bloat except the relevant .inf file and a few dlls or other small files, point to that location when searching for drivers, and voila: driver installed without the cruft.
The question is if a giant ball of Electron bloat could be dissected in a similar fashion in order to extract the important stuff and throw away the rest. I hope so.
Perhaps OSes could be smarter. After installing an app, it could monitor the "hot" paths in the code, and only load those instructions the next time the app is loaded. Also resources that are never used could be not loaded into memory. Etc. I know, it would be difficult to build this as you're basically instrumenting an app or driver and then rewriting it, but I guess it would be a great innovative feature in a time when OS research seems stagnant.
It may be the case that one could optimize for the case where a bunch of applications ship that and are statically compiled but use the same underlying libraries. In this case, some agent on the system could analyze the code segments of these binaries and on demand construct shared libraries that strip the shared portion from the binaries. Subsequent invocations would load the constructed shared libraries for redundant sections.
Still, this probably wouldn't help much and would lead to its own issues. One of the problems with these flabby things is just how the runtimes are themselves constructed. You still have per process data structures you'd need to populate and they probably have fat data structures that are not very space efficient, and so on. The size of the instructions is probably not significant relatively speaking.
Unfortunately there isn't a magic bullet to code bloat.
It helps to load the required pages into memory fast to enhance application launch times and then usual memory paging handles the rest of keeping required paths in memory.
Google says Windows\Prefetch is the directory for the cache. You could look here and see if there are any references to applications rather than just windows boot stuff.
Take another example. Install LaTeX. It's something like 5GB. It's huge because it bundles enormous numbers of packages.
It seems like there are zillions of Linux packages > 100MB. What does all this crap do? Why does everything depend on everything?
Take another example. Node. Building it from scratch takes a pretty beefy machine and a lot of time. (It takes over 20 mins on my 6-core workstation with 32GB RAM). Most of that is building V8. When I worked on V8, we periodically spent some time trying to get build times under control, but the needle barely moved until it got going again. We spent months and months of effort, over years, splitting V8 into more source files and more directories and enforcing header discipline, but all of it made build times worse. Despite how cool V8 is, I feel embarrassed in retrospect that the build system is so bonkers.
Linux is like this everywhere. Monstrous and labyrinthine. It really is impossible to understand it all now.
Isn't this like a first computer world problem? How many gigabytes does current Visual Studio take? Not talking about VS Code, because it's only an IDE, which still requires the actual Visual Studio C++ as the compiler.
The full Visual Studio is not required.
As for Linux package sizes go... why are you installing so many packages that you don't need just to complain about it?
On Debian and Ubuntu, `dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n` will tell you the install size of things sorted by worst offender; for me, on one of my development machines, is git, followed by Perl packages required by the system, neovim, and then a bunch of normal things expected on any install. `df -h` minus `/home` is a hair over 600mb.
git, being the largest thing, has an install size of 38 megs. Indeed, I cannot tell you why git is 38 megs, there may or may not be bloat here.
As a comparison, Windows uses around 6GB of space, and a MSVC install that has a common set of toolchains may take up to 20GB and... arguably does less than my <1GB Linux install (when it comes to dev work, anyways).
there are 1000s of packages, who has time to select a small subset of that? easier to install chubby swathes at a time.
and you can't install devel versions without bringing in many various forms of TeX
recently I install the emacs package on a system and it required python; that's sacrilege
if you install the full version that has every single package for everything, all with their own manuals etc. At least on debian-based distros there are options to just get the ones relevant to you.
$ wajig size | grep gcc gcc-5-multilib 6 installed gcc-multilib 8 installed gcc 44 installed gcc-6-base 60 installed gcc-5-base 66 installed libx32gcc1 98 installed libgcc1 105 installed lib32gcc1 125 installed libx32gcc-5-dev 6,280 installed lib32gcc-5-dev 7,020 installed libgcc-5-dev 12,193 installed gcc-5 23,648 installed
The basis of everything is actually the Linux system call binary interface. We can actually trash the entire user space and start from scratch with nothing but Linux. We can even trash the ubiquitous GNU stuff if we want.
Why can't we have a compiler with built in system call support? Just add a system_call keyword that inlines Linux system call code using the supplied parameters. No need for libc bullshit in the middle. No need for C or any specific language. Someone could make a language today and that single feature would make it as capable as C is for systems programming. They could write software and boot Linux directly into it.
Funny you should ask that. That is exactly how Virgil's compiler supports the Linux (and Darwin) kernels. Other than generating a small amount of startup assembly (10-20 ins), the compiler just knows the ELF (and MachO) binary formats and the calling conventions of the respective kernels. With some unsafe escape hatches (e.g. getting a pointer into the middle of a byte array), the rest is regular Virgil code that calls the kernel directly.
Take a look, I've been working on this for more than 10 years:
https://github.com/titzer/virgil/blob/master/rt/x86-64-linux...
The "Linux.syscall" is a special operator know to the compiler and it will let you pass an int (the syscall number) and whatever arguments you want (any types--it is implemented with flattening and polymorphic specialization) to the kernel.
With this I have implemented all kinds of stuff, including the userspace runtime system and even a JIT compiler (for my new Wasm engine).
Some syscalls don't correspond to standard library functions. As an exmaple, if you want to bind to opendir/readdir/closedir, you have to write those yourself in terms of the Linux-specific _NR_getdents64 system call.
Is your LinuxConst.SYS_open actually _NR_open? That's supposedly obsolete. glibc uses _NR_openat for open(). _NR_open is listed in the asm/unistd.h header in a section under the heading "All syscalls below here should go away really ..."
How about signal handling; are you dealing with sigreturn and all that?
You can get a small executable footprint (in terms of not requiring a dynamic C library) by maintaining all this yourself, though.
Why care about this? I want Linux on everything instead.
Virgil has its own calling convention internally (though this is basically System V on x86-64). That only matters when getting into V3 code or out, e.g. process entry, calling the kernel, and signal entry. For signals, the compiler generates a tiny stub that copies the signal handler arguments into the V3 registers and then calls user code. To install signals, user code just needs to fill out the right sigaction buffer, as any other system call. To return from signals properly, I studied assembly examples I found online. The runtime doesn't use signals for anything other than catching fatal errors (DivideByZero and NullCheck), so it just prints a source-level stacktrace and then exits. But Wizard needs to recover from signals in order to do proper OOB handling of user programs, so it actually does the proper sigreturn dance, but Wizard only does the fancy stuff on 64-bit.
In my universe, only three things exist: Virgil, wasm, and machine code. I have no need of other languages except as means to test those others :)
Virgil runs on the JVM and on Wasm too, and those require slightly different ways of getting off the ground.
I started looking into this myself some years ago. Even started developing a liblinux with process startup code and everything. Abandoned it after I found the kernel itself had an awesome nolibc.h file that was much more practical for my C programming needs:
https://elixir.bootlin.com/linux/latest/source/tools/include...
My code is in a bad state but if you'd like to take a look:
https://github.com/matheusmoreira/liblinux
It's amazing how this really lets you do everything... Want a JIT compiler? Map some executable pages and emit some code. You can statically allocate memory at process startup and use that for bootstrapping code. This lets you implement dynamic memory allocation and even garbage collection in your own language.
> Want a JIT compiler? Map some executable pages and emit some code.
Yep, this is exactly what Wizard does.
It can be implemented as a small function, that first appeared in 4 BSD. It's available in Linux.
$ man syscall
(Unfortunately, this function, lives in glibc. Obviously, though, it doesn't have to. All I'm saying is that this, or a similar function, can be a linkable symbol in some small compiled object file, and not an inline primitive that has to live in the compiler.)
If I look up Linux system calls on Wikipedia I get diagrams showing glibc wrapping the Linux system call interface because that's what you're supposed to be using. If I look at Linux man pages what I really get is glibc man pages with the actual system calls being almost an afterthought. Glibc wrappers actually do a ton of stuff like add cancellation mechanisms. Glibc also drops support for system calls that break their threading model such as clone.
It's the same problem with systemd. I look up Linux init system man pages and get systemd stuff instead. I expected to see kernel APIs useful for writing my own.
The library and kernel interface are more separated in Linux systems than in prior Unixes, with user space C libs being totally separate projects.
Over a Linux kernel you can find glibc, ucLibc, musl, Android s Bionic (newlib derivative from BSD), ...
> It seems like there are zillions of Linux packages > 100MB. What does all this crap do? Why does everything depend on everything?
I dunno man, but software can get complicated, and a lot of these packages probably have features that people use. Why quibble over hundreds of megabytes when popular Windows packages like Office and Creative Cloud are multiple gigabytes? It all seems very unfair that Linux is subject to this level of scrutiny when other systems have worse bloat by literal orders of magnitude.
Or to brick knockoffs! FTDI blazed the trail, now printers are doing it too. First party malware!
When I used it, MacOS also had the issue that some software didn't even have uninstallers. So you have to drag the app to the trash bin, then go and manually remove the various system software that it installed. Or run a script off of the internet. Software management on MacOS is no better than Windows in my opinion, and in many cases much worse.
If you could just assume Node and a modern browser already existed on the target machine you could just ship a node package and a minimal installer. But you’d need to deal with potential version and browser incompatibility.
The other side of this is Android makes it really simple for users to drop a shortcut to your website on the home screen. Apple, to encourage people into their cash cow app store, does not. I was all set to get a company going with mobile web as their primary UI, but it was too hard to get users to put the home screen shortcut down on iOS, so we ended up having to pay to have apps built and now have triple the complexity.
That is 'one Megabyte' RAM, not Gigabyte.
And even if it were a full blown cross compatible mouse driver with a lot of device features it is hard to fathom why such a driver would require more than a megabyte or a couple of megabytes of space. The basic functionality can be realized in less than 30k.
We had the whole operating system with GUI (Win3, OS/2 and Linux)run in 4 Megabytes. Sure it was snappier with 8 Mb, but that is still a far cry from the minimum requirements the commercial OS offerings come today.
The way we are wasting ressources is simply insane
You probably don't use an ancient OS as a daily driver so maybe those extra megabytes really are needed for something important after-all. I'm not saying Windows is super well optimized for space but you can't count the whole growth as waste. Even the default Raspbian Linux for Raspberry Pi requires several GB of storage.
But I usually avoid "gaming" hardware. Even if it's not overpriced it rarely looks good and has the same quality at best.
I'd argue that reasonable defaults are better. Asking permission for everything, including features most to all people would find necessary, just creates decision fatigue and results in people clicking "allow" on every popup.
But I recognize that I'm in the minority. So much so that I can't trust software to behave itself, so I've had to use my firewall to disable all outbound traffic by default, so I can add exceptions as needed.
It's amazing how rarely such exceptions are actually needed.
Although I'd still like to be able to opt-in to reasonable defaults if I trust that my OS's non-default default decisions are indeed reasonable.
However, it would also require a really good, understandable interface for granting permissions to applications. Files are relatively straight forward, as the file open/save dialog can be handled by the OS and anything the user does with it can be considered explicit permission. For other resources something similar might work, or might need a completely different abstraction.
As an Android developer, I strongly disagree with this. Even if I never prompted for permissions, giving me the ability to determine what permissions I have allows me to make certain the application behaves properly with the permissions it does have.
Ok, how about a compromise: We'll let the application be able to tell by default, but the user can can choose to lie to it.
"At the same time, your app should respect the user's decision to deny a permission. Starting in Android 11 (API level 30), if the user taps Deny for a specific permission more than once during your app's lifetime of installation on a device, the user doesn't see the system permissions dialog if your app requests that permission again."
Don't ask people questions that they are going to answer one way 95% or more of the time, or for which they haven't the context to answer. Just make it easy to change later if you need to.
I don't think Microsoft is in the business of selling desktop OSs anymore, despite the fact that they still charge money for them. All of their behavior suggests complete disdain for the desktop and users of the desktop. I think Windows is only still being developed because it is a delivery platform for ads and telemetry. For the moment I'll still take it over the alternatives, but I'm confident Microsoft will eventually push me over the edge.
If we're very very lucky, something like Haiku will gain a hypervisor, WINE port, and graphical acceleration, then take off in popularity and become the last refuge of the desktop. I'm pretty skeptical it'll go down like that though.
The state of mobile software (including the OS) has become so awful that I've already decided to stop using a smartphone entirely.
Could you explain that a bit more?
I'll save you the trouble: Dear readers, Linux Desktop is fine if you like the way it works. I encourage using tools you like. If you haven't tried it, it might work for you.
I don't like the way works, I've expounded upon the details many times, and I'm not interested in further performative argumentation on the subject.
Various groups make desktop environments that may be used on Linux, as diverse as KDE, Gnome, Chrome, and Android. It could possibly make sense to complain about one or other of them, or even several. As it is your complaint is entirely nonsensical, a category error like saying red is too hot.
The community of people who make and distribute Linux distributions and software intended for the Desktop use case, when taken as a whole.
> Various groups make desktop environments that may be used on Linux, as diverse as KDE, Gnome, Chrome, and Android.
Calling Android or ChromeOS a Linux Desktop is incredibly disingenuous.
> It could possibly make sense to complain about one or other of them, or even several.
Every distribution has the same problems because they are all built with more or less the same hodgepodges of desperately developed software.
In other words, slightly better than trying to change system settings in Windows 10?
The "Diagnostic Data Off" — formerly Security — should be exactly that, as Microsoft has long defined the option as "only the diagnostic data info that is required to keep Windows devices ... protected with the latest security updates." The company admits to some collecting — OS, device ID, device class — but the option waives all user content and data that might finger the user, including company name.[1]
I think that option is only available in the Enterprise edition though, so if you want to pay them for it, it might be a bit pricey compared to other options, at ~$84/year (if you can even buy it for a single account, I have no idea).
1: https://www.computerworld.com/article/3532008/microsoft-elim...
I have not installed a lot of software on Windows, macOS and Linux in my "main" OS instance because it simply looked and/or behaved shady as fuck.
I miss the days when Logitech made great, comfortable mice for normal desktop use, with a small number of useful extra controls and a minimal driver and UI to choose what they did. I miss the days when you could buy a comfortable typist's keyboard for a sensible amount of money.
I literally don't know a single brand that reliably makes good keyboards and mice for normal use any more. Every single one (and I've tried most of the big names) produces junk. Even in the £100+ range that is supposed to be high-end hardware, I have probably returned more than half of the products I've bought in the past few years because they had obvious serious defects out of the box or developed them within a few months of normal use.
I'm hard on that stuff; i killed multiple original 90's manufactured Model M's and wore out a stack of MS trackballs over those 2 decades. One of the fancy logitech "G" blinky lights keyboards lasted less than 3mo under my hands. Kensington cheap trackballs quit moving right in days and stop working in months.
...how? I'm fairly sure I could bludgeon a man to death with my model M and run it over with a truck and it would still work.
Other than that I have one of the cheaper models of Das Keyboard for work and have been nothing but happy with it. Also upgraded it with some o-rings so people around me don't want to kill me.
I use both without installing any junk.
You're talking to one of them. Disappointing failures of both mouse and keyboard resulting in returning hundreds of pounds worth of supposedly high-end products within months of purchase. At least one of the problems I had was also getting reported by others by the time I sent that product back, so it also looks like a design flaw and not just bad luck. I think you also need to install their resource-hungry, crash-prone software to make use of most of the special features too, though that's hardly relevant if keys are falling off and buttons aren't registering presses anyway.
I wouldn't even consider buying more peripherals from Corsair for a while. The quality isn't there and they don't work properly in a you-had-one-job kind of way. Worst of a bad bunch in my experience.
I've been using a $25 Logitech M535 (Bluetooth) for years now with my Mac. Works perfectly, no drivers needed. Not too big, not too small, not too heavy, not too light.
Curious what you don't like about it?
For me, something like the Logitech Performance MX was the peak in terms of mouse comfort, allowing a natural palm grip. It had a couple of useful extra buttons by the thumb, and a few other controls I never used that weren't intrusive. I swore by those things for years and had them on every PC I used regularly.
More recent Logitech models have added a second wheel by the thumb for horizontal scrolling, which I do like. Sadly they also come with a long list of regressions. They try to be too clever with the main scroll wheel. They've added other controls that are easy to trigger unintentionally. Most importantly, the sensors really seem to struggle with some common surface types, something that was never an issue for me with the earlier models.
Somehow the shape for the later models has never quite matched the Performance MX generation either. For me they are mostly either too small for a comfortable palm grip or using some strange spiral effect that makes the middle part too high for comfort in prolonged use. I wonder if the spiral ones are meant to fit the claw grip popular with serious gamers. And the models like the MX Master that were supposed to be an improved Performance MX style somehow never quite fit either, though I struggle to put my finger on why that was.
I still use Logitech mice for most things, because they seem to be the best of a bad bunch for me at the moment. But I'd throw them all out in an instant if I could have the one I actually liked back again.
Like with Chords...
Press Button 1 = Macro 1.
Press Button 1 + Shift = Macro 2.
Press Button 1 + Button 3 = Macro 7
Chords are so powerful but haven't really been adopted... Razer just adds more buttons to their Mice. And there's a limit to how many buttons you can add! Ha.
I could do more with a three-button mouse and software that supports Chords than I can with their like 19-button monstrosities.
Do NOT buy ASUS ROG keyboards.
I absolutely agree with your last sentence.
EDIT: Subject to my comments above about Logitech software on Macs.
> todo item added: Start sniffing the protocol this tool uses to reprogram the mouse so I can build a cross-platform tool for it.
This does sound like an intriguing idea. For all those crappy Windows drivers that come with an 300 MiB+ Electron based configuration UI, auto updater, etc... figure out how to get the actual driver binaries and build a script that downloads and repackages them using NSIS.
One could in theory build some kind of Qemu based sandbox framework that snapshots the disk and extracts the binaries after installation. Tricking the updater into actually installing the driver inside a VM without the hardware might be a bit tricky, but depending on how they do the check (e.g. look if the USB ID is present?), I guess it should be doable and might be a bit easier than the reverse engineering approach in this Twitter thread (and also easier to automate, so it does not just work for this particular device).
I fear the biggest challenge for such a project would be dealing with the hardware vendors legal department though.
Controlling USB devices is rather simple, once you know the format of "packets" they send to their interface endpoints, to control the device. Format can often times be deduced from observing the URBs in wireshark while clicking around the vendor's app.
My point is that gets a bit tedious for sufficiently large number of stupid ass USB devices. You might want a simpler to automate approach, and possibly something where you don't have to deal with binary driver signing yourself, which is rather expensive if you are doing this for a hobby.
> No legal threats with that, because RE for interoperability is legal.
The local copyright law where I live agrees with that assessment. I take it you did the necessary research for wherever you live?
But what if your reverse engineered driver infringes one of their stupid ass patents? What about trademarks (e.g. if you try to advertise it as a replacement for the official device driver)?
You do know that even if you are totally in the right, that does not necessarily stop them from suing you anyway? Regardless of who is actually right, this will end up costing you a lot of time, money and nerves.
I'd be very careful making legal assessments like that as an engineer. Responding to a legal threat totally unprepared and with a response like that will make the "sue you anyway" scenario very likely.
> "Beast Man Premium"
That has to be some sort of USB-controlled pneumatic dragon dildo
It's so depressing. You pay premium prices yet everything looks like it belongs in a 15 year olds room.
If I could have something like the apple mouse, with physical buttons and a scroll wheel - I would be in my happy place.
The Apple keyboard is such a pleasure to type on.
1. I like Cherry mice. Good value for the money https://www.cherry-world.com/products/office-and-home-office...
2. Does somebody use the Apple Magic Pad under Linux? How to enable right mouse click?
Platinum level sold separately.
I'm lucky I guess in that my mouse preference is actually the Apple mouse. I've tried a bunch of others of the years and keep coming back to it.
I'm definitely aware of the shitshow that is peripheral drivers. It's always been bad, but now it's just awful awful awful. Even if someone introduced a mouse that appealed to me, I'd be hard pressed to bother given my suspicion that the software required would be terrible.
In any event, yes I did not know they stopped shipping them but that is only a good thing. I think the polite way to describe the quality of those mice is not very good. Several more impolite terms come to mind.
I traded my own iMac in a few years ago, but got to keep the peripherals. I'm not a huge fan of the, uh, flat ergonomics, but it is an amazing mouse when you need one to throw in a laptop bag, and the sensors are top notch when it comes to actual tracking. If only it came in a more ergonomic shape...
I mean the Magic Mouse -- the one that makes some people enraged because you can't use it and charge it at the same time. (Turns out: this is literally never a problem.)
Of course, mice (and keyboards, and pens, and notebooks, and and and and and) are intensely personal items, and what works for me is just that: what works for me. I don't really use Windows except in remote desktop sessions, so compatibility with MSFT doesn't matter to me. I don't play games on my computer much anymore, but when I did I used a trackball that, if memory serves, didn't require any drivers.
Granted, it's absurd it needs internet access, I'm just saying that regardless of how well they are written, it would be nice if some drivers were available from the device itself.
Apparently there are some wacky domain specific mice: https://3dconnexion.com/uk/product/spacemouse-enterprise/
Off the top of my head, non standard features could be
haptic feedback, vibrations, or purosely slowing the mouse down for interacting witha game
palm print reader
electric shock if the wrong person uses it
locking mechanism for a secret compartment
temperature sensor to let you know you might be sick
fan to kick in to cool your hand off if its too hot
persistence of vision display using the laser on the bottom
That's all I got right now, but the point is if someone wants to do something weird they should be able to.
https://apple.stackexchange.com/questions/24118/how-to-downl...
https://www.bleepingcomputer.com/news/security/razer-bug-let...
I recently bought a Logitech G Pro X Superlight to use as my daily driver on an M1 Mac. The mouse, it’s amazing. But Logitech’s software is a fucking car crash. A casual perusal of Reddit and customer forums will confirm. Runs as root, Sensor DPI won’t stay set, on-board mode flat out doesn’t work, requires manually setting permissions on a config file in order to save settings (!), etc.
After struggling with it for several days - including trying to set it up in on-board mode on a Windows PC before bringing it across - to no avail, I finally came across Steermouse (http://www.plentycom.jp/en/steermouse/index.html). Was then able to fine tune cursor and scroll wheel speed and acceleration, middle and back / forward button customisations, etc. Nuked Logitech’s crap from orbit and never looked back.
I’ve had similar experiences over the years with multiple Logitech mice on multiple Intel Macs - mostly using Logitech Options instead of GHub. You just can never get it quite right.
So, PSA: if you’re on a Mac (AS or Intel), own a Logitech mouse and fucking hate your life, try your luck with Logitech’s software. Otherwise, get Steermouse.
EDIT: Forgot to mention: if all you want is button customisation and you don’t want to pay for Steermouse, Karabiner-Elements is free and will have you covered. You may already be using it anyway to, eg, remap your Caps key. It can’t do cursor or scroll wheel adjustments, though.
I now have a G703 (so new G Hub software) and while I haven't tried that on the Mac, I can configure the onboard settings from Windows or from Linux [0] with no issues whatsoever (aside from setting a button to show the battery level, which, for some reason, doesn't work).
---
[0] The Logitech software doesn't work on Linux, but Piper/ratbag work just fine.
This is funny, considering it's an Electron app. They just didn't take the time to port, apparently.
I have absolutely no experience with Electron development, and actually believed that the cross-platform thing was free (or almost). Again, at least for apps that don't need special functions that could be platform dependent.
Besides that, unlike java, nodejs don't bundle a lot of stdlibs by itself.(It don't even have a lib for manipulate images!) So you end up being required to use custom native modules for some specific tasks.(If no js alternative available)
The nodejs way is build yourself, so you will have the right one. But since it is a bundled electron program, it doesn't work and you need to prebuild it.
I now open Discord exclusively with firefox.
I always have Discord, Element, VSCode (two windows), and two separate Chrome profiles running at the same time and I haven't seen it crash in weeks.
However, I'd prefer native, non-Electron app, that doesn't take 350 MB of space, just to configure my mouse (G Hub).
I have G600, the software works in my MBA M1 but it couldn't pick up my mice. Because G600 is connected through the mini dock station dongle.
That said I do have some weird issues with my mac and haven't rules it out as a cause.
Personally I don’t have a fancy mouse (just a cheap wired Microsoft one) because it’s hard to find good ambidextrous mice. So it probably just uses standard mouse drivers.
Razer used to have a mac version of their app but they just decided to not make their new app and support any new devices several years ago.
I typically swap my mouse hand to prevent repeating stress injuries so there’d have to be better ambidextrous support!
I used Asus mouse. It was truly underwhelming, even on Windows. It did not remember its settings, instead some "driver" software applied those settings on Windows startup, which caused mouse device to disappear for a few seconds every time I booted my computer with annoying plug-out, plug-in sounds.
> The registration information is not refundable because it is a short string and easy to copy. We cannot accept any refund requests for it. Please try this software before purchasing a license. You do not have to pay unless you are completely satisfied with this software.
This is happening here.
For Germany, see https://www.it-recht-kanzlei.de/digitale-inhalte-widerruf.ht...
2) EU regulations do have a nuance - and in this case, 1) makes determination if said software needs to have a refund policy for the consumer harder. While WinRAR does have a refund policy, it seems the period for refunds is shorter than what is mandated. win.rar GmbH is based in Germany, so how it did bypass these rules? Spoiler: they didn't, the rules allowed them precisely due to the evaluation period.
I believe the g305 works with the old logitech software, which is much better than ghub. You should give that a try and see if it solves your issues with having to launch ghub just to get your mouse to work properly. Here is a link: https://support.logi.com/hc/en-ca/articles/360025298053
I never installed drivers for the mouse. Its just a mouse; I shouldn't need them.
I recently bought their updated version of that mouse for our Windows machine, and tested it on my iMac; no drivers required. Maybe there are fancier mice that require special software, but I hardly use the fancier scroll functions of the mouse I have, so I have a hard time believing there'd be other controls that I'd be willing to install new software for.
That said, I'm all in on trackpads 24/7 now and have been for years. Nobody does trackpads better than Apple and using a giant external one while my laptop is docked helps me to remain productive when I need to undock. So much of your productivity is muscle memory and by using a trackpad full time, I'm also flexing those muscles.
An acquaintance mentioned that her daughter damaged the trackpad on her MacBook. She was making do with a regular mouse, but apparently hated it horrendously for Minecraft and desperately wanted to get the trackpad fixed. I can't even wrap my head around the idea of Minecraft on a trackpad.
I've found basically all mice will work if all you want is scroll and left, center, right buttons. But if you want all the extra stuff, like the various wheels and side buttons etc., and especially if you want to customize the response, which CAD people often do, then one often needs the driver.
I'll be honest, Fusion 360 is still a lot better in a lot of ways (advanced feature set, ease of use, layout and hotkeys, etc), and if I were employed to do CAD full time, I'd still be using it (helps that the company would be buying the license).
FreeCAD is workable, though. And since I'm mostly just making parts to 3d print, it gets the job done nicely.
TinkerCAD is another option (https://www.tinkercad.com/) and it's honestly the easiest CAD tool I've ever used. But it's not really comparable to the real parametric CAD tools.
I have 2 extra mouse buttons for switching between virtual workspaces and another 2 for volume control.
https://github.com/dheera/scripts/blob/master/config/config-...
https://github.com/dheera/scripts/blob/master/config/files/x...
I currently mix gamepad with a split keyboard(Freestyle 2) and a Kensington trackball as the backup mouse; having the controller in the center of the split makes it smooth to pick up and put down. And if I really needed more dedicated controls - well, why stop at one gamepad? Maybe I should try a flight stick too.
Of course, the mouse is a Razer...
Trackpad support though has had many issues over the years in my experience across devices & distros.
Wacom tablets track every app you open, last year: https://news.ycombinator.com/item?id=22247292
Just as well, since Synapse is terrible.
But after this thread, maybe I just just try it.
I tend to just ... never install any software like that on my Windows PC.
I also don’t tend to install software like that (including the GUIs for graphics drivers too—just install the driver through Device Manager) and I don’t care about the lost functionality. But if you want your fancy gaming mouse to have most of the special features it was advertised to have, the software is useful.
[0] I don't think it's an actual driver, I think it just remaps USB HID events from the built-in driver.
... but I don't care about customizing button behavior or anything like that, and only have a mouse this fancy because I wanted to 3-device switching on it (so I could easily use it on Windows and iOS, too). Though now that I've got one I'm kinda in love with the free-spinning scroll wheel and would have trouble going back to a normal one (though I hated it at first).
Eventually just put the mouse into onboard profile mode, assigned all the buttons to F13-24, then mapped them with AutoHotkey. GHub, goodbye and good riddance.
Agreed. I have a 3Dconnexion CadMouse Pro Wireless, which is the only mouse I could find with [an actual middle mouse button in addition to a clickable scroll wheel]. After upgrading to Big Sur, physically clicking any mouse button doesn't register click events with the operating system. So I can move the cursor but not click it. The recommended workaround is to plug it in with the USB cable and use it that way.
Is it 3Dconnexion's or Apple's fault? No idea, but this is just insane. When was the last time an OS upgrade caused your _mouse_ to stop working!? It's like taking a time warp back to the 90s.
There's libratbag[0] if you want to mess with some DPI settings.
I have a Mac machine and a Linux machine side by side and my efficiency on Linux is like double that of on Mac, even though I use the Mac 90% of the time.
(Mac destroys everything else on 4k scaling, though. Linux is atrocious at that. Windows is just "good enough.")
No. Most Mac users are obsessed with keyboard shortcuts because they're faster and more efficient. This is true whether a mouse experience was super optimized or not. If you're typing moving to a mouse takes a lot more time than using a keyboard shortcut. Similarly being a left-hand shortcut wizard is highly effective when combined with a mouse as well.
Lets not use stupid hyperbole here.
I think 99% of Mac users could plug a mouse in out of the box and use it just fine on a Mac. Those that need the extra support can just as easily install one of the many 3rd party utilities that better handle mice support than the manufacturer.
That said, I'm full time trackpad, even on desktop, so mouse stuff is rarely an issue for me. I'm only using a mouse in specific scenarios.
I tried Microsoft, Logitec, and SteelSeries, which is about as great a variety of mice as can be expected.
I know I tend to be in the minority on HN in my dislike of macOS, but I'm trying here.
Conversely, I really really like the magic keyboard, and having an extra accelerator button is pretty nice (that isn't the stupid MS button).
Isn't this the default behavior of Photoshop? I've been using space+drag since moses was a baby. How is this a feature of this software?
Razer was a huge PITA constantly forgetting my config and I couldn't be happier now that I have Karabiner handling everything for my Razer device.
Corsair makes a great wireless headset that plays nice with Mac and has good range (I can walk around almost all of my house and stay connected which is a godsend for Zoom hangouts with friends). Unfortunately, their software, iCue, is trash. It regularly tells me my headset is "Unavailable" when it's working just fine and if I leave my headset off the charger (aka, I don't plug in it) and it goes to sleep then it's a 50-50 chance that it will forget it's config. I couldn't care less about the RGB nonsense on the ear cups but the bright LED on the mic boom (green = on, red = off) is distracting. Thankfully they have a setting to only show the LED when the mic is off (exactly what I want, I want visual confirmation I'm muted). The problem is if it loses it's config that defaults back to always on and I have to do a dance of killing the iCue software and relaunching it until it fixes itself.
Fyi I frequently have to open zoom camera settings to make my laptop camera (Linux, darter pro) work. The fault may your case be shared with zoom, which is also a dumpster fire.
There are dozens of threads asking about how to use logitech and elecom trackballs on Macs and they all end up with "Well, I finally got steermouse and all my problems have gone away"
https://code.woboq.org/linux/linux/drivers/hid/hid-elecom.c....
If you use a recent Elecom device and an LTS linux kernel you need to patch your kernel just to get the buttons working right!
2021 would be the first time I've even heard about headphones needing the vendor's app to work right, or input peripherals needing to install its own drivers like its 1998.
almost 100% of the big-name companies that sell performance mice have this wierd thing where they force you to download and install bloatware just to have your mouse work properly.
Had that problem years ago with my MadCatz R.A.T.. When MadCatz went out of business, my mouse turned into a paperweight.
Currently using an A-JAZZ AJ52 (about $10 on amazon). Been using it for over a year now and it works perfectly for work and gaming. Drivers are plug-and-play, so no bloatware installed along with it. It really is nice.
Their mice hardware is pretty good, but the software is so bad I never install it and just use whatever works on the mouse by default.
On Mac I use the magic trackpad for wireless because it's the only one I've found that consistently works with the bluetooth connection. I'm not sure who is at fault, but other bluetooth devices just constantly have issues (drop connection, fail to wake, fail to pair, etc.)
For wired I sometimes use one of the Razer "Gaming" mice - I don't like the aesthetic, but there aren't a lot of great options in that category and they work well enough.
Apple mice have never been good - they've always been form instead of good design.
https://www.logitech.com/en-us/products/mice/mx-anywhere-3.9...
I use a M-R0056 MX Ergo trackball, primarily for CAD. It's fantastic hardware, very precise & responsive, controllable, and reliable even after years of being packed into/out of a laptop bag almost daily, etc.
But the drivers? Ugghh. After looking at all the great function mappings and other stuff they could supposedly do, I did a whole bunch of setup, and found that the software was, to be very polite, flaky.
Tried multiple fixes, but in the end, just de-installed and ran the hardware with the default Windows mouse software ever since. The Logitec software is just a complete waste of time.
I haven't been in windows internals since Win32, so I have no idea if it is MS making it impossible to make good drivers, or it's lazy 3rd parties shipping second rate stuff. To me it feels like it's 2nd rate managed as bloatware - just use the biggest and quickest libraries available and ship it, but that is complete conjecture. Either way, it is really disappointing to get such good hardware and not be able to take advantage. If anyone has any insight as to why it's so bad, or what can be done about it...? E.g., is there a similar obscure utility like Steermouse for Windows (looks great, but seems Mac-only)?
+1. It's the only way to be sure.
The old software worked well. I was super disappointed when I got a superlight that it simply didn't work with old software. I'm on windows but describing the new software as a car crash is still extremely accurate.
Anyone know of software similar to steermouse on windows?
Without the software running, the extra programmable buttons on my mouse (which I used a lot) wouldn't work, which is normal.
With the software running, my G930 headset would now reconnect over and over for ten minutes whenever I plugged it in or turned it on, making it almost useless.
It eventually resolved itself, but I don't know when because I didn't use it for a few years. Ugh.
Since then, I've switched over to a driver-less mouse where everything is controlled via mouse buttons (XTRFY MZ1).
What keeps me sane is I bought two G203's, configured them on my PC, saved the settings to the mouse itself, then used them on my work and home Macs. Note this isn't required, but mice often come configured with relatively low DPI or annoying button assignments.
I'm sure that allowed them to iterate quickly, hire developers who know nothing but JS to build their driver package and ship the MVP with low costs!
Isn't that the type of software that keeps being defended here? ^^
What are you babbling on about?
No? I've basically never seen that and I see endless posts like yours.
> 1. Yes, we’re building on Electron. Yes, we are aware of the performance tradeoffs, but have decided this is the best choice for us. We’re shipping Windows, Mac and Linux clients along with browsers with a four-person team — it’s the only good way right now to do that without features taking six months. We’ve modified the screen sharing pipeline in Chromium to reduce latency as much as possible, because with interactive screen sharing, milliseconds matter.
Literally a massively popular post from this week, and all of their comments within are "Well yes, but theoretically VS Code got it to slightly over a hundred megabytes when idle so naturally Electron's perfect."
Now find not just one (anecdote) but a trend in HN comments that this tool is recommended to be used when it is clearly the wrong tool for the job?
Really depends on your definition of "reasonable". I could invoke Goodwin's law :)
However, since lots of software is still being written in Electron and... essentially none of the criticisms and drawbacks of doing so have been addressed, the anti-Electron group feels like they're being ignored. Because they are. So when they make posts about feeling ignored or complaining about having to repeat the same criticisms over and over without any improvement, that's because that's what's happening.
The anti-Electron people are not saying that nobody agrees with them. They're complaining that their arguments are clearly falling on deaf ears.
App developers want their user to have a good experience (I'm guessing). But it isn't great with electron. But its fund one team or fund 3 ui teams (Windows, Mac, Linux) and hope testing gets them all in sync.
Unfortunately there isn't a great cross-platform solution (qt?) that makes everyone happy (or at least not furious).
This kind of “reply-to-agree-and-pile-on” chain happens on HN a lot, but there are certain topics that really set it off, and Electron is definitely one. The commenters are commenting, the readers are upvoting, and what we end up with is an atmosphere where one side of the conversation is clearly getting more engagement.
> and all of their comments within
A majority of the following posts (with regards to Electron) are negative...
> ust promise yourself you'll eventually quit Electron. Electron is nothing more than a deal you make with the devil,
> Don’t just tinker... make it a grand North Star goal to lose Electron, and make performance your moat.
> It being Electron especially explains why it's so much more resource intensive than the other solutions.
> I hope you'll reconsider as your team grows.
> For me personally, memory usage has been a big concern with the growing number of Electron apps
> Indeed - a key competitor, Tuple, does not use Electron, and as a result I won’t even be taking a second look at Pop.
It's interesting that people on HN seem to be in such an obvious echo chamber but also see themselves as outsiders.
Under such conditions, expecting a consistent, well thought out, position from post to post is unrealistic. And not really even all that surprising.
HN is definitely swarming both proponents and opponents for Electron. While I can understand the appeal of Electron, I'm no way in favor of it.
Do I like the 300mb download? No
Do I like the development language? No
Do I like the apps built with it? Depends entirely on the app.
Do I FUCKING LOVE BEYOND BELIEF that it means linux support is native and present at first release? You bet your ass I do.
And at least in my experience, spinning up a VM to run windows only software is a bigger battery/memory/cpu hit than running electron.
---
I would love it if Electron was better on those fronts (not to mention a few others) but it's good enough for most of my current use cases.
> linux support is native
Whoever told you that Electron means native Linux is lying to you. It's as native to Linux as a web app is native to Windows or Mac; that is: it's just run in a glorified browser.
But it means (in theory) the same experience on all plattforms.
And in my opinion, a working linux electron app beats a buggy wine ported version by far.
Because this is usually the choice. The linux market is way too small and unwilling to spend much money, than to justify a common software developer to spend the effort of porting.
Citation needed.
I think for years humble indie bundle kept statistics and linux supporters were always chipping in well above average.
Interesting. I don't seem to be lacking software to do everything I want to do in Linux without having to use Wine.
Also, I've spent more money buying Linux software than any other platform.
That's quite the opposite of native since each platform has a host of unique features and capabilities. Guaranteeing the same experience on all platforms is guaranteeing that you're not using the platforms natively.
It's also with chrome super easy to open a page without the normal browser UI that looks like an app add a .desktop file and presto it's an app it would actually be superior in many respects.
Yeah that's what Electron is.
> add a .desktop file and presto it's an app
So Chrome has turned the .url into a .desktop and ruined what .desktop means. Neat.
> it would actually be superior in many respects
Few, not many. And those respects are garbage because it's a still a web app masquerading as something it's not.
This means that it shares little with the installed browser and will consume 300MB-1GB of ram itself.
I do not suggest a web app is an adequate replacement for a native application but rather that a website may be a superior alternative to electron as it uses fewer resources while providing a similar UI for some applications.
It's not some random 3rd party that's trying to implement a buggy client or wrapper. At risk of being shut down at any moment, and probably violating the company's terms of use. (which is a whole different conversation around the sad reality of interoperable software today)
---
It's native in the sense that I, as a developer employed by a company using it, can easily drop in a linux release without having to have a long drawn out cost/benefits analysis trying to convince PMs that we should do it, because it's not months or years of additional work - it's some manifest file tweaks to get icons in, and possibly some additional signing scripts to be run during the final packaging.
---
It's not native in the sense that it directly uses OS specific APIs, but who gives a flying fuck? Seriously.
I spend 95% of my time in a browser or a text editor already - "Browser with better system access" is just fine to me.
It turns out RAM and disk space are really, REALLY, REALLY fucking cheap. as in - I can get 32gbs of ram for less than the cost of a windows license. So I'll take my linux support, thank you very much. (shocker - I also like mobile web apps, and strongly favor mobile moving that direction as well - For exactly the same reasons).
Except for the times when that isn't true. Elsewhere in this thread people are complaining about how the Logitech software is Electron based but doesn't work on Linux.
> It turns out RAM and disk space are really, REALLY, REALLY fucking cheap.
RAM and disk may be cheap and plentiful, but battery power and bandwidth are not. It's why web apps don't make much sense for mobile today.
I have less than 5 installed apps that I use on my phone directly, and those are almost all exclusively apps that need direct hardware access - Camera - Phone - Maps
I also happen to use a few apps to work around sites that are genuinely awful to their mobile users (reddit, for example, is a black whole of dark ux patterns if you open it in a browser without faking your user agent - So I run bacon reader which [ironically] is just another webview running on the device anyways)
I'm just the opposite of you. Just using web to reach HN, and Google, nothing else. Everything I use is native, and I'm happy with all the native apps I have.
Hardware is cheap, network is reliable notion is just an illusion. No resource is cheap and nothing is reliable. I'm in a remote location with 4G network access and, while it's not slow, it's unreliable and choppy as hell (with full bar / excellent reception). Even well-baked and battle tested algorithms and applications (e.g. Zoom, Skype and other similar covid-19 critical, realtime software) choke, shudder and fail with smallest network congestion.
Also, while RAM is relatively cheap, processing power is not. Just because you have fast flash and plentiful RAM on the device, it doesn't mean all is yours. You can't just assume to use all of that.
If that software is running on a resource contained system, It'd be probably confined in a cgroup, and it'd be killed or crashed with OOM exceptions constantly because of this assumption.
At the end of the day, Electron is useful for some stuff, however it's not native in any means. If it was literally native, Evernote for Linux would've been released by now. Tiddly Desktop wouldn't have some silly fullscreen bugs. Spotify Linux wouldn't be a volunteer project inside Spotify. A simple application wouldn't consume as much memory as a full blown IDE with gazillion plugins enabled and written in Java. Visual Studio Code wouldn't need plugin subsets or "Hey, group the plugins you use by language, otherwise memory usage becomes unwieldy" warning. I can go on and on and on.
We have alternatives. We have Qt, GTK, Python compiled with Cython (if you need binary code), heck even Lazarus and WX widgets, and Java. It's unbelievable that JVM is lighter than Electron with all bells, whistles and Hotspot and whatnot. Some of these technologies can adapt themselves to the hardware resource limits of the system they're running on, transparently, with negligible performance impact most of the time.
So, you can tell that Electron is a better RAD tool than Java, but it's nowhere the only feasible tool to enable native cross-platform applications. Electron is lazy. It's the perfect manifestation of MVP meets mock-ups with enough features baked in to allow rapid-fire releases.
I agree that 640K is not enough for everybody, but no resource is as abundant as hydrogen in the universe.
I wish there was something like Lazarus, but somehow more language agnostic.
(Full disclosure - I don't really recommend this, it's not ready yet, imo)
I have not used Lazarus for any serious project, so if there's something particularly novel that you enjoy about it, I'd love to learn!
And nothing "better" and more practical came out ever since paradigm wise. Just insane bloat of trying to marry Browser to a native application
Keep waiting for a miracle. Meanwhile native applications solve problem with ease. Sure some applications are totally make sense as browser based but you can't just color everything the same. This dream will never materialize for way too many reasons, including political ones.
I think this is a pretty poor take on the problem. If that were really the case we'd all be using winforms 3.1 (or whatever the original version number was...).
Here's the "Better" that a browser does
- It's got standards and open documentation describing most behavior
- It's got incredibly robust networking code.
- It's got an insanely flexible markup language for describing both what form elements are present, but also how they're visually displayed. (Show me how to do animations in Lazarus... last I looked it was all manual) NOTE: Not only is it insanely flexible, it also is well documented and described by standards.
- It avoided the trap of being GUI first at development time, encouraging an eco-system of tools that generate and modify the text based definition of the GUI you're going to present to users
- It has good separation of concerns. My form elements can be styled completely differently by just swapping out a style sheet.
- It has good (although often underused) A11y support. For most disabilities that you can think of.
- It has first class debugging tools available, supporting a wide variety of environments.
----
That's what the browser brings. Is it heavy? Sure. Is it bloat? Not really.... depends a lot on your use case.
a) animations. yes you have to do it manually in Lazarus. or you can spend few days and write a component which would animate any published property of any component on a form. Will take a few days to write it in a flexible way and not to be ashamed to submit in public repo. I suspect such component maybe written by someone already but since I did not need it I did not research the area.
b) Debugger is a sore point. It is adequate but falls way of behind what you have in browser or in Delphi (commercial IDE Lazarus is trying to imitate). But they're not standing still and it is getting better.
c) A11y - Highly unfamiliar with the subject so you are most likely correct here.
I do not dwell on "liking/disliking" languages. I use what I use (few languages) for pure practical reasons. To me the goal is to design and deliver end product. Language to me is like a screwdriver. It just has to be good enough to do the job without bending backwards. For making native multiplatform GUI applications Lazarus/Freepascal combo totally ticks the box.
Not me.
From my point of view, if the Linux version is Electron-based, then there is no Linux version.
If the linux version is Electron-based, ALL versions will be electron based. That's the whole point.
If you'd rather not use electron based software, more power to ya - that's your choice. But lets admit that's a luxury that some of us don't have - I'm a hell of a lot happier spinning up slack as an electron app rather than having to run it in a vm, I promise you that much.
It's fine to hate the tech and wish that someone would come along and make something better but the tools that everyone big and small is using to build apps is cross-platform by default and that's a huge huge huge win for users.
If the determining factor for whether my product was useful to you is what rendering engine it uses, you were not and will not ever be the target user anyways.
I don't make "social" apps, I'm not in the business of collecting users for the hell of it. Either I provide business value or I don't, and Electron has very little to do with the business value my customers get (although it certainly does accelerate new feature releases, and most of my customers like that).
edit: ah, too late
AFAIK, JetBrains builds all of their excellent IDEs with Java + Swing. Old school for sure, but it works great. If I were building something new today, I would definitely consider Java on both the client and server sides.
Ironically, this thread is exactly about a Logitech app that doesn't have this.
Just a very loud minority. I don't particularly like Electron but compared to the alternatives it's the best choice for a lot of apps (as demonstrated by the success of many apps using it, despite "performance is the most important feature" crowd).
I've been trying to build a desktop application for the entire pandemic. In my professional work I work on infrastructure products (think software engineering, not DevOps or SRE). My skills are not really outfit for frontend development or desktop development. Shocking stuff, my ineptitude, I know (/sarcasm)
I ended up learning some JS and I wrote a desktop app with the help of a package called Wails for Go. It's electron-like in many ways, but lets me code up a "backend" in go while JS is resigned to doing things it's good at, like UI. Eventually, though, I struck the gold mine. I actually made a native desktop app in Go with an immediate mode package. It looked like shit, but it worked. I then went on to design a command line variant as well.
My chief takeaway after doing all of them: even my native code resembled the patterns found in JavaScript based UI developments. This basically implies "ELM is everywhere" to some degree, even in Frontends that don't explicitly say it. QT's QML is JavaScript that's pre-compiled for desktop. Sciter is the same way. You can gripe about electrons size, computational, and memory efficiency, but the opposite (native programming for UI) requires an order of magnitude of very niche programming that will only be useful for this purpose, of which any cool thing (like syntax highlighting) that you might want to do will need to be done for the first time. Just a quick reminder, again, I'm not really a fan of or regular user of JavaScript or TypeScript.
What I'm saying is, there are tradeoffs to be made. I don't blame a bunch of startups investing in a JavaScript desktop app when you can absolutely produce a stable cash cow with minimal skillset change and leave a handful of teams building independent threads and daemons that JavaScript can pass work off to that it can't do.
> (native programming for UI) requires an order of magnitude of very niche programming that will only be useful for this purpose
that seems contradictory
I'm not here to defend Electron, but most of the things Foone is complaining about would be terrible regardless of what base they use for the UI, and I'm not really sure what Electron has to do with this (or if it's even in use in this case).
The really egregious thing here is asking for a Firewall exemption and not including the base driver in the box. A slow driver with a giant list of dependencies is bad, but it's bad for its own reasons. Electron didn't force the devs not to include mouse drivers in the physical box, Electron apps will easily fit on a driver CD.
See also some of the other complaints popping up in the comment section here:
> I recently bought a Logitech G Pro X Superlight to use as my daily driver on an M1 Mac. [...] Runs as root, [...] requires manually setting permissions on a config file in order to save settings[0]
> Windows Update will download and execute RazerInstaller as SYSTEM[1]
> All of Razer's products are like that. I've been boycotting them since their keyboard wanted me to sign in to use my function keys.[2]
Again, not here to argue that Electron is good, but I don't see how any of the above is Electron's fault -- and I think even if you were happy with Electron, all of the above would still be egregious and unacceptable.
Is the idea that if Razer wasn't using Electron, they wouldn't force you to create an online account and to stay continuously logged in for your function keys to work? I don't think I believe that.
----
[0]: https://news.ycombinator.com/item?id=28274711
A million times this. The electron thing is a sideshow. The real problem is asking for too much in the way of security exceptions.
I promise you that the reason Razer is asking for network access isn't because they forgot to turn it off.
They could be writing this driver in Rust and they would still be asking for these exceptions. Nobody accidentally builds a driver whose sole purpose is to download and install another driver from a remote source.
I've read this as "uuencoded" first :-) Imagined sort of like trojans obfuscate their code with Base64 but using a more weird encoding this time :-)
> and then additional actual driver download.
I bet you can just steal the driver form the temp dir or from the actual system after it installs and save for future usage.
Because they really weren't. Hardware companies fail at software is a much longer living phenomenon than Electron.
(I could believe Logitech's current apps are an Electron like technology, but timeframe wise they predate it also, so maybe more like nw.js or similar, this article talks about roccat, which is a different company)
Except they didn't use Electron for the driver. They used it for the management UI.
> I'm sure that allowed them to iterate quickly, hire developers who know nothing but JS to build their driver package and ship the MVP with low costs!
Pffft. Imagine thinking that people who choose Electron only know JS. Clearly that's incorrect as many companies choose Electron despite employing a multitude of native programmers. I'm one of them.
Personally, I know C, C++, C#, Go, JavaScript, Python, TypeScript, SQL, Swift and Visual Basic...and I'll choose Electron to build GUIs every time. I also use React Native to build mobile apps. Pure native kits all suck compared to Electron or React Native and on top of their pure suckage you'll have to deal with the idiosyncrasies of each platform you deploy to.
I don't just build them either. I run multiple instances of about 4-5 different Electron apps all day long without issue on an i7-4770, a CPU that was released in 2013, inside of an old refurbished machine from like 2014 or 2015. And that's under XFCE most of the day...but when do I go use my Mac or Windows machines I get the same exact experience from those apps thanks to Electron.
But oh no! 300mb!! Unneeded code on my precious hard drive!
Maybe stop whining and get a bigger hard drive if you can't handle 300mb. And I doubt you've actually looked into many of the native desktop apps that you're running to investigate how much of the code is actually necessary. Let's hear some of the great native apps that you run.
What kind of work do you? I really want to hear about the 100% efficient native-only apps.
Key cons: - Yes, it asks for a firewall rule, which I simply deny with no negative consequences. Still, it’s concerning that it even tries.
- In order to save or backup your settings, you must create a Logitech account, and those settings will be saved on their servers. I would really just like a config file I can sync myself.
- The frequency with which the software needs updates is baffling. On one hand it’s nice to get such support years after the purchase. On the other.. what the hell needs updating on a mouse?
- The software UI sucks. And there’s no excuse for that given it’s just JS.
- Somehow, after reboot Logitech’s drivers are one of the last things to load. So you have to wait over a minute, and sometimes much longer, for you mouse to be able to handle your inputs correctly, which is really frustrating.
Key Pros:
- The software does work. You don’t actually open the config UI very often, so it’s not like you’re constantly running an electron app in the background.
- Let’s face it, the hardware is good enough to overcome the bad software.
I'm pretty sure it requests an update anytime any Logitech product gets an update, even one you don't own or have installed. A recent G-Hub update where the release notes only mention mice I don't own broke the battery detection on my wireless headset. Now it always says I'm at 2% battery. (Why did I even update?)
> Please don't complain about website formatting, back-button breakage, and similar annoyances. They're too common to be interesting.
(I've marked this subthread offtopic now.)
> ... and then it downloads the drivers/updates off of media.roccat. org using HTTP.
I hardly think they’ll stop approving Twitter threads here. At least they’re readable without hacks or workarounds.
>Bbbbuut what about my programable buttons, led and whatever?
I don't care about that, i care only about that i should be able to buy standard mouse which is always harder and harder task because you buy every piece of s with rgb leds so they will stop to produce non-manchild computer hardware. I wouldn't care at all if the hw would still provide the basic functionality without any special driver, but nooo, thats too much.
Proposal: send the hw back to their HQ and demand your money back.
I also like my $0 basic USB mouse that works with everything I plug it into. I think it came with a Dell PC but who knows as the logo has worn off. My fancy macro button mouse never leaves my desk but my cheap mouse has had plenty of travel. Same with my keyboard, I've got a nice one for my desk and a dirt cheap compact one that travels.
All these mice will work as basic HID mice in any operating system. If your legacy OS can't handle "5 mouse and 3 keyboard", its HID support was completely broken in the first place.
The PS/2 DIN was already doing more than I wanted, bi-directional communication is already more than you need to make the device work.
Perhaps there are exotic mice to be had that deserve to communicate over USB, with elaborate drivers and all the trimmings. Internet connectivity, bootloaders, flashing leds etc.
Ofc you would have to have an USB port to use those which can be undesirable You can plug anything into those. Next the user will download software from the internet and install it. Wild concept. lol
> good news: I got the URL it's requesting! bad news: it does its own certificate validation so it's erroring out at the self-signed root cert I have installed for MITM use.
> GOOD SWEET LORD THEY ARE SCARED OF PEOPLE STEALING THEIR DRIVERS
Which one is it, is it good that they use encryption to protect their users where they can or not? Please make up your mind.