diff --git a/.config/lf/lfrc b/.config/lf/lfrc index 24cce76..7519123 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -1,25 +1,97 @@ -set ifs "\n" # 文件名含空格时用换行分隔 -set hidden # 显示隐藏文件 -set number # 显示行号 -set preview # 开启预览 -set previewer ~/.config/lf/pv.sh # 自定义预览脚本 -set icons # 显示图标 +# 设置显示隐藏文件 +set hidden true -# 常用快捷键 -map $lf -remote "send $id select $(fd -t f -t d . | fzf)" # 用 fzf 跳转 -map ${{ - # 复制当前文件绝对路径 - printf '%s\n' "$fx" | xclip -sel clip +# 文件名匹配时忽略大小写 +set ignorecase true + +# 启用 SIXEL 图像支持 +set sixel true + +# 设置按时间排序 +set sortby time + +# 显示行号 +set number +# 设置行号样式 +set numberfmt "\033[90m" + +# 设置界面边框样式 +set borderfmt "\033[90m" + +# 设置当前选中文本的样式 +set cursoractivefmt "\033[31;104m" + +# 设置父级目录的样式 +set cursorparentfmt "\033[31;103m" + +# 定义状态栏的显示格式 +set rulerfmt "%d |%a |%p |\033[7;31m %m \033[0m |\033[7;33m %c \033[0m |\033[7;35m %s \033[0m |\033[7;34m %f \033[0m |%i/%t" + +# 文件名含空格时用换行分隔 +set ifs "\n" + +# 开启预览 +set preview +# 自定义预览脚本 +set previewer ~/.config/lf/pv.sh + +# Ctrl+f 用fzf搜索当前目录中的文件 +map $lf -remote "send $id select \"$(fzf)\"" +# f 键使用fzf搜索当前目录及其子目录中的所有目录 +map f $lf -remote "send $id select \"$(find -type d 2>/dev/null | fzf)\"" +# J 键从书签文件中选择一个目录并切换到该目录 +map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)" +# . 键切换隐藏文件的显示状态 +map . set hidden! + +# 定义 fzf_search 命令 +cmd fzf_search ${{ + file=$(fzf) + if [ -n "$file" ]; then + lf -remote "send $id cd $(dirname "$file")" + lf -remote "send $id select $(basename "$file")" + fi }} -map &mimeopen "$f" & # 用系统默认程序打开 -# map D trash-put "$fx" # 移动到回收站(需安装 trash-put) -map cp -r "$fx" "$d" # 复制 -map mv -n "$fx" "$d" # 移动 -map mkdir # 新建目录(内置交互) -# map rm -rf "$fx" # 删除(慎用) +# Ctrl+s 打开fzf_search +map :fzf_search map j down map k up map l open map h updir +# Ctrl+w 退出 +map :quit + +# Ctrl+c 复制选中的文件或文件夹 +map :copy + +# Ctrl+v 粘贴 +map :paste + +# 定义建立目录命令 +cmd mkdir %{{ + IFS=" " + file="$*" + mkdir -p -- "$file" + lf -remote "send $id select \"$(printf '%s' "$file" | sed 's/\\/\\\\/g;s/"/\\"/g')\"" +}} +# M 打开建立目录命令 +map M push :mkdir + +# X 删除文件或目录 +map X delete + +# r 重命名 +map r :rename +# E 从原名字末尾开始重命名 +map E :rename; cmd-end +# H 从原名字开头开始重命名 +map H :rename; cmd-home + +# 启用目录缓存 +set dircache + +# 调整刷新频率 +set period 5 + diff --git a/.config/lf/pv.sh b/.config/lf/pv.sh index 66857da..914ef73 100755 --- a/.config/lf/pv.sh +++ b/.config/lf/pv.sh @@ -1,9 +1,19 @@ #!/bin/sh cmd pv %{{ - case "$(file -Lb --mime-type "$1")" in + echo "Processing file: $1" > /dev/stderr # 调试信息:输出正在处理的文件 + MIME_TYPE=$(file -Lb --mime-type "$1") # 获取文件的 MIME 类型 + echo "MIME type: $MIME_TYPE" > /dev/stderr # 调试信息:输出 MIME 类型 + + case "$MIME_TYPE" in text/*) bat --paging=never --color=always "$1" ;; - image/*) feh "$1";; - application/zip|application/x-tar) atool -l "$1" ;; + text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; + text/troff) man ./ "$1" | col -b ;; + image/*) feh "$1" ;; + application/zip) zipinfo "$1" | less -i ;; + application/gzip) zless "$1" ;; + application/*tar|application/*zip*) tar ztvf "$1" | less -i ;; + audio/*) mpv "$1" ;; + application/pdf) zathura "$1" ;; *) file -b "$1" ;; esac }} diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..5e63cfa --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,76 @@ +# ---------- 基本 ---------- +set -g default-terminal "screen-256color" +set -ga terminal-overrides ",*256col*:Tc" +set -gu terminal-features[2] +set -g history-limit 50000 # 滚屏行数 +set -g base-index 1 # 窗口从 1 开始 +setw -g pane-base-index 1 +set -g renumber-windows on # 关窗口后重排号 +set -g mouse on # OpenBSD 默认 tmux 已 ≥ 2.1 +set -s escape-time 0 # 消除 vim 延迟 +set -g display-panes-time 2000 # PREFIX-Q 提示 2s +# 启用状态栏 +set -g status on + +# ---------- 前缀键 ---------- +set -g prefix C-z # 把 C-b 让给 bash +unbind C-b +bind C-z send-prefix +bind r source-file ~/.tmux.conf \; display "Reloaded!" + +# ---------- 分屏 ---------- +bind | split-window -h -c "#{pane_current_path}" +bind - split-window -v -c "#{pane_current_path}" +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R +bind -r H resize-pane -L 5 +bind -r J resize-pane -D 5 +bind -r K resize-pane -U 5 +bind -r L resize-pane -R 5 + +# ---------- 复制模式 ---------- +setw -g mode-keys vi +bind-key -T copy-mode-vi v send -X begin-selection +bind-key -T copy-mode-vi y send -X copy-selection-and-cancel +# 若装了 xclip:复制到 X11 剪贴板 +bind-key y run "tmux save-buffer - | xclip -i -sel clip" + +# ---------- 状态栏 ---------- +set -g status-interval 1 +set -g status-justify centre + +# 清空状态栏左侧的内容 +set -g status-left '' +# 左侧:会话名,亮绿字 / 深灰底 +#set -g status-left "#[fg=#d31269,bg=#7a9f8d,bold] #S #[default]" + +# 右侧:时间 & 日期,白字 / 深灰底 +set -g status-right "#[fg=white,bg=black] %H:%M %d-%b #[default]" +# 设置状态栏右侧的最大长度 +set -g status-right-length 50 + +# 清空窗口状态之间的分隔符 +setw -g window-status-separator '' + +# 设置当前窗口状态的样式 +setw -g window-status-current-style 'fg=#eeeeee bg=#427b58' + +# 设置普通窗口状态的样式 +setw -g window-status-style 'fg=#ffffff bg=#111111' + +# 设置触发警报时窗口状态的样式 +setw -g window-status-bell-style 'fg=yellow bg=red bold' + +# 设置状态栏的背景颜色 +set -g status-style bg=#111111 + +# 整栏背景、默认文字色 +set -g status-style bg=black,fg=white + +# 当前窗口标签:亮黄字 + 粗体 +setw -g window-status-current-style fg=#e3a135,bold + +# 设置活动窗格的边框颜色 +set -g pane-active-border-style 'fg=red' diff --git a/.xsession b/.xsession new file mode 100755 index 0000000..84175dd --- /dev/null +++ b/.xsession @@ -0,0 +1,41 @@ +#!/bin/sh + +export PATH="/usr/local/bin:$PATH" +export ENV="$HOME/.kshrc" + +xrdb -merge "$HOME/.Xresources" + +if [ -x /usr/local/bin/dbus-launch -a -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then + eval `dbus-launch --sh-syntax --exit-with-x11` + export DBUS_SESSION_BUS_ADDRESS +fi + +export LANG=zh_CN.UTF-8 +export LC_ALL=zh_CN.UTF-8 + +export XMODIFIERS="@im=fcitx5" +export GTK_IM_MODULE="fcitx5" +export QT_IM_MODULE="fcitx5" + +/usr/local/bin/fcitx5 & + +feh --bg-scale /home/alex/backgrounds/27.jpg & + +ulimit -Sc 0 + +picom -f & + +polybar main & + +tint2 & + +xidle -timeout 600 -program "xclock -mode random" & + +xinput set-prop "/dev/wsmouse" "WS Pointer Wheel Emulation" 1 +xinput set-prop "/dev/wsmouse" "WS Pointer Wheel Emulation Button" 2 +xinput set-prop "/dev/wsmouse" "WS Pointer Wheel Emulation Axes" 6 7 4 5 + +exec cwm +#exec twm +#exec /usr/local/bin/i3 +#exec /usr/local/bin/wmaker