Movint to Fish + Tide

This commit is contained in:
Rodolphe Bréard 2025-03-02 14:26:08 +01:00
parent 4b08537918
commit ae7e402728
Signed by: rodolphe
SSH key fingerprint: SHA256:3rodCKnk1MUOfSlIKY0nHbBtvFyQx4EqjS+JIy69lN0
28 changed files with 167 additions and 326 deletions

52
.config/fish/config.fish Normal file
View file

@ -0,0 +1,52 @@
if status is-login
# Utilities
if type -q nvim
set --global --export EDITOR "nvim"
else if type -q vim
set --global --export EDITOR "vim"
end
set --global --export PAGER "less"
type -q kitty && set --global --export TERMINAL "kitty"
# Path
function add_path
set --function bin_path "$argv[1]"
if test -d "$bin_path"
if not contains "$bin_path" $PATH
set --global --export PATH "$bin_path" $PATH
end
end
end
add_path "$HOME/.local/bin"
add_path "$HOME/.cargo/bin"
# SSH agent
# Enable it using `systemctl enable --user ssh-agent.service`
begin
set --local ssh_agent_socket "$XDG_RUNTIME_DIR/ssh-agent.socket"
test -S "$ssh_agent_socket" && set --global --export SSH_AUTH_SOCK "$ssh_agent_socket"
end
# XDG
set --global --export XDG_USER_DIR_FILE "$HOME/.config/user-dirs.dirs"
set --global --export XDG_DESKTOP_DIR "$HOME/desktop"
set --global --export XDG_DOWNLOAD_DIR "$HOME/downloads"
set --global --export XDG_TEMPLATES_DIR "$HOME/templates"
set --global --export XDG_PUBLICSHARE_DIR "$HOME/public_share"
set --global --export XDG_DOCUMENTS_DIR "$HOME/documents"
set --global --export XDG_MUSIC_DIR "$HOME/music"
set --global --export XDG_PICTURES_DIR "$HOME/pictures"
set --global --export XDG_VIDEOS_DIR "$HOME/videos"
# Java
# https://wiki.archlinux.org/title/Java#Switching_between_JVM
set --global --export JAVA_HOME "/usr/lib/jvm/default"
end
if status is-interactive
# Disable the Fish greeting message
set --global fish_greeting
# zoxide
zoxide init fish | source
end

View file

@ -0,0 +1,3 @@
function audio-dl
command yt-dlp --extract-audio --audio-quality 0 --audio-format "vorbis" $argv
end

View file

@ -0,0 +1,4 @@
function clang-format
set --local style "{BasedOnStyle: llvm, IndentWidth: 4, AllowShortFunctionsOnASingleLine: None, KeepEmptyLinesAtTheStartOfBlocks: false}"
command clang-format -style="$style" $argv
end

View file

@ -0,0 +1,3 @@
function df
command df -h $argv
end

View file

@ -0,0 +1,7 @@
function du
if type -q duf
command duf $argv
else
command du $argv
end
end

View file

@ -0,0 +1,9 @@
function grep
if test "$pipestatus" = "0"
# No pipe before the grep
command grep -n --color=auto $argv
else
# There is a pipe before the grep
command grep --color=auto $argv
end
end

View file

@ -0,0 +1,3 @@
function hx
command helix $argv
end

View file

@ -0,0 +1,3 @@
function ip
command ip --color $argv
end

View file

@ -0,0 +1,3 @@
function j
command jobs $argv
end

View file

@ -0,0 +1,3 @@
function kitty_ssh
command kitty +kitten ssh $argv
end

View file

@ -0,0 +1,3 @@
function l
ls -AlihF $argv
end

View file

@ -0,0 +1,11 @@
function ls
if type -q eza
command eza $argv
else
if test "$(uname -s | tr '[:upper:]' '[:lower:]')" = 'linux'
command ls --color=auto $argv
else
command ls $argv
end
end
end

View file

@ -0,0 +1,3 @@
function mount_ro
command mount -o ro,noexec,noatime,nodev,nosuid,noiversion $argv
end

View file

@ -0,0 +1,3 @@
function sqlmap-tor
sqlmap --tor --tor-type=SOCKS5 $argv
end

View file

@ -0,0 +1,3 @@
function sqlmap
command sqlmap --user-agent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" $argv
end

View file

@ -0,0 +1,3 @@
function t
command tree $argv
end

View file

@ -0,0 +1,9 @@
function top
if type -q btop
command btop $argv
else if type -q htop
command htop $argv
else
command top $argv
end
end

View file

@ -0,0 +1,7 @@
function vim
if type -q nvim
command nvim $argv
else
command vim $argv
end
end

View file

@ -1,142 +0,0 @@
####################################
# LIQUID PROMPT CONFIGURATION FILE #
####################################
# If you want to use different themes and features,
# you can load the corresponding files here:
#source ~/code/liquidprompt/nojhan.theme
#LP_PS1_FILE="~/code/liquidprompt/nojhan.ps1"
LP_PS1_POSTFIX="-> "
#############
# BEHAVIOUR #
#############
# Maximal value under which the battery level is displayed
# Recommended value is 75
LP_BATTERY_THRESHOLD=75
# Minimal value after which the load average is displayed
# Recommended value is 60
LP_LOAD_THRESHOLD=60
# Minimal value after which the temperature is displayed (in celsius degrees)
# Recommended value is 60
LP_TEMP_THRESHOLD=60
# The maximum percentage of the screen width used to display the path
# Recommended value is 35
LP_PATH_LENGTH=35
# How many directories to keep at the beginning of a shortened path
# Recommended value is 2
LP_PATH_KEEP=2
# Do you want to display the hostname, even if not connected through network?
# Defaults to 0 (do not display hostname when localy connected)
# set to 1 if you want to always see the hostname
LP_HOSTNAME_ALWAYS=0
# Do you want to display the user, even if he is the same than the logged one?
# Defaults to 1 (always display the user)
# set to 0 if you want to hide the logged user (it will always display different users)
LP_USER_ALWAYS=1
# Do you want to display the percentages of load/batteries along with their
# corresponding marks? Set to 0 to only print the colored marks.
# Defaults to 1 (display percentages)
LP_PERCENTS_ALWAYS=1
# Do you want to use the permissions feature ?
# Recommended value is 1
LP_ENABLE_PERM=1
# Do you want to use the shorten path feature ?
# Recommended value is 1
LP_ENABLE_SHORTEN_PATH=1
# Do you want to use the proxy detection feature ?
# Recommended value is 1
LP_ENABLE_PROXY=1
# Do you want to use the jobs feature ?
# Recommended value is 1
LP_ENABLE_JOBS=1
# Do you want to use the load feature ?
# Recommended value is 1
LP_ENABLE_LOAD=1
# Do you want to use the batt feature ?
# Recommended value is 1
LP_ENABLE_BATT=1
# Do you want to use vcs features with root account
# Recommended value is 0
LP_ENABLE_VCS_ROOT=0
# Do you want to use the git special features ?
# Recommended value is 1
LP_ENABLE_GIT=1
# Do you want to use the svn special features ?
# Recommended value is 1
LP_ENABLE_SVN=1
# Do you want to use the mercurial special features ?
# Recommended value is 1
LP_ENABLE_HG=1
# Do you want to use the fossil special features ?
# Recommended value is 1
LP_ENABLE_FOSSIL=1
# Do you want to use the bzr special features ?
# Recommanded value is 1
LP_ENABLE_BZR=1
# Show time of the last prompt display
# Recommended value is 0
LP_ENABLE_TIME=0
# Show runtime of the last command if over LP_RUNTIME_THRESHOLD
# Recommended value is 0
LP_ENABLE_RUNTIME=0
# Minimal runtime to be displayed
# Recommended value is 2
LP_RUNTIME_THRESHOLD=2
# Display the virtualenv that is currently activated, if any
# Recommended value is 1
LP_ENABLE_VIRTUALENV=1
# Show average system temperature
LP_ENABLE_TEMP=1
# When showing time, use an analog clock instead of numeric values.
# The analog clock is "accurate" to the nearest half hour.
# You must have a unicode-capable terminal and a font with the "CLOCK"
# characters.
# Recommended value is 0
LP_TIME_ANALOG=0
# Use the liquid prompt as the title of the terminal window
# This may not work properly on exotic terminals, thus the
# recommended value is 0
# See LP_TITLE_OPEN and LP_TITLE_CLOSE to change escape characters to adapt this
# feature to your specific terminal.
LP_ENABLE_TITLE=0
# Enable Title for screen and byobu
LP_ENABLE_SCREEN_TITLE=0
# Use differents colors for differents hosts you SSH in
LP_ENABLE_SSH_COLORS=0
# Specify a list of complete and colon (":") separated paths in which, all vcs
# will be disabled
LP_DISABLED_VCS_PATH=""
# vim: set et sts=4 sw=4 tw=120 ft=sh:

View file

@ -1,55 +0,0 @@
#
# Aliases for ls
#
[ "$(uname -s | tr '[:upper:]' '[:lower:]')" = 'linux' ] && alias ls='ls --color=auto'
alias ll='ls -lihF'
alias la='ls -A'
alias l='ll -A'
hash eza 2>/dev/null && alias ls='eza'
#
# Aliases for common commands
#
alias df='df -h'
alias grep='grep -n --color=auto'
alias ip='ip --color'
alias ipb='ip --color --brief'
alias j='jobs'
alias mount_ro='mount -o ro,noexec,noatime,nodev,nosuid,noiversion'
alias sudo='sudo '
#
# Aliases for installed programs
#
hash clang-format 2>/dev/null && alias clang-format='clang-format -style="{BasedOnStyle: llvm, IndentWidth: 4, AllowShortFunctionsOnASingleLine: None, KeepEmptyLinesAtTheStartOfBlocks: false}"'
hash duf 2>/dev/null && alias du='duf'
hash helix 2>/dev/null && alias hx='helix'
hash htop 2>/dev/null && alias top='htop'
hash kitty 2>/dev/null && alias kitty_ssh='kitty +kitten ssh'
hash nvim 2>/dev/null && alias vim='nvim'
hash tree 2>/dev/null && alias t='tree'
hash yt-dlp 2>/dev/null && alias audio-dl='yt-dlp --extract-audio --audio-quality 0 --audio-format "vorbis"'
if hash sqlmap 2>/dev/null; then
alias sqlmap='sqlmap --user-agent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"'
alias sqlmap-tor='sqlmap --tor --tor-type=SOCKS5'
fi
# https://github.com/OpenXRay/xray-16
if hash xr_3da 2>/dev/null; then
alias stalker_shadow_of_chernobyl='xr_3da -soc'
alias stalker_clear_sky='xr_3da -cs'
alias stalker_call_of_pripyat='xr_3da'
fi
if hash yay 2>/dev/null; then
reinstall_pattern() {
PATTERN="$1"
yay -S $(pacman -Qm | /bin/grep "$PATTERN" | cut -d ' ' -f1)
}
fi

View file

@ -1,11 +0,0 @@
# Since all keyboards does not include the same keys, the compose key
# should be customized. In order to achieve that, this script requires
# a symbolic link to point to a file containing the name of the key that
# will be used as a compose key.
COMPOSE_KEY_FILE="$HOME/.compose_key"
if [ -f "$COMPOSE_KEY_FILE" ]; then
COMPOSE_KEY=$(cat "$COMPOSE_KEY_FILE")
setxkbmap -option "compose:$COMPOSE_KEY"
fi

View file

@ -1,11 +0,0 @@
add_path() {
BIN_PATH="$1"
if [ -d "$BIN_PATH" ]; then
found=$(echo $PATH | tr ':' '\n' | grep -w "$BIN_PATH")
[ ! "$found" ] && export PATH="$BIN_PATH:$PATH"
true
fi
}
add_path "$HOME/.local/bin"
add_path "$HOME/.cargo/bin"

View file

@ -1,6 +0,0 @@
XDG_USER_DIR_FILE="$HOME/.config/user-dirs.dirs"
if [ -f "$XDG_USER_DIR_FILE" ]; then
. "$XDG_USER_DIR_FILE"
export XDG_PICTURES_DIR="$XDG_PICTURES_DIR"
fi

View file

@ -1,6 +0,0 @@
# create the missing directories
[ ! -d "$HISTFILE_DIR" ] && mkdir -p "$HISTFILE_DIR"
[ ! -d "$COMPDIR" ] && mkdir -p "$COMPDIR"
hash transmission-daemon 2>/dev/null && transmission-daemon
hash kitty 2>/dev/null && export TERMINAL="kitty"

View file

@ -1,62 +0,0 @@
setopt no_beep inc_append_history hist_ignore_dups hist_ignore_space extended_glob no_match notify
bindkey -e
bindkey "^[[3~" delete-char
bindkey "^[3;5~" delete-char
# Colors
[ "$CLICOLOR" -ne 0 ] && hash dircolors 2>/dev/null && eval $(dircolors -b)
# Command completion
autoload -U compinit
[ -f "$COMPDIR/.zcompdump" ] && compinit -d "$COMPDIR/.zcompdump"
# Prompt
if [ -f "/usr/bin/liquidprompt" ]; then
unset PROMPT_COMMAND
. "/usr/bin/liquidprompt"
elif [ -f "/usr/share/liquidprompt/liquidprompt" ]; then
unset PROMPT_COMMAND
. "/usr/share/liquidprompt/liquidprompt"
elif [ -f "$HOME/liquidprompt/liquidprompt" ]; then
unset PROMPT_COMMAND
. "$HOME/liquidprompt/liquidprompt"
elif [ "$CLICOLOR" -ne 0 ]; then
autoload -U colors && colors
PS1="%{$fg[red]%}%n%{$reset_color%}@%{$fg[yellow]%}%M%{$fg[red]%}->%{$reset_color%} "
else
PS1='%n@%M-> '
fi
# Syntax-highlighting
if [ -f "/usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" ]; then
. "/usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
fi
# SSH agent
# Enable it using `systemctl enable --user ssh-agent.service`
[ -S "$XDG_RUNTIME_DIR/ssh-agent.socket" ] && export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
# Aliases
[ -f "$MY_CONFIG/.aliases" ] && . "$MY_CONFIG/.aliases"
# Proxy settings
[ -f "$HOME/.proxy" ] && . "$HOME/.proxy"
# skim
[ -f "/usr/share/skim/key-bindings.zsh" ] && . /usr/share/skim/key-bindings.zsh
[ -f "/usr/share/skim/completion.zsh" ] && . /usr/share/skim/completion.zsh
# zoxide
hash zoxide 2>/dev/null && eval "$(zoxide init zsh)"
# Java
#
# Use `archlinux-java` to change the default Java environment.
# List directories in `/usr/lib/jvm/` to see all possible values.
#
# Example:
# sudo archlinux-java set java-13-openjdk
[ -d "/usr/lib/jvm/default" ] && export JAVA_HOME="/usr/lib/jvm/default"
# Exit with a success status
true

