├── .Pacmanfile ├── .Xresources ├── .bashrc ├── .cargo └── config.toml ├── .config ├── chrome-flags.conf ├── dunst │ └── dunstrc ├── fcitx5 │ └── conf │ │ ├── classicui.conf │ │ └── rime.conf ├── flameshot │ └── flameshot.ini ├── git │ └── ignore ├── htop │ └── htoprc ├── i3 │ └── config ├── lsd │ └── config.yaml ├── mypy │ └── config ├── nvim │ ├── coc-settings.json │ └── init.vim ├── pip │ └── pip.conf ├── ranger │ ├── rc.conf##os.Darwin │ └── rc.conf##os.Linux ├── rofi │ ├── config.rasi │ └── nord.rasi ├── termite │ └── config ├── yadm │ └── bootstrap ├── yay │ └── config.json └── zathura │ └── zathurarc ├── .curlrc ├── .docker └── config.json ├── .gitconfig ├── .gitmodules ├── .gnupg └── gpg.conf ├── .local └── share │ ├── fcitx5 │ └── rime │ │ └── installation.yaml │ └── yadm │ └── archive ├── .myclirc ├── .ssh └── assh.yml ├── .tigrc ├── .tldrrc ├── .tmux.conf ├── .vimrc └── .xinitrc /.Pacmanfile: -------------------------------------------------------------------------------- 1 | acpi 2 | aliyun-cli 3 | ansible 4 | archlinuxcn-keyring 5 | aria2 6 | asciinema 7 | assh-git 8 | base 9 | betterlockscreen 10 | bind 11 | bumblebee-status 12 | cifs-utils 13 | ckermit 14 | clash 15 | clion 16 | clion-jre 17 | cloc 18 | cmake 19 | container-diff 20 | dhcp 21 | dhcpcd 22 | dive 23 | docker 24 | docker-compose 25 | dog 26 | dunst 27 | efibootmgr 28 | exa 29 | expac 30 | fcitx5 31 | fcitx5-chinese-addons 32 | fcitx5-configtool 33 | fcitx5-gtk 34 | fcitx5-material-color 35 | fcitx5-qt 36 | fcitx5-rime 37 | fd 38 | feh 39 | firefox 40 | fish 41 | flameshot 42 | fzf 43 | gdb 44 | git 45 | gitflow-avh 46 | github-cli 47 | gitlab-glab 48 | go 49 | gobject-introspection 50 | google-chrome 51 | graphviz 52 | grub 53 | helm 54 | htop 55 | httpie 56 | hugo 57 | i3-gaps 58 | inetutils 59 | intellij-idea-ultimate-edition 60 | intellij-idea-ultimate-edition-jre 61 | intel-ucode 62 | iredis 63 | kubectl 64 | lib32-glibc 65 | libnotify 66 | linux 67 | linux-firmware 68 | lnav 69 | lsof 70 | luarocks 71 | man-db 72 | mirrorlist-rankmirrors-hook 73 | ncdu 74 | neofetch 75 | neovim 76 | netctl 77 | net-tools 78 | networkmanager 79 | nginx 80 | nmap 81 | noto-fonts 82 | noto-fonts-cjk 83 | noto-fonts-emoji 84 | noto-fonts-extra 85 | npm 86 | ntfs-3g 87 | numlockx 88 | onefetch 89 | openssh 90 | os-prober 91 | otf-cascadia-code 92 | otf-fira-mono 93 | postman 94 | protobuf 95 | python-pip 96 | ranger 97 | rclone 98 | rime-double-pinyin 99 | ripgrep 100 | rofi 101 | rsync 102 | screenkey 103 | supervisor 104 | tcpdump 105 | telegram-desktop 106 | termite 107 | tig 108 | tldr 109 | tmux 110 | traceroute 111 | tree 112 | ttf-jetbrains-mono 113 | ttf-nerd-fonts-symbols 114 | typora 115 | ufetch-git 116 | ufw 117 | unicode-emoji 118 | unrar 119 | unzip 120 | upower 121 | vi 122 | vim 123 | visual-studio-code-insiders-bin 124 | w3m 125 | wget 126 | wireless_tools 127 | wireshark-qt 128 | xbindkeys 129 | xorg-server 130 | xorg-xinit 131 | xorg-xrandr 132 | yadm 133 | yay 134 | zathura 135 | zathura-pdf-poppler 136 | zerotier-one 137 | zip 138 | zsh 139 | -------------------------------------------------------------------------------- /.Xresources: -------------------------------------------------------------------------------- 1 | ! Copyright (c) 2016-present Arctic Ice Studio 2 | ! Copyright (c) 2016-present Sven Greb 3 | 4 | ! Project: Nord XResources 5 | ! Version: 0.1.0 6 | ! Repository: https://github.com/arcticicestudio/nord-xresources 7 | ! License: MIT 8 | 9 | #define nord0 #2E3440 10 | #define nord1 #3B4252 11 | #define nord2 #434C5E 12 | #define nord3 #4C566A 13 | #define nord4 #D8DEE9 14 | #define nord5 #E5E9F0 15 | #define nord6 #ECEFF4 16 | #define nord7 #8FBCBB 17 | #define nord8 #88C0D0 18 | #define nord9 #81A1C1 19 | #define nord10 #5E81AC 20 | #define nord11 #BF616A 21 | #define nord12 #D08770 22 | #define nord13 #EBCB8B 23 | #define nord14 #A3BE8C 24 | #define nord15 #B48EAD 25 | 26 | *.foreground: nord4 27 | *.background: nord0 28 | *.cursorColor: nord4 29 | *fading: 35 30 | *fadeColor: nord3 31 | 32 | *.color0: nord1 33 | *.color1: nord11 34 | *.color2: nord14 35 | *.color3: nord13 36 | *.color4: nord9 37 | *.color5: nord15 38 | *.color6: nord8 39 | *.color7: nord5 40 | *.color8: nord3 41 | *.color9: nord11 42 | *.color10: nord14 43 | *.color11: nord13 44 | *.color12: nord9 45 | *.color13: nord15 46 | *.color14: nord7 47 | *.color15: nord6 48 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # If not running interactively, don't do anything 4 | [[ $- != *i* ]] && return 5 | 6 | function parse_git_branch() { 7 | git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1) /' 8 | } 9 | 10 | PS1='\u@\h at \[\e[32m\]\w \[\e[91m\]$(parse_git_branch)\[\e[00m\]\$ ' 11 | 12 | [[ ${TERM} == "xterm-termite" ]] && export TERM=xterm-256color 13 | 14 | command -v nvim &> /dev/null && export EDITOR=nvim 15 | command -v lsd &> /dev/null && alias ls="lsd --header" 16 | 17 | export LANG=en_US.UTF-8 18 | export LC_ALL=en_US.UTF-8 19 | export XDG_CONFIG_HOME=${HOME}/.config 20 | export XDG_CACHE_HOME=${HOME}/.cache 21 | export HISTTIMEFORMAT="%F %T " 22 | export HISTSIZE=11000 23 | export HISTFILESIZE=11000 24 | export HISTCONTROL=ignoredups:erasedups 25 | 26 | export HOMEBREW_EDITOR=${EDITOR} 27 | export HOMEBREW_NO_ANALYTICS=1 28 | export HOMEBREW_NO_AUTO_UPDATE=1 29 | export HOMEBREW_INSTALL_FROM_API=1 30 | export HOMEBREW_API_DOMAIN="https://mirrors.aliyun.com/homebrew-bottles/api" 31 | export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/brew.git" 32 | export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/homebrew-core.git" 33 | export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.aliyun.com/homebrew/homebrew-bottles" 34 | 35 | export GO11MODULE=on 36 | export GOPATH=${HOME}/.go 37 | export GOPROXY=https://goproxy.cn,direct 38 | 39 | export RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup 40 | export RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup 41 | 42 | export FZF_DEFAULT_OPTS="--height=20% --reverse" 43 | export FZF_DEFAULT_COMMAND="fd --type f --strip-cwd-prefix --exclude={.git,build,thirdparty,vendor}" 44 | 45 | function add_path() { 46 | export PATH=${PATH}:$1 47 | } 48 | add_path "${GOPATH}/bin" 49 | add_path "${HOME}/.local/bin" 50 | add_path "${HOME}/.node_modules/bin" 51 | add_path /usr/local/sbin # for homebrew bin 52 | 53 | # copied from https://bit.ly/3ZhgVjz 54 | function fssh() { 55 | host=$(grep "^Host " ${HOME}/.ssh/config | cut -b 6- | fzf --prompt="SSH > " --preview="awk -v HOST={} -f ~/.ssh/host2conf.awk ~/.ssh/config") 56 | [ $? -eq 0 ] && ssh ${host} 57 | } 58 | 59 | function fbr() { 60 | local branches branch 61 | branches=$(git branch --all | grep -v HEAD) && 62 | branch=$(echo "$branches" | fzf -d $(( 2 + $(wc -l <<< "$branches") )) +m) && 63 | git checkout $(echo "$branch" | sed "s/.* //" | sed "s#remotes/[^/]*/##") 64 | } 65 | 66 | alias bashconfig="source ${HOME}/.bashrc" 67 | alias ll="ls -lh" 68 | alias la="ll -a" 69 | alias brewfile="brew bundle dump --global -f" 70 | 71 | # only for macos java installed by brew 72 | if [[ $(uname -o) == "Darwin" ]]; then 73 | export PATH="/usr/local/opt/openjdk/bin:$PATH" 74 | export CPPFLAGS="-I/usr/local/opt/openjdk/include" 75 | fi 76 | -------------------------------------------------------------------------------- /.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [source.crates-io] 2 | replace-with = 'aliyun' 3 | [source.aliyun] 4 | registry = "sparse+https://mirrors.aliyun.com/crates.io-index/" 5 | -------------------------------------------------------------------------------- /.config/chrome-flags.conf: -------------------------------------------------------------------------------- 1 | --proxy-server=http://127.0.0.1:7890 2 | -------------------------------------------------------------------------------- /.config/dunst/dunstrc: -------------------------------------------------------------------------------- 1 | [global] 2 | ### Display ### 3 | 4 | # Which monitor should the notifications be displayed on. 5 | monitor = 0 6 | 7 | # Display notification on focused monitor. Possible modes are: 8 | # mouse: follow mouse pointer 9 | # keyboard: follow window with keyboard focus 10 | # none: don't follow anything 11 | # 12 | # "keyboard" needs a window manager that exports the 13 | # _NET_ACTIVE_WINDOW property. 14 | # This should be the case for almost all modern window managers. 15 | # 16 | # If this option is set to mouse or keyboard, the monitor option 17 | # will be ignored. 18 | follow = mouse 19 | 20 | # The geometry of the window: 21 | # [{width}]x{height}[+/-{x}+/-{y}] 22 | # The geometry of the message window. 23 | # The height is measured in number of notifications everything else 24 | # in pixels. If the width is omitted but the height is given 25 | # ("-geometry x2"), the message window expands over the whole screen 26 | # (dmenu-like). If width is 0, the window expands to the longest 27 | # message displayed. A positive x is measured from the left, a 28 | # negative from the right side of the screen. Y is measured from 29 | # the top and down respectively. 30 | # The width can be negative. In this case the actual width is the 31 | # screen width minus the width defined in within the geometry option. 32 | geometry = "500x20-30+40" 33 | 34 | # Show how many messages are currently hidden (because of geometry). 35 | indicate_hidden = yes 36 | 37 | # Shrink window if it's smaller than the width. Will be ignored if 38 | # width is 0. 39 | shrink = no 40 | 41 | # The transparency of the window. Range: [0; 100]. 42 | # This option will only work if a compositing window manager is 43 | # present (e.g. xcompmgr, compiz, etc.). 44 | transparency = 0 45 | 46 | # The height of the entire notification. If the height is smaller 47 | # than the font height and padding combined, it will be raised 48 | # to the font height and padding. 49 | notification_height = 0 50 | 51 | # Draw a line of "separator_height" pixel height between two 52 | # notifications. 53 | # Set to 0 to disable. 54 | separator_height = 2 55 | 56 | # Padding between text and separator. 57 | padding = 8 58 | 59 | # Horizontal padding. 60 | horizontal_padding = 8 61 | 62 | # Defines width in pixels of frame around the notification window. 63 | # Set to 0 to disable. 64 | frame_width = 3 65 | 66 | # Defines color of the frame around the notification window. 67 | frame_color = "#aaaaaa" 68 | 69 | # Define a color for the separator. 70 | # possible values are: 71 | # * auto: dunst tries to find a color fitting to the background; 72 | # * foreground: use the same color as the foreground; 73 | # * frame: use the same color as the frame; 74 | # * anything else will be interpreted as a X color. 75 | separator_color = frame 76 | 77 | # Sort messages by urgency. 78 | sort = yes 79 | 80 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 81 | # for longer than idle_threshold seconds. 82 | # Set to 0 to disable. 83 | # A client can set the 'transient' hint to bypass this. See the rules 84 | # section for how to disable this if necessary 85 | idle_threshold = 120 86 | 87 | ### Text ### 88 | 89 | font = Cascadia Code PL 20 90 | 91 | # The spacing between lines. If the height is smaller than the 92 | # font height, it will get raised to the font height. 93 | line_height = 0 94 | 95 | # Possible values are: 96 | # full: Allow a small subset of html markup in notifications: 97 | # bold 98 | # italic 99 | # strikethrough 100 | # underline 101 | # 102 | # For a complete reference see 103 | # . 104 | # 105 | # strip: This setting is provided for compatibility with some broken 106 | # clients that send markup even though it's not enabled on the 107 | # server. Dunst will try to strip the markup but the parsing is 108 | # simplistic so using this option outside of matching rules for 109 | # specific applications *IS GREATLY DISCOURAGED*. 110 | # 111 | # no: Disable markup parsing, incoming notifications will be treated as 112 | # plain text. Dunst will not advertise that it has the body-markup 113 | # capability if this is set as a global setting. 114 | # 115 | # It's important to note that markup inside the format option will be parsed 116 | # regardless of what this is set to. 117 | markup = full 118 | 119 | # The format of the message. Possible variables are: 120 | # %a appname 121 | # %s summary 122 | # %b body 123 | # %i iconname (including its path) 124 | # %I iconname (without its path) 125 | # %p progress value if set ([ 0%] to [100%]) or nothing 126 | # %n progress value if set without any extra characters 127 | # %% Literal % 128 | # Markup is allowed 129 | format = "%s\n%b" 130 | 131 | # Alignment of message text. 132 | # Possible values are "left", "center" and "right". 133 | alignment = left 134 | 135 | # Vertical alignment of message text and icon. 136 | # Possible values are "top", "center" and "bottom". 137 | vertical_alignment = center 138 | 139 | # Show age of message if message is older than show_age_threshold 140 | # seconds. 141 | # Set to -1 to disable. 142 | show_age_threshold = 60 143 | 144 | # Split notifications into multiple lines if they don't fit into 145 | # geometry. 146 | word_wrap = yes 147 | 148 | # When word_wrap is set to no, specify where to make an ellipsis in long lines. 149 | # Possible values are "start", "middle" and "end". 150 | ellipsize = middle 151 | 152 | # Ignore newlines '\n' in notifications. 153 | ignore_newline = yes 154 | 155 | # Stack together notifications with the same content 156 | stack_duplicates = true 157 | 158 | # Hide the count of stacked notifications with the same content 159 | hide_duplicate_count = false 160 | 161 | # Display indicators for URLs (U) and actions (A). 162 | show_indicators = yes 163 | 164 | ### Icons ### 165 | 166 | # Align icons left/right/off 167 | icon_position = left 168 | 169 | # Scale small icons up to this size, set to 0 to disable. Helpful 170 | # for e.g. small files or high-dpi screens. In case of conflict, 171 | # max_icon_size takes precedence over this. 172 | min_icon_size = 0 173 | 174 | # Scale larger icons down to this size, set to 0 to disable 175 | max_icon_size = 32 176 | 177 | # Paths to default icons. 178 | icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 179 | 180 | ### History ### 181 | 182 | # Should a notification popped up from history be sticky or timeout 183 | # as if it would normally do. 184 | sticky_history = yes 185 | 186 | # Maximum amount of notifications kept in history 187 | history_length = 20 188 | 189 | ### Misc/Advanced ### 190 | 191 | # dmenu path. 192 | dmenu = /usr/bin/dmenu -p dunst: 193 | 194 | # Browser for opening urls in context menu. 195 | browser = /usr/bin/firefox -new-tab 196 | 197 | # Always run rule-defined scripts, even if the notification is suppressed 198 | always_run_script = true 199 | 200 | # Define the title of the windows spawned by dunst 201 | title = Dunst 202 | 203 | # Define the class of the windows spawned by dunst 204 | class = Dunst 205 | 206 | # Print a notification on startup. 207 | # This is mainly for error detection, since dbus (re-)starts dunst 208 | # automatically after a crash. 209 | startup_notification = false 210 | 211 | # Manage dunst's desire for talking 212 | # Can be one of the following values: 213 | # crit: Critical features. Dunst aborts 214 | # warn: Only non-fatal warnings 215 | # mesg: Important Messages 216 | # info: all unimportant stuff 217 | # debug: all less than unimportant stuff 218 | verbosity = mesg 219 | 220 | # Define the corner radius of the notification window 221 | # in pixel size. If the radius is 0, you have no rounded 222 | # corners. 223 | # The radius will be automatically lowered if it exceeds half of the 224 | # notification height to avoid clipping text and/or icons. 225 | corner_radius = 0 226 | 227 | # Ignore the dbus closeNotification message. 228 | # Useful to enforce the timeout set by dunst configuration. Without this 229 | # parameter, an application may close the notification sent before the 230 | # user defined timeout. 231 | ignore_dbusclose = false 232 | 233 | ### Legacy 234 | 235 | # Use the Xinerama extension instead of RandR for multi-monitor support. 236 | # This setting is provided for compatibility with older nVidia drivers that 237 | # do not support RandR and using it on systems that support RandR is highly 238 | # discouraged. 239 | # 240 | # By enabling this setting dunst will not be able to detect when a monitor 241 | # is connected or disconnected which might break follow mode if the screen 242 | # layout changes. 243 | force_xinerama = false 244 | 245 | ### mouse 246 | 247 | # Defines list of actions for each mouse event 248 | # Possible values are: 249 | # * none: Don't do anything. 250 | # * do_action: If the notification has exactly one action, or one is marked as default, 251 | # invoke it. If there are multiple and no default, open the context menu. 252 | # * close_current: Close current notification. 253 | # * close_all: Close all notifications. 254 | # These values can be strung together for each mouse event, and 255 | # will be executed in sequence. 256 | mouse_left_click = close_current 257 | mouse_middle_click = do_action, close_current 258 | mouse_right_click = close_all 259 | 260 | # Experimental features that may or may not work correctly. Do not expect them 261 | # to have a consistent behaviour across releases. 262 | [experimental] 263 | # Calculate the dpi to use on a per-monitor basis. 264 | # If this setting is enabled the Xft.dpi value will be ignored and instead 265 | # dunst will attempt to calculate an appropriate dpi value for each monitor 266 | # using the resolution and physical size. This might be useful in setups 267 | # where there are multiple screens with very different dpi values. 268 | per_monitor_dpi = false 269 | 270 | [shortcuts] 271 | 272 | # Shortcuts are specified as [modifier+][modifier+]...key 273 | # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", 274 | # "mod3" and "mod4" (windows-key). 275 | # Xev might be helpful to find names for keys. 276 | 277 | # Close notification. 278 | close = ctrl+space 279 | 280 | # Close all notifications. 281 | close_all = ctrl+shift+space 282 | 283 | # Redisplay last message(s). 284 | # On the US keyboard layout "grave" is normally above TAB and left 285 | # of "1". Make sure this key actually exists on your keyboard layout, 286 | # e.g. check output of 'xmodmap -pke' 287 | history = ctrl+grave 288 | 289 | # Context menu. 290 | context = ctrl+shift+period 291 | 292 | [urgency_low] 293 | # IMPORTANT: colors have to be defined in quotation marks. 294 | # Otherwise the "#" and following would be interpreted as a comment. 295 | background = "#222222" 296 | foreground = "#888888" 297 | timeout = 10 298 | # Icon for notifications with low urgency, uncomment to enable 299 | #icon = /path/to/icon 300 | 301 | [urgency_normal] 302 | background = "#285577" 303 | foreground = "#ffffff" 304 | timeout = 10 305 | # Icon for notifications with normal urgency, uncomment to enable 306 | #icon = /path/to/icon 307 | 308 | [urgency_critical] 309 | background = "#900000" 310 | foreground = "#ffffff" 311 | frame_color = "#ff0000" 312 | timeout = 0 313 | # Icon for notifications with critical urgency, uncomment to enable 314 | #icon = /path/to/icon 315 | 316 | -------------------------------------------------------------------------------- /.config/fcitx5/conf/classicui.conf: -------------------------------------------------------------------------------- 1 | # Vertical Candidate List 2 | Vertical Candidate List=False 3 | # Use Per Screen DPI 4 | PerScreenDPI=True 5 | # Use mouse wheel to go to prev or next page 6 | WheelForPaging=True 7 | # Font 8 | Font="Noto Serif CJK SC Bold 14" 9 | # Theme 10 | Theme=Material-Color-Blue 11 | 12 | -------------------------------------------------------------------------------- /.config/fcitx5/conf/rime.conf: -------------------------------------------------------------------------------- 1 | PreeditInApplication=True 2 | -------------------------------------------------------------------------------- /.config/flameshot/flameshot.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | buttons=@Variant(\0\0\0\x7f\0\0\0\vQList\0\0\0\0\xf\0\0\0\0\0\0\0\x1\0\0\0\x2\0\0\0\x3\0\0\0\x4\0\0\0\x5\0\0\0\x6\0\0\0\x12\0\0\0\xf\0\0\0\a\0\0\0\b\0\0\0\n\0\0\0\v\0\0\0\f\0\0\0\x11) 3 | copyAndCloseAfterUpload=true 4 | disabledTrayIcon=false 5 | drawColor=#ff0000 6 | drawThickness=0 7 | saveAfterCopyPath=/home/tekzv/Pictures 8 | savePath=/home/tekzv/Downloads 9 | startupLaunch=false 10 | -------------------------------------------------------------------------------- /.config/git/ignore: -------------------------------------------------------------------------------- 1 | i# Created by https://www.toptal.com/developers/gitignore/api/linux,windows,macos,vim,intellij+all,visualstudiocode 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=linux,windows,macos,vim,intellij+all,visualstudiocode 3 | 4 | ### Intellij+all ### 5 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 6 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 7 | 8 | # User-specific stuff 9 | .idea/**/workspace.xml 10 | .idea/**/tasks.xml 11 | .idea/**/usage.statistics.xml 12 | .idea/**/dictionaries 13 | .idea/**/shelf 14 | 15 | # AWS User-specific 16 | .idea/**/aws.xml 17 | 18 | # Generated files 19 | .idea/**/contentModel.xml 20 | 21 | # Sensitive or high-churn files 22 | .idea/**/dataSources/ 23 | .idea/**/dataSources.ids 24 | .idea/**/dataSources.local.xml 25 | .idea/**/sqlDataSources.xml 26 | .idea/**/dynamic.xml 27 | .idea/**/uiDesigner.xml 28 | .idea/**/dbnavigator.xml 29 | 30 | # Gradle 31 | .idea/**/gradle.xml 32 | .idea/**/libraries 33 | 34 | # Gradle and Maven with auto-import 35 | # When using Gradle or Maven with auto-import, you should exclude module files, 36 | # since they will be recreated, and may cause churn. Uncomment if using 37 | # auto-import. 38 | # .idea/artifacts 39 | # .idea/compiler.xml 40 | # .idea/jarRepositories.xml 41 | # .idea/modules.xml 42 | # .idea/*.iml 43 | # .idea/modules 44 | # *.iml 45 | # *.ipr 46 | 47 | # CMake 48 | cmake-build-*/ 49 | 50 | # Mongo Explorer plugin 51 | .idea/**/mongoSettings.xml 52 | 53 | # File-based project format 54 | *.iws 55 | 56 | # IntelliJ 57 | out/ 58 | 59 | # mpeltonen/sbt-idea plugin 60 | .idea_modules/ 61 | 62 | # JIRA plugin 63 | atlassian-ide-plugin.xml 64 | 65 | # Cursive Clojure plugin 66 | .idea/replstate.xml 67 | 68 | # SonarLint plugin 69 | .idea/sonarlint/ 70 | 71 | # Crashlytics plugin (for Android Studio and IntelliJ) 72 | com_crashlytics_export_strings.xml 73 | crashlytics.properties 74 | crashlytics-build.properties 75 | fabric.properties 76 | 77 | # Editor-based Rest Client 78 | .idea/httpRequests 79 | 80 | # Android studio 3.1+ serialized cache file 81 | .idea/caches/build_file_checksums.ser 82 | 83 | ### Intellij+all Patch ### 84 | # Ignore everything but code style settings and run configurations 85 | # that are supposed to be shared within teams. 86 | 87 | .idea/* 88 | 89 | !.idea/codeStyles 90 | !.idea/runConfigurations 91 | 92 | ### Linux ### 93 | *~ 94 | 95 | # temporary files which can be created if a process still has a handle open of a deleted file 96 | .fuse_hidden* 97 | 98 | # KDE directory preferences 99 | .directory 100 | 101 | # Linux trash folder which might appear on any partition or disk 102 | .Trash-* 103 | 104 | # .nfs files are created when an open file is removed but is still being accessed 105 | .nfs* 106 | 107 | ### macOS ### 108 | # General 109 | .DS_Store 110 | .AppleDouble 111 | .LSOverride 112 | 113 | # Icon must end with two \r 114 | Icon 115 | 116 | 117 | # Thumbnails 118 | ._* 119 | 120 | # Files that might appear in the root of a volume 121 | .DocumentRevisions-V100 122 | .fseventsd 123 | .Spotlight-V100 124 | .TemporaryItems 125 | .Trashes 126 | .VolumeIcon.icns 127 | .com.apple.timemachine.donotpresent 128 | 129 | # Directories potentially created on remote AFP share 130 | .AppleDB 131 | .AppleDesktop 132 | Network Trash Folder 133 | Temporary Items 134 | .apdisk 135 | 136 | ### macOS Patch ### 137 | # iCloud generated files 138 | *.icloud 139 | 140 | ### Vim ### 141 | # Swap 142 | [._]*.s[a-v][a-z] 143 | !*.svg # comment out if you don't need vector files 144 | [._]*.sw[a-p] 145 | [._]s[a-rt-v][a-z] 146 | [._]ss[a-gi-z] 147 | [._]sw[a-p] 148 | 149 | # Session 150 | Session.vim 151 | Sessionx.vim 152 | 153 | # Temporary 154 | .netrwhist 155 | # Auto-generated tag files 156 | tags 157 | # Persistent undo 158 | [._]*.un~ 159 | 160 | ### VisualStudioCode ### 161 | .vscode/* 162 | !.vscode/settings.json 163 | !.vscode/tasks.json 164 | !.vscode/launch.json 165 | !.vscode/extensions.json 166 | !.vscode/*.code-snippets 167 | 168 | # Local History for Visual Studio Code 169 | .history/ 170 | 171 | # Built Visual Studio Code Extensions 172 | *.vsix 173 | 174 | ### VisualStudioCode Patch ### 175 | # Ignore all local history of files 176 | .history 177 | .ionide 178 | 179 | ### Windows ### 180 | # Windows thumbnail cache files 181 | Thumbs.db 182 | Thumbs.db:encryptable 183 | ehthumbs.db 184 | ehthumbs_vista.db 185 | 186 | # Dump file 187 | *.stackdump 188 | 189 | # Folder config file 190 | [Dd]esktop.ini 191 | 192 | # Recycle Bin used on file shares 193 | $RECYCLE.BIN/ 194 | 195 | # Windows Installer files 196 | *.cab 197 | *.msi 198 | *.msix 199 | *.msm 200 | *.msp 201 | 202 | # Windows shortcuts 203 | *.lnk 204 | 205 | # End of https://www.toptal.com/developers/gitignore/api/linux,windows,macos,vim,intellij+all,visualstudiocode 206 | -------------------------------------------------------------------------------- /.config/htop/htoprc: -------------------------------------------------------------------------------- 1 | # Beware! This file is rewritten by htop when settings are changed in the interface. 2 | # The parser is also very primitive, and not human-friendly. 3 | fields=0 48 17 18 38 39 2 46 47 49 1 4 | sort_key=46 5 | sort_direction=1 6 | hide_threads=0 7 | hide_kernel_threads=1 8 | hide_userland_threads=0 9 | shadow_other_users=0 10 | show_thread_names=0 11 | show_program_path=1 12 | highlight_base_name=0 13 | highlight_megabytes=1 14 | highlight_threads=1 15 | tree_view=0 16 | header_margin=1 17 | detailed_cpu_time=0 18 | cpu_count_from_zero=0 19 | update_process_names=0 20 | account_guest_in_cpu_meter=0 21 | color_scheme=0 22 | delay=15 23 | left_meters=LeftCPUs Memory Swap 24 | left_meter_modes=1 1 1 25 | right_meters=RightCPUs Tasks LoadAverage Uptime 26 | right_meter_modes=1 2 2 2 27 | -------------------------------------------------------------------------------- /.config/i3/config: -------------------------------------------------------------------------------- 1 | # #--- Basic Definitions ---# # 2 | font pango:Cascadia Code 12 3 | # basic 4 | for_window [class="^.*"] border pixel 1 5 | set $terminal --no-startup-id i3-sensible-terminal 6 | set $mod Mod4 7 | 8 | gaps inner 15 9 | gaps outer 10 10 | 11 | # #--- Starting External Scripts ---# # 12 | # Set colors: 13 | set $darkblack #1d2021 14 | set $transparent #000000 15 | set $black #928374 16 | set $darkred #cc241d 17 | set $red #fb4934 18 | set $darkgreen #98971a 19 | set $green #b8bb26 20 | set $darkyellow #d79921 21 | set $yellow #fabd2f 22 | set $darkblue #458588 23 | set $blue #83a598 24 | set $darkmagenta #b16286 25 | set $magenta #d3869b 26 | set $darkcyan #689d6a 27 | set $cyan #8ec07c 28 | set $darkwhite #a89984 29 | set $white #ebdbb2 30 | 31 | # BORDER BACKGROUND TEXT INDICATOR CHILD_BORDER 32 | client.focused $red $red $magenta $darkmagenta $darkblue 33 | client.unfocused $transparent $blue $white $darkblue $darkblack 34 | client.focused_inactive $transparent $blue $white $darkblue $darkblack 35 | client.urgent $darkred $darkred $black $darkred $darkred 36 | client.background $black 37 | 38 | bar { 39 | font pango:Cascadia Code 16 40 | status_command bumblebee-status -m battery nic time \ 41 | -p time.format="%H:%M %A %m/%d" \ 42 | -p nic.format="{state} {ip}" \ 43 | -p battery.decorate="false" \ 44 | -t nord-powerline 45 | position top 46 | mode dock 47 | modifier None 48 | colors { 49 | background $darkblack 50 | statusline $darkwhite 51 | separator $cyan 52 | focused_workspace $blue $darkblue $darkblack 53 | active_workspace $blue $blue $darkwhite 54 | inactive_workspace $darkblack $darkblack $white 55 | urgent_workspace $darkblack $darkblack $white 56 | } 57 | } 58 | 59 | # #--- Basic Exec ---# # 60 | bindsym $mod+Return exec $terminal 61 | bindsym $mod+d exec --no-startup-id rofi -show combi 62 | bindsym $mod+x exec --no-startup-id betterlockscreen -t "Have a nice day!" --lock blur 63 | 64 | # #--- Toggle ---# # 65 | bindsym $mod+e layout toggle split 66 | bindsym $mod+f fullscreen toggle 67 | bindsym $mod+space focus mode_toggle 68 | bindsym $mod+Shift+space floating toggle 69 | bindsym $mod+v split v 70 | bindsym $mod+Shift+v split h 71 | 72 | # #--- Arrow Keys ---# # 73 | bindsym $mod+h focus left 74 | bindsym $mod+l focus right 75 | bindsym $mod+j focus down 76 | bindsym $mod+k focus up 77 | 78 | bindsym $mod+q kill 79 | 80 | bindsym $mod+y resize shrink width 10 px or 10 ppt 81 | bindsym $mod+u resize grow height 10 px or 10 ppt 82 | bindsym $mod+i resize shrink height 10 px or 10 ppt 83 | bindsym $mod+o resize grow width 10 px or 10 ppt 84 | 85 | bindsym $mod+Shift+h move left 30 86 | bindsym $mod+Shift+l move right 30 87 | bindsym $mod+Shift+j move down 30 88 | bindsym $mod+Shift+k move up 30 89 | 90 | 91 | # #--- Workspace ---# # 92 | set $ws1 "1" 93 | set $ws2 "2" 94 | set $ws3 "3" 95 | set $ws4 "4" 96 | set $ws5 "5" 97 | set $ws6 "6" 98 | set $ws7 "7" 99 | set $ws8 "8" 100 | set $ws9 "9" 101 | set $ws10 "10" 102 | # Seclect the workspace 103 | bindsym $mod+1 workspace $ws1 104 | bindsym $mod+2 workspace $ws2 105 | bindsym $mod+3 workspace $ws3 106 | bindsym $mod+4 workspace $ws4 107 | bindsym $mod+5 workspace $ws5 108 | bindsym $mod+6 workspace $ws6 109 | bindsym $mod+7 workspace $ws7 110 | bindsym $mod+8 workspace $ws8 111 | bindsym $mod+9 workspace $ws9 112 | bindsym $mod+0 workspace $ws10 113 | # move focused container to workspace 114 | bindsym $mod+Shift+1 move container to workspace $ws1 115 | bindsym $mod+Shift+2 move container to workspace $ws2 116 | bindsym $mod+Shift+3 move container to workspace $ws3 117 | bindsym $mod+Shift+4 move container to workspace $ws4 118 | bindsym $mod+Shift+7 move container to workspace $ws7 119 | bindsym $mod+Shift+8 move container to workspace $ws8 120 | bindsym $mod+Shift+9 move container to workspace $ws9 121 | bindsym $mod+Shift+0 move container to workspace $ws10 122 | 123 | # # --- Some About System ---# # 124 | bindsym $mod+Shift+r restart 125 | bindsym $mod+Shift+c reload 126 | bindsym $mod+Shift+e exec --no-startup-id "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" 127 | 128 | exec_always --no-startup-id feh --bg-fill ~/.wallpaper.png 129 | 130 | # #--- Media Keys ---# # 131 | # For screenshots and recording ---# # 132 | bindsym Print exec --no-startup-id flameshot full -c -p ~/Downloads/ 133 | bindsym Shift+Print exec --no-startup-id flameshot gui -p ~/Downloads/ 134 | bindsym $mod+N exec --no-startup-id killall screenkey || screenkey -s small -p bottom --no-whitespace -f "Cascadia Code PL" --bak-mode normal 135 | 136 | -------------------------------------------------------------------------------- /.config/lsd/config.yaml: -------------------------------------------------------------------------------- 1 | icons: 2 | when: never 3 | 4 | sorting: 5 | dir-grouping: first 6 | 7 | date: '+%Y-%m-%d %H:%M' 8 | size: short 9 | -------------------------------------------------------------------------------- /.config/mypy/config: -------------------------------------------------------------------------------- 1 | [mypy] 2 | strict = True 3 | -------------------------------------------------------------------------------- /.config/nvim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "git.addGBlameToVirtualText": true, 3 | "semanticTokens.enable": true, 4 | "coc.preferences.formatOnSaveFiletypes": ["cpp", "c", "go"], 5 | "languageserver": { 6 | "go": { 7 | "command": "gopls", 8 | "rootPatterns": ["go.work", "go.mod", ".git/"], 9 | "fileTypes": ["go"], 10 | "initializationOptions": { 11 | "usePlaceholders": true 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | let autoload_path = '/nvim/site/autoload/plug.vim' 2 | let plug_path = exists('$XDG_DATA_HOME') ? $XDG_DATA_HOME . autoload_path : $HOME . '/.local/share' . autoload_path 3 | if empty(glob(plug_path)) 4 | silent execute '!curl -fLo '.plug_path.' --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' 5 | autocmd VimEnter * PlugInstall --sync | source $MYVIMRC 6 | endif 7 | 8 | let mapleader=' ' 9 | 10 | call plug#begin() 11 | Plug 'scrooloose/nerdtree' 12 | let NERDTreeMinimalUI = 1 13 | let NERDTreeDirArrows = 1 14 | let g:NERDTreeDirArrowExpandable = '+' 15 | let g:NERDTreeDirArrowCollapsible = '-' 16 | 17 | nnoremap :NERDTreeToggle 18 | 19 | Plug 'scrooloose/nerdcommenter' 20 | let g:NERDCreateDefaultMappings = 0 21 | let g:NERDSpaceDelims = 1 22 | let g:NERDCompactSexyComs = 1 23 | let g:NERDDefaultAlign = 'left' 24 | let g:NERDAltDelims_java = 1 25 | let g:NERDCommentEmptyLines = 1 26 | let g:NERDTrimTrailingWhitespace = 1 27 | let g:NERDToggleCheckAllLines = 1 28 | let g:uname = substitute(system('uname -s'), '\n', '', '') 29 | if g:uname == 'Linux' 30 | nnoremap NERDCommenterToggle 31 | vnoremap NERDCommenterTogglegv 32 | else 33 | nnoremap NERDCommenterToggle 34 | vnoremap NERDCommenterTogglegv 35 | endif 36 | 37 | Plug 'neoclide/coc.nvim', {'branch': 'release'} 38 | " supported extensions: https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions#implemented-coc-extensions 39 | let g:coc_global_extensions= ['coc-clangd', 'coc-go', 'coc-sh', 'coc-pyright', 'coc-rust-analyzer', 'coc-git'] 40 | 41 | nmap [g (coc-git-prevchunk) 42 | nmap ]g (coc-git-nextchunk) 43 | nmap [c (coc-git-prevconflict) 44 | nmap ]c (coc-git-nextconflict) 45 | nmap gs (coc-git-chunkinfo) 46 | nmap gc (coc-git-commit) 47 | 48 | autocmd BufWritePre *.go :silent call CocAction('runCommand', 'editor.action.organizeImport') 49 | inoremap coc#pum#visible() ? coc#pum#next(1) : CheckBackspace() ? "\" : coc#refresh() 50 | inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" 51 | inoremap coc#pum#visible() ? coc#pum#confirm() : "\u\\=coc#on_enter()\" 52 | nmap gd (coc-definition) 53 | nmap gy (coc-type-definition) 54 | nmap gi (coc-implementation) 55 | nmap gr (coc-references) 56 | nmap rn (coc-rename) 57 | 58 | command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') 59 | command! -nargs=? Fold :call CocAction('fold', ) 60 | 61 | function! CheckBackspace() abort 62 | let col = col('.') - 1 63 | return !col || getline('.')[col - 1] =~# '\s' 64 | endfunction 65 | 66 | Plug 'dense-analysis/ale' 67 | let g:ale_set_highlights = 1 68 | let g:ale_set_quickfix = 1 69 | let g:ale_echo_msg_error_str = 'E' 70 | let g:ale_echo_msg_warning_str = 'W' 71 | let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' 72 | let g:ale_lint_on_enter = 1 73 | let g:ale_hints = { 74 | \ 'go': ['gopls'], 75 | \} 76 | 77 | nmap sp (ale_previous_wrap) 78 | nmap sn (ale_next_wrap) 79 | 80 | Plug 'easymotion/vim-easymotion' 81 | let g:EasyMotion_do_mapping = 0 82 | let g:EasyMotion_smartcase = 1 83 | 84 | map j (easymotion-j) 85 | map k (easymotion-k) 86 | nmap ss (easymotion-s2) 87 | 88 | Plug 'junegunn/vim-easy-align' 89 | xmap ga (EasyAlign) 90 | nmap ga (EasyAlign) 91 | 92 | Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } 93 | Plug 'junegunn/fzf.vim' 94 | 95 | Plug 'shaunsingh/nord.nvim' 96 | Plug 'tpope/vim-surround' 97 | Plug 'jiangmiao/auto-pairs' 98 | Plug 'thirtythreeforty/lessspace.vim' 99 | Plug 'editorconfig/editorconfig-vim' 100 | call plug#end() 101 | 102 | colorscheme nord 103 | 104 | set nu 105 | set encoding=utf-8 106 | set nobackup 107 | set nowritebackup 108 | set updatetime=300 109 | set signcolumn=yes 110 | set ignorecase 111 | 112 | autocmd BufWrite,BufRead *.go,*.c,*.cpp,Makefile setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 113 | autocmd BufWrite,BufRead *.yml,*.yaml,*.json setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 114 | 115 | nnoremap H h 116 | nnoremap J j 117 | nnoremap K k 118 | nnoremap L l 119 | 120 | function! GitBranch() 121 | return system("git rev-parse --abbrev-ref HEAD 2> /dev/null | tr -d '\n'") 122 | endfunction 123 | function! StatuslineGit() 124 | let l:branchname = GitBranch() 125 | return strlen(l:branchname) > 0?' br:'.l:branchname.' ':'' 126 | endfunction 127 | set statusline= 128 | set statusline+=\ %{mode()} 129 | " set statusline+=%#PmenuSel# 130 | set statusline+=\ %{StatuslineGit()} 131 | " set statusline+=%#LineNr# 132 | set statusline+=\ %f 133 | set statusline+=%m 134 | set statusline+=%= 135 | set statusline+=\ %y 136 | set statusline+=\ %{&fileencoding?&fileencoding:&encoding} 137 | set statusline+=\[%{&fileformat}\] 138 | set statusline+=\ %l/%L:%c 139 | -------------------------------------------------------------------------------- /.config/pip/pip.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | index-url = http://mirrors.aliyun.com/pypi/simple/ 3 | 4 | [install] 5 | trusted-host = mirrors.aliyun.com 6 | 7 | -------------------------------------------------------------------------------- /.config/ranger/rc.conf##os.Darwin: -------------------------------------------------------------------------------- 1 | # =================================================================== 2 | # This file contains the default startup commands for ranger. 3 | # To change them, it is recommended to create either /etc/ranger/rc.conf 4 | # (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom 5 | # commands there. 6 | # 7 | # If you copy this whole file there, you may want to set the environment 8 | # variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. 9 | # 10 | # The purpose of this file is mainly to define keybindings and settings. 11 | # For running more complex python code, please create a plugin in "plugins/" or 12 | # a command in "commands.py". 13 | # 14 | # Each line is a command that will be run before the user interface 15 | # is initialized. As a result, you can not use commands which rely 16 | # on the UI such as :delete or :mark. 17 | # =================================================================== 18 | 19 | # =================================================================== 20 | # == Options 21 | # =================================================================== 22 | 23 | # Which viewmode should be used? Possible values are: 24 | # miller: Use miller columns which show multiple levels of the hierarchy 25 | # multipane: Midnight-commander like multipane view showing all tabs next 26 | # to each other 27 | set viewmode miller 28 | #set viewmode multipane 29 | 30 | # How many columns are there, and what are their relative widths? 31 | set column_ratios 1,3,4 32 | 33 | # Which files should be hidden? (regular expression) 34 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ 35 | 36 | # Show hidden files? You can toggle this by typing 'zh' 37 | set show_hidden false 38 | 39 | # Ask for a confirmation when running the "delete" command? 40 | # Valid values are "always", "never", "multiple" (default) 41 | # With "multiple", ranger will ask only if you delete multiple files at once. 42 | set confirm_on_delete multiple 43 | 44 | # Use non-default path for file preview script? 45 | # ranger ships with scope.sh, a script that calls external programs (see 46 | # README.md for dependencies) to preview images, archives, etc. 47 | #set preview_script ~/.config/ranger/scope.sh 48 | 49 | # Use the external preview script or display simple plain text or image previews? 50 | set use_preview_script true 51 | 52 | # Automatically count files in the directory, even before entering them? 53 | set automatically_count_files true 54 | 55 | # Open all images in this directory when running certain image viewers 56 | # like feh or sxiv? You can still open selected files by marking them. 57 | set open_all_images true 58 | 59 | # Be aware of version control systems and display information. 60 | set vcs_aware false 61 | 62 | # State of the four backends git, hg, bzr, svn. The possible states are 63 | # disabled, local (only show local info), enabled (show local and remote 64 | # information). 65 | set vcs_backend_git enabled 66 | set vcs_backend_hg disabled 67 | set vcs_backend_bzr disabled 68 | set vcs_backend_svn disabled 69 | 70 | # Use one of the supported image preview protocols 71 | set preview_images true 72 | 73 | # Set the preview image method. Supported methods: 74 | # 75 | # * w3m (default): 76 | # Preview images in full color with the external command "w3mimgpreview"? 77 | # This requires the console web browser "w3m" and a supported terminal. 78 | # It has been successfully tested with "xterm" and "urxvt" without tmux. 79 | # 80 | # * iterm2: 81 | # Preview images in full color using iTerm2 image previews 82 | # (http://iterm2.com/images.html). This requires using iTerm2 compiled 83 | # with image preview support. 84 | # 85 | # This feature relies on the dimensions of the terminal's font. By default, a 86 | # width of 8 and height of 11 are used. To use other values, set the options 87 | # iterm2_font_width and iterm2_font_height to the desired values. 88 | # 89 | # * terminology: 90 | # Previews images in full color in the terminology terminal emulator. 91 | # Supports a wide variety of formats, even vector graphics like svg. 92 | # 93 | # * urxvt: 94 | # Preview images in full color using urxvt image backgrounds. This 95 | # requires using urxvt compiled with pixbuf support. 96 | # 97 | # * urxvt-full: 98 | # The same as urxvt but utilizing not only the preview pane but the 99 | # whole terminal window. 100 | # 101 | # * kitty: 102 | # Preview images in full color using kitty image protocol. 103 | # Requires python PIL or pillow library. 104 | # If ranger does not share the local filesystem with kitty 105 | # the transfer method is changed to encode the whole image; 106 | # while slower, this allows remote previews, 107 | # for example during an ssh session. 108 | # Tmux is unsupported. 109 | set preview_images_method iterm2 110 | 111 | # Delay in seconds before displaying an image with the w3m method. 112 | # Increase it in case of experiencing display corruption. 113 | set w3m_delay 0.02 114 | 115 | # Default iTerm2 font size (see: preview_images_method: iterm2) 116 | set iterm2_font_width 8 117 | set iterm2_font_height 11 118 | 119 | # Use a unicode "..." character to mark cut-off filenames? 120 | set unicode_ellipsis false 121 | 122 | # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). 123 | # Requires the python-bidi pip package 124 | set bidi_support false 125 | 126 | # Show dotfiles in the bookmark preview box? 127 | set show_hidden_bookmarks true 128 | 129 | # Which colorscheme to use? These colorschemes are available by default: 130 | # default, jungle, snow, solarized 131 | set colorscheme default 132 | 133 | # Preview files on the rightmost column? 134 | # And collapse (shrink) the last column if there is nothing to preview? 135 | set preview_files true 136 | set preview_directories true 137 | set collapse_preview true 138 | 139 | # Save the console history on exit? 140 | set save_console_history true 141 | 142 | # Draw the status bar on top of the browser window (default: bottom) 143 | set status_bar_on_top false 144 | 145 | # Draw a progress bar in the status bar which displays the average state of all 146 | # currently running tasks which support progress bars? 147 | set draw_progress_bar_in_status_bar true 148 | 149 | # Draw borders around columns? (separators, outline, both, or none) 150 | # Separators are vertical lines between columns. 151 | # Outline draws a box around all the columns. 152 | # Both combines the two. 153 | set draw_borders none 154 | 155 | # Display the directory name in tabs? 156 | set dirname_in_tabs false 157 | 158 | # Enable the mouse support? 159 | set mouse_enabled true 160 | 161 | # Display the file size in the main column or status bar? 162 | set display_size_in_main_column true 163 | set display_size_in_status_bar true 164 | 165 | # Display the free disk space in the status bar? 166 | set display_free_space_in_status_bar true 167 | 168 | # Display files tags in all columns or only in main column? 169 | set display_tags_in_all_columns true 170 | 171 | # Set a title for the window? 172 | set update_title true 173 | 174 | # Set the title to "ranger" in the tmux program? 175 | set update_tmux_title true 176 | 177 | # Shorten the title if it gets long? The number defines how many 178 | # directories are displayed at once, 0 turns off this feature. 179 | set shorten_title 3 180 | 181 | # Show hostname in titlebar? 182 | set hostname_in_titlebar false 183 | 184 | # Abbreviate $HOME with ~ in the titlebar (first line) of ranger? 185 | set tilde_in_titlebar false 186 | 187 | # How many directory-changes or console-commands should be kept in history? 188 | set max_history_size 20 189 | set max_console_history_size 50 190 | 191 | # Try to keep so much space between the top/bottom border when scrolling: 192 | set scroll_offset 8 193 | 194 | # Flush the input after each key hit? (Noticeable when ranger lags) 195 | set flushinput true 196 | 197 | # Padding on the right when there's no preview? 198 | # This allows you to click into the space to run the file. 199 | set padding_right true 200 | 201 | # Save bookmarks (used with mX and `X) instantly? 202 | # This helps to synchronize bookmarks between multiple ranger 203 | # instances but leads to *slight* performance loss. 204 | # When false, bookmarks are saved when ranger is exited. 205 | set autosave_bookmarks true 206 | 207 | # Save the "`" bookmark to disk. This can be used to switch to the last 208 | # directory by typing "``". 209 | set save_backtick_bookmark true 210 | 211 | # You can display the "real" cumulative size of directories by using the 212 | # command :get_cumulative_size or typing "dc". The size is expensive to 213 | # calculate and will not be updated automatically. You can choose 214 | # to update it automatically though by turning on this option: 215 | set autoupdate_cumulative_size false 216 | 217 | # Turning this on makes sense for screen readers: 218 | set show_cursor false 219 | 220 | # One of: size, natural, basename, atime, ctime, mtime, type, random 221 | set sort natural 222 | 223 | # Additional sorting options 224 | set sort_reverse false 225 | set sort_case_insensitive true 226 | set sort_directories_first true 227 | set sort_unicode false 228 | 229 | # Enable this if key combinations with the Alt Key don't work for you. 230 | # (Especially on xterm) 231 | set xterm_alt_key false 232 | 233 | # Whether to include bookmarks in cd command 234 | set cd_bookmarks true 235 | 236 | # Changes case sensitivity for the cd command tab completion 237 | set cd_tab_case sensitive 238 | 239 | # Use fuzzy tab completion with the "cd" command. For example, 240 | # ":cd /u/lo/b" expands to ":cd /usr/local/bin". 241 | set cd_tab_fuzzy false 242 | 243 | # Avoid previewing files larger than this size, in bytes. Use a value of 0 to 244 | # disable this feature. 245 | set preview_max_size 0 246 | 247 | # The key hint lists up to this size have their sublists expanded. 248 | # Otherwise the submaps are replaced with "...". 249 | set hint_collapse_threshold 10 250 | 251 | # Add the highlighted file to the path in the titlebar 252 | set show_selection_in_titlebar true 253 | 254 | # The delay that ranger idly waits for user input, in milliseconds, with a 255 | # resolution of 100ms. Lower delay reduces lag between directory updates but 256 | # increases CPU load. 257 | set idle_delay 2000 258 | 259 | # When the metadata manager module looks for metadata, should it only look for 260 | # a ".metadata.json" file in the current directory, or do a deep search and 261 | # check all directories above the current one as well? 262 | set metadata_deep_search false 263 | 264 | # Clear all existing filters when leaving a directory 265 | set clear_filters_on_dir_change false 266 | 267 | # Disable displaying line numbers in main column. 268 | # Possible values: false, absolute, relative. 269 | set line_numbers false 270 | 271 | # When line_numbers=relative show the absolute line number in the 272 | # current line. 273 | set relative_current_zero false 274 | 275 | # Start line numbers from 1 instead of 0 276 | set one_indexed false 277 | 278 | # Save tabs on exit 279 | set save_tabs_on_exit false 280 | 281 | # Enable scroll wrapping - moving down while on the last item will wrap around to 282 | # the top and vice versa. 283 | set wrap_scroll false 284 | 285 | # Set the global_inode_type_filter to nothing. Possible options: d, f and l for 286 | # directories, files and symlinks respectively. 287 | set global_inode_type_filter 288 | 289 | # This setting allows to freeze the list of files to save I/O bandwidth. It 290 | # should be 'false' during start-up, but you can toggle it by pressing F. 291 | set freeze_files false 292 | 293 | # =================================================================== 294 | # == Local Options 295 | # =================================================================== 296 | # You can set local options that only affect a single directory. 297 | 298 | # Examples: 299 | # setlocal path=~/downloads sort mtime 300 | 301 | # =================================================================== 302 | # == Command Aliases in the Console 303 | # =================================================================== 304 | 305 | alias e edit 306 | alias q quit 307 | alias q! quit! 308 | alias qa quitall 309 | alias qa! quitall! 310 | alias qall quitall 311 | alias qall! quitall! 312 | alias setl setlocal 313 | 314 | alias filter scout -prts 315 | alias find scout -aets 316 | alias mark scout -mr 317 | alias unmark scout -Mr 318 | alias search scout -rs 319 | alias search_inc scout -rts 320 | alias travel scout -aefklst 321 | 322 | # =================================================================== 323 | # == Define keys for the browser 324 | # =================================================================== 325 | 326 | # Basic 327 | map Q quitall 328 | map q quit 329 | copymap q ZZ ZQ 330 | 331 | map R reload_cwd 332 | map F set freeze_files! 333 | map reset 334 | map redraw_window 335 | map abort 336 | map change_mode normal 337 | map ~ set viewmode! 338 | 339 | map i display_file 340 | map ? help 341 | map W display_log 342 | map w taskview_open 343 | map S shell $SHELL 344 | 345 | map : console 346 | map ; console 347 | map ! console shell%space 348 | map @ console -p6 shell %%s 349 | map # console shell -p%space 350 | map s console shell%space 351 | map r chain draw_possible_programs; console open_with%%space 352 | map f console find%space 353 | map cd console cd%space 354 | 355 | map chain console; eval fm.ui.console.history_move(-1) 356 | 357 | # Change the line mode 358 | map Mf linemode filename 359 | map Mi linemode fileinfo 360 | map Mm linemode mtime 361 | map Mp linemode permissions 362 | map Ms linemode sizemtime 363 | map Mt linemode metatitle 364 | 365 | # Tagging / Marking 366 | map t tag_toggle 367 | map ut tag_remove 368 | map " tag_toggle tag=%any 369 | map mark_files toggle=True 370 | map v mark_files all=True toggle=True 371 | map uv mark_files all=True val=False 372 | map V toggle_visual_mode 373 | map uV toggle_visual_mode reverse=True 374 | 375 | # For the nostalgics: Midnight Commander bindings 376 | map help 377 | map rename_append 378 | map display_file 379 | map edit 380 | map copy 381 | map cut 382 | map console mkdir%space 383 | map console delete 384 | map exit 385 | 386 | # In case you work on a keyboard with dvorak layout 387 | map move up=1 388 | map move down=1 389 | map move left=1 390 | map move right=1 391 | map move to=0 392 | map move to=-1 393 | map move down=1 pages=True 394 | map move up=1 pages=True 395 | map move right=1 396 | #map console delete 397 | map console touch%space 398 | 399 | # VIM-like 400 | copymap k 401 | copymap j 402 | copymap h 403 | copymap l 404 | copymap gg 405 | copymap G 406 | copymap 407 | copymap 408 | 409 | map J move down=0.5 pages=True 410 | map K move up=0.5 pages=True 411 | copymap J 412 | copymap K 413 | 414 | # Jumping around 415 | map H history_go -1 416 | map L history_go 1 417 | map ] move_parent 1 418 | map [ move_parent -1 419 | map } traverse 420 | map { traverse_backwards 421 | map ) jump_non 422 | 423 | map gh cd ~ 424 | map ge cd /etc 425 | map gu cd /usr 426 | map gd cd /dev 427 | map gl cd -r . 428 | map gL cd -r %f 429 | map go cd /opt 430 | map gv cd /var 431 | map gm cd /media 432 | map gi eval fm.cd('/run/media/' + os.getenv('USER')) 433 | map gM cd /mnt 434 | map gs cd /srv 435 | map gp cd /tmp 436 | map gr cd / 437 | map gR eval fm.cd(ranger.RANGERDIR) 438 | map g/ cd / 439 | map g? cd /usr/share/doc/ranger 440 | 441 | # External Programs 442 | map E edit 443 | map du shell -p du --max-depth=1 -h --apparent-size 444 | map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh 445 | map yp yank path 446 | map yd yank dir 447 | map yn yank name 448 | map y. yank name_without_extension 449 | 450 | # Filesystem Operations 451 | map = chmod 452 | 453 | map cw console rename%space 454 | map a rename_append 455 | map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) 456 | map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) 457 | 458 | map pp paste 459 | map po paste overwrite=True 460 | map pP paste append=True 461 | map pO paste overwrite=True append=True 462 | map pl paste_symlink relative=False 463 | map pL paste_symlink relative=True 464 | map phl paste_hardlink 465 | map pht paste_hardlinked_subtree 466 | 467 | map dD console delete 468 | 469 | map dd cut 470 | map ud uncut 471 | map da cut mode=add 472 | map dr cut mode=remove 473 | map dt cut mode=toggle 474 | 475 | map yy copy 476 | map uy uncut 477 | map ya copy mode=add 478 | map yr copy mode=remove 479 | map yt copy mode=toggle 480 | 481 | # Temporary workarounds 482 | map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) 483 | map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) 484 | map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) 485 | map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) 486 | map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) 487 | map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) 488 | map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) 489 | map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) 490 | 491 | # Searching 492 | map / console search%space 493 | map n search_next 494 | map N search_next forward=False 495 | map ct search_next order=tag 496 | map cs search_next order=size 497 | map ci search_next order=mimetype 498 | map cc search_next order=ctime 499 | map cm search_next order=mtime 500 | map ca search_next order=atime 501 | 502 | # Tabs 503 | map tab_new 504 | map tab_close 505 | map tab_move 1 506 | map tab_move -1 507 | map tab_move 1 508 | map tab_move -1 509 | map gt tab_move 1 510 | map gT tab_move -1 511 | map gn tab_new 512 | map gc tab_close 513 | map uq tab_restore 514 | map tab_open 1 515 | map tab_open 2 516 | map tab_open 3 517 | map tab_open 4 518 | map tab_open 5 519 | map tab_open 6 520 | map tab_open 7 521 | map tab_open 8 522 | map tab_open 9 523 | map tab_shift 1 524 | map tab_shift -1 525 | 526 | # Sorting 527 | map or set sort_reverse! 528 | map oz set sort=random 529 | map os chain set sort=size; set sort_reverse=False 530 | map ob chain set sort=basename; set sort_reverse=False 531 | map on chain set sort=natural; set sort_reverse=False 532 | map om chain set sort=mtime; set sort_reverse=False 533 | map oc chain set sort=ctime; set sort_reverse=False 534 | map oa chain set sort=atime; set sort_reverse=False 535 | map ot chain set sort=type; set sort_reverse=False 536 | map oe chain set sort=extension; set sort_reverse=False 537 | 538 | map oS chain set sort=size; set sort_reverse=True 539 | map oB chain set sort=basename; set sort_reverse=True 540 | map oN chain set sort=natural; set sort_reverse=True 541 | map oM chain set sort=mtime; set sort_reverse=True 542 | map oC chain set sort=ctime; set sort_reverse=True 543 | map oA chain set sort=atime; set sort_reverse=True 544 | map oT chain set sort=type; set sort_reverse=True 545 | map oE chain set sort=extension; set sort_reverse=True 546 | 547 | map dc get_cumulative_size 548 | 549 | # Settings 550 | map zc set collapse_preview! 551 | map zd set sort_directories_first! 552 | map zh set show_hidden! 553 | map set show_hidden! 554 | copymap 555 | copymap 556 | map zI set flushinput! 557 | map zi set preview_images! 558 | map zm set mouse_enabled! 559 | map zp set preview_files! 560 | map zP set preview_directories! 561 | map zs set sort_case_insensitive! 562 | map zu set autoupdate_cumulative_size! 563 | map zv set use_preview_script! 564 | map zf console filter%space 565 | copymap zf zz 566 | 567 | # Filter stack 568 | map .n console filter_stack add name%space 569 | map .m console filter_stack add mime%space 570 | map .d filter_stack add type d 571 | map .f filter_stack add type f 572 | map .l filter_stack add type l 573 | map .| filter_stack add or 574 | map .& filter_stack add and 575 | map .! filter_stack add not 576 | map .r console filter_stack rotate 577 | map .c filter_stack clear 578 | map .* filter_stack decompose 579 | map .p filter_stack pop 580 | map .. filter_stack show 581 | 582 | # Bookmarks 583 | map ` enter_bookmark %any 584 | map ' enter_bookmark %any 585 | map m set_bookmark %any 586 | map um unset_bookmark %any 587 | 588 | map m draw_bookmarks 589 | copymap m um ` ' 590 | 591 | # Generate all the chmod bindings with some python help: 592 | eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) 593 | eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) 594 | eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) 595 | eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) 596 | eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) 597 | 598 | eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) 599 | eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) 600 | eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) 601 | eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) 602 | eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) 603 | 604 | # =================================================================== 605 | # == Define keys for the console 606 | # =================================================================== 607 | # Note: Unmapped keys are passed directly to the console. 608 | 609 | # Basic 610 | cmap eval fm.ui.console.tab() 611 | cmap eval fm.ui.console.tab(-1) 612 | cmap eval fm.ui.console.close() 613 | cmap eval fm.ui.console.execute() 614 | cmap redraw_window 615 | 616 | copycmap 617 | copycmap 618 | 619 | # Move around 620 | cmap eval fm.ui.console.history_move(-1) 621 | cmap eval fm.ui.console.history_move(1) 622 | cmap eval fm.ui.console.move(left=1) 623 | cmap eval fm.ui.console.move(right=1) 624 | cmap eval fm.ui.console.move(right=0, absolute=True) 625 | cmap eval fm.ui.console.move(right=-1, absolute=True) 626 | cmap eval fm.ui.console.move_word(left=1) 627 | cmap eval fm.ui.console.move_word(right=1) 628 | 629 | copycmap 630 | copycmap 631 | 632 | # Line Editing 633 | cmap eval fm.ui.console.delete(-1) 634 | cmap eval fm.ui.console.delete(0) 635 | cmap eval fm.ui.console.delete_word() 636 | cmap eval fm.ui.console.delete_word(backward=False) 637 | cmap eval fm.ui.console.delete_rest(1) 638 | cmap eval fm.ui.console.delete_rest(-1) 639 | cmap eval fm.ui.console.paste() 640 | 641 | # And of course the emacs way 642 | copycmap 643 | copycmap 644 | copycmap 645 | copycmap 646 | copycmap 647 | copycmap 648 | copycmap 649 | copycmap 650 | copycmap 651 | 652 | # Note: There are multiple ways to express backspaces. (code 263) 653 | # and (code 127). To be sure, use both. 654 | copycmap 655 | 656 | # This special expression allows typing in numerals: 657 | cmap false 658 | 659 | # =================================================================== 660 | # == Pager Keybindings 661 | # =================================================================== 662 | 663 | # Movement 664 | pmap pager_move down=1 665 | pmap pager_move up=1 666 | pmap pager_move left=4 667 | pmap pager_move right=4 668 | pmap pager_move to=0 669 | pmap pager_move to=-1 670 | pmap pager_move down=1.0 pages=True 671 | pmap pager_move up=1.0 pages=True 672 | pmap pager_move down=0.5 pages=True 673 | pmap pager_move up=0.5 pages=True 674 | 675 | copypmap k 676 | copypmap j 677 | copypmap h 678 | copypmap l 679 | copypmap g 680 | copypmap G 681 | copypmap d 682 | copypmap u 683 | copypmap n f 684 | copypmap p b 685 | 686 | # Basic 687 | pmap redraw_window 688 | pmap pager_close 689 | copypmap q Q i 690 | pmap E edit_file 691 | 692 | # =================================================================== 693 | # == Taskview Keybindings 694 | # =================================================================== 695 | 696 | # Movement 697 | tmap taskview_move up=1 698 | tmap taskview_move down=1 699 | tmap taskview_move to=0 700 | tmap taskview_move to=-1 701 | tmap taskview_move down=1.0 pages=True 702 | tmap taskview_move up=1.0 pages=True 703 | tmap taskview_move down=0.5 pages=True 704 | tmap taskview_move up=0.5 pages=True 705 | 706 | copytmap k 707 | copytmap j 708 | copytmap g 709 | copytmap G 710 | copytmap u 711 | copytmap n f 712 | copytmap p b 713 | 714 | # Changing priority and deleting tasks 715 | tmap J eval -q fm.ui.taskview.task_move(-1) 716 | tmap K eval -q fm.ui.taskview.task_move(0) 717 | tmap dd eval -q fm.ui.taskview.task_remove() 718 | tmap eval -q fm.ui.taskview.task_move(-1) 719 | tmap eval -q fm.ui.taskview.task_move(0) 720 | tmap eval -q fm.ui.taskview.task_remove() 721 | 722 | # Basic 723 | tmap redraw_window 724 | tmap taskview_close 725 | copytmap q Q w 726 | 727 | default_linemode devicons 728 | -------------------------------------------------------------------------------- /.config/ranger/rc.conf##os.Linux: -------------------------------------------------------------------------------- 1 | # =================================================================== 2 | # This file contains the default startup commands for ranger. 3 | # To change them, it is recommended to create either /etc/ranger/rc.conf 4 | # (system-wide) or ~/.config/ranger/rc.conf (per user) and add your custom 5 | # commands there. 6 | # 7 | # If you copy this whole file there, you may want to set the environment 8 | # variable RANGER_LOAD_DEFAULT_RC to FALSE to avoid loading it twice. 9 | # 10 | # The purpose of this file is mainly to define keybindings and settings. 11 | # For running more complex python code, please create a plugin in "plugins/" or 12 | # a command in "commands.py". 13 | # 14 | # Each line is a command that will be run before the user interface 15 | # is initialized. As a result, you can not use commands which rely 16 | # on the UI such as :delete or :mark. 17 | # =================================================================== 18 | 19 | # =================================================================== 20 | # == Options 21 | # =================================================================== 22 | 23 | # Which viewmode should be used? Possible values are: 24 | # miller: Use miller columns which show multiple levels of the hierarchy 25 | # multipane: Midnight-commander like multipane view showing all tabs next 26 | # to each other 27 | set viewmode miller 28 | #set viewmode multipane 29 | 30 | # How many columns are there, and what are their relative widths? 31 | set column_ratios 1,3,4 32 | 33 | # Which files should be hidden? (regular expression) 34 | set hidden_filter ^\.|\.(?:pyc|pyo|bak|swp)$|^lost\+found$|^__(py)?cache__$ 35 | 36 | # Show hidden files? You can toggle this by typing 'zh' 37 | set show_hidden false 38 | 39 | # Ask for a confirmation when running the "delete" command? 40 | # Valid values are "always", "never", "multiple" (default) 41 | # With "multiple", ranger will ask only if you delete multiple files at once. 42 | set confirm_on_delete multiple 43 | 44 | # Use non-default path for file preview script? 45 | # ranger ships with scope.sh, a script that calls external programs (see 46 | # README.md for dependencies) to preview images, archives, etc. 47 | #set preview_script ~/.config/ranger/scope.sh 48 | 49 | # Use the external preview script or display simple plain text or image previews? 50 | set use_preview_script true 51 | 52 | # Automatically count files in the directory, even before entering them? 53 | set automatically_count_files true 54 | 55 | # Open all images in this directory when running certain image viewers 56 | # like feh or sxiv? You can still open selected files by marking them. 57 | set open_all_images true 58 | 59 | # Be aware of version control systems and display information. 60 | set vcs_aware false 61 | 62 | # State of the four backends git, hg, bzr, svn. The possible states are 63 | # disabled, local (only show local info), enabled (show local and remote 64 | # information). 65 | set vcs_backend_git enabled 66 | set vcs_backend_hg disabled 67 | set vcs_backend_bzr disabled 68 | set vcs_backend_svn disabled 69 | 70 | # Use one of the supported image preview protocols 71 | set preview_images true 72 | 73 | # Set the preview image method. Supported methods: 74 | # 75 | # * w3m (default): 76 | # Preview images in full color with the external command "w3mimgpreview"? 77 | # This requires the console web browser "w3m" and a supported terminal. 78 | # It has been successfully tested with "xterm" and "urxvt" without tmux. 79 | # 80 | # * iterm2: 81 | # Preview images in full color using iTerm2 image previews 82 | # (http://iterm2.com/images.html). This requires using iTerm2 compiled 83 | # with image preview support. 84 | # 85 | # This feature relies on the dimensions of the terminal's font. By default, a 86 | # width of 8 and height of 11 are used. To use other values, set the options 87 | # iterm2_font_width and iterm2_font_height to the desired values. 88 | # 89 | # * terminology: 90 | # Previews images in full color in the terminology terminal emulator. 91 | # Supports a wide variety of formats, even vector graphics like svg. 92 | # 93 | # * urxvt: 94 | # Preview images in full color using urxvt image backgrounds. This 95 | # requires using urxvt compiled with pixbuf support. 96 | # 97 | # * urxvt-full: 98 | # The same as urxvt but utilizing not only the preview pane but the 99 | # whole terminal window. 100 | # 101 | # * kitty: 102 | # Preview images in full color using kitty image protocol. 103 | # Requires python PIL or pillow library. 104 | # If ranger does not share the local filesystem with kitty 105 | # the transfer method is changed to encode the whole image; 106 | # while slower, this allows remote previews, 107 | # for example during an ssh session. 108 | # Tmux is unsupported. 109 | set preview_images_method w3m 110 | 111 | # Delay in seconds before displaying an image with the w3m method. 112 | # Increase it in case of experiencing display corruption. 113 | set w3m_delay 0.02 114 | 115 | # Default iTerm2 font size (see: preview_images_method: iterm2) 116 | set iterm2_font_width 8 117 | set iterm2_font_height 11 118 | 119 | # Use a unicode "..." character to mark cut-off filenames? 120 | set unicode_ellipsis false 121 | 122 | # BIDI support - try to properly display file names in RTL languages (Hebrew, Arabic). 123 | # Requires the python-bidi pip package 124 | set bidi_support false 125 | 126 | # Show dotfiles in the bookmark preview box? 127 | set show_hidden_bookmarks true 128 | 129 | # Which colorscheme to use? These colorschemes are available by default: 130 | # default, jungle, snow, solarized 131 | set colorscheme default 132 | 133 | # Preview files on the rightmost column? 134 | # And collapse (shrink) the last column if there is nothing to preview? 135 | set preview_files true 136 | set preview_directories true 137 | set collapse_preview true 138 | 139 | # Save the console history on exit? 140 | set save_console_history true 141 | 142 | # Draw the status bar on top of the browser window (default: bottom) 143 | set status_bar_on_top false 144 | 145 | # Draw a progress bar in the status bar which displays the average state of all 146 | # currently running tasks which support progress bars? 147 | set draw_progress_bar_in_status_bar true 148 | 149 | # Draw borders around columns? (separators, outline, both, or none) 150 | # Separators are vertical lines between columns. 151 | # Outline draws a box around all the columns. 152 | # Both combines the two. 153 | set draw_borders none 154 | 155 | # Display the directory name in tabs? 156 | set dirname_in_tabs false 157 | 158 | # Enable the mouse support? 159 | set mouse_enabled true 160 | 161 | # Display the file size in the main column or status bar? 162 | set display_size_in_main_column true 163 | set display_size_in_status_bar true 164 | 165 | # Display the free disk space in the status bar? 166 | set display_free_space_in_status_bar true 167 | 168 | # Display files tags in all columns or only in main column? 169 | set display_tags_in_all_columns true 170 | 171 | # Set a title for the window? 172 | set update_title true 173 | 174 | # Set the title to "ranger" in the tmux program? 175 | set update_tmux_title true 176 | 177 | # Shorten the title if it gets long? The number defines how many 178 | # directories are displayed at once, 0 turns off this feature. 179 | set shorten_title 3 180 | 181 | # Show hostname in titlebar? 182 | set hostname_in_titlebar false 183 | 184 | # Abbreviate $HOME with ~ in the titlebar (first line) of ranger? 185 | set tilde_in_titlebar false 186 | 187 | # How many directory-changes or console-commands should be kept in history? 188 | set max_history_size 20 189 | set max_console_history_size 50 190 | 191 | # Try to keep so much space between the top/bottom border when scrolling: 192 | set scroll_offset 8 193 | 194 | # Flush the input after each key hit? (Noticeable when ranger lags) 195 | set flushinput true 196 | 197 | # Padding on the right when there's no preview? 198 | # This allows you to click into the space to run the file. 199 | set padding_right true 200 | 201 | # Save bookmarks (used with mX and `X) instantly? 202 | # This helps to synchronize bookmarks between multiple ranger 203 | # instances but leads to *slight* performance loss. 204 | # When false, bookmarks are saved when ranger is exited. 205 | set autosave_bookmarks true 206 | 207 | # Save the "`" bookmark to disk. This can be used to switch to the last 208 | # directory by typing "``". 209 | set save_backtick_bookmark true 210 | 211 | # You can display the "real" cumulative size of directories by using the 212 | # command :get_cumulative_size or typing "dc". The size is expensive to 213 | # calculate and will not be updated automatically. You can choose 214 | # to update it automatically though by turning on this option: 215 | set autoupdate_cumulative_size false 216 | 217 | # Turning this on makes sense for screen readers: 218 | set show_cursor false 219 | 220 | # One of: size, natural, basename, atime, ctime, mtime, type, random 221 | set sort natural 222 | 223 | # Additional sorting options 224 | set sort_reverse false 225 | set sort_case_insensitive true 226 | set sort_directories_first true 227 | set sort_unicode false 228 | 229 | # Enable this if key combinations with the Alt Key don't work for you. 230 | # (Especially on xterm) 231 | set xterm_alt_key false 232 | 233 | # Whether to include bookmarks in cd command 234 | set cd_bookmarks true 235 | 236 | # Changes case sensitivity for the cd command tab completion 237 | set cd_tab_case sensitive 238 | 239 | # Use fuzzy tab completion with the "cd" command. For example, 240 | # ":cd /u/lo/b" expands to ":cd /usr/local/bin". 241 | set cd_tab_fuzzy false 242 | 243 | # Avoid previewing files larger than this size, in bytes. Use a value of 0 to 244 | # disable this feature. 245 | set preview_max_size 0 246 | 247 | # The key hint lists up to this size have their sublists expanded. 248 | # Otherwise the submaps are replaced with "...". 249 | set hint_collapse_threshold 10 250 | 251 | # Add the highlighted file to the path in the titlebar 252 | set show_selection_in_titlebar true 253 | 254 | # The delay that ranger idly waits for user input, in milliseconds, with a 255 | # resolution of 100ms. Lower delay reduces lag between directory updates but 256 | # increases CPU load. 257 | set idle_delay 2000 258 | 259 | # When the metadata manager module looks for metadata, should it only look for 260 | # a ".metadata.json" file in the current directory, or do a deep search and 261 | # check all directories above the current one as well? 262 | set metadata_deep_search false 263 | 264 | # Clear all existing filters when leaving a directory 265 | set clear_filters_on_dir_change false 266 | 267 | # Disable displaying line numbers in main column. 268 | # Possible values: false, absolute, relative. 269 | set line_numbers false 270 | 271 | # When line_numbers=relative show the absolute line number in the 272 | # current line. 273 | set relative_current_zero false 274 | 275 | # Start line numbers from 1 instead of 0 276 | set one_indexed false 277 | 278 | # Save tabs on exit 279 | set save_tabs_on_exit false 280 | 281 | # Enable scroll wrapping - moving down while on the last item will wrap around to 282 | # the top and vice versa. 283 | set wrap_scroll false 284 | 285 | # Set the global_inode_type_filter to nothing. Possible options: d, f and l for 286 | # directories, files and symlinks respectively. 287 | set global_inode_type_filter 288 | 289 | # This setting allows to freeze the list of files to save I/O bandwidth. It 290 | # should be 'false' during start-up, but you can toggle it by pressing F. 291 | set freeze_files false 292 | 293 | # =================================================================== 294 | # == Local Options 295 | # =================================================================== 296 | # You can set local options that only affect a single directory. 297 | 298 | # Examples: 299 | # setlocal path=~/downloads sort mtime 300 | 301 | # =================================================================== 302 | # == Command Aliases in the Console 303 | # =================================================================== 304 | 305 | alias e edit 306 | alias q quit 307 | alias q! quit! 308 | alias qa quitall 309 | alias qa! quitall! 310 | alias qall quitall 311 | alias qall! quitall! 312 | alias setl setlocal 313 | 314 | alias filter scout -prts 315 | alias find scout -aets 316 | alias mark scout -mr 317 | alias unmark scout -Mr 318 | alias search scout -rs 319 | alias search_inc scout -rts 320 | alias travel scout -aefklst 321 | 322 | # =================================================================== 323 | # == Define keys for the browser 324 | # =================================================================== 325 | 326 | # Basic 327 | map Q quitall 328 | map q quit 329 | copymap q ZZ ZQ 330 | 331 | map R reload_cwd 332 | map F set freeze_files! 333 | map reset 334 | map redraw_window 335 | map abort 336 | map change_mode normal 337 | map ~ set viewmode! 338 | 339 | map i display_file 340 | map ? help 341 | map W display_log 342 | map w taskview_open 343 | map S shell $SHELL 344 | 345 | map : console 346 | map ; console 347 | map ! console shell%space 348 | map @ console -p6 shell %%s 349 | map # console shell -p%space 350 | map s console shell%space 351 | map r chain draw_possible_programs; console open_with%%space 352 | map f console find%space 353 | map cd console cd%space 354 | 355 | map chain console; eval fm.ui.console.history_move(-1) 356 | 357 | # Change the line mode 358 | map Mf linemode filename 359 | map Mi linemode fileinfo 360 | map Mm linemode mtime 361 | map Mp linemode permissions 362 | map Ms linemode sizemtime 363 | map Mt linemode metatitle 364 | 365 | # Tagging / Marking 366 | map t tag_toggle 367 | map ut tag_remove 368 | map " tag_toggle tag=%any 369 | map mark_files toggle=True 370 | map v mark_files all=True toggle=True 371 | map uv mark_files all=True val=False 372 | map V toggle_visual_mode 373 | map uV toggle_visual_mode reverse=True 374 | 375 | # For the nostalgics: Midnight Commander bindings 376 | map help 377 | map rename_append 378 | map display_file 379 | map edit 380 | map copy 381 | map cut 382 | map console mkdir%space 383 | map console delete 384 | map exit 385 | 386 | # In case you work on a keyboard with dvorak layout 387 | map move up=1 388 | map move down=1 389 | map move left=1 390 | map move right=1 391 | map move to=0 392 | map move to=-1 393 | map move down=1 pages=True 394 | map move up=1 pages=True 395 | map move right=1 396 | #map console delete 397 | map console touch%space 398 | 399 | # VIM-like 400 | copymap k 401 | copymap j 402 | copymap h 403 | copymap l 404 | copymap gg 405 | copymap G 406 | copymap 407 | copymap 408 | 409 | map J move down=0.5 pages=True 410 | map K move up=0.5 pages=True 411 | copymap J 412 | copymap K 413 | 414 | # Jumping around 415 | map H history_go -1 416 | map L history_go 1 417 | map ] move_parent 1 418 | map [ move_parent -1 419 | map } traverse 420 | map { traverse_backwards 421 | map ) jump_non 422 | 423 | map gh cd ~ 424 | map ge cd /etc 425 | map gu cd /usr 426 | map gd cd /dev 427 | map gl cd -r . 428 | map gL cd -r %f 429 | map go cd /opt 430 | map gv cd /var 431 | map gm cd /media 432 | map gi eval fm.cd('/run/media/' + os.getenv('USER')) 433 | map gM cd /mnt 434 | map gs cd /srv 435 | map gp cd /tmp 436 | map gr cd / 437 | map gR eval fm.cd(ranger.RANGERDIR) 438 | map g/ cd / 439 | map g? cd /usr/share/doc/ranger 440 | 441 | # External Programs 442 | map E edit 443 | map du shell -p du --max-depth=1 -h --apparent-size 444 | map dU shell -p du --max-depth=1 -h --apparent-size | sort -rh 445 | map yp yank path 446 | map yd yank dir 447 | map yn yank name 448 | map y. yank name_without_extension 449 | 450 | # Filesystem Operations 451 | map = chmod 452 | 453 | map cw console rename%space 454 | map a rename_append 455 | map A eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%")) 456 | map I eval fm.open_console('rename ' + fm.thisfile.relative_path.replace("%", "%%"), position=7) 457 | 458 | map pp paste 459 | map po paste overwrite=True 460 | map pP paste append=True 461 | map pO paste overwrite=True append=True 462 | map pl paste_symlink relative=False 463 | map pL paste_symlink relative=True 464 | map phl paste_hardlink 465 | map pht paste_hardlinked_subtree 466 | 467 | map dD console delete 468 | 469 | map dd cut 470 | map ud uncut 471 | map da cut mode=add 472 | map dr cut mode=remove 473 | map dt cut mode=toggle 474 | 475 | map yy copy 476 | map uy uncut 477 | map ya copy mode=add 478 | map yr copy mode=remove 479 | map yt copy mode=toggle 480 | 481 | # Temporary workarounds 482 | map dgg eval fm.cut(dirarg=dict(to=0), narg=quantifier) 483 | map dG eval fm.cut(dirarg=dict(to=-1), narg=quantifier) 484 | map dj eval fm.cut(dirarg=dict(down=1), narg=quantifier) 485 | map dk eval fm.cut(dirarg=dict(up=1), narg=quantifier) 486 | map ygg eval fm.copy(dirarg=dict(to=0), narg=quantifier) 487 | map yG eval fm.copy(dirarg=dict(to=-1), narg=quantifier) 488 | map yj eval fm.copy(dirarg=dict(down=1), narg=quantifier) 489 | map yk eval fm.copy(dirarg=dict(up=1), narg=quantifier) 490 | 491 | # Searching 492 | map / console search%space 493 | map n search_next 494 | map N search_next forward=False 495 | map ct search_next order=tag 496 | map cs search_next order=size 497 | map ci search_next order=mimetype 498 | map cc search_next order=ctime 499 | map cm search_next order=mtime 500 | map ca search_next order=atime 501 | 502 | # Tabs 503 | map tab_new 504 | map tab_close 505 | map tab_move 1 506 | map tab_move -1 507 | map tab_move 1 508 | map tab_move -1 509 | map gt tab_move 1 510 | map gT tab_move -1 511 | map gn tab_new 512 | map gc tab_close 513 | map uq tab_restore 514 | map tab_open 1 515 | map tab_open 2 516 | map tab_open 3 517 | map tab_open 4 518 | map tab_open 5 519 | map tab_open 6 520 | map tab_open 7 521 | map tab_open 8 522 | map tab_open 9 523 | map tab_shift 1 524 | map tab_shift -1 525 | 526 | # Sorting 527 | map or set sort_reverse! 528 | map oz set sort=random 529 | map os chain set sort=size; set sort_reverse=False 530 | map ob chain set sort=basename; set sort_reverse=False 531 | map on chain set sort=natural; set sort_reverse=False 532 | map om chain set sort=mtime; set sort_reverse=False 533 | map oc chain set sort=ctime; set sort_reverse=False 534 | map oa chain set sort=atime; set sort_reverse=False 535 | map ot chain set sort=type; set sort_reverse=False 536 | map oe chain set sort=extension; set sort_reverse=False 537 | 538 | map oS chain set sort=size; set sort_reverse=True 539 | map oB chain set sort=basename; set sort_reverse=True 540 | map oN chain set sort=natural; set sort_reverse=True 541 | map oM chain set sort=mtime; set sort_reverse=True 542 | map oC chain set sort=ctime; set sort_reverse=True 543 | map oA chain set sort=atime; set sort_reverse=True 544 | map oT chain set sort=type; set sort_reverse=True 545 | map oE chain set sort=extension; set sort_reverse=True 546 | 547 | map dc get_cumulative_size 548 | 549 | # Settings 550 | map zc set collapse_preview! 551 | map zd set sort_directories_first! 552 | map zh set show_hidden! 553 | map set show_hidden! 554 | copymap 555 | copymap 556 | map zI set flushinput! 557 | map zi set preview_images! 558 | map zm set mouse_enabled! 559 | map zp set preview_files! 560 | map zP set preview_directories! 561 | map zs set sort_case_insensitive! 562 | map zu set autoupdate_cumulative_size! 563 | map zv set use_preview_script! 564 | map zf console filter%space 565 | copymap zf zz 566 | 567 | # Filter stack 568 | map .n console filter_stack add name%space 569 | map .m console filter_stack add mime%space 570 | map .d filter_stack add type d 571 | map .f filter_stack add type f 572 | map .l filter_stack add type l 573 | map .| filter_stack add or 574 | map .& filter_stack add and 575 | map .! filter_stack add not 576 | map .r console filter_stack rotate 577 | map .c filter_stack clear 578 | map .* filter_stack decompose 579 | map .p filter_stack pop 580 | map .. filter_stack show 581 | 582 | # Bookmarks 583 | map ` enter_bookmark %any 584 | map ' enter_bookmark %any 585 | map m set_bookmark %any 586 | map um unset_bookmark %any 587 | 588 | map m draw_bookmarks 589 | copymap m um ` ' 590 | 591 | # Generate all the chmod bindings with some python help: 592 | eval for arg in "rwxXst": cmd("map +u{0} shell -f chmod u+{0} %s".format(arg)) 593 | eval for arg in "rwxXst": cmd("map +g{0} shell -f chmod g+{0} %s".format(arg)) 594 | eval for arg in "rwxXst": cmd("map +o{0} shell -f chmod o+{0} %s".format(arg)) 595 | eval for arg in "rwxXst": cmd("map +a{0} shell -f chmod a+{0} %s".format(arg)) 596 | eval for arg in "rwxXst": cmd("map +{0} shell -f chmod u+{0} %s".format(arg)) 597 | 598 | eval for arg in "rwxXst": cmd("map -u{0} shell -f chmod u-{0} %s".format(arg)) 599 | eval for arg in "rwxXst": cmd("map -g{0} shell -f chmod g-{0} %s".format(arg)) 600 | eval for arg in "rwxXst": cmd("map -o{0} shell -f chmod o-{0} %s".format(arg)) 601 | eval for arg in "rwxXst": cmd("map -a{0} shell -f chmod a-{0} %s".format(arg)) 602 | eval for arg in "rwxXst": cmd("map -{0} shell -f chmod u-{0} %s".format(arg)) 603 | 604 | # =================================================================== 605 | # == Define keys for the console 606 | # =================================================================== 607 | # Note: Unmapped keys are passed directly to the console. 608 | 609 | # Basic 610 | cmap eval fm.ui.console.tab() 611 | cmap eval fm.ui.console.tab(-1) 612 | cmap eval fm.ui.console.close() 613 | cmap eval fm.ui.console.execute() 614 | cmap redraw_window 615 | 616 | copycmap 617 | copycmap 618 | 619 | # Move around 620 | cmap eval fm.ui.console.history_move(-1) 621 | cmap eval fm.ui.console.history_move(1) 622 | cmap eval fm.ui.console.move(left=1) 623 | cmap eval fm.ui.console.move(right=1) 624 | cmap eval fm.ui.console.move(right=0, absolute=True) 625 | cmap eval fm.ui.console.move(right=-1, absolute=True) 626 | cmap eval fm.ui.console.move_word(left=1) 627 | cmap eval fm.ui.console.move_word(right=1) 628 | 629 | copycmap 630 | copycmap 631 | 632 | # Line Editing 633 | cmap eval fm.ui.console.delete(-1) 634 | cmap eval fm.ui.console.delete(0) 635 | cmap eval fm.ui.console.delete_word() 636 | cmap eval fm.ui.console.delete_word(backward=False) 637 | cmap eval fm.ui.console.delete_rest(1) 638 | cmap eval fm.ui.console.delete_rest(-1) 639 | cmap eval fm.ui.console.paste() 640 | 641 | # And of course the emacs way 642 | copycmap 643 | copycmap 644 | copycmap 645 | copycmap 646 | copycmap 647 | copycmap 648 | copycmap 649 | copycmap 650 | copycmap 651 | 652 | # Note: There are multiple ways to express backspaces. (code 263) 653 | # and (code 127). To be sure, use both. 654 | copycmap 655 | 656 | # This special expression allows typing in numerals: 657 | cmap false 658 | 659 | # =================================================================== 660 | # == Pager Keybindings 661 | # =================================================================== 662 | 663 | # Movement 664 | pmap pager_move down=1 665 | pmap pager_move up=1 666 | pmap pager_move left=4 667 | pmap pager_move right=4 668 | pmap pager_move to=0 669 | pmap pager_move to=-1 670 | pmap pager_move down=1.0 pages=True 671 | pmap pager_move up=1.0 pages=True 672 | pmap pager_move down=0.5 pages=True 673 | pmap pager_move up=0.5 pages=True 674 | 675 | copypmap k 676 | copypmap j 677 | copypmap h 678 | copypmap l 679 | copypmap g 680 | copypmap G 681 | copypmap d 682 | copypmap u 683 | copypmap n f 684 | copypmap p b 685 | 686 | # Basic 687 | pmap redraw_window 688 | pmap pager_close 689 | copypmap q Q i 690 | pmap E edit_file 691 | 692 | # =================================================================== 693 | # == Taskview Keybindings 694 | # =================================================================== 695 | 696 | # Movement 697 | tmap taskview_move up=1 698 | tmap taskview_move down=1 699 | tmap taskview_move to=0 700 | tmap taskview_move to=-1 701 | tmap taskview_move down=1.0 pages=True 702 | tmap taskview_move up=1.0 pages=True 703 | tmap taskview_move down=0.5 pages=True 704 | tmap taskview_move up=0.5 pages=True 705 | 706 | copytmap k 707 | copytmap j 708 | copytmap g 709 | copytmap G 710 | copytmap u 711 | copytmap n f 712 | copytmap p b 713 | 714 | # Changing priority and deleting tasks 715 | tmap J eval -q fm.ui.taskview.task_move(-1) 716 | tmap K eval -q fm.ui.taskview.task_move(0) 717 | tmap dd eval -q fm.ui.taskview.task_remove() 718 | tmap eval -q fm.ui.taskview.task_move(-1) 719 | tmap eval -q fm.ui.taskview.task_move(0) 720 | tmap eval -q fm.ui.taskview.task_remove() 721 | 722 | # Basic 723 | tmap redraw_window 724 | tmap taskview_close 725 | copytmap q Q w 726 | 727 | default_linemode devicons 728 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | modi: "run,ssh,window,combi"; 3 | theme: "nord"; 4 | font: "Cascadia Code 18"; 5 | combi-modi: "window,run"; 6 | } 7 | -------------------------------------------------------------------------------- /.config/rofi/nord.rasi: -------------------------------------------------------------------------------- 1 | * { 2 | nord0: #2e3440; 3 | nord1: #3b4252; 4 | nord2: #434c5e; 5 | nord3: #4c566a; 6 | nord4: #d8dee9; 7 | nord5: #e5e9f0; 8 | nord6: #eceff4; 9 | nord7: #8fbcbb; 10 | nord8: #88c0d0; 11 | nord9: #81a1c1; 12 | nord10: #5e81ac; 13 | nord11: #bf616a; 14 | nord12: #d08770; 15 | nord13: #ebcb8b; 16 | nord14: #a3be8c; 17 | nord15: #b48ead; 18 | 19 | background-color: @nord1; 20 | border: 0px; 21 | margin: 0px; 22 | padding: 0px; 23 | spacing: 0px; 24 | text-color: @nord4; 25 | } 26 | #inputbar { 27 | text-color: @nord3; 28 | padding: 6px; 29 | margin: 0px 0px 2px; 30 | children: [ entry ]; 31 | } 32 | #entry { 33 | background-color: @nord3; 34 | text-color: @nord4; 35 | padding: 5px; 36 | } 37 | #message { 38 | border: 0px 0px 1px; 39 | border-color: @nord3; 40 | padding: 0px 0px 6px 7px; 41 | } 42 | #listview { 43 | lines: 10; 44 | padding: 2px 0px 0px; 45 | scrollbar: true; 46 | } 47 | #element { 48 | padding: 0px 0px 0px 7px; 49 | margin: 0px 0px 5px 0px; 50 | text-color: @nord4; 51 | } 52 | #element.normal.normal { 53 | text-color: @nord4; 54 | } 55 | #element.normal.urgent { 56 | text-color: @nord11; 57 | } 58 | #element.normal.active { 59 | text-color: @nord10; 60 | } 61 | #element.alternate.normal { 62 | text-color: @nord4; 63 | } 64 | #element.alternate.urgent { 65 | text-color: @nord11; 66 | } 67 | #element.alternate.active { 68 | text-color: @nord10; 69 | } 70 | #element.selected.normal { 71 | background-color: @nord8; 72 | text-color: @nord1; 73 | } 74 | #element.selected.urgent { 75 | background-color: @nord11; 76 | text-color: @nord4; 77 | } 78 | #element.selected.active { 79 | background-color: @nord10; 80 | text-color: @nord4; 81 | } 82 | #scrollbar { 83 | handle-color: @nord3; 84 | handle-width: 0.50em; 85 | } 86 | #button.selected { 87 | background-color: @nord8; 88 | text-color: @nord4; 89 | } 90 | -------------------------------------------------------------------------------- /.config/termite/config: -------------------------------------------------------------------------------- 1 | [options] 2 | allow_bold = true 3 | #audible_bell = false 4 | clickable_url = false 5 | dynamic_title = true 6 | # font = Cascadia Code PL 18 7 | font = Cascadia Code 22 8 | fullscreen = true 9 | #geometry = 640x480 10 | # icon_name = terminal 11 | mouse_autohide = true 12 | scroll_on_output = true 13 | scroll_on_keystroke = true 14 | # Length of the scrollback buffer, 0 disabled the scrollback buffer 15 | # and setting it to a negative value means "infinite scrollback" 16 | scrollback_lines = 10000 17 | search_wrap = false 18 | #urgent_on_bell = true 19 | #hyperlinks = false 20 | 21 | # $BROWSER is used by default if set, with xdg-open as a fallback 22 | browser = firefox 23 | 24 | # "system", "on" or "off" 25 | #cursor_blink = system 26 | 27 | # "block", "underline" or "ibeam" 28 | #cursor_shape = block 29 | 30 | # Hide links that are no longer valid in url select overlay mode 31 | #filter_unmatched_urls = true 32 | 33 | # Emit escape sequences for extra modified keys 34 | #modify_other_keys = false 35 | 36 | # set size hints for the window 37 | size_hints = true 38 | 39 | # "off", "left" or "right" 40 | #scrollbar = off 41 | 42 | [hints] 43 | font = Consolas 12 44 | #foreground = #dcdccc 45 | #background = #3f3f3f 46 | #active_foreground = #e68080 47 | #active_background = #3f3f3f 48 | #padding = 2 49 | #border = #3f3f3f 50 | #border_width = 0.5 51 | #roundness = 2.0 52 | 53 | # vim: ft=dosini cms=#%s 54 | 55 | [colors] 56 | cursor = #d8dee9 57 | cursor_foreground = #2e3440 58 | 59 | foreground = #d8dee9 60 | foreground_bold = #d8dee9 61 | background = #2e3440 62 | 63 | highlight = #4c566a 64 | 65 | color0 = #3b4252 66 | color1 = #bf616a 67 | color2 = #a3be8c 68 | color3 = #ebcb8b 69 | color4 = #81a1c1 70 | color5 = #b48ead 71 | color6 = #88c0d0 72 | color7 = #e5e9f0 73 | color8 = #4c566a 74 | color9 = #bf616a 75 | color10 = #a3be8c 76 | color11 = #ebcb8b 77 | color12 = #81a1c1 78 | color13 = #b48ead 79 | color14 = #8fbcbb 80 | color15 = #eceff4 81 | -------------------------------------------------------------------------------- /.config/yadm/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -ex 3 | 4 | cd $HOME 5 | echo "init submodules..." 6 | yadm submodule update --recursive --init 7 | 8 | function install_on_common() { 9 | brew bundle -v -g 10 | 11 | npm config set prefix "${HOME}/.node_modules" 12 | npm config set registry "https://registry.npmmirror.com" 13 | 14 | if ! command -v cnpm > /dev/null 2>&1; then 15 | npm install -g cnpm --registry=https://registry.npm.taobao.org 16 | fi 17 | 18 | # vim plugins managed by vim-plug 19 | if command -v nvim > /dev/null 2>&1; then 20 | echo "Bootstrapingn Neovim..." 21 | nvim '+PlugInstall' '+PlugClean!' '+qall' 22 | fi 23 | } 24 | 25 | 26 | function install_on_macOS() { 27 | # install HomeBrew if it's missing. 28 | if ! command -v brew > /dev/null 2>&1; then 29 | echo "Installing HomeBrew..." 30 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 31 | fi 32 | } 33 | 34 | function install_on_linux() { 35 | # install Homebrew 36 | test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)" 37 | test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" 38 | echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bashrc 39 | } 40 | 41 | 42 | function install_on_ArchLinux() { 43 | # Change aur mirrors 44 | sudo curl -o /etc/pacman.d/mirrorlist "https://www.archlinux.org/mirrorlist/?country=CN&country=HK&country=US&protocol=http&protocol=https&ip_version=4&ip_version=6" 45 | sudo sed -i 's/#Server/Server/g' /etc/pacman.d/mirrorlist && pacman -Syyu --noconfirm 46 | sudo sed -i 's/#Color/Color/g' /etc/pacman.conf 47 | 48 | if ! command -v yay > /dev/null 2>&1; then 49 | # Installing yay 50 | echo "Install Yay..." 51 | rm -rf /tmp/yay && git clone --depth 1 https://aur.archlinux.org/yay.git /tmp/yay && cd /tmp/yay && makepkg -si --noconfirm 52 | fi 53 | 54 | echo "Installing from .Pacmanfile..." 55 | yay -S --needed --noconfirm - < $HOME/.Pacmanfile 56 | } 57 | 58 | 59 | case $(uname -s) in 60 | "Darwin") 61 | install_on_macOS;; 62 | #"Linux") 63 | #install_on_ArchLinux;; 64 | *) 65 | echo "Cannot detect the system...";; 66 | esac 67 | 68 | install_on_common 69 | -------------------------------------------------------------------------------- /.config/yay/config.json: -------------------------------------------------------------------------------- 1 | config.json##os.Linux -------------------------------------------------------------------------------- /.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | set adjust-open "width" 2 | set guioptions "" 3 | set window-title-basename true 4 | set incremental-search true 5 | set show-v-scrollerbar true 6 | set selection-clipboard clipboard 7 | -------------------------------------------------------------------------------- /.curlrc: -------------------------------------------------------------------------------- 1 | --location 2 | -------------------------------------------------------------------------------- /.docker/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "auths": {}, 3 | "credsStore": "desktop", 4 | "imagesFormat": "table {{.ID}}\t{{.Repository}}\t{{.Tag}}", 5 | "psFormat": "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}" 6 | } 7 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [push] 2 | autosetupremote = true 3 | default = current 4 | [init] 5 | defaultBranch = main 6 | [pull] 7 | rebase = true 8 | [merge] 9 | conflictstyle = diff3 10 | [commit] 11 | verbose = true 12 | ; gpgsign = true 13 | [user] 14 | email = qiaohao.peng@outlook.com 15 | name = qiaohao 16 | ; signingkey = A703B3F6DD9910FB 17 | [rerere] 18 | enabled = true 19 | [diff] 20 | algorithm = histogram 21 | submodule = log 22 | noprefix = true 23 | [core] 24 | excludesfile = ~/.config/git/ignore 25 | autocrlf = false 26 | editor = nvim 27 | pager = delta 28 | [status] 29 | submoduleSummary = true 30 | [submodule] 31 | recurse = true 32 | [log] 33 | date = iso 34 | [color "diff"] 35 | meta = yellow 36 | whitespace = red reverse 37 | new = green bold 38 | old = red bold 39 | frag = magenta bold 40 | commit = yellow bold 41 | [color] 42 | ui = true 43 | [alias] 44 | st = status 45 | stnu = status --untracked-files=no 46 | ci = commit 47 | co = checkout 48 | df = diff 49 | dc = diff --cached 50 | rs = restore 51 | lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an %ae>%Creset' --abbrev-commit --date=format:'%Y-%m-%d %H:%M:%S' 52 | [interactive] 53 | diffFilter = delta --color-only 54 | [delta] 55 | navigate = true 56 | line-numbers = true 57 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule ".config/ranger/plugins/ranger_devicons"] 2 | path = .config/ranger/plugins/ranger_devicons 3 | url = https://github.com/alexanderjeurissen/ranger_devicons 4 | -------------------------------------------------------------------------------- /.gnupg/gpg.conf: -------------------------------------------------------------------------------- 1 | use-agent 2 | 3 | # Display long key IDs 4 | keyid-format LONG 5 | 6 | # List all keys (or the specified ones) along with their fingerprints 7 | with-fingerprint 8 | fingerprint 9 | 10 | 11 | charset utf-8 12 | fixed-list-mode 13 | 14 | #----------------------------- 15 | # keyserver 16 | #----------------------------- 17 | # This is the server that --recv-keys, --send-keys, and --search-keys will 18 | # communicate with to receive keys from, send keys to, and search for keys on 19 | keyserver hkp://keyserver.ubuntu.com:80 20 | -------------------------------------------------------------------------------- /.local/share/fcitx5/rime/installation.yaml: -------------------------------------------------------------------------------- 1 | distribution_code_name: "fcitx-rime" 2 | distribution_name: Rime 3 | distribution_version: 5.0.6 4 | install_time: "Fri Oct 16 09:09:20 2020" 5 | installation_id: "Linux" 6 | rime_version: 1.7.3 7 | sync_dir: "/home/qiaohao/.Rime" 8 | update_time: "Thu May 6 14:36:41 2021" 9 | -------------------------------------------------------------------------------- /.local/share/yadm/archive: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pqiaohaoq/dotfiles/88317f52155af76d0bd4b02b957a6358b5534a7c/.local/share/yadm/archive -------------------------------------------------------------------------------- /.myclirc: -------------------------------------------------------------------------------- 1 | # vi: ft=dosini 2 | [main] 3 | 4 | # Enables context sensitive auto-completion. If this is disabled the all 5 | # possible completions will be listed. 6 | smart_completion = True 7 | 8 | # Multi-line mode allows breaking up the sql statements into multiple lines. If 9 | # this is set to True, then the end of the statements must have a semi-colon. 10 | # If this is set to False then sql statements can't be split into multiple 11 | # lines. End of line (return) is considered as the end of the statement. 12 | multi_line = True 13 | 14 | # Destructive warning mode will alert you before executing a sql statement 15 | # that may cause harm to the database such as "drop table", "drop database" 16 | # or "shutdown". 17 | destructive_warning = True 18 | 19 | # log_file location. 20 | log_file = ~/.mycli.log 21 | 22 | # Default log level. Possible values: "CRITICAL", "ERROR", "WARNING", "INFO" 23 | # and "DEBUG". "NONE" disables logging. 24 | log_level = WARNING 25 | 26 | # Log every query and its results to a file. Enable this by uncommenting the 27 | # line below. 28 | # audit_log = ~/.mycli-audit.log 29 | 30 | # Timing of sql statments and table rendering. 31 | timing = True 32 | 33 | # Table format. Possible values: ascii, double, github, 34 | # psql, plain, simple, grid, fancy_grid, pipe, orgtbl, rst, mediawiki, html, 35 | # latex, latex_booktabs, textile, moinmoin, jira, vertical, tsv, csv. 36 | # Recommended: ascii 37 | table_format = ascii 38 | 39 | # Syntax coloring style. Possible values (many support the "-dark" suffix): 40 | # manni, igor, xcode, vim, autumn, vs, rrt, native, perldoc, borland, tango, emacs, 41 | # friendly, monokai, paraiso, colorful, murphy, bw, pastie, paraiso, trac, default, 42 | # fruity. 43 | # Screenshots at http://mycli.net/syntax 44 | syntax_style = default 45 | 46 | # Keybindings: Possible values: emacs, vi. 47 | # Emacs mode: Ctrl-A is home, Ctrl-E is end. All emacs keybindings are available in the REPL. 48 | # When Vi mode is enabled you can use modal editing features offered by Vi in the REPL. 49 | key_bindings = Vi 50 | 51 | # Enabling this option will show the suggestions in a wider menu. Thus more items are suggested. 52 | wider_completion_menu = False 53 | 54 | # MySQL prompt 55 | # \D - The full current date 56 | # \d - Database name 57 | # \h - Hostname of the server 58 | # \m - Minutes of the current time 59 | # \n - Newline 60 | # \P - AM/PM 61 | # \p - Port 62 | # \R - The current time, in 24-hour military time (0–23) 63 | # \r - The current time, standard 12-hour time (1–12) 64 | # \s - Seconds of the current time 65 | # \t - Product type (Percona, MySQL, MariaDB) 66 | # \u - Username 67 | prompt = '\t \u@\h:\d> ' 68 | prompt_continuation = '-> ' 69 | 70 | # Skip intro info on startup and outro info on exit 71 | less_chatty = False 72 | 73 | # Use alias from --login-path instead of host name in prompt 74 | login_path_as_host = False 75 | 76 | # Cause result sets to be displayed vertically if they are too wide for the current window, 77 | # and using normal tabular format otherwise. (This applies to statements terminated by ; or \G.) 78 | auto_vertical_output = True 79 | 80 | # keyword casing preference. Possible values "lower", "upper", "auto" 81 | keyword_casing = upper 82 | 83 | # disabled pager on startup 84 | enable_pager = True 85 | 86 | # Custom colors for the completion menu, toolbar, etc. 87 | [colors] 88 | # Completion menus. 89 | Token.Menu.Completions.Completion.Current = 'bg:#00aaaa #000000' 90 | Token.Menu.Completions.Completion = 'bg:#008888 #ffffff' 91 | Token.Menu.Completions.MultiColumnMeta = 'bg:#aaffff #000000' 92 | Token.Menu.Completions.ProgressButton = 'bg:#003333' 93 | Token.Menu.Completions.ProgressBar = 'bg:#00aaaa' 94 | 95 | # Query results 96 | Token.Output.Header = 'bold' 97 | Token.Output.OddRow = '' 98 | Token.Output.EvenRow = '' 99 | 100 | # Selected text. 101 | Token.SelectedText = '#ffffff bg:#6666aa' 102 | 103 | # Search matches. (reverse-i-search) 104 | Token.SearchMatch = '#ffffff bg:#4444aa' 105 | Token.SearchMatch.Current = '#ffffff bg:#44aa44' 106 | 107 | # The bottom toolbar. 108 | Token.Toolbar = 'bg:#222222 #aaaaaa' 109 | Token.Toolbar.Off = 'bg:#222222 #888888' 110 | Token.Toolbar.On = 'bg:#222222 #ffffff' 111 | 112 | # Search/arg/system toolbars. 113 | Token.Toolbar.Search = 'noinherit bold' 114 | Token.Toolbar.Search.Text = 'nobold' 115 | Token.Toolbar.System = 'noinherit bold' 116 | Token.Toolbar.Arg = 'noinherit bold' 117 | Token.Toolbar.Arg.Text = 'nobold' 118 | 119 | # Favorite queries. 120 | [favorite_queries] 121 | 122 | # Use the -d option to reference a DSN. 123 | [alias_dsn] 124 | # example_dsn = mysql://[user[:password]@][host][:port][/dbname] 125 | -------------------------------------------------------------------------------- /.ssh/assh.yml: -------------------------------------------------------------------------------- 1 | defaults: 2 | Compression: yes 3 | ServerAliveInterval: 30 4 | ControlMaster: auto 5 | ControlPath: /tmp/ssh-%r@%h:%p.sock 6 | ControlPersist: yes 7 | StrictHostKeyChecking: no 8 | Port: 22 9 | User: root 10 | -------------------------------------------------------------------------------- /.tigrc: -------------------------------------------------------------------------------- 1 | # Vim-style keybindings for Tig 2 | # 3 | # To use these keybindings copy the file to your HOME directory and include 4 | # it from your ~/.tigrc file: 5 | # 6 | # $ cp contrib/vim.tigrc ~/.tigrc.vim 7 | # $ echo "source ~/.tigrc.vim" >> ~/.tigrc 8 | 9 | bind generic h scroll-left 10 | bind generic j move-down 11 | bind generic k move-up 12 | bind generic l scroll-right 13 | 14 | bind generic g none 15 | bind generic gg move-first-line 16 | bind generic gj next 17 | bind generic gk previous 18 | bind generic gp parent 19 | bind generic gP back 20 | bind generic gn view-next 21 | 22 | bind main G move-last-line 23 | bind generic G move-last-line 24 | 25 | bind generic move-page-down 26 | bind generic move-page-up 27 | 28 | bind generic v none 29 | bind generic vm view-main 30 | bind generic vd view-diff 31 | bind generic vl view-log 32 | bind generic vt view-tree 33 | bind generic vb view-blob 34 | bind generic vx view-blame 35 | bind generic vr view-refs 36 | bind generic vs view-status 37 | bind generic vu view-stage 38 | bind generic vy view-stash 39 | bind generic vg view-grep 40 | bind generic vp view-pager 41 | bind generic vh view-help 42 | 43 | bind generic o none 44 | bind generic oo :toggle sort-order 45 | bind generic os :toggle sort-field 46 | bind generic on :toggle line-number 47 | bind generic od :toggle date 48 | bind generic oa :toggle author 49 | bind generic og :toggle line-graphics 50 | bind generic of :toggle file-name 51 | bind generic op :toggle ignore-space 52 | bind generic oi :toggle id 53 | bind generic ot :toggle commit-title-overflow 54 | bind generic oF :toggle file-filter 55 | bind generic or :toggle commit-title-refs 56 | 57 | bind generic @ none 58 | bind generic @j :/^@@ 59 | bind generic @k :?^@@ 60 | bind generic @- :toggle diff-context -1 61 | bind generic @+ :toggle diff-context +1 62 | 63 | bind status u none 64 | bind stage u none 65 | bind generic uu status-update 66 | bind generic ur status-revert 67 | bind generic um status-merge 68 | bind generic ul stage-update-line 69 | bind generic us stage-split-chunk 70 | 71 | bind generic c none 72 | bind generic cc !git commit 73 | bind generic ca !?@git commit --amend --no-edit 74 | 75 | bind generic K view-help 76 | bind generic view-next 77 | -------------------------------------------------------------------------------- /.tldrrc: -------------------------------------------------------------------------------- 1 | { 2 | "themes": { 3 | "ocean": { 4 | "commandName": "bold, cyan", 5 | "mainDescription": "", 6 | "exampleDescription": "green", 7 | "exampleCode": "cyan", 8 | "exampleToken": "dim" 9 | }, 10 | "sun": { 11 | "commandName": "bold, cyan", 12 | "mainDescription": "", 13 | "exampleDescription": "green", 14 | "exampleCode": "bold, red", 15 | "exampleToken": "bold, dim" 16 | } 17 | }, 18 | "theme": "ocean" 19 | } 20 | -------------------------------------------------------------------------------- /.tmux.conf: -------------------------------------------------------------------------------- 1 | set -g focus-event on 2 | set -g history-limit 10000 3 | 4 | setw -g automatic-rename off 5 | setw -g allow-rename off 6 | 7 | setw -g monitor-activity on 8 | 9 | set -g default-terminal "xterm-256color" 10 | set -ga terminal-overrides ",*256color*:Tc" 11 | 12 | set -g status-interval 1 13 | set -g status-left '[Session: #S] ' 14 | set -g status-left-length 500 15 | set -g status-right '[%Y-%m-%d %H:%M:%S]' 16 | 17 | set -wg window-status-current-style "bg=black, fg=yellow" 18 | 19 | set-option -g prefix C-a 20 | set -s escape-time 50 21 | 22 | set -g mouse on 23 | set -g mode-keys vi 24 | bind -r h select-pane -L 25 | bind -r j select-pane -D 26 | bind -r k select-pane -U 27 | bind -r l select-pane -R 28 | bind -r H resize-pane -L 2 29 | bind -r J resize-pane -D 2 30 | bind -r K resize-pane -U 2 31 | bind -r L resize-pane -R 2 32 | 33 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | " ================ 2 | " Set environments 3 | " ================ 4 | set hidden 5 | set title 6 | set number 7 | set cursorline 8 | set termguicolors 9 | " set t_Co=256 10 | " set mouse=a 11 | 12 | set incsearch 13 | set smartcase 14 | set ignorecase 15 | set showmatch 16 | 17 | set list listchars=extends:❯,precedes:❮,tab:▸\ ,trail:˽ 18 | 19 | set noundofile 20 | set noswapfile 21 | set nobackup 22 | set nowritebackup 23 | 24 | set breakindent 25 | set smartindent 26 | set autoindent 27 | set autowrite 28 | 29 | set tabstop=4 30 | set shiftwidth=4 31 | set expandtab 32 | 33 | set fileformat=unix 34 | set fileencoding=utf-8 35 | set termencoding=utf-8 36 | 37 | set shortmess+=c 38 | set signcolumn=yes 39 | set nowrap 40 | 41 | filetype on 42 | syntax on 43 | 44 | autocmd! BufNewFile, BufRead Dvcfile, *.dvc setfiletype yaml 45 | au BufRead, BufNewFile *.yaml, *.jsonnet, *.json, *.yml, *.js, *.html, *.css set tabstop=2 | set shiftwidth=2 46 | au BufRead, BufNewFile *.go,Makefile set noexpandtab 47 | -------------------------------------------------------------------------------- /.xinitrc: -------------------------------------------------------------------------------- 1 | #!/bin/env bash 2 | 3 | userresources=$HOME/.Xresources 4 | usermodmap=$HOME/.Xmodmap 5 | sysresources=/etc/X11/xinit/.Xresources 6 | sysmodmap=/etc/X11/xinit/.Xmodmap 7 | 8 | export INPUT_METHOD=fcitx5 9 | export GTK_IM_MODULE=fcitx5 10 | export QT_IM_MODULE=fcitx5 11 | export XMODIFIERS=@im=fcitx5 12 | 13 | # merge in defaults and keymaps 14 | 15 | if [ -f $sysresources ]; then 16 | xrdb -merge $sysresources 17 | fi 18 | 19 | if [ -f $sysmodmap ]; then 20 | xmodmap $sysmodmap 21 | fi 22 | 23 | if [ -f "$userresources" ]; then 24 | xrdb -merge "$userresources" 25 | fi 26 | 27 | if [ -f "$usermodmap" ]; then 28 | xmodmap "$usermodmap" 29 | fi 30 | 31 | # start some nice programs 32 | 33 | if [ -d /etc/X11/xinit/xinitrc.d ] ; then 34 | for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do 35 | [ -x "$f" ] && . "$f" 36 | done 37 | unset f 38 | fi 39 | 40 | numlockx & 41 | fcitx5 & 42 | flameshot & 43 | 44 | exec i3 45 | --------------------------------------------------------------------------------