From 4f71aedbe634ae8389d8e6eb7b345f7832b4aa3b Mon Sep 17 00:00:00 2001 From: Ole Martin Handeland Date: Mon, 21 Jul 2014 21:56:47 +0200 Subject: [PATCH] Added first version of Makefile + .gitignore --- .gitignore | 1 + Makefile | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7f77ad --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.xmodmap diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ac50725 --- /dev/null +++ b/Makefile @@ -0,0 +1,132 @@ +# Tarmak 1-4 xmodmap file generator +# +# Run 'make' inside this directory to create a bunch of xmodmap files based +# on your current layout, along with another set of xmodmap files to reset +# back to your current layout + +# File names +FILE1=tarmak1.xmodmap +FILE2=tarmak2.xmodmap +FILE3=tarmak3.xmodmap +FILE4=tarmak4.xmodmap +FILER=reset.xmodmap + +# Keycodes for letters/symbols in the QWERTY layout +E=26 +R=27 +T=28 +Y=29 +O=32 +P=33 +S=39 +D=40 +F=41 +G=42 +J=44 +K=45 +SC=47 +N=57 + +# Function to swap keycode $(1) to $(2) - and save it to file $(3) +swap = \ + xmodmap -pke | \ + grep "^keycode *$(2)" | \ + sed "s/keycode *$(2)/keycode $(1)/" >> $(3); \ + grep -v '^keycode *$(1)' $(FILER) > $(FILER).tmp; \ + mv $(FILER).tmp $(FILER); \ + xmodmap -pke | \ + grep "^keycode *$(1)" >> $(FILER) + +all: tarmak1 tarmak2 tarmak3 tarmak4 endmsg + +clean: + rm -f $(FILE1) + rm -f $(FILE2) + rm -f $(FILE3) + rm -f $(FILE4) + rm -f $(FILER) + +# Tarmak 1: E +tarmak1: + echo '! Tarmak 1' > $(FILE1) + echo '! Reset Tarmak 1' >> $(FILER) +# E => J + $(call swap,$(E),$(J),$(FILE1)) +# J => N + $(call swap,$(J),$(N),$(FILE1)) +# K => E + $(call swap,$(K),$(E),$(FILE1)) +# N => K + $(call swap,$(N),$(K),$(FILE1)) + +# Tarmak 2: ET +tarmak2: tarmak1 + grep -v '$(G)\|$(E)\|$(F)\|$(T)' $(FILE1) > $(FILE2) + echo '! Tarmak 2' >> $(FILE2) + echo '! Reset Tarmak 2' >> $(FILER) +# G => J + $(call swap,$(G),$(J),$(FILE2)) +# E => F + $(call swap,$(E),$(F),$(FILE2)) +# F => T + $(call swap,$(F),$(T),$(FILE2)) +# T => G + $(call swap,$(T),$(G),$(FILE2)) + +# Tarmak 3: ETR +tarmak3: tarmak2 + grep -v '$(S)\|$(D)\|$(R)\|$(G)' $(FILE2) > $(FILE3) + echo '! Tarmak 3' >> $(FILE3) + echo '! Reset Tarmak 4' >> $(FILER) +# S => R + $(call swap,$(S),$(R),$(FILE3)) +# D => S + $(call swap,$(D),$(S),$(FILE3)) +# R => J + $(call swap,$(R),$(J),$(FILE3)) +# G => D + $(call swap,$(G),$(D),$(FILE3)) + +# Tarmak 4: ETRO +tarmak4: tarmak3 + grep -v '$(O)\|$(SC)\|$(P)\|$(R)\|$(Y)' $(FILE3) > $(FILE4) + echo '! Tarmak 4' >> $(FILE4) + echo '! Reset Tarmak 4' >> $(FILER) +# O => Y + $(call swap,$(O),$(Y),$(FILE4)) +# ; => O + $(call swap,$(SC),$(O),$(FILE4)) +# P => ; + $(call swap,$(P),$(SC),$(FILE4)) +# R => P + $(call swap,$(R),$(P),$(FILE4)) +# Y => J + $(call swap,$(Y),$(J),$(FILE4)) + +endmsg: + @echo + @echo "Finished successfully!" + @echo + @echo "You can now switch to another layout using one of:" + @echo + @echo " xmodmap $(FILE1)" + @echo " xmodmap $(FILE2)" + @echo " xmodmap $(FILE3)" + @echo " xmodmap $(FILE4)" + @echo + @echo "And if you want to reset back to your current (qwerty) layout," + @echo "just call this:" + @echo + @echo " xmodmap $(FILER)" + @echo + @echo "When you are done with Tarmak 4, run the $(FILER) file and" + @echo "switch to the Colemak layout using your DE (desktop enviroment)" + @echo "settings (or run setxkbmap -variant colemak)" + @echo + @echo "Tip #1: Open a new terminal window in this folder and type in" + @echo " "xmodmap $(FILER)" so that you can just press enter if" + @echo " you get cold feet." + @echo + @echo "Tip #2: Do a \"ln -s $(FILE1) ~/.Xmodmap\" to run $(FILE1)" + @echo " when you log in." + @echo