summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.compizsnap/left.sh23
-rw-r--r--.compizsnap/max.sh19
-rw-r--r--.compizsnap/mouse.sh10
-rw-r--r--.compizsnap/right.sh23
-rw-r--r--.nano/nanorc.nanorc40
-rw-r--r--.nanorc315
-rw-r--r--share/nano/asm.nanorc17
-rw-r--r--share/nano/awk.nanorc38
-rw-r--r--share/nano/c.nanorc (renamed from .nano/c.nanorc)26
-rw-r--r--share/nano/cmake.nanorc19
-rw-r--r--share/nano/css.nanorc9
-rw-r--r--share/nano/debian.nanorc20
-rw-r--r--share/nano/fortran.nanorc41
-rw-r--r--share/nano/gentoo.nanorc55
-rw-r--r--share/nano/groff.nanorc24
-rw-r--r--share/nano/html.nanorc5
-rw-r--r--share/nano/java.nanorc12
-rw-r--r--share/nano/makefile.nanorc8
-rw-r--r--share/nano/man.nanorc9
-rw-r--r--share/nano/mgp.nanorc8
-rw-r--r--share/nano/mutt.nanorc4
-rw-r--r--share/nano/nanorc.nanorc16
-rw-r--r--share/nano/objc.nanorc41
-rw-r--r--share/nano/ocaml.nanorc27
-rw-r--r--share/nano/patch.nanorc (renamed from .nano/diff.nanorc)2
-rw-r--r--share/nano/perl.nanorc12
-rw-r--r--share/nano/php.nanorc30
-rw-r--r--share/nano/pov.nanorc15
-rw-r--r--share/nano/python.nanorc10
-rw-r--r--share/nano/ruby.nanorc31
-rw-r--r--share/nano/sh.nanorc14
-rw-r--r--share/nano/tcl.nanorc16
-rw-r--r--share/nano/tex.nanorc6
-rw-r--r--share/nano/xml.nanorc9
34 files changed, 897 insertions, 57 deletions
diff --git a/.compizsnap/left.sh b/.compizsnap/left.sh
new file mode 100644
index 0000000..8fb479f
--- /dev/null
+++ b/.compizsnap/left.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
+# This script adds window snapping functionality to compiz using the commands plugin.
+#
+# Directions: edit the mouse.sh script
+#
+
+. $HOME/.compizsnap/mouse.sh
+
+WIDTH=`xdpyinfo | grep 'dimensions:' | sed -r 's/.*\s([0-9]+)x([0-9]+)\s.*/\1/'`
+HALF=$(($WIDTH/2))
+
+if (xinput --query-state $MOUSE | grep down)
+then
+ echo ".compizsnap/left.sh: snapping because the mouse is pressed"
+ wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
+ wmctrl -r :ACTIVE: -b add,maximized_vert
+ wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1
+else
+ echo ".compizsnap/left.sh: exiting because the mouse isn't pressed"
+fi
+
diff --git a/.compizsnap/max.sh b/.compizsnap/max.sh
new file mode 100644
index 0000000..d1115ec
--- /dev/null
+++ b/.compizsnap/max.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+#
+# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
+# This script adds window snapping functionality to compiz using the commands plugin.
+#
+# Directions: edit the mouse.sh script
+#
+
+. $HOME/.compizsnap/mouse.sh
+
+if (xinput --query-state $MOUSE | grep down)
+then
+ echo ".compizsnap/max.sh: maximizing because the mouse is pressed"
+ wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
+ wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
+else
+ echo ".compizsnap/max.sh: exiting because the mouse isn't pressed"
+fi
+
diff --git a/.compizsnap/mouse.sh b/.compizsnap/mouse.sh
new file mode 100644
index 0000000..76d632c
--- /dev/null
+++ b/.compizsnap/mouse.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+#
+# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
+# This script adds window snapping functionality to compiz using the commands plugin.
+#
+# Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below:
+#
+
+export MOUSE=12
+
diff --git a/.compizsnap/right.sh b/.compizsnap/right.sh
new file mode 100644
index 0000000..c79151f
--- /dev/null
+++ b/.compizsnap/right.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+#
+# CompizSnap is a collaborative project from ubuntuforums.org and is free software.
+# This script adds window snapping functionality to compiz using the commands plugin.
+#
+# Directions: edit the mouse.sh script
+#
+
+. $HOME/.compizsnap/mouse.sh
+
+WIDTH=`xdpyinfo | grep 'dimensions:' | sed -r 's/.*\s([0-9]+)x([0-9]+)\s.*/\1/'`
+HALF=$(($WIDTH/2))
+
+if (xinput --query-state $MOUSE | grep down)
+then
+ echo ".compizsnap/right.sh: snapping because the mouse is pressed"
+ wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
+ wmctrl -r :ACTIVE: -b add,maximized_vert
+ wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1
+else
+ echo ".compizsnap/right.sh: exiting because the mouse isn't pressed"
+fi
+
diff --git a/.nano/nanorc.nanorc b/.nano/nanorc.nanorc
deleted file mode 100644
index 6177a4b..0000000
--- a/.nano/nanorc.nanorc
+++ /dev/null
@@ -1,40 +0,0 @@
-syntax "nanorc" "\.nanorc$"
-
-# set/unset
-color red "^(set|unset) (autoindent|backup|const|cut|historylog|keypad|multibuffer|noconvert|nofollow|nohelp|nowrap|preserve|regexp|smooth|suspend|tempfile|view)"
-color cyan "^set (fill|operatingdir|quotestr|speller|tabsize) \w*"
-color red "^set (fill|operatingdir|quotestr|speller|tabsize) "
-
-# syntax
-color cyan "^syntax .*"
-
-# colors: "(bright)?(white|black|red|blue|green|yellow|magenta|cyan)"
-color white,blue "white"
-color black,white "black"
-color red,white "red"
-color blue,white "blue"
-color green,white "green"
-color yellow,white "yellow"
-color magenta,white "magenta"
-color cyan,white "cyan"
-
-color brightwhite,blue "brightwhite"
-color brightblack,white "brightblack"
-color brightred,white "brightred"
-color brightblue,white "brightblue"
-color brightgreen,white "brightgreen"
-color brightyellow,white "brightyellow"
-color brightmagenta,white "brightmagenta"
-color brightcyan,white "brightcyan"
-
-# color
-color cyan "start=\w*"
-color cyan "end=\w*"
-
-# commands
-color blue "^(set|unset|syntax|color|icolor|include) "
-# comments
-color green "#.*$"
-
-#quotes
-#color yellow start="\"." end="[^((\\)*\)]\""
diff --git a/.nanorc b/.nanorc
index 93340a0..f150d54 100644
--- a/.nanorc
+++ b/.nanorc
@@ -1,5 +1,312 @@
-include ~/.nano/nanorc.nanorc
+## Sample initialization file for GNU nano.
+##
+## Please note that you must have configured nano with --enable-nanorc
+## for this file to be read! Also note that this file should not be in
+## DOS or Mac format, and that characters specially interpreted by the
+## shell should not be escaped here.
+##
+## To make sure a value is disabled, use "unset <option>".
+##
+## For the options that take parameters, the default value is given.
+## Other options are unset by default.
+##
+## Quotes inside string parameters don't have to be escaped with
+## backslashes. The last double quote in the string will be treated as
+## its end. For example, for the "brackets" option, ""')>]}" will match
+## ", ', ), >, ], and }.
-include ~/.nano/c.nanorc
-include ~/.nano/diff.nanorc
-include ~/.nano/php.nanorc
+## Use auto-indentation.
+set autoindent
+
+## Backup files to filename~.
+# set backup
+
+## The directory to put unique backup files in.
+set backupdir "~/.nano-backup"
+
+## Do backwards searches by default.
+# set backwards
+
+## Use bold text instead of reverse video text.
+# set boldtext
+
+## The characters treated as closing brackets when justifying
+## paragraphs. They cannot contain blank characters. Only closing
+## punctuation, optionally followed by closing brackets, can end
+## sentences.
+##
+# set brackets ""')>]}"
+
+## Do case sensitive searches by default.
+# set casesensitive
+
+## Constantly display the cursor position in the statusbar. Note that
+## this overrides "quickblank".
+# set const
+
+## Use cut to end of line by default.
+# set cut
+
+## Set the line length for wrapping text and justifying paragraphs.
+## If fill is 0 or less, the line length will be the screen width less
+## this number.
+##
+# set fill -8
+
+## Enable ~/.nano_history for saving and reading search/replace strings.
+# set historylog
+
+## The opening and closing brackets that can be found by bracket
+## searches. They cannot contain blank characters. The former set must
+## come before the latter set, and both must be in the same order.
+##
+# set matchbrackets "(<[{)>]}"
+
+## Use the blank line below the titlebar as extra editing space.
+# set morespace
+
+## Enable mouse support, if available for your system. When enabled,
+## mouse clicks can be used to place the cursor, set the mark (with a
+## double click), and execute shortcuts. The mouse will work in the X
+## Window System, and on the console when gpm is running.
+##
+# set mouse
+
+## Allow multiple file buffers (inserting a file will put it into a
+## separate buffer). You must have configured with --enable-multibuffer
+## for this to work.
+##
+# set multibuffer
+
+## Don't convert files from DOS/Mac format.
+set noconvert
+
+## Don't follow symlinks when writing files.
+# set nofollow
+
+## Don't display the helpful shortcut lists at the bottom of the screen.
+# set nohelp
+
+## Don't add newlines to the ends of files.
+set nonewlines
+
+## Don't wrap text at all.
+# set nowrap
+
+## Set operating directory. nano will not read or write files outside
+## this directory and its subdirectories. Also, the current directory
+## is changed to here, so any files are inserted from this dir. A blank
+## string means the operating directory feature is turned off.
+##
+# set operatingdir ""
+
+## Preserve the XON and XOFF keys (^Q and ^S).
+# set preserve
+
+## The characters treated as closing punctuation when justifying
+## paragraphs. They cannot contain blank characters. Only closing
+## punctuation, optionally followed by closing brackets, can end
+## sentences.
+##
+# set punct "!.?"
+
+## Do quick statusbar blanking. Statusbar messages will disappear after
+## 1 keystroke instead of 26. Note that "const" overrides this.
+##
+# set quickblank
+
+## The email-quote string, used to justify email-quoted paragraphs.
+## This is an extended regular expression if your system supports them,
+## otherwise a literal string. Default:
+# set quotestr "^([ ]*[#:>\|}])+"
+## if you have extended regular expression support, otherwise:
+# set quotestr "> "
+
+## Fix Backspace/Delete confusion problem.
+# set rebinddelete
+
+## Fix numeric keypad key confusion problem.
+# set rebindkeypad
+
+## Do extended regular expression searches by default.
+# set regexp
+
+## Make the Home key smarter. When Home is pressed anywhere but at the
+## very beginning of non-whitespace characters on a line, the cursor
+## will jump to that beginning (either forwards or backwards). If the
+## cursor is already at that position, it will jump to the true
+## beginning of the line.
+set smarthome
+
+## Use smooth scrolling as the default.
+set smooth
+
+## Enable soft line wrapping (AKA full line display).
+set softwrap
+
+## Use this spelling checker instead of the internal one. This option
+## does not properly have a default value.
+##
+# set speller "aspell -x -c"
+
+## Allow nano to be suspended.
+# set suspend
+
+## Use this tab size instead of the default; it must be greater than 0.
+# set tabsize 8
+
+## Convert typed tabs to spaces.
+# set tabstospaces
+
+## Save automatically on exit, don't prompt.
+# set tempfile
+
+## Enable the new (EXPERIMENTAL) generic undo code, not just for line
+## cuts.
+# set undo
+
+## Disallow file modification. Why would you want this in an rcfile? ;)
+# set view
+
+## The two single-column characters used to display the first characters
+## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
+## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
+# set whitespace " "
+
+## Detect word boundaries more accurately by treating punctuation
+## characters as parts of words.
+# set wordbounds
+
+
+## Color setup
+##
+## Format:
+##
+## syntax "short description" ["filename regex" ...]
+##
+## The "none" syntax is reserved; specifying it on the command line is
+## the same as not having a syntax at all. The "default" syntax is
+## special: it takes no filename regexes, and applies to files that
+## don't match any other syntax's filename regexes.
+##
+## color foreground,background "regex" ["regex"...]
+## or
+## icolor foreground,background "regex" ["regex"...]
+##
+## "color" will do case sensitive matches, while "icolor" will do case
+## insensitive matches.
+##
+## Valid colors: white, black, red, blue, green, yellow, magenta, cyan.
+## For foreground colors, you may use the prefix "bright" to get a
+## stronger highlight.
+##
+## To use multi-line regexes, use the start="regex" end="regex"
+## [start="regex" end="regex"...] format.
+##
+## If your system supports transparency, not specifying a background
+## color will use a transparent color. If you don't want this, be sure
+## to set the background color to black or white.
+##
+## If you wish, you may put your syntaxes in separate files. You can
+## make use of such files (which can only include "syntax", "color", and
+## "icolor" commands) as follows:
+##
+## include "/path/to/syntax_file.nanorc"
+##
+## Unless otherwise noted, the name of the syntax file (without the
+## ".nanorc" extension) should be the same as the "short description"
+## name inside that file. These names are kept fairly short to make
+## them easier to remember and faster to type using nano's -Y option.
+##
+## All regexes should be extended regular expressions.
+
+## Key bindings
+## Please see nanorc(5) for more details on this
+##
+## Here are some samples to get you going
+##
+# bind M-W nowrap main
+# bind M-A casesens search
+# bind ^S research main
+
+## Set this if your backspace key sends delete most of the time (2.1.3+)
+# bind kdel backspace all
+
+
+## Nanorc files
+include "/home/luke/share/nano/nanorc.nanorc"
+
+## C/C++
+include "/home/luke/share/nano/c.nanorc"
+
+## Makefiles
+include "/home/luke/share/nano/makefile.nanorc"
+
+## Cascading Style Sheets
+include "/home/luke/share/nano/css.nanorc"
+
+## Debian files
+include "/home/luke/share/nano/debian.nanorc"
+
+## Gentoo files
+include "/home/luke/share/nano/gentoo.nanorc"
+
+## HTML
+include "/home/luke/share/nano/html.nanorc"
+
+## PHP
+include "/home/luke/share/nano/php.nanorc"
+
+## TCL
+include "/home/luke/share/nano/tcl.nanorc"
+
+## TeX
+include "/home/luke/share/nano/tex.nanorc"
+
+## Quoted emails (under e.g. mutt)
+include "/home/luke/share/nano/mutt.nanorc"
+
+## Patch files
+include "/home/luke/share/nano/patch.nanorc"
+
+## Manpages
+include "/home/luke/share/nano/man.nanorc"
+
+## Groff
+include "/home/luke/share/nano/groff.nanorc"
+
+## Perl
+include "/home/luke/share/nano/perl.nanorc"
+
+## Python
+include "/home/luke/share/nano/python.nanorc"
+
+## Ruby
+include "/home/luke/share/nano/ruby.nanorc"
+
+## Java
+include "/home/luke/share/nano/java.nanorc"
+
+## Fortran
+include "/home/luke/share/nano/fortran.nanorc"
+
+## Objective-C
+include "/home/luke/share/nano/objc.nanorc"
+
+## OCaml
+include "/home/luke/share/nano/ocaml.nanorc"
+
+## AWK
+include "/home/luke/share/nano/awk.nanorc"
+
+## Assembler
+include "/home/luke/share/nano/asm.nanorc"
+
+## Bourne shell scripts
+include "/home/luke/share/nano/sh.nanorc"
+
+## POV-Ray
+include "/home/luke/share/nano/pov.nanorc"
+
+## XML-type files
+include "/home/luke/share/nano/xml.nanorc"
diff --git a/share/nano/asm.nanorc b/share/nano/asm.nanorc
new file mode 100644
index 0000000..e94ee90
--- /dev/null
+++ b/share/nano/asm.nanorc
@@ -0,0 +1,17 @@
+## Here is an example for assembler.
+##
+syntax "asm" "\.(S|s|asm)$"
+color red "\<[A-Z_]{2,}\>"
+color brightgreen "\.(data|subsection|text)"
+color green "\.(align|file|globl|global|hidden|section|size|type|weak)"
+color brightyellow "\.(ascii|asciz|byte|double|float|hword|int|long|short|single|struct|word)"
+icolor brightred "^[[:space:]]*[.0-9A-Z_]*:"
+color brightcyan "^[[:space:]]*#[[:space:]]*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
+## Highlight strings (note: VERY resource intensive)
+color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
+color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
+## Highlight comments
+color brightblue "//.*"
+color brightblue start="/\*" end="\*/"
+## Highlight trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/share/nano/awk.nanorc b/share/nano/awk.nanorc
new file mode 100644
index 0000000..696ab6a
--- /dev/null
+++ b/share/nano/awk.nanorc
@@ -0,0 +1,38 @@
+## Here is an example for awk.
+##
+syntax "awk" "\.awk$"
+## records
+icolor brightred "\$[0-9A-Z_!@#$*?-]+"
+## awk-set variables
+color red "\<(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\>"
+color red "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>"
+color red "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>"
+## function declarations and special patterns
+color brightgreen "\<(function|extension|BEGIN|END)\>"
+## operators
+color green "(\{|\}|\(|\)|\;|\]|\[|\\|<|>|!|=|&|\+|-|\*|%|/|\?:|\^|\|)"
+## flow control
+color brightyellow "\<(for|if|while|do|else|in|delete|exit)\>"
+color brightyellow "\<(break|continue|return)\>"
+## I/O statements
+color brightgreen "\<(close|getline|next|nextfile|print|printf)\>"
+color brightgreen "\<(system|fflush)\>"
+## standard functions
+color magenta "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>"
+color magenta "\<(asort|asorti|gensub|gsub|index|length|match)\>"
+color magenta "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>"
+color magenta "\<(mktime|strftime|systime)\>"
+color magenta "\<(and|compl|lshift|or|rshift|xor)\>"
+color magenta "\<(bindtextdomain|dcgettext|dcngettext)\>"
+
+##
+## String highlighting. You will in general want your comments and
+## strings to come last, because syntax highlighting rules will be
+## applied in the order they are read in.
+color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
+
+## Comment highlighting
+color brightblue "(^|[[:space:]])#.*$"
+
+## Trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/.nano/c.nanorc b/share/nano/c.nanorc
index abe2e58..b89c9d2 100644
--- a/.nano/c.nanorc
+++ b/share/nano/c.nanorc
@@ -1,30 +1,30 @@
-syntax "c" "\.(c|C|cc|cpp|cxx|h|H|hh|hpp|hxx)$"
-## Preprocessor directives (Anything that begins with #)
-color brightblack "#+(.*)"
+## Here is an example for C/C++.
##
-## General syntax
-color brightred "\<[A-Z_][0-9A-Z_]+\>"
-color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|signed|unsigned|inline)\>"
-color green "\<(u_?)?int(8|16|32|64|ptr)_t\>"
+syntax "c" "\.(c(c|pp|xx)?|C)$" "\.(h(h|pp|xx)?|H)$" "\.ii?$"
+color brightred "\<[A-Z_][0-9A-Z_]+\>"
+color green "\<(float|double|bool|char|int|short|long|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"
+color green "\<((s?size)|((u_?)?int(8|16|32|64|ptr)))_t\>"
color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
color brightyellow "\<(for|if|while|do|else|case|default|switch)\>"
color brightyellow "\<(try|throw|catch|operator|new|delete)\>"
-color magenta "\<(goto|continue|break|return|throw)\>"
-color brightcyan "^space:*#space:*(define|undef|include|ifn?def|endif|elif|else|if|warning|error)"
+color magenta "\<(goto|continue|break|return)\>"
+color brightcyan "^[[:space:]]*#[[:space:]]*(define|include(_next)?|(un|ifn?)def|endif|el(if|se)|if|warning|error|pragma)"
color brightmagenta "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
##
## GCC builtins
-color cyan "__attribute__space:*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
+color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
##
## String highlighting. You will in general want your comments and
## strings to come last, because syntax highlighting rules will be
## applied in the order they are read in.
-color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
+color brightyellow "<[^= ]*>" ""(\\.|[^"])*""
##
## This string is VERY resource intensive!
-color brightyellow start=""(\\.|[^"])*\\space:*$" end="^(\\.|[^"])*""
-##
+color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
+
## Comment highlighting
color brightblue "//.*"
color brightblue start="/\*" end="\*/"
+## Trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/share/nano/cmake.nanorc b/share/nano/cmake.nanorc
new file mode 100644
index 0000000..3c52f7d
--- /dev/null
+++ b/share/nano/cmake.nanorc
@@ -0,0 +1,19 @@
+## CMake syntax highlighter for GNU Nano
+##
+syntax "cmake" "(CMakeLists\.txt|\.cmake)$"
+
+icolor green "^[[:space:]]*[A-Z0-9_]+"
+icolor brightyellow "^[[:space:]]*(include|include_directories|include_external_msproject)\>"
+
+icolor brightgreen "^[[:space:]]*\<((else|end)?if|else|(end)?while|(end)?foreach|break)\>"
+color brightgreen "\<(NOT|COMMAND|POLICY|TARGET|EXISTS|IS_(DIRECTORY|ABSOLUTE)|DEFINED)\>[[:space:]]"
+color brightgreen "[[:space:]]\<(OR|AND|IS_NEWER_THAN|MATCHES|(STR|VERSION_)?(LESS|GREATER|EQUAL))\>[[:space:]]"
+
+icolor brightred "^[[:space:]]*\<((end)?(function|macro)|return)"
+
+icolor cyan start="\$(\{|ENV\{)" end="\}"
+color magenta "\<(APPLE|UNIX|WIN32|CYGWIN|BORLAND|MINGW|MSVC(_IDE|60|71|80|90)?)\>"
+
+icolor brightblue "^([[:space:]]*)?#.*"
+icolor brightblue "[[:space:]]#.*"
+color ,green "[[:space:]]+$"
diff --git a/share/nano/css.nanorc b/share/nano/css.nanorc
new file mode 100644
index 0000000..98eea18
--- /dev/null
+++ b/share/nano/css.nanorc
@@ -0,0 +1,9 @@
+## Here is an example for css files.
+##
+syntax "css" "\.css$"
+color brightred "."
+color brightyellow start="\{" end="\}"
+color brightwhite start=":" end="([;^\{]|$)"
+color brightblue ":active|:focus|:hover|:link|:visited|:link|:after|:before|$"
+color brightblue start="\/\*" end="\\*/"
+color green ";|:|\{|\}"
diff --git a/share/nano/debian.nanorc b/share/nano/debian.nanorc
new file mode 100644
index 0000000..a945dee
--- /dev/null
+++ b/share/nano/debian.nanorc
@@ -0,0 +1,20 @@
+## Here is an exmaple for apt's sources.list
+## Adapted from http://milianw.de/blog/Syntax-Highlighting-in-Nano
+## (mail@milianw.de).
+##
+syntax "apt/sources.list" "sources\.list(\.old|~)?$"
+# component
+color brightmagenta "^deb(-src)? ((http|file|ftp):/[^ ]+|cdrom:\[[^\]]+\]/|cdrom:\[[-a-zA-Z0-9\._\(\) ]+\]/) [^ ]+ .+$"
+# distribution
+color brightred "^deb(-src)? ((http|file|ftp):/[^ ]+|cdrom:\[[^\]]+\]/|cdrom:\[[-a-zA-Z0-9\._\(\) ]+\]/) [^ ]+"
+# URI
+color brightgreen "(http|file|ftp):/[^ ]+"
+# cdroms
+# [^\]] does not work...
+color brightgreen "cdrom:\[[-a-zA-Z0-9\._\(\) ]+\]/"
+# deb / deb-src
+color yellow "^deb"
+color yellow "^deb-src"
+# comments
+color brightblue "#.*"
+
diff --git a/share/nano/fortran.nanorc b/share/nano/fortran.nanorc
new file mode 100644
index 0000000..cc0c726
--- /dev/null
+++ b/share/nano/fortran.nanorc
@@ -0,0 +1,41 @@
+## Here is an example for Fortran 90/95
+
+syntax "fortran" "\.(f|f90|f95)$"
+
+#color red "\<[A-Z_]a[0-9A-Z_]+\>"
+color red "\<[0-9]+\>"
+
+icolor green "\<(action|advance|all|allocatable|allocated|any|apostrophe)\>"
+icolor green "\<(append|asis|assign|assignment|associated|character|common)\>"
+icolor green "\<(complex|data|default|delim|dimension|double precision)\>"
+icolor green "\<(elemental|epsilon|external|file|fmt|form|format|huge)\>"
+icolor green "\<(implicit|include|index|inquire|integer|intent|interface)\>"
+icolor green "\<(intrinsic|iostat|kind|logical|module|none|null|only)>"
+icolor green "\<(operator|optional|pack|parameter|pointer|position|private)\>"
+icolor green "\<(program|public|real|recl|recursive|selected_int_kind)\>"
+icolor green "\<(selected_real_kind|subroutine|status)\>"
+
+icolor cyan "\<(abs|achar|adjustl|adjustr|allocate|bit_size|call|char)\>"
+icolor cyan "\<(close|contains|count|cpu_time|cshift|date_and_time)\>"
+icolor cyan "\<(deallocate|digits|dot_product|eor|eoshift|function|iachar)\>"
+icolor cyan "\<(iand|ibclr|ibits|ibset|ichar|ieor|iolength|ior|ishft|ishftc)\>"
+icolor cyan "\<(lbound|len|len_trim|matmul|maxexponent|maxloc|maxval|merge)\>"
+icolor cyan "\<(minexponent|minloc|minval|mvbits|namelist|nearest|nullify)\>"
+icolor cyan "\<(open|pad|present|print|product|pure|quote|radix)\>"
+icolor cyan "\<(random_number|random_seed|range|read|readwrite|replace)\>"
+icolor cyan "\<(reshape|rewind|save|scan|sequence|shape|sign|size|spacing)\>"
+icolor cyan "\<(spread|sum|system_clock|target|transfer|transpose|trim)\>"
+icolor cyan "\<(ubound|unpack|verify|write|tiny|type|use|yes)\>"
+
+icolor yellow "\<(.and.|case|do|else|else?if|else?where|end|end?do|end?if)\>"
+icolor yellow "\<(end?select|.eqv.|forall|if|lge|lgt|lle|llt|.neqv.|.not.)\>"
+icolor yellow "\<(.or.|repeat|select case|then|where|while)\>"
+
+icolor magenta "\<(continue|cycle|exit|go?to|result|return)\>"
+
+## String highlighting.
+icolor yellow "<[^= ]*>" ""(\\.|[^"])*""
+
+## Comment highlighting
+icolor blue "!.*"
+
diff --git a/share/nano/gentoo.nanorc b/share/nano/gentoo.nanorc
new file mode 100644
index 0000000..2ad1597
--- /dev/null
+++ b/share/nano/gentoo.nanorc
@@ -0,0 +1,55 @@
+## Here is an example for Gentoo ebuilds/eclasses
+##
+syntax "ebuild" "\.e(build|class)$"
+## All the standard portage functions
+color brightgreen "^src_(unpack|prepare|configure|compile|install|test)" "^pkg_(config|nofetch|setup|(pre|post)(inst|rm))"
+## Highlight bash related syntax
+color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while|continue|break)\>"
+color green "\<(declare|eval|exec|let)\>"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color green "-[edfgruwxL]\>"
+color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
+## Highlight variables ... official portage ones in red, all others in bright red
+color brightred "\$\{?[a-zA-Z_0-9]+\}?"
+color red "\<(EAPI|ARCH|HOMEPAGE|DESCRIPTION|IUSE|SRC_URI|LICENSE|SLOT|KEYWORDS|(P|R)?DEPEND|PROVIDE|PROPERTIES|RESTRICT|USERLAND)\>"
+color red "\<(S|D|T|PV|PF|P|PN|PR|PVR|A|CATEGORY|DISTDIR|FILESDIR|ROOT|WORKDIR)\>" "\<(AS|C(PP|XX)?|LD)FLAGS\>" "\<C(HOST|TARGET|BUILD)\>"
+color red "\<QA_((TEXTRELS|EXECSTACK|WX_LOAD)(_[a-zA-Z_0-9]+)?|DT_HASH|PRESTRIPPED)\>" "\<WANT_AUTO(CONF|MAKE)\>" "\<AT_M4DIR\>"
+## Highlight portage commands
+color magenta "\<use(_(with|enable))?\> [!a-zA-Z0-9_+ -]*" "inherit.*"
+color brightblue "\<e(begin|end|conf|install|make|qmake[34]|ant|(qa)?warn|infon?|error|log|patch|new(group|user))\>"
+color brightblue "\<e(pause|beep|mktemp|(cvs|svn)_clean|punt_cxx)\>" "\<e(aclocal|auto(reconf|header|conf|make))\>"
+color brightblue "\<built_with_use\>" "\<make_desktop_entry\>" "\<unpack(_(makeself|pdv))?\>"
+color brightblue "\<die\>" "\<use(_(with|enable))?\>" "\<inherit\>" "\<has\>" "\<(has|best)_version\>"
+color brightblue "\<(do|new)(ins|(games)?s?bin|doc|lib(\.so|\.a)?|man|info|exe|initd|confd|envd|pam|menu|icon)\>"
+color brightblue "\<do(python|sed|dir|hard|sym|html|jar|mo)\>" "\<keepdir\>"
+color brightblue "prepall(docs|info|man|strip)?" "prep(info|lib|lib\.(so|a)|man|strip|gamesdirs)"
+color brightblue "\<(doc|ins|exe)?into\>" "\<(f|games)(owners|perms)\>" "\<(exe|ins|dir)opts\>"
+## Highlight common commands used in ebuilds
+color blue "\<make\>" "\<(awk|cat|cd|chmod|chown|cp|echo|env|export|find|e?grep|ln|mkdir|mv|rm|sed|set|tar|touch|unset|xargs)\>"
+## Highlight comments (doesnt work that well)
+color yellow "(^|[[:space:]])#.*$"
+## Highlight strings (doesnt work that well)
+color brightyellow ""(\\.|[^\"])*"" "'(\\.|[^'])*'"
+## Trailing space is bad!
+color ,green "[[:space:]]+$"
+
+## Here is an example for Portage control files
+##
+syntax "/etc/portage" "\.(keywords|mask|unmask|use)(/.+)?$"
+## Base text:
+color green "^.+$"
+## Use flags:
+color brightred "[[:space:]]+\+?[a-zA-Z0-9_-]+"
+color brightblue "[[:space:]]+-[a-zA-Z0-9_-]+"
+## Likely version and slot numbers:
+color magenta "-[[:digit:]].*([[:space:]]|$)"
+color magenta ":[^[:space:]]+([[:space:]]|$)"
+## Accepted arches:
+color white "[~-]?\<(alpha|amd64|arm|hppa|ia64|mips|ppc|ppc64|s390|sh|sparc(-fbsd)?|x86(-fbsd)?)\>"
+color white "[[:space:]][*~-]?\*"
+## Categories:
+color cyan "^[[:space:]]*.*/"
+## Masking regulators:
+color brightmagenta "^[[:space:]]*(=|~|<|<=|=<|>|>=|=>)"
+## Comments:
+color yellow "#.*$"
diff --git a/share/nano/groff.nanorc b/share/nano/groff.nanorc
new file mode 100644
index 0000000..02b82b8
--- /dev/null
+++ b/share/nano/groff.nanorc
@@ -0,0 +1,24 @@
+## Here is an example for groff.
+##
+syntax "groff" "\.m[ems]$" "\.rof" "\.tmac$" "^tmac."
+## The argument of .ds or .nr
+color cyan "^\.(ds|nr) [^[[:space:]]]*"
+## Single character escapes
+color brightmagenta "\\."
+## Highlight the argument of \f or \s in the same color
+color brightmagenta "\\f." "\\f\(.." "\\s(\+|\-)?[0-9]"
+## Newlines
+color cyan "(\\|\\\\)n(.|\(..)"
+color cyan start="(\\|\\\\)n\[" end="]"
+## Requests
+color brightgreen "^\.[[:space:]]*[^[[:space:]]]*"
+## Comments
+color yellow "^\.\\".*$"
+## Strings
+color green "(\\|\\\\)\*(.|\(..)"
+color green start="(\\|\\\\)\*\[" end="]"
+## Characters
+color brightred "\\\(.."
+color brightred start="\\\[" end="]"
+## Macro arguments
+color brightcyan "\\\\\$[1-9]"
diff --git a/share/nano/html.nanorc b/share/nano/html.nanorc
new file mode 100644
index 0000000..d31467d
--- /dev/null
+++ b/share/nano/html.nanorc
@@ -0,0 +1,5 @@
+## Here is a short example for HTML.
+##
+syntax "html" "\.html$"
+color blue start="<" end=">"
+color red "&[^;[[:space:]]]*;"
diff --git a/share/nano/java.nanorc b/share/nano/java.nanorc
new file mode 100644
index 0000000..a432f81
--- /dev/null
+++ b/share/nano/java.nanorc
@@ -0,0 +1,12 @@
+## Here is an example for Java.
+##
+syntax "java" "\.java$"
+color green "\<(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\>"
+color red "\<(break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\>"
+color cyan "\<(abstract|class|extends|final|implements|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile)\>"
+color red ""[^"]*""
+color yellow "\<(true|false|null)\>"
+color blue "//.*"
+color blue start="/\*" end="\*/"
+color brightblue start="/\*\*" end="\*/"
+color ,green "[[:space:]]+$"
diff --git a/share/nano/makefile.nanorc b/share/nano/makefile.nanorc
new file mode 100644
index 0000000..93a1e76
--- /dev/null
+++ b/share/nano/makefile.nanorc
@@ -0,0 +1,8 @@
+# unattributed syntax highlighting example from wiki.linuxhelp.net/
+
+syntax "makefile" "Makefile[^/]*$"
+color red "[:=]"
+color magenta "\<(if|ifeq|else|endif)\>"
+color blue "\$+[{(][a-zA-Z0-9_-]+[})]"
+color brightblue "^[^ ]+:"
+color green "#.*$"
diff --git a/share/nano/man.nanorc b/share/nano/man.nanorc
new file mode 100644
index 0000000..85efd26
--- /dev/null
+++ b/share/nano/man.nanorc
@@ -0,0 +1,9 @@
+## Here is an example for manpages.
+##
+syntax "man" "\.[1-9]x?$"
+color green "\.(S|T)H.*$"
+color brightgreen "\.(S|T)H" "\.TP"
+color brightred "\.(BR?|I[PR]?).*$"
+color brightblue "\.(BR?|I[PR]?|PP)"
+color brightwhite "\\f[BIPR]"
+color yellow "\.(br|DS|RS|RE|PD)"
diff --git a/share/nano/mgp.nanorc b/share/nano/mgp.nanorc
new file mode 100644
index 0000000..daba282
--- /dev/null
+++ b/share/nano/mgp.nanorc
@@ -0,0 +1,8 @@
+## Here is an example for Magicpoint presentations
+##
+syntax "mgp" "\.mgp$"
+header "^%include.*"
+icolor green "^%[a-z].*$"
+color cyan "(^|[[:space:]])#.*$"
+color cyan "(^|[[:space:]])%%.*$"
+color ,green "[[:space:]]+$"
diff --git a/share/nano/mutt.nanorc b/share/nano/mutt.nanorc
new file mode 100644
index 0000000..2e68399
--- /dev/null
+++ b/share/nano/mutt.nanorc
@@ -0,0 +1,4 @@
+## Here is an example for quoted emails (under e.g. mutt).
+##
+syntax "mutt"
+color green "^>.*"
diff --git a/share/nano/nanorc.nanorc b/share/nano/nanorc.nanorc
new file mode 100644
index 0000000..19ab533
--- /dev/null
+++ b/share/nano/nanorc.nanorc
@@ -0,0 +1,16 @@
+## Here is an example for nanorc files.
+##
+syntax "nanorc" "\.?nanorc$"
+## Possible errors and parameters
+icolor brightwhite "^[[:space:]]*((un)?set|include|syntax|i?color).*$"
+## Keywords
+icolor brightgreen "^[[:space:]]*(set|unset)[[:space:]]+(allow_insecure_backup|autoindent|backup|backupdir|backwards|boldtext|brackets|casesensitive|const|cut|fill|historylog|matchbrackets|morespace|mouse|multibuffer|noconvert|nofollow|nohelp|nonewlines|nowrap|operatingdir|preserve|punct)\>" "^[[:space:]]*(set|unset)[[:space:]]+(quickblank|quotestr|rebinddelete|rebindkeypad|regexp|smarthome|smooth|softwrap|speller|suspend|suspendenable|tabsize|tabstospaces|tempfile|undo|view|whitespace|wordbounds)\>"
+icolor green "^[[:space:]]*(set|unset|include|syntax|header)\>"
+## Colors
+icolor yellow "^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan)?(,(white|black|red|blue|green|yellow|magenta|cyan))?\>"
+icolor magenta "^[[:space:]]*i?color\>" "\<(start|end)="
+## Strings
+icolor white ""(\\.|[^"])*""
+## Comments
+icolor brightblue "^[[:space:]]*#.*$"
+icolor cyan "^[[:space:]]*##.*$"
diff --git a/share/nano/objc.nanorc b/share/nano/objc.nanorc
new file mode 100644
index 0000000..cdf6e48
--- /dev/null
+++ b/share/nano/objc.nanorc
@@ -0,0 +1,41 @@
+## Here is an example for C/C++/Obj-C.
+##
+syntax "m" "\.m$"
+
+
+## Stuffs
+color brightwhite "\<[A-Z_][0-9A-Z_]+\>"
+color green "\<(float|double|BOOL|bool|char|int|short|long|id|sizeof|enum|void|static|const|struct|union|typedef|extern|(un)?signed|inline)\>"
+color green "\<[[:alpha:]_][[:alnum:]_]*_t\>"
+color green "\<(class|namespace|template|public|protected|private|typename|this|friend|virtual|using|mutable|volatile|register|explicit)\>"
+color brightgreen "\<(for|if|while|do|else|case|default|switch)\>"
+color brightgreen "\<(try|throw|catch|operator|new|delete)\>"
+color brightgreen "\<(goto|continue|break|return)\>"
+color brightgreen "@\<(en(code|d)|i(mplementation|nterface)|selector)\>"
+##
+## GCC builtins
+color cyan "__attribute__[[:space:]]*\(\([^)]*\)\)" "__(aligned|asm|builtin|hidden|inline|packed|restrict|section|typeof|weak)__"
+
+## Selector/method
+color brightmagenta "(^|[[:space:]])\[.*[[:space:]].*\]"
+color white ":[[:alnum:]]*"
+color magenta "[[:alnum:]]*:"
+color white "\[[^][:space:]]*\]"
+
+##
+## String highlighting. You will in general want your comments and
+## strings to come last, because syntax highlighting rules will be
+## applied in the order they are read in.
+color brightblack "'([^'\]|(\\["'abfnrtv\\]))'" "'\\(([0-3]?[0-7]{1,2}))'" "'\\x[0-9A-Fa-f]{1,2}'"
+color brightblack "<[^= ]*>" ""(\\.|[^"])*""
+color brightblue "@"(\\.|[^"])*""
+##
+## This string is VERY resource intensive!
+## color brightyellow start=""(\\.|[^"])*\\[[:space:]]*$" end="^(\\.|[^"])*""
+
+color brightblue "^[[:space:]]*#[[:space:]]*(define|include|import|(un|ifn?)def|endif|el(if|se)|if|warning|error)"
+
+## Comment highlighting
+color yellow "//.*"
+color yellow start="/\*" end="\*/"
+
diff --git a/share/nano/ocaml.nanorc b/share/nano/ocaml.nanorc
new file mode 100644
index 0000000..fc71ae2
--- /dev/null
+++ b/share/nano/ocaml.nanorc
@@ -0,0 +1,27 @@
+# OCaml sample nanorc
+#
+syntax "ocaml" "\.mli?$"
+#uid
+color red "\<[A-Z][0-9a-z_]{2,}\>"
+#declarations
+color green "\<(let|val|method|in|and|rec|private|virtual|constraint)\>"
+#structure items
+color red "\<(type|open|class|module|exception|external)\>"
+#patterns
+color blue "\<(fun|function|functor|match|try|with)\>"
+#patterns-modifiers
+color yellow "\<(as|when|of)\>"
+#conditions
+color cyan "\<(if|then|else)\>"
+#blocs
+color magenta "\<(begin|end|object|struct|sig|for|while|do|done|to|downto)\>"
+#constantes
+color green "\<(true|false)\>"
+#modules/classes
+color green "\<(include|inherit|initializer)\>"
+#expr modifiers
+color yellow "\<(new|ref|mutable|lazy|assert|raise)\>"
+#comments
+color white start="\(\*" end="\*\)"
+#strings (no multiline handling yet)
+color brightblack ""[^\"]*""
diff --git a/.nano/diff.nanorc b/share/nano/patch.nanorc
index 1e14b25..a788b35 100644
--- a/.nano/diff.nanorc
+++ b/share/nano/patch.nanorc
@@ -1,3 +1,5 @@
+## Here is an example for patch files.
+##
syntax "patch" "\.(patch|diff)$"
color brightgreen "^\+.*"
color green "^\+\+\+.*"
diff --git a/share/nano/perl.nanorc b/share/nano/perl.nanorc
new file mode 100644
index 0000000..b5a5606
--- /dev/null
+++ b/share/nano/perl.nanorc
@@ -0,0 +1,12 @@
+## Here is an example for Perl.
+##
+syntax "perl" "\.p[lm]$"
+header "^#!.*/perl[-0-9._]*"
+color red "\<(accept|alarm|atan2|bin(d|mode)|c(aller|h(dir|mod|op|own|root)|lose(dir)?|onnect|os|rypt)|d(bm(close|open)|efined|elete|ie|o|ump)|e(ach|of|val|x(ec|ists|it|p))|f(cntl|ileno|lock|ork))\>" "\<(get(c|login|peername|pgrp|ppid|priority|pwnam|(host|net|proto|serv)byname|pwuid|grgid|(host|net)byaddr|protobynumber|servbyport)|([gs]et|end)(pw|gr|host|net|proto|serv)ent|getsock(name|opt)|gmtime|goto|grep|hex|index|int|ioctl|join)\>" "\<(keys|kill|last|length|link|listen|local(time)?|log|lstat|m|mkdir|msg(ctl|get|snd|rcv)|next|oct|open(dir)?|ord|pack|pipe|pop|printf?|push|q|qq|qx|rand|re(ad(dir|link)?|cv|do|name|quire|set|turn|verse|winddir)|rindex|rmdir|s|scalar|seek(dir)?)\>" "\<(se(lect|mctl|mget|mop|nd|tpgrp|tpriority|tsockopt)|shift|shm(ctl|get|read|write)|shutdown|sin|sleep|socket(pair)?|sort|spli(ce|t)|sprintf|sqrt|srand|stat|study|substr|symlink|sys(call|read|tem|write)|tell(dir)?|time|tr(y)?|truncate|umask)\>" "\<(un(def|link|pack|shift)|utime|values|vec|wait(pid)?|wantarray|warn|write)\>"
+color magenta "\<(continue|else|elsif|do|for|foreach|if|unless|until|while|eq|ne|lt|gt|le|ge|cmp|x|my|sub|use|package|can|isa)\>"
+icolor cyan start="[$@%]" end="( |[^0-9A-Z_]|-)"
+color yellow "".*"|qq\|.*\|"
+color white "[sm]/.*/"
+color white start="(^use| = new)" end=";"
+color green "#.*"
+color yellow start="<< 'STOP'" end="STOP"
diff --git a/share/nano/php.nanorc b/share/nano/php.nanorc
new file mode 100644
index 0000000..8ef495f
--- /dev/null
+++ b/share/nano/php.nanorc
@@ -0,0 +1,30 @@
+## Here is an example for PHP
+##
+syntax "php" "\.php[2345s~]?$"
+
+## php markings
+color brightgreen "(<\?(php)?|\?>)"
+
+## functions
+color white "\<[a-z_]*\("
+
+## types
+color green "\<(var|float|global|double|bool|char|int|enum|const)\>"
+
+## structure
+color brightyellow "\<(class|new|private|public|function|for|foreach|if|while|do|else|elseif|case|default|switch)\>"
+
+## control flow
+color magenta "\<(goto|continue|break|return)\>"
+
+## strings
+color brightyellow "<[^= ]*>" ""(\.|[^"])*""
+
+## comments
+color brightblue "//.*"
+color brightblue start="/\*" end="\*/"
+#color blue start="<" end=">"
+#color red "&[^;[[:space:]]]*;"
+
+## Trailing whitespace
+color ,green "[[:space:]]+$"
diff --git a/share/nano/pov.nanorc b/share/nano/pov.nanorc
new file mode 100644
index 0000000..298b201
--- /dev/null
+++ b/share/nano/pov.nanorc
@@ -0,0 +1,15 @@
+## Here is an example for POV-Ray.
+##
+syntax "pov" "\.(pov|POV|povray|POVRAY)$"
+color brightcyan "^[[:space:]]*#[[:space:]]*(declare)"
+color brightyellow "\<(sphere|cylinder|translate|matrix|rotate|scale)\>"
+color brightyellow "\<(orthographic|location|up|right|direction|clipped_by)\>"
+color brightyellow "\<(fog_type|fog_offset|fog_alt|rgb|distance|transform)\>"
+color brightred "^\<(texture)\>"
+color brightred "\<(light_source|background)\>"
+color brightred "\<(fog|object|camera)\>"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color brightmagenta "\<(union|group|subgroup)\>"
+## Comment highlighting
+color brightblue "//.*"
+color brightblue start="/\*" end="\*/"
diff --git a/share/nano/python.nanorc b/share/nano/python.nanorc
new file mode 100644
index 0000000..4280274
--- /dev/null
+++ b/share/nano/python.nanorc
@@ -0,0 +1,10 @@
+## Here is an example for Python.
+##
+syntax "python" "\.py$"
+header "^#!.*/python[-0-9._]*"
+icolor brightblue "def [0-9A-Z_]+"
+color brightcyan "\<(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\>"
+color brightgreen "['][^']*[^\\][']" "[']{3}.*[^\\][']{3}"
+color brightgreen "["][^"]*[^\\]["]" "["]{3}.*[^\\]["]{3}"
+color brightgreen start=""""[^"]" end=""""" start="'''[^']" end="'''"
+color brightred "#.*$"
diff --git a/share/nano/ruby.nanorc b/share/nano/ruby.nanorc
new file mode 100644
index 0000000..b30b229
--- /dev/null
+++ b/share/nano/ruby.nanorc
@@ -0,0 +1,31 @@
+## Here is an example for Ruby.
+##
+syntax "ruby" "\.rb$"
+header "^#!.*/ruby[-0-9._]*"
+## Asciibetical list of reserved words
+color yellow "\<(BEGIN|END|alias|and|begin|break|case|class|def|defined\?|do|else|elsif|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\>"
+## Constants
+color brightblue "(\$|@|@@)?\<[A-Z]+[0-9A-Z_a-z]*"
+## Ruby "symbols"
+icolor magenta "([ ]|^):[0-9A-Z_]+\>"
+## Some unique things we want to stand out
+color brightyellow "\<(__FILE__|__LINE__)\>"
+## Regular expressions
+color brightmagenta "/([^/]|(\\/))*/[iomx]*" "%r\{([^}]|(\\}))*\}[iomx]*"
+## Shell command expansion is in `backticks` or like %x{this}. These are
+## "double-quotish" (to use a perlism).
+color brightblue "`[^`]*`" "%x\{[^}]*\}"
+## Strings, double-quoted
+color green ""([^"]|(\\"))*"" "%[QW]?\{[^}]*\}" "%[QW]?\([^)]*\)" "%[QW]?<[^>]*>" "%[QW]?\[[^]]*\]" "%[QW]?\$[^$]*\$" "%[QW]?\^[^^]*\^" "%[QW]?![^!]*!"
+## Expression substitution. These go inside double-quoted strings,
+## "like #{this}".
+color brightgreen "#\{[^}]*\}"
+## Strings, single-quoted
+color green "'([^']|(\\'))*'" "%[qw]\{[^}]*\}" "%[qw]\([^)]*\)" "%[qw]<[^>]*>" "%[qw]\[[^]]*\]" "%[qw]\$[^$]*\$" "%[qw]\^[^^]*\^" "%[qw]![^!]*!"
+## Comments
+color cyan "#[^{].*$" "#$"
+color brightcyan "##[^{].*$" "##$"
+## "Here" docs
+color green start="<<-?'?EOT'?" end="^EOT"
+## Some common markers
+color brightcyan "(XXX|TODO|FIXME|\?\?\?)"
diff --git a/share/nano/sh.nanorc b/share/nano/sh.nanorc
new file mode 100644
index 0000000..ecce22e
--- /dev/null
+++ b/share/nano/sh.nanorc
@@ -0,0 +1,14 @@
+## Here is an example for Bourne shell scripts.
+##
+syntax "sh" "\.sh$"
+header "^#!.*/(ba|k|pdk)?sh[-0-9_]*"
+icolor brightgreen "^[0-9A-Z_]+\(\)"
+color green "\<(case|do|done|elif|else|esac|exit|fi|for|function|if|in|local|read|return|select|shift|then|time|until|while)\>"
+color green "(\{|\}|\(|\)|\;|\]|\[|`|\\|\$|<|>|!|=|&|\|)"
+color green "-[Ldefgruwx]\>"
+color green "-(eq|ne|gt|lt|ge|le|s|n|z)\>"
+color brightblue "\<(cat|cd|chmod|chown|cp|echo|env|export|grep|install|let|ln|make|mkdir|mv|rm|sed|set|tar|touch|umask|unset)\>"
+icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+color cyan "(^|[[:space:]])#.*$"
+color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
+color ,green "[[:space:]]+$"
diff --git a/share/nano/tcl.nanorc b/share/nano/tcl.nanorc
new file mode 100644
index 0000000..ad3401f
--- /dev/null
+++ b/share/nano/tcl.nanorc
@@ -0,0 +1,16 @@
+syntax "tcl" "\.tcl$"
+
+## Standard Tcl [info commands]
+color green "\<(after|append|array|auto_execok|auto_import|auto_load|auto_load_index|auto_qualify|binary|break|case|catch|cd|clock|close|concat|continue|encoding|eof|error|eval|exec|exit|expr|fblocked|fconfigure|fcopy|file|fileevent|flush|for|foreach|format|gets|glob|global|history|if|incr|info|interp|join|lappend|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|namespace|open|package|pid|puts|pwd|read|regexp|regsub|rename|return|scan|seek|set|socket|source|split|string|subst|switch|tclLog|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait|while)\>"
+## Basic Tcl sub commands.
+color green "\<(array anymore|array donesearch|array exists|array get|array names|array nextelement|array set|array size|array startsearch|array statistics|array unset)\>"
+color green "\<(string bytelength|string compare|string equal|string first|string index|string is|string last|string length|string map|string match|string range|string repeat|string replace|string to|string tolower|string totitle|string toupper|string trim|string trimleft|string trimright|string will|string wordend|string wordstart)\>"
+## Extended TclX [info commands]
+color green "\<(alarm|auto_load_pkg|bsearch|catclose|catgets|catopen|ccollate|cconcat|cequal|chgrp|chmod|chown|chroot|cindex|clength|cmdtrace|commandloop|crange|csubstr|ctoken|ctype|dup|echo|execl|fcntl|flock|fork|fstat|ftruncate|funlock|host_info|id|infox|keyldel|keylget|keylkeys|keylset|kill|lassign|lcontain|lempty|lgets|link|lmatch|loadlibindex|loop|lvarcat|lvarpop|lvarpush|max|min|nice|pipe|profile|random|readdir|replicate|scancontext|scanfile|scanmatch|select|server_accept|server_create|signal|sleep|sync|system|tclx_findinit|tclx_fork|tclx_load_tndxs|tclx_sleep|tclx_system|tclx_wait|times|translit|try_eval|umask|wait)\>"
+## Syntax.
+color brightblue "proc[[:space:]]" "(\{|\})"
+color green "(\(|\)|\;|`|\\|\$|<|>|!|=|&|\|)"
+color brightyellow ""(\\.|[^"])*"" "'(\\.|[^'])*'"
+icolor brightred "\$\{?[0-9A-Z_!@#$*?-]+\}?"
+color ,green "[[:space:]]+$"
+color ,magenta "^[[:space:]]*#.*"
diff --git a/share/nano/tex.nanorc b/share/nano/tex.nanorc
new file mode 100644
index 0000000..23ca3a4
--- /dev/null
+++ b/share/nano/tex.nanorc
@@ -0,0 +1,6 @@
+## Here is a short example for TeX files.
+##
+syntax "tex" "\.tex$"
+icolor green "\\.|\\[A-Z]*"
+color magenta "[{}]"
+color blue "(^|[^\])%.*"
diff --git a/share/nano/xml.nanorc b/share/nano/xml.nanorc
new file mode 100644
index 0000000..1f68c05
--- /dev/null
+++ b/share/nano/xml.nanorc
@@ -0,0 +1,9 @@
+## Here is an example for xml files.
+##
+syntax "xml" "\.([jrs]html?|sgml?|xml|xslt?)$"
+color green start="<" end=">"
+color cyan "<[^> ]+"
+color cyan ">"
+color yellow start="<!DOCTYPE" end="[/]?>"
+color yellow start="<!--" end="-->"
+color red "&[^;]*;"