SASM – Simple Crossplatform IDE for Assembly Languages
dman95.github.io
dman95.github.io
GAS support is nice. I actually like AT&T syntax, but I seem to be in the minority on that.
DDD was always one of the gdb frontends I installed to make things somehow better.
I'm not sure I understand what you mean by this. Can you explain? Also, what did you not like about the experience?
You can do all of it, and with emacs you can do all of it in buffers, but it feels terribly clunky to me, coming from e.g. Amiga assembly IDE's like AsmOne, that while overall more primitive than gdb, has good defaults for the UI that makes the information most people want very easily available.
Emacs + gdb is like getting your debugger delivered as flatpack and having to assemble it yourself. Great when finally get it just the way you want it, but the learning curve is horrible.
Also there was no support to display structures graphically (ddd could do it though).
Nowadays modern graphical debuggers also provide a very nice set of features to debug multi-core code.
As for parallel debugging I am not aware of any front-end with the same feature set as modern IDE debuggers.
I'm actually surprised that DDD continues (somewhat, there was a release in 2009).
Unless the architecture of Athena has changed radically, and it's no longer using networked X...
The primary reason Xaw and kin (along with Motif, Tk, and other toolkits that make good use of X's drawing primitives) get better network performance is perhaps obvious at this point: a handful of serialized polygon objects is smaller than a TrueColor pixmap. Basically, windows drawn with GTK and friends are practically streaming video with lossless compression (if any), while windows drawn with Xaw and friends are more like SVGs.
The end result is that the X-primitive-based toolkits use much less bandwidth than the pixmap-based ones, and the difference is usability is often enormous.
But you're right: it's probably not running X apps over the network anymore. Back when the X protocol was designed, it was still common that terminals were pretty spartan, whereas the servers they connected to were beefy machines. Nowadays, "terminals" with decent compute power are common (this has been the case for quite some time now), so it makes more sense to run the X clients locally in most cases.
That being said, I for one still run X apps over the network fairly often, and would do so more often if many of the apps I used didn't suck so much over the network.
For comparison, try running an xterm tunneled over ssh side-by-side with a gnome-terminal or something else GTK-based (also over an ssh tunnel). Play some emacs tetris or something in both. The difference is even larger when the clients in question make more use of various widgets, but I'm having a hard time coming up with a fair comparison (I'd suggest gvim compiled with Xaw or Motif versus gvim compiled with GTK2 or GTK3, but I gather you're an emacs user so that might be a poor exercise -- perhaps emacs's GUI has similar options?).
As for Emacs, the first step is remapping control onto your your capslock key. It ought to stop your pinkies from cramping. xmodmap, xkbcomp, or xkb rules all provide relatively simple ways to do this. Which one you'll use depends on your distro. It's a fairly common procedure, so you can probably find instructions for your system online.
The next step is to install useful elisp packages, configure your settings, and learn all the bindings, as well as how to do the above. The excellent emacswiki can help with this.
If you're interested in a more vi-like experience, spacemacs is apparently an excellent starting config/package for this. If you're not a vi fan, however, I'd stay away from it. You can find it on github.
X11: Stick `setxkbmap -option 'ctrl:swapcaps'` in your ~/.xsession (if using a display manager), ~/.xinitrc (if using startx or xinit), or your startup programs if you're using a fancy-schmancy desktop environment.
Linux vtty: Run `loadkeys emacs.map` (provided it's available in /usr/share/kbd/keymaps/). It's a good idea to stick this in your rc.local or rc.conf.local or whatever the hell the systemd equivalent is.
OpenBSD vtty: Run `kbd us.swapctrlcaps` (there are similar variants for uk and some other keyboards). To make it "permanent", `echo 'us.swapctrlcaps' >/etc/kbdtype`.
OSX / macOS: There's a dropdown menu in the System Preferences under "Keyboard & Mouse".
Windows: You'll need to edit the registry. Follow the instructions here: http://superuser.com/a/916887 .
I don't have info for other systems handy, but it's most likely just a quick Google search away.
It's actually a bad idea to stick a loadkeys command in /etc/rc.local, since that's a system that van Smoorenburg rc itself superseded, back in the 1990s. It's between 2 and 4 init/rc system overhauls in the past, at this point. It also has no guaranteed ordering relative to native mechanisms; and on many systems there are native services that configure the kernel's terminal emulator.
And /etc/rc.conf.local is a configuration settings file that largely hasn't been around on Linux operating systems since those pre-van Smoorenburg rc days. (BSDs retain /etc/rc.conf.local . Some of them actually have a strict rule about not putting anything other than a map of name=value settings in there, though.)
On Linux operating systems, the kernel's terminal emulator's configuration hasn't been done by explicitly writing a loadkeys command for almost as long.
* /etc/default/keyboard has been the Debian mechanism since roughly the turn of the century, and one has to work out what XKBLAYOUT, XKBVARIANT, and XKBOPTIONS combination means "swap capslock and control". The Debian people designed it to do both the kernel's terminal emulator and X11 in one. So one probably uses XKBOPTIONS='ctrl:swapcaps' and ignores what you wrote about X11 entirely. (-:
* The vanilla systemd mechanism is /etc/vconsole.conf , which doesn't have the internally complex Debian approach of trying to have the kernel terminal emulator and X11 configured in lockstep, and the variable to change is named KEYMAP .
On FreeBSD/PC-BSD one just sets the keymap variable in /etc/rc.conf . Out of the box, FreeBSD/PC-BSD only comes with a few keymaps that swap capslock and control, and their names aren't regular. So one will have keymap="uk.iso-ctrl" but also keymap="bg.bds.ctrlcaps" .
The nosh user-space terminal emulator uses FreeBSD/PC-BSD keymaps. But it supports overlaid keymaps. Using an overlay, the configuration import subsystem makes both a vanilla (.kbdmap) and a swap-capslock-and-control (.capsctrl.kbdmap) compiled keyboard map from each of the FreeBSD/PC-BSD keymap source files.
You're definitely right about rc.local -- I mostly mentioned it as sort of the "greatest common denominator" of boot-time config across Linux distributions. Systemd notwithstanding, every distribution has (had?) its own method of setting the vtty keymap. I didn't know that about Debian's config, though -- that's really neat, and imho how such config should be done (though I'm a Slacker myself).
A couple of the more "BSD-ish" distributions do have an rc.conf.local (CRUX comes to mind, and iirc Arch had one in the pre-systemd days). Slackware, at least, still has an rc.local, and it's always the last step in multiuser boot (init 3, or just before the display manager is launched in init 4).
Thanks for the FreeBSD info, as well. Unfortunately, my (admittedly ancient) HDD crashed in my FreeBSD box recently (relatedly, if you know where I can find some big-ass IDE/PATA HDDs, I'm on the market... seems like NewEgg doesn't even sell IDE drives anymore, and Amazon's selection is rather shit).
nosh sounds really cool. How have I not heard of this before?!
Anyway, thanks for the learning :)
This winds up meaning I use Thinkpads for laptops and Microsoft Natural Ergonomic 4000 at the desktop. The upside of it is that much of the software I use allows Emacs keybindings.
I also used to map lshift to alt. I find it convenient. I don't know if anybody else would.
Recommend it.