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