Forráskód Böngészése

feat(zellij): 更新 zellij 安装和配置方法

- 将 zellij 安装路径改为 /usr/local/bin
- 添加 zsh 和 bash 的自动附加功能
- 新增 zin 和 zin2 函数,用于启动和附加到 zellij 会话
tianyun 4 hónapja
szülő
commit
a0ebf5670a
1 módosított fájl, 105 hozzáadás és 62 törlés
  1. 105 62
      sh_config.sh

+ 105 - 62
sh_config.sh

@@ -570,12 +570,56 @@ EOF
 	~/micro "$@"
 }
 function install_zellij() {
-	# 用户目录是否存在 zellij 文件
-	if [ ! -f ~/zellij ]; then
+	# 检查 /usr/local/bin 下是否存在 zellij
+	if [ ! -f /usr/local/bin/zellij ]; then
 		wget https://fs.n1.tianyunperfect.cn:10086/2025/zellij-x86_64-unknown-linux-musl.tar.gz
 		tar -zxvf zellij-x86_64-unknown-linux-musl.tar.gz
+		sudo mv zellij /usr/local/bin/
 		rm -rf zellij-x86_64-unknown-linux-musl.tar.gz
 	fi
+
+	# 判断使用的是 zsh 还是 bash
+	if [ -n "$ZSH_VERSION" ]; then
+		# ZSH
+		cat <<'EOF' >>~/.zshrc
+function zin() {
+    export ZELLIJ_AUTO_ATTACH=true
+    eval "$(zellij setup --generate-auto-start zsh)"
+}
+zin2() {
+  # 获取活跃的会话名称
+  local active_session=$(zellij list-sessions --no-formatting | grep -v "EXITED" |head -1 | awk '{print $1}')
+  if [ -n "$active_session" ]; then
+    # 使用获取到的会话名称并添加选项
+    zellij attach "$active_session" options --disable-mouse-mode
+  else
+    echo "No active Zellij session found."
+  fi
+}
+EOF
+		source ~/.zshrc
+	elif [ -n "$BASH_VERSION" ]; then
+		# BASH
+		cat <<'EOF' >>~/.bashrc
+function zin() {
+    export ZELLIJ_AUTO_ATTACH=true 
+    eval "$(zellij setup --generate-auto-start bash)"
+}
+zin2() {
+  # 获取活跃的会话名称
+  local active_session=$(zellij list-sessions --no-formatting | grep -v "EXITED" |head -1 | awk '{print $1}')
+  if [ -n "$active_session" ]; then
+    # 使用获取到的会话名称并添加选项
+    zellij attach "$active_session" options --disable-mouse-mode
+  else
+    echo "No active Zellij session found."
+  fi
+}
+EOF
+		source ~/.bashrc
+	else
+		echo "Unknown shell"
+	fi
 }
 
 # 磁盘读写速度测试
@@ -622,7 +666,6 @@ set_title() {
 	printf "\033]2;%s\007" "$1"
 }
 
-
 ## ffmpeg 相关
 # 提起音频,入参是文件名,默认转出同名的mp3,示例:ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 0 output.mp3
 function ffmpeg_extract_audio() {
@@ -646,65 +689,65 @@ function ffmpeg_extract_audio() {
 }
 # 合并视频和音频
 ffmpeg_merge_video_audio() {
-    # 检查参数数量是否正确
-    if [ "$#" -ne 3 ]; then
-        echo "用法: merge_video_audio <视频文件> <音频文件> <输出文件>"
-        return 1
-    fi
-
-    # 获取参数
-    video_path="$1"
-    audio_path="$2"
-    output_path="$3"
-
-    # 检查输入文件是否存在
-    if [ ! -f "$video_path" ]; then
-        echo "错误: 视频文件 '$video_path' 不存在"
-        return 1
-    fi
-
-    if [ ! -f "$audio_path" ]; then
-        echo "错误: 音频文件 '$audio_path' 不存在"
-        return 1
-    fi
-
-    # 执行 FFmpeg 命令
-    ffmpeg -i "$video_path" -i "$audio_path" -c:v copy -c:a copy "$output_path"
-
-    # 检查命令是否成功执行
-    if [ $? -eq 0 ]; then
-        echo "合并完成: 输出文件为 '$output_path'"
-    else
-        echo "错误: 合并失败"
-        return 1
-    fi
+	# 检查参数数量是否正确
+	if [ "$#" -ne 3 ]; then
+		echo "用法: merge_video_audio <视频文件> <音频文件> <输出文件>"
+		return 1
+	fi
+
+	# 获取参数
+	video_path="$1"
+	audio_path="$2"
+	output_path="$3"
+
+	# 检查输入文件是否存在
+	if [ ! -f "$video_path" ]; then
+		echo "错误: 视频文件 '$video_path' 不存在"
+		return 1
+	fi
+
+	if [ ! -f "$audio_path" ]; then
+		echo "错误: 音频文件 '$audio_path' 不存在"
+		return 1
+	fi
+
+	# 执行 FFmpeg 命令
+	ffmpeg -i "$video_path" -i "$audio_path" -c:v copy -c:a copy "$output_path"
+
+	# 检查命令是否成功执行
+	if [ $? -eq 0 ]; then
+		echo "合并完成: 输出文件为 '$output_path'"
+	else
+		echo "错误: 合并失败"
+		return 1
+	fi
 }
 
 ffmpeg_convert_to_mp3() {
-    # 检查参数数量是否正确
-    if [ "$#" -ne 2 ]; then
-        echo "用法: convert_to_mp3 <输入音频文件> <输出MP3文件>"
-        return 1
-    fi
-
-    # 获取参数
-    input_file="$1"
-    output_file="$2"
-
-    # 检查输入文件是否存在
-    if [ ! -f "$input_file" ]; then
-        echo "错误: 输入文件 '$input_file' 不存在"
-        return 1
-    fi
-
-    # 执行 FFmpeg 命令
-    ffmpeg -i "$input_file" -vn -acodec libmp3lame -q:a 2 "$output_file"
-
-    # 检查命令是否成功执行
-    if [ $? -eq 0 ]; then
-        echo "转换完成: 输出文件为 '$output_file'"
-    else
-        echo "错误: 转换失败"
-        return 1
-    fi
-}
+	# 检查参数数量是否正确
+	if [ "$#" -ne 2 ]; then
+		echo "用法: convert_to_mp3 <输入音频文件> <输出MP3文件>"
+		return 1
+	fi
+
+	# 获取参数
+	input_file="$1"
+	output_file="$2"
+
+	# 检查输入文件是否存在
+	if [ ! -f "$input_file" ]; then
+		echo "错误: 输入文件 '$input_file' 不存在"
+		return 1
+	fi
+
+	# 执行 FFmpeg 命令
+	ffmpeg -i "$input_file" -vn -acodec libmp3lame -q:a 2 "$output_file"
+
+	# 检查命令是否成功执行
+	if [ $? -eq 0 ]; then
+		echo "转换完成: 输出文件为 '$output_file'"
+	else
+		echo "错误: 转换失败"
+		return 1
+	fi
+}