diff --git a/.config/fish/conf.d/_pure_init.fish b/.config/fish/conf.d/_pure_init.fish new file mode 100644 index 0000000..1b56b3d --- /dev/null +++ b/.config/fish/conf.d/_pure_init.fish @@ -0,0 +1,40 @@ +# Deactivate the default virtualenv prompt so that we can add our own +set --global --export VIRTUAL_ENV_DISABLE_PROMPT 1 + +# Whether or not is a fresh session +set --global _pure_fresh_session true + +# Register `_pure_prompt_new_line` as an event handler fot `fish_prompt` +functions --query _pure_prompt_new_line + +function _pure_uninstall --on-event pure_uninstall + rm -f $__fish_config_dir/conf.d/pure.fish + + # backup fish_prompt and fish_title to default + cp $__fish_config_dir/functions/fish_prompt{,.pure-backup}.fish + cp $__fish_config_dir/functions/fish_title{,.pure-backup}.fish + + # erase existing fish_prompt and fish_title to default + functions --erase fish_prompt + functions --erase fish_title + # restore fish_prompt and fish_title to default + cp {$__fish_data_dir,$__fish_config_dir}/functions/fish_prompt.fish + cp {$__fish_data_dir,$__fish_config_dir}/functions/fish_title.fish + + # refresh fish_prompt and fish_title definitions + source $__fish_data_dir/functions/fish_prompt.fish + source $__fish_data_dir/functions/fish_title.fish + + # erase _pure* variables + set --names \ + | string replace --filter --regex '(^_?pure)' 'set --erase $1' \ + | source + # erase _pure* functions + functions --names --all \ + | string replace --filter --regex '(^_?pure)' 'functions --erase $1' \ + | source + # delete _pure* files + for file in $__fish_config_dir/{functions,conf.d}/_pure_* + rm -f $file + end +end diff --git a/.config/fish/conf.d/pure.fish b/.config/fish/conf.d/pure.fish new file mode 100644 index 0000000..8e11f07 --- /dev/null +++ b/.config/fish/conf.d/pure.fish @@ -0,0 +1,115 @@ +set --global pure_version 4.11.0 # For bug report and tag-after-merge workflow + +# Base colors +_pure_set_default pure_color_primary blue +_pure_set_default pure_color_info cyan +_pure_set_default pure_color_mute brblack +_pure_set_default pure_color_success magenta +_pure_set_default pure_color_normal normal +_pure_set_default pure_color_danger red +_pure_set_default pure_color_light white +_pure_set_default pure_color_warning yellow +_pure_set_default pure_color_dark black + +# Prompt +_pure_set_default pure_symbol_prompt "❯" +_pure_set_default pure_symbol_reverse_prompt "❮" # used for VI mode +_pure_set_default pure_color_prompt_on_error pure_color_danger +_pure_set_default pure_color_prompt_on_success pure_color_success + +# Current Working Directory +_pure_set_default pure_color_current_directory pure_color_primary +_pure_set_default pure_shorten_prompt_current_directory_length 0 +_pure_set_default pure_truncate_prompt_current_directory_keeps -1 + +# Git +_pure_set_default pure_enable_git true +_pure_set_default pure_symbol_git_unpulled_commits "⇣" +_pure_set_default pure_symbol_git_unpushed_commits "⇡" +_pure_set_default pure_symbol_git_dirty "*" +_pure_set_default pure_symbol_git_stash "≡" +_pure_set_default pure_color_git_unpulled_commits pure_color_info +_pure_set_default pure_color_git_unpushed_commits pure_color_info +_pure_set_default pure_color_git_branch pure_color_mute +_pure_set_default pure_color_git_dirty pure_color_mute +_pure_set_default pure_color_git_stash pure_color_info + +# Remote info (user@hostname) for SSH and containers (Docker/LXC) +_pure_set_default pure_color_hostname pure_color_mute +_pure_set_default pure_color_at_sign pure_color_mute +_pure_set_default pure_color_username_normal pure_color_mute +_pure_set_default pure_color_username_root pure_color_light + +# Number of running jobs +_pure_set_default pure_show_jobs false +_pure_set_default pure_color_jobs pure_color_normal + +# Show system time +_pure_set_default pure_show_system_time false +_pure_set_default pure_color_system_time pure_color_mute + +# Nix build environment +_pure_set_default pure_enable_nixdevshell false +_pure_set_default pure_symbol_nixdevshell_prefix "❄️" # otherwise nerdfonts: '󱄅' or '' +_pure_set_default pure_color_nixdevshell_prefix pure_color_info +_pure_set_default pure_color_nixdevshell_symbol pure_color_mute + +# env for Python +_pure_set_default pure_enable_virtualenv true +_pure_set_default pure_symbol_virtualenv_prefix "" # 🐍 +_pure_set_default pure_color_virtualenv pure_color_mute + +# AWS profile name +_pure_set_default pure_enable_aws_profile true +_pure_set_default pure_symbol_aws_profile_prefix "" # ☁️ +_pure_set_default pure_color_aws_profile pure_color_warning + +# Print current working directory at the beginning of prompt +# true (default): current directory, git, user@hostname (ssh-only), command duration +# false: user@hostname (ssh-only), current directory, git, command duration +_pure_set_default pure_begin_prompt_with_current_directory true + +# Show exit code of last command as a separate prompt character (cf. https://github.com/sindresorhus/pure/wiki#show-exit-code-of-last-command-as-a-separate-prompt-character) +# false - single prompt character, default +# true - separate prompt character +_pure_set_default pure_separate_prompt_on_error false + +# Max execution time of a process before its run time is shown when it exits +_pure_set_default pure_threshold_command_duration 5 +_pure_set_default pure_show_subsecond_command_duration false +_pure_set_default pure_color_command_duration pure_color_warning + +# VI mode indicator +# true (default): indicate a non-insert mode by reversing the prompt symbol (❮) +# false: indicate vi mode with [I], [N], [V] +_pure_set_default pure_reverse_prompt_symbol_in_vimode true + +# Title +_pure_set_default pure_symbol_title_bar_separator - +_pure_set_default pure_shorten_window_title_current_directory_length 0 +_pure_set_default pure_truncate_window_title_current_directory_keeps -1 + +# Check for new release on startup +_pure_set_default pure_check_for_new_release false + +# Prefix prompt when logged in as root +_pure_set_default pure_show_prefix_root_prompt false +_pure_set_default pure_symbol_prefix_root_prompt "#" +_pure_set_default pure_color_prefix_root_prompt pure_color_danger + +# Compact mode +_pure_set_default pure_enable_single_line_prompt false + +# Detect when running in container (e.g. docker, podman, LXC/LXD) +_pure_set_default pure_enable_container_detection true +_pure_set_default pure_symbol_container_prefix "" # suggestion: '🐋' or '📦' + +# Detect when running in SSH +_pure_set_default pure_symbol_ssh_prefix "" # suggestion: 'ssh:/' or '🔗🔐🔒🌐' + +# Display Kubernetes/k8s context and namespace +_pure_set_default pure_enable_k8s false +_pure_set_default pure_symbol_k8s_prefix "☸" # ☸️ +_pure_set_default pure_color_k8s_prefix pure_color_info +_pure_set_default pure_color_k8s_context pure_color_success +_pure_set_default pure_color_k8s_namespace pure_color_primary diff --git a/.config/fish/conf.d/z.fish b/.config/fish/conf.d/z.fish new file mode 100644 index 0000000..59c960f --- /dev/null +++ b/.config/fish/conf.d/z.fish @@ -0,0 +1,63 @@ +if test -z "$Z_DATA" + if test -z "$XDG_DATA_HOME" + set -U Z_DATA_DIR "$HOME/.local/share/z" + else + set -U Z_DATA_DIR "$XDG_DATA_HOME/z" + end + set -U Z_DATA "$Z_DATA_DIR/data" +end + +if test ! -e "$Z_DATA" + if test ! -e "$Z_DATA_DIR" + mkdir -p -m 700 "$Z_DATA_DIR" + end + touch "$Z_DATA" +end + +if test -z "$Z_CMD" + set -U Z_CMD z +end + +set -U ZO_CMD "$Z_CMD"o + +if test ! -z $Z_CMD + function $Z_CMD -d "jump around" + __z $argv + end +end + +if test ! -z $ZO_CMD + function $ZO_CMD -d "open target dir" + __z -d $argv + end +end + +if not set -q Z_EXCLUDE + set -U Z_EXCLUDE "^$HOME\$" +else if contains $HOME $Z_EXCLUDE + # Workaround: migrate old default values to a regex (see #90). + set Z_EXCLUDE (string replace -r -- "^$HOME\$" '^'$HOME'$$' $Z_EXCLUDE) +end + +# Setup completions once first +__z_complete + +function __z_on_variable_pwd --on-variable PWD + __z_add +end + +function __z_uninstall --on-event z_uninstall + functions -e __z_on_variable_pwd + functions -e $Z_CMD + functions -e $ZO_CMD + + if test ! -z "$Z_DATA" + printf "To completely erase z's data, remove:\n" >/dev/stderr + printf "%s\n" "$Z_DATA" >/dev/stderr + end + + set -e Z_CMD + set -e ZO_CMD + set -e Z_DATA + set -e Z_EXCLUDE +end diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..d714361 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,3 @@ +if status is-interactive + # Commands to run in interactive sessions can go here +end diff --git a/.config/fish/fish_plugins b/.config/fish/fish_plugins new file mode 100644 index 0000000..aac83fd --- /dev/null +++ b/.config/fish/fish_plugins @@ -0,0 +1,2 @@ +jethrokuan/z +pure-fish/pure diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables new file mode 100644 index 0000000..2d1fdfd --- /dev/null +++ b/.config/fish/fish_variables @@ -0,0 +1,106 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR ZO_CMD:zo +SETUVAR Z_CMD:z +SETUVAR Z_DATA:/home/mike/\x2elocal/share/z/data +SETUVAR Z_DATA_DIR:/home/mike/\x2elocal/share/z +SETUVAR Z_EXCLUDE:\x5e/home/mike\x24 +SETUVAR __fish_initialized:3800 +SETUVAR _fisher_jethrokuan_2F_z_files:\x7e/\x2econfig/fish/functions/__z\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_add\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_clean\x2efish\x1e\x7e/\x2econfig/fish/functions/__z_complete\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/z\x2efish +SETUVAR _fisher_plugins:jethrokuan/z\x1epure\x2dfish/pure +SETUVAR _fisher_pure_2D_fish_2F_pure_files:\x7e/\x2econfig/fish/functions/_pure_check_availability\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_check_for_new_release\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_detect_container_by_cgroup_method\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_detect_container_by_pid_method\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_format_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_get_prompt_symbol\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_is_inside_container\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_is_single_line_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_k8s_context\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_k8s_namespace\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_parse_directory\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_parse_git_branch\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_place_iterm2_prompt_mark\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prefix_root_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_print_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_print_prompt_rows\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_aws_profile\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_beginning\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_command_duration\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_container\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_current_folder\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_ending\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_first_line\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_branch\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_dirty\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_pending_commits\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_git_stash\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_jobs\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_k8s\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_new_line\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_nixdevshell\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_ssh\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_symbol\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_system_time\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_vimode\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_prompt_virtualenv\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_set_color\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_set_default\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_string_width\x2efish\x1e\x7e/\x2econfig/fish/functions/_pure_user_at_host\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_greeting\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_mode_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_prompt\x2efish\x1e\x7e/\x2econfig/fish/functions/fish_title\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/_pure_init\x2efish\x1e\x7e/\x2econfig/fish/conf\x2ed/pure\x2efish +SETUVAR _fisher_upgraded_to_4_4:\x1d +SETUVAR fish_color_autosuggestion:brblack +SETUVAR fish_color_cancel:\x2dr +SETUVAR fish_color_command:normal +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:green +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:brcyan +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_host_remote:yellow +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:brcyan +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold +SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_status:red +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:normal +SETUVAR fish_pager_color_description:yellow\x1e\x2di +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_pager_color_selected_background:\x2dr +SETUVAR pure_begin_prompt_with_current_directory:true +SETUVAR pure_check_for_new_release:false +SETUVAR pure_color_at_sign:pure_color_mute +SETUVAR pure_color_aws_profile:pure_color_warning +SETUVAR pure_color_command_duration:pure_color_warning +SETUVAR pure_color_current_directory:pure_color_primary +SETUVAR pure_color_danger:red +SETUVAR pure_color_dark:black +SETUVAR pure_color_git_branch:pure_color_mute +SETUVAR pure_color_git_dirty:pure_color_mute +SETUVAR pure_color_git_stash:pure_color_info +SETUVAR pure_color_git_unpulled_commits:pure_color_info +SETUVAR pure_color_git_unpushed_commits:pure_color_info +SETUVAR pure_color_hostname:pure_color_mute +SETUVAR pure_color_info:cyan +SETUVAR pure_color_jobs:pure_color_normal +SETUVAR pure_color_k8s_context:pure_color_success +SETUVAR pure_color_k8s_namespace:pure_color_primary +SETUVAR pure_color_k8s_prefix:pure_color_info +SETUVAR pure_color_light:white +SETUVAR pure_color_mute:brblack +SETUVAR pure_color_nixdevshell_prefix:pure_color_info +SETUVAR pure_color_nixdevshell_symbol:pure_color_mute +SETUVAR pure_color_normal:normal +SETUVAR pure_color_prefix_root_prompt:pure_color_danger +SETUVAR pure_color_primary:blue +SETUVAR pure_color_prompt_on_error:pure_color_danger +SETUVAR pure_color_prompt_on_success:pure_color_success +SETUVAR pure_color_success:magenta +SETUVAR pure_color_system_time:pure_color_mute +SETUVAR pure_color_username_normal:pure_color_mute +SETUVAR pure_color_username_root:pure_color_light +SETUVAR pure_color_virtualenv:pure_color_mute +SETUVAR pure_color_warning:yellow +SETUVAR pure_enable_aws_profile:true +SETUVAR pure_enable_container_detection:true +SETUVAR pure_enable_git:true +SETUVAR pure_enable_k8s:false +SETUVAR pure_enable_nixdevshell:false +SETUVAR pure_enable_single_line_prompt:false +SETUVAR pure_enable_virtualenv:true +SETUVAR pure_reverse_prompt_symbol_in_vimode:true +SETUVAR pure_separate_prompt_on_error:false +SETUVAR pure_shorten_prompt_current_directory_length:0 +SETUVAR pure_shorten_window_title_current_directory_length:0 +SETUVAR pure_show_jobs:false +SETUVAR pure_show_prefix_root_prompt:false +SETUVAR pure_show_subsecond_command_duration:false +SETUVAR pure_show_system_time:false +SETUVAR pure_symbol_aws_profile_prefix: +SETUVAR pure_symbol_container_prefix: +SETUVAR pure_symbol_git_dirty:\x2a +SETUVAR pure_symbol_git_stash:\u2261 +SETUVAR pure_symbol_git_unpulled_commits:\u21e3 +SETUVAR pure_symbol_git_unpushed_commits:\u21e1 +SETUVAR pure_symbol_k8s_prefix:\u2638 +SETUVAR pure_symbol_nixdevshell_prefix:\u2744\ufe0f +SETUVAR pure_symbol_prefix_root_prompt:\x23 +SETUVAR pure_symbol_prompt:\u276f +SETUVAR pure_symbol_reverse_prompt:\u276e +SETUVAR pure_symbol_ssh_prefix: +SETUVAR pure_symbol_title_bar_separator:\x2d +SETUVAR pure_symbol_virtualenv_prefix: +SETUVAR pure_threshold_command_duration:5 +SETUVAR pure_truncate_prompt_current_directory_keeps:\x2d1 +SETUVAR pure_truncate_window_title_current_directory_keeps:\x2d1 diff --git a/.config/mimeapps.list b/.config/mimeapps.list index 5b4faa7..9bdd8bd 100644 --- a/.config/mimeapps.list +++ b/.config/mimeapps.list @@ -27,8 +27,8 @@ text/yaml=vim.desktop; video/mp4=mpv.desktop; video/mpeg=mpv.desktop; video/webm=mpv.desktop; -x-scheme-handler/http=firefox.desktop; -x-scheme-handler/https=firefox.desktop; +x-scheme-handler/http=brave-browser.desktop +x-scheme-handler/https=brave-browser.desktop x-scheme-handler/mpv=mpv-handler.desktop; x-scheme-handler/rdp=org.remmina.Remmina.desktop; x-scheme-handler/remmina=org.remmina.Remmina.desktop; @@ -41,3 +41,7 @@ x-scheme-handler/tonsite=org.telegram.desktop.desktop x-scheme-handler/mailspring=Mailspring.desktop text/markdown=dev.zed.Zed.desktop hoppscotch=hoppscotch-handler.desktop +text/html=brave-browser.desktop +x-scheme-handler/about=brave-browser.desktop +x-scheme-handler/unknown=brave-browser.desktop +x-scheme-handler/discord=equibop.desktop diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs index d829f93..7f9a959 100644 --- a/.config/user-dirs.dirs +++ b/.config/user-dirs.dirs @@ -5,11 +5,11 @@ # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an # absolute path. No other format is supported. # -XDG_DESKTOP_DIR="$HOME/" -XDG_DOWNLOAD_DIR="$HOME/downloads" -XDG_TEMPLATES_DIR="$HOME/" -XDG_PUBLICSHARE_DIR="$HOME/" -XDG_DOCUMENTS_DIR="$HOME/documents" -XDG_MUSIC_DIR="$HOME/" -XDG_PICTURES_DIR="$HOME/pictures" -XDG_VIDEOS_DIR="$HOME/" +XDG_DESKTOP_DIR="$HOME/Desktop" +XDG_DOWNLOAD_DIR="$HOME/Downloads" +XDG_TEMPLATES_DIR="$HOME/Templates" +XDG_PUBLICSHARE_DIR="$HOME/Public" +XDG_DOCUMENTS_DIR="$HOME/Documents" +XDG_MUSIC_DIR="$HOME/Music" +XDG_PICTURES_DIR="$HOME/Pictures" +XDG_VIDEOS_DIR="$HOME/Videos"