12
.gitignore vendored
View file

@ -14,5 +14,17 @@ __pycache__/
# Emacs
.emacs.d/auto-save-list/
# Fish
.config/fish/completions
.config/fish/conf.d
.config/fish/fish_plugins
.config/fish/fish_variables
.config/fish/themes
# Tide
.config/fish/functions/_tide_*
.config/fish/functions/fish_*
.config/fish/functions/tide*
# Auto-generated hyprpaper configuration file
.config/hypr/hyprpaper.conf

26
.zshenv
View file

@ -1,26 +0,0 @@
# ZSH configuration
export ZDOTDIR="$HOME/.config/zsh"
# Custom configuration
export MY_CONFIG="$HOME/.config/rodolphe"
# History
export HISTFILE_DIR="$HOME/.local/share/zsh"
export HISTFILE="$HISTFILE_DIR/.zsh_history"
export HISTSIZE=5000
export SAVEHIST=100000
# CLI config
export COMPDIR="$HOME/.cache/zsh"
export CLICOLOR=1
export EDITOR='vim'
export PAGER='less'
# Packaging
export USER_NICKNAME="Rodolphe Bréard"
export DEBEMAIL="packages+deb@what.tf"
export DEBFULLNAME="$USER_NICKNAME"
# Path
[ -f "$MY_CONFIG/.setpath.sh" ] && . "$MY_CONFIG/.setpath.sh"
[ -f "$MY_CONFIG/.xdg_set_env.sh" ] && . "$MY_CONFIG/.xdg_set_env.sh"

View file

@ -9,11 +9,13 @@ Installing packages:
``` sh
# Base utils
pacman -S bat duf eza htop inetutils jq kitty-terminfo neovim openssh tmux transmission-cli tree wget whois zellij zsh zsh-syntax-highlighting
pacman -S bat duf eza fish fisher htop inetutils jq kitty-terminfo neovim openssh tmux transmission-cli tree wget whois zellij
pacman -S shared-mime-info xdg-user-dirs
pacman -S reflector
pacman -S skim
pacman -S yazi unarchiver ffmpegthumbnailer fd ripgrep-all poppler zoxide
# Fonts
pacman -S nerd-fonts noto-fonts noto-fonts-emoji ttf-dejavu ttf-inconsolata ttf-liberation ttf-roboto
# Rust
pacman -S cargo-audit cargo-outdated cargo-release rustup
# Python
@ -29,8 +31,6 @@ pacman -S swaylock
# Graphical software
pacman -S atril firefox gedit gimp handbrake kitty mpv openshot pcmanfm-gtk3 rhythmbox ristretto sweethome3d tumbler thunderbird vlc
pacman -S gvfs xarchiver
# Fonts
pacman -S noto-fonts noto-fonts-emoji ttf-dejavu ttf-inconsolata ttf-liberation ttf-roboto
# Archives
pacman -S unrar p7zip zip unzip minizip
# Command-line copy/paste utilities
@ -58,17 +58,33 @@ pacman -U "yay-<version>-x86_64.pkg.tar.zst"
Installing packages:
``` sh
# Base utils
yay -S liquidprompt vim-plug
# Vim plugin manager
yay -S vim-plug
# Printer
yay -S brother-dcp1610w brscan-skey brscan4
# Graphical software
yay -S cardpeek
```
## vim / neovim
Compatibility workaround for NeoVim:
## Fish
Install the Tide prompt:
```
fisher install IlanCosman/tide@v6
```
Configure the prompt:
```
tide configure
```
## Vim / Neovim
Compatibility workaround for Neovim:
```
ln -s .config/vim .vim