###############################################################################
# key settings
###############################################################################
keycommand NOMETA, KEY_ENTER, "makefile", "cmdline('%q make -f %f  2>&1| $PAGER', -13)"
keycommand NOMETA, KEY_ENTER, "Makefile", "cmdline('%q make -f %f  2>&1| $PAGER', -13)"
keycommand NOMETA, KEY_ENTER, ".txt",     "shell('%q $PAGER %f', '%f')"
keycommand NOMETA, KEY_ENTER, ".html",    "cmdline('%q w3m %f', 0)"
keycommand NOMETA, KEY_ENTER, ".tex",     "cmdline('%q platex %f 2>&1 | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".gz",      "cmdline('gzip -d %f', 0)"
keycommand NOMETA, KEY_ENTER, ".bz2",     "cmdline('bzip2 -d %f', 0)"
keycommand NOMETA, KEY_ENTER, ".tar",     "cmdline('tar xvf %f', 0)"
keycommand NOMETA, KEY_ENTER, ".tgz",     "cmdline('tar xvfz %f', 0)"
keycommand NOMETA, KEY_ENTER, ".lzh",     "cmdline('lha x %f', 0)"
keycommand NOMETA, KEY_ENTER, ".zip",     "cmdline('unzip %f', 0)"
keycommand NOMETA, KEY_ENTER, ".dvi",     "cmdline('%s xdvi %f &', 0)"
keycommand NOMETA, KEY_ENTER, ".mp3",     "cmdline('mpg123 %f', 0)"
keycommand NOMETA, KEY_ENTER, ".mid",     "cmdline('timidity %f', 0)"
keycommand NOMETA, KEY_ENTER, ".jpg",     "cmdline('%q%s display %f &', 0)"
keycommand NOMETA, KEY_ENTER, ".gif",     "cmdline('%q%s display %f &', 0)"
keycommand NOMETA, KEY_ENTER, ".bmp",     "cmdline('%q%s display %f &', 0)"
keycommand NOMETA, KEY_ENTER, ".pnm",     "cmdline('%q%s display %f &', 0)"
keycommand NOMETA, KEY_ENTER, ".sh",      "cmdline('source %f', 0)"
keycommand NOMETA, KEY_ENTER, ".pl",      "cmdline('perl %f', 0)"
keycommand NOMETA, KEY_ENTER, ".py",      "cmdline('python %f', 0)"
keycommand NOMETA, KEY_ENTER, ".rb",      "cmdline('ruby %f', 0)"
keycommand NOMETA, KEY_ENTER, ".asm",     "cmdline('%q nasm -f elf %f 2>&1 | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".s",       "cmdline('%q as -o %X.o %f | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".c",       "cmdline('gcc -o %X %f; ./%X; rm -f %X', 0)"
keycommand NOMETA, KEY_ENTER, ".cpp",     "cmdline('g++ -o %X %f; ./%X; rm -f %X', 0)"
keycommand NOMETA, KEY_ENTER, ".class",   "cmdline('java %X', 0)"
keycommand NOMETA, KEY_ENTER, ".a",       "cmdline('%q nm %f 2>&1 | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".java",    "cmdline('%q javac %f 2>&1 | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".so",      "cmdline('%q nm -D %f 2>&1 | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".o",       "cmdline('%q nm %f 2>&1 | $PAGER', 0)"
keycommand NOMETA, KEY_ENTER, ".ps",      "cmdline('%q lpr %f -P', 0)"
keycommand NOMETA, KEY_ENTER, ".deb",     "cmdline('dpkg -i %f', 0)"
keycommand NOMETA, KEY_ENTER, ".dir",     "dir_move(cursor_name())"
keycommand NOMETA, KEY_ENTER, ".exe",     "cmdline('./%f ', 0)"
keycommand NOMETA, KEY_ENTER, "*",        "shell('%q $PAGER %f', '%f')"


keycommand NOMETA, KEY_UP,           "*",        "cursor_move(-1)"
keycommand NOMETA, KEY_DOWN,         "*",        "cursor_move(1)"
keycommand NOMETA, KEY_LEFT,         "*",        "cursor_left()"
keycommand NOMETA, KEY_RIGHT,        "*",        "cursor_right()"
keycommand NOMETA, KEY_HOME ,        "*",        "cursor_move(-9999)"
keycommand NOMETA, KEY_END,          "*",        "cursor_move(9999)"
keycommand NOMETA, KEY_PAGEUP,       "*",        "cursor_move(-5)"
keycommand NOMETA, KEY_PAGEDOWN,     "*",        "cursor_move(5)"
keycommand NOMETA, KEY_CTRL_P,       "*",        "cursor_move(-1)"
keycommand NOMETA, KEY_CTRL_N,       "*",        "cursor_move(1)"
keycommand NOMETA, KEY_CTRL_B,       "*",        "cursor_left()"
keycommand NOMETA, KEY_CTRL_F,       "*",        "cursor_right()"
keycommand NOMETA, KEY_CTRL_A,       "*",        "cursor_move(-9999)"
keycommand NOMETA, KEY_CTRL_E,       "*",        "cursor_move(9999)"
keycommand NOMETA, KEY_CTRL_V,       "*",        "cursor_move(5)"
keycommand NOMETA, KEY_CTRL_H,       "*",        "dir_move('..')"
keycommand META,   KEY_v,            "*",        "cursor_move(-5)"
keycommand META,   KEY_LEFT,         "*",        "dir_back()"
keycommand NOMETA, KEY_BACKSPACE,    "*",        "dir_move('..')"
keycommand NOMETA, 127,              "*",        "dir_move('..')"
keycommand NOMETA, KEY_SLASH,        "*",        "dir_move('/')"
keycommand NOMETA, KEY_TILDA,        "*",        "dir_move(\"#{ENV['HOME']}\")"
keycommand NOMETA, KEY_COLON,        "*",        "cmdline('', 0)"
keycommand META,   KEY_COLON,        "*",        "shell('%q cd %D1; echo \"-+- %D1 -+-\"; ls -aF --color; $SHELL', \"#{ENV['SHELL']}\")"
keycommand META,   KEY_x,            "*",        "cmdline('%r ', 0)"
keycommand NOMETA, KEY_SPACE,        "*",        "mark()"
keycommand NOMETA, KEY_CTRL_SPACE,   "*",        "mark_all()"
keycommand NOMETA, KEY_CTRL_L,       "*",        "refresh()"
keycommand NOMETA, KEY_CTRL_I,       "*",        "dir_up()"
keycommand NOMETA, KEY_CTRL_T,       "*",        "dir_new()"
keycommand NOMETA, KEY_CTRL_W,       "*",        "dir_close()"


keycommand META, KEY_c,      "*",     "copy(adir_path(), adir_mark(), sdir_path())"
keycommand META, KEY_m,      "*",     "move(adir_path(), adir_mark(), sdir_path())"
keycommand META, KEY_d,      "*",     "trashbox(adir_path(), adir_mark())"
keycommand META, KEY_D,      "*",     "remove(adir_path(), adir_mark())"

keycommand META, KEY_e,      "*",     "shell('%q $EDITOR %f', '%f')"
keycommand META, KEY_r,      "*",     "cmdline('%Q mv %f %f', -1)"
keycommand META, KEY_b,      "*",     "cmdline('%q cp -Rpdi %f %f.bak', 0)"
keycommand META, KEY_p,      "*",     "cmdline('tar cvfz %X.tgz %m1', -9)"
keycommand META, KEY_k,      "*",     "cmdline(\"%Q mkdir ''\", -1)"
keycommand META, KEY_n,      "*",     "cmdline(\"%Q touch ''\", -1)"
keycommand META, KEY_g,      "*",     "cmdline(\"%q grep '' * -r -n 2> /dev/null | $PAGER\", 9)"
keycommand META, KEY_l,      "*",     "cmdline('for i in %m1; do  $i; done', -9)"

defmenu("window",
   "(1) $HOME/public_html", KEY_1, "dir_new(); dir_move(\"#{ENV['HOME']}/public_html\")",
   "(2) $HOME/mtrashbox", KEY_2, "dir_new(); dir_move(\"#{ENV['HOME']}/mtrashbox\")",
   "e(x)change", KEY_x, "dir_exchange()",
   "(c)opy", KEY_c, "dir_copy()",
   "(u)p                                 TAB", KEY_u, "dir_up()",
   "(n)ew                             CTRL-T", KEY_n, "dir_new()",
   "c(l)ose                           CTRL-W", KEY_l, "dir_close()",
   "(/) new and move /", KEY_SLASH, "dir_new(); dir_move('/')",
   "(b)ak                          Meta-Left", KEY_b, "dir_back()"
);

keycommand META, KEY_w, "*", "menu('window')"


defmenu("file",
   "new symbolic (l)ink", KEY_l, "cmdline('%Q ln -s %F %D2', 0)",   
   "new (s)hell script", KEY_s, "cmdline(\"%Q echo '#!/bin/sh' > /tmp/sscript; chmod 755 /tmp/sscript; mv /tmp/sscript '.sh'\", -4)",
   "(f)ind", KEY_f, "cmdline(\"%q find -maxdepth 9 -type f -name '' 2> /dev/null | $PAGER\", 35)",
   "(c)p",  KEY_c, "cmdline('cp -Rpdf %m1 %D2', 0)",
   "(m)v",  KEY_m, "cmdline('mv -f %m1 %D2', 0)",
   "(r)m",  KEY_r, "cmdline('rm -R %m1', 0)",
   "e(x)it                            CTRL-C", KEY_x, "mf_exit()"
);

keycommand META, KEY_f, "*", "menu('file')"


defmenu("file_attr",
   "ch(m)od", KEY_m, "cmdline('%Q chmod -R  %m1', 12)",
   "ch(o)wn", KEY_o, "cmdline('%Q chown -R  %m1', 12)",
   "ch(g)rp", KEY_g, "cmdline('%Q chgrp -R  %m1', 12)",
   "m(a)ttr (permission and date)", KEY_a, "shell('%q mattr %m1', 'mattr')"
);

keycommand META, KEY_a, "*", "menu('file_attr')"


defmenu("option",
   "sort (n)ame", KEY_n, "sort_name()",
   "sort (e)xtension", KEY_e, "sort_ext()",
   "sort (s)ize", KEY_s, "sort_size()",
   "sort (t)ime", KEY_t, "sort_time()",
   "view (a)ll", KEY_a, "view_all()",
   "view name(o)nly", KEY_o, "view_nameonly()",
   "view (1)dir", KEY_1, "view_onedir()"
);

keycommand META, KEY_o, "*", "menu('option')"

###############################################################################
# option settings
###############################################################################
sort_name        # sort option
#sort_ext
#sort_size
#sort_time

view_all         # view option
#view_onedir
#view_nameonly
#view_onedir

option_isearch_normal true
option_isearch_shift true
option_isearch_sign true
option_color false
option_individual_cursor false
option_check_delete_file true

###############################################################################
# my local definition
###############################################################################
defmenu("my_commands",
   "(c)dparanoia", KEY_c, "cmdline('cdparanoia -B 1-; for i in *; do gogo $i; done; rm *wav', 0)",
   "(a)pache refresh", KEY_a, "shell('apachectl stop; apachectl start', 'apache refresh')"
);

keycommand META, KEY_y, "*", "menu('my_commands')"

