This commit is contained in:
Lian Drake 2024-03-27 02:07:02 -04:00
parent b7663699be
commit 215f878dc7
26 changed files with 1131 additions and 7461 deletions

View file

@ -1,79 +0,0 @@
[colors]
draw_bold_text_with_bright_colors = true
# Default colors
[colors.primary]
# hard contrast background = = '#1d2021'
background = '#1d2021'
# soft contrast background = = '#32302f'
foreground = '#ebdbb2'
# Normal colors
[colors.normal]
black = '#282828'
red = '#cc241d'
green = '#98971a'
yellow = '#d79921'
blue = '#458588'
magenta = '#b16286'
cyan = '#689d6a'
white = '#a89984'
# Bright colors
[colors.bright]
black = '#928374'
red = '#fb4934'
green = '#b8bb26'
yellow = '#fabd2f'
blue = '#83a598'
magenta = '#d3869b'
cyan = '#8ec07c'
white = '#ebdbb2'
[cursor]
style = "Underline"
[env]
TERM = "xterm-256color"
[font]
size = 14
[font.bold]
family = "Mononoki Nerd Font"
style = "Bold"
[font.bold_italic]
family = "Mononoki Nerd Font"
style = "Bold Italic"
[font.italic]
family = "Mononoki Nerd Font"
style = "Italic"
[font.normal]
family = "Mononoki Nerd Font"
style = "Regular"
[font.offset]
x = 0
y = 1
[scrolling]
history = 10000
[shell]
program = "/bin/fish"
[window]
dynamic_padding = false
opacity = 0.9
title = "Alacritty"
[window.class]
general = "Alacritty"
instance = "Alacritty"
[window.padding]
x = 5
y = 5

View file

@ -14,8 +14,8 @@ set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/go/bin $HOME/Applicati
### EXPORT ### ### EXPORT ###
set fish_greeting # Supresses fish's intro message set fish_greeting # Supresses fish's intro message
set TERM "xterm-256color" # Sets the terminal type set TERM "xterm-256color" # Sets the terminal type
set EDITOR "emacsclient -t -a ''" set EDITOR "lvim"
set VISUAL "emacsclient -c -a emacs" set VISUAL "kitty --class editor lvim"
set GOPATH "~/go" set GOPATH "~/go"
### SET BAT AS MANPAGER ### SET BAT AS MANPAGER
@ -232,4 +232,3 @@ alias blt='bluetoothctl'
### SETTING THE STARSHIP PROMPT ### ### SETTING THE STARSHIP PROMPT ###
starship init fish | source starship init fish | source
zoxide init fish | source

View file

@ -24,8 +24,8 @@ selection-text=ebdbb2ff
border=cc241dff border=cc241dff
[border] [border]
width=3 width=2
radius=4 radius=0
[dmenu] [dmenu]
mode=text mode=text

View file

@ -13,9 +13,8 @@ animations {
animation = windowsIn, 1, 1, workIn, popin animation = windowsIn, 1, 1, workIn, popin
animation = windowsOut, 1, 5, workIn, popin animation = windowsOut, 1, 5, workIn, popin
animation = windowsMove, 1, 5, wind, slide animation = windowsMove, 1, 5, wind, slide
animation = borderangle, 1, 25, linear, loop
animation = fadeIn, 1, 2, winIn animation = fadeIn, 1, 2, winIn
animation = fadeOut, 1, 5, winOut animation = fadeOut, 1, 5, winOut
animation = workspaces, 1, 3, workIn, slidevert animation = workspaces, 1, 3, workIn, slide
animation = specialWorkspace, 1, 5, workIn, slidevert animation = specialWorkspace, 1, 5, workIn, slide
} }

View file

