445 lines
11 KiB
Nix
445 lines
11 KiB
Nix
{ pkgs, ... }:
|
|
let
|
|
tomlGenerate = (pkgs.formats.toml { }).generate;
|
|
in
|
|
{
|
|
# TODO: switch to module on next release
|
|
|
|
home.packages = [ pkgs.joshuto ];
|
|
home.shellAliases."fm" = "joshuto --change-directory";
|
|
|
|
xdg.configFile = {
|
|
"joshuto/joshuto.toml".source = tomlGenerate "joshuto-joshuto.toml" {
|
|
scroll_offset = 6;
|
|
# xdg_open = true;
|
|
# xdg_open_fork = true;
|
|
use_trash = true;
|
|
watch_files = true;
|
|
display = {
|
|
mode = "default";
|
|
collapse_preview = true;
|
|
column_ratio = [
|
|
1
|
|
3
|
|
4
|
|
];
|
|
show_borders = true;
|
|
show_hidden = false;
|
|
show_icons = true;
|
|
tilde_in_titlebar = true;
|
|
line_number_style = "absolute";
|
|
linemode = "size";
|
|
};
|
|
display.sort = {
|
|
sort_method = "natural";
|
|
case_sensitive = false;
|
|
directories_first = true;
|
|
reverse = false;
|
|
};
|
|
search = {
|
|
string_case_sensitivity = "insensitive";
|
|
glob_case_sensitivity = "sensitive";
|
|
fzf_case_sensitivity = "insensitive";
|
|
};
|
|
tab = {
|
|
display_mode = "all";
|
|
home_page = "inherit";
|
|
};
|
|
};
|
|
"joshuto/mimetype.toml".source = tomlGenerate "joshuto-mimetype.toml" {
|
|
|
|
class = {
|
|
audio_default = [
|
|
{
|
|
command = "mpv";
|
|
args = [ "--" ];
|
|
}
|
|
{
|
|
command = "mediainfo";
|
|
confirm_exit = true;
|
|
}
|
|
];
|
|
|
|
image_default = [
|
|
{
|
|
command = "qimgv";
|
|
args = [ "--" ];
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
command = "krita";
|
|
args = [ "--" ];
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
command = "exiftool";
|
|
confirm_exit = true;
|
|
}
|
|
{
|
|
command = "swappy";
|
|
args = [ "-f" ];
|
|
fork = 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 = "hx"; }
|
|
{ command = "micro"; }
|
|
{
|
|
command = "gedit";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
command = "bat";
|
|
args = [ "--paging=always" ];
|
|
}
|
|
];
|
|
|
|
reader_default = [
|
|
{
|
|
command = "evince";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
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";
|
|
|
|
svg.app_list = [
|
|
{
|
|
command = "inkview";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
command = "inkscape";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
tiff.app_list = [
|
|
{
|
|
command = "qimgv";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
command = "krita";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
|
|
## 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";
|
|
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;
|
|
}
|
|
{
|
|
command = "file-roller";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
bz2.app_list = [
|
|
{
|
|
command = "tar";
|
|
args = [ "-xvjf" ];
|
|
confirm_exit = true;
|
|
}
|
|
{
|
|
command = "file-roller";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
gz.app_list = [
|
|
{
|
|
command = "tar";
|
|
args = [ "-xvzf" ];
|
|
confirm_exit = true;
|
|
}
|
|
{
|
|
command = "file-roller";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
tar.app_list = [
|
|
{
|
|
command = "tar";
|
|
args = [ "-xvf" ];
|
|
confirm_exit = true;
|
|
}
|
|
{
|
|
command = "file-roller";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
tgz.app_list = [
|
|
{
|
|
command = "tar";
|
|
args = [ "-xvzf" ];
|
|
confirm_exit = true;
|
|
}
|
|
{
|
|
command = "file-roller";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
rar.app_list = [
|
|
{
|
|
command = "unrar";
|
|
args = [ "x" ];
|
|
confirm_exit = true;
|
|
}
|
|
{
|
|
command = "file-roller";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
];
|
|
xz.app_list = [
|
|
{
|
|
command = "tar";
|
|
args = [ "-xvJf" ];
|
|
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;
|
|
}
|
|
];
|
|
|
|
m3u.app_list = [
|
|
{ command = "micro"; }
|
|
{ command = "mpv"; }
|
|
{
|
|
command = "gedit";
|
|
fork = true;
|
|
silent = true;
|
|
}
|
|
{
|
|
command = "bat";
|
|
confirm_exit = 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
|
|
application.subtype.octet-stream."inherit" = "video_default";
|
|
# text/*
|
|
text."inherit" = "text_default";
|
|
# video/*
|
|
video."inherit" = "video_default";
|
|
};
|
|
};
|
|
|
|
"joshuto/bookmarks.toml".source = tomlGenerate "joshuto-bookmarks.toml" {
|
|
bookmark = [
|
|
{
|
|
path = "/";
|
|
key = "r";
|
|
}
|
|
{
|
|
path = "~/";
|
|
key = "h";
|
|
}
|
|
{
|
|
path = "~/Scaricati";
|
|
key = "d";
|
|
}
|
|
{
|
|
path = "~/Syncthing";
|
|
key = "s";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|