145 lines
4.2 KiB
Plaintext
145 lines
4.2 KiB
Plaintext
# replace /home/$USER by ~
|
|
def tildize [] {
|
|
if ($in | path split | zip ($env.HOME | path split) | all { $in.0 == $in.1 }) {
|
|
($in | str replace $env.HOME "~")
|
|
} else {
|
|
$in
|
|
}
|
|
}
|
|
|
|
# remove extension shortcut
|
|
def rm-ext [] {
|
|
$in | path parse | udpate extension "" | get parent stem | str join "/"
|
|
}
|
|
|
|
# ls builtin
|
|
alias _ls = ls
|
|
|
|
# shortcut for ls builtin
|
|
alias l = _ls
|
|
|
|
def _ls_format_mode [mode: string] {
|
|
let chars = $mode | split chars
|
|
let r1 = if ($chars | get 0) == "r" { [(ansi yellow_bold), "r", (ansi reset)] } else { [(ansi grey), "-"] }
|
|
let w1 = if ($chars | get 1) == "w" { [(ansi red_bold), "w", (ansi reset)] } else { [(ansi grey), "-"] }
|
|
let x1 = if ($chars | get 2) == "x" { [(ansi green_bold), "x", (ansi reset)] } else { [(ansi grey), "-"] }
|
|
let r2 = if ($chars | get 3) == "r" { [(ansi yellow), "r", (ansi reset)] } else { [(ansi grey), "-"] }
|
|
let w2 = if ($chars | get 4) == "w" { [(ansi red), "w"] } else { [(ansi grey), "-"] }
|
|
let x2 = if ($chars | get 5) == "x" { [(ansi green), "x"] } else { [(ansi grey), "-"] }
|
|
let r3 = if ($chars | get 6) == "r" { [(ansi yellow), "r", (ansi reset)] } else { [(ansi grey), "-"] }
|
|
let w3 = if ($chars | get 7) == "w" { [(ansi red), "w"] } else { [(ansi grey), "-"] }
|
|
let x3 = if ($chars | get 8) == "x" { [(ansi green), "x"] } else { [(ansi grey), "-"] }
|
|
[$r1, $w1, $x1, $r2, $w2, $x2, $r3, $w3, $x3] | each { $in | str join } | str join
|
|
}
|
|
|
|
# quick and easy ls
|
|
def ls [dir?: string] {
|
|
let output = (if $dir == null { _ls } else { _ls $dir }) | sort-by type name -i
|
|
if ($output | length) == 0 { "" | cat } else { $output | grid -c -s " " | cat }
|
|
}
|
|
|
|
# ls with hidden files
|
|
def la [dir?: string] {
|
|
(if $dir == null { _ls -al } else { _ls -al $dir })
|
|
| sort-by type name -i
|
|
| each { $in | update mode (_ls_format_mode $in.mode) }
|
|
| select mode name target user size modified
|
|
}
|
|
|
|
# ls with details
|
|
def ll [dir?: string] {
|
|
(if $dir == null { _ls -l } else { _ls -l })
|
|
| each { $in | update mode (_ls_format_mode $in.mode) }
|
|
| sort-by type name -i
|
|
| select mode name target user size modified
|
|
}
|
|
|
|
# du builtin
|
|
alias _du = du
|
|
|
|
# non recursive du
|
|
def du [...args] {
|
|
let parsed_args = if ($args | is-empty) { ["*"] } else { $args }
|
|
$parsed_args | each { _du -a $in | select path apparent physical } | flatten
|
|
}
|
|
|
|
# df
|
|
def df [] {
|
|
^df -h
|
|
| str replace "Sys. de fichiers" "@"
|
|
| str replace "Monté sur" "@"
|
|
| detect columns
|
|
| rename "filesystem" "size" "used" "available" "used%" "mountpoint"
|
|
}
|
|
|
|
# easy markdown formamtter
|
|
def to-md [] {
|
|
let arg = $in
|
|
$env.config.table.mode = markdown;
|
|
echo $arg
|
|
}
|
|
|
|
# Useful aliases
|
|
|
|
# colored ip
|
|
alias ip = ip -c
|
|
|
|
# neovim
|
|
alias v = nvim
|
|
|
|
# quit
|
|
alias :q = exit
|
|
|
|
# evince in background
|
|
def pdf [arg: string] {
|
|
pueue add -e evince $arg
|
|
}
|
|
|
|
# ripgrep
|
|
alias rg = rg -uu
|
|
|
|
# mkdir && cd
|
|
def --env mkcd [dir: string] { mkdir $dir; cd $dir }
|
|
|
|
# run command in background
|
|
alias pa = pueue add --immediate
|
|
|
|
# show background commands
|
|
def pst [] {
|
|
pueue status -j
|
|
| from json
|
|
| get tasks
|
|
| transpose
|
|
| each { $in | get column1 }
|
|
| each {
|
|
let stdin = $in
|
|
|
|
$stdin | update status (
|
|
if $stdin.status == "Running" {
|
|
((ansi yellow) + "Running")
|
|
} else if not (echo $stdin.status | get -i Done | is-empty) {
|
|
let exit_value = $stdin.status | get "Done"
|
|
|
|
if ($exit_value == "Success") {
|
|
((ansi green) + "Success")
|
|
} else {
|
|
(ansi red) + "Failed (" + ($exit_value | get "Failed" | into string) + ")"
|
|
}
|
|
} else {
|
|
"Unknown???"
|
|
}
|
|
)
|
|
| update path ($in.path | tildize)
|
|
| update start ((ansi magenta) + ($in.start | date humanize))
|
|
| update end ((ansi magenta) + ($in.end | date humanize))
|
|
}
|
|
| select status command path start end
|
|
}
|
|
|
|
# shortcut for yazi
|
|
def --env y [] {
|
|
let cwd_file = mktemp -t
|
|
yazi --cwd-file $cwd_file
|
|
cd (cat $cwd_file)
|
|
}
|