@ -6,13 +6,12 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR
exec-once = dbus-update-activation-environment --systemd --all exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = /usr/libexec/kf5/polkit-kde-authentication-agent-1 exec-once = /usr/libexec/kf5/polkit-kde-authentication-agent-1
exec-once = $HOME/.config/hypr/scripts/xdg-portals
exec-once = waybar exec-once = waybar
exec-once = mako -c ~/.config/mako/config exec-once = mako -c ~/.config/mako/config
exec-once = $HOME/.config/hypr/scripts/clip exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = hyprpaper exec-once = hyprpaper
exec-once = hypridle exec-once = hypridle
exec-once = emacs --daemon
# ┏━╸┏┓╻╻ ╻ # ┏━╸┏┓╻╻ ╻
# ┣╸ ┃┗┫┃┏┛ # ┣╸ ┃┗┫┃┏┛
@ -45,7 +44,7 @@ env = RUNNER_EX,fuzzel
# ╹ ╹┗━┛╹ ╹╹ ╹ ┗━┛╹┗╸ # ╹ ╹┗━┛╹ ╹╹ ╹ ┗━┛╹┗╸
monitor=HDMI-A-1, preferred, auto, 1 monitor=HDMI-A-1, preferred, auto, 1
monitor=eDP-1, preferred, auto, 1 monitor=eDP-1, preferred, auto, 1, mirror, HDMI-A-1
bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1" bindl = , switch:off:Lid Switch, exec, hyprctl keyword monitor "eDP-1, preferred, auto, 1"
bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable" bindl = , switch:on:Lid Switch, exec, hyprctl keyword monitor "eDP-1, disable"
@ -84,7 +83,7 @@ dwindle {
} }
master { master {
no_gaps_when_only = false no_gaps_when_only = true
new_is_master = false new_is_master = false
drop_at_cursor = false drop_at_cursor = false
orientation = left orientation = left

View file

@ -7,7 +7,7 @@ $altMod = ALT # alt key
$conMod = CONTROL # control key $conMod = CONTROL # control key
# main binds # main binds
bind = $supMod, RETURN, exec, alacritty # launch a terminal bind = $supMod, RETURN, exec, kitty # launch a terminal
bind = $supMod, q, killactive # kill active window bind = $supMod, q, killactive # kill active window
bind = $supMod_$conMod_SHIFT, q, exit # exit the compositor bind = $supMod_$conMod_SHIFT, q, exit # exit the compositor
bind = $supMod, b, exec, pkill waybar || waybar # hide/show bar bind = $supMod, b, exec, pkill waybar || waybar # hide/show bar
@ -60,11 +60,11 @@ bind = $supMod_SHIFT, 0, movetoworkspace, 10 # move active window to
bind = $supMod, mouse_down, workspace, e+1 # move to next workspace with mouse wheel bind = $supMod, mouse_down, workspace, e+1 # move to next workspace with mouse wheel
bind = $supMod, mouse_up, workspace, e-1 # move to previous workspace with mouse wheel bind = $supMod, mouse_up, workspace, e-1 # move to previous workspace with mouse wheel
bind = $supMod, Down, workspace, e+1 # move to next workspace with down cursor key bind = $supMod, Right, workspace, e+1 # move to next workspace with down cursor key
bind = $supMod, Up, workspace, e-1 # move to previous workspace with up cursor key bind = $supMod, Left, workspace, e-1 # move to previous workspace with up cursor key
bind = $supMod_SHIFT, Down, movetoworkspace, e+1 # move active window to next workspace with down cursor key bind = $supMod_SHIFT, Right, movetoworkspace, e+1 # move active window to next workspace with down cursor key
bind = $supMod_SHIFT, Up, movetoworkspace, e-1 # move active window to previous workspace with up cursor key bind = $supMod_SHIFT, Left, movetoworkspace, e-1 # move active window to previous workspace with up cursor key
# common binds # common binds
bindl=, XF86AudioRaiseVolume, exec, pamixer -i 5 # increase volume by 5% bindl=, XF86AudioRaiseVolume, exec, pamixer -i 5 # increase volume by 5%
@ -76,7 +76,7 @@ bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioNext, exec, playerctl next # switch to next media bindl=, XF86AudioNext, exec, playerctl next # switch to next media
bindl=, XF86AudioPrev, exec, playerctl previous # switch to previous media bindl=, XF86AudioPrev, exec, playerctl previous # switch to previous media
bindl=, XF86AudioStop, exec, playerctl stop # stop media playback bindl=, XF86AudioStop, exec, playerctl stop # stop media playback
bindl=, XF86News, exec, alacritty --class newsboat -e newsboat # launch news feed reader bindl=, XF86News, exec, kitty --class newsboat newsboat # launch news feed reader
bindl=, XF86MonBrightnessUp, exec, brightnessctl s 5%+ # increase brightness by 5% bindl=, XF86MonBrightnessUp, exec, brightnessctl s 5%+ # increase brightness by 5%
bindl=, XF86MonBrightnessDown, exec, brightnessctl s 5%- # decrease brightness by 5% bindl=, XF86MonBrightnessDown, exec, brightnessctl s 5%- # decrease brightness by 5%
bindl=, XF86Display, exec, wdisplays # launch display configuration utility bindl=, XF86Display, exec, wdisplays # launch display configuration utility
@ -94,18 +94,17 @@ binde = $supMod_SHIFT, b, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/f
binde = $supMod_SHIFT, m, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_mount # launch drive mounter binde = $supMod_SHIFT, m, exec, pkill fuzzel || $HOME/.config/fuzzel/scripts/fuzz_mount # launch drive mounter
# apps binds # apps binds
binde = $supMod_$altMod, y, exec, alacritty --class ytfzf -e ytfzf -flstT wayland # launch youtube player binde = $supMod_$altMod, y, exec, kitty --class ytfzf ytfzf -flstT chafa # launch youtube player
binde = $supMod_$altMod, m, exec, alacritty --class ytfzf_music -e ytfzf -mlstT wayland # launch youtube music player binde = $supMod_$altMod, m, exec, kitty --class ytfzf_music ytfzf -mlstT chafa # launch youtube music player
binde = $supMod_$altMod, f, exec, alacritty --class flix_cli -e flix-cli # launch torrent movie player binde = $supMod_$altMod, f, exec, kitty --class flix_cli flix-cli # launch torrent movie player
binde = $supMod_$altMod, a, exec, alacritty --class ani_cli -e ani-cli # launch anime player binde = $supMod_$altMod, a, exec, kitty --class ani_cli ani-cli # launch anime player
binde = $supMod_$altMod, b, exec, alacritty --class btop -e btop # launch resource monitor binde = $supMod_$altMod, b, exec, kitty --class btop btop # launch resource monitor
binde = $supMod_$altMod, p, exec, alacritty --class pulsemixer -e pulsemixer # launch audio mixer binde = $supMod_$altMod, p, exec, kitty --class pulsemixer pulsemixer # launch audio mixer
binde = $supMod_$conMod, f, exec, alacritty --class file_manager -e $HOME/.config/vifm/scripts/vifmrun # launch file manager binde = $supMod_$conMod, f, exec, kitty --class file_manager yazi # launch file manager
binde = $supMod_$conMod, e, exec, emacsclient -c -a 'emacs' # launch text editor binde = $supMod_$conMod, e, exec, kitty --class editor lvim # launch text editor
binde = $supMod_$conMod, w, exec, flatpak run org.mozilla.firefox # launch web browser binde = $supMod_$conMod, m, exec, kitty --class musikcube musikcube # launch music player
binde = $supMod_$conMod, r, exec, alacritty --class newsboat -e newsboat # launch rss feed reader binde = $supMod_$conMod, r, exec, kitty --class newsboat newsboat # launch rss feed reader
binde = $supMod_$conMod, p, exec, flatpak run org.gnome.Podcasts # launch podcasts player binde = $supMod_$conMod, w, exec, flatpak run org.mozilla.firefox # launch web browser
binde = $supMod_$conMod, c, exec, flatpak run org.signal.Signal # launch chat app binde = $supMod_$conMod, c, exec, flatpak run org.signal.Signal # launch chat app
binde = $supMod_$conMod, r, exec, flatpak run org.libretro.Retroarch # launch gaming app binde = $supMod_$conMod, r, exec, flatpak run org.libretro.Retroarch # launch gaming app
binde = $supMod_$conMod, b, exec, flatpak run com.bitwarden.desktop # launch password manager binde = $supMod_$conMod, p, exec, flatpak run com.bitwarden.desktop # launch password manager
binde = $supMod_$conMod, m, exec, alacritty --class musikcube -e musikcube # launch music player

View file

@ -21,6 +21,7 @@ windowrulev2 = float,class:^(qalculate-gtk)$
# workspace 1 - development # workspace 1 - development
windowrule = workspace 1, ^(neovim)$ windowrule = workspace 1, ^(neovim)$
windowrule = workspace 1, ^(editor)$
windowrule = workspace 1, ^(goneovim)$ windowrule = workspace 1, ^(goneovim)$
windowrule = workspace 1, ^(Code)$ windowrule = workspace 1, ^(Code)$
windowrule = workspace 1, ^(emacs)$ windowrule = workspace 1, ^(emacs)$

View file

@ -1,4 +0,0 @@
#!/bin/bash
wl-paste --type text --watch cliphist store
wl-paste --type image --watch cliphist store

View file

@ -1,13 +0,0 @@
#!/bin/bash
sleep 1
killall xdg-desktop-portal-hyprland
killall xdg-desktop-portal-gnome
killall xdg-desktop-portal-kde
killall xdg-desktop-portal-lxqt
killall xdg-desktop-portal-wlr
killall xdg-desktop-portal
sleep 1
/usr/libexec/xdg-desktop-portal-hyprland &
sleep 2
/usr/libexec/xdg-desktop-portal &

View file

@ -14,10 +14,11 @@ exec = gsettings set org.gnome.desktop.interface gtk-theme 'Gruvbox-Dark-BL'
exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' exec = gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
general { general {
gaps_in = 4 gaps_in = 2
gaps_out = 8 gaps_out = 4
border_size = 3 border_size = 1
col.active_border = rgb(cc241d) rgb(d79921) 45deg resize_on_border = true
col.active_border = rgb(cc241d)
col.inactive_border = rgb(504945) col.inactive_border = rgb(504945)
layout = master layout = master
no_focus_fallback = true no_focus_fallback = true
@ -25,14 +26,14 @@ general {
decoration { decoration {
blur { blur {
enabled = true enabled = false
size = 4 size = 4
passes = 2 passes = 2
new_optimizations = true new_optimizations = true
noise = 0.2 noise = 0.2
brightness = 0.8 brightness = 0.8
} }
rounding = 4 rounding = 0
drop_shadow = yes drop_shadow = yes
shadow_range = 5 shadow_range = 5
shadow_render_power = 3 shadow_render_power = 3

BIN
user/.config/hypr/wall/lock.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 3.7 MiB

BIN
user/.config/hypr/wall/wall.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View file

@ -0,0 +1,65 @@
cursor_shape underline
cursor_underline_thickness 3.0
font_family Mononoki Nerd Font
bold_font auto
italic_font auto
bold_italic_font auto
font_size 14.0
shell fish
confirm_os_window_close 0
background_opacity 0.95
window_margin_width 2
# Gruvbox
cursor #928374
cursor_text_color background
url_color #83a598
visual_bell_color #8ec07c
bell_border_color #8ec07c
active_border_color #d3869b
inactive_border_color #665c54
foreground #ebdbb2
background #1d2021
selection_foreground #928374
selection_background #ebdbb2
active_tab_foreground #fbf1c7
active_tab_background #665c54
inactive_tab_foreground #a89984
inactive_tab_background #3c3836
# black (bg3/bg4)
color0 #665c54
color8 #7c6f64
# red
color1 #cc241d
color9 #fb4934
#: green
color2 #98971a
color10 #b8bb26
# yellow
color3 #d79921
color11 #fabd2f
# blue
color4 #458588
color12 #83a598
# purple
color5 #b16286
color13 #d3869b
# aqua
color6 #689d6a
color14 #8ec07c
# white (fg4/fg3)
color7 #a89984
color15 #bdae93

View file

@ -0,0 +1,108 @@
-- neovide options
vim.o.guifont = "mononoki Nerd Font:h14"
vim.g.neovide_hide_mouse_when_typing = true
vim.g.neovide_no_idle = true
vim.g.neovide_confirm_quit = true
vim.g.neovide_input_use_logo = true
vim.g.neovide_cursor_antialiasing = true
vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_cursor_vfx_mode = "pixiedust"
vim.g.neovide_cursor_vfx_particle_speed = 20.0
vim.g.neovide_padding_top = 0
vim.g.neovide_padding_bottom = 0
vim.g.neovide_padding_right = 0
vim.g.neovide_padding_left = 0
-- Helper function for transparency formatting
local alpha = function()
return string.format("%x", math.floor(255 * (vim.g.transparency or 0.98)))
end
vim.g.neovide_transparency = 0.95
vim.g.transparency = 0.95
vim.g.neovide_background_color = "#1d2021" .. alpha()
-- nvim options
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.relativenumber = true
vim.cmd('autocmd FileType markdown setlocal nospell')
vim.opt.wrap = true -- wrap lines
vim.opt.spell = false
vim.o.shell = '/usr/bin/fish'
vim.o.autochdir = true
vim.cmd('autocmd BufEnter * lcd %:p:h')
-- general
lvim.use_icons = true
lvim.log.level = "info"
-- change theme settings
lvim.colorscheme = "gruvbox"
lvim.transparent_window = false
lvim.builtin.alpha.active = true
lvim.builtin.alpha.mode = "dashboard"
lvim.builtin.terminal.active = true
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
lvim.builtin.treesitter.ensure_installed = {
"bash",
"c",
"javascript",
"json",
"lua",
"python",
"typescript",
"tsx",
"css",
"rust",
"java",
"yaml",
"toml",
"sql",
}
-- additional Plugins
lvim.plugins = {
{ "lunarvim/colorschemes" },
{ "ellisonleao/gruvbox.nvim" },
{ "tpope/vim-dadbod" },
{ "kristijanhusak/vim-dadbod-ui" },
{ "kristijanhusak/vim-dadbod-completion", after = "nvim-cmp" },
{ "SirVer/ultisnips" },
}
-- configuring colorscheme
require("gruvbox").setup({
undercurl = true,
underline = true,
bold = false,
italic = {
strings = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "hard", -- can be "hard", "soft" or empty string
palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
})
lvim.keys.normal_mode["<leader>D"] = ":DBUIToggle<CR>"
vim.api.nvim_create_autocmd("FileType", {
pattern = { "sql", "mysql", "plsql" },
command = ":lua require('cmp').setup.buffer({ sources = {{ name = 'vim-dadbod-completion' }} })",
})
local cmp = require("cmp")

View file

@ -15,8 +15,8 @@ width=450
height=130 height=130
margin=10 margin=10
padding=15 padding=15
border-size=3 border-size=2
border-radius=4 border-radius=0
icons=1 icons=1
max-icon-size=32 max-icon-size=32
icon-location=left icon-location=left
@ -26,7 +26,7 @@ history=1
text-alignment=left text-alignment=left
default-timeout=15000 default-timeout=15000
layer=top layer=top
anchor=bottom-left anchor=top-right
[category=CHANGE_LAYOUT] [category=CHANGE_LAYOUT]
font=Mononoki Nerd Font 26 font=Mononoki Nerd Font 26

View file

@ -0,0 +1,24 @@
[Default Applications]
image/=imv.desktop
video/=mpv.desktop
audio/=mpv.desktop
text/=emacsclient.desktop
image/jpeg=imv.desktop
image/png=imv.desktop
image/gif=imv.desktop
application/vnd.comicbook+zip=org.pwmt.zathura-cb.desktop
application/pdf=org.pwmt.zathura-pdf-poppler.desktop
image/svg+xml=org.inkscape.Inkscape.desktop
video/x-matroska=mpv.desktop
video/mp4=mpv.desktop
image/webp=imv.desktop
[Added Associations]
image/jpeg=imv.desktop;
image/png=imv.desktop;
image/gif=imv.desktop;
application/vnd.comicbook+zip=org.pwmt.zathura-cb.desktop;
application/pdf=org.pwmt.zathura-pdf-poppler.desktop;
image/svg+xml=org.inkscape.Inkscape.desktop;
video/x-matroska=mpv.desktop;
image/webp=imv.desktop;

View file

@ -1,29 +0,0 @@
" gruvbox color scheme approximation for vifm
" Reset all styles first
highlight clear
highlight Border cterm=none ctermfg=235 ctermbg=default
highlight TopLine cterm=none ctermfg=214 ctermbg=235
highlight TopLineSel cterm=bold ctermfg=214 ctermbg=237
highlight Win cterm=none ctermfg=223 ctermbg=none
highlight OtherWin cterm=none ctermfg=223 ctermbg=none
highlight Directory cterm=bold ctermfg=109 ctermbg=default
highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default
highlight OtherLine cterm=bold ctermfg=default ctermbg=235
highlight Selected cterm=none ctermfg=223 ctermbg=237
highlight JobLine cterm=bold ctermfg=116 ctermbg=238
highlight StatusLine cterm=bold ctermfg=144 ctermbg=236
highlight ErrorMsg cterm=bold ctermfg=167 ctermbg=default
highlight WildMenu cterm=bold ctermfg=235 ctermbg=144
highlight CmdLine cterm=none ctermfg=223 ctermbg=default
highlight Executable cterm=bold ctermfg=142 ctermbg=default
highlight Link cterm=none ctermfg=132 ctermbg=default
highlight BrokenLink cterm=bold ctermfg=167 ctermbg=default
highlight Device cterm=none,standout ctermfg=214 ctermbg=default
highlight Fifo cterm=none ctermfg=172 ctermbg=default
highlight Socket cterm=bold ctermfg=223 ctermbg=default

View file

@ -1,56 +0,0 @@
#!/bin/sh
PCACHE="$HOME/.cache/vifm/thumbnail.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$PWD/$6")" | sha256sum)"
export PCACHE="${PCACHE%% *}"
pclear() {
printf '{"action": "remove", "identifier": "vifm-preview"}\n' > "$FIFO_UEBERZUG"
}
image() {
printf '{"action": "add", "identifier": "vifm-preview", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$2" "$3" "$4" "$5" "$6" > "$FIFO_UEBERZUG"
}
main() {
case "$1" in
"clear")
pclear "$@"
;;
"draw")
FILE="$PWD/$6"
image "$1" "$2" "$3" "$4" "$5" "$FILE"
;;
"video")
[ ! -f "$PCACHE" ] && \
ffmpegthumbnailer -i "$6" -o "${PCACHE}.jpg" -s 0 -q 5
image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg"
;;
"epub")
[ ! -f "$PCACHE" ] && \
epub-thumbnailer "$6" "$PCACHE" 1024
image "$1" "$2" "$3" "$4" "$5" "$PCACHE"
;;
"pdf")
[ ! -f "${PCACHE}.jpg" ] && \
pdftoppm -jpeg -f 1 -singlefile "$6" "$PCACHE"
image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg"
;;
"djvu")
[ ! -f "${PCACHE}.jpg" ] && \
ddjvu -format=tiff -quality=90 -page=1 "$6" "$PCACHE.jpg"
image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg"
;;
"audio")
[ ! -f "${PCACHE}.jpg" ] && \
ffmpeg -hide_banner -i "$6" "${PCACHE}.jpg" -y >/dev/null
image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg"
;;
"font")
[ ! -f "${PCACHE}.jpg" ] && \
fontpreview -i "$6" -o "${PCACHE}.jpg"
image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg"
;;
*)
esac
}
main "$@"

