matching other programs and platforms
Actually, Ctrl+C
is the interrupt hotkey for pretty much every CLI app/terminal on every platform. Try it within the Command Prompt/PowerShell/Windows Terminal, or the macOS terminal - they'll all behave the same.
The use of Ctrl+C
as an interrupt/termination signal has a very long history even predating the old UNIX days and DEC - it goes back to the days of early telecommunications, where control characters were used for controlling the follow of data through telecommunication lines. These control characters, along with regular characters, were transmitted by being encoded in binary, and this encoding scheme was defined by ASCII (American Stanard Code for Information Interchange), published in 1963.
In ASCII, the control character ETX
(meaning end-of-text; represented by the hex code 0x03) was used to indicate "this segment of input is over", or "stop the current processing".
Now what does all this have to do with with Ctrl+C
you ask?
For that, you'll need to go back to the days of early keyboards. Keyboards back then generated ASCII codes directly, and when a modifier key (Ctrl/Shift/Meta) on a keyboard was pressed in combination with another key, it modified the signal sent by the keyboard to produce a control character.
Specifically, pressing Ctrl
with a letter key made the keyboard clear (set to zero) the upper three bits of the binary code of the letter, thus effectively mapping the letter keys to control characters (0x00 - 0x1F: the first 32 characters on the ASCII table).
- The ASCII code for 'C' is 0x43 (binary 01000011).
- Pressing
Ctrl+C
clears the upper three bits, resulting in 00000011, which is 0x03 in hex.
And would you look at that, 0x03 is the code which represents the control character ETX
.
The use of ETX
to interrupt a program in digital computers was first adopted by the TOPS-10 OS, which ran on DEC's PDP-10 computer, back in the late 60s. It's successor, TOPS-20 also included it, followed by the RSX-11 (on the PDP-11), and VMS (on the VAX-11).
RSX-11 was a very influential OS, created by a team that included David Cutler. It influenced the design of several OSes that followed, such as VMS and Windows NT. Cutler later moved to Microsoft and became the father of Windows NT. Early NT did not include a GUI, so it was natural to adopt existing terminal operation standards, including the use of ETX
. In fact, NT's internals were so similar to VMS that a lawsuit was in the works, but instead, MS agreed to pay off DEC millions of $$$.
Also, when UNIX first came out (1969), it ran on DEC hardware, and so they followed the tradition of using the ETX
signal to stop programs. This convention flowed to BSD (1978) which was based on UNIX, and NeXTSTEP (1989), which was based on BSD. NeXTSTEP was developed by NeXT Computers, which was founded by Steve Jobs... and the rest is history.
Therefore, Ctrl+C
is something that's deeply rooted in history. You don't just simply change something like that. Sure, you may be able to remap the keybindings, but it's actually hardcoded into many programs so you'll run into inconsistencies - that is, if you used the standard remapping tools built into GNOME/KDE etc.
If you want to truly remap Ctrl+C, you'll want to do so at a lower level (evdev layer) so that it's not intercepted by other programs, eg using tools like evremap or keyd. But even then, it's not guaranteed to work everywhere, for instance, if you're inside a VM or using a different OS, or in a remote session. So it's best to remap the keys at the keyboard layer itself, which is possible on many popular mechanical keyboards using customisable firmware like QMK/VIA.
I've been an Arch user for over a decade, and I wouldn't recommend it for newbies. It's not about the installation, in fact, installation is the easy part now, what with the official install script, pre-configured dot files, and the likes of EndeavourOS etc which provide a friendly GUI installer; the problem isn't installing Arch, it's what comes after.
For starters, because you've cheated and skipped installing the hard way aka "the arch way", you know little to nothing about how your system is setup and works, particularly around the bootloader, what goes into your initramfs, the DM config, and most importantly: how to deal with pacman issues. pacman isn't exactly newbie friendly:
Obviously, none of the above requires you to have a rocket scientist-level IQ to figure it out, a couple of Google searches or the Arch wiki can sort you out - but the point is, it shows that you need to have some basic understanding of your OS internals, package mangement, and most importantly you'll need to be comfortable with using the terminal and CLI apps.
As a seasoned Linux user, the terminal is home for many of us, but believe it or not, it actually scares away many newbies - and pushing Arch onto these newbies only perpetrates the misconception that you have to use the terminal and punch in some
hackerman
™ style commands to use Linux. And we know that's NOT the experience at all with actual newbie friendly distros such as Zorin, Pop!_OS, Elementary etc, where you don't need to touch the terminal at all, you don't need to babysit the package manager or know any special commands or OS internals.So please, please do not recommend Arch or any Arch-derivatives to newbies: you'd be doing them a massive disservice and potentially put them off Linux forever. Unless of course, you know that person well, and you know for a fact that they're tech savvy and won't shy away from using the terminal and getting their hands dirty.