Hokay - I took a few hours yesterday to wrangle with this strange beast. Hope I produced something worthwhile. If you do as I do and call the file "ColemakNor", make sure to use that instead of "colemak" in Shai's instructions that I linked to above; and get the CamelCase right if you use capital letters in the name!
You saw the layout images I made in my other topic, I hope? The Norwegian ones could be useful to you in the starting phase.
My attempt isn't optimized when it comes to the AltGr functionality, but it should have the fun stuff that Shai put into his Xorg file at least. And I hope I got the "include" statement right. Try it out and see if it works - if not, we'll have some more wrangling to do. :)
// Colemak symbols for xkb on X.Org Server 7.x
// 2006-01-01 Shai Coleman, https://colemak.com/ . Public domain.
// 2007-02-08 Norwegian version by Øystein Bech Gadmar. Public domain.
partial default alphanumeric_keys
//xkb_symbols "basic" {
xkb_symbols "no" {
// include "us(basic)"
include "no(basic)"
name[Group1]= "ColemakNor";
// Alphanumeric section
key <TLDE> { [ bar, paragraph, brokenbar, section ] };
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
key <AE02> { [ 2, quotedbl, at, twosuperior ] };
key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
key <AE04> { [ 4, currency, dollar, cent ] };
key <AE05> { [ 5, percent, EuroSign, yen ] };
key <AE06> { [ 6, ampersand, hstroke, Hstroke ] };
key <AE07> { [ 7, slash, braceleft, leftsinglequotemark ] };
key <AE08> { [ 8, parenleft, bracketleft, leftdoublequotemark ] };
key <AE09> { [ 9, parenright, bracketright, rightdoublequotemark ] };
key <AE10> { [ 0, equal, braceright, rightsinglequotemark ] };
key <AE11> { [ plus, question, questiondown, plusminus ] };
key <AE12> { [ backslash, dead_grave, dead_acute, division ] };
key <AD01> { [ q, Q, otilde, Otilde ] };
key <AD02> { [ w, W, masculine, ordfeminine ] };
key <AD03> { [ f, F, atilde, Atilde ] };
key <AD04> { [ p, P, copyright, registered ] };
key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
key <AD06> { [ j, J, dstroke, Dstroke ] };
key <AD07> { [ l, L, lstroke, Lstroke ] };
key <AD08> { [ u, U, uacute, Uacute ] };
key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
key <AD10> { [ oslash, Ooblique, odiaeresis, Odiaeresis ] };
key <AD11> { [ aring, Aring, degree, 0x1002039 ] };
key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, 0x100203a ] };
key <AC01> { [ a, A, aacute, Aacute ] };
key <AC02> { [ r, R, dead_grave, asciitilde ] };
key <AC03> { [ s, S, ssharp, asciitilde ] };
key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
key <AC06> { [ h, H, dead_caron, asciitilde ] };
key <AC07> { [ n, N, ntilde, Ntilde ] };
key <AC08> { [ e, E, eacute, Eacute ] };
key <AC09> { [ i, I, iacute, Iacute ] };
key <AC10> { [ o, O, oacute, Oacute ] };
key <AC11> { [ ae, AE, adiaeresis, Adiaeresis ] };
key <BKSL> { [ apostrophe, asterisk, periodcentered, multiply ] };
key <AB01> { [ z, Z, dead_abovedot, asciitilde ] };
key <AB02> { [ x, X, dead_circumflex, asciitilde ] };
key <AB03> { [ c, C, ccedilla, Ccedilla ] };
key <AB04> { [ v, V, dead_cedilla, asciitilde ] };
key <AB05> { [ b, B, dead_breve, asciitilde ] };
key <AB06> { [ k, K, dead_abovering, asciitilde ] };
key <AB07> { [ m, M, dead_macron, mu ] };
key <AB08> { [ comma, semicolon, thorn, THORN ] };
key <AB09> { [ period, colon, eth, ETH ] };
key <AB10> { [ minus, underscore, endash, emdash ] };
key <CAPS> { [ BackSpace, BackSpace, Caps_Lock, Caps_Lock ] };
key <LSGT> { [ less, greater, guillemotleft, guillemotright ] };
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
include "level3(ralt_switch)"
};