{ pkgs, ... }: { environment.systemPackages = with pkgs; [ joshuto ]; home-manager.sharedModules = [ { xdg.configFile."joshuto/joshuto.toml".text = /* toml */ '' [display] automatically_count_files = true show_borders = false show_hidden = true show_icons = true line_number_style = "absolute" collapse_preview = false [preview] max_preview_size = 10000000000 preview_script = "~/.config/joshuto/preview.sh" preview_shown_hook_script = "~/.config/joshuto/kitty-show.sh" preview_removed_hook_script = "~/.config/joshuto/kitty-remove.sh" ''; 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".text = /* toml */ '' [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" ''; xdg.configFile."joshuto/keymap.toml".text = /* toml */ '' [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" }, ] ''; xdg.configFile."joshuto/theme.toml".text = /* toml */ '' [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" ''; xdg.configFile."joshuto/icons.toml".text = /* toml */ '' # Default fallback icons [defaults] file = "" directory = "" # Directory exact match icons [directory_exact] # English ".git" = "" "Desktop" = "" "Documents" = "" "Downloads" = "" "Dotfiles" = "" "Dropbox" = "" "Music" = "" "Pictures" = "" "Public" = "" "Templates" = "" "Videos" = "" # File exact match icons [file_exact] ".bash_aliases" = "" ".bash_history" = "" ".bash_logout" = "" ".bash_profile" = "" ".bashprofile" = "" ".bashrc" = "" ".dmrc" = "" ".DS_Store" = "" ".fasd" = "" ".fehbg" = "" ".gitattributes" = "" ".gitconfig" = "" ".gitignore" = "" ".gitlab-ci.yml" = "" ".gvimrc" = "" ".inputrc" = "" ".jack-settings" = "" ".mime.types" = "" ".ncmpcpp" = "" ".nvidia-settings-rc" = "" ".pam_environment" = "" ".profile" = "" ".recently-used" = "" ".selected_editor" = "" ".vim" = "" ".viminfo" = "" ".vimrc" = "" ".Xauthority" = "" ".Xdefaults" = "" ".xinitrc" = "" ".xinputrc" = "" ".Xresources" = "" ".zshrc" = "" "_gvimrc" = "" "_vimrc" = "" "a.out" = "" "authorized_keys" = "" "bspwmrc" = "" "cmakelists.txt" = "" "config" = "" "config.ac" = "" "config.m4" = "" "config.mk" = "" "config.ru" = "" "configure" = "" "docker-compose.yml" = "" "dockerfile" = "" "Dockerfile" = "" "dropbox" = "" "exact-match-case-sensitive-1.txt" = "X1" "exact-match-case-sensitive-2" = "X2" "favicon.ico" = "" "gemfile" = "" "gruntfile.coffee" = "" "gruntfile.js" = "" "gruntfile.ls" = "" "gulpfile.coffee" = "" "gulpfile.js" = "" "gulpfile.ls" = "" "ini" = "" "known_hosts" = "" "ledger" = "" "license" = "" "LICENSE" = "" "LICENSE.md" = "" "LICENSE.txt" = "" "Makefile" = "" "makefile" = "" "Makefile.ac" = "" "Makefile.in" = "" "mimeapps.list" = "" "mix.lock" = "" "node_modules" = "" "package-lock.json" = "" "package.json" = "" "playlists" = "" "procfile" = "" "Rakefile" = "" "rakefile" = "" "react.jsx" = "" "README" = "" "README.markdown" = "" "README.md" = "" "README.rst" = "" "README.txt" = "" "sxhkdrc" = "" "user-dirs.dirs" = "" "webpack.config.js" = "" # File extension match [ext] "7z" = "" "a" = "" "ai" = "" "apk" = "" "asm" = "" "asp" = "" "aup" = "" "avi" = "" "awk" = "" "bash" = "" "bat" = "" "bmp" = "" "bz2" = "" "c" = "" "c++" = "" "cab" = "" "cbr" = "" "cbz" = "" "cc" = "" "class" = "" "clj" = "" "cljc" = "" "cljs" = "" "cmake" = "" "coffee" = "" "conf" = "" "cp" = "" "cpio" = "" "cpp" = "" "cs" = "" "csh" = "" "css" = "" "cue" = "" "cvs" = "" "cxx" = "" "d" = "" "dart" = "" "db" = "" "deb" = "" "diff" = "" "dll" = "" "doc" = "" "docx" = "" "dump" = "" "edn" = "" "eex" = "" "efi" = "" "ejs" = "" "elf" = "" "elm" = "" "epub" = "" "erl" = "" "ex" = "" "exe" = "" "exs" = "" "f//" = "" "fifo" = "|" "fish" = "" "flac" = "" "flv" = "" "fs" = "" "fsi" = "" "fsscript" = "" "fsx" = "" "gem" = "" "gemspec" = "" "gif" = "" "go" = "" "gz" = "" "gzip" = "" "h" = "" "haml" = "" "hbs" = "" "hh" = "" "hpp" = "" "hrl" = "" "hs" = "" "htaccess" = "" "htm" = "" "html" = "" "htpasswd" = "" "hxx" = "" "ico" = "" "img" = "" "ini" = "" "iso" = "" "jar" = "" "java" = "" "jl" = "" "jpeg" = "" "jpg" = "" "js" = "" "json" = "" "jsx" = "" "key" = "" "ksh" = "" "leex" = "" "less" = "" "lha" = "" "lhs" = "" "log" = "" "lua" = "" "lzh" = "" "lzma" = "" "m4a" = "" "m4v" = "" "markdown" = "" "md" = "" "mdx" = "" "mjs" = "" "mkv" = "" "ml" = "λ" "mli" = "λ" "mov" = "" "mp3" = "" "mp4" = "" "mpeg" = "" "mpg" = "" "msi" = "" "mustache" = "" "nix" = "" "o" = "" "ogg" = "" "pdf" = "" "php" = "" "pl" = "" "pm" = "" "png" = "" "pp" = "" "ppt" = "" "pptx" = "" "ps1" = "" "psb" = "" "psd" = "" "pub" = "" "py" = "" "pyc" = "" "pyd" = "" "pyo" = "" "r" = "ﳒ" "rake" = "" "rar" = "" "rb" = "" "rc" = "" "rlib" = "" "rmd" = "" "rom" = "" "rpm" = "" "rproj" = "鉶" "rs" = "" "rss" = "" "rtf" = "" "s" = "" "sass" = "" "scala" = "" "scss" = "" "sh" = "" "slim" = "" "sln" = "" "so" = "" "sql" = "" "styl" = "" "suo" = "" "swift" = "" "t" = "" "tar" = "" "tex" = "ﭨ" "tgz" = "" "toml" = "" "ts" = "" "tsx" = "" "twig" = "" "vim" = "" "vimrc" = "" "vue" = "﵂" "wav" = "" "webm" = "" "webmanifest" = "" "webp" = "" "xbps" = "" "xcplayground" = "" "xhtml" = "" "xls" = "" "xlsx" = "" "xml" = "" "xul" = "" "xz" = "" "yaml" = "" "yml" = "" "zip" = "" "zsh" = "" ''; } ]; }