Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't want to want this, but I do.

Only semi-related but what I really want is for easy windows apps on linux that work without fail. I prefer my linux box and generally hate the windows ui (don't get me started on windows settings or audio). I've tried switching to linux full-time but I don't know if I can hack it. Games are 90% there and I can do without the few that don't work with proton, but there are just too many apps that only work on my windows side that I just don't think I can dump windows.

Wine gives me inconsistent results and breaks for just about anything that needs registry access, not to mention its pretty complicated. I'm hoping to stumble on some tool I've been missing out on that makes everything easier because I wan't to run linux as my daily... I just don't know if it is practical.



Which apps? Not that it makes a difference for this conversation, but I'm interested in keeping up to date with what the "killer apps" are that keep people from switching.


If you're talking about Windows apps that keep me from switching to Linux, I have an oddball one: it's a keyboard re-mapper that I wrote back in Windows 3.1 and still use. It does the same re-mapping in every application (except for some reason in Microsoft Edge). It's not a simple 1-for-1 mapper, which I think is readily available in Linux.

At the simplest level, it re-maps ^H to the left cursor arrow, ^N to PageDown, etc.

But it gets more complicated: ^D maps to seven down cursor arrows (i.e. it moves the cursor down seven lines), ^U in the opposite direction. ^C usually (more details below) maps to ^Left (i.e. go to the beginning of the word), Shift-^Right (select to end of word), and ^C (copy selected text). (Notice the final ^C does not cause recursion!)

^A once goes to the beginning of the line, ^A twice goes to top of screen (I forget the exact keystrokes it emits, but this works with most apps), and ^A thrice goes to the beginning of the file. Analogously for ^E, but end.

Finally, it has two modes. In the normal mode, all the cursor control keys do their normal cursor movement thing. But type ^Q, and the cursor keys are now in select mode: ^H outputs Shift-Left, i.e. selects the character to the left, etc. Drop out of select mode with ^C (copy selection--different from what I described above!), ^X (cut selection), or ^Q again (do nothing with the selection).

I'd love to be able to reproduce this kind of behavior in Linux. I'm sure it's possible, but I don't know enough about keyboard re-mapping, or keyboard drivers, to do it.


That sounds pretty similar to the QMK firmware that runs on my keyboard (an Ergodox-EZ).

It's been a blast to play around with. Best part is that it travels with the keyboard rather than the OS, so I can plug into a different computer and retain the same layout without needing to install anything.

I've been slowly resetting all my OS hotkeys/shortcuts to their defaults, and customizing the position of those keys on my keyboard instead. Current layout, for reference: https://configure.zsa.io/ergodox-ez/layouts/xbzAL/latest/0


Might be a good solution, if it can output multiple keys with a single keystroke, but unfortunately my keyboard can't travel with me. In particular I can't plug it into my work computer.


If you use Xorg you can use XInput2 and XIGrabKeycode[0] to grab specific key combinations and get notified (via event messages, they happen asynchronously) when they are pressed. Then you can use XTest and XTestFakeKeyEvent[1] to send the event you want.

XInput2 and XIGrabKeycode should provide the highest priority grabbing under Xorg so that even applications that do server-wide grabs (e.g. games) will be bypassed.

XTest was meant for automated UI testing but can be used for all sorts of automated behaviors.

For the first part i wrote a simple program[2] years a go that uses xkill to kill the toplevel window with Ctrl+Alt+K (mainly for games that grab the input and hang) which can be used as a quick example. I haven't tried to use XTestFakeKeyEvent but there seems to be a lot of code out there which can be used as an example, e.g. this one[2] (see the send_key function near the top).

[0] https://linux.die.net/man/3/xigrabkeycode

[1] https://linux.die.net/man/3/xtestfakekeyevent

[2] http://runtimeterror.com/tools/xkeyller/

[3] http://git.yoctoproject.org/cgit.cgi/matchbox-history/plain/...


Hmm, looks like the sendkey.c thing might work. Although the documentation on XTestFakeKeyEvent() specifically says "This extension is not intended to support general journaling and playback of user actions", which is what (I think) I want. I wonder why the disclaimer.


I haven't tried it yet, but I recently learned about this tool and have it on my list to test drive:

https://github.com/rvaiya/keyd


For me there are a couple areas that just have a tough time in linux: VR Development, Digital audio workstations and niche utilities. It is getting better but still has a ways to go in these areas imo.

Specifically: VR Development - Unity now has a linux version which is great but there is no oculus runtime which means no oculus testing (SteamVR works but has some hiccups)

Digital audio workstations - Looking primarily at FL Studio, yes you can wine it but for me the audio delay makes it very difficult to use. I'd love to find solutions around this but haven't thus far.

Niche utilities - For game dev I've got a ton of old utilities for visualizing or converting old 3d object files to newer formats, sdks for old games that I occasionally need to pop into and all of them struggle or require a lot of setup to work properly on linux. For these I find myself booting over to windows, grabbing what I need and popping back to linux.


I just recently switch from windows to linux. Was planning to do some 3D printing tomorrow, but saw that Fusion360 had poor Wine support. So I probably need to learn a new software or setup a VM or something.


Fusion360 is the only thing I run a VM for. There’s a repo out there that sets up wine and installs it but it just doesn’t work very well at all. I’m using VMWare Player and set up the virtual disk to boot from the Windows drive and run it that way. It works really well. Other 3D printing stuff like PrusaSlicer works great on Linux. I’d love to have a native version of Fusion though. Maybe someday.


> don't get me started on windows settings or audio

I'll bite - what's wrong with the audio? Friends on mine in game dev often complain Linux audio is hopeless to work with.


Not the parent poster, but I'll chime in.

I have a pretty solid Dell laptop from work, and yet, there is one frustration that beats out anything else: audio.

I can't play music without it stuttering and skipping and sounding choppy and cutting out if something resource-intensive is happening, like Firefox loading a new page (but how often does THAT happen?)

Same with audio notifications. When my "new mail" notification sounds choppy, the underlying system must be just absolute garbage.


My main complaint on windows is more on the UI than the technical audio. I've got like 15 audio devices listed under the audio menu and windows can never figure out which one I intend to be playing from (and gives them terrible names) so I have to constantly be manually switching it around until I find the right one. My experience on Mac and Linux is that they seem to be able to switch to the right device as it connects then switch back appropriately when it disconnects.


Makes sense actually. That's been an annoyance of mine as well. I suppose I never realized it's better on other platforms.


Keeps switching between different outputs in games and no matter what I do with the default communication device etc. it keeps happening. I lose audio in games on random intervals and I don't get it back until I switch my output device to something else and back.

Used to happen only in Warzone but now I'm noticing it affects games with other engines as well.

Granted I have a very non-standard setup but it shouldn't be causing any of these issues.


Does Windows think that audio devices are being connected or disconnected? That's the only time I've had the default device switch on me. Annoyingly it can end up happening if you have a display that presents itself as an audio endpoint and then that display is turned off or even just goes to sleep.


Interesting perspective. I had always blamed it on something pertaining to my VFIO setup but I think you are pointing out something that might be at play here that I hadn't considered before.

I'll disable the speakers on the monitor from the HW menu on the monitor and see if that helps.


Maybe they just mean the audio UI? It's complex, and at least on Windows 10 it's a mix of the new UI and old UI.

For example, figuring out how to configure and test surround sound channels means click through multiple dialogs, and it's not clear how exactly to get there.

With Windows 10, it's even harder to access sound mixer than it was on previous versions, and this is what to use in 99% after clicking on audio icon in the taskbar.


USB hotplug is still a mess in Windows and so using any external audio interface or soundcard is just a mess.

The UI is complete garbage but siblings said enough about that dumpster fire already.


USB hotplug works fine, and has for 20+ years now. You may be blaming the OS for your vendor's incompetence at driver maintenance.


Standby/Resume or hibernate? Let's roll a 12-sided dice on wakeup, "1" is for "I forget all settings about a random device and re-install the driver" and "2" is for "I gonna act like it's not even there until you plug it out and back in again". Using a different USB port today? Hope you don't mind re-configuring!

This is especially annoying for audio devices, because lots of applications - and certainly any slightly more advanced setup - require explicit configuration of audio devices and when Windows does its "it's a different thing every time I see it" temper tantrum this means you have to go back to every application and tell it again "Yeah, that OUT3-4 that doesn't exist any more? Use the OUT3-4 that does exist", because the user-visible name stays the same (it's the same hardware, after all), while the underlying ID changes for one reason or another.

This has nothing to do with vendor's drivers btw., this is simply how hotplug works in Windows' driver model.

So no, this is not "working fine".


Have you heard of VFIO for Graphics Cards in Linux host with Windows Guest? Haven't tried it yet, but it's my winter project and I'm excited:

https://passthroughpo.st/


I haven't personally done much with VFIO but I have looked at it. From my initial look it seemed as if it would require two gpus, one for the host and one for the guest but it looks like some people have single gpu setups working

https://github.com/joeknock90/Single-GPU-Passthrough


Would a Windows VM on your Linux system help? Maybe some apps have robust alternatives?




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

Search: