dotfiles/.config/nushell/config.nu.cgt

75 lines
1.7 KiB
Text

$env.config = {
show_banner: false
table: {
mode: reinforced
padding: { left: 0, right: 0 }
header_on_separator: true
}
completions: {
algorithm: "fuzzy"
}
cursor_shape: {
vi_insert: line
vi_normal: block
}
edit_mode: vi
shell_integration: true
use_kitty_protocol: true
highlight_resolved_externals: true
history: {
file_format: "sqlite"
isolation: true
}
keybindings: [
{
name: new_line_shift
modifier: shift
keycode: enter
mode: vi_insert
event: { edit: insertnewline }
},
]
}
# Aliases
def l [path: glob = "."] { ls $path | sort-by type }
def ll [path: glob = "."] { ls -la $path | sort-by type }
def la [path: glob = "."] { ls -a $path | sort-by type }
alias nv = nvim
alias nvide = & neovide "--no-fork"
# Misc functions
def --env mkdircd [p: string] {
mkdir $p
cd $p
}
def wldd [path: string] {
match (which $path) {
[{ path: $p }] => { ldd $p },
_ => { error make { msg: $"No external command ($path)" } },
}
}
def viewdoc [f: path] {
let inp = $f | path parse
match $inp.extension {
$e if $e in [ "doc", "docx", "odt", "ppt", "pptx", "odp" ] => {
let outp = { extension: "pdf", parent: "/tmp", stem: $inp.stem } | path join
libreoffice --convert-to pdf $f --outdir /tmp
try { zathura $outp }
rm $outp
},
"pdf" => { zathura $f },
"html" => { openbrowser $"file://($f | path expand)" }
$e if $e in [ "png", "webp", "jpg", "jpeg", "ff", "bmp" ] => { nsxiv $f },
_ => { mpv $f },
}
}