跳转至

代码片段

切换电源模式并发送通知

单行命令,适用于快捷键触发电源模式切换等场景。

前提条件

需要安装 powerprofilesctlnotify-send.py

/bin/bash -c 'NOTIF_ID_FILE="/tmp/power_profile_switcher_notification_id"; LAST_ID=$(cat "$NOTIF_ID_FILE" 2>/dev/null); PROFILES=($(powerprofilesctl list | grep -oP "^[ \*] \K[^(  )].*(?=:)" | grep -v "^$")); CURRENT=$(powerprofilesctl get); CURRENT_INDEX=0; for i in "${!PROFILES[@]}"; do [[ "${PROFILES[$i]}" == "$CURRENT" ]] && CURRENT_INDEX=$i && break; done; NEXT_INDEX=$(( (CURRENT_INDEX + 1) % ${#PROFILES[@]} )); MODE_TO_SET="${PROFILES[$NEXT_INDEX]}"; powerprofilesctl set "$MODE_TO_SET" && (NEW_ID="$(notify-send.py -a "电源模式切换 (Clover Yan)" -i "power-profile-${MODE_TO_SET}-symbolic" -r "${LAST_ID:-0}" "切换到 $MODE_TO_SET" "已切换到 $MODE_TO_SET 电源模式")"; echo "$NEW_ID" > "$NOTIF_ID_FILE")'

Zsh

自定义提示符

我是实在喜欢Oh My Zsh默认的主题robbyrussell,但它太简约了以至于缺少了一些实用信息,于是我给出这些代码,用来修补默认主题,显示更多实用的信息。这些代码不依赖Oh My Zsh,请把这些代码放在~/.zshrc中设置主题之后的位置。

在提示符开头显示上一个命令的退出状态码

~/.zshrc
PS1="%(?..%F{1}%?%f )${PS1}"
解释
  1. %(x.true_text.false_text) 是zsh的条件表达式语法,表示如果x为真(为0)则显示true_text,否则显示false_text。这里的?表示上一个命令的退出状态码,..表示0时为空。
  2. %F{1}表示将后续文本颜色设置为红色(1是红色的颜色代码)。
  3. %?表示上一个命令的退出状态码。
  4. %f表示将后续文本颜色重置为默认颜色。

在SSH会话中的提示符开头显示黄色锁图标

~/.zshrc
[[ $SSH_CONNECTION ]] && PS1="%F{3}%f ${PS1}"

在嵌套Shell中显示当前Shell的嵌套层级

~/.zshrc
[[ $SHLVL -ne 1 ]] && PS1="%F{4} ${SHLVL}%f ${PS1}"

PowerShell

使用中性颜色对输入内容着色

~/.config/powershell/Microsoft.PowerShell_profile.ps1
Set-PSReadLineOption -Colors @{
    Command = "`e[33m"
    Comment = "`e[32m"
    ContinuationPrompt = "`e[0m"
    Default = "`e[0m"
    Emphasis = "`e[36m"
    Error = "`e[91m"
    InlinePrediction = "`e[97;2;3m"
    Keyword = "`e[92m"
    ListPrediction = "`e[33m"
    ListPredictionSelected = "`e[48;5;238m"
    ListPredictionTooltip = "`e[97;2;3m"
    Member = "`e[0m"
    Number = "`e[0m"
    Operator = "`e[90m"
    Parameter = "`e[90m"
    Selection = "`e[30;47m"
    String = "`e[36m"
    Type = "`e[0m"
    Variable = "`e[32m"
}