View file

@ -1,21 +0,0 @@
#!/bin/sh
if [ -z "$(command -v vifm)" ]; then
printf "vifm isn't installed on your system!\n"
exit 1
elif [ -z "$(command -v ueberzug)" ]; then
exec vifm "$@"
else
cleanup() {
exec 3>&-
rm "$FIFO_UEBERZUG"
}
[ ! -d "$HOME/.cache/vifm" ] && mkdir -p "$HOME/.cache/vifm"
export FIFO_UEBERZUG="$HOME/.cache/vifm/ueberzug-${$}"
mkfifo "$FIFO_UEBERZUG"
ueberzug layer -s <"$FIFO_UEBERZUG" -p json &
exec 3>"$FIFO_UEBERZUG"
trap cleanup EXIT
vifm "$@" 3>&-
vifmimg clear
fi

File diff suppressed because it is too large Load diff

View file

@ -1,513 +0,0 @@
" ____ __
" / __ \_________ _/ /_____
" / / / / ___/ __ `/ //_/ _ \
" / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
" /_____/_/ \__,_/_/|_|\___/ My custom vifm config
" vim: filetype=vifm :
" My config file for the vifm terminal file manager.
" ------------------------------------------------------------------------------
" This is the actual command used to start vi. The default is vim.
" If you would like to use emacs or emacsclient, you can use them.
" Since emacs is a GUI app and not a terminal app like vim, append the command
" with an ampersand (&).
set vicmd=nvim
" This makes vifm perform file operations on its own instead of relying on
" standard utilities like `cp`. While using `cp` and alike is a more universal
" solution, it's also much slower when processing large amounts of files and
" doesn't support progress measuring.
set syscalls
" Trash Directory
" The default is to move files that are deleted with dd or :d to
" the trash directory. If you change this you will not be able to move
" files by deleting them and then using p to put the file in the new location.
" I recommend not changing this until you are familiar with vifm.
" This probably shouldn't be an option.
set trash
" This is how many directories to store in the directory history.
set history=100
" Automatically resolve symbolic links on l or Enter.
set nofollowlinks
" With this option turned on you can run partially entered commands with
" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>).
" set fastrun
" Natural sort of (version) numbers within text.
set sortnumbers
" Maximum number of changes that can be undone.
set undolevels=100
" If you installed the vim.txt help file set vimhelp.
" If would rather use a plain text help file set novimhelp.
set novimhelp
" If you would like to run an executable file when you
" press return on the file name set this.
set norunexec
" Selected color scheme
" The following line will cause issues if using vifm.vim with regular vim.
" Either use neovim or comment out the following line.
colorscheme gruvbox
" Format for displaying time in file list. For example:
" TIME_STAMP_FORMAT=%m/%d-%H:%M
" See man date or man strftime for details.
set timefmt=%m/%d\ %H:%M
" Show list of matches on tab completion in command-line mode
set wildmenu
" Display completions in a form of popup with descriptions of the matches
set wildstyle=popup
" Display suggestions in normal, visual and view modes for keys, marks and
" registers (at most 5 files). In other view, when available.
set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
" Ignore case in search patterns unless it contains at least one uppercase
" letter
set ignorecase
set smartcase
" Don't highlight search results automatically
set nohlsearch
" Use increment searching (search while typing)
set incsearch
" Try to leave some space from cursor to upper/lower border in lists
set scrolloff=4
" Don't do too many requests to slow file systems
if !has('win')
set slowfs=curlftpfs
endif
" Set custom status line look
set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d "
" Set line numbers to show
" ------------------------------------------------------------------------------
" :mark mark /full/directory/path [filename]
mark h ~/
" ------------------------------------------------------------------------------
" :com[mand][!] command_name action
" The following macros can be used in a command
" %a is replaced with the user arguments.
" %c the current file under the cursor.
" %C the current file under the cursor in the other directory.
" %f the current selected file, or files.
" %F the current selected file, or files in the other directory.
" %b same as %f %F.
" %d the current directory name.
" %D the other window directory name.
" %m run the command in a menu window
command! df df -h %m 2> /dev/null
command! diff vim -d %f %F
command! zip zip -r %f.zip %f
command! run !! ./%f
command! make !!make %a
command! mkcd :mkdir %a | cd %a
command! vgrep vim "+grep %a"
command! reload :write | restart
" ------------------------------------------------------------------------------
" The file type is for the default programs to be used with
" a file extension.
" :filetype pattern1,pattern2 defaultprogram,program2
" :fileviewer pattern1,pattern2 consoleviewer
" The other programs for the file type can be accessed with the :file command
" The command macros %f, %F, %d, %F may be used in the commands.
" The %a macro is ignored. To use a % you must put %%.
" For automated FUSE mounts, you must register an extension with :file[x]type
" in one of following formats:
"
" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables
" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime.
" A sample line might look like this:
" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
"
" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables
" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime.
" A sample line might look like this:
" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
" %PARAM value is filled from the first line of file (whole line).
" Example first line for SshMount filetype: root@127.0.0.1:/
"
" You can also add %CLEAR if you want to clear screen before running FUSE
" program.
" Pdf and cbz
filextype *.cbz,*.pdf zathura %c %i &, apvlv %c, xpdf %c
fileviewer *.pdf
\ vifmimg pdf %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" PostScript
filextype *.ps,*.eps,*.ps.gz
\ {View in zathura}
\ zathura %f,
\ {View in gv}
\ gv %c %i &,
" Djvu
filextype *.djvu
\ {View in zathura}
\ zathura %f,
\ {View in apvlv}
\ apvlv %f,
fileviewer *.djvu
\ vifmimg djvu %px %py %pw %ph %c
\ %pc
\ vifmimg clear
fileviewer *.epub
\ vifmimg epub %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" Audio
filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus
\ {Play using mpv}
\ mpv %f,
fileviewer *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus
\ vifmimg audio %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" Video
filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
\*.as[fx]
\ {View using mplayer}
\ mpv %f,
fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
\*.as[fx]
\ vifmimg video %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" Web
filextype *.html,*.htm
\ {Open with emacs}
\ emacsclient -c %c &,
\ {Open with vim}
\ vim %c &,
\ {Open with dwb}
\ dwb %f %i &,
\ {Open with firefox}
\ firefox %f &,
\ {Open with uzbl}
\ uzbl-browser %f %i &,
filetype *.html,*.htm links, lynx
" Object
filetype *.o nm %f | less
" Man page
filetype *.[1-8] man ./%c
fileviewer *.[1-8] man ./%c | col -b
" Images
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp
\ {View in imv}
\ imv %f &,
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm,*.gif,*.webp
\ vifmimg draw %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" Fonts
fileviewer *.ttf, *.otf
\ vifmimg font %px %py %pw %ph %c
\ %pc
\ vifmimg clear
" OpenRaster
filextype *.ora
\ {Edit in MyPaint}
\ mypaint %f,
" Mindmap
filextype *.vym
\ {Open with VYM}
\ vym %f &,
" MD5
filetype *.md5
\ {Check MD5 hash sum}
\ md5sum -c %f %S,
" SHA1
filetype *.sha1
\ {Check SHA1 hash sum}
\ sha1sum -c %f %S,
" SHA256
filetype *.sha256
\ {Check SHA256 hash sum}
\ sha256sum -c %f %S,
" SHA512
filetype *.sha512
\ {Check SHA512 hash sum}
\ sha512sum -c %f %S,
" GPG signature
filetype *.asc
\ {Check signature}
\ !!gpg --verify %c,
" Torrent
filetype *.torrent qbittorrent %f &
fileviewer *.torrent dumptorrent -v %c
" Rnote
filetype *.rnote flatpak run com.github.flxzt.rnote %f &
" FuseZipMount
filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg
\ {Mount with fuse-zip}
\ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
\ {View contents}
\ zip -sf %c | less,
\ {Extract here}
\ tar -xf %c,
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c
" ArchiveMount
filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz
\ {Mount with archivemount}
\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
fileviewer *.tgz,*.tar.gz tar -tzf %c
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
fileviewer *.tar.txz,*.txz xz --list %c
fileviewer *.tar tar -tf %c
" Rar2FsMount and rar archives
filetype *.rar
\ {Mount with rar2fs}
\ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
fileviewer *.rar unrar v %c
" IsoMount
filetype *.iso
\ {Mount with fuseiso}
\ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
" SshMount
filetype *.ssh
\ {Mount with sshfs}
\ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
" FtpMount
filetype *.ftp
\ {Mount with curlftpfs}
\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND,
" Fuse7z and 7z archives
filetype *.7z
\ {Mount with fuse-7z}
\ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
fileviewer *.7z 7z l %c
" Office files
filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx flatpak run org.libreoffice.LibreOffice %f &
fileviewer *.doc catdoc %c
fileviewer *.docx docx2txt.pl %f -
" TuDu files
filetype *.tudu tudu -f %c
" Qt projects
filextype *.pro qtcreator %f &
" Directories
filextype */
\ {View in thunar}
\ Thunar %f &,
" Syntax highlighting in preview
"
" Explicitly set highlight type for some extensions
"
" 256-color terminal
" fileviewer *.[ch],*.[ch]pp highlight -O xterm256 -s dante --syntax c %c
" fileviewer Makefile,Makefile.* highlight -O xterm256 -s dante --syntax make %c
"
" 16-color terminal
" fileviewer *.c,*.h highlight -O ansi -s dante %c
"
" Or leave it for automatic detection
"
" fileviewer *[^/] pygmentize -O style=monokai -f console256 -g
" Displaying pictures in terminal
"
" fileviewer *.jpg,*.png shellpic %c
" Open all other files with default system programs (you can also remove all
" :file[x]type commands above to ensure they don't interfere with system-wide
" settings). By default all unknown files are opened with 'vi[x]cmd'
" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option
" for unknown file types.
" For *nix:
" filetype * xdg-open
" For OS X:
" filetype * open
" For Windows:
" filetype * start, explorer
" GETTING ICONS TO DISPLAY IN VIFM
" You need the next 14 lines!
" file types
set classify=' :dir:/, :exe:, :reg:, :link:'
" various file names
set classify+=' ::../::, ::*.sh::, ::*.[hc]pp::, ::*.[hc]::, ::/^copying|license$/::, ::.git/,,*.git/::, ::*.epub,,*.fb2,,*.djvu::, ::*.pdf::, ::*.htm,,*.html,,**.[sx]html,,*.xml::'
" archives
set classify+=' ::*.7z,,*.ace,,*.arj,,*.bz2,,*.cpio,,*.deb,,*.dz,,*.gz,,*.jar,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.rz,,*.tar,,*.taz,,*.tb2,,*.tbz,,*.tbz2,,*.tgz,,*.tlz,,*.trz,,*.txz,,*.tz,,*.tz2,,*.xz,,*.z,,*.zip,,*.zoo::'
" images
set classify+=' ::*.bmp,,*.gif,,*.jpeg,,*.jpg,,*.ico,,*.png,,*.ppm,,*.svg,,*.svgz,,*.tga,,*.tif,,*.tiff,,*.xbm,,*.xcf,,*.xpm,,*.xspf,,*.xwd::'
" audio
set classify+=' ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::'
" media
set classify+=' ::*.avi,,*.ts,,*.axv,,*.divx,,*.m2v,,*.m4p,,*.m4v,,.mka,,*.mkv,,*.mov,,*.mp4,,*.flv,,*.mp4v,,*.mpeg,,*.mpg,,*.nuv,,*.ogv,,*.pbm,,*.pgm,,*.qt,,*.vob,,*.wmv,,*.xvid::'
" office files
set classify+=' ::*.doc,,*.docx::, ::*.xls,,*.xls[mx]::, ::*.pptx,,*.ppt::'
" ------------------------------------------------------------------------------
" What should be saved automatically between vifm runs
" Like in previous versions of vifm
" set vifminfo=options,filetypes,commands,bookmarks,dhistory,state,cs
" Like in vi
set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
\phistory,fhistory,dirstack,registers,bookmarks,bmarks
" ------------------------------------------------------------------------------
" Examples of configuring both panels
" Customize view columns a bit (enable ellipsis for truncated file names)
"
" set viewcolumns=-{name}..,6{}.
" Filter-out build and temporary files
"
" filter! /^.*\.(lo|o|d|class|py[co])$|.*~$/
" ------------------------------------------------------------------------------
" Sample mappings
"Open all images in current directory in sxiv thumbnail mode
nnoremap sx :!sxiv -t %d & <cr>
"Open selected images in gimp
nnoremap gp :!gimp %f & <cr>
" Start shell in current directory
nnoremap s :shell<cr>
" Display sorting dialog
nnoremap S :sort<cr>
" Toggle visibility of preview window
nnoremap w :view<cr>
vnoremap w :view<cr>gv
" Open file in the background using its default program
nnoremap gb :file &<cr>l
" Yank current directory path into the clipboard
nnoremap yd :!echo %d | xclip %i<cr>
" Yank current file path into the clipboard
nnoremap yf :!echo %c:p | xclip %i<cr>
" Mappings for faster renaming
nnoremap I cw<c-a>
nnoremap cc cw<c-u>
nnoremap A cw
" Open console in current directory
nnoremap ,t :!xterm &<cr>
" Open editor to edit vifmrc and apply settings after returning to vifm
nnoremap ,c :write | edit $MYVIFMRC | restart<cr>
" Open gvim to edit vifmrc
nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr>
" Toggle wrap setting on ,w key
nnoremap ,w :set wrap!<cr>
" Example of standard two-panel file managers mappings
nnoremap <f3> :!less %f<cr>
nnoremap <f4> :edit<cr>
nnoremap <f5> :copy<cr>
nnoremap <f6> :move<cr>
nnoremap <f7> :mkdir<space>
nnoremap <f8> :delete<cr>
" ------------------------------------------------------------------------------
" Various customization examples
" Use ag (the silver searcher) instead of grep
"
" set grepprg='ag --line-numbers %i %a %s'
" Add additional place to look for executables
"
" let $PATH = $HOME.'/bin/fuse:'.$PATH
" Block particular shortcut
"
" nnoremap <left> <nop>
" Export IPC name of current instance as environment variable and use it to
" communicate with the instance later.
"
" It can be used in some shell script that gets run from inside vifm, for
" example, like this:
" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"
"
" let $VIFM_SERVER_NAME = v:servername

