aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKragen Javier Sitaker <kragen@pobox.com>2009-01-04 21:17:13 -0300
committerKragen Javier Sitaker <kragen@pobox.com>2009-01-04 21:17:13 -0300
commit71d7c7d552e47d2967067ab9c78c0b169fe5161d (patch)
tree65efe3c433a912a902ba604c579057afa92b7d6f
parenta bunch more technical words (diff)
downloaddotXCompose-71d7c7d552e47d2967067ab9c78c0b169fe5161d.tar.gz
dotXCompose-71d7c7d552e47d2967067ab9c78c0b169fe5161d.tar.bz2
dotXCompose-71d7c7d552e47d2967067ab9c78c0b169fe5161d.zip
changed from a `.ispell_american` sharing project to a `.XCompose` sharing project
-rw-r--r--README.md29
-rw-r--r--dotXCompose173
-rw-r--r--dotispell_american332
-rwxr-xr-xinstall18
4 files changed, 190 insertions, 362 deletions
diff --git a/README.md b/README.md
index 323e2fe..248f44d 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,14 @@
-p2p-ispell
-==========
+.XCompose
+=========
-When you run Ispell,
-it remembers what words you’ve added to your “personal dictionary”.
-Unfortunately,
-most of those words are real words
-in ordinary English.
-Why should all of us add them to our dictionaries separately?
+As explained in <http://canonical.org/~kragen/setting-up-keyboard.html>,
+your Compose key in X11 is controlled by (among other things) the file
+`.XCompose` in your home directory. This file gives you a large set
+of bindings for Unicode characters that are useful occasionally.
-If you use `flyspell-mode` in Emacs ≤22,
-you’re using Ispell.
-If you also use Unix,
-this tiny package
-will let you share the work of adding modern words
-(“memristor”, “hyperlinks”, lowercase “internet”)
-and acronyms
-(“IRC”, “IrDA”, “URL”)
-with other users of Ispell.
+More contributions are welcome; there's a Git repository at
+<http://github.org/kragen/xcompose>. We're trying to come up with a
+broadly acceptable set of keybindings that won't interfere with the
+traditional Compose bindings, aren't too hard to type, and cover a
+wide set of characters that are useful to use occasionally, making
+them available without the need for specialized input methods.
diff --git a/dotXCompose b/dotXCompose
new file mode 100644
index 0000000..0812d66
--- /dev/null
+++ b/dotXCompose
@@ -0,0 +1,173 @@
+# for Emacs: -*- coding: utf-8 -*-
+include "%L"
+
+# def emit(keys, codepoint, word):
+# print ('<Multi_key> %s <period>\t: "%s"\tU%04X\t\t# CIRCLED DIGIT %s' %
+# (keys, unichr(codepoint), codepoint, word)).encode('utf8')
+# numbers = 'one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty'
+# words = numbers.upper().split()
+# emit('<0>', 0x24EA, "ZERO")
+# for num, word in zip(range(1, 21), words):
+# emit(' '.join("<%s>" % char for char in str(num)), 0x245f + num, word)
+
+# michi's:
+# Custom additions: Typography
+<Multi_key> <period> <period> <period> : "…" U2026 # HORIZONTAL ELLIPSIS
+# These two are already present for me:
+# <Multi_key> <minus> <minus> <minus> : "—" U2014 # EM DASH
+# <Multi_key> <minus> <minus> <period> : "–" U2013 # EN DASH
+<Multi_key> <minus> <minus> <space> : "– " # EN DASH (followed by space)
+<Multi_key> <backslash> <minus> : "­" U00AD # SOFT HYPHEN
+<Multi_key> <comma> <space> : "‚" U201A # SINGLE LOW-9 QUOTATION MARK
+<Multi_key> <comma> <comma> : "„" U201E # DOUBLE LOW-9 QUOTATION MARK
+<Multi_key> <apostrophe> <space> : "’" U2019 # RIGHT SINGLE QUOTATION MARK
+<Multi_key> <apostrophe> <apostrophe> : "”" U201D # RIGHT DOUBLE QUOTATION MARK
+<Multi_key> <grave> <space> : "‘" U2018 # LEFT SINGLE QUOTATION MARK
+<Multi_key> <grave> <grave> : "“" U201C # LEFT DOUBLE QUOTATION MARK
+<Multi_key> <less> <bar> : "↵" U21B5 # DOWNWARDS ARROW WITH CORNER LEFTWARDS
+<Multi_key> <o> <period> : "•" U2022 # BULLET
+# By default <Multi_key> <period> <period> does this, but we broke that with the ... binding.
+<Multi_key> <o> <comma> : "·" periodcentered # MIDDLE DOT
+# Already present for me:
+# <Multi_key> <space> <space> : " " U00A0 # NO-BREAK SPACE
+<Multi_key> <backslash> <comma> : " " U2009 # THIN SPACE
+<Multi_key> <minus> <less> : "←" leftarrow # LEFTWARDS ARROW
+<Multi_key> <minus> <asciicircum> : "↑" uparrow # UPWARDS ARROW
+<Multi_key> <minus> <greater> : "→" rightarrow # RIGHTWARDS ARROW
+<Multi_key> <minus> <v> : "↓" downarrow # DOWNWARDS ARROW
+<Multi_key> <less> <minus> <greater> : "↔" U2194 # LEFT RIGHT ARROW (kragen's)
+
+
+# Custom additions: Mathematical symbols
+<Multi_key> <exclam> <equal> : "≠" U2260 # NOT EQUAL TO
+<Multi_key> <less> <equal> : "≤" U2264 # LESS-THAN OR EQUAL TO
+<Multi_key> <greater> <equal> : "≥" U2265 # GREATER-THAN OR EQUAL TO
+<Multi_key> <i> <n> : "∈" U220A # ELEMENT OF
+<Multi_key> <exclam> <i> <n> : "∉" U2209 # NOT AN ELEMENT OF
+<Multi_key> <a> <p> : "≅" U2245 # APPROXIMATELY EQUAL TO
+<Multi_key> <colon> <equal> : "≔" U2254 # COLON EQUALS
+<Multi_key> <s> <q> : "√" U221A # SQUARE ROOT
+<Multi_key> <slash> <backslash> : "∧" U2227 # LOGICAL AND
+<Multi_key> <backslash> <slash> : "∨" U2228 # LOGICAL OR
+<Multi_key> <backslash> <underscore> <slash> : "⊻" U22BB # XOR
+<Multi_key> <o> <asterisk> : "∘" U2218 # RING OPERATOR (function composition)
+<Multi_key> <E> <E> : "∃" U2203 # THERE EXISTS
+<Multi_key> <exclam> <E> <E> : "∄" U2204 # THERE DOES NOT EXIST
+<Multi_key> <A> <A> : "∀" U2200 # FOR ALL
+<Multi_key> <Q> <E> <D> : "∎" U220E # END OF PROOF
+<Multi_key> <8> <8> : "∞" U221E # INFINITY
+<Multi_key> <parenleft> <plus> <parenright> : "⊕" U2295 # CIRCLED PLUS
+<Multi_key> <parenleft> <minus> <parenright> : "⊖" U2296 # CIRCLED MINUS
+<Multi_key> <parenleft> <x> <x> <parenright> : "⊗" U2297 # CIRCLED TIMES
+<Multi_key> <parenleft> <slash> <parenright> : "⊘" U2298 # CIRCLED DIVISION SLASH
+<Multi_key> <parenleft> <asterisk> <parenright> : "⊛" U229B # CIRCLED ASTERISK OPERATOR
+<Multi_key> <asciicircum> <greater> : "⃗" U20D7 # COMBINING RIGHT ARROW ABOVE (vector)
+# There's a whole passel of these guys starting at U+1D538 but I have no fonts for those.
+<Multi_key> <bar> <C> : "ℂ" U2102 # DOUBLE-STRUCK CAPITAL C (set of complex numbers)
+<Multi_key> <bar> <N> : "ℕ" U2115 # DOUBLE-STRUCK CAPITAL N (natural number)
+<Multi_key> <bar> <P> : "ℙ" U2119 # DOUBLE-STRUCK CAPITAL P
+<Multi_key> <bar> <Q> : "ℚ" U211A # DOUBLE-STRUCK CAPITAL Q (set of rational numbers)
+<Multi_key> <bar> <R> : "ℝ" U211D # DOUBLE-STRUCK CAPITAL R (set of real numbers)
+<Multi_key> <bar> <Z> : "ℤ" U2124 # DOUBLE-STRUCK CAPITAL Z (set of integers)
+<Multi_key> <bracketleft> <bracketleft> : "⊏" U228F # SQUARE IMAGE OF
+<Multi_key> <bracketleft> <equal> : "⊑" U2291 # SQUARE IMAGE OF OR EQUAL TO
+<Multi_key> <bracketleft> <underscore> : "⊑" U2291 # SQUARE IMAGE OF OR EQUAL TO
+<Multi_key> <bracketright> <bracketright>: "⊐" U2290 # SQUARE ORIGINAL OF
+<Multi_key> <bracketright> <equal> : "⊒" U2291 # SQUARE ORIGINAL OF OR EQUAL TO
+<Multi_key> <bracketright> <underscore> : "⊒" U2291 # SQUARE ORIGINAL OF OR EQUAL TO
+
+# Custom additions: Greek letters. Mapping corresponds to Emacs Greek input method.
+<Multi_key> <asterisk> <a> : "α" U03B1 # GREEK SMALL LETTER ALPHA
+<Multi_key> <asterisk> <b> : "β" U03B2 # GREEK SMALL LETTER BETA
+<Multi_key> <asterisk> <c> : "ψ" U03C8 # GREEK SMALL LETTER PSI
+<Multi_key> <asterisk> <d> : "δ" U03B4 # GREEK SMALL LETTER DELTA
+<Multi_key> <asterisk> <e> : "ε" U03B5 # GREEK SMALL LETTER EPSILON
+<Multi_key> <asterisk> <f> : "φ" U03C6 # GREEK SMALL LETTER PHI
+<Multi_key> <asterisk> <g> : "γ" U03B3 # GREEK SMALL LETTER GAMMA
+<Multi_key> <asterisk> <h> : "η" U03B7 # GREEK SMALL LETTER ΕΤΑ
+<Multi_key> <asterisk> <i> : "ι" U03B9 # GREEK SMALL LETTER ΙΟΤΑ
+<Multi_key> <asterisk> <j> : "ξ" U03BE # GREEK SMALL LETTER XI
+<Multi_key> <asterisk> <k> : "κ" U03BA # GREEK SMALL LETTER KAPPA
+<Multi_key> <asterisk> <l> : "λ" U03BB # GREEK SMALL LETTER LAMBDA
+<Multi_key> <asterisk> <m> : "μ" U03BC # GREEK SMALL LETTER MU
+<Multi_key> <asterisk> <n> : "ν" U03BD # GREEK SMALL LETTER NU
+<Multi_key> <asterisk> <o> : "ο" U03BF # GREEK SMALL LETTER OMICRON
+<Multi_key> <asterisk> <p> : "π" U03C0 # GREEK SMALL LETTER PI
+# no mapping for q; in Emacs that's ";"
+<Multi_key> <asterisk> <r> : "ρ" U03C1 # GREEK SMALL LETTER RHO
+<Multi_key> <asterisk> <s> : "σ" U03C3 # GREEK SMALL LETTER SIGMA
+<Multi_key> <asterisk> <t> : "τ" U03C4 # GREEK SMALL LETTER TAU
+<Multi_key> <asterisk> <u> : "θ" U03B8 # GREEK SMALL LETTER THETA
+<Multi_key> <asterisk> <v> : "ω" U03C9 # GREEK SMALL LETTER OMEGA
+<Multi_key> <asterisk> <w> : "ς" U03C2 # GREEK SMALL LETTER FINAL SIGMA
+<Multi_key> <asterisk> <x> : "χ" U03C7 # GREEK SMALL LETTER CHI
+<Multi_key> <asterisk> <y> : "υ" U03C5 # GREEK SMALL LETTER UPSILON
+<Multi_key> <asterisk> <z> : "ζ" U03B6 # GREEK SMALL LETTER ZETA
+
+# Capital greek letters.
+<Multi_key> <asterisk> <A> : "Α" U0391 # GREEK CAPITAL LETTER ALPHA
+<Multi_key> <asterisk> <B> : "Β" U0392 # GREEK CAPITAL LETTER BETA
+<Multi_key> <asterisk> <C> : "Ψ" U03A8 # GREEK CAPITAL LETTER PSI
+<Multi_key> <asterisk> <D> : "Δ" U0394 # GREEK CAPITAL LETTER DELTA
+<Multi_key> <asterisk> <E> : "Ε" U0395 # GREEK CAPITAL LETTER EPSILON
+<Multi_key> <asterisk> <F> : "Φ" U03A6 # GREEK CAPITAL LETTER PHI
+<Multi_key> <asterisk> <G> : "Γ" U0393 # GREEK CAPITAL LETTER GAMMA
+<Multi_key> <asterisk> <H> : "Η" U0397 # GREEK CAPITAL LETTER ΕΤΑ
+<Multi_key> <asterisk> <I> : "Ι" U0399 # GREEK CAPITAL LETTER ΙΟΤΑ
+<Multi_key> <asterisk> <J> : "Ξ" U039E # GREEK CAPITAL LETTER XI
+<Multi_key> <asterisk> <K> : "Κ" U039A # GREEK CAPITAL LETTER KAPPA
+<Multi_key> <asterisk> <L> : "Λ" U039B # GREEK CAPITAL LETTER LAMBDA
+<Multi_key> <asterisk> <M> : "Μ" U039C # GREEK CAPITAL LETTER MU
+<Multi_key> <asterisk> <N> : "Ν" U039D # GREEK CAPITAL LETTER NU
+<Multi_key> <asterisk> <O> : "Ο" U039F # GREEK CAPITAL LETTER OMICRON
+<Multi_key> <asterisk> <P> : "Π" U03A0 # GREEK CAPITAL LETTER PI
+# no mapping for Q; in Emacs that's ":"
+<Multi_key> <asterisk> <R> : "Ρ" U03A1 # GREEK CAPITAL LETTER RHO
+<Multi_key> <asterisk> <S> : "Σ" U03A3 # GREEK CAPITAL LETTER SIGMA
+<Multi_key> <asterisk> <T> : "Τ" U03A4 # GREEK CAPITAL LETTER TAU
+<Multi_key> <asterisk> <U> : "Θ" U0398 # GREEK CAPITAL LETTER THETA
+<Multi_key> <asterisk> <V> : "Ω" U03A9 # GREEK CAPITAL LETTER OMEGA
+# Emacs maps W to "Σ", but I think that’s stupid
+<Multi_key> <asterisk> <X> : "Χ" U03A7 # GREEK CAPITAL LETTER CHI
+<Multi_key> <asterisk> <Y> : "Υ" U03A5 # GREEK CAPITAL LETTER UPSILON
+<Multi_key> <asterisk> <Z> : "Ζ" U0396 # GREEK CAPITAL LETTER ZETA
+
+# If you wanted to actually type in Greek, you would also need άίέ
+# etc. But you would probably just switch to a Greek keyboard layout.
+
+# Custom additions: fractions
+<Multi_key> <1> <3> : "⅓" U2153 # VULGAR FRACTION ONE THIRD
+<Multi_key> <2> <3> : "⅔" U2154 # VULGAR FRACTION TWO THIRDS
+# There are also fifths and eighths, but I don’t care enough about them.
+
+# Where should ⌘ (U+2318 PLACE OF INTEREST SIGN) go? There ought to
+# be a Macintosh keybinding for it but apparently there isn’t.
+
+# Custom additions: for chat (kragen)
+<Multi_key> <colon> <parenright> : "☺" U263A # WHITE SMILING FACE
+<Multi_key> <colon> <parenleft> : "☹" U2639 # WHITE FROWNING FACE
+<Multi_key> <exclam> <question> : "‽" U203D # INTERROBANG
+<Multi_key> <less> <3> : "♥" U2665 # BLACK HEART SUIT
+<Multi_key> <o> <slash> <asciitilde> : "♫" U266B # BEAMED EIGHTH NOTES
+<Multi_key> <p> <c> : "☮" U262E # PEACE SYMBOL
+<Multi_key> <asterisk> <parenleft> : "﴾" UFD3E # ORNATE LEFT PARENTHESIS
+<Multi_key> <asterisk> <parenright> : "﴿" UFD3F # ORNATE RIGHT PARENTHESIS
+<Multi_key> <k> <s> : "ʘ" U0298 # LATIN LETTER BILABIAL CLICK (kiss sound)
+<Multi_key> <bar> <greater> : "‣" U2023 # TRIANGULAR BULLET
+<Multi_key> <asciicircum> <minus> : "⁻" U207B # SUPERSCRIPT MINUS
+<Multi_key> <asciicircum> <n> : "ⁿ" U207F # SUPERSCRIPT LATIN LETTER SMALL N
+# XXX this conflicts with a normal binding! Also there's already a
+# binding for it, as well as the one above.
+<Multi_key> <asciicircum> <i> : "ⁱ" U2071 # SUPERSCRIPT LATIN LETTER SMALL I
+<Multi_key> <asciitilde> <equal> : "≈" U2248 # ALMOST EQUAL TO
+<Multi_key> <s> <t> : "st" UFB06 # LATIN SMALL LIGATURE ST
+# There are all kinds of awesome combining characters in the U+0300 page.
+# However, I don’t know how I would use a lot of them. x͜͡y?
+<Multi_key> <asciicircum> <f> <m> : "͒" U0352 # COMBINING FERMATA
+<Multi_key> <asciicircum> <underscore> <underscore> : "̅" U0305 # COMBINING OVERLINE
+# There are a bunch of other awesome combining characters like U+20E0
+# and U+20DD that I would totally use if my system suppported them.
+<Multi_key> <asterisk> <period> <period> <period> : "๛" U0E5B # THAI CHARACTER KHOMUT (end of chapter)
+
+# See also http://bleah.co.uk/~simon/stuff/XCompose
+# and http://dotfiles.org/~inky/.XCompose \ No newline at end of file
diff --git a/dotispell_american b/dotispell_american
deleted file mode 100644
index 6d559a7..0000000
--- a/dotispell_american
+++ /dev/null
@@ -1,332 +0,0 @@
-aerogel
-Agre
-Aikido
-aluminized
-antialiased
-antialiasing
-AP
-API
-APL
-app
-Arby's
-Asahi
-attosecond
-autoclave
-AVR
-awk
-backend
-backends
-backlight
-backport
-ballscrew
-barcode
-Belgrano
-BibTeX
-bignum
-bignums
-Bjarne
-blog
-blogger
-blogpost
-bootlicking
-breadcrumb
-breadcrumbs
-Buenos
-BUGTRAQ
-bytecode
-bytecodes
-CFGs
-changeset
-changesets
-clathrate
-clathrates
-clickable
-codepoints
-COFF
-com
-composable
-cookware
-Coreutils
-Cowan
-Craigslist
-CRTs
-CSS
-CueCat
-cvs
-dataflow
-Dechlorinating
-delusional
-destructors
-destructuring
-DHCP
-dichroic
-Diffie
-DOM
-douchebag
-Downcased
-downsamples
-DVCS
-EasyPG
-Eee
-electromechanical
-Eliezer
-elisp
-emacsen
-EmacsWiki
-enrichers
-fallback
-FastCGI
-FDA's
-femtosecond
-filesystem
-Firefox
-flintknap
-flyspell
-FPGA
-FreeBSD
-Freenode
-frontends
-FSF
-geoengineering
-geoscience
-geosciences
-geoscientists
-GHz
-gibibyte
-gimbals
-Girard
-GitHub
-Gitorious
-Gitosis
-Gmail
-GMT
-GnuPG
-GNUstep
-Gnutella
-Google's
-GPG
-GPL
-grep
-GSM
-Gtk
-Guido
-handheld
-heritability
-hostname
-HTML
-HTTP
-hyperlink
-hyperlinks
-HyperSpec
-hyperspectral
-Hypoid
-Iceweasel
-IDE
-IMAP
-Ingalls
-inline
-inlines
-internet
-IP
-IRC
-IrDA
-ISBNs
-JavaScript
-JDBC
-jQuery
-kaizen
-KDE
-Kernighan
-kiB
-kibibyte
-kibibytes
-kragen
-LaserJet
-LCD
-Leadscrew
-lexer
-LGPL
-Libre
-logfiles
-loupe
-loupes
-Lucene
-Mbps
-mebibytes
-memcached
-memristor
-memristors
-mergeable
-metadata
-microcontroller
-microcontrollers
-microelectronics
-microform
-micromechanical
-micromechanisms
-microprint
-minibuffer
-minibuffers
-MochiKit
-modeless
-modeline
-Monferini
-Monopotassium
-MoveOn's
-Mozilla
-multibyte
-multibyteness
-multihop
-multimeter
-MySQL
-namespace
-neuroscience
-neurosciences
-neuroscientists
-Newegg
-NeXTSTEP
-nonfinal
-nonreversible
-OCaml
-offline
-Ogg
-OpenBSD
-OpenGL
-OpenID
-OpenSSL
-OpenType
-OpenWRT
-org
-overridable
-packrat
-pageviews
-Parnas
-paulv
-paywall
-PDF
-PEGs
-perl
-permittivity
-PgDn
-PgUp
-photonic
-PHP
-picosecond
-Platt
-plugins
-podcast
-poopers
-pooperscooper
-POPL
-Postgres
-PostScript
-PowerPC
-prescientific
-presciently
-Press's
-proles
-pseudoscience
-PTFE
-PyGame
-pyrolytic
-Qt
-quasiquotation
-Quicksort
-rasterize
-rasterized
-README
-recentering
-recompress
-refactor
-reflectometer
-regexp
-regexps
-reified
-reimplementations
-reindexing
-remap
-remapped
-remapping
-remaps
-repatch
-RFC
-RGB
-Rohit
-RubyForge
-SameGame
-SATA
-Schiffman
-scientificity
-scientism
-Scientology
-screencast
-seawater
-sequitur
-Sinhala
-Sitaker
-Sittler
-Slashdot
-sloccount
-Smalltalk
-Solaris
-solitons
-Soros
-SourceForge
-spam
-SpiderMonkey
-Spolsky
-SQL
-SQLite
-SSH
-Stallman
-steatite
-Stepanov
-STL
-Stroustrup
-sublinearly
-submenu
-submillimeter
-subpixel
-subtend
-Sussman
-SVG
-svn
-terabyte
-terabytes
-terahertz
-Thunderbird
-Tilly
-timestamps
-titanyl
-tokenizing
-tooltips
-Trac
-TraceMonkey
-UARTs
-unconfigured
-Undernet
-unhide
-unintuitive
-unprofessionalism
-URL
-URLs
-USB
-UTC
-UTF
-vanadate
-visscher
-Vorbis
-Wanstrath's
-wasabi
-Weirich
-Wiimote
-wiki
-Wikimedia
-wikipedia
-WSJ
-wxWidgets
-Xilinx
-XML
-XO
-yerba
-Yudkowsky
diff --git a/install b/install
index 688d196..f31e98b 100755
--- a/install
+++ b/install
@@ -1,23 +1,15 @@
#!/bin/bash
set -e
-if [ -f ~/.ispell_american ]; then
+if [ -f ~/.XCompose ]; then
cat <<'EOF' >&2
-You already have a `~/.ispell_american`. Move it out of the way.
+You already have a `~/.XCompose`. Move it out of the way.
-You may want to merge it into this list. To do so, I'm pretty sure you can do
-this:
-
- mv ~/.ispell_american new-words
- ./install
- sort -u dotispell_american new-words -o dotispell_american
- git diff
- git commit -am 'adding my private words'
-
-Let me know if that doesn't work out.
+You may want to merge it into this file, taking care to avoid
+duplicates.
Kragen Javier Sitaker <kragen@canonical.org>
EOF
exit 1
fi
-ln -s "$(pwd)/dotispell_american" ~/.ispell_american
+ln -s "$(pwd)/dotXCompose" ~/.XCompose