diff --git a/modules/joshuto/default.nix b/modules/joshuto/default.nix index 1b96d1a..e38ca9f 100644 --- a/modules/joshuto/default.nix +++ b/modules/joshuto/default.nix @@ -23,6 +23,10 @@ xdg.configFile."joshuto/preview.sh".source = ./preview.sh; xdg.configFile."joshuto/kitty-show.sh".source = ./kitty-show.sh; xdg.configFile."joshuto/kitty-remove.sh".source = ./kitty-remove.sh; + + xdg.configFile."joshuto/mimetype.toml".source = ./mimetype.toml; + xdg.configFile."joshuto/keymap.toml".source = ./keymap.toml; + xdg.configFile."joshuto/theme.toml".source = ./theme.toml; } ]; } diff --git a/modules/joshuto/keymap.toml b/modules/joshuto/keymap.toml new file mode 100644 index 0000000..3a8a953 --- /dev/null +++ b/modules/joshuto/keymap.toml @@ -0,0 +1,166 @@ +[default_view] + +keymap = [ + { keys = ["escape"], command = "escape" }, + { keys = ["ctrl+t"], command = "new_tab" }, + { keys = ["alt+t"], command = "new_tab --cursor" }, + { keys = ["T"], command = "new_tab --current" }, + { keys = ["W"], command = "close_tab" }, + { keys = ["ctrl+w"], command = "close_tab" }, + { keys = ["q"], command = "close_tab" }, + { keys = ["ctrl+c"], command = "quit" }, + { keys = ["o"], command = "quit --output-selected-files" }, + + { keys = ["R"], command = "reload_dirlist" }, + { keys = ["z", "h"], command = "toggle_hidden" }, + { keys = ["ctrl+h"], command = "toggle_hidden" }, + { keys = ["\t"], command = "tab_switch 1" }, + { keys = ["backtab"], command = "tab_switch -1" }, + + { keys = ["alt+1"], command = "tab_switch_index 1" }, + { keys = ["alt+2"], command = "tab_switch_index 2" }, + { keys = ["alt+3"], command = "tab_switch_index 3" }, + { keys = ["alt+4"], command = "tab_switch_index 4" }, + { keys = ["alt+5"], command = "tab_switch_index 5" }, + + { keys = ["1"], command = "numbered_command 1" }, + { keys = ["2"], command = "numbered_command 2" }, + { keys = ["3"], command = "numbered_command 3" }, + { keys = ["4"], command = "numbered_command 4" }, + { keys = ["5"], command = "numbered_command 5" }, + { keys = ["6"], command = "numbered_command 6" }, + { keys = ["7"], command = "numbered_command 7" }, + { keys = ["8"], command = "numbered_command 8" }, + { keys = ["9"], command = "numbered_command 9" }, + + # arrow keys + { keys = ["arrow_up"], command = "cursor_move_up" }, + { keys = ["arrow_down"], command = "cursor_move_down" }, + { keys = ["arrow_left"], command = "cd .." }, + { keys = ["arrow_right"], command = "open" }, + { keys = ["\n"], command = "open" }, + { keys = ["home"], command = "cursor_move_home" }, + { keys = ["end"], command = "cursor_move_end" }, + { keys = ["page_up"], command = "cursor_move_page_up" }, + { keys = ["page_down"], command = "cursor_move_page_down" }, + { keys = ["ctrl+u"], command = "cursor_move_page_up 0.5" }, + { keys = ["ctrl+d"], command = "cursor_move_page_down 0.5" }, + + # vim-like keybindings + { keys = ["j"], command = "cursor_move_down" }, + { keys = ["k"], command = "cursor_move_up" }, + { keys = ["h"], command = "cd .." }, + { keys = ["l"], command = "open" }, + { keys = ["g", "g"], command = "cursor_move_home" }, + { keys = ["G"], command = "cursor_move_end" }, + { keys = ["r"], command = "open_with" }, + + { keys = ["H"], command = "cursor_move_page_home" }, + { keys = ["L"], command = "cursor_move_page_middle" }, + { keys = ["M"], command = "cursor_move_page_end" }, + + { keys = ["["], command = "parent_cursor_move_up" }, + { keys = ["]"], command = "parent_cursor_move_down" }, + + { keys = ["c", "d"], command = ":cd " }, + { keys = ["d", "d"], command = "cut_files" }, + { keys = ["y", "y"], command = "copy_files" }, + { keys = ["y", "n"], command = "copy_filename" }, + { keys = ["y", "."], command = "copy_filename_without_extension" }, + { keys = ["y", "p"], command = "copy_filepath" }, + { keys = ["y", "d"], command = "copy_dirpath" }, + + { keys = ["p", "l"], command = "symlink_files --relative=false" }, + { keys = ["p", "L"], command = "symlink_files --relative=true" }, + + { keys = ["delete"], command = "delete_files" }, + { keys = ["d", "D"], command = "delete_files" }, + + { keys = ["p", "p"], command = "paste_files" }, + { keys = ["p", "o"], command = "paste_files --overwrite=true" }, + + { keys = ["a"], command = "rename_append" }, + { keys = ["A"], command = "rename_prepend" }, + + { keys = ["f", "t"], command = ":touch " }, + + { keys = [" "], command = "select --toggle=true" }, + { keys = ["t"], command = "select --all=true --toggle=true" }, + { keys = ["V"], command = "toggle_visual" }, + + { keys = ["w"], command = "show_tasks --exit-key=w" }, + { keys = ["b", "b"], command = "bulk_rename" }, + { keys = ["="], command = "set_mode" }, + + { keys = [":"], command = ":" }, + { keys = [";"], command = ":" }, + + { keys = ["'"], command = ":shell " }, + { keys = ["m", "k"], command = ":mkdir " }, + { keys = ["c", "w"], command = ":rename " }, + + { keys = ["/"], command = ":search " }, + { keys = ["|"], command = ":search_inc " }, + { keys = ["\\"], command = ":search_glob " }, + { keys = ["S"], command = "search_fzf" }, + { keys = ["C"], command = "subdir_fzf" }, + + { keys = ["n"], command = "search_next" }, + { keys = ["N"], command = "search_prev" }, + + { keys = ["s", "r"], command = "sort reverse" }, + { keys = ["s", "l"], command = "sort lexical" }, + { keys = ["s", "m"], command = "sort mtime" }, + { keys = ["s", "n"], command = "sort natural" }, + { keys = ["s", "s"], command = "sort size" }, + { keys = ["s", "e"], command = "sort ext" }, + + { keys = ["m", "s"], command = "linemode size" }, + { keys = ["m", "m"], command = "linemode mtime" }, + { keys = ["m", "M"], command = "linemode sizemtime" }, + + { keys = ["g", "r"], command = "cd /" }, + { keys = ["g", "c"], command = "cd ~/.config" }, + { keys = ["g", "d"], command = "cd ~/Downloads" }, + { keys = ["g", "e"], command = "cd /etc" }, + { keys = ["g", "h"], command = "cd ~/" }, + { keys = ["?"], command = "help" }, +] + +[task_view] + +keymap = [ + # arrow keys + { keys = ["arrow_up"], command = "cursor_move_up" }, + { keys = ["arrow_down"], command = "cursor_move_down" }, + { keys = ["home"], command = "cursor_move_home" }, + { keys = ["end"], command = "cursor_move_end" }, + + # vim-like keybindings + { keys = ["j"], command = "cursor_move_down" }, + { keys = ["k"], command = "cursor_move_up" }, + { keys = ["g", "g"], command = "cursor_move_home" }, + { keys = ["G"], command = "cursor_move_end" }, + + { keys = ["w"], command = "show_tasks" }, + { keys = ["escape"], command = "show_tasks" }, +] + +[help_view] + +keymap = [ + # arrow keys + { keys = ["arrow_up"], command = "cursor_move_up" }, + { keys = ["arrow_down"], command = "cursor_move_down" }, + { keys = ["home"], command = "cursor_move_home" }, + { keys = ["end"], command = "cursor_move_end" }, + + # vim-like keybindings + { keys = ["j"], command = "cursor_move_down" }, + { keys = ["k"], command = "cursor_move_up" }, + { keys = ["g", "g"], command = "cursor_move_home" }, + { keys = ["G"], command = "cursor_move_end" }, + + { keys = ["w"], command = "show_tasks" }, + { keys = ["escape"], command = "show_tasks" }, +] diff --git a/modules/joshuto/mimetype.toml b/modules/joshuto/mimetype.toml new file mode 100644 index 0000000..0204154 --- /dev/null +++ b/modules/joshuto/mimetype.toml @@ -0,0 +1,163 @@ +[class] +audio_default = [ + { command = "mpv", args = [ "--" ] }, + { command = "mediainfo", confirm_exit = true }, +] + +image_default = [ + { command = "feh", args = [ "--" ], fork = true, silent = true }, +] + +video_default = [ + { command = "mpv", args = [ "--" ] , fork = true, silent = true }, + { command = "mediainfo", confirm_exit = true }, + { command = "mpv", args = [ "--mute", "on", "--" ], fork = true, silent = true }, +] + +text_default = [ + { command = "nvim" }, +] + +reader_default = [ + { command = "zathura", fork = true, silent = true }, +] + +libreoffice_default = [ + { command = "libreoffice", fork = true, silent = true }, +] + +[extension] + +## image formats +avif.inherit = "image_default" +bmp.inherit = "image_default" +gif.inherit = "image_default" +heic.inherit = "image_default" +jpeg.inherit = "image_default" +jpe.inherit = "image_default" +jpg.inherit = "image_default" +pgm.inherit = "image_default" +png.inherit = "image_default" +ppm.inherit = "image_default" +webp.inherit = "image_default" + +## audio formats +flac.inherit = "audio_default" +m4a.inherit = "audio_default" +mp3.inherit = "audio_default" +ogg.inherit = "audio_default" +wav.inherit = "audio_default" + +## video formats +avi.inherit = "video_default" +av1.inherit = "video_default" +flv.inherit = "video_default" +mkv.inherit = "video_default" +m4v.inherit = "video_default" +mov.inherit = "video_default" +mp4.inherit = "video_default" +ts.inherit = "video_default" +webm.inherit = "video_default" +wmv.inherit = "video_default" + +## text formats +build.inherit = "text_default" +c.inherit = "text_default" +cmake.inherit = "text_default" +conf.inherit = "text_default" +cpp.inherit = "text_default" +css.inherit = "text_default" +csv.inherit = "text_default" +cu.inherit = "text_default" +ebuild.inherit = "text_default" +eex.inherit = "text_default" +env.inherit = "text_default" +ex.inherit = "text_default" +exs.inherit = "text_default" +go.inherit = "text_default" +h.inherit = "text_default" +hpp.inherit = "text_default" +hs.inherit = "text_default" +html.inherit = "text_default" +ini.inherit = "text_default" +java.inherit = "text_default" +js.inherit = "text_default" +json.inherit = "text_default" +kt.inherit = "text_default" +lock.inherit = "text_default" +lua.inherit = "text_default" +log.inherit = "text_default" +md.inherit = "text_default" +micro.inherit = "text_default" +ninja.inherit = "text_default" +py.inherit = "text_default" +rkt.inherit = "text_default" +rs.inherit = "text_default" +scss.inherit = "text_default" +sh.inherit = "text_default" +srt.inherit = "text_default" +svelte.inherit = "text_default" +toml.inherit = "text_default" +tsx.inherit = "text_default" +txt.inherit = "text_default" +vim.inherit = "text_default" +xml.inherit = "text_default" +yaml.inherit = "text_default" +yml.inherit = "text_default" + +# archive formats +7z.app_list = [ { command = "7z", args = [ "x" ], confirm_exit = true } ] +rar.app_list = [ + { command = "unrar", args = [ "x" ], confirm_exit = true }, + { command = "file-roller", fork = true, silent = true } ] +zip.app_list = [ + { command = "unzip", confirm_exit = true }, + { command = "file-roller", fork = true, silent = true } ] + +# misc formats +aup.app_list = [ + { command = "audacity", fork = true, silent = true } ] + +odt.inherit = "libreoffice_default" +odf.inherit = "libreoffice_default" +ods.inherit = "libreoffice_default" +odp.inherit = "libreoffice_default" + +doc.inherit = "libreoffice_default" +docx.inherit = "libreoffice_default" +xls.inherit = "libreoffice_default" +xlsx.inherit = "libreoffice_default" +ppt.inherit = "libreoffice_default" +pptx.inherit = "libreoffice_default" + +pdf.inherit = "reader_default" + +kra.app_list = [ + { command = "krita", fork = true, silent = true } +] +kdenlive.app_list = [ + { command = "kdenlive", fork = true, silent = true } +] + +tex.app_list = [ + { command = "micro" }, + { command = "gedit", fork = true, silent = true }, + { command = "bat", confirm_exit = true }, + { command = "pdflatex" } ] + +torrent.app_list = [ + { command = "transmission-gtk" } ] + +[mimetype] + +# application/octet-stream +[mimetype.application.subtype.octet-stream] +inherit = "video_default" + +# text/* +[mimetype.text] +inherit = "text_default" + +# text/* +[mimetype.video] +inherit = "video_default" diff --git a/modules/joshuto/theme.toml b/modules/joshuto/theme.toml new file mode 100644 index 0000000..840d2b0 --- /dev/null +++ b/modules/joshuto/theme.toml @@ -0,0 +1,73 @@ +[selection] +fg = "light_yellow" +bold = true + +[visual_mode_selection] +fg = "light_red" +bold = true + +[selection.prefix] +prefix = " " +size = 2 + +[executable] +fg = "light_green" +bold = true + +[regular] +fg = "white" + +[directory] +fg = "light_blue" +bold = true + +[link] +fg = "cyan" +bold = true + +[link_invalid] +fg = "red" +bold = true + +[socket] +fg = "light_magenta" +bold = true + +[ext] + +bmp.fg = "yellow" +gif.fg = "yellow" +heic.fg = "yellow" +jpg.fg = "yellow" +jpeg.fg = "yellow" +pgm.fg = "yellow" +png.fg = "yellow" +ppm.fg = "yellow" +svg.fg = "yellow" + +wav.fg = "magenta" +flac.fg = "magenta" +mp3.fg = "magenta" +amr.fg = "magenta" + +avi.fg = "magenta" +flv.fg = "magenta" +m3u.fg = "magenta" +m4a.fg = "magenta" +m4v.fg = "magenta" +mkv.fg = "magenta" +mov.fg = "magenta" +mp4.fg = "magenta" +mpg.fg = "magenta" +rmvb.fg = "magenta" +webm.fg = "magenta" +wmv.fg = "magenta" + +7z.fg = "red" +bz2.fg = "red" +gz.fg = "red" +rar.fg = "red" +tar.fg = "red" +tgz.fg = "red" +xz.fg = "red" +zip.fg = "red"