View file

@ -1,12 +1,36 @@
{ {
"position": "left", "position": "top",
"spacing": 3, "height": 28,
"layer": "top", "layer": "top",
// Choose the order of the modules // Modules order
"modules-left": ["hyprland/workspaces"],
// "modules-center": ["clock"], "modules-left": [
"modules-right": ["hyprland/language", "pulseaudio", "backlight", "battery", "custom/powerprofiles", "network", "clock"], "hyprland/workspaces"
],
// "modules-center": [
// "hyprland/window"
// ],
"modules-right": [
"custom/arrow1",
"hyprland/language",
"custom/arrow2",
"pulseaudio",
"custom/arrow3",
"backlight",
"custom/arrow4",
"idle_inhibitor",
"custom/powerprofiles",
"battery",
"custom/arrow5",
"network",
"custom/arrow6",
"clock"
],
// Modules
"hyprland/workspaces": { "hyprland/workspaces": {
"on-click": "activate", "on-click": "activate",
@ -15,32 +39,41 @@
"on-scroll-down": "hyprctl dispatch workspace e-1", "on-scroll-down": "hyprctl dispatch workspace e-1",
"format": "{icon}", "format": "{icon}",
"format-icons": { "format-icons": {
"1": "\udb80\udd69", "1": "\udb80\udd69 cde",
"2": "\udb82\uddad", "2": "\udb82\uddad tbx",
"3": "\udb80\ude56", "3": "\udb80\ude56 fle",
"4": "\udb81\udd9f", "4": "\udb81\udd9f web",
"5": "\udb80\udf6a", "5": "\udb80\udf6a cht",
"6": "\udb83\udcb8", "6": "\udb83\udcb8 aud",
"7": "\udb82\udfdc", "7": "\udb82\udfdc vid",
"8": "\udb82\udd76", "8": "\udb82\udd76 img",
"9": "\udb82\uddee", "9": "\udb82\uddee doc",
"10": "\udb83\ude3f", "10": "\udb83\ude3f gme",
"urgent": "\uf12a", "urgent": "\uf12a",
"focused": "\uf192", "focused": "\uf192",
"default": "\uf444" "default": "\uf444"
} }
}, },
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\uea71",
"deactivated": "\ueabc"
}
},
"hyprland/language": { "hyprland/language": {
"format": "{}", "format": "\udb80\udf0c {}",
"format-en": "US", "format-en": "US",
"format-es": "ES", "format-es": "ES",
"on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next",
}, },
"clock": { "clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%H\n--\n%M}", "format": "\udb82\udd54 {:%H:%M}",
"format-alt": "{:%y\n--\n%m\n--\n%d}" "format-alt": "\udb80\udcf5 {:%Y-%m-%d}"
}, },
"backlight": { "backlight": {
@ -65,10 +98,10 @@
"critical": 15 "critical": 15
}, },
"format": "{icon}", "format": "{icon}",
"format-charging": "{icon}\n\n\udb81\udea5", "format-charging": "{icon} \udb81\udea5",
"format-plugged": "{icon}\n\n\udb81\udea5", "format-plugged": "{icon} \udb81\udea5",
"format-critical": "{icon}\n\n\udb84\ude38", "format-critical": "{icon} \udb84\ude38",
"format-warning": "{icon}\n\n\udb84\ude38", "format-warning": "{icon} \udb84\ude38",
"format-icons": [ "format-icons": [
"\udb80\udc7a", "\udb80\udc7a",
"\udb80\udc7c", "\udb80\udc7c",
@ -89,11 +122,12 @@
}, },
"pulseaudio": { "pulseaudio": {
"scroll-step": 5, // %, can be a float "scroll-step": 1, // %, can be a float
"format": "{icon}\n\n{format_source}", "tooltip-format": "{volume}% - {desc}",
"format-bluetooth": "{icon}\n\n\udb80\udcaf\n\n{format_source}", "format": "{icon} {format_source}",
"format-bluetooth-muted": "\udb81\udd81\n\n{icon}\n\n\udb80\udcaf\n\n{format_source}", "format-bluetooth": "{icon}\udb80\udcaf {format_source}",
"format-muted": "\udb81\udd81\n\n{format_source}", "format-bluetooth-muted": "\udb81\udd81 {icon}\udb80\udcaf {format_source}",
"format-muted": "\udb81\udd81 {format_source}",
"format-source": "\udb80\udf6c", "format-source": "\udb80\udf6c",
"format-source-muted": "\udb80\udf6d", "format-source-muted": "\udb80\udf6d",
"format-icons": { "format-icons": {
@ -105,16 +139,44 @@
"car": "\udb80\udd0b", "car": "\udb80\udd0b",
"default": ["\udb81\udd7f", "\udb81\udd80", "\udb81\udd7e"] "default": ["\udb81\udd7f", "\udb81\udd80", "\udb81\udd7e"]
}, },
"tooltip-format": "{volume}% - {desc}", "on-click": "kitty --class pulsemixer pulsemixer"
"on-click": "pavucontrol"
}, },
"network": { "network": {
"format-wifi": "\udb81\udda9", "format-wifi": "\udb81\udda9 {essid}",
"format-ethernet": "\udb80\ude00", "format-ethernet": "\udb80\ude00",
"format-disconnected": "\udb81\uddaa", "format-disconnected": "\udb81\uddaa Disconnected",
"tooltip-format": "{signalStrength}% - {essid}", "tooltip-format": "{signalStrength}% - {ifname}: {ipaddr}/{cidr}",
"on-click": "$HOME/.config/fuzzel/scripts/fuzz_wifi" "on-click": "$HOME/.config/fuzzel/scripts/fuzz_wifi"
}, },
}
"custom/arrow1": {
"format": "",
"tooltip": false
},
"custom/arrow2": {
"format": "",
"tooltip": false
},
"custom/arrow3": {
"format": "",
"tooltip": false
},
"custom/arrow4": {
"format": "",
"tooltip": false
},
"custom/arrow5": {
"format": "",
"tooltip": false
},
"custom/arrow6": {
"format": "",
"tooltip": false
},
}

View file

@ -1,33 +1,69 @@
/* Styles */
/* Colors (gruvbox) */
@define-color black #1d2021;
@define-color red #cc241d;
@define-color green #98971a;
@define-color yellow #d79921;
@define-color orange #fe8019;
@define-color blue #458588;
@define-color purple #b16286;
@define-color aqua #689d6a;
@define-color gray #a89984;
/* Brighter variants */
@define-color brgray #928374;
@define-color brred #fb4934;
@define-color brgreen #b8bb26;
@define-color bryellow #fabd2f;
@define-color brblue #83a598;
@define-color brpurple #d3869b;
@define-color braqua #8ec07c;
@define-color white #ebdbb2;
@define-color bg2 #504945;
/* Darker variants */
@define-color drred #9d0006;
@define-color drgreen #79740e;
@define-color drpurple #8f3f71;
@define-color drorange #af3a03;
@define-color drgray #3c3836;
@define-color drblue #076678;
@define-color draqua #427b58;
@define-color dryellow #b57614;
/* Color definitions for modules */
@define-color critical @brred;
@define-color unfocused @braqua;
@define-color focused @brred;
@define-color inactive @drgray;
@define-color idle @drgreen;
@define-color backlight @dryellow;
@define-color pulseaudio @drblue;
@define-color powerprofile @drgreen;
@define-color network @drred;
@define-color language @drpurple;
@define-color battery @drgreen;
@define-color clock @draqua;
@define-color wbackground rgba(29, 32, 33, 0.95);
/* Keyframes */
@keyframes blink {
to {
color: @critical;
}
}
/* Reset all styles */
* { * {
margin-top: 3px; border: none;
margin-bottom: 3px; border-radius: 0;
} min-height: 0;
padding: 0;
window#waybar { box-shadow: none;
background-color: rgb(29, 32, 33); text-shadow: none;
border-right: 3px solid #504945;
color: #ebdbb2;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
} }
button { button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent; box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none; border: none;
border-radius: 0; border-radius: 0;
} }
@ -37,92 +73,65 @@ button:hover {
background: inherit; background: inherit;
} }
#workspaces { /* The whole bar */
font-family: Symbols Nerd Font Mono; window#waybar {
font-size: 24px; background-color: @wbackground;
margin-right: 5px; font-family: Symbols Nerd Font Mono, Mononoki Nerd Font;
margin-left: 5px; font-size: 16px;
} }
/* Workspaces */
#workspaces button { #workspaces button {
padding: 0 3px; border-top: 2px solid @inactive;
background-color: transparent; padding: 0 8px;
color: #ebdbb2; color: @white;
} }
#workspaces button.active { #workspaces button.active {
color: #fb4934; background-color: @inactive;
border-radius: 5px; border-top: 2px solid @focused;
color: @focused;
transition-property: color;
transition-duration: .5s;
} }
#workspaces button:hover { #workspaces button:hover {
color: #8ec07c; color: @unfocused;
border-radius: 5px; transition-property: color;
transition-duration: .5s;
} }
#workspaces button.urgent { #workspaces button.urgent {
background-color: #eb4d4b; background-color: @inactive;
border-radius: 5px; animation-name: blink;
} animation-duration: 0.5s;
animation-timing-function: linear;
#mode { animation-iteration-count: 3;
background-color: #64727D; animation-direction: alternate;
border-bottom: 3px solid #ffffff;
} }
/* All modules */
#clock, #clock,
#custom-powerprofiles, #custom-powerprofiles,
#battery, #battery,
#backlight, #backlight,
#network, #network,
#pulseaudio, #pulseaudio,
#language, #idle_inhibitor,
#mode { #language {
font-family: Symbols Nerd Font Mono, mononoki Nerd Font; padding-right: 1px;
font-size: 18px; padding-left: 4px;
padding: 8px 8px;
color: #ebdbb2;
border-radius: 4px;
margin-left: 10px;
margin-right: 12px;
} }
#window, /* Individual modules */
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */ #battery, #battery.charging, #battery.plugged {
.modules-left > widget:first-child > #workspaces { background-color: @battery;
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
background-color: #504945;
}
#battery {
background-color: #79740e;
}
#battery.charging, #battery.plugged {
background-color: #98971a;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
background-color: #9d0006; color: @white;
animation-name: blink; animation-name: blink;
animation-duration: 0.5s; animation-duration: 0.5s;
animation-timing-function: linear; animation-timing-function: linear;
@ -131,33 +140,77 @@ button:hover {
} }
label:focus { label:focus {
background-color: #ebdbb2; background-color: @white;
} }
#backlight { #backlight {
background-color: #b57614; background-color: @backlight;
} }
#network { #network, #network.disconnected {
background-color: #9d0006; background-color: @network;
} }
#network.disconnected { #pulseaudio, #pulseaudio.muted {
background-color: #9d0006; background-color: @pulseaudio;
}
#pulseaudio {
background-color: #076678;
}
#pulseaudio.muted {
background-color: #076678;
} }
#language { #language {
background-color: #8f3f71; background-color: @language;
} }
#custom-powerprofiles { #custom-powerprofiles {
background-color: #427b58; background-color: @powerprofile;
} }
#clock {
background-color: @clock;
padding-right: 10px;
}
#idle_inhibitor {
background-color: @battery;
}
/* All Modeline arrows */
#custom-arrow1,
#custom-arrow2,
#custom-arrow3,
#custom-arrow4,
#custom-arrow5,
#custom-arrow6 {
font-size: 20pt;
}
/* Individual Modeline arrows */
#custom-arrow1 {
background: transparent;
color: @language;
}
#custom-arrow2 {
background: @language;
color: @pulseaudio;
}
#custom-arrow3 {
background: @pulseaudio;
color: @backlight;
}
#custom-arrow4 {
background: @backlight;
color: @battery;
}
#custom-arrow5 {
background: @battery;
color: @network;
}
#custom-arrow6 {
background: @network;
color: @clock;
}

