So, along with consistent keyboard shortcuts, I'd like to add consistent and configurable mouse/trackball actions (some apps scrollwheel goes up/down, others it zooms, some support pinch zoom, some don't).
- Latest update (December 2021): https://www.gitclear.com/blog/linux_touchpad_update_december...
- HN: https://news.ycombinator.com/item?id=29555822
So far, pinch-to-zoom has been implemented in Firefox. (If you are using X11 instead of Wayland, then the environment variable MOZ_USE_XINPUT2=1 needs to be set.) Gestures for back/forward navigation have not been implemented yet (Firefox Bugzilla issue: https://bugzilla.mozilla.org/show_bug.cgi?id=1539730).
The project aims to support gestures in other Linux apps, too. If you would like to help fund this project, the developer has a GitHub sponsor page here:
But thanks for the link, I'll check it out
If this was MacOS, I'd agree. But on Linux, it's a different hardware landscape. There are hundreds of trackpads that Linux is compatible with, but not every one of them is multitouch (or implements multitouch the same way). Gesture support on Linux has been a long time coming, but that's mostly because getting uniform trackpad support over thousands of laptops is just not a very fast process, whereas on MacOS, Apple can make certain assumptions about the hardware it's running.
This makes it a lot more likely that apps are going to recognize that signal so it works for every system. It’s the paradox of choice.
That's not true. On macOS (and also iOS), you subscribe to gesture recognizers (i.e. swipe gestures), not isolated events, which give you easy access to how users interact with macOS without having to analyze (and likely analyze incorrectly) low-level trackpad interaction.
You could always choose to look directly at events instead, but if you are trying to get the behavior of a widely-used gesture like swiping forward/back, you will get much more accuracy (and happiness from users, and less dev time) by just recognizing them at a high level, which is what Apple expects.
In Windows and Linux clicking the trackpad with 3 fingers causes a middle click, in MacOS this is not an option at all. Moreover, enabling it is apparently a project so difficult that the cheapest solution[0] I could find costs €8 just to add middle click functionality, nothing else.
Bit of a tangent, but it's always funny to me to discuss ChromeOS and Android as distinct from Linux distributions. I get that they're each practically as "Linux" as TiVo (and might not even be that forever, depending on how Fuscia evolves), but it actually might help avoid confusion if we started using the term GNU/Linux unironically in some contexts.
Termux folks keep hitting walls, because they refuse to acknowledge these are the only APIs they are allowed to call.
https://developer.android.com/ndk/guides/stable_apis
So when they make use of other Linux stuff that according to Google are private APIs, things don't go well.
As for ChromeOS, the kernel isn't exposed to userspace in any form, which are basically Webapps.
Running Linux applications on Chrome OS makes use of a secondary distribution in a VM, pretty much similar to how WSL 2 works on Windows.
So they might use the Linux kernel, yet they are far away from being distros that can easily run the GNU stuff.
It is not the first time I hear this, so this OSX feature must be truly addictive & productive.
I don’t really like the snide nature of your comment, people care a lot about things like trackpad functionalities. Objectively, unix has been lacking in this department.
In my case (and I suspect many others) a case of muscle memory, which can take a while to retrain, so you move to a new OS hoping you can keep the same motions you're used to and just get your work done. It's also important if you regularly have to use multiple OSes (as some tech support people have to do, and when you need to test on different OSes)
And, for the life of me, I never get copy paste from a terminal to work like I want it to.
alt-tab is universal. Hell, alt-tab works on Android if you hook up a keyboard to it. Mac is the only thing where alt-tab falls on its face. Even if you remind yourself that you're on Mac and use cmd-tab, it cycles between apps, not windows. You need to use cmd-` for that. I often find myself in a cycle of using 3 windows across 2 apps and it drives me bonkers.
But alt on a Windows keyboard layout and and command on a Mac keyboard layout are the same key location, so I don't understand how you can be confused by this... maybe stop looking at the keyboard?
So if you work in an IDE, keep reading docs in one Firefox window and test your application in another Firefox window then in KDE or XFCE or another sane windowing system[1] - even Windows - you just use alt - tab.
On Mac you have to stop an think: Should I switch to another browser Window? Ok, that is CMD - backtick. Switch to or from IDE? That is CMD - tab.
Press the wrong combination? Now Cyberduck has entered the mix.
[1]:I was about to write Windows or Linux but starting with Unity and now also Gnome has copied this to be bug comptible with Mac
The only annoyance is that it doesn't seem to distinguish between window types so, e.g., in GIMP in multiple window mode it also cycles between utility windows like the toolbar, options, etc instead of only the image windows - though some applications do not even bother providing window hints about their window types.
This is simultaneously one of the saddest and funniest things I've read about GNOME in a while (which has a surprisingly high bar on both accounts)
Settings -> Keyboard -> View and Customize Shortcuts -> Switch windows -> Alt + Tab
gsettings set org.gnome.desktop.wm.keybindings switch-windows "['<Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-windows-backward "['<Shift><Alt>Tab']"
gsettings set org.gnome.desktop.wm.keybindings switch-applications "[]"
gsettings set org.gnome.desktop.wm.keybindings switch-applications-backward "[]"
I ended up installing https://alt-tab-macos.netlify.app/ which adds a keystroke that will cycle through all windows in all apps on all spaces. It's a huge improvement.
It's still not as nice as alt-tab, though. Frequently most of my windows are a mix of terminals and browser windows. I may be using several web apps and several command-line tools. Having to think about whether the application I want to switch to happens to be using the same "shell" application is not helpful.
I just want to be able to use one key to cycle through all windows in all spaces, and which lets me easily flip between the two most recent windows. Windows (and virtually every Linux DE) has had this for decades. It amazes me that macOS only recently got this, and only because of a third-party tool.
(You can tweak this, if you need to, in System Preferences, Keyboard section, Keyboard tab, Modifier Keys... button.)
I'm an Emacs man. Many Emacs shortcut keys suck, but it's what I'm used to, so it's what I want.
Unrelated, I also use Hyperdock, from the same developer, to get the dock into the 21st century.
I also list alternatives on that page. That may inspire you
You can just use middle click everywhere, no? One checkbox in the clipboard manager and done.
Btw ctrl+shift+v to paste is often much more useful than ctrl+v, e.g. for emails, and is the exact same in the terminal.
Why can’t one switch between windows of the same application on MacOS with a modifier+tab combination?
I was stuck using the shortcuts (ctrl + left or right arrow key), or clicking the Mission Control button I had to pin to the Dock.
"Just swish your virtual desktops around" seems extremely convoluted when I just want to switch between different windows.
Doesn't command+c/command+v work?
I use emacs as well, but apple touchpads are good enough that frankly it's probably faster for me to just highlight text in iterm2 with the mouse (which is what I do). In emacs I use the standard C-spc shortcuts, though.
None of my work is particularly terminal-heavy, thankfully.
MacOS is able to keep this consistent because ctrl+c/v isn't mapped to copy/paste, and instead command+c/v is. If you really want, Linux is perfectly capable of mapping Super+c/v to copy/paste. You would probably only need to do this in your terminal emulator and your DE.
https://github.com/rbreaves/kinto
The proper way is remap the modifier keys and then remap further based on the app on focus. Gives you coverage whether you explicitly remapped an individual app or not.
I tried kinto on Pop about a year ago and it worked pretty well but conflicted with their workspace and tiling key commands so never tried switching to it beyond a single days worth of preview.
It felt like Pop_OS! went out of their way to rewrite the own custom installers and then just decided not to support btrfs for whatever opinionated reason? I dunno - but it made me rather unhappy with the situation and I switched back to my Ubuntu Budgie distro of choice. Sad - because I would have dog fooded Kinto.sh seriously on Pop_OS! had they supported btrfs properly w/ snapshot support. Most Ubuntu based distros don't change the installer so much that proper btrfs support is broken.
I do support them though and may purchase one of their laptops in the future and sure - I would love to work for System76 - despite not yet using their OS on anything besides a VM. I do think they get a lot right, and love that they open sourced their BIOS for their laptops. We need more companies like them selling Linux pre-installed.
Like yourself, I also thought Linux would be capable, until you actually dig in to do it and realize it's a nightmare of different conflicts.
For starters, that super key is usually for the main menu/dashboard in most Linux os's and intentionally not easy to remap.
Then each application has its own key mapping, so even if you change the system copy/paste, chrome and any other app may have it practically hard coded - they are not all configurable and that includes most terminal applications.
Seems so simple till you dig in and try to accomplish it. In the end, the best solution was to find a terminal app where I could switch the copy command with the cancel command, and then I just have to remember when I'm on my Linux system, cntrl+shift+c is to cancel a command. 1/2 the time I use the system terminal though, and then the command is back to Linux native.
So now I have to remember that special terminal app to use, and that the cancel command is different, on top of the fact the key binding are on different keys also.
It is annoying as hell. And that is ultimately why I end up using my work Mac, even for personal stuff I would prefer to be on Linux.
Remapping the position of Control to the Super key just shuffles the annoyance around, unfortunately. I tried to live with it for a few months.
- Pretty much everything uses ctrl+shift+v for pasting without formating. Really useful for emails, Word, ...etc.
- vim does not use ctrl+c/v
- emacs (=Mac keybindings) also does not. Simply because their bindings predate IBM's ctrl+c/v
- middle mouse button works everywhere and can use the same clipboard (one checkbox)
I generally try to follow this pattern when possible.
But I really do wish that it was easier to get a consistent look and feel on Linux, including key bindings.
Point being it's more about use case matching than one option being the dark ages and another being The One Right Way™. Layer on that some like using clipboard history and others just want a single parking space and it gets even more blurry.
Of course I am assuming that your hand is already on the mouse. However, you said that you highlight things frequently as you read them, so I assume that’s what you meant.
The first is something I guess I don’t do. If I select something that I want to paste somewhere, then I’m going to paste it right away; I already know exactly where it goes.
The second is that searching in applications you use frequently replaces the selection? That’s not how it’s supposed to work. Applications are supposed to claim the primary selection only when the user explicitly selects something, not merely when something is highlighted to make it more visible. Sad to hear that any application gets this one wrong; that’s supposed to be a pretty easy thing to get correct.
The third is about pasting into textboxes. This one is more subtle, but pasting from the primary selection into a textbox is supposed to replace the content of the text box, rather than appending to it. Certainly Firefox does for the urlbar, though to be honest I’m not sure that I’ve never noticed one way or the other if it does for anything else. Most of my text editing is done in Emacs, which doesn’t use textboxes very much, and which has a lot of other ways to quickly enter text without needing a lot of copy and paste.
Thanks for answering; it’s really interesting to see just how different people’s use–cases really are. I find selection to be more convenient because it’s simpler, while you find it to be less convenient because the programs you use aren’t as thoughtful, or because you use selection for other things. I guess we should both be glad that Linux implements both styles!
I often want to paste things multiple times. e.g. I paste an interesting URL to an instant message chat, then maybe 10 minutes later I paste the same URL to someone else.
>The second is that searching in applications you use frequently replaces the selection?
no that's not what I mean. I'm talking about this: https://imgur.com/QiQiBLT.png
suppose I didn't know what "appending" meant and I wanted to search for it. I can highlight it, rightclick, then choose "search Google". I don't want to paste "appending" anywhere, I just want to search Google for it. but the act of highlighting it will overwrite whatever is in the middleclick buffer. so if that's the only clipboard I had, searching the web would interfere with copypaste, which is stupid.
>This one is more subtle, but pasting from the primary selection into a textbox is supposed to replace the content of the text box, rather than appending to it.
again that's not what I meant. I'm talking about taking a portion of the text in one textbox and replacing it with the text from elsewhere. for example, suppose I want to change part of the message I'm typing right now with lorem ipsum. it looks like this:
[1] https://imgur.com/GWldV00.png (ctrl-c copies)
[2] https://imgur.com/63RrISF.png (highlight destination. this overrides middleclick buffer, destroying the lorem ipsum copy if it were placed there)
[3] https://imgur.com/zGavx2b.png (ctrl-v pastes)
But that’s not really the point; the point is that it’s nice to have both mechanisms available. Some people will find selections more convenient, others won’t.
Regardless, from my experience, the terminal is the only place where Ctrl+C and Ctrl+V are not the standard shortcuts to copy and paste on Linux. These shortcuts seem to be universal everywhere else.
The biggest issue is that some apps don't play nice with the x clipboard.
Some desktop environments and Linux apps have the option to turn off middle-click paste, though this preference is not always honored. I respect the preference of those who do like the selection keyboard, and I don't even have a problem with it being the default. But, I don't think it should be forced on all users, and I don't think decisions about other core desktop functions (like Ctrl+C and Ctrl+V) should be made under the assumption that the selection clipboard is enabled.
Ah, that's probably the difference. I don't usually scroll through a text editor (as I'm usually using vim). I can definitely see how it'd be an issue in a graphical text editor.
Not to mention many Linux users hate having to use the mouse.
There are some interesting differences between them as well. When using the clipboard your application sends whatever you copied to the clipboard and pasting copies it out of the clipboard. With selection, however, the application merely announces that the user has selected something in that application. When you middle–click to paste, the application you pasted into must send a message to whichever application was most recently used to select something (relayed via the X server), and the reply contains the selected data.
https://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM...
¹ Actually, there are three³. CLIPBOARD for control–c/v, PRIMARY for selecting with the mouse, and SECONDARY for selecting with the mouse while holding down alt.
² But of course these two systems are implemented using the same messages to and from the X server. They simply have different conventions for how they are used.
³ Actually, there are as many as you care to implement. These three are simply conventional; applications are free to use other names to identify other communication channels.
⁴ … Profit!
Mind you, Mac has a similar annoyance with its command-C/V. If you work with Linux (+BSD) , Windows and Mac every day, as I do, be prepared to be frustrated a LOT.
I'd love if keyboards just had dedicated keys for this. It's used enough to warrant them (much more than other obscure functions like SysRq that do get their own key, or Apple's 19 function keys). I guess this is because I'm the DOS single task days there wasn't much of a need for copying and pasting.
The ctrl-z/x/c/v combination didn't exist when the Macintosh came out. The cmd+z/x/c/v existed on the Lisa (39 years ago!), so predates Mac by 2 years, which in turn predates Windows using by using ctrl-z/x/c/v by 8. Originally, Windows used the IBM CUA standard[0], which can still be used in Windows (KDE and Gnome came 13 and 16 years later respectively). If you're in a windows terminal, try ctrl+ins to copy and shift+ins to paste, works in Gnome and in KDE (with some remapping in Konsole.) Using ctrl-c in a *NIX based system seems like a dumb decision to me, since ctrl-c is SIGINT - kind of useful.
[0]https://en.wikipedia.org/wiki/IBM_Common_User_Access#Descrip...
Tilix, kitty, Windows Terminal and others support using ctrl-c for both copy-to-clipboard and SIGINT.
To me it's a game changer and judging from the sibling comments, pretty much no one knows this is a feature that exists. Ctrl-Shift-C/V is barbaric and I have opened issues and merge requests to implement it in other popular terminal emulators.
https://github.com/pkulak/dotfiles/blob/master/.config/alacr...
There's nothing stopping you from deciding to use Super+c/v as copy/paste instead of Ctrl+c/v or Ctrl+Shift+c/v. Apple doesn't use Ctrl+c/v either... they use Command, so the conflict you're referring to doesn't exist there either.
Put them in the place of "Scroll Lock" and "Pause/Break" or "SysRq".
I really wish I did not have to do that
Would it help if I point out that this is just rose tinted glasses? ;-)
Or at least, when I used Mac full time back in 2009 - 2012, it was the least consistent thing I ever used: even such basic shortcuts as moving a word forward or backwards was inconsistent. Same with home/end: in one app it would be CMD + arrow left/right, in another it would be fn + arrow left/right. In Safari CMD + left meant back which kind of made sense but was hugely annoying when I filed out a web form in Oracle Enterprise Manager or something, wanted to select to the start of the line and ended up leaving the form, discarding half an hours work.
(Yes, bad web application. Feel free to tell Oracle that.)
That said, I kind of like Apple when they aren't messing up keyboards physically or logically and aren't busy snooping in my pictures. I've convinced my wife to use iPhone and switched most of my kids phones to iPhones and even use one myself and have bought a Mac mini lately - it is good as long as one can take it slowly, one careful step at a time - definitely not something I'd want to deal with in anger or if my life or the customers data depend on it.
And consistent - it is not!
That said, on Windows and in Linux this is extremely much simpler and more consistent, I can write it down right here and now, it doesn't need a full web page:
arrow keys: move
ctrl + arrow left/right: move left/right to next word boundary.
shift + arrow left/right: select a character to the left/right.
ctrl + shift + arrow left/right: select to next word boundary.
So it wasn't jumping between words it was home/end.
I have recently started to use it for personal things though, but again just things that I can use all the time in the world for.
I tried installing a dev environment on it and it was instant frustration.
NixOS, by accident or intention, inherently circumvents this problem. It also has actual non-existent UX: you need to manage your own home-manager configs (for now, I want to change that). The maintainers have put good effort into being able to express tons of preferences in your nixfile (to the degree of Firefox plugins).
You may get nerdsniped by it.
having a global menu interface that presents a uniform structure for navigating applications to the end user with sane default keyboard shortcuts (but universally configurable) would be a -game changer-
it also opens the doors to novel ideas up like Command Palette-like UX paradigms. imagine changing the resolution of a graphic document with about ten keystrokes, and being able to work so seamlessly in all of your apps! it’s almost like a universal command interface that works in GUI apps… okay, maybe i’m getting ahead of myself.
> If I'm ever fabulously wealthy, I already know I'm just going to finance an open source fastidious spiritual successor to MacOS 10.6
i, for one, root for your financial success ;)
if and whenever i’m able to make the jump though, i would absolutely love to do the same. i would love to help organise and coordinate efforts towards it
Im a former Mac person and I really like it. Ticks all the boxes you've just said.
incidentally, KDE apps sometimes do expose global menus, and there is a shell extension for this on Gnome, but it didn’t work in 40 last i checked.
but yes, it is the perfect jumping point for the kind of workflow i desire :)
Really wish Linux followed macs example of using super instead of ctrl for copy/paste/etc in general though…
https://github.com/rbreaves/sorun
Have fun!!!
The config file for the curious.
https://github.com/rbreaves/sorun/blob/main/configs/ubuntu_b...
I suspect once I package it properly and make it available in various repos and app stores that it will get more coverage. Also Kinto is feature complete as far as I am concerned, only changes that happen now are mostly minor. May do a rewrite of some parts of it to make updates go smoother and allow users to retain their own changes easier but no major functionality changes or additions are planned at this time.
Works flawlessly on Windows and Ubuntu for me :-)
Makes life worth living! ;-)
I don't think that exists, does it? EXWM comes close, but it doesn't have the database.
I know, I know, I just said "someone" when I should do it myself.
https://github.com/mooz/xkeysnail
https://github.com/k0kubun/xremap
https://github.com/autokey/autokey
My advice is to skip the last one unless you need something truly complicated and a config syntax that is just insane regardless of your level of complexity imo.
Of course if you just want mac based keybinds to be done for you then use my kinto app.
Am curious now how well that works via xrdp then as xkeysnail & other uinput methods don’t.
The killer for me is if/when my mouse doesn't work well enough or latency spikes if video card, so I ended up for the Proxmox setup to use PCIe Aorus NVMe card with two NVMe in RAID0 instead of SATA or PCIe. Now it works reasonably well. I think its related to my board having 20 PCIe lanes, 16 of which used for GPU. But we've come a long way I/O wise for PC (x86-32).
On another note, Blizzard might ban me for Proxmox usage since they changed policy when GeForce Now became a thing (they never did for AHK and I used it for about 10 years now, some of which I played the game intensive but they did do banwaves). Who knows what Square Enix policy is going to be. If they ban me I will appeal, tell them my setup, show them my script, and that I have a swollen nerve on my hand (work related injury). If a human reads it and believes me, at least they'll shake tbeir head concerning their policy. Or so I hope.
On macOS I use Hammerspoon and Karabiner Elements but that machine isn't used for gaming. Similar tools, different purpose. Though I do always rebind caps lock...
How do you send a break on a mac terminal? I didn't think it was any different.
and you can change that if you want in your terminal emulator. I modified some of my xterm's defaults using stty (I didn't change ctrl-c though, but you can change it).
See Ktrl + alt or Kmonad
https://github.com/ItayGarin/ktrl https://github.com/ItayGarin/alt https://github.com/kmonad/kmonad
KDE apps are also universally very remappable
I've been full-time Linux (Kubuntu) for a few years now, and I've hobbled together something that only irritates me to death about 30% of the time rather than the 100% of the time it used to before spending days and days fiddling with a bunch of different flavors of remapping at nearly every layer of the system.
If I'm ever fabulously wealthy, I already know I'm just going to finance an open source fastidious spiritual successor to MacOS 10.6
I'm going to give Pop_Os a try, but I suspect I'm going to run into the same problems I always do. The trouble with Linux as a desktop for me isn't weather it's beautiful or not. The problem is how disintegrated everything is and the thousand papercuts ways in which it works.
That said, I absolutely consider it basically an incredible miracle that the experience is as good as it is, frankly. So, I keep at it.