Ah yes, my mouse driver is asking for a firewall exemption (2019)

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • piper

    GTK application to configure gaming devices

  • Huh, interesting. I have an older Logitech G700s mouse, so it uses the older Logitech software. I never had any issue with it on a Mac. I only used it occasionally to adjust the onboard settings, and then forget about it for years on end.

    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.

    https://github.com/libratbag/piper

  • trackball

    A trackball mouse. Mechanical files, PCBs, and firmware all included.

  • For anyone interested in open hardware mice, I have to recommend Ploopy: https://ploopy.co/

    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:

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Solaar

    Linux device manager for Logitech devices

  • I use solaar[0] on Linux for my MX Master 2S; it's really nice and mostly works out of the box!

    [0] https://github.com/pwr-Solaar/Solaar

  • libratbag

    A DBus daemon to configure input devices, mainly high-end and gaming mice

  • Here on Linux, it (the Superlight) just works.

    There's libratbag[0] if you want to mess with some DPI settings.

    0: https://github.com/libratbag/libratbag

  • virgil

    A fast and lightweight native programming language

  • > Why can't we have a compiler with built in system call support?

    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).

  • liblinux

    Discontinued Linux system calls.

  • Thanks for this, it's extremely awesome! Really happy to see others have gone so much farther than I ever did.

    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 here if you'd like to take a look as well:

    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 then implement memory allocation and garbage collection in your own language.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts