aboutsummaryrefslogtreecommitdiffstats
path: root/res/keyboard/layout/sv/programmer
diff options
context:
space:
mode:
Diffstat (limited to 'res/keyboard/layout/sv/programmer')
-rw-r--r--res/keyboard/layout/sv/programmer163
1 files changed, 163 insertions, 0 deletions
diff --git a/res/keyboard/layout/sv/programmer b/res/keyboard/layout/sv/programmer
new file mode 100644
index 0000000..9bfe055
--- /dev/null
+++ b/res/keyboard/layout/sv/programmer
@@ -0,0 +1,163 @@
+information
+ language "Swedish"
+ country "Sweden"
+ variant "QWERTY, programmer"
+end information
+
+# This variant is intended to reduce the risk
+# repetitive strain injury for programmers.
+# Do not forget the caps_is_ctrl mod.
+
+
+include "../common/qwerty"
+include "../common/base"
+
+
+function comma/0
+ ","
+end function
+function altcomma/0
+ "."
+end function
+
+macro mod_letter/2
+ <letter \1> : "\1"
+ <shift letter \1> : "\2"
+ <caps letter \1> : "\2"
+ <shift caps letter \1> : "\1"
+end macro
+
+mod_letter("å" "Å")
+mod_letter("ä" "Ä")
+mod_letter("ö" "Ö")
+
+<keycode 41> : <letter |>
+<keycode 12> : <letter +>
+<keycode 13> : <dead letter ´>
+<keycode 26> : <letter ->
+<keycode 27> : <dead letter ^>
+<keycode 39> : <letter ö>
+<keycode 40> : <letter .>
+<keycode 43> : <letter '>
+<keycode 86> : <letter <>
+<keycode 51> : <letter å>
+<keycode 52> : <letter ,>
+<keycode 53> : <letter ä>
+
+
+macro key/5
+ <letter \1> : "\2"
+ <shift letter \1> : "\3"
+ <altgr letter \1> : "\4"
+ <altgr shift letter \1> : "\5"
+end macro
+
+macro key/4
+ key("\1" "\1" "\2" "\3" "\3")
+end macro
+
+macro nocaps/2
+ <altgr letter \1> : "\2"
+ <altgr shift letter \1> : <void>
+end macro
+
+macro nocaps/3
+ <altgr letter \1> : "\2"
+ <altgr shift letter \1> : "\3"
+end macro
+
+macro caps/3
+ <altgr letter \1> : "\2"
+ <altgr shift letter \1> : "\3"
+ <altgr caps letter \1> : "\3"
+ <altgr caps shift letter \1> : "\2"
+end macro
+
+
+key("|" "|" "\\" "/" "`")
+key("1" "!" "1" "" "¡")
+key("2" "\"" "2" "@" "“")
+key("3" "#" "3" "£" "”")
+key("4" "$" "4" "¢" "‘")
+key("5" "%" "5" "€" "’")
+key("6" "&" "6" "¥" "¬")
+key("7" "/" "7" "{" "÷")
+key("8" "(" "8" "[" "«")
+key("9" ")" "9" "]" "»")
+key("0" "=" "0" "}" "°")
+key("+" "+" "?" "\\" "¿")
+<shift dead letter ´> : <dead letter `>
+<altgr dead letter ´> : "±"
+<altgr shift dead letter ´> : <dead letter ¨>
+
+<shift dead letter ^> : "^"
+<altgr dead letter ^> : <dead letter ~>
+<altgr shift dead letter ^> : "~"
+
+key("'" "*" "`" "×")
+key("<" ">" "|" "\\")
+
+<letter ,> : ","
+<shift letter ,> : ";"
+<altgr letter ,> : <dead letter ¸>
+<altgr shift letter ,> : <dead letter ˛>
+
+<letter .> : "."
+<shift letter .> : ":"
+<altgr letter .> : "·"
+<altgr shift letter .> : <dead letter ˙>
+
+<letter -> : "-"
+<shift letter -> : "_"
+<altgr letter -> : <dead letter \u0323>
+<altgr shift letter -> : <dead letter ¯>
+
+
+nocaps("q" "[" "<")
+nocaps("w" "]" ">")
+nocaps("e" "“" "‘")
+nocaps("r" "”" "’")
+nocaps("t" "/" "*")
+<altgr letter y> : "switch ()" <left>
+<altgr shift letter y> : "default:"
+<altgr letter u> : "unsigned "
+<altgr shift letter u> : "signed "
+<altgr letter i> : "else if ()" <left>
+<altgr shift letter i> : "else"
+<altgr letter o> : "while ()" <left>
+<altgr shift letter o> : "for ()" <left>
+<altgr letter p> : "continue;"
+<altgr shift letter p> : "break;"
+# - (see earlier)
+# ^ (see earlier)
+
+nocaps("a" "(" "{")
+nocaps("s" ")" "}")
+nocaps("d" "'" "\"")
+nocaps("f" "`" "\\")
+nocaps("g" "↑")
+# h
+<altgr letter j> : "goto fail;"
+<altgr shigy letter j> : "goto "
+<altgr letter k> : "const "
+<altgr shift letter k> : "restrict "
+<altgr letter l> : "static "
+<altgr shift letter l> : "static inline "
+<altgr letter ö> : "return "
+<altgr shift letter ö> : "volatile "
+# . (see earlier)
+# ' (see earlier)
+
+# < (see earlier)
+<altgr letter i> : "size_t"
+<altgr shift letter i> : "sizeof()" <left>
+# x
+nocaps("c" "©" "®")
+nocaps("v" "←")
+nocaps("b" "↓")
+nocaps("n" "→" "–")
+nocaps("m" "µ" "—")
+# å
+# , (see earlier)
+# ä
+