mirror of
https://github.com/kristoferssolo/solorice.git
synced 2025-10-21 20:10:34 +00:00
Update 2025-05-31
Update 2025-05-06 Update 2025-05-09 Update 2025-05-11 Update 2025-05-13 Update 2025-05-18 Update 2025-05-19 Update 2025-05-24 Update 2025-05-27 Update 2025-05-29 Update 2025-05-31
This commit is contained in:
parent
d028d0ad38
commit
1d7d0b7c22
7
.dotter/artix-laptop.toml
Normal file
7
.dotter/artix-laptop.toml
Normal file
@ -0,0 +1,7 @@
|
||||
packages = [ "wayland" ]
|
||||
|
||||
[variables]
|
||||
dpi = "96"
|
||||
font_size = "16"
|
||||
terminal = "ghostty"
|
||||
browser = "floorp"
|
||||
7
.dotter/artix-machine.toml
Normal file
7
.dotter/artix-machine.toml
Normal file
@ -0,0 +1,7 @@
|
||||
packages = [ "x11" ]
|
||||
|
||||
[variables]
|
||||
dpi = "96"
|
||||
font_size = "10"
|
||||
terminal = "ghostty"
|
||||
browser = "floorp"
|
||||
@ -32,7 +32,7 @@ depends = [ "base", "awesome_laptop", "picom", "dunst", "rofi" ]
|
||||
"config/x11/xresources" = {target = "~/.config/x11/xresources", type = "template"}
|
||||
|
||||
[wayland]
|
||||
depends = [ "base", "hyprland", "dunst" ]
|
||||
depends = [ "base", "hyprland", "dunst", "rofi" ]
|
||||
|
||||
[wayland.files]
|
||||
"config/zsh/.zprofile-wayland" = "~/.config/zsh/.zprofile"
|
||||
@ -48,6 +48,12 @@ depends = [ "shell" ]
|
||||
"config/shell/env" = "~/.zshenv"
|
||||
"config/zsh/" = "~/.config/zsh/"
|
||||
|
||||
[fish]
|
||||
depends = [ "shell" ]
|
||||
|
||||
[fish.files]
|
||||
"config/fish/" = "~/.config/fish/"
|
||||
|
||||
[local.files]
|
||||
"local/bin/" = "~/.local/bin/"
|
||||
"local/share/" = "~/.local/share/"
|
||||
@ -59,7 +65,7 @@ depends = [ "shell" ]
|
||||
"config/rofi/config.rasi" = {target = "~/.config/rofi/config.rasi", type = "template"}
|
||||
|
||||
[misc]
|
||||
depends = [ "torrent", "zathura" ]
|
||||
depends = [ "torrent", "zathura", "email" ]
|
||||
|
||||
[misc.files]
|
||||
"config/batrc" = "~/.config/bat/config"
|
||||
@ -127,8 +133,11 @@ depends = [ "misc", "local", "eww", "lock" ]
|
||||
[spotify.files]
|
||||
"config/spotify-tui.yml" = "~/.config/spotify-tui/config.yml"
|
||||
|
||||
[email.files]
|
||||
"config/neomutt/" = "~/.config/neomutt/"
|
||||
|
||||
[terminal]
|
||||
depends = [ "zsh", "tmux" ]
|
||||
depends = [ "zsh", "tmux", "fish" ]
|
||||
|
||||
[terminal.files]
|
||||
"config/alacritty/" = "~/.config/alacritty/"
|
||||
@ -139,6 +148,7 @@ depends = [ "zsh", "tmux" ]
|
||||
|
||||
[tmux.files]
|
||||
"config/tmux/" = "~/.config/tmux/"
|
||||
"config/sesh/" = "~/.config/sesh/"
|
||||
|
||||
[xplr.files]
|
||||
"config/xplr/" = "~/.config/xplr/"
|
||||
|
||||
@ -68,6 +68,7 @@ beautiful.init(gears.filesystem.get_configuration_dir() .. "mytheme.lua")
|
||||
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
local terminal = "{{terminal}}"
|
||||
local browser = "{{browser}}"
|
||||
local editor = os.getenv("EDITOR") or "nvim"
|
||||
local editor_cmd = terminal .. " -e " .. editor
|
||||
|
||||
@ -437,7 +438,7 @@ local globalkeys = gears.table.join(
|
||||
-- awful.key({ modkey, "Control" }, "q", awesome.quit, { description = "quit awesome", group = "awesome" }),
|
||||
|
||||
awful.key({ modkey }, "b", function()
|
||||
awful.spawn("floorp")
|
||||
awful.spawn(browser)
|
||||
end, { description = "open browser", group = "launcher" }),
|
||||
awful.key({ modkey }, "n", function()
|
||||
awful.spawn(terminal .. " -e yazi")
|
||||
|
||||
@ -67,6 +67,7 @@ beautiful.init(gears.filesystem.get_configuration_dir() .. "mytheme.lua")
|
||||
|
||||
-- This is used later as the default terminal and editor to run.
|
||||
local terminal = "{{terminal}}"
|
||||
local browser = "{{browser}}"
|
||||
local editor = os.getenv("EDITOR") or "nvim"
|
||||
local editor_cmd = terminal .. " -e " .. editor
|
||||
|
||||
@ -430,7 +431,7 @@ local globalkeys = gears.table.join(
|
||||
-- awful.key({ modkey, "Control" }, "q", awesome.quit, { description = "quit awesome", group = "awesome" }),
|
||||
|
||||
awful.key({ modkey }, "b", function()
|
||||
awful.spawn("floorp")
|
||||
awful.spawn(browser)
|
||||
end, { description = "open browser", group = "launcher" }),
|
||||
awful.key({ modkey }, "n", function()
|
||||
awful.spawn(terminal .. " -e yazi")
|
||||
@ -485,7 +486,7 @@ local globalkeys = gears.table.join(
|
||||
-- Menubar
|
||||
awful.key({ modkey }, "p", function()
|
||||
-- menubar.show()
|
||||
awful.spawn("rofi -show drun -show-icons")
|
||||
awful.spawn("rofi -show combi -show-icons")
|
||||
end, { description = "show the menubar", group = "launcher" })
|
||||
)
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
# Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes`
|
||||
# for a list of all available themes
|
||||
--theme="Rosé Pine"
|
||||
--theme="base16"
|
||||
|
||||
# Enable this to use italic text on the terminal. This is not supported on all
|
||||
# terminal emulators (like tmux, by default):
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#? Config file for btop v. 1.4.0
|
||||
#? Config file for btop v. 1.4.3
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
@ -57,7 +57,7 @@ update_ms = 500
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "memory"
|
||||
proc_sorting = "cpu direct"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
@ -72,7 +72,7 @@ proc_colors = True
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = False
|
||||
proc_per_core = True
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
@ -210,6 +210,9 @@ net_sync = False
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
@ -226,6 +229,9 @@ log_level = "WARNING"
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
|
||||
@ -146,6 +146,10 @@ clock_time {
|
||||
margin: 0px 10px 0px 10px;
|
||||
}
|
||||
|
||||
.module-wifi {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
.separ {
|
||||
color: $highlight_med;
|
||||
font-weight: bold;
|
||||
@ -472,3 +476,11 @@ calendar:indeterminate {
|
||||
min-width: 120px;
|
||||
margin: 0px 0px 20px 0px;
|
||||
}
|
||||
|
||||
.activate-linux {
|
||||
color: rgba(250, 250, 250, 0.5);
|
||||
|
||||
&.background {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,12 +99,12 @@
|
||||
:tooltip "Battery on ${EWW_BATTERY.BAT0.capacity}%"
|
||||
:show_truncated false
|
||||
:wrap false
|
||||
"${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
||||
""}"
|
||||
;; "${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
||||
;; ""}"
|
||||
))))
|
||||
|
||||
|
||||
@ -124,7 +124,7 @@
|
||||
:tooltip "Using ${memory}% ram"
|
||||
:show_truncated false
|
||||
:wrap false
|
||||
""))))
|
||||
))))
|
||||
|
||||
|
||||
|
||||
@ -311,12 +311,12 @@
|
||||
:class "sys_bat"
|
||||
:thickness 9
|
||||
(label
|
||||
:text "${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
||||
EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
||||
""}"
|
||||
;; :text "${EWW_BATTERY.BAT0.status == "Charging" ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 90 ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 70 ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 40 ? "" :
|
||||
;; EWW_BATTERY.BAT0.capacity > 20 ? "" :
|
||||
;; ""}"
|
||||
:interval "5m"
|
||||
:class "sys_icon_bat ${EWW_BATTERY.BAT0.capacity} syst_icon_bat__${EWW_BATTERY.BAT0.status} ${EWW_BATTERY.BAT0.capacity < 20 ? "sys_icon_bat__low" : ""}"
|
||||
:limit-width 2
|
||||
@ -350,7 +350,7 @@
|
||||
:show_truncated false
|
||||
:wrap false)))
|
||||
(label
|
||||
:text ""
|
||||
:text ""
|
||||
:class "sys_sep"
|
||||
:halign "center")
|
||||
(box
|
||||
@ -363,7 +363,6 @@
|
||||
:class "sys_mem"
|
||||
:thickness 9
|
||||
(label
|
||||
:text ""
|
||||
:class "sys_icon_mem"
|
||||
:limit-width 2
|
||||
:show_truncated false
|
||||
@ -566,3 +565,16 @@
|
||||
(box :class "window"
|
||||
(label :text "${window}")))
|
||||
|
||||
(defwidget activate-linux []
|
||||
(box
|
||||
:orientation "v"
|
||||
:halign "start"
|
||||
:valign "start"
|
||||
(label :xalign 0 :markup "<span font_size=\"large\">Activate Linux</span>")
|
||||
(label :xalign 0 :text "Go to Settings to activate Linux")))
|
||||
|
||||
(defwindow activate-linux
|
||||
:monitor 0
|
||||
:stacking "fg"
|
||||
:geometry (geometry :x "8px" :y "64px" :width "420px" :anchor "bottom right")
|
||||
(activate-linux))
|
||||
|
||||
@ -20,4 +20,3 @@ elif [[ "$1" == "--ESSID" ]]; then
|
||||
elif [[ "$1" == "--ICON" ]]; then
|
||||
echo $icon
|
||||
fi
|
||||
|
||||
|
||||
17
config/fish/completions/fastanime.fish
Normal file
17
config/fish/completions/fastanime.fish
Normal file
@ -0,0 +1,17 @@
|
||||
function _fastanime_completion;
|
||||
set -l response (env _FASTANIME_COMPLETE=fish_complete COMP_WORDS=(commandline -cp) COMP_CWORD=(commandline -t) fastanime);
|
||||
|
||||
for completion in $response;
|
||||
set -l metadata (string split "," $completion);
|
||||
|
||||
if test $metadata[1] = "dir";
|
||||
__fish_complete_directories $metadata[2];
|
||||
else if test $metadata[1] = "file";
|
||||
__fish_complete_path $metadata[2];
|
||||
else if test $metadata[1] = "plain";
|
||||
echo $metadata[2];
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
complete --no-files --command fastanime --arguments "(_fastanime_completion)";
|
||||
1
config/fish/completions/fzf.fish
Normal file
1
config/fish/completions/fzf.fish
Normal file
@ -0,0 +1 @@
|
||||
fzf --fish | source
|
||||
1
config/fish/completions/uv.fish
Normal file
1
config/fish/completions/uv.fish
Normal file
@ -0,0 +1 @@
|
||||
uv generate-shell-completion fish | source
|
||||
1
config/fish/completions/uvx.fish
Normal file
1
config/fish/completions/uvx.fish
Normal file
@ -0,0 +1 @@
|
||||
uvx --generate-shell-completion fish | source
|
||||
1
config/fish/completions/zoxide.fish
Normal file
1
config/fish/completions/zoxide.fish
Normal file
@ -0,0 +1 @@
|
||||
zoxide init fish | source
|
||||
60
config/fish/conf.d/aliases.fish
Normal file
60
config/fish/conf.d/aliases.fish
Normal file
@ -0,0 +1,60 @@
|
||||
# Use neovim for vim if present
|
||||
if type -q nvim
|
||||
set -g vimdiff "nvim -d"
|
||||
end
|
||||
|
||||
# Verbosity and settings that you pretty much just always are going to wand
|
||||
alias bc="bc -ql"
|
||||
alias cp="cp -vi"
|
||||
alias df="df -h"
|
||||
alias mkdir="mkdir -pv"
|
||||
alias mv="mv -iv"
|
||||
alias nsxiv="nsxiv -a"
|
||||
alias rm="rm -vI"
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts"
|
||||
alias keychain="keychain --dir $XDG_RUNTIME_DIR/keychain"
|
||||
|
||||
# Colorize commands when possible
|
||||
alias diff="diff --color=auto"
|
||||
alias grep="rg --color=auto"
|
||||
alias ip="ip -color=auto"
|
||||
alias less="moar"
|
||||
alias ls="eza -a --icons --group-directories-first"
|
||||
|
||||
# These common commands ate just too long! Abbreviate them
|
||||
alias battery="acpi"
|
||||
alias code="vscodium"
|
||||
alias day="redshift -PO 6500"
|
||||
alias dv="doasedit"
|
||||
alias e="$EDITOR"
|
||||
alias fetch="fastfetch"
|
||||
alias lf="lfub"
|
||||
alias lg="lazygit"
|
||||
alias lock="swaylock"
|
||||
alias lzd="lazydocker"
|
||||
alias night="redshift -PO 4500"
|
||||
alias py="python"
|
||||
alias sv="rsv"
|
||||
alias v="$EDITOR"
|
||||
alias weather="curl wttr.in/"
|
||||
alias wg-down="wg-quick down wg0"
|
||||
alias wg-up="wg-quick up wg0"
|
||||
alias ww="$EDITOR ~/neorg/"
|
||||
alias yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config"
|
||||
alias yy="yazi"
|
||||
|
||||
# Git aliases
|
||||
alias gP="git push"
|
||||
alias ga="git add"
|
||||
alias gap="git add --patch"
|
||||
alias gc="git commit"
|
||||
alias gd="git diff --output-indicator-new=' ' --output-indicator-old=' '"
|
||||
alias gds="git diff --staged"
|
||||
alias gl="git log --all --graph --pretty=format:'%C(magenta)%h %C(white) %an %ar%C(auto) %D%n%s%n'"
|
||||
alias gp="git pull"
|
||||
alias gs="git status --short"
|
||||
|
||||
# doas alias
|
||||
for command in mount umount rsv sv pacman updatedb su shutdown poweroff reboot zzz systemctl wg wg-quick
|
||||
alias $command="doas $command"
|
||||
end
|
||||
2
config/fish/conf.d/keybindings.fish
Normal file
2
config/fish/conf.d/keybindings.fish
Normal file
@ -0,0 +1,2 @@
|
||||
# Ctrl+O runs yazicd
|
||||
bind -M insert \co 'yazicd'
|
||||
57
config/fish/config.fish
Normal file
57
config/fish/config.fish
Normal file
@ -0,0 +1,57 @@
|
||||
# Source startup file
|
||||
# if test -f "$XDG_CONFIG_HOME/zsh/startup"
|
||||
# source "$XDG_CONFIG_HOME/zsh/startup"
|
||||
# end
|
||||
|
||||
|
||||
# Starship prompt
|
||||
starship init fish | source
|
||||
|
||||
# Aliases
|
||||
if test -f "$XDG_CONFIG_HOME/fish/alias.fish"
|
||||
source "$XDG_CONFIG_HOME/fish/alias.fish"
|
||||
end
|
||||
|
||||
# Environment variables
|
||||
set -x KEYTIMEOUT 1
|
||||
|
||||
# Functions
|
||||
function cd
|
||||
if test (count $argv) -eq 0
|
||||
builtin cd ~
|
||||
else
|
||||
builtin cd $argv
|
||||
end
|
||||
eza -a --icons --group-directories-first
|
||||
end
|
||||
|
||||
function lfcd
|
||||
set tmp (mktemp -uq)
|
||||
lf -last-dir-path="$tmp" $argv
|
||||
if test -f "$tmp"
|
||||
set dir (cat "$tmp")
|
||||
if test -d "$dir" -a "$dir" != (pwd)
|
||||
cd "$dir"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function yazicd
|
||||
set tmp (mktemp -t "yazi-cwd.XXXXXX")
|
||||
yazi $argv --cwd-file="$tmp"
|
||||
set cwd (cat "$tmp")
|
||||
if test -n "$cwd" -a "$cwd" != "$PWD"
|
||||
cd "$cwd"
|
||||
eza -a --icons --group-directories-first
|
||||
end
|
||||
rm -f "$tmp"
|
||||
end
|
||||
|
||||
# Keybindings
|
||||
fish_vi_key_bindings
|
||||
|
||||
|
||||
# Source other files
|
||||
# if test -f "$HOME/.local/share/../bin/env"
|
||||
# source "$HOME/.local/share/../bin/env"
|
||||
# end
|
||||
@ -22,6 +22,7 @@ window-decoration = false
|
||||
scrollback-limit = 10000000
|
||||
mouse-hide-while-typing = true
|
||||
confirm-close-surface = false
|
||||
mouse-scroll-multiplier = 0.5
|
||||
|
||||
# Keybinds
|
||||
keybind = alt+f4=ignore
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
whitespace = error
|
||||
preloadindex = true
|
||||
|
||||
[url "git@github.com:kristoferssolo"]
|
||||
[url "git@github.com:kristoferssolo:"]
|
||||
insteadOf = "solo:"
|
||||
[url "git@github.com"]
|
||||
insteadOf = "gh:"
|
||||
|
||||
@ -16,9 +16,10 @@
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=eDP-1,prefered,0x0,1
|
||||
monitor=DP-1,prefered,180x-1440,1
|
||||
# monitor=DP-1,prefered,180x-1440,1
|
||||
# monitor=HDMI-A-1,prefered,480x-1080,1
|
||||
monitor=HDMI-A-1,prefered,auto,1
|
||||
# monitor=HDMI-A-1,prefered,mirror,eDP-1
|
||||
# monitor=DP-1,prefered,mirror,eDP-1
|
||||
# monitor=DP-1,disabled
|
||||
|
||||
###################
|
||||
@ -30,8 +31,9 @@ monitor=HDMI-A-1,prefered,auto,1
|
||||
# Set programs that you use
|
||||
$terminal = {{terminal}}
|
||||
$fileManager = $terminal -e yazi
|
||||
$menu = wofi --show drun -ib
|
||||
$browser = floorp
|
||||
# $menu = wofi --show drun -ib
|
||||
$menu = rofi -show combi -show-icons
|
||||
$browser = {{browser}}
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
@ -40,11 +42,11 @@ $browser = floorp
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
exec-once=pipewire & pipewire-pulse & wireplumber & eww daemon & eww open bar #& dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY
|
||||
# exec-once=eww daemon & eww open bar & dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY
|
||||
exec-once=nextcloud & /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & xrdb "$XDG_CONFIG_HOME/x11/xresources" & transmission-daemon & dunst
|
||||
exec-once=pipewire & pipewire-pulse & wireplumber & eww daemon & eww open bar
|
||||
exec-once=dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY XAUTHORITY
|
||||
exec-once=nextcloud & /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & xrdb "$XDG_CONFIG_HOME/x11/xresources" & transmission-daemon & dunst & hyprpaper
|
||||
exec-once=[workspace 1 silent] $browser
|
||||
exec-once=[workspace 8 silent] vesktop & kotatogram-desktop
|
||||
exec-once=[workspace 8 silent] kotatogram-desktop & flatpak run dev.vencord.Vesktop
|
||||
# exec-once=[workspace 9 silent] spotify-launcher
|
||||
|
||||
# Source a file (multi-file configs)
|
||||
@ -72,8 +74,8 @@ env = WM,Hyprland
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 10
|
||||
gaps_in = 4
|
||||
gaps_out = 8
|
||||
|
||||
border_size = 2
|
||||
|
||||
@ -87,13 +89,13 @@ general {
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = master
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 5
|
||||
# rounding_power = 2
|
||||
rounding = 4
|
||||
rounding_power = 4
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
@ -110,7 +112,7 @@ decoration {
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
passes = 3
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
@ -159,6 +161,7 @@ animations {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
force_split = 2
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
@ -170,10 +173,10 @@ master {
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
|
||||
vfr = true # It will lower the amount of sent frames when nothing is happening on-screen.
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
@ -211,6 +214,9 @@ device {
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
cursor {
|
||||
hide_on_key_press = true
|
||||
}
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
@ -225,6 +231,9 @@ bind = $mainMod SHIFT, Q, killactive
|
||||
bind = $mainMod, N, exec, $fileManager
|
||||
bind = $mainMod CTRL, SPACE, togglefloating
|
||||
bind = $mainMod, P, exec, $menu
|
||||
bind = $mainMod, G, exec, rofi -modi games -show games -theme games-smaller
|
||||
bind = $mainMod, C, exec, rofi -show calc -modi calc -no-show-match -no-sort -calc-command "echo -n '{result}' | wl-copy"
|
||||
bind = $mainMod, W, exec, networkmanager_dmenu
|
||||
bind = $mainMod SHIFT, P, exec, cliphist list | wofi -S dmenu | cliphist decode | wl-copy
|
||||
bind = $mainMod, F, fullscreen
|
||||
bind = $mainMod, M, bringactivetotop
|
||||
@ -375,12 +384,12 @@ windowrulev2 = opacity 0.95, class:thunderbird
|
||||
windowrulev2 = workspace 8, class:discord
|
||||
windowrulev2 = opacity 0.95, class:discord
|
||||
windowrulev2 = workspace 8, class:vesktop
|
||||
windowrulev2 = opacity 0.95, class:vesktop
|
||||
windowrulev2 = opacity 0.9, class:vesktop
|
||||
windowrulev2 = workspace 8, class:Ripcord
|
||||
windowrulev2 = workspace 8, class:TelegramDesktop
|
||||
windowrulev2 = opacity 0.95, class:TelegramDesktop
|
||||
windowrulev2 = workspace 8, title:Kotatogram
|
||||
windowrulev2 = opacity 0.95, title:Kotatogram
|
||||
windowrulev2 = opacity 0.9, initialTitle:Kotatogram
|
||||
windowrulev2 = opacity 0.9, class:teams-for-linux
|
||||
windowrulev2 = workspace 5, class:Ferdium
|
||||
windowrulev2 = opacity 0.9, class:Ferdium
|
||||
@ -394,7 +403,6 @@ windowrulev2 = opacity 0.9, class:Spotify
|
||||
# chromakey_background = 7,8,17
|
||||
|
||||
windowrulev2 = opacity 0.95, class:qbittorrent
|
||||
windowrulev2 = opacity 0.95, class:lutris
|
||||
windowrulev2 = opacity 0.95, class:pacfinder
|
||||
windowrulev2 = opacity 0.9, class:Bitwarden
|
||||
windowrulev2 = opacity 0.9, class:kdeconnect
|
||||
@ -403,7 +411,3 @@ windowrulev2 = opacity 0.9, class:kdeconnect
|
||||
windowrulev2 = move 100%-250 100%-250, class:galculator
|
||||
windowrulev2 = size 250 250, class:galculator
|
||||
windowrulev2 = float, class:galculator
|
||||
|
||||
windowrulev2=float,title:^(flameshot)
|
||||
windowrulev2=move 0 0,title:^(flameshot)
|
||||
windowrulev2=suppressevent fullscreen,title:^(flameshot)
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
ipc = off
|
||||
ipc = off # save on baterry
|
||||
splash = true
|
||||
preload = ~/Pictures/wallpapers/Linux-Dynamic-Wallpapers/Firewatch2/Firewatch2-1.png
|
||||
preload = ~/Pictures/wallpapers/Linux-Dynamic-Wallpapers/LakesideDeerComplete/LakesideDeer-03.png
|
||||
preload = ~/Pictures/wallpapers/abstract/GDWP-789-4K-No-Logo.jpg
|
||||
preload = ~/Pictures/wallpapers/anime/frieren/frieren-beyond-journeys-end-anime-4k-wallpaper.jpg
|
||||
|
||||
wallpaper = ,~/Pictures/wallpapers/abstract/GDWP-789-4K-No-Logo.jpg
|
||||
wallpaper = ,~/Pictures/wallpapers/anime/frieren/frieren-beyond-journeys-end-anime-4k-wallpaper.jpg
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
git:
|
||||
overrideGpg: true
|
||||
67
config/neomutt/muttrc
Normal file
67
config/neomutt/muttrc
Normal file
@ -0,0 +1,67 @@
|
||||
# === Basic Settings ===
|
||||
set realname = "Kristiāns Francis Cagulis"
|
||||
set from = "kristians.cagulis@gmail.com"
|
||||
set use_from = yes
|
||||
set envelope_from = yes # Use 'from' address for envelope
|
||||
set edit_headers = yes # Let you edit headers when composing
|
||||
|
||||
# === Editor ===
|
||||
set editor = "nano" # Or vim, emacs, etc.
|
||||
|
||||
# === Folder Settings ===
|
||||
# This is where NeoMutt will look for mailboxes.
|
||||
# For IMAP, it's usually the remote server.
|
||||
set folder = "imaps://imap.example.com:993" # Your IMAP server and port
|
||||
set spoolfile = "+INBOX" # Your main inbox
|
||||
set postponed = "+Drafts" # Where to save drafts (adjust folder name)
|
||||
set record = "+Sent" # Where to save sent messages (adjust folder name)
|
||||
set trash = "+Trash" # Where to move deleted messages (adjust folder name)
|
||||
|
||||
# === IMAP Settings ===
|
||||
set imap_user = "kristians.cagulis@gmail.com"
|
||||
# set imap_pass = "YOUR_APP_PASSWORD" # We'll source this from another file
|
||||
set imap_check_subscribed = yes
|
||||
set imap_keepalive = 300
|
||||
set mail_check = 60 # Check for new mail every 60 seconds
|
||||
set imap_passive = no # Some servers need this
|
||||
|
||||
# === SMTP Settings (Sending Mail) ===
|
||||
set smtp_url = "smtps://your_email@example.com@smtp.example.com:465" # SMTP server, port, and username
|
||||
# set smtp_pass = "YOUR_APP_PASSWORD" # We'll source this from another file
|
||||
|
||||
# === Sorting ===
|
||||
set sort = threads # Sort by threads
|
||||
set sort_aux = last-date-received # Sort threads by last received date
|
||||
|
||||
# === Header Weeding (Clean up displayed headers) ===
|
||||
ignore *
|
||||
unignore from: to: cc: date: subject:
|
||||
hdr_order from: to: cc: date: subject:
|
||||
|
||||
# === Sidebar (Optional but highly recommended) ===
|
||||
set sidebar_visible = yes
|
||||
set sidebar_width = 25
|
||||
set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S" # Folder | Unread / Total
|
||||
# Keybindings for sidebar navigation (Ctrl-B, Ctrl-T, Ctrl-O, Ctrl-C)
|
||||
bind index,pager \cb sidebar-prev
|
||||
bind index,pager \ct sidebar-next
|
||||
bind index,pager \co sidebar-open
|
||||
bind index,pager \cc sidebar-toggle-visible
|
||||
|
||||
# === Other useful settings ===
|
||||
set confirmappend = no # Don't ask when appending to mbox
|
||||
set quit = ask-yes # Ask before quitting
|
||||
set pager_context = 3 # Show 3 lines of context in pager
|
||||
set menu_scroll = yes # Scroll menus
|
||||
set tilde = yes # Show tildes for empty lines like in Vim
|
||||
|
||||
# === Source account-specific configurations (like passwords) ===
|
||||
# Make sure the path is correct!
|
||||
source "~/.config/neomutt/accounts/my_email.conf"
|
||||
|
||||
# === GPG Settings (Optional, for encrypted/signed mail) ===
|
||||
# set crypt_autosign = yes
|
||||
# set crypt_autoencrypt = yes
|
||||
# set pgp_sign_as = "0xYOUR_GPG_KEY_ID"
|
||||
# set pgp_timeout = 3600 # Cache GPG passphrase for 1 hour
|
||||
# set pgp_good_sign = "~G Good signature from"
|
||||
@ -1,7 +1,7 @@
|
||||
@theme "rose-pine"
|
||||
|
||||
configuration {
|
||||
modes: "window,drun,run,ssh,filebrowser";
|
||||
modes: "window,drun,run,ssh,filebrowser,games,calc";
|
||||
font: "JetBrainsMono NF 12";
|
||||
// location: 0;
|
||||
// yoffset: 0;
|
||||
@ -34,7 +34,7 @@ configuration {
|
||||
// auto-select: false;
|
||||
// parse-hosts: false;
|
||||
// parse-known-hosts: true;
|
||||
// combi-modes: "window,run";
|
||||
combi-modes: "drun,games";
|
||||
matching: "fuzzy";
|
||||
// tokenize: true;
|
||||
// m: "-5";
|
||||
|
||||
4
config/sesh/sesh.toml
Normal file
4
config/sesh/sesh.toml
Normal file
@ -0,0 +1,4 @@
|
||||
[default_session]
|
||||
startup_command = "tmux new-window && tmux select-window -t 1 && clear"
|
||||
preview_command = "eza -a --icons --git --group-directories-first --color=always {}"
|
||||
blacklist = [ "**/SoloVim/*", "**/solorice/**" ]
|
||||
@ -34,8 +34,8 @@ alias \
|
||||
j="joshutoub" \
|
||||
lf="lfub" \
|
||||
lg="lazygit" \
|
||||
lzd="lazydocker" \
|
||||
lock="swaylock" \
|
||||
lzd="lazydocker" \
|
||||
night="redshift -PO 4500" \
|
||||
py="python" \
|
||||
sv="rsv" \
|
||||
@ -45,6 +45,7 @@ alias \
|
||||
wg-up="wg-quick up wg0" \
|
||||
ww="$EDITOR ~/neorg/" \
|
||||
yarn="yarn --use-yarnrc $XDG_CONFIG_HOME/yarn/config" \
|
||||
va="source .venv/bin/activate" \
|
||||
yy="yazi"
|
||||
|
||||
alias \
|
||||
|
||||
@ -10,11 +10,14 @@ typeset -U PATH path
|
||||
export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}"
|
||||
export PATH="$PATH:~/.spicetify"
|
||||
export PATH="$PATH:${$(find ~/.cache/.bun/bin -type d -printf %p:)%%:}"
|
||||
export PATH=$JAVA_HOME/bin:$PATH
|
||||
|
||||
# Disable files
|
||||
export LESSHISTFILE=-
|
||||
export $(dbus-launch)
|
||||
|
||||
export MANPAGER='nvim +Man!'
|
||||
|
||||
export LIBSEAT_BACKEND=logind
|
||||
|
||||
unsetopt PROMPT_SP
|
||||
@ -87,6 +90,7 @@ export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
|
||||
export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
|
||||
# export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java - Djavafx.cachedir=${XDG_CACHE_HOME}/openjfx"
|
||||
# export _JAVA_OPTIONS=-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME/java"
|
||||
export JAVA_HOME="/usr/lib/jvm/java-21-openjdk"
|
||||
|
||||
# Other program settings
|
||||
export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname
|
||||
@ -111,4 +115,3 @@ export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm
|
||||
|
||||
. "$XDG_DATA_HOME/cargo/env"
|
||||
. "$XDG_CACHE_HOME/deno/.deno/env"
|
||||
. "/home/kristofers/.local/share/cargo/env"
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
# Get editor completions based on the config schema
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
# Disable the blank line at the start of the prompt
|
||||
add_newline = false
|
||||
command_timeout = 1000
|
||||
|
||||
@ -43,8 +43,23 @@ bind '"' split-window -v -c "#{pane_current_path}"
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
|
||||
bind-key -r i run-shell "tmux neww chtsh"
|
||||
bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer"
|
||||
# bind-key -r f run-shell "tmux neww ~/.local/bin/tmux-sessionizer"
|
||||
bind-key -r f run-shell "sesh connect \"$(
|
||||
sesh list --icons | fzf-tmux -p 80%,70% \
|
||||
--no-sort --ansi --border-label ' sesh ' --prompt '⚡ ' \
|
||||
--header ' ^a all ^t tmux ^g configs ^x zoxide ^d tmux kill ^f find' \
|
||||
--bind 'tab:down,btab:up' \
|
||||
--bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list --icons)' \
|
||||
--bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t --icons)' \
|
||||
--bind 'ctrl-g:change-prompt(⚙️ )+reload(sesh list -c --icons)' \
|
||||
--bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z --icons)' \
|
||||
--bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)' \
|
||||
--bind 'ctrl-d:execute(tmux kill-session -t {2..})+change-prompt(⚡ )+reload(sesh list --icons)' \
|
||||
--preview-window 'right:55%' \
|
||||
--preview 'sesh preview {}'
|
||||
)\""
|
||||
|
||||
bind-key x kill-pane
|
||||
|
||||
set -g @plugin "tmux-plugins/tpm"
|
||||
set -g @plugin "tmux-plugins/tmux-sensible"
|
||||
@ -56,6 +71,7 @@ set -g @plugin "rose-pine/tmux"
|
||||
|
||||
set -ga update-environment TERM
|
||||
set -ga update-environment TERM_PROGRAM
|
||||
set -g detach-on-destroy off # don't exit from tmux when closing a session
|
||||
|
||||
# set vi-mode
|
||||
set-window-option -g mode-keys vi
|
||||
@ -63,6 +79,7 @@ set-window-option -g mode-keys vi
|
||||
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||
bind-key -T copy-mode-vi y send-keys -X copy-selectet-and-cancel
|
||||
bind -N "last-session (via sesh) " L run-shell "sesh last"
|
||||
|
||||
|
||||
# Rose pine
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
|
||||
|
||||
[manager]
|
||||
[mgr]
|
||||
keymap = [
|
||||
{on = [ "<Esc>" ], run = "escape", desc = "Exit visual mode, clear selected, or cancel search"},
|
||||
{on = [ "<C-[>" ], run = "escape", desc = "Exit visual mode, clear selected, or cancel search"},
|
||||
|
||||
@ -10,8 +10,8 @@ hash = "23915860e59348bf4166778bb0e606f7"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "hankertrix/augment-command"
|
||||
rev = "04cda98"
|
||||
hash = "3ec6486539188b1e1932ac27f3582917"
|
||||
rev = "ac4a651"
|
||||
hash = "7b6b0b8c260c9c5e557287bf9b370f7c"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "kirasok/torrent-preview"
|
||||
@ -25,43 +25,43 @@ hash = "5b9dea47776a30946cfbf83232d18fb1"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "pirafrank/what-size"
|
||||
rev = "f1c6b69"
|
||||
hash = "6e789212eb41d937bab04877ca361099"
|
||||
rev = "0a4904c"
|
||||
hash = "fca231a128488a554823374f8f6d5241"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:git"
|
||||
rev = "864a021"
|
||||
hash = "e0ada736ea676c2bbb3ec705a49526ef"
|
||||
rev = "c0ad8a3"
|
||||
hash = "bf6f074cd41ee33c3360341d168f9733"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:chmod"
|
||||
rev = "864a021"
|
||||
hash = "2f1053f89d1a301a648ab181d0948e38"
|
||||
rev = "c0ad8a3"
|
||||
hash = "d0ad0c1946b46a30c8489735fe8de41c"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:full-border"
|
||||
rev = "864a021"
|
||||
hash = "1f3dad061209081a6b04dd6ff2cb06c7"
|
||||
rev = "c0ad8a3"
|
||||
hash = "3996fc74044bc44144b323686f887e1"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:mount"
|
||||
rev = "864a021"
|
||||
hash = "dd97eede8e20e59cd2604e8006e470e2"
|
||||
rev = "c0ad8a3"
|
||||
hash = "c0b6cd7dc830b96e77e5c8a71eec7926"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:smart-filter"
|
||||
rev = "864a021"
|
||||
hash = "f0c4b41b5d19a3144958383333eff6e7"
|
||||
rev = "c0ad8a3"
|
||||
hash = "4d82cd9e7534d976f000edf9c0f68d8f"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "yazi-rs/plugins:diff"
|
||||
rev = "864a021"
|
||||
hash = "7a08e303167d5b655c06da6d570f0333"
|
||||
rev = "c0ad8a3"
|
||||
hash = "47865a70cade14a0b9b6bc6a54f16bdb"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "AnirudhG07/rich-preview"
|
||||
rev = "fdcf373"
|
||||
hash = "bd1737dd44b202f412122e6a3b378d4c"
|
||||
rev = "de28f50"
|
||||
hash = "b9cd4027db110b4228889be32462f363"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "macydnah/office"
|
||||
@ -70,8 +70,8 @@ hash = "35241f7d85abc5a0d2441020bc597ceb"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "boydaihungst/mediainfo"
|
||||
rev = "9629b1e"
|
||||
hash = "5204b4e2bd238c40fa66cf0a0191f084"
|
||||
rev = "c6d0de7"
|
||||
hash = "7b024fc14b462235068400207cbe7bf0"
|
||||
|
||||
[[plugin.deps]]
|
||||
use = "iynaix/time-travel"
|
||||
|
||||
@ -21,6 +21,7 @@ plugin.
|
||||
- [Leave (`leave`)](#leave-leave)
|
||||
- [Rename (`rename`)](#rename-rename)
|
||||
- [Remove (`remove`)](#remove-remove)
|
||||
- [Copy (`copy`)](#copy-copy)
|
||||
- [Create (`create`)](#create-create)
|
||||
- [Shell (`shell`)](#shell-shell)
|
||||
- [Passing arguments to the `shell` command](#passing-arguments-to-the-shell-command)
|
||||
@ -32,16 +33,20 @@ plugin.
|
||||
- [New commands](#new-commands)
|
||||
- [Parent arrow (`parent_arrow`)](#parent-arrow-parent_arrow)
|
||||
- [Archive (`archive`)](#archive-archive)
|
||||
- [Emit (`emit`)](#emit-emit)
|
||||
- [Editor (`editor`)](#editor-editor)
|
||||
- [Pager (`pager`)](#pager-pager)
|
||||
- [Usage](#usage)
|
||||
- [Using the `extract` command as an opener](#using-the-extract-command-as-an-opener)
|
||||
- [Configuring the plugin's prompts](#configuring-the-plugins-prompts)
|
||||
- [Input prompts](#input-prompts)
|
||||
- [Confirmation prompts](#confirmation-prompts)
|
||||
- [Full configuration example](#full-configuration-example)
|
||||
- [Licence](#licence)
|
||||
- [Licence]
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Yazi][yazi-link] v25.4.8+
|
||||
- [Yazi][yazi-link] v25.5.28+
|
||||
- [`7z` or `7zz` command][7z-link]
|
||||
- [`file` command][file-command-link]
|
||||
|
||||
@ -53,13 +58,13 @@ plugin.
|
||||
|
||||
```sh
|
||||
# Add the plugin
|
||||
ya pack -a hankertrix/augment-command
|
||||
ya pkg add hankertrix/augment-command
|
||||
|
||||
# Install plugin
|
||||
ya pack -i
|
||||
ya pkg install
|
||||
|
||||
# Update plugin
|
||||
ya pack -u
|
||||
ya pkg upgrade
|
||||
```
|
||||
|
||||
## Configuration
|
||||
@ -498,6 +503,29 @@ then it will operate on the selected items.
|
||||
|
||||
[remove-behaviour-video]
|
||||
|
||||
### Copy (`copy`)
|
||||
|
||||
- The `copy` command is augmented as stated in
|
||||
[this section above][augment-section].
|
||||
|
||||
Videos:
|
||||
|
||||
- When `must_have_hovered_item` is `true`:
|
||||
|
||||
[copy-must-have-hovered-item-video]
|
||||
|
||||
- When `must_have_hovered_item` is `false`:
|
||||
|
||||
[copy-hovered-item-optional-video]
|
||||
|
||||
- When `prompt` is set to `true`:
|
||||
|
||||
[copy-prompt-video]
|
||||
|
||||
- When `prompt` is set to `false`:
|
||||
|
||||
[copy-behaviour-video]
|
||||
|
||||
### Create (`create`)
|
||||
|
||||
- You should use Yazi's default `create` command instead
|
||||
@ -616,7 +644,7 @@ then it will operate on the selected items.
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "i"
|
||||
run = "plugin augment-command -- shell '$PAGER $@' --block --exit-if-dir"
|
||||
desc = "Open the pager"
|
||||
@ -633,7 +661,7 @@ then it will operate on the selected items.
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "o"
|
||||
run = "plugin augment-command -- shell '$EDITOR $@' --block --exit-if-dir"
|
||||
desc = "Open the editor"
|
||||
@ -658,7 +686,7 @@ the shell command arguments, so here are a few ways to do it:
|
||||
```toml
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "i"
|
||||
run = "plugin augment-command -- shell --block 'bat -p --pager less $@'"
|
||||
desc = "Open with bat"
|
||||
@ -682,7 +710,7 @@ the shell command arguments, so here are a few ways to do it:
|
||||
```toml
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "<C-s>"
|
||||
run = 'plugin augment-command -- shell --block -- sh -c "$SHELL"'
|
||||
desc = "Open a shell inside of a shell here"
|
||||
@ -691,7 +719,7 @@ the shell command arguments, so here are a few ways to do it:
|
||||
```toml
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "<C-s>"
|
||||
run = "plugin augment-command -- shell --block -- sh -c 'echo hello'"
|
||||
desc = "Open a shell and say hello inside the opened shell"
|
||||
@ -706,7 +734,7 @@ the shell command arguments, so here are a few ways to do it:
|
||||
```toml
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "<C-s>"
|
||||
run = '''plugin augment-command -- shell --block -- sh -c 'sh -c "$SHELL"''''
|
||||
desc = "Open a shell inside of a shell inside of a shell here"
|
||||
@ -715,7 +743,7 @@ the shell command arguments, so here are a few ways to do it:
|
||||
```toml
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "<C-s>"
|
||||
run = '''plugin augment-command --
|
||||
shell --block -- sh -c "$SHELL -c 'echo hello'"
|
||||
@ -729,7 +757,7 @@ the shell command arguments, so here are a few ways to do it:
|
||||
```toml
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "<C-e>"
|
||||
run = '''plugin augment-command --
|
||||
shell --
|
||||
@ -947,14 +975,14 @@ in your `keymap.toml` file.
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
|
||||
# Use K to move up in the parent directory
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "K"
|
||||
run = ["leave", "arrow -1", "enter"]
|
||||
desc = "Move up in the parent directory"
|
||||
|
||||
|
||||
# Use J to move down in the parent directory
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "J"
|
||||
run = ["leave", "arrow 1", "enter"]
|
||||
desc = "Move down in the parent directory"
|
||||
@ -970,6 +998,16 @@ in your `keymap.toml` file.
|
||||
to an archive, with the plugin prompting for an archive name.
|
||||
The archive file extension given will be used to determine
|
||||
the type of archive to create.
|
||||
- When the archive name given has no file extension, the `.zip`
|
||||
file extension will be automatically added by default
|
||||
to create a `zip` archive.
|
||||
- When the item group is determined to be the hovered item,
|
||||
the `archive` command will create a `.zip` archive with the
|
||||
name of the hovered item if no archive name is given
|
||||
and the input is confirmed by using the `<Enter>` key.
|
||||
- The `archive` command will also prompt for an overwrite confirmation,
|
||||
if the archive being created already exists,
|
||||
just like the `create` command.
|
||||
- This command is also augmented as stated in
|
||||
[this section above][augment-section].
|
||||
|
||||
@ -991,6 +1029,8 @@ in your `keymap.toml` file.
|
||||
|
||||
[archive-behaviour-video]
|
||||
|
||||
- `--force` flag to always overwrite the existing archive
|
||||
without showing the confirmation prompt.
|
||||
- `--encrypt` flag to encrypt the archive with the given password,
|
||||
which applies even when `encrypt_archives` is set to `false`.
|
||||
- `--encrypt-headers` flag to encrypt the archive headers,
|
||||
@ -1025,10 +1065,55 @@ in your `keymap.toml` file.
|
||||
|
||||
[archive-remove-archived-files-video]
|
||||
|
||||
### Emit (`emit`)
|
||||
|
||||
- The `emit` command allows you to emit any Yazi command
|
||||
by typing the command into an input prompt.
|
||||
The syntax of the command is exactly the same as
|
||||
the commands in the `keymap.toml` file.
|
||||
For example, if the input is `arrow next`,
|
||||
then that will be the command that is emitted by the plugin.
|
||||
|
||||
Video:
|
||||
|
||||
[emit-yazi-command-video]
|
||||
|
||||
- `--plugin` flag to emit a plugin command.
|
||||
This flag essentially just emits Yazi's `plugin` command
|
||||
with the input passed as the first argument.
|
||||
For example, if the input is `augment-command -- parent_arrow 1`,
|
||||
then the full command being emitted by the plugin is
|
||||
`plugin augment-command -- parent_arrow 1`.
|
||||
|
||||
Video:
|
||||
|
||||
[emit-plugin-command-video]
|
||||
|
||||
- `--augmented` flag to emit an augmented command.
|
||||
This flag is a shortcut for emitting a command from this plugin.
|
||||
For example, if the command given is `parent_arrow 1`,
|
||||
the full command emitted by the plugin is
|
||||
`plugin augment-command -- parent_arrow 1`.
|
||||
|
||||
Video:
|
||||
|
||||
[emit-augmented-command-video]
|
||||
|
||||
- If `--augmented` flag is passed together with the `--plugin` flag,
|
||||
the `--augmented` flag will take precedence over the `--plugin` flag,
|
||||
and the command emitted will be from this plugin
|
||||
instead of being a `plugin` command.
|
||||
In any case, you should not be passing
|
||||
both the `--plugin` and `--augmented` flags.
|
||||
|
||||
### Editor (`editor`)
|
||||
|
||||
- The `editor` command opens the default editor set by the
|
||||
`$EDITOR` environment variable.
|
||||
- When the file being edited is owned by the root user on Unix systems,
|
||||
like Linux and macOS, the `editor` command will automatically call
|
||||
`sudo -e` to edit the file instead of using the `$EDITOR`
|
||||
environment variable.
|
||||
- The command is also augmented as stated in
|
||||
[this section above][augment-section].
|
||||
|
||||
@ -1093,7 +1178,7 @@ on Windows, in this format:
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "key"
|
||||
run = "plugin augment-command -- command arguments --flags --options=42"
|
||||
desc = "Description"
|
||||
@ -1105,7 +1190,7 @@ For example, to use the augmented `enter` command:
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "l"
|
||||
run = "plugin augment-command -- enter"
|
||||
desc = "Enter a directory and skip directories with only a single subdirectory"
|
||||
@ -1118,22 +1203,22 @@ are also supported, for example:
|
||||
# ~/.config/yazi/keymap.toml on Linux and macOS
|
||||
# %AppData%\yazi\config\keymap.toml on Windows
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "k"
|
||||
run = "plugin augment-command -- arrow -1"
|
||||
desc = "Move cursor up"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "r"
|
||||
run = "plugin augment-command -- rename --cursor=before_ext"
|
||||
desc = "Rename a file or directory"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "D"
|
||||
run = "plugin augment-command -- remove --permanently"
|
||||
desc = "Permanently delete the files"
|
||||
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = ["g", "j"]
|
||||
run = "plugin augment-command -- parent_arrow 1"
|
||||
```
|
||||
@ -1153,6 +1238,166 @@ the `extract` command to a key in your `keymap.toml` file.
|
||||
Look at the [`extract` command section](#extract-extract)
|
||||
for details on how to do so.
|
||||
|
||||
### Configuring the plugin's prompts
|
||||
|
||||
If you would like to use the plugin's default prompts,
|
||||
you can skip this section entirely. Otherwise, read on.
|
||||
|
||||
The plugin's prompts can be configured using the `th`
|
||||
object for built-in commands like `create`.
|
||||
|
||||
New commands, or new features in existing commands introduced by the plugin,
|
||||
like `archive` or `quit`, can be configured
|
||||
using the `th.augment_command` object instead.
|
||||
|
||||
You **must** call the plugin's `setup` function after
|
||||
configuring the plugin's prompts, otherwise,
|
||||
the prompts will remain as the default prompts.
|
||||
|
||||
For example:
|
||||
|
||||
```lua
|
||||
-- Prompt configurations for the plugin
|
||||
th.create_title = { "Create:", "Create (dir):" }
|
||||
th.augment_command = th.augment_command or {}
|
||||
th.augment_command.archive_title = "Archive name:"
|
||||
th.augment_command.quit_title = "Quit?"
|
||||
|
||||
-- Call the plugin's setup function
|
||||
require("augment-command"):setup()
|
||||
```
|
||||
|
||||
This method of configuration is to be forward compatible
|
||||
with future versions of Yazi, as mentioned
|
||||
[here](https://github.com/yazi-rs/plugins/issues/44).
|
||||
|
||||
#### Input prompts
|
||||
|
||||
For `input` prompts, like the prompt for the `archive` command,
|
||||
there are 3 configuration options:
|
||||
|
||||
- `title`
|
||||
- `origin`
|
||||
- `offset`
|
||||
|
||||
These options are documented in [Yazi's documentation][input-configuration].
|
||||
|
||||
For example, to configure the `create` command, which is built-in:
|
||||
|
||||
```lua
|
||||
th.create_title = { "Create:", "Create (dir):" }
|
||||
th.create_origin = "top-center"
|
||||
th.create_offset = {
|
||||
x = 0,
|
||||
y = 2,
|
||||
w = 50,
|
||||
h = 3,
|
||||
}
|
||||
```
|
||||
|
||||
This way of configuring the `input` prompt applies to the following:
|
||||
|
||||
- `create`
|
||||
|
||||
Below is an example of configuring the `archive` command,
|
||||
which is provided by the plugin:
|
||||
|
||||
```lua
|
||||
th.augment_command = th.augment_command or {}
|
||||
th.augment_command.archive_title = "Archive name:"
|
||||
th.augment_command.archive_origin = "top-center"
|
||||
th.augment_command.archive_offset = {
|
||||
x = 0,
|
||||
y = 2,
|
||||
w = 50,
|
||||
h = 3,
|
||||
}
|
||||
```
|
||||
|
||||
This way of configuring the `input` prompt applies to the following:
|
||||
|
||||
- `item_group`: The prompt to select an item group.
|
||||
|
||||
- `extract_password`:
|
||||
The prompt to enter the password when extracting an encrypted archive.
|
||||
|
||||
- `archive`: The prompt for the archive name.
|
||||
|
||||
- `archive_password`:
|
||||
The prompts to enter the archive password when
|
||||
creating an encrypted archive.
|
||||
Note that the title for this prompt, `archive_password_title`,
|
||||
should be a list of two strings, like this:
|
||||
|
||||
```lua
|
||||
th.augment_command = th.augment_command or {}
|
||||
th.archive_password_title = {
|
||||
"Archive password:",
|
||||
"Confirm archive password:",
|
||||
}
|
||||
```
|
||||
|
||||
#### Confirmation prompts
|
||||
|
||||
For `confirm` prompts, like the prompt for the `quit` command,
|
||||
there are 4 configuration options:
|
||||
|
||||
- `title`
|
||||
- `content`
|
||||
- `origin`
|
||||
- `offset`
|
||||
|
||||
These options are documented in [Yazi's documentation][confirm-configuration].
|
||||
|
||||
The configuration for the `confirm` prompt is very
|
||||
similar to that of the `input` prompt,
|
||||
just with one more option called `content`.
|
||||
The `content` option can take either a `string`, or a list of `strings`.
|
||||
|
||||
For example, to configure the `overwrite` part
|
||||
of the `create` and `archive` commands, which is built-in:
|
||||
|
||||
```lua
|
||||
th.overwrite_title = "Overwrite file?"
|
||||
th.overwrite_content = "Will overwrite the following file:"
|
||||
th.overwrite_origin = "center"
|
||||
th.overwrite_offset = {
|
||||
x = 0,
|
||||
y = 0,
|
||||
w = 50,
|
||||
h = 15,
|
||||
}
|
||||
```
|
||||
|
||||
This way of configuring the `confirm` prompt applies to the following:
|
||||
|
||||
- `overwrite`:
|
||||
The overwrite prompt when creating a file with
|
||||
the same name as an existing file.
|
||||
|
||||
Below is an example of configuring the `quit` command,
|
||||
which is provided by the plugin:
|
||||
|
||||
```lua
|
||||
th.augment_command = th.augment_command or {}
|
||||
th.augment_command.quit_title = "Quit?"
|
||||
th.augment_command.quit_content = {
|
||||
"There are multiple tabs open.",
|
||||
"Are you sure you want to quit?",
|
||||
}
|
||||
th.augment_command.quit_origin = "center"
|
||||
th.augment_command.quit_offset = {
|
||||
x = 0,
|
||||
y = 0,
|
||||
w = 50,
|
||||
h = 15,
|
||||
}
|
||||
```
|
||||
|
||||
This way of configuring the `confirm` prompt applies to the following:
|
||||
|
||||
- `quit`: The quit prompt when quitting with multiple tabs open.
|
||||
|
||||
### Full configuration example
|
||||
|
||||
For a full configuration example,
|
||||
@ -1181,6 +1426,8 @@ You can view the full licence in the [`LICENSE`][Licence] file.
|
||||
[yazi-yazi-toml]: https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/yazi-default.toml
|
||||
[yazi-shell-variables]: https://yazi-rs.github.io/docs/configuration/keymap/#manager.shell
|
||||
[thunderbird-tip]: https://yazi-rs.github.io/docs/tips#email-selected-files-using-thunderbird
|
||||
[input-configuration]: https://yazi-rs.github.io/docs/configuration/yazi#input
|
||||
[confirm-configuration]: https://yazi-rs.github.io/docs/configuration/yazi#confirm
|
||||
[yazi-keymap-toml]: https://github.com/sxyazi/yazi/blob/main/yazi-config/preset/keymap-default.toml
|
||||
[my-keymap-toml]: https://github.com/hankertrix/Dotfiles/blob/main/.config/yazi/keymap.toml
|
||||
[my-yazi-toml]: https://github.com/hankertrix/Dotfiles/blob/main/.config/yazi/yazi.toml
|
||||
@ -1190,110 +1437,123 @@ You can view the full licence in the [`LICENSE`][Licence] file.
|
||||
|
||||
<!-- Open command -->
|
||||
|
||||
[open-prompt-video]: https://github.com/user-attachments/assets/624da7a1-99cc-428d-acbb-d4ce684f92cb
|
||||
[open-behaviour-video]: https://github.com/user-attachments/assets/202f1c07-2001-49d7-a9d7-7a4e7b102c41
|
||||
[open-auto-extract-archives-video]: https://github.com/user-attachments/assets/dad0572e-15d7-4dfd-bf48-00851af66b6e
|
||||
[open-recursively-extract-archives-video]: https://github.com/user-attachments/assets/b8e929ce-32cd-4f7e-ad97-ffe94bdacd71
|
||||
[open-prompt-video]: https://github.com/user-attachments/assets/a792f9d9-97f3-4fab-95cc-03b33c58dd47
|
||||
[open-behaviour-video]: https://github.com/user-attachments/assets/b2e56c10-91cd-4556-9f64-355aa8948832
|
||||
[open-auto-extract-archives-video]: https://github.com/user-attachments/assets/a406391a-b31d-4b45-afa1-b982ddd89eaf
|
||||
[open-recursively-extract-archives-video]: https://github.com/user-attachments/assets/a960f152-4391-4d55-bd0e-0a08efb42729
|
||||
|
||||
<!-- Extract command -->
|
||||
|
||||
[extract-must-have-hovered-item-video]: https://github.com/user-attachments/assets/6b9f347f-34ce-4ca1-8e3a-24dbeb297dc7
|
||||
[extract-hovered-item-optional-video]: https://github.com/user-attachments/assets/1596f9f8-e0f5-49e3-964c-6f94b1c24055
|
||||
[extract-prompt-video]: https://github.com/user-attachments/assets/568aef53-dc90-420e-ada9-171f56388ee1
|
||||
[extract-behaviour-video]: https://github.com/user-attachments/assets/d6ebf5fb-45d3-4ae0-adab-3e89b1ec2f4e
|
||||
[extract-recursively-extract-archives-video]: https://github.com/user-attachments/assets/d8978671-9149-45b7-9a92-21c1697baa7d
|
||||
[extract-encrypted-archive-video]: https://github.com/user-attachments/assets/24701662-0c19-4478-b576-75d9284cd695
|
||||
[extract-reveal-extracted-item-video]: https://github.com/user-attachments/assets/170bf187-dc2a-4310-aa86-5dc9a864aced
|
||||
[extract-remove-extracted-archive-video]: https://github.com/user-attachments/assets/9b2e625a-a7f8-4678-8a26-265a7d3b8e0c
|
||||
[extract-must-have-hovered-item-video]: https://github.com/user-attachments/assets/ed310a81-c482-4eed-9d54-5f50a7cc7637
|
||||
[extract-hovered-item-optional-video]: https://github.com/user-attachments/assets/85d5a6bf-ed35-4f9a-b782-faea119da7c5
|
||||
[extract-prompt-video]: https://github.com/user-attachments/assets/40f41727-7e55-44d8-816c-e706d09e27b8
|
||||
[extract-behaviour-video]: https://github.com/user-attachments/assets/6f4f68d4-d43c-4de6-8d85-7e22c0cc0cc6
|
||||
[extract-recursively-extract-archives-video]: https://github.com/user-attachments/assets/d9e7030c-9491-4dfa-a1f4-baf3a45eed64
|
||||
[extract-encrypted-archive-video]: https://github.com/user-attachments/assets/48acd16d-f285-4d58-94c3-b402d7784d94
|
||||
[extract-reveal-extracted-item-video]: https://github.com/user-attachments/assets/96d7fe43-024a-4b1e-b961-9ab9c708db83
|
||||
[extract-remove-extracted-archive-video]: https://github.com/user-attachments/assets/7b700ffc-3ce6-4185-a8b0-8ecfd09c2519
|
||||
|
||||
<!-- Enter command -->
|
||||
|
||||
[smart-enter-video]: https://github.com/user-attachments/assets/be950544-a58f-495a-a7e8-e37e99011070
|
||||
[enter-skip-single-subdirectory-video]: https://github.com/user-attachments/assets/1bd30cb0-611a-44f2-9839-968287af4455
|
||||
[smart-enter-video]: https://github.com/user-attachments/assets/9fc60a42-8692-4ac8-8250-652958582b98
|
||||
[enter-skip-single-subdirectory-video]: https://github.com/user-attachments/assets/8069e828-d2dd-4c69-a0b8-fe13074de715
|
||||
|
||||
<!-- Leave command -->
|
||||
|
||||
[leave-skip-single-subdirectory-video]: https://github.com/user-attachments/assets/735de8f7-6abb-4929-8e3d-bba470fc6063
|
||||
[leave-skip-single-subdirectory-video]: https://github.com/user-attachments/assets/01330321-b9f9-4dad-b339-8923509e759c
|
||||
|
||||
<!-- Rename command -->
|
||||
|
||||
[rename-must-have-hovered-item-video]: https://github.com/user-attachments/assets/b0f608df-7e8d-4e5f-958f-b3df9d0a92fa
|
||||
[rename-hovered-item-optional-video]: https://github.com/user-attachments/assets/9613d238-d8e3-4e6f-b073-f847a4f331a1
|
||||
[rename-prompt-video]: https://github.com/user-attachments/assets/6ad26e1b-dab1-4e8e-92af-bfcbf6c5232c
|
||||
[rename-behaviour-video]: https://github.com/user-attachments/assets/fdd70919-f164-4676-9046-6a4b95cd86ed
|
||||
[rename-must-have-hovered-item-video]: https://github.com/user-attachments/assets/b6ec96f9-c8a2-490c-9003-8c361e83e336
|
||||
[rename-hovered-item-optional-video]: https://github.com/user-attachments/assets/8bf0001d-6d39-4c4f-a364-b399e65208e8
|
||||
[rename-prompt-video]: https://github.com/user-attachments/assets/a3926488-f127-4d35-b9ab-7943f01abcb3
|
||||
[rename-behaviour-video]: https://github.com/user-attachments/assets/e3d65d76-34d5-45a4-918d-0b28e662840a
|
||||
|
||||
<!-- Remove command -->
|
||||
|
||||
[remove-must-have-hovered-item-video]: https://github.com/user-attachments/assets/fa0aeb4e-ee6a-4e34-9c6f-4d4bc0afd111
|
||||
[remove-hovered-item-optional-video]: https://github.com/user-attachments/assets/f42167dc-df59-451d-b26b-16e75be93fad
|
||||
[remove-prompt-video]: https://github.com/user-attachments/assets/dd901db3-1ab4-4cb7-bb3f-8aec335c7b94
|
||||
[remove-behaviour-video]: https://github.com/user-attachments/assets/d4087826-3480-486d-98ff-708bca548270
|
||||
[remove-must-have-hovered-item-video]: https://github.com/user-attachments/assets/3366c9fa-1a4c-4c3c-a37d-70814d23828d
|
||||
[remove-hovered-item-optional-video]: https://github.com/user-attachments/assets/01a3fc57-cc90-47f5-b744-d3eed00ac237
|
||||
[remove-prompt-video]: https://github.com/user-attachments/assets/18940b9f-4f04-4ab3-a6a9-b35ee8084bd8
|
||||
[remove-behaviour-video]: https://github.com/user-attachments/assets/e524ecdb-f94b-4e6e-b5b2-967470ac3f87
|
||||
|
||||
<!-- Copy command -->
|
||||
|
||||
[copy-must-have-hovered-item-video]: https://github.com/user-attachments/assets/d4ffa133-16d3-44f7-923d-bdd743fa4a77
|
||||
[copy-hovered-item-optional-video]: https://github.com/user-attachments/assets/d2a7f5cd-ab09-45fd-8865-068bb1c269f8
|
||||
[copy-prompt-video]: https://github.com/user-attachments/assets/41d372c5-2992-410c-97ae-aca2c6fea4ee
|
||||
[copy-behaviour-video]: https://github.com/user-attachments/assets/57658664-1a89-46c4-bb4b-3551b0061436
|
||||
|
||||
<!-- Create command -->
|
||||
|
||||
[create-and-enter-directories-video]: https://github.com/user-attachments/assets/0604e9a3-7c23-4e9c-963a-6e83955fe7ae
|
||||
[create-and-open-files-video]: https://github.com/user-attachments/assets/2feee5e5-1d56-4150-8f08-101338392950
|
||||
[create-and-open-files-and-directories-video]: https://github.com/user-attachments/assets/629a6923-6fa5-4b85-93b7-3b5495c8bbbb
|
||||
[create-behaviour-video]: https://github.com/user-attachments/assets/55b485ea-e49e-4629-b077-4f2a81031f38
|
||||
[create-default-behaviour-video]: https://github.com/user-attachments/assets/acf04af0-107f-4ebb-9ed2-2a03847071a5
|
||||
[create-and-enter-directories-video]: https://github.com/user-attachments/assets/b27756db-f6ed-4598-b54f-214b7ccbe208
|
||||
[create-and-open-files-video]: https://github.com/user-attachments/assets/b7ff1e6c-4c70-4598-a5f6-a88e1559f5d9
|
||||
[create-and-open-files-and-directories-video]: https://github.com/user-attachments/assets/90dc6dd2-c39d-4ed5-a8b1-e17a18f0219f
|
||||
[create-behaviour-video]: https://github.com/user-attachments/assets/44bdc556-cde7-4ab9-b3c0-05c4f1fa3120
|
||||
[create-default-behaviour-video]: https://github.com/user-attachments/assets/4948fd32-27a9-4546-83f9-ad6fa9c6afa8
|
||||
|
||||
<!-- Shell command -->
|
||||
|
||||
[shell-must-have-hovered-item-video]: https://github.com/user-attachments/assets/d9a49cb7-67fd-40fe-8f68-130561de0cca
|
||||
[shell-hovered-item-optional-video]: https://github.com/user-attachments/assets/f7fdfa7c-d7cc-4157-bb5f-63c37f82ea5b
|
||||
[shell-prompt-video]: https://github.com/user-attachments/assets/6648ad92-320f-457d-9f3e-b5da6f1c07bc
|
||||
[shell-behaviour-video]: https://github.com/user-attachments/assets/4727658f-e27c-4fbe-acd7-acfeac54cd17
|
||||
[shell-exit-if-directory-video]: https://github.com/user-attachments/assets/ef0e9818-cc81-45fc-9126-6903314ed6b3
|
||||
[shell-must-have-hovered-item-video]: https://github.com/user-attachments/assets/b68c51db-ccb7-447b-897e-fd99048c47c0
|
||||
[shell-hovered-item-optional-video]: https://github.com/user-attachments/assets/4643b23e-a2df-465f-8f62-3501747038b8
|
||||
[shell-prompt-video]: https://github.com/user-attachments/assets/929e6a68-7e3f-4614-8344-c0a482d471ad
|
||||
[shell-behaviour-video]: https://github.com/user-attachments/assets/3afd995a-225a-4cc1-8189-0241555a6345
|
||||
[shell-exit-if-directory-video]: https://github.com/user-attachments/assets/f7cef7a0-027b-462f-8fe0-b107e5844736
|
||||
|
||||
<!-- Paste command -->
|
||||
|
||||
[smart-paste-video]: https://github.com/user-attachments/assets/59800de2-8445-4f68-834b-10a0e394c400
|
||||
[smart-paste-video]: https://github.com/user-attachments/assets/946a8211-41a8-43a0-b56e-9c13f5a00f4d
|
||||
|
||||
<!-- Tab create command -->
|
||||
|
||||
[smart-tab-create-video]: https://github.com/user-attachments/assets/bf48e411-b7ed-4624-abd9-084dcdc25ab5
|
||||
[smart-tab-create-video]: https://github.com/user-attachments/assets/4ea25adc-53d0-4086-b8b3-73dcea6d5932
|
||||
|
||||
<!-- Tab switch command -->
|
||||
|
||||
[smart-tab-switch-video]: https://github.com/user-attachments/assets/5b94ff0f-f77c-4250-96ac-4fea67eebc46
|
||||
[smart-tab-switch-video]: https://github.com/user-attachments/assets/9e2190ad-1b4d-425e-90de-1eb41a445584
|
||||
|
||||
<!-- Quit command -->
|
||||
|
||||
[quit-with-confirmation-video]: https://github.com/user-attachments/assets/9e212a32-c7c3-470f-895e-bb1cba03292d
|
||||
[quit-with-confirmation-video]: https://github.com/user-attachments/assets/d3c71ae0-7024-4f06-9398-457cad0f5c1d
|
||||
|
||||
<!-- Arrow command -->
|
||||
|
||||
[smooth-arrow-video]: https://github.com/user-attachments/assets/990935f5-ce6e-4536-9ddc-d8a32da69803
|
||||
[wraparound-arrow-video]: https://github.com/user-attachments/assets/b8233e26-06b7-436d-bafa-1639ed12aa53
|
||||
[smooth-wraparound-arrow-video]: https://github.com/user-attachments/assets/59d3618a-59cd-448d-b552-e3cc796d109e
|
||||
[smooth-arrow-video]: https://github.com/user-attachments/assets/04683520-6028-4246-b529-eac6d3a936cf
|
||||
[wraparound-arrow-video]: https://github.com/user-attachments/assets/f2555189-4628-4745-89f4-9ecb4ef070ab
|
||||
[smooth-wraparound-arrow-video]: https://github.com/user-attachments/assets/5d603738-a527-4e19-80fd-db41ae76e42b
|
||||
|
||||
<!-- Parent arrow command -->
|
||||
|
||||
[parent-arrow-video]: https://github.com/user-attachments/assets/c412ed7b-a6ee-44e7-bf68-f9f2e5214a50
|
||||
[smooth-parent-arrow-video]: https://github.com/user-attachments/assets/45fdfa5f-86ef-453c-89a8-1c58d6318e93
|
||||
[wraparound-parent-arrow-video]: https://github.com/user-attachments/assets/3a429a57-2dc6-47c6-be4e-fab5844bafde
|
||||
[smooth-wraparound-parent-arrow-video]: https://github.com/user-attachments/assets/7d3d58ea-4b00-4cb2-9aea-950940b1ad1a
|
||||
[parent-arrow-video]: https://github.com/user-attachments/assets/166a83d6-c7ef-4269-b725-62dde60f078f
|
||||
[smooth-parent-arrow-video]: https://github.com/user-attachments/assets/02a7090b-3373-43db-95ed-2b3a6fe683d3
|
||||
[wraparound-parent-arrow-video]: https://github.com/user-attachments/assets/229e11f8-a5e4-4237-93f3-d6c8875c9e78
|
||||
[smooth-wraparound-parent-arrow-video]: https://github.com/user-attachments/assets/7739afe5-e34d-466e-adf2-3e8a8732f04d
|
||||
|
||||
<!-- Archive command -->
|
||||
|
||||
[archive-must-have-hovered-item-video]: https://github.com/user-attachments/assets/a8d667c8-a8a5-44ed-9220-aa55345c98ed
|
||||
[archive-hovered-item-optional-video]: https://github.com/user-attachments/assets/213f82d2-fe70-4c42-8f24-b09c7d7d7dfe
|
||||
[archive-prompt-video]: https://github.com/user-attachments/assets/20366432-f195-4531-bb08-9b3f0e8f848e
|
||||
[archive-behaviour-video]: https://github.com/user-attachments/assets/dcbe9909-db40-4f96-8591-c1a104b63381
|
||||
[archive-encrypt-files-video]: https://github.com/user-attachments/assets/08b98e01-2cc2-486e-bd4d-bfbe9da792db
|
||||
[archive-reveal-created-archive-video]: https://github.com/user-attachments/assets/e908afb8-c431-4e6d-8834-c02216461076
|
||||
[archive-remove-archived-files-video]: https://github.com/user-attachments/assets/d0495292-6508-4417-b378-033e6acc0c4d
|
||||
[archive-must-have-hovered-item-video]: https://github.com/user-attachments/assets/6dac06c1-a69c-4b21-86f6-63f6cc693f22
|
||||
[archive-hovered-item-optional-video]: https://github.com/user-attachments/assets/b33fbcdf-1e00-49db-aede-99c2c3a26171
|
||||
[archive-prompt-video]: https://github.com/user-attachments/assets/ddc0a2e7-9b90-416f-97e3-57af5ad5f355
|
||||
[archive-behaviour-video]: https://github.com/user-attachments/assets/437254d2-4746-41e7-9500-13cef60764b7
|
||||
[archive-encrypt-files-video]: https://github.com/user-attachments/assets/d4269378-58ce-4b58-a420-13455576c58f
|
||||
[archive-reveal-created-archive-video]: https://github.com/user-attachments/assets/86f01452-42a4-4a97-9d31-ce6f9bc10407
|
||||
[archive-remove-archived-files-video]: https://github.com/user-attachments/assets/012ed8b5-57ae-4cb3-8bf7-4e0af6bdb0d2
|
||||
|
||||
<!-- Emit command -->
|
||||
|
||||
[emit-yazi-command-video]: https://github.com/user-attachments/assets/d2fadf6b-1877-479f-9ac3-734cf227693f
|
||||
[emit-plugin-command-video]: https://github.com/user-attachments/assets/af28c33a-b915-413a-91b2-fc812c1d4d90
|
||||
[emit-augmented-command-video]: https://github.com/user-attachments/assets/08c2d3d6-8ae6-48e2-a045-9c9dc5d81bfd
|
||||
|
||||
<!-- Editor command -->
|
||||
|
||||
[editor-must-have-hovered-item-video]: https://github.com/user-attachments/assets/a0e4500d-7bfe-4fb1-9289-8c39c5c6f323
|
||||
[editor-hovered-item-optional-video]: https://github.com/user-attachments/assets/96798f1f-2ddc-464a-b6ae-48cc20f88b3c
|
||||
[editor-prompt-video]: https://github.com/user-attachments/assets/5453cc87-3721-4b80-8cc2-b730ddff5da8
|
||||
[editor-behaviour-video]: https://github.com/user-attachments/assets/f479ef38-5b78-43f1-83d4-045bef6f5f20
|
||||
[editor-must-have-hovered-item-video]: https://github.com/user-attachments/assets/ca6d4bac-57be-487e-98e7-805b396fb3d3
|
||||
[editor-hovered-item-optional-video]: https://github.com/user-attachments/assets/3481a3be-d91c-4903-b7a1-80d3048fcf6b
|
||||
[editor-prompt-video]: https://github.com/user-attachments/assets/7cdb942f-0ad3-453c-93a5-ab89df5cd644
|
||||
[editor-behaviour-video]: https://github.com/user-attachments/assets/e7537e2e-56a0-4681-9820-5b48cd583bc8
|
||||
|
||||
<!-- Pager command -->
|
||||
|
||||
[pager-must-have-hovered-item-video]: https://github.com/user-attachments/assets/7daa8e81-bc83-4ff3-9462-d71293565e67
|
||||
[pager-hovered-item-optional-video]: https://github.com/user-attachments/assets/e123fb58-d49e-46b6-bc33-c41eb01cf9aa
|
||||
[pager-prompt-video]: https://github.com/user-attachments/assets/cfba76a1-116e-4caf-b25a-57d631d115a0
|
||||
[pager-behaviour-video]: https://github.com/user-attachments/assets/d036f865-2909-414b-80d9-80e550b6b3dd
|
||||
[pager-must-have-hovered-item-video]: https://github.com/user-attachments/assets/292f503e-c7b0-45ad-97b3-75325f8bb0e7
|
||||
[pager-hovered-item-optional-video]: https://github.com/user-attachments/assets/ca5f1126-4761-4289-a441-4b44c7234e57
|
||||
[pager-prompt-video]: https://github.com/user-attachments/assets/45d758e0-f95c-4e2e-92b2-094c2f475c00
|
||||
[pager-behaviour-video]: https://github.com/user-attachments/assets/547ebf9c-ab85-4e72-85c0-e130739b9e68
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ https://github.com/yazi-rs/plugins/assets/17523360/7aa3abc2-d057-498c-8473-a6282
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pack -a yazi-rs/plugins:chmod
|
||||
ya pkg add yazi-rs/plugins:chmod
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -15,7 +15,7 @@ ya pack -a yazi-rs/plugins:chmod
|
||||
Add this to your `~/.config/yazi/keymap.toml`:
|
||||
|
||||
```toml
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = [ "c", "m" ]
|
||||
run = "plugin chmod"
|
||||
desc = "Chmod on selected files"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
--- @since 25.2.26
|
||||
--- @since 25.5.28
|
||||
|
||||
local selected_or_hovered = ya.sync(function()
|
||||
local tab, paths = cx.active, {}
|
||||
@ -13,7 +13,7 @@ end)
|
||||
|
||||
return {
|
||||
entry = function()
|
||||
ya.mgr_emit("escape", { visual = true })
|
||||
ya.emit("escape", { visual = true })
|
||||
|
||||
local urls = selected_or_hovered()
|
||||
if #urls == 0 then
|
||||
@ -28,7 +28,7 @@ return {
|
||||
return
|
||||
end
|
||||
|
||||
local status, err = Command("chmod"):arg(value):args(urls):spawn():wait()
|
||||
local status, err = Command("chmod"):arg(value):arg(urls):spawn():wait()
|
||||
if not status or not status.success then
|
||||
ya.notify {
|
||||
title = "Chmod",
|
||||
|
||||
@ -7,7 +7,7 @@ https://github.com/yazi-rs/plugins/assets/17523360/eff5e949-386a-44ea-82f9-4cb4a
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pack -a yazi-rs/plugins:diff
|
||||
ya pkg add yazi-rs/plugins:diff
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -15,7 +15,7 @@ ya pack -a yazi-rs/plugins:diff
|
||||
Add this to your `~/.config/yazi/keymap.toml`:
|
||||
|
||||
```toml
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "<C-d>"
|
||||
run = "plugin diff"
|
||||
desc = "Diff the selected with the hovered file"
|
||||
|
||||
@ -7,7 +7,7 @@ Add a full border to Yazi to make it look fancier.
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pack -a yazi-rs/plugins:full-border
|
||||
ya pkg add yazi-rs/plugins:full-border
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
@ -7,10 +7,10 @@ local function setup(_, opts)
|
||||
Tab.build = function(self, ...)
|
||||
local bar = function(c, x, y)
|
||||
if x <= 0 or x == self._area.w - 1 or th.mgr.border_symbol ~= "│" then
|
||||
return ui.Bar(ui.Bar.TOP)
|
||||
return ui.Bar(ui.Edge.TOP)
|
||||
end
|
||||
|
||||
return ui.Bar(ui.Bar.TOP)
|
||||
return ui.Bar(ui.Edge.TOP)
|
||||
:area(
|
||||
ui.Rect { x = x, y = math.max(0, y), w = ya.clamp(0, self._area.w - x, 1), h = math.min(1, self._area.h) }
|
||||
)
|
||||
@ -26,9 +26,9 @@ local function setup(_, opts)
|
||||
|
||||
local style = th.mgr.border_style
|
||||
self._base = ya.list_merge(self._base or {}, {
|
||||
ui.Border(ui.Border.ALL):area(self._area):type(type):style(style),
|
||||
ui.Bar(ui.Bar.RIGHT):area(self._chunks[1]):style(style),
|
||||
ui.Bar(ui.Bar.LEFT):area(self._chunks[3]):style(style),
|
||||
ui.Border(ui.Edge.ALL):area(self._area):type(type):style(style),
|
||||
ui.Bar(ui.Edge.RIGHT):area(self._chunks[1]):style(style),
|
||||
ui.Bar(ui.Edge.LEFT):area(self._chunks[3]):style(style),
|
||||
|
||||
bar("┬", c[1].right - 1, c[1].y),
|
||||
bar("┴", c[1].right - 1, c[1].bottom - 1),
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
# git.yazi
|
||||
|
||||
> [!NOTE]
|
||||
> Yazi v25.2.26 or later is required for this plugin to work.
|
||||
|
||||
Show the status of Git file changes as linemode in the file list.
|
||||
|
||||
https://github.com/user-attachments/assets/34976be9-a871-4ffe-9d5a-c4cdd0bf4576
|
||||
@ -10,7 +7,7 @@ https://github.com/user-attachments/assets/34976be9-a871-4ffe-9d5a-c4cdd0bf4576
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pack -a yazi-rs/plugins:git
|
||||
ya pkg add yazi-rs/plugins:git
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
--- @since 25.4.4
|
||||
--- @since 25.5.28
|
||||
|
||||
local WINDOWS = ya.target_family() == "windows"
|
||||
|
||||
@ -190,8 +190,8 @@ local function fetch(_, job)
|
||||
-- stylua: ignore
|
||||
local output, err = Command("git")
|
||||
:cwd(tostring(cwd))
|
||||
:args({ "--no-optional-locks", "-c", "core.quotePath=", "status", "--porcelain", "-unormal", "--no-renames", "--ignored=matching" })
|
||||
:args(paths)
|
||||
:arg({ "--no-optional-locks", "-c", "core.quotePath=", "status", "--porcelain", "-unormal", "--no-renames", "--ignored=matching" })
|
||||
:arg(paths)
|
||||
:stdout(Command.PIPED)
|
||||
:output()
|
||||
if not output then
|
||||
|
||||
@ -10,7 +10,7 @@ This is a Yazi plugin for previewing media files. The preview shows thumbnail
|
||||
using `ffmpeg` if available and media metadata using `mediainfo`.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Minimum version: yazi v25.2.7.
|
||||
> Minimum version: yazi v25.5.28.
|
||||
|
||||
## Preview
|
||||
|
||||
@ -48,13 +48,14 @@ Install mediainfo CLI:
|
||||
|
||||
Install + config this plugin:
|
||||
|
||||
> [!IMPORTANT]
|
||||
> `mediainfo` use video, image, svg, magick built-in plugins behind the scene to render preview image, song cover.
|
||||
> [!IMPORTANT] > `mediainfo` use video, image, svg, magick built-in plugins behind the scene to render preview image, song cover.
|
||||
> So you can remove those 3 plugins from `preloaders` and `previewers` sections in `yazi.toml`.
|
||||
|
||||
If you have cache problem, run this cmd, and follow the tips: `yazi --clear-cache`
|
||||
|
||||
```bash
|
||||
ya pkg add boydaihungst/mediainfo
|
||||
# or
|
||||
ya pack -a boydaihungst/mediainfo
|
||||
```
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
--- @since 25.2.7
|
||||
--- @since 25.5.28
|
||||
|
||||
local skip_labels = {
|
||||
["Complete name"] = true,
|
||||
@ -56,13 +56,13 @@ function M:peek(job)
|
||||
return
|
||||
end
|
||||
local cache_mediainfo_path = tostring(cache_img_url_no_skip) .. suffix
|
||||
ya.sleep(math.max(0, (rt and rt.preview or PREVIEW).image_delay / 1000 + start - os.clock()))
|
||||
ya.sleep(math.max(0, rt.preview.image_delay / 1000 + start - os.clock()))
|
||||
local output = read_mediainfo_cached_file(cache_mediainfo_path)
|
||||
|
||||
local lines = {}
|
||||
local max_lines = math.floor(job.area.h / 2)
|
||||
local last_line = 0
|
||||
local is_wrap = rt and rt.preview and rt.preview.wrap == "yes"
|
||||
local is_wrap = rt.preview.wrap == "yes"
|
||||
|
||||
if output then
|
||||
local max_width = math.max(1, job.area.w)
|
||||
@ -82,11 +82,11 @@ function M:peek(job)
|
||||
if not skip_labels[label] then
|
||||
line = ui.Line({
|
||||
ui.Span(label .. ": "):style(ui.Style():fg("reset"):bold()),
|
||||
ui.Span(value):style((th and th.spot and th.spot.tbl_col) or ui.Style():fg("blue")),
|
||||
ui.Span(value):style(th.spot.tbl_col or ui.Style():fg("blue")),
|
||||
})
|
||||
end
|
||||
elseif str ~= "General" then
|
||||
line = ui.Line({ ui.Span(str):style((th and th.spot and th.spot.title) or ui.Style():fg("green")) })
|
||||
line = ui.Line({ ui.Span(str):style(th.spot.title or ui.Style():fg("green")) })
|
||||
end
|
||||
|
||||
if line then
|
||||
@ -105,7 +105,7 @@ function M:peek(job)
|
||||
local mediainfo_height = math.min(max_lines, last_line)
|
||||
|
||||
if (job.skip > 0 and #lines == 0) and (not is_video or (is_video and job.skip >= 90)) then
|
||||
ya.manager_emit("peek", { math.max(0, job.skip - max_lines), only_if = job.file.url, upper_bound = false })
|
||||
ya.emit("peek", { math.max(0, job.skip - max_lines), only_if = job.file.url, upper_bound = false })
|
||||
return
|
||||
end
|
||||
local rendered_img_rect = cache_img_url
|
||||
@ -121,7 +121,7 @@ function M:peek(job)
|
||||
or nil
|
||||
local image_height = rendered_img_rect and rendered_img_rect.h or 0
|
||||
|
||||
ya.preview_widgets(job, {
|
||||
ya.preview_widget(job, {
|
||||
ui.Text(lines)
|
||||
:area(ui.Rect({
|
||||
x = job.area.x,
|
||||
@ -136,8 +136,7 @@ end
|
||||
function M:seek(job)
|
||||
local h = cx.active.current.hovered
|
||||
if h and h.url == job.file.url then
|
||||
local step = ya.clamp(-10, job.units, 10)
|
||||
ya.manager_emit("peek", {
|
||||
ya.emit("peek", {
|
||||
math.max(0, cx.active.preview.skip + job.units),
|
||||
only_if = job.file.url,
|
||||
})
|
||||
@ -165,8 +164,8 @@ function M:preload(job)
|
||||
if cache_img_url_no_skip and (not cache_img_url_no_skip_cha or cache_img_url_no_skip_cha.len <= 0) then
|
||||
-- audio
|
||||
if job.mime and string.find(job.mime, "^audio/") then
|
||||
local qv = 31 - math.floor((rt and rt.preview or PREVIEW).image_quality * 0.3)
|
||||
local status, _ = Command("ffmpeg"):args({
|
||||
local qv = 31 - math.floor(rt.preview.image_quality * 0.3)
|
||||
local status, _ = Command("ffmpeg"):arg({
|
||||
"-v",
|
||||
"quiet",
|
||||
"-threads",
|
||||
@ -185,10 +184,7 @@ function M:preload(job)
|
||||
"-q:v",
|
||||
qv,
|
||||
"-vf",
|
||||
string.format(
|
||||
"scale=-1:'min(%d,ih)':flags=fast_bilinear",
|
||||
(rt and rt.preview or PREVIEW).max_height / 2
|
||||
),
|
||||
string.format("scale=-1:'min(%d,ih)':flags=fast_bilinear", rt.preview.max_height / 2),
|
||||
"-f",
|
||||
"image2",
|
||||
"-y",
|
||||
@ -224,7 +220,7 @@ function M:preload(job)
|
||||
return true
|
||||
end
|
||||
local cmd = "mediainfo"
|
||||
local output, err = Command(cmd):args({ tostring(job.file.url) }):stdout(Command.PIPED):output()
|
||||
local output, err = Command(cmd):arg({ tostring(job.file.url) }):stdout(Command.PIPED):output()
|
||||
if err then
|
||||
err_msg = err_msg .. string.format("Failed to start `%s`, Do you have `%s` installed?\n", cmd, cmd)
|
||||
end
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
# mount.yazi
|
||||
|
||||
> [!NOTE]
|
||||
> Yazi v25.2.7 or later is required for this plugin to work.
|
||||
|
||||
A mount manager for Yazi, providing disk mount, unmount, and eject functionality.
|
||||
|
||||
Supported platforms:
|
||||
@ -15,7 +12,7 @@ https://github.com/user-attachments/assets/c6f780ab-458b-420f-85cf-2fc45fcfe3a2
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pack -a yazi-rs/plugins:mount
|
||||
ya pkg add yazi-rs/plugins:mount
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -23,7 +20,7 @@ ya pack -a yazi-rs/plugins:mount
|
||||
Add this to your `~/.config/yazi/keymap.toml`:
|
||||
|
||||
```toml
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "M"
|
||||
run = "plugin mount"
|
||||
```
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
--- @since 25.2.26
|
||||
--- @since 25.5.28
|
||||
|
||||
local toggle_ui = ya.sync(function(self)
|
||||
if self.children then
|
||||
@ -12,7 +12,7 @@ end)
|
||||
|
||||
local subscribe = ya.sync(function(self)
|
||||
ps.unsub("mount")
|
||||
ps.sub("mount", function() ya.mgr_emit("plugin", { self._id, "refresh" }) end)
|
||||
ps.sub("mount", function() ya.emit("plugin", { self._id, "refresh" }) end)
|
||||
end)
|
||||
|
||||
local update_partitions = ya.sync(function(self, partitions)
|
||||
@ -113,7 +113,7 @@ function M:entry(job)
|
||||
elseif run == "enter" then
|
||||
local active = active_partition()
|
||||
if active and active.dist then
|
||||
ya.mgr_emit("cd", { active.dist })
|
||||
ya.emit("cd", { active.dist })
|
||||
end
|
||||
else
|
||||
tx2:send(run)
|
||||
@ -155,11 +155,11 @@ function M:redraw()
|
||||
|
||||
return {
|
||||
ui.Clear(self._area),
|
||||
ui.Border(ui.Border.ALL)
|
||||
ui.Border(ui.Edge.ALL)
|
||||
:area(self._area)
|
||||
:type(ui.Border.ROUNDED)
|
||||
:style(ui.Style():fg("blue"))
|
||||
:title(ui.Line("Mount"):align(ui.Line.CENTER)),
|
||||
:title(ui.Line("Mount"):align(ui.Align.CENTER)),
|
||||
ui.Table(rows)
|
||||
:area(self._area:pad(ui.Pad(1, 2, 1, 2)))
|
||||
:header(ui.Row({ "Src", "Label", "Dist", "FSType" }):style(ui.Style():bold()))
|
||||
@ -233,7 +233,7 @@ function M.fillin(tbl)
|
||||
return tbl
|
||||
end
|
||||
|
||||
local output, err = Command("lsblk"):args({ "-p", "-o", "name,fstype", "-J" }):args(sources):output()
|
||||
local output, err = Command("lsblk"):arg({ "-p", "-o", "name,fstype", "-J" }):arg(sources):output()
|
||||
if err then
|
||||
ya.dbg("Failed to fetch filesystem types for unmounted partitions: " .. err)
|
||||
return tbl
|
||||
@ -256,14 +256,14 @@ function M.operate(type)
|
||||
|
||||
local output, err
|
||||
if ya.target_os() == "macos" then
|
||||
output, err = Command("diskutil"):args({ type, active.src }):output()
|
||||
output, err = Command("diskutil"):arg({ type, active.src }):output()
|
||||
end
|
||||
if ya.target_os() == "linux" then
|
||||
if type == "eject" then
|
||||
Command("udisksctl"):args({ "unmount", "-b", active.src }):status()
|
||||
output, err = Command("udisksctl"):args({ "power-off", "-b", active.src }):output()
|
||||
Command("udisksctl"):arg({ "unmount", "-b", active.src }):status()
|
||||
output, err = Command("udisksctl"):arg({ "power-off", "-b", active.src }):output()
|
||||
else
|
||||
output, err = Command("udisksctl"):args({ type, "-b", active.src }):output()
|
||||
output, err = Command("udisksctl"):arg({ type, "-b", active.src }):output()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ Preview file types using `rich` command in Yazi. This plugin allows preview for
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Yazi](https://github.com/sxyazi/yazi) v0.4 or higher.
|
||||
- [Yazi](https://github.com/sxyazi/yazi) v25.4.8 or higher.
|
||||
- [rich-cli](https://github.com/Textualize/rich) v13.7.1 or higher.
|
||||
|
||||
## Installation
|
||||
@ -22,7 +22,7 @@ Preview file types using `rich` command in Yazi. This plugin allows preview for
|
||||
To install this plugin, simply run-
|
||||
|
||||
```bash
|
||||
ya pack -a AnirudhG07/rich-preview
|
||||
ya pkg add AnirudhG07/rich-preview
|
||||
## For linux and MacOS
|
||||
git clone https://github.com/AnirudhG07/rich-preview.yazi.git ~/.config/yazi/plugins/rich-preview.yazi
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ https://github.com/yazi-rs/plugins/assets/17523360/72aaf117-1378-4f7e-93ba-d425a
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
ya pack -a yazi-rs/plugins:smart-filter
|
||||
ya pkg add yazi-rs/plugins:smart-filter
|
||||
```
|
||||
|
||||
## Usage
|
||||
@ -15,7 +15,7 @@ ya pack -a yazi-rs/plugins:smart-filter
|
||||
Add this to your `~/.config/yazi/keymap.toml`:
|
||||
|
||||
```toml
|
||||
[[manager.prepend_keymap]]
|
||||
[[mgr.prepend_keymap]]
|
||||
on = "F"
|
||||
run = "plugin smart-filter"
|
||||
desc = "Smart filter"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
--- @since 25.2.26
|
||||
--- @since 25.5.28
|
||||
|
||||
local hovered = ya.sync(function()
|
||||
local h = cx.active.current.hovered
|
||||
@ -28,20 +28,20 @@ local function entry()
|
||||
while true do
|
||||
local value, event = input:recv()
|
||||
if event ~= 1 and event ~= 3 then
|
||||
ya.mgr_emit("escape", { filter = true })
|
||||
ya.emit("escape", { filter = true })
|
||||
break
|
||||
end
|
||||
|
||||
ya.mgr_emit("filter_do", { value, smart = true })
|
||||
ya.emit("filter_do", { value, smart = true })
|
||||
|
||||
local h = hovered()
|
||||
if h.unique and h.is_dir then
|
||||
ya.mgr_emit("escape", { filter = true })
|
||||
ya.mgr_emit("enter", {})
|
||||
ya.emit("escape", { filter = true })
|
||||
ya.emit("enter", {})
|
||||
input = prompt()
|
||||
elseif event == 1 then
|
||||
ya.mgr_emit("escape", { filter = true })
|
||||
ya.mgr_emit(h.is_dir and "enter" or "open", { h.url })
|
||||
ya.emit("escape", { filter = true })
|
||||
ya.emit(h.is_dir and "enter" or "open", { h.url })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -9,14 +9,15 @@ what-size supports Yazi on Linux, macOS, and Windows.
|
||||
### OS
|
||||
|
||||
- Linux since first commit
|
||||
- macOS since commit `42c6a0efb7245badb16781da5380be1a1705f3f2` ([link](https://github.com/pirafrank/what-size.yazi/commit/42c6a0efb7245badb16781da5380be1a1705f3f2))
|
||||
- Windows since commit `4a56ead2a84c5969791fb17416e0b451ab906c5d` ([link](https://github.com/pirafrank/what-size.yazi/commit/4a56ead2a84c5969791fb17416e0b451ab906c5d))
|
||||
- macOS since commit `42c6a0e` ([link](https://github.com/pirafrank/what-size.yazi/commit/42c6a0efb7245badb16781da5380be1a1705f3f2))
|
||||
- Windows since commit `4a56ead` ([link](https://github.com/pirafrank/what-size.yazi/commit/4a56ead2a84c5969791fb17416e0b451ab906c5d))
|
||||
|
||||
### Yazi
|
||||
|
||||
- yazi `25.x` since commit `fce1778d911621dc57796cdfdf11dcda3c2e28de` ([link](https://github.com/pirafrank/what-size.yazi/commit/fce1778d911621dc57796cdfdf11dcda3c2e28de)).
|
||||
- yazi `0.4.x` since commit `2780de5aeef1ed16d1973dd6e0cd4d630c900d56` ([link](https://github.com/pirafrank/what-size.yazi/commit/2780de5aeef1ed16d1973dd6e0cd4d630c900d56)).
|
||||
- yazi `0.3.x` up to commit `f08f7f2d5c94958ac4cb66c51a7c24b4319c6c93` ([link](https://github.com/pirafrank/what-size.yazi/commit/f08f7f2d5c94958ac4cb66c51a7c24b4319c6c93)).
|
||||
- yazi `25.5.28` and onwards since commit `c5c939b` ([link](https://github.com/pirafrank/what-size.yazi/commit/c5c939bb37ec1d132c942cf5724d4e847acc2977))
|
||||
- yazi `25.x`-`25.4.8` since commit `fce1778` ([link](https://github.com/pirafrank/what-size.yazi/commit/fce1778d911621dc57796cdfdf11dcda3c2e28de))
|
||||
- yazi `0.4.x` since commit `2780de5` ([link](https://github.com/pirafrank/what-size.yazi/commit/2780de5aeef1ed16d1973dd6e0cd4d630c900d56))
|
||||
- yazi `0.3.x` up to commit `f08f7f2` ([link](https://github.com/pirafrank/what-size.yazi/commit/f08f7f2d5c94958ac4cb66c51a7c24b4319c6c93))
|
||||
|
||||
## Requirements
|
||||
|
||||
|
||||
@ -46,7 +46,7 @@ local function get_total_size(items)
|
||||
return total
|
||||
else
|
||||
local arg = ya.target_os() == "macos" and "-scA" or "-scb"
|
||||
local output, err = Command("du"):arg(arg):args(items):output()
|
||||
local output, err = Command("du"):arg(arg):arg(items):output()
|
||||
if not output then
|
||||
ya.err("Failed to run du: " .. err)
|
||||
end
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
|
||||
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
|
||||
|
||||
[manager]
|
||||
[mgr]
|
||||
ratio = [ 1, 2, 3 ]
|
||||
sort_by = "alphabetical"
|
||||
sort_sensitive = false
|
||||
|
||||
@ -77,7 +77,7 @@ function cd {
|
||||
if [ $# -eq 0 ]; then
|
||||
new_directory=${HOME}
|
||||
fi
|
||||
builtin cd "${new_directory}" && eza -a --icons --group-directories-first
|
||||
z "${new_directory}" && eza -a --icons --group-directories-first
|
||||
}
|
||||
|
||||
# Use lf to switch directories and bind it to ctrl-o
|
||||
@ -87,7 +87,7 @@ lfcd() {
|
||||
lf -last-dir-path="$tmp" "$@"
|
||||
if [ -f "$tmp" ]; then
|
||||
dir="$(cat "$tmp")"
|
||||
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" || return
|
||||
[ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && z "$dir" || return
|
||||
fi
|
||||
}
|
||||
|
||||
@ -95,16 +95,41 @@ function yazicd() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
builtin cd -- "$cwd" && eza -a --icons --group-directories-first
|
||||
z -- "$cwd" && eza -a --icons --group-directories-first
|
||||
fi
|
||||
rm -f -- "$tmp" >/dev/null 2>&1
|
||||
}
|
||||
tmux-window-name() {
|
||||
|
||||
function tmux-window-name() {
|
||||
($TMUX_PLUGIN_MANAGER_PATH/tmux-window-name/scripts/rename_session_windows.py &)
|
||||
}
|
||||
|
||||
# add-zsh-hook chpwd tmux-window-name
|
||||
function fzf_sesh_connect_widget() {
|
||||
local session
|
||||
session=$(
|
||||
sesh list --icons | fzf-tmux -p 80%,70% \
|
||||
--no-sort --ansi \
|
||||
--border-label ' sesh ' \
|
||||
--prompt '⚡ ' \
|
||||
--header ' ^a all ^t tmux ^g configs ^x zoxide ^d tmux kill ^f find' \
|
||||
--bind 'tab:down,btab:up' \
|
||||
--bind 'ctrl-a:change-prompt(⚡ )+reload(sesh list --icons)' \
|
||||
--bind 'ctrl-t:change-prompt(🪟 )+reload(sesh list -t --icons)' \
|
||||
--bind 'ctrl-g:change-prompt(⚙️ )+reload(sesh list -c --icons)' \
|
||||
--bind 'ctrl-x:change-prompt(📁 )+reload(sesh list -z --icons)' \
|
||||
--bind 'ctrl-f:change-prompt(🔎 )+reload(fd -H -d 2 -t d -E .Trash . ~)' \
|
||||
--bind 'ctrl-d:execute(tmux kill-session -t {2..})+change-prompt(⚡ )+reload(sesh list --icons)' \
|
||||
--preview-window 'right:55%' \
|
||||
--preview 'sesh preview {}'
|
||||
)
|
||||
|
||||
# if the user picked something, build & run the command
|
||||
if [[ -n $session ]]; then
|
||||
BUFFER="sesh connect \"$session\""
|
||||
zle accept-line
|
||||
fi
|
||||
}
|
||||
zle -N fzf_sesh_connect_widget
|
||||
|
||||
# Navigate words with CTRL+ARROW keys
|
||||
bindkey '^H' backward-kill-word # delete previous word with CTRL+BACKSPACE
|
||||
@ -138,8 +163,8 @@ bindkey -M vicmd '^e' edit-command-line
|
||||
bindkey -M visual '^[[P' vi-delete
|
||||
|
||||
bindkey -s '^n' '^uv .\n'
|
||||
bindkey -s '^f' '^utmux neww tmux-sessionizer\n'
|
||||
|
||||
# bindkey -s '^f' '^utmux neww tmux-sessionizer\n'
|
||||
bindkey '^F' fzf_sesh_connect_widget
|
||||
|
||||
eval "$(starship init zsh)"
|
||||
eval "$(fzf --zsh)"
|
||||
|
||||
@ -1,37 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ $# -eq 1 ]]; then
|
||||
selected=$1
|
||||
selected="$1"
|
||||
else
|
||||
selected=$(project-finder ~/repos/ ~/Nextcloud/ ~/Obsidian/ | sk --height 16)
|
||||
fi
|
||||
|
||||
if [[ -z $selected ]]; then
|
||||
if [[ -z "$selected" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
selected_name=$(basename "$selected" | tr . _)
|
||||
tmux_running=$(pgrep tmux)
|
||||
|
||||
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
||||
# Create new session with nvim in first window, detached
|
||||
tmux new-session -ds "$selected_name" -c "$selected" "${EDITOR:-vim} ."
|
||||
# Create second window as plain terminal
|
||||
tmux new-window -t "$selected_name:" -c "$selected"
|
||||
# Select the first window (index 0)
|
||||
tmux select-window -t "$selected_name:1"
|
||||
# Attach to the session
|
||||
tmux attach-session -t "$selected_name"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if the session exists
|
||||
if ! tmux has-session -t="$selected_name" 2>/dev/null; then
|
||||
# Create new session with nvim in first window, detached
|
||||
tmux new-session -ds "$selected_name" -c "$selected" "${EDITOR:-vim} ."
|
||||
# Create second window as plain terminal
|
||||
# Create a new session, detached, with window 0 in the selected directory
|
||||
tmux new-session -d -s "$selected_name" -c "$selected"
|
||||
# Create a second window (index 1) in the same directory
|
||||
tmux new-window -t "$selected_name:" -c "$selected"
|
||||
# Select the first window (index 0)
|
||||
tmux select-window -t "$selected_name:1"
|
||||
fi
|
||||
|
||||
# Always select window 0
|
||||
tmux select-window -t "$selected_name:1"
|
||||
|
||||
if [[ -z "$TMUX" ]]; then
|
||||
# Not inside tmux, attach to the session
|
||||
tmux attach-session -t "$selected_name"
|
||||
else
|
||||
# Inside tmux, switch client to the session
|
||||
tmux switch-client -t "$selected_name"
|
||||
fi
|
||||
|
||||
Loading…
Reference in New Issue
Block a user