View file

@ -0,0 +1,309 @@
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# 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]
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" },
{ on = [ "q" ], run = "quit", desc = "Exit the process" },
{ on = [ "Q" ], run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
{ on = [ "<C-q>" ], run = "close", desc = "Close the current tab, or quit if it is last tab" },
{ on = [ "<C-z>" ], run = "suspend", desc = "Suspend the process" },
# Navigation
{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "j" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "K" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
{ on = [ "J" ], run = "arrow 5", desc = "Move cursor down 5 lines" },
{ on = [ "<S-Up>" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
{ on = [ "<S-Down>" ], run = "arrow 5", desc = "Move cursor down 5 lines" },
{ on = [ "<C-u>" ], run = "arrow -50%", desc = "Move cursor up half page" },
{ on = [ "<C-d>" ], run = "arrow 50%", desc = "Move cursor down half page" },
{ on = [ "<C-b>" ], run = "arrow -100%", desc = "Move cursor up one page" },
{ on = [ "<C-f>" ], run = "arrow 100%", desc = "Move cursor down one page" },
{ on = [ "<C-PageUp>" ], run = "arrow -50%", desc = "Move cursor up half page" },
{ on = [ "<C-PageDown>" ], run = "arrow 50%", desc = "Move cursor down half page" },
{ on = [ "<PageUp>" ], run = "arrow -100%", desc = "Move cursor up one page" },
{ on = [ "<PageDown>" ], run = "arrow 100%", desc = "Move cursor down one page" },
{ on = [ "h" ], run = "leave", desc = "Go back to the parent directory" },
{ on = [ "l" ], run = "enter", desc = "Enter the child directory" },
{ on = [ "H" ], run = "back", desc = "Go back to the previous directory" },
{ on = [ "L" ], run = "forward", desc = "Go forward to the next directory" },
{ on = [ "<A-k>" ], run = "seek -5", desc = "Seek up 5 units in the preview" },
{ on = [ "<A-j>" ], run = "seek 5", desc = "Seek down 5 units in the preview" },
{ on = [ "<A-PageUp>" ], run = "seek -5", desc = "Seek up 5 units in the preview" },
{ on = [ "<A-PageDown>" ], run = "seek 5", desc = "Seek down 5 units in the preview" },
{ on = [ "<Up>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<Down>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<Left>" ], run = "leave", desc = "Go back to the parent directory" },
{ on = [ "<Right>" ], run = "enter", desc = "Enter the child directory" },
{ on = [ "g", "g" ], run = "arrow -99999999", desc = "Move cursor to the top" },
{ on = [ "G" ], run = "arrow 99999999", desc = "Move cursor to the bottom" },
# Selection
{ on = [ "<Space>" ], run = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" },
{ on = [ "v" ], run = "visual_mode", desc = "Enter visual mode (selection mode)" },
{ on = [ "V" ], run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
{ on = [ "<C-a>" ], run = "select_all --state=true", desc = "Select all files" },
{ on = [ "<C-r>" ], run = "select_all --state=none", desc = "Inverse selection of all files" },
# Operation
{ on = [ "o" ], run = "open", desc = "Open the selected files" },
{ on = [ "O" ], run = "open --interactive", desc = "Open the selected files interactively" },
{ on = [ "<Enter>" ], run = "open", desc = "Open the selected files" },
{ on = [ "<C-Enter>" ], run = "open --interactive", desc = "Open the selected files interactively" },
{ on = [ "y" ], run = "yank", desc = "Copy the selected files" },
{ on = [ "Y" ], run = "unyank", desc = "Cancel the yank status of files" },
{ on = [ "x" ], run = "yank --cut", desc = "Cut the selected files" },
{ on = [ "X" ], run = "unyank", desc = "Cancel the yank status of files" },
{ on = [ "p" ], run = "paste", desc = "Paste the files" },
{ on = [ "P" ], run = "paste --force", desc = "Paste the files (overwrite if the destination exists)" },
{ on = [ "-" ], run = "link", desc = "Symlink the absolute path of files" },
{ on = [ "_" ], run = "link --relative", desc = "Symlink the relative path of files" },
{ on = [ "d" ], run = "remove", desc = "Move the files to the trash" },
{ on = [ "D" ], run = "remove --permanently", desc = "Permanently delete the files" },
{ on = [ "a" ], run = "create", desc = "Create a file or directory (ends with / for directories)" },
{ on = [ "r" ], run = "rename --cursor=before_ext", desc = "Rename a file or directory" },
{ on = [ ";" ], run = "shell", desc = "Run a shell command" },
{ on = [ ":" ], run = "shell --block", desc = "Run a shell command (block the UI until the command finishes)" },
{ on = [ "." ], run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
{ on = [ "s" ], run = "search fd", desc = "Search files by name using fd" },
{ on = [ "S" ], run = "search rg", desc = "Search files by content using ripgrep" },
{ on = [ "<C-s>" ], run = "search none", desc = "Cancel the ongoing search" },
{ on = [ "z" ], run = "jump zoxide", desc = "Jump to a directory using zoxide" },
{ on = [ "Z" ], run = "jump fzf", desc = "Jump to a directory, or reveal a file using fzf" },
# Linemode
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" },
{ on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" },
# Copy
{ on = [ "c", "c" ], run = "copy path", desc = "Copy the absolute path" },
{ on = [ "c", "d" ], run = "copy dirname", desc = "Copy the path of the parent directory" },
{ on = [ "c", "f" ], run = "copy filename", desc = "Copy the name of the file" },
{ on = [ "c", "n" ], run = "copy name_without_ext", desc = "Copy the name of the file without the extension" },
# Filter
{ on = [ "f" ], run = "filter --smart", desc = "Filter the files" },
# Find
{ on = [ "/" ], run = "find --smart", desc = "Find next file" },
{ on = [ "?" ], run = "find --previous --smart", desc = "Find previous file" },
{ on = [ "n" ], run = "find_arrow", desc = "Go to next found file" },
{ on = [ "N" ], run = "find_arrow --previous", desc = "Go to previous found file" },
# Sorting
{ on = [ ",", "m" ], run = "sort modified --dir-first", desc = "Sort by modified time" },
{ on = [ ",", "M" ], run = "sort modified --reverse --dir-first", desc = "Sort by modified time (reverse)" },
{ on = [ ",", "c" ], run = "sort created --dir-first", desc = "Sort by created time" },
{ on = [ ",", "C" ], run = "sort created --reverse --dir-first", desc = "Sort by created time (reverse)" },
{ on = [ ",", "e" ], run = "sort extension --dir-first", desc = "Sort by extension" },
{ on = [ ",", "E" ], run = "sort extension --reverse --dir-first", desc = "Sort by extension (reverse)" },
{ on = [ ",", "a" ], run = "sort alphabetical --dir-first", desc = "Sort alphabetically" },
{ on = [ ",", "A" ], run = "sort alphabetical --reverse --dir-first", desc = "Sort alphabetically (reverse)" },
{ on = [ ",", "n" ], run = "sort natural --dir-first", desc = "Sort naturally" },
{ on = [ ",", "N" ], run = "sort natural --reverse --dir-first", desc = "Sort naturally (reverse)" },
{ on = [ ",", "s" ], run = "sort size --dir-first", desc = "Sort by size" },
{ on = [ ",", "S" ], run = "sort size --reverse --dir-first", desc = "Sort by size (reverse)" },
# Tabs
{ on = [ "t" ], run = "tab_create --current", desc = "Create a new tab using the current path" },
{ on = [ "1" ], run = "tab_switch 0", desc = "Switch to the first tab" },
{ on = [ "2" ], run = "tab_switch 1", desc = "Switch to the second tab" },
{ on = [ "3" ], run = "tab_switch 2", desc = "Switch to the third tab" },
{ on = [ "4" ], run = "tab_switch 3", desc = "Switch to the fourth tab" },
{ on = [ "5" ], run = "tab_switch 4", desc = "Switch to the fifth tab" },
{ on = [ "6" ], run = "tab_switch 5", desc = "Switch to the sixth tab" },
{ on = [ "7" ], run = "tab_switch 6", desc = "Switch to the seventh tab" },
{ on = [ "8" ], run = "tab_switch 7", desc = "Switch to the eighth tab" },
{ on = [ "9" ], run = "tab_switch 8", desc = "Switch to the ninth tab" },
{ on = [ "[" ], run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
{ on = [ "]" ], run = "tab_switch 1 --relative", desc = "Switch to the next tab" },
{ on = [ "{" ], run = "tab_swap -1", desc = "Swap the current tab with the previous tab" },
{ on = [ "}" ], run = "tab_swap 1", desc = "Swap the current tab with the next tab" },
# Tasks
{ on = [ "w" ], run = "tasks_show", desc = "Show the tasks manager" },
# Goto
{ on = [ "g", "h" ], run = "cd ~", desc = "Go to the home directory" },
{ on = [ "g", "c" ], run = "cd ~/.config", desc = "Go to the config directory" },
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
{ on = [ "g", "t" ], run = "cd /tmp", desc = "Go to the temporary directory" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to a directory interactively" },
# Help
{ on = [ "~" ], run = "help", desc = "Open help" },
]
[tasks]
keymap = [
{ on = [ "<Esc>" ], run = "close", desc = "Hide the task manager" },
{ on = [ "<C-[>" ], run = "close", desc = "Hide the task manager" },
{ on = [ "<C-q>" ], run = "close", desc = "Hide the task manager" },
{ on = [ "w" ], run = "close", desc = "Hide the task manager" },
{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "j" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<Up>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<Down>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<Enter>" ], run = "inspect", desc = "Inspect the task" },
{ on = [ "x" ], run = "cancel", desc = "Cancel the task" },
{ on = [ "~" ], run = "help", desc = "Open help" }
]
[select]
keymap = [
{ on = [ "<Esc>" ], run = "close", desc = "Cancel selection" },
{ on = [ "<C-[>" ], run = "close", desc = "Cancel selection" },
{ on = [ "<C-q>" ], run = "close", desc = "Cancel selection" },
{ on = [ "<Enter>" ], run = "close --submit", desc = "Submit the selection" },
{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "j" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "K" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
{ on = [ "J" ], run = "arrow 5", desc = "Move cursor down 5 lines" },
{ on = [ "<Up>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<Down>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<S-Up>" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
{ on = [ "<S-Down>" ], run = "arrow 5", desc = "Move cursor down 5 lines" },
{ on = [ "~" ], run = "help", desc = "Open help" }
]
[input]
keymap = [
{ on = [ "<C-q>" ], run = "close", desc = "Cancel input" },
{ on = [ "<Enter>" ], run = "close --submit", desc = "Submit the input" },
{ on = [ "<Esc>" ], run = "escape", desc = "Go back the normal mode, or cancel input" },
{ on = [ "<C-[>" ], run = "escape", desc = "Go back the normal mode, or cancel input" },
# Mode
{ on = [ "i" ], run = "insert", desc = "Enter insert mode" },
{ on = [ "a" ], run = "insert --append", desc = "Enter append mode" },
{ on = [ "I" ], run = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" },
{ on = [ "A" ], run = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" },
{ on = [ "v" ], run = "visual", desc = "Enter visual mode" },
{ on = [ "V" ], run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },
# Character-wise movement
{ on = [ "h" ], run = "move -1", desc = "Move back a character" },
{ on = [ "l" ], run = "move 1", desc = "Move forward a character" },
{ on = [ "<Left>" ], run = "move -1", desc = "Move back a character" },
{ on = [ "<Right>" ], run = "move 1", desc = "Move forward a character" },
{ on = [ "<C-b>" ], run = "move -1", desc = "Move back a character" },
{ on = [ "<C-f>" ], run = "move 1", desc = "Move forward a character" },
# Word-wise movement
{ on = [ "b" ], run = "backward", desc = "Move back to the start of the current or previous word" },
{ on = [ "w" ], run = "forward", desc = "Move forward to the start of the next word" },
{ on = [ "e" ], run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
{ on = [ "<A-b>" ], run = "backward", desc = "Move back to the start of the current or previous word" },
{ on = [ "<A-f>" ], run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
# Line-wise movement
{ on = [ "0" ], run = "move -999", desc = "Move to the BOL" },
{ on = [ "$" ], run = "move 999", desc = "Move to the EOL" },
{ on = [ "<C-a>" ], run = "move -999", desc = "Move to the BOL" },
{ on = [ "<C-e>" ], run = "move 999", desc = "Move to the EOL" },
{ on = [ "<Home>" ], run = "move -999", desc = "Move to the BOL" },
{ on = [ "<End>" ], run = "move 999", desc = "Move to the EOL" },
# Delete
{ on = [ "<Backspace>" ], run = "backspace", desc = "Delete the character before the cursor" },
{ on = [ "<Delete>" ], run = "backspace --under", desc = "Delete the character under the cursor" },
{ on = [ "<C-h>" ], run = "backspace", desc = "Delete the character before the cursor" },
{ on = [ "<C-d>" ], run = "backspace --under", desc = "Delete the character under the cursor" },
# Kill
{ on = [ "<C-u>" ], run = "kill bol", desc = "Kill backwards to the BOL" },
{ on = [ "<C-k>" ], run = "kill eol", desc = "Kill forwards to the EOL" },
{ on = [ "<C-w>" ], run = "kill backward", desc = "Kill backwards to the start of the current word" },
{ on = [ "<A-d>" ], run = "kill forward", desc = "Kill forwards to the end of the current word" },
# Cut/Yank/Paste
{ on = [ "d" ], run = "delete --cut", desc = "Cut the selected characters" },
{ on = [ "D" ], run = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" },
{ on = [ "c" ], run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
{ on = [ "C" ], run = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" },
{ on = [ "x" ], run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },
{ on = [ "y" ], run = "yank", desc = "Copy the selected characters" },
{ on = [ "p" ], run = "paste", desc = "Paste the copied characters after the cursor" },
{ on = [ "P" ], run = "paste --before", desc = "Paste the copied characters before the cursor" },
# Undo/Redo
{ on = [ "u" ], run = "undo", desc = "Undo the last operation" },
{ on = [ "<C-r>" ], run = "redo", desc = "Redo the last operation" },
# Help
{ on = [ "~" ], run = "help", desc = "Open help" }
]
[completion]
keymap = [
{ on = [ "<C-q>" ], run = "close", desc = "Cancel completion" },
{ on = [ "<Tab>" ], run = "close --submit", desc = "Submit the completion" },
{ on = [ "<Enter>" ], run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" },
{ on = [ "<A-k>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<A-j>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<Up>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<Down>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<C-p>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<C-n>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "~" ], run = "help", desc = "Open help" }
]
[help]
keymap = [
{ on = [ "<Esc>" ], run = "escape", desc = "Clear the filter, or hide the help" },
{ on = [ "<C-[>" ], run = "escape", desc = "Clear the filter, or hide the help" },
{ on = [ "q" ], run = "close", desc = "Exit the process" },
{ on = [ "<C-q>" ], run = "close", desc = "Hide the help" },
# Navigation
{ on = [ "k" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "j" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "K" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
{ on = [ "J" ], run = "arrow 5", desc = "Move cursor down 5 lines" },
{ on = [ "<Up>" ], run = "arrow -1", desc = "Move cursor up" },
{ on = [ "<Down>" ], run = "arrow 1", desc = "Move cursor down" },
{ on = [ "<S-Up>" ], run = "arrow -5", desc = "Move cursor up 5 lines" },
{ on = [ "<S-Down>" ], run = "arrow 5", desc = "Move cursor down 5 lines" },
# Filtering
{ on = [ "/" ], run = "filter", desc = "Apply a filter for the help items" },
]

View file

@ -0,0 +1,146 @@
# vim:fileencoding=utf-8:foldmethod=marker
# : Manager {{{
[manager]
cwd = { fg = "#83a598" }
# Hovered
hovered = { fg = "#282828", bg = "#83a598" }
preview_hovered = { underline = true }
# Find
find_keyword = { fg = "#b8bb26", italic = true }
find_position = { fg = "#fe8019", bg = "reset", italic = true }
# Marker
marker_selected = { fg = "#b8bb26", bg = "#b8bb26" }
marker_copied = { fg = "#b8bb26", bg = "#b8bb26" }
marker_cut = { fg = "#fb4934", bg = "#fb4934" }
# Tab
tab_active = { fg = "#282828", bg = "#504945" }
tab_inactive = { fg = "#a89984", bg = "#3c3836" }
tab_width = 1
# Border
border_symbol = "│"
border_style = { fg = "#665c54" }
# Highlighting
# syntect_theme = "~/.config/yazi/Gruvbox-Dark.tmTheme"
# : }}}
# : Status {{{
[status]
separator_open = ""
separator_close = ""
separator_style = { fg = "#3c3836", bg = "#3c3836" }
# Mode
mode_normal = { fg = "#282828", bg = "#A89984", bold = true }
mode_select = { fg = "#282828", bg = "#b8bb26", bold = true }
mode_unset = { fg = "#282828", bg = "#d3869b", bold = true }
# Progress
progress_label = { fg = "#ebdbb2", bold = true }
progress_normal = { fg = "#504945", bg = "#3c3836" }
progress_error = { fg = "#fb4934", bg = "#3c3836" }
# Permissions
permissions_t = { fg = "#504945" }
permissions_r = { fg = "#b8bb26" }
permissions_w = { fg = "#fb4934" }
permissions_x = { fg = "#b8bb26" }
permissions_s = { fg = "#665c54" }
# : }}}
# : Input {{{
[input]
border = { fg = "#504945" }
title = {}
value = {}
selected = { reversed = true }
# : }}}
# : Select {{{
[select]
border = { fg = "#504945" }
active = { fg = "#fe8019" }
inactive = {}
# : }}}
# : Tasks {{{
[tasks]
border = { fg = "#504945" }
title = {}
hovered = { underline = true }
# : }}}
# : Which {{{
[which]
mask = { bg = "#3c3836" }
cand = { fg = "#83a598" }
rest = { fg = "#928374" }
desc = { fg = "#fe8019" }
separator = "  "
separator_style = { fg = "#504945" }
# : }}}
# : Help {{{
[help]
on = { fg = "#fe8019" }
exec = { fg = "#83a598" }
desc = { fg = "#928374" }
hovered = { bg = "#504945", bold = true }
footer = { fg = "#3c3836", bg = "#a89984" }
# : }}}
# : File-specific styles {{{
[filetype]
rules = [
# Images
{ mime = "image/*", fg = "#83a598" },
# Videos
{ mime = "video/*", fg = "#b8bb26" },
{ mime = "audio/*", fg = "#b8bb26" },
# Archives
{ mime = "application/zip", fg = "#fe8019" },
{ mime = "application/gzip", fg = "#fe8019" },
{ mime = "application/x-tar", fg = "#fe8019" },
{ mime = "application/x-bzip", fg = "#fe8019" },
{ mime = "application/x-bzip2", fg = "#fe8019" },
{ mime = "application/x-7z-compressed", fg = "#fe8019" },
{ mime = "application/x-rar", fg = "#fe8019" },
# Fallback
{ name = "*", fg = "#a89984" },
{ name = "*/", fg = "#83a598" }
]
# : }}}

188
user/.config/yazi/yazi.toml Normal file
View file

@ -0,0 +1,188 @@
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# 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]
ratio = [ 1, 4, 3 ]
sort_by = "alphabetical"
sort_sensitive = false
sort_reverse = false
sort_dir_first = false
linemode = "none"
show_hidden = false
show_symlink = true
scrolloff = 5
[preview]
tab_size = 2
max_width = 600
max_height = 900
cache_dir = ""
image_filter = "triangle"
image_quality = 75
sixel_fraction = 15
ueberzug_scale = 1
ueberzug_offset = [ 0, 0, 0, 0 ]
[opener]
edit = [
{ run = '${EDITOR} "$@"', desc = "$EDITOR", block = true, for = "unix" },
]
open = [
{ run = 'xdg-open "$@"', desc = "Open", for = "linux" },
]
reveal = [
{ run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
]
extract = [
{ run = 'unar "$1"', desc = "Extract here", for = "unix" },
]
play = [
{ run = 'mpv "$@"', orphan = true, for = "unix" },
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
]
[open]
rules = [
{ name = "*/", use = [ "edit", "open", "reveal" ] },
{ mime = "text/*", use = [ "edit", "reveal" ] },
{ mime = "image/*", use = [ "open", "reveal" ] },
{ mime = "video/*", use = [ "play", "reveal" ] },
{ mime = "audio/*", use = [ "play", "reveal" ] },
{ mime = "inode/x-empty", use = [ "edit", "reveal" ] },
{ mime = "application/json", use = [ "edit", "reveal" ] },
{ mime = "*/javascript", use = [ "edit", "reveal" ] },
{ mime = "application/zip", use = [ "extract", "reveal" ] },
{ mime = "application/gzip", use = [ "extract", "reveal" ] },
{ mime = "application/x-tar", use = [ "extract", "reveal" ] },
{ mime = "application/x-bzip", use = [ "extract", "reveal" ] },
{ mime = "application/x-bzip2", use = [ "extract", "reveal" ] },
{ mime = "application/x-7z-compressed", use = [ "extract", "reveal" ] },
{ mime = "application/x-rar", use = [ "extract", "reveal" ] },
{ mime = "application/xz", use = [ "extract", "reveal" ] },
{ mime = "*", use = [ "open", "reveal" ] },
]
[tasks]
micro_workers = 10
macro_workers = 25
bizarre_retry = 5
image_alloc = 536870912 # 512MB
image_bound = [ 0, 0 ]
suppress_preload = false
[plugin]
preloaders = [
{ name = "*", cond = "!mime", run = "mime", multi = true, prio = "high" },
# Image
{ mime = "image/vnd.djvu", run = "noop" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
]
previewers = [
{ name = "*/", run = "folder", sync = true },
# Code
{ mime = "text/*", run = "code" },
{ mime = "*/xml", run = "code" },
{ mime = "*/javascript", run = "code" },
{ mime = "*/x-wine-extension-ini", run = "code" },
# JSON
{ mime = "application/json", run = "json" },
# Image
{ mime = "image/vnd.djvu", run = "noop" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Archive
{ mime = "application/zip", run = "archive" },
{ mime = "application/gzip", run = "archive" },
{ mime = "application/x-tar", run = "archive" },
{ mime = "application/x-bzip", run = "archive" },
{ mime = "application/x-bzip2", run = "archive" },
{ mime = "application/x-7z-compressed", run = "archive" },
{ mime = "application/x-rar", run = "archive" },
{ mime = "application/xz", run = "archive" },
# Fallback
{ name = "*", run = "file" },
]
[input]
# cd
cd_title = "Change directory:"
cd_origin = "top-center"
cd_offset = [ 0, 2, 50, 3 ]
# create
create_title = "Create:"
create_origin = "top-center"
create_offset = [ 0, 2, 50, 3 ]
# rename
rename_title = "Rename:"
rename_origin = "hovered"
rename_offset = [ 0, 1, 50, 3 ]
# trash
trash_title = "Move {n} selected file{s} to trash? (y/N)"
trash_origin = "top-center"
trash_offset = [ 0, 2, 50, 3 ]
# delete
delete_title = "Delete {n} selected file{s} permanently? (y/N)"
delete_origin = "top-center"
delete_offset = [ 0, 2, 50, 3 ]
# filter
filter_title = "Filter:"
filter_origin = "top-center"
filter_offset = [ 0, 2, 50, 3 ]
# find
find_title = [ "Find next:", "Find previous:" ]
find_origin = "top-center"
find_offset = [ 0, 2, 50, 3 ]
# search
search_title = "Search via {n}:"
search_origin = "top-center"
search_offset = [ 0, 2, 50, 3 ]
# shell
shell_title = [ "Shell:", "Shell (block):" ]
shell_origin = "top-center"
shell_offset = [ 0, 2, 50, 3 ]
# overwrite
overwrite_title = "Overwrite an existing file? (y/N)"
overwrite_origin = "top-center"
overwrite_offset = [ 0, 2, 50, 3 ]
# quit
quit_title = "{n} task{s} running, sure to quit? (y/N)"
quit_origin = "top-center"
quit_offset = [ 0, 2, 50, 3 ]
[select]
open_title = "Open with:"
open_origin = "hovered"
open_offset = [ 0, 1, 50, 7 ]
[which]
sort_by = "none"
sort_sensitive = false
sort_reverse = false
[log]
enabled = false
[headsup]