This commit is contained in:
Ben Harris 2018-07-22 15:39:58 -04:00
commit e45ac4fdf8
82 changed files with 11952 additions and 0 deletions

6
.gitmodules vendored Normal file
View File

@ -0,0 +1,6 @@
[submodule "vim/spf13-vim"]
path = vim/spf13-vim
url = https://github.com/spf13/spf13-vim
[submodule "fish/.config/fish/nvm-wrapper"]
path = fish/.config/fish/nvm-wrapper
url = https://github.com/passcod/nvm-fish-wrapper

169
bash/.bash_aliases Executable file
View File

@ -0,0 +1,169 @@
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
alias 1='cd -'
alias 2='cd -2'
alias 3='cd -3'
alias 4='cd -4'
alias 5='cd -5'
alias 6='cd -6'
alias 7='cd -7'
alias 8='cd -8'
alias 9='cd -9'
alias _=sudo
alias afind='ack -il'
alias c=composer
alias ccp='composer create-project'
alias cdu='composer dump-autoload'
alias cget='curl -s https://getcomposer.org/installer | php'
alias cgr='composer global require'
alias cgu='composer global update'
alias ci='composer install'
alias cr='composer require'
alias csu='composer self-update'
alias cu='composer update'
alias d='dirs -v | head -10'
alias g=git
alias ga='git add'
alias gaa='git add --all'
alias gapa='git add --patch'
alias gb='git branch'
alias gba='git branch -a'
alias gbd='git branch -d'
alias gbda='git branch --no-color --merged | command grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
alias gbl='git blame -b -w'
alias gbnm='git branch --no-merged'
alias gbr='git branch --remote'
alias gbs='git bisect'
alias gbsb='git bisect bad'
alias gbsg='git bisect good'
alias gbsr='git bisect reset'
alias gbss='git bisect start'
alias gc='git commit -v'
alias 'gc!'='git commit -v --amend'
alias gca='git commit -v -a'
alias 'gca!'='git commit -v -a --amend'
alias gcam='git commit -a -m'
alias 'gcan!'='git commit -v -a --no-edit --amend'
alias 'gcans!'='git commit -v -a -s --no-edit --amend'
alias gcb='git checkout -b'
alias gcd='git checkout develop'
alias gcf='git config --list'
alias gcl='git clone --recursive'
alias gclean='git clean -fd'
alias gcm='git checkout master'
alias gcmsg='git commit -m'
alias 'gcn!'='git commit -v --no-edit --amend'
alias gco='git checkout'
alias gcount='git shortlog -sn'
alias gcp='git cherry-pick'
alias gcpa='git cherry-pick --abort'
alias gcpc='git cherry-pick --continue'
alias gcs='git commit -S'
alias gcsm='git commit -s -m'
alias gd='git diff'
alias gdca='git diff --cached'
alias gdct='git describe --tags `git rev-list --tags --max-count=1`'
alias gdt='git diff-tree --no-commit-id --name-only -r'
alias gdw='git diff --word-diff'
alias gf='git fetch'
alias gfa='git fetch --all --prune'
alias gfo='git fetch origin'
alias gg='git gui citool'
alias gga='git gui citool --amend'
alias ggpull='git pull origin $(git_current_branch)'
alias ggpur=ggu
alias ggpush='git push origin $(git_current_branch)'
alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'
alias ghh='git help'
alias gignore='git update-index --assume-unchanged'
alias gignored='git ls-files -v | grep "^[[:lower:]]"'
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
alias gk='\gitk --all --branches'
alias gke='\gitk --all $(git log -g --pretty=%h)'
alias gl='git pull'
alias glg='git log --stat'
alias glgg='git log --graph'
alias glgga='git log --graph --decorate --all'
alias glgm='git log --graph --max-count=10'
alias glgp='git log --stat -p'
alias glo='git log --oneline --decorate'
alias glog='git log --oneline --decorate --graph'
alias gloga='git log --oneline --decorate --graph --all'
alias glol='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit'
alias glola='git log --graph --pretty='\''%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'\'' --abbrev-commit --all'
alias glp=_git_log_prettily
alias glum='git pull upstream master'
alias gm='git merge'
alias gmom='git merge origin/master'
alias gmt='git mergetool --no-prompt'
alias gmtvim='git mergetool --no-prompt --tool=vimdiff'
alias gmum='git merge upstream/master'
alias gp='git push'
alias gpd='git push --dry-run'
alias gpoat='git push origin --all && git push origin --tags'
alias gpristine='git reset --hard && git clean -dfx'
alias gpsup='git push --set-upstream origin $(git_current_branch)'
alias gpu='git push upstream'
alias gpv='git push -v'
alias gr='git remote'
alias gra='git remote add'
alias grb='git rebase'
alias grba='git rebase --abort'
alias grbc='git rebase --continue'
alias grbi='git rebase -i'
alias grbm='git rebase master'
alias grbs='git rebase --skip'
alias grep='grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn}'
alias grh='git reset HEAD'
alias grhh='git reset HEAD --hard'
alias grmv='git remote rename'
alias grrm='git remote remove'
alias grset='git remote set-url'
alias grt='cd $(git rev-parse --show-toplevel || echo ".")'
alias gru='git reset --'
alias grup='git remote update'
alias grv='git remote -v'
alias gsb='git status -sb'
alias gsd='git svn dcommit'
alias gsi='git submodule init'
alias gsps='git show --pretty=short --show-signature'
alias gsr='git svn rebase'
alias gss='git status -s'
alias gst='git status'
alias gsta='git stash save'
alias gstaa='git stash apply'
alias gstc='git stash clear'
alias gstd='git stash drop'
alias gstl='git stash list'
alias gstp='git stash pop'
alias gsts='git stash show --text'
alias gsu='git submodule update'
alias gts='git tag -s'
alias gtv='git tag | sort -V'
alias gunignore='git update-index --no-assume-unchanged'
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
alias gup='git pull --rebase'
alias gupv='git pull --rebase -v'
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify -m "--wip--"'
alias history='fc -l 1'
alias l='ls -lah'
alias la='ls -lAh'
alias ll='ls -lh'
alias ls='ls --color=tty'
alias lsa='ls -lah'
alias md='mkdir -p'
alias please=sudo
alias po=popd
alias pu=pushd
alias rd=rmdir
alias rip=exit
alias which-command=whence
alias cowtune="fortune|cowsay"
alias owl='php /home/ben/.owl/bin/owl.php'

7
bash/.bash_logout Executable file
View File

@ -0,0 +1,7 @@
# ~/.bash_logout: executed by bash(1) when login shell exits.
# when leaving the console clear the screen to increase privacy
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

5
bash/.bash_profile Executable file
View File

@ -0,0 +1,5 @@
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
export PATH="$HOME/.cargo/bin:$PATH"
if [ -e /home/ben/.nix-profile/etc/profile.d/nix.sh ]; then . /home/ben/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer

141
bash/.bashrc Executable file
View File

@ -0,0 +1,141 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
# MY STUFF!!
[ -r /home/ben/.byobu/prompt ] && . /home/ben/.byobu/prompt #byobu-prompt#
PATH=.:$PATH
export PS1="\[$(tput bold)\]\[$(tput setaf 2)\]\u\[$(tput setaf 6)\]@\[$(tput setaf 4)\]\h:\[$(tput setaf 2)\]\w\[$(tput setaf 4)\]\\$ \[$(tput sgr0)\]"
brc() { vim ~/.bashrc; }
tag() { shuf -n 1 ~/taglines.txt; }
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
[ -f ~/.fzf.bash ] && source ~/.fzf.bash

View File

0
byobu/.byobu/.screenrc Executable file
View File

1
byobu/.byobu/.ssh-agent Symbolic link
View File

@ -0,0 +1 @@
/tmp/ssh-c3NIHjlHlO/agent.29552

3
byobu/.byobu/.tmux.conf Executable file
View File

@ -0,0 +1,3 @@
set -g default-shell /usr/bin/fish
set -g default-command /usr/bin/fish
set -g default-terminal "tmux-256color"

View File

1
byobu/.byobu/backend Executable file
View File

@ -0,0 +1 @@
BYOBU_BACKEND=tmux

3
byobu/.byobu/color Executable file
View File

@ -0,0 +1,3 @@
BACKGROUND=k
FOREGROUND=w
MONOCHROME=0

5
byobu/.byobu/color.tmux Executable file
View File

@ -0,0 +1,5 @@
BYOBU_DARK="\#b03b5b"
BYOBU_LIGHT=black
BYOBU_ACCENT=magenta
BYOBU_HIGHLIGHT=red
MONOCHROME=

2
byobu/.byobu/datetime.tmux Executable file
View File

@ -0,0 +1,2 @@
BYOBU_TIME="%H:%M:%S"
BYOBU_DATE=

1
byobu/.byobu/keybindings Executable file
View File

@ -0,0 +1 @@
source $BYOBU_PREFIX/share/byobu/keybindings/common

4
byobu/.byobu/keybindings.tmux Executable file
View File

@ -0,0 +1,4 @@
unbind-key -n C-a
set -g prefix ^A
set -g prefix2 ^A
bind a send-prefix

1
byobu/.byobu/profile Executable file
View File

@ -0,0 +1 @@
source $BYOBU_PREFIX/share/byobu/profiles/common

1
byobu/.byobu/profile.tmux Executable file
View File

@ -0,0 +1 @@
source $BYOBU_PREFIX/share/byobu/profiles/tmux

1
byobu/.byobu/prompt Executable file
View File

@ -0,0 +1 @@
[ -r /usr/share/byobu/profiles/bashrc ] && . /usr/share/byobu/profiles/bashrc #byobu-prompt#

37
byobu/.byobu/status Executable file
View File

@ -0,0 +1,37 @@
# status - Byobu's default status enabled/disabled settings
#
# Override these in $BYOBU_CONFIG_DIR/status
# where BYOBU_CONFIG_DIR is XDG_CONFIG_HOME if defined,
# and $HOME/.byobu otherwise.
#
# Copyright (C) 2009-2011 Canonical Ltd.
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Status beginning with '#' are disabled.
# Screen has two status lines, with 4 quadrants for status
screen_upper_left="color"
screen_upper_right="color whoami hostname ip_address menu"
screen_lower_left="color logo distro release #arch session"
screen_lower_right="color network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #ec2_cost #rcs_cost #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk #time_utc date time"
# Tmux has one status line, with 2 halves for status
tmux_left=" #logo #distro #release #arch #session"
# You can have as many tmux right lines below here, and cycle through them using Shift-F5
tmux_right=" #network #disk_io #custom #entropy #raid reboot_required updates_available #apport #services mail #users uptime #ec2_cost #rcs_cost #fan_speed cpu_temp #battery #wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk #whoami #hostname #ip_address #time_utc #date time"
#tmux_right="network #disk_io #custom entropy raid reboot_required updates_available #apport #services #mail users uptime #ec2_cost #rcs_cost fan_speed cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk whoami hostname ip_address #time_utc date time"
#tmux_right="network #disk_io custom #entropy raid reboot_required updates_available #apport #services #mail users uptime #ec2_cost #rcs_cost #fan_speed #cpu_temp battery wifi_quality #processes load_average cpu_count cpu_freq memory #swap #disk #whoami #hostname ip_address #time_utc date time"
#tmux_right="#network disk_io #custom entropy #raid #reboot_required #updates_available #apport #services #mail #users #uptime #ec2_cost #rcs_cost fan_speed cpu_temp #battery #wifi_quality #processes #load_average #cpu_count #cpu_freq #memory #swap whoami hostname ip_address #time_utc disk date time"

79
byobu/.byobu/statusrc Executable file
View File

@ -0,0 +1,79 @@
# statusrc - Byobu's default status configurations
#
# Override these in $BYOBU_CONFIG_DIR/statusrc
# where BYOBU_CONFIG_DIR is XDG_CONFIG_HOME if defined,
# and $HOME/.byobu otherwise.
#
# Copyright (C) 2009-2011 Canonical Ltd.
#
# Authors: Dustin Kirkland <kirkland@byobu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Configurations that you can override; if you leave these commented out,
# Byobu will try to auto-detect them.
# This should be auto-detected for most distro, but setting it here will save
# some call to lsb_release and the like.
#DISTRO=Ubuntu
# Default: depends on the distro (which is either auto-detected, either set
# via $DISTRO)
#LOGO="\o/"
# Abbreviate the release to N characters
# By default, this is disabled. But if you set RELEASE_ABBREVIATED=1
# and your lsb_release is "precise", only "p" will be displayed
#RELEASE_ABBREVIATED=1
# Default: /
#MONITORED_DISK=/
# Minimum disk throughput that triggers the notification (in kB/s)
# Default: 50
#DISK_IO_THRESHOLD=50
# Default: eth0
#MONITORED_NETWORK=eth0
# Unit used for network throughput (either bits per second or bytes per second)
# Default: bits
#NETWORK_UNITS=bytes
# Minimum network throughput that triggers the notification (in kbit/s)
# Default: 20
#NETWORK_THRESHOLD=20
# You can add an additional source of temperature here
#MONITORED_TEMP=/proc/acpi/thermal_zone/THM0/temperature
# Default: C
#TEMP=F
#SERVICES="eucalyptus-nc|NC eucalyptus-cloud|CLC eucalyptus-walrus eucalyptus-cc|CC eucalyptus-sc|SC"
#FAN=$(find /sys -type f -name fan1_input | head -n1)
# You can set this to 1 to report your external/public ip address
# Default: 0
#IP_EXTERNAL=0
# The users notification normally counts ssh sessions; set this configuration to '1'
# to instead count number of distinct users logged onto the system
# Default: 0
#USERS_DISTINCT=0
# Set this to zero to hide seconds int the time display
# Default 1
#TIME_SECONDS=0
BYOBU_CHARMAP=x

0
byobu/.byobu/windows Executable file
View File

0
byobu/.byobu/windows.tmux Executable file
View File

5
byobu/.tmux.conf Normal file
View File

@ -0,0 +1,5 @@
set -g default-terminal "tmux-256color"
set-option -g base-index 1

14
fish/.config/fish/config.fish Executable file
View File

@ -0,0 +1,14 @@
status --is-login; and status --is-interactive; and exec byobu-launcher
set -xg EDITOR vim
set -g theme_nerd_fonts yes
set -g theme_color_scheme dark
set -g theme_display_date no
set -x MAIL /home/ben/Maildir
set -x GOPATH (/usr/local/go/bin/go env GOPATH)
set -x fish_user_paths $fish_user_paths ~/bin /usr/local/go/bin /home/ben/.yarn/bin $GOPATH/bin

View File

@ -0,0 +1,32 @@
# This file is automatically generated by the fish.
# Do NOT edit it directly, your changes will be overwritten.
SET __fish_init_2_39_8:\x1d
SET __fish_init_2_3_0:\x1d
SET fish_color_autosuggestion:555\x1ebrblack
SET fish_color_cancel:\x2dr
SET fish_color_command:\x2d\x2dbold
SET fish_color_comment:red
SET fish_color_cwd:green
SET fish_color_cwd_root:red
SET fish_color_end:brmagenta
SET fish_color_error:brred
SET fish_color_escape:bryellow\x1e\x2d\x2dbold
SET fish_color_history_current:\x2d\x2dbold
SET fish_color_host:normal
SET fish_color_match:\x2d\x2dbackground\x3dbrblue
SET fish_color_normal:normal
SET fish_color_operator:bryellow
SET fish_color_param:cyan
SET fish_color_quote:yellow
SET fish_color_redirection:brblue
SET fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SET fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SET fish_color_user:brgreen
SET fish_color_valid_path:\x2d\x2dunderline
SET fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
SET fish_key_bindings:fish_default_key_bindings
SET fish_pager_color_completion:\x1d
SET fish_pager_color_description:B3A06D\x1eyellow
SET fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SET fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SET_EXPORT fish_user_paths:/home/ben/bin\x1e/usr/local/go/bin\x1e/home/ben/workspace/go/bin\x1e/home/ben/\x2eyarn/bin

View File

@ -0,0 +1,37 @@
# This file is automatically generated by the fish.
# Do NOT edit it directly, your changes will be overwritten.
SET_EXPORT PATH:/home/ben/bin\x1e/home/ben/\x2erbenv/shims\x1e/home/ben/\x2erbenv/shims\x1e/home/ben/\x2erbenv/bin\x1e/home/ben/\x2erbenv/shims\x1e/home/ben/\x2erbenv/bin\x1e/usr/local/sbin\x1e/usr/local/bin\x1e/usr/sbin\x1e/usr/bin\x1e/sbin\x1e/bin\x1e/usr/games\x1e/usr/local/games\x1e/usr/local/go/bin
SET __fish_init_2_39_8:\x1d
SET __fish_init_2_3_0:\x1d
SET dangerous_nocmdhist:c\x1ed\x1ell\x1els\x1em\x1es
SET dangerous_pwdstyle:short\x1elong\x1enone
SET dangerous_sessions_active:\x1d
SET dangerous_sessions_active_pid:\x1d
SET fish_color_autosuggestion:555\x1ebrblack
SET fish_color_cancel:\x2dr
SET fish_color_command:\x2d\x2dbold
SET fish_color_comment:red
SET fish_color_cwd:green
SET fish_color_cwd_root:red
SET fish_color_end:brmagenta
SET fish_color_error:brred
SET fish_color_escape:bryellow\x1e\x2d\x2dbold
SET fish_color_history_current:\x2d\x2dbold
SET fish_color_host:normal
SET fish_color_match:\x2d\x2dbackground\x3dbrblue
SET fish_color_normal:normal
SET fish_color_operator:bryellow
SET fish_color_param:cyan
SET fish_color_quote:yellow
SET fish_color_redirection:brblue
SET fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SET fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SET fish_color_user:brgreen
SET fish_color_valid_path:\x2d\x2dunderline
SET fish_greeting:welcome\x20to\x20tildefish
SET fish_key_bindings:fish_default_key_bindings
SET fish_pager_color_completion:\x1d
SET fish_pager_color_description:B3A06D\x1eyellow
SET fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SET fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SET_EXPORT fish_user_paths:/home/ben/bin\x1e/usr/local/go/bin\x1e/home/ben/workspace/go/bin\x1e/home/ben/\x2eyarn/bin

View File

@ -0,0 +1,31 @@
# This file is automatically generated by the fish.
# Do NOT edit it directly, your changes will be overwritten.
SET __fish_init_2_39_8:\x1d
SET __fish_init_2_3_0:\x1d
SET fish_color_autosuggestion:555\x1ebrblack
SET fish_color_cancel:\x2dr
SET fish_color_command:\x2d\x2dbold
SET fish_color_comment:red
SET fish_color_cwd:green
SET fish_color_cwd_root:red
SET fish_color_end:brmagenta
SET fish_color_error:brred
SET fish_color_escape:bryellow\x1e\x2d\x2dbold
SET fish_color_history_current:\x2d\x2dbold
SET fish_color_host:normal
SET fish_color_match:\x2d\x2dbackground\x3dbrblue
SET fish_color_normal:normal
SET fish_color_operator:bryellow
SET fish_color_param:cyan
SET fish_color_quote:yellow
SET fish_color_redirection:brblue
SET fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SET fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SET fish_color_user:brgreen
SET fish_color_valid_path:\x2d\x2dunderline
SET fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
SET fish_key_bindings:fish_default_key_bindings
SET fish_pager_color_completion:\x1d
SET fish_pager_color_description:B3A06D\x1eyellow
SET fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SET fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan

1
fish/.config/fish/fishfile Executable file
View File

@ -0,0 +1 @@

View File

@ -0,0 +1,8 @@
# Defined in /tmp/fish.hXQA9y/cp_tilde_index.fish @ line 1
function cp_tilde_index
sudo cp /etc/skel/public_html/index.php /home/$argv[1]/public_html/.
sudo chown $argv[1]:$argv[1] /home/$argv[1]/public_html/index.php
if test -e /home/$argv[1]/public_html/index.html
sudo rm /home/$argv[1]/public_html/index.html
end
end

View File

@ -0,0 +1,3 @@
function fish_greeting
cat /var/run/motd
end

View File

@ -0,0 +1 @@
/home/ben/.local/share/omf/themes/bobthefish/fish_prompt.fish

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
/home/ben/.fzf/shell/key-bindings.fish

View File

@ -0,0 +1,7 @@
function g
if count $argv > /dev/null
git $argv
else
git status
end
end

View File

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

View File

@ -0,0 +1,3 @@
function longtlds
wget -qO - http://data.iana.org/TLD/tlds-alpha-by-domain.txt | tail -n+2 | awk '{print length, $0;}' | sort -n $argv
end

View File

@ -0,0 +1,3 @@
function owl
php /home/ben/.owl/bin/owl.php $argv
end

View File

@ -0,0 +1,3 @@
function renew_ifd_cert
sudo certbot certonly --agree-tos --renew-by-default --manual --preferred-challenges=dns -d ironfishdistillery.com $argv
end

View File

@ -0,0 +1,3 @@
function tag
shuf -n 1 ~/taglines.txt
end

View File

@ -0,0 +1,3 @@
function tildefig
curl "https://tilde.team/~ben/api/?font=slant&text="$argv
end

View File

@ -0,0 +1,3 @@
function vz
vim (fzf)
end

@ -0,0 +1 @@
Subproject commit 691980b66b93d635d0d87629cbe7484ab1ac566b

1
vim/spf13-vim Submodule

@ -0,0 +1 @@
Subproject commit 1ce5f23997f6dd82235c6936c5c47b3f1d1b4e50

View File

@ -0,0 +1,55 @@
#
# weechat -- alias.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[cmd]
AAWAY = "allserv /away"
AME = "allchan /me"
AMSG = "allchan /msg *"
ANICK = "allserv /nick"
BEEP = "print -beep"
BS = "quote botserv"
BYE = "quit"
C = "buffer clear"
CHAT = "dcc chat"
CL = "buffer clear"
CLOSE = "buffer close"
CS = "quote chanserv"
EXIT = "quit"
HS = "quote hostserv"
IG = "ignore"
J = "join"
K = "kick"
KB = "kickban"
LEAVE = "part"
M = "msg"
MS = "quote memoserv"
MSGBUF = "command -buffer $1 * /input send $2-"
MUB = "unban *"
N = "names"
NS = "quote nickserv"
Q = "query"
REDRAW = "window refresh"
save_settings = "/autojoin --run;/layout store;/save"
SAY = "msg *"
setup_aspell = "/set weechat.bar.rootinput.items [input_prompt]+(away),[input_search],[input_paste],input_text,aspell_suggest;/set aspell.check.default_dict en_US;/set aspell.check.suggestions 4;/set aspell.check.enabled on;/unalias setup_aspell;/save"
SIGNOFF = "quit"
T = "topic"
UB = "unban"
UMODE = "mode $nick"
V = "command core version"
W = "who"
WC = "window merge"
WI = "whois"
WII = "whois $1 $1"
WW = "whowas"
[completion]
MSGBUF = "%(buffers_plugins_names)"

View File

@ -0,0 +1,33 @@
#
# weechat -- aspell.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[color]
misspelled = lightred
suggestion = default
suggestion_delimiter_dict = cyan
suggestion_delimiter_word = cyan
[check]
commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
default_dict = ""
during_search = off
enabled = off
real_time = off
suggestions = -1
word_min_length = 2
[dict]
[look]
suggestion_delimiter_dict = " / "
suggestion_delimiter_word = ","
[option]

View File

@ -0,0 +1,39 @@
#
# weechat -- buflist.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
add_newline = on
auto_scroll = 50
display_conditions = "${buffer.hidden}==0"
enabled = on
mouse_jump_visited_buffer = off
mouse_move_buffer = on
mouse_wheel = on
nick_prefix = off
nick_prefix_empty = on
signals_refresh = ""
sort = "number"
[format]
buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${name}"
buffer_current = "${color:,233}${format_number}${indent}${format_nick_prefix}${color:lightcyan}${name}"
hotlist = " ${color:green}(${hotlist}${color:green})"
hotlist_highlight = "${color:magenta}"
hotlist_low = "${color:default}"
hotlist_message = "${color:130}"
hotlist_none = "${color:white}"
hotlist_private = "${color:cyan}"
hotlist_separator = "${color:default},"
indent = " "
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
name = "${name}"
nick_prefix = "${color_nick_prefix}${nick_prefix}"
number = "${color:green}${number}${if:${number_displayed}?.: }"

View File

@ -0,0 +1,18 @@
#
# weechat -- charset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[default]
decode = "iso-8859-1"
encode = ""
[decode]
[encode]

View File

@ -0,0 +1,18 @@
#
# weechat -- exec.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[command]
default_options = ""
purge_delay = 0
[color]
flag_finished = lightred
flag_running = lightgreen

View File

@ -0,0 +1,14 @@
#
# weechat -- fifo.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[file]
enabled = on
path = "%h/weechat_fifo"

View File

@ -0,0 +1,95 @@
#
# weechat -- fset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
auto_unmark = off
condition_catch_set = "${count} >= 1"
export_help_default = on
format_number = 1
marked_string = "*"
scroll_horizontal = 10
show_plugins_desc = off
sort = "~name"
unmarked_string = " "
use_color_value = off
use_keys = on
use_mute = off
[format]
export_help = "# ${description2}"
export_option = "/set ${name} ${quoted_value}"
export_option_null = "/unset ${name}"
option1 = ""
option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}"
[color]
default_value = default
default_value_selected = white
description = default
description_selected = white
file = default
file_changed = brown
file_changed_selected = yellow
file_selected = white
help_default_value = white
help_description = default
help_name = white
help_quotes = darkgray
help_values = default
index = cyan
index_selected = lightcyan
line_marked_bg1 = default
line_marked_bg2 = default
line_selected_bg1 = blue
line_selected_bg2 = red
marked = brown
marked_selected = yellow
max = default
max_selected = white
min = default
min_selected = white
name = default
name_changed = brown
name_changed_selected = yellow
name_selected = white
option = default
option_changed = brown
option_changed_selected = yellow
option_selected = white
parent_name = default
parent_name_selected = white
parent_value = cyan
parent_value_selected = lightcyan
quotes = darkgray
quotes_changed = default
quotes_changed_selected = white
quotes_selected = default
section = default
section_changed = brown
section_changed_selected = yellow
section_selected = white
string_values = default
string_values_selected = white
title_count_options = cyan
title_current_option = lightcyan
title_filter = yellow
title_marked_options = lightgreen
title_sort = white
type = green
type_selected = lightgreen
unmarked = default
unmarked_selected = white
value = cyan
value_changed = brown
value_changed_selected = yellow
value_selected = lightcyan
value_undef = magenta
value_undef_selected = lightmagenta

236
weechat/.weechat/irc.conf Normal file
View File

@ -0,0 +1,236 @@
#
# weechat -- irc.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
buffer_open_before_autojoin = on
buffer_open_before_join = off
buffer_switch_autojoin = on
buffer_switch_join = on
color_nicks_in_names = off
color_nicks_in_nicklist = on
color_nicks_in_server_messages = on
color_pv_nick_like_channel = on
ctcp_time_format = "%a, %d %b %Y %T %z"
display_away = local
display_ctcp_blocked = on
display_ctcp_reply = on
display_ctcp_unknown = on
display_host_join = on
display_host_join_local = on
display_host_quit = on
display_join_message = "329,332,333,366"
display_old_topic = on
display_pv_away_once = on
display_pv_back = on
highlight_channel = "$nick"
highlight_pv = "$nick"
highlight_server = "$nick"
highlight_tags_restrict = "irc_privmsg,irc_notice"
item_channel_modes_hide_args = "k"
item_display_server = buffer_plugin
item_nick_modes = on
item_nick_prefix = on
join_auto_add_chantype = off
msgbuffer_fallback = current
new_channel_position = none
new_pv_position = none
nick_completion_smart = speakers
nick_mode = prefix
nick_mode_empty = off
nicks_hide_password = "nickserv"
notice_as_pv = auto
notice_welcome_redirect = on
notice_welcome_tags = ""
notify_tags_ison = "notify_message"
notify_tags_whois = "notify_message"
part_closes_buffer = off
pv_buffer = independent
pv_tags = "notify_private"
raw_messages = 256
server_buffer = independent
smart_filter = on
smart_filter_chghost = on
smart_filter_delay = 5
smart_filter_join = on
smart_filter_join_unmask = 30
smart_filter_mode = "+"
smart_filter_nick = on
smart_filter_quit = on
temporary_servers = off
topic_strip_colors = off
[color]
input_nick = lightcyan
item_channel_modes = lightcyan
item_lag_counting = default
item_lag_finished = 130
item_nick_modes = lightgreen
message_chghost = brown
message_join = green
message_quit = red
mirc_remap = "1,-1:darkgray"
nick_prefixes = "q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
notice = green
reason_quit = default
topic_current = default
topic_new = white
topic_old = default
[network]
autoreconnect_delay_growing = 2
autoreconnect_delay_max = 600
ban_mask_default = "*!$ident@$host"
channel_encode = off
colors_receive = on
colors_send = on
lag_check = 60
lag_max = 1800
lag_min_show = 500
lag_reconnect = 0
lag_refresh_interval = 1
notify_check_ison = 1
notify_check_whois = 5
sasl_fail_unavailable = on
send_unknown_commands = off
whois_double_nick = off
[msgbuffer]
[ctcp]
[ignore]
[server_default]
addresses = ""
anti_flood_prio_high = 2
anti_flood_prio_low = 2
autoconnect = off
autojoin = ""
autoreconnect = on
autoreconnect_delay = 10
autorejoin = off
autorejoin_delay = 30
away_check = 0
away_check_max_nicks = 25
capabilities = ""
command = ""
command_delay = 0
connection_timeout = 60
ipv6 = on
local_hostname = ""
msg_kick = ""
msg_part = "WeeChat ${info:version}"
msg_quit = "WeeChat ${info:version}"
nicks = "ben,ben1,ben2,ben3,ben4"
nicks_alternate = on
notify = ""
password = ""
proxy = ""
realname = ""
sasl_fail = continue
sasl_key = ""
sasl_mechanism = plain
sasl_password = ""
sasl_timeout = 15
sasl_username = ""
split_msg_max_length = 512
ssl = off
ssl_cert = ""
ssl_dhkey_size = 2048
ssl_fingerprint = ""
ssl_priorities = "NORMAL"
ssl_verify = on
usermode = ""
username = "${env:USER}"
[server]
tilde.addresses = "localhost"
tilde.proxy
tilde.ipv6
tilde.ssl
tilde.ssl_cert
tilde.ssl_priorities
tilde.ssl_dhkey_size
tilde.ssl_fingerprint
tilde.ssl_verify
tilde.password
tilde.capabilities
tilde.sasl_mechanism
tilde.sasl_username
tilde.sasl_password
tilde.sasl_key
tilde.sasl_timeout
tilde.sasl_fail
tilde.autoconnect = on
tilde.autoreconnect
tilde.autoreconnect_delay
tilde.nicks
tilde.nicks_alternate
tilde.username
tilde.realname
tilde.local_hostname
tilde.usermode
tilde.command
tilde.command_delay
tilde.autojoin = "#meta,#team"
tilde.autorejoin
tilde.autorejoin_delay
tilde.connection_timeout
tilde.anti_flood_prio_high
tilde.anti_flood_prio_low
tilde.away_check
tilde.away_check_max_nicks
tilde.msg_kick
tilde.msg_part
tilde.msg_quit
tilde.notify
tilde.split_msg_max_length
hashbang.addresses = "irc.hashbang.sh/6697"
hashbang.proxy
hashbang.ipv6
hashbang.ssl = on
hashbang.ssl_cert
hashbang.ssl_priorities
hashbang.ssl_dhkey_size
hashbang.ssl_fingerprint
hashbang.ssl_verify
hashbang.password
hashbang.capabilities
hashbang.sasl_mechanism
hashbang.sasl_username
hashbang.sasl_password
hashbang.sasl_key
hashbang.sasl_timeout
hashbang.sasl_fail
hashbang.autoconnect
hashbang.autoreconnect
hashbang.autoreconnect_delay
hashbang.nicks
hashbang.nicks_alternate
hashbang.username
hashbang.realname
hashbang.local_hostname
hashbang.usermode
hashbang.command
hashbang.command_delay
hashbang.autojoin
hashbang.autorejoin
hashbang.autorejoin_delay
hashbang.connection_timeout
hashbang.anti_flood_prio_high
hashbang.anti_flood_prio_low
hashbang.away_check
hashbang.away_check_max_nicks
hashbang.msg_kick
hashbang.msg_part
hashbang.msg_quit
hashbang.notify
hashbang.split_msg_max_length

View File

@ -0,0 +1,37 @@
#
# weechat -- iset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[color]
bg_selected = 235
help_default_value = green
help_option_name = white
help_text = lightcyan
option = default
option_selected = white
type = brown
type_selected = 130
value = cyan
value_diff = magenta
value_diff_selected = lightmagenta
value_selected = lightcyan
value_undef = green
value_undef_selected = lightgreen
[help]
show_help_bar = on
show_help_extra_info = on
show_plugin_description = off
[look]
scroll_horiz = 10
show_current_line = on
use_mute = off
value_search_char = "="

View File

@ -0,0 +1,35 @@
#
# weechat -- logger.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
backlog = 20
backlog_conditions = ""
[color]
backlog_end = default
backlog_line = default
[file]
auto_log = off
flush_delay = 120
fsync = off
info_lines = off
mask = "$plugin.$name.weechatlog"
name_lower_case = on
nick_prefix = ""
nick_suffix = ""
path = "%h/logs/"
replacement_char = "_"
time_format = "%Y-%m-%d %H:%M:%S"
[level]
[mask]

View File

@ -0,0 +1,14 @@
#
# weechat -- perl.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

View File

@ -0,0 +1 @@
../highmon.pl

View File

@ -0,0 +1 @@
../iset.pl

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,68 @@
#
# weechat -- plugins.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[var]
fifo.fifo = "on"
guile.check_license = "off"
lua.check_license = "off"
perl.check_license = "off"
perl.highmon.alignment = "channel"
perl.highmon.away_only = "off"
perl.highmon.color_buf = "on"
perl.highmon.first_run = "true"
perl.highmon.hotlist_show = "off"
perl.highmon.logging = "off"
perl.highmon.merge_private = "off"
perl.highmon.nick_prefix = "<"
perl.highmon.nick_suffix = ">"
perl.highmon.output = "buffer"
perl.highmon.short_names = "off"
python.apply_corrections.check_every = "5"
python.apply_corrections.data_timeout = "60"
python.apply_corrections.message_limit = "2"
python.apply_corrections.print_format = "[nick]: [corrected]"
python.apply_corrections.print_limit = "1"
python.autojoin.autosave = "off"
python.check_license = "off"
python.grep.clear_buffer = "off"
python.grep.default_tail_head = "10"
python.grep.go_to_buffer = "on"
python.grep.log_filter = ""
python.grep.max_lines = "4000"
python.grep.show_summary = "on"
python.grep.size_limit = "2048"
python.screen_away.away_suffix = ""
python.screen_away.command_on_attach = ""
python.screen_away.command_on_detach = ""
python.screen_away.ignore = ""
python.screen_away.ignore_relays = "off"
python.screen_away.interval = "5"
python.screen_away.message = "Detached from screen"
python.screen_away.set_away = "on"
python.screen_away.time_format = "since %Y-%m-%d %H:%M:%S%z"
ruby.check_license = "off"
tcl.check_license = "off"
[desc]
python.apply_corrections.check_every = "Interval between each check for expired messages."
python.apply_corrections.data_timeout = "Time before a message is expired."
python.apply_corrections.message_limit = "Number of messages to store per nick."
python.apply_corrections.print_format = "Format string for the printed corrections."
python.apply_corrections.print_limit = "Maximum number of lines to correct."
python.screen_away.away_suffix = "What to append to your nick when you're away."
python.screen_away.command_on_attach = "Commands to execute on attach, separated by semicolon"
python.screen_away.command_on_detach = "Commands to execute on detach, separated by semicolon"
python.screen_away.ignore = "Comma-separated list of servers to ignore."
python.screen_away.ignore_relays = "Only check screen status and ignore relay interfaces"
python.screen_away.interval = "How often in seconds to check screen status"
python.screen_away.message = "Away message"
python.screen_away.set_away = "Set user as away."
python.screen_away.time_format = "time format append to away message"

View File

@ -0,0 +1,14 @@
#
# weechat -- python.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

View File

@ -0,0 +1,351 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2012 Chris Johnson <raugturi@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# apply_corrections
#
# A weechat plugin to re-print a user's messages with corrections applied when
# they send a correction string (ex: s/typo/replacement).
#
# The following options are availalble:
#
# check_every: Interval, in seconds, between each check for expired messages.
# If set to 0 no check will be performed and all messages will be
# saved indefinitely.
#
# data_timeout: Time, in seconds, before a message is expired. If set to 0
# messages will never expire.
#
# message_limit: Number of messages to store per nick. If set to 0 all messages
# will be saved until they expire.
#
# print_format: Format string for the printed corrections.
# Default: "[nick]: [corrected]"
#
# Variables allowed:
#
# [nick]: The nick of the person who sent the messages.
# [corrected]: The corrected text of the previous message(s).
# [correction]: The correction (format: s/typo/replacement).
# [original]: The original message before correction.
# [pattern]: The "typo" portion of the correction.
# [replacement]: The "replacement" portion of the correction.
# [timestamp]: The timestamp of the original message.
#
# print_limit: Maximum number of lines to correct and print to the buffer. If
# set to 0 all lines that match the pattern will be printed.
#
# Note: Setting check_every, data_timeout, message_limit, or some combination
# thereof to 0's will eat a lot of memory very quickly as it will drastically
# increase the size of the dictionary holding previous messages. Likewise,
# setting print_limit to 0 with a large number of saved messages will quickly
# fill your screen with a bunch of stuff should someone submit a generic
# enough correction string.
# History:
#
# 2014-05-10, Sébastien Helleu <flashcode@flashtux.org>
# version 1.2: change hook_print callback argument type of
# displayed/highlight (WeeChat >= 1.0)
# 2012-10-09, Chris Johnson <raugturi@gmail.com>:
# version 1.1: change some more variable names for clarity/consistency
# 2012-10-08, Chris Johnson <raugturi@gmail.com>:
# version 1.0: fix get_corrected_messages so that the most recent messages
# are corrected and returned
# 2012-10-08, Chris Johnson <raugturi@gmail.com>:
# version 0.9: use defaultdict to handle missing keys, flatten dict by
# using (buffer, nick) tuple as key, simplify message logging
# logic, rename some stuff for clarity.
# 2012-10-08, Chris Johnson <raugturi@gmail.com>:
# version 0.8: remove empty buffers and nicks during clean-up
# 2012-09-05, Chris Johnson <raugturi@gmail.com>:
# version 0.7: fix bug when restoring defaults for options that require
# integer values
# 2012-09-05, Chris Johnson <raugturi@gmail.com>:
# version 0.6: copy info from README into script and shorten the variable
# descriptions
# 2012-09-01, Chris Johnson <raugturi@gmail.com>:
# version 0.5: don't log the reprinted messages
# 2012-08-31, Chris Johnson <raugturi@gmail.com>:
# version 0.4: use same timestamp as buffer when reprinting, instead
# of epoch
# 2012-08-31, Chris Johnson <raugturi@gmail.com>:
# version 0.3: switch to [var] style variables for print format
# 2012-08-30, Chris Johnson <raugturi@gmail.com>:
# version 0.2: fixed search for typos so if regex fails it falls back
# to string.find
# 2012-08-30, Chris Johnson <raugturi@gmail.com>:
# version 0.1: initial release
import_ok = True
try:
import weechat
except ImportError:
print('This script must be run under WeeChat.')
print('Get WeeChat now at: http://www.weechat.org/')
import_ok = False
try:
import re
import time
from operator import itemgetter
from collections import defaultdict
except ImportError as message:
print('Missing package(s) for %s: %s' % (SCRIPT_NAME, message))
import_ok = False
SCRIPT_NAME = 'apply_corrections'
SCRIPT_AUTHOR = 'Chris Johnson <raugturi@gmail.com>'
SCRIPT_VERSION = '1.2'
SCRIPT_LICENSE = 'GPL3'
SCRIPT_DESC = "When a correction (ex: s/typo/replacement) is sent, print the "\
"user's previous message(s) with the corrected text instead."
# Default settings for the plugin.
settings = {'check_every': '5',
'data_timeout': '60',
'message_limit': '2',
'print_format': '[nick]: [corrected]',
'print_limit': '1'}
# Initialize the dictionary to store most recent messages per buffer per nick.
LASTWORDS = defaultdict(list)
def apply_correction(message, pattern, replacement):
"""
Replaces all occurences of pattern in message with replacment. It tries to
treat the pattern and replacement as regular expressions, but falls back to
string replace if that fails.
"""
try:
message = re.compile(pattern).sub(replacement, message)
except:
message = message.replace(pattern, replacement)
return message
def get_corrected_messages(nick, log, correction):
"""
Return list of messages that match the pattern, with corrections applied.
Limited to print_limit items, sorted by timestamp ascending.
"""
print_limit = get_option_int('print_limit')
corrected_messages = []
pattern, replacement = correction.split('/')[1:3]
for message in log:
if print_limit and len(corrected_messages) >= print_limit:
break
original = message.get('message', '')
if original:
try:
match = re.match(re.compile('.*%s.*' % pattern), original)
except:
match = original.find(pattern) != -1
finally:
if match:
corrected = apply_correction(original,
pattern,
replacement)
timeformat = weechat.config_string(
weechat.config_get('weechat.look.buffer_time_format'))
timestamp = time.strftime(
timeformat,
time.localtime(float(message['timestamp'])))
corrected_messages.append({'nick': nick,
'corrected': corrected,
'correction': correction,
'original': original,
'pattern': pattern,
'replacement': replacement,
'timestamp': timestamp})
return sorted(corrected_messages, key=itemgetter('timestamp'))
def get_option_int(option):
"""
Checks to see if a configuration option is an integer and sets it back to
the default if it isn't. Returns the value when done.
"""
try:
value = int(weechat.config_get_plugin(option))
except ValueError:
weechat.config_set_plugin(option, settings[option])
value = int(weechat.config_get_plugin(option))
return value
def get_valid_messages(log, expiry):
"""
Return only the messages that haven't expired.
"""
valid = []
for message in log:
try:
timestamp = int(message.get('timestamp', 0))
if timestamp > expiry:
valid.append(message)
except ValueError:
continue
return valid
def clear_messages_cb(data, remaining_calls):
"""
Callback that clears old messages from the LASTWORDS dictionary. The time
limit is the number of seconds specified in plugin's data_timeout setting.
If data_timeout is set to 0 then no messages are cleared.
"""
data_timeout = get_option_int('data_timeout')
if data_timeout:
expiry = time.time() - data_timeout
for buff, nick in LASTWORDS.keys():
valid_messages = get_valid_messages(LASTWORDS[(buff,nick)], expiry)
if valid_messages:
LASTWORDS[(buff, nick)] = valid_messages
else:
del LASTWORDS[(buff,nick)]
return weechat.WEECHAT_RC_OK
def handle_message_cb(data, buffer, date, tags, disp, hl, nick, message):
"""
Callback that handles new messages. If the message is in the format of a
regex find/replace (ex. 's/typo/replacement/', 'nick: s/typo/replacement')
then the last print_limit messages for that nick are re-printed to the
current buffer in their oringal order with the change applied. Otherwise
the message is stored in LASTWORDS dictionary for this buffer > nick.
"""
# Don't do anything if the message isn't suppose to be displayed.
if int(disp):
buffer_name = weechat.buffer_get_string(buffer, 'name')
log = LASTWORDS[(buffer_name, nick)]
# Matches on both 's/typo/replacement' and 'nick: s/typo/replacement',
# mainly because of bitlbee since it puts your nick in front of
# incoming messages.
#
# Nick regex nicked from colorize_nicks available here:
# http://www.weechat.org/scripts/source/stable/colorize_nicks.py.html/
valid_nick = r'([@~&!%+])?([-a-zA-Z0-9\[\]\\`_^\{|\}]+)'
valid_correction = r's/[^/]*/[^/]*'
correction_message_pattern = re.compile(
r'(%s:\s*)?(%s)(/)?$' % (valid_nick, valid_correction))
match = re.match(correction_message_pattern, message)
if match:
# If message is a correction and we have previous messages from
# this nick, print up to print_limit of the nick's previous
# messages with corrections applied, in their original order.
correction = match.group(4)
if log and correction:
print_format = weechat.config_get_plugin('print_format')
for cm in get_corrected_messages(nick, log, correction):
corrected_msg = print_format
for k, v in cm.iteritems():
corrected_msg = corrected_msg.replace('[%s]' % k, v)
weechat.prnt_date_tags(buffer, 0, 'no_log', corrected_msg)
else:
# If it's not a correction, store the message in LASTWORDS.
log.insert(0, {'message': message, 'timestamp': date})
# If there's a per-nick limit, shorten the list to match.
message_limit = get_option_int('message_limit')
while message_limit and len(log) > message_limit:
log.pop()
return weechat.WEECHAT_RC_OK
def load_config(data=None, option=None, value=None):
"""
Load configuration options and (re)register hook_timer to clear old
messages based on the current value of check_every. If check_every is 0
then messages are never cleared.
"""
# On initial load set any unset options to the defaults.
if not option:
for option, default in settings.iteritems():
if not weechat.config_is_set_plugin(option):
weechat.config_set_plugin(option, default)
if not option or option.endswith('check_every'):
# If hook_timer for clearing old messages is set already, clear it.
old_hook = globals().get('CLEAR_HOOK', None)
if old_hook is not None:
weechat.unhook(old_hook)
# Register hook_timer to clear old messages.
check_every = get_option_int('check_every') * 1000
if check_every:
globals()['CLEAR_HOOK'] = weechat.hook_timer(
check_every, 0, 0, 'clear_messages_cb', '')
return weechat.WEECHAT_RC_OK
def desc_options():
"""
Load descriptions for all the options.
"""
weechat.config_set_desc_plugin(
'check_every', 'Interval between each check for expired messages.')
weechat.config_set_desc_plugin(
'data_timeout', 'Time before a message is expired.')
weechat.config_set_desc_plugin(
'message_limit', 'Number of messages to store per nick.')
weechat.config_set_desc_plugin(
'print_format', 'Format string for the printed corrections.')
weechat.config_set_desc_plugin(
'print_limit', 'Maximum number of lines to correct.')
return weechat.WEECHAT_RC_OK
if __name__ == '__main__' and import_ok:
if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION,
SCRIPT_LICENSE, SCRIPT_DESC, '', ''):
# Load the configuration options.
load_config()
# Set up the descriptions for each option.
desc_options()
# Register hook to run load_config when options are changed.
weechat.hook_config('plugins.var.python.%s.*' % SCRIPT_NAME,
'load_config', '')
# Register hook_print to process each new message as it comes in.
weechat.hook_print('', '', '', 1, 'handle_message_cb', '')

View File

@ -0,0 +1,177 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2009 by xt <xt@bash.no>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# (this script requires WeeChat 0.3.0 or newer)
#
# History:
# 2009-06-18, xt <xt@bash.no>
# version 0.1: initial release
#
# 2009-10-18, LBo <leon@tim-online.nl>
# version 0.2: added autosaving of join channels
# /set plugins.var.python.autojoin.autosave 'on'
#
# 2009-10-19, LBo <leon@tim-online.nl>
# version 0.2.1: now only responds to part messages from self
# find_channels() only returns join'ed channels, not all the buffers
# updated description and docs
#
# 2009-10-20, LBo <leon@tim-online.nl>
# version 0.2.2: fixed quit callback
# removed the callbacks on part & join messages
#
# 2012-04-14, Filip H.F. "FiXato" Slagter <fixato+weechat+autojoin@gmail.com>
# version 0.2.3: fixed bug with buffers of which short names were changed.
# Now using 'name' from irc_channel infolist.
# version 0.2.4: Added support for key-protected channels
#
# 2014-05-22, Nathaniel Wesley Filardo <PADEBR2M2JIQN02N9OO5JM0CTN8K689P@cmx.ietfng.org>
# version 0.2.5: Fix keyed channel support
#
# @TODO: add options to ignore certain buffers
# @TODO: maybe add an option to enable autosaving on part/join messages
import weechat as w
import re
SCRIPT_NAME = "autojoin"
SCRIPT_AUTHOR = "xt <xt@bash.no>"
SCRIPT_VERSION = "0.2.5"
SCRIPT_LICENSE = "GPL3"
SCRIPT_DESC = "Configure autojoin for all servers according to currently joined channels"
SCRIPT_COMMAND = "autojoin"
# script options
settings = {
"autosave": "off",
}
if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, SCRIPT_DESC, "", ""):
w.hook_command(SCRIPT_COMMAND,
SCRIPT_DESC,
"[--run]",
" --run: actually run the commands instead of displaying\n",
"--run",
"autojoin_cb",
"")
#w.hook_signal('*,irc_in2_join', 'autosave_channels_on_activity', '')
#w.hook_signal('*,irc_in2_part', 'autosave_channels_on_activity', '')
w.hook_signal('quit', 'autosave_channels_on_quit', '')
# Init everything
for option, default_value in settings.items():
if w.config_get_plugin(option) == "":
w.config_set_plugin(option, default_value)
def autosave_channels_on_quit(signal, callback, callback_data):
''' Autojoin current channels '''
if w.config_get_plugin(option) != "on":
return w.WEECHAT_RC_OK
items = find_channels()
# print/execute commands
for server, channels in items.iteritems():
channels = channels.rstrip(',')
command = "/set irc.server.%s.autojoin '%s'" % (server, channels)
w.command('', command)
return w.WEECHAT_RC_OK
def autosave_channels_on_activity(signal, callback, callback_data):
''' Autojoin current channels '''
if w.config_get_plugin(option) != "on":
return w.WEECHAT_RC_OK
items = find_channels()
# print/execute commands
for server, channels in items.iteritems():
nick = w.info_get('irc_nick', server)
pattern = "^:%s!.*(JOIN|PART) :?(#[^ ]*)( :.*$)?" % nick
match = re.match(pattern, callback_data)
if match: # check if nick is my nick. In that case: save
channel = match.group(2)
channels = channels.rstrip(',')
command = "/set irc.server.%s.autojoin '%s'" % (server, channels)
w.command('', command)
else: # someone else: ignore
continue
return w.WEECHAT_RC_OK
def autojoin_cb(data, buffer, args):
"""Old behaviour: doesn't save empty channel list"""
"""In fact should also save open buffers with a /part'ed channel"""
"""But I can't believe somebody would want that behaviour"""
items = find_channels()
# print/execute commands
for server, channels in items.iteritems():
channels = channels.rstrip(',')
if not channels: # empty channel list
continue
command = '/set irc.server.%s.autojoin %s' % (server, channels)
if args == '--run':
w.command('', command)
else:
w.prnt('', command)
return w.WEECHAT_RC_OK
def find_channels():
"""Return list of servers and channels"""
#@TODO: make it return a dict with more options like "nicks_count etc."
items = {}
infolist = w.infolist_get('irc_server', '', '')
# populate servers
while w.infolist_next(infolist):
items[w.infolist_string(infolist, 'name')] = ''
w.infolist_free(infolist)
# populate channels per server
for server in items.keys():
keys = []
keyed_channels = []
unkeyed_channels = []
items[server] = '' #init if connected but no channels
infolist = w.infolist_get('irc_channel', '', server)
while w.infolist_next(infolist):
if w.infolist_integer(infolist, 'nicks_count') == 0:
#parted but still open in a buffer: bit hackish
continue
if w.infolist_integer(infolist, 'type') == 0:
key = w.infolist_string(infolist, "key")
if len(key) > 0:
keys.append(key)
keyed_channels.append(w.infolist_string(infolist, "name"))
else :
unkeyed_channels.append(w.infolist_string(infolist, "name"))
items[server] = ','.join(keyed_channels + unkeyed_channels)
if len(keys) > 0:
items[server] += ' %s' % ','.join(keys)
w.infolist_free(infolist)
return items

View File

@ -0,0 +1 @@
../apply_corrections.py

View File

@ -0,0 +1 @@
../autojoin.py

View File

@ -0,0 +1 @@
../grep.py

View File

@ -0,0 +1 @@
../otr.py

View File

@ -0,0 +1 @@
../screen_away.py

View File

@ -0,0 +1 @@
../urlview.py

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,197 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2009 by xt <xt@bash.no>
# Copyright (c) 2009 by penryu <penryu@gmail.com>
# Copyright (c) 2010 by Blake Winton <bwinton@latte.ca>
# Copyright (c) 2010 by Aron Griffis <agriffis@n01se.net>
# Copyright (c) 2010 by Jani Kesänen <jani.kesanen@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#
# (this script requires WeeChat 0.3.0 or newer)
#
# History:
# 2014-08-02, Nils Görs <weechatter@arcor.de>
# version 0.14: add time to detach message. (idea by Mikaela)
# 2014-06-19, Anders Bergh <anders1@gmail.com>
# version 0.13: Fix a simple typo in an option description.
# 2014-01-12, Phyks (Lucas Verney) <phyks@phyks.me>
# version 0.12: Added an option to check status of relays to set unaway in
# case of a connected relay.
# 2013-08-30, Anders Einar Hilden <hildenae@gmail.com>
# version: 0.11: Fix reading of set_away
# 2013-06-16, Renato Botelho <rbgarga@gmail.com>
# version 0.10: add option to don't set away, only change nick
# allow multiple commands on attach/dettach
# do not add suffix if nick already have it
# 2012-12-29, David Flatz <david@upcs.at>
# version 0.9: add option to ignore servers and don't set away status for them
# add descriptions to config options
# 2010-08-07, Filip H.F. "FiXato" Slagter <fixato@gmail.com>
# version 0.8: add command on attach feature
# 2010-05-07, Jani Kesänen <jani.kesanen@gmail.com>
# version 0.7: add command on detach feature
# 2010-03-07, Aron Griffis <agriffis@n01se.net>
# version 0.6: move socket check to register,
# add hook_config for interval,
# reduce default interval from 60 to 5
# 2010-02-19, Blake Winton <bwinton@latte.ca>
# version 0.5: add option to change nick when away
# 2010-01-18, xt
# version 0.4: only update servers that are connected
# 2009-11-30, xt <xt@bash.no>
# version 0.3: do not touch servers that are manually set away
# 2009-11-27, xt <xt@bash.no>
# version 0.2: code for TMUX from penryu
# 2009-11-27, xt <xt@bash.no>
# version 0.1: initial release
import weechat as w
import re
import os
import datetime, time
SCRIPT_NAME = "screen_away"
SCRIPT_AUTHOR = "xt <xt@bash.no>"
SCRIPT_VERSION = "0.14"
SCRIPT_LICENSE = "GPL3"
SCRIPT_DESC = "Set away status on screen detach"
settings = {
'message': ('Detached from screen', 'Away message'),
'time_format': ('since %Y-%m-%d %H:%M:%S%z', 'time format append to away message'),
'interval': ('5', 'How often in seconds to check screen status'),
'away_suffix': ('', 'What to append to your nick when you\'re away.'),
'command_on_attach': ('', 'Commands to execute on attach, separated by semicolon'),
'command_on_detach': ('', 'Commands to execute on detach, separated by semicolon'),
'ignore': ('', 'Comma-separated list of servers to ignore.'),
'set_away': ('on', 'Set user as away.'),
'ignore_relays': ('off', 'Only check screen status and ignore relay interfaces'),
}
TIMER = None
SOCK = None
AWAY = False
CONNECTED_RELAY = False
def set_timer():
'''Update timer hook with new interval'''
global TIMER
if TIMER:
w.unhook(TIMER)
TIMER = w.hook_timer(int(w.config_get_plugin('interval')) * 1000,
0, 0, "screen_away_timer_cb", '')
def screen_away_config_cb(data, option, value):
if option.endswith(".interval"):
set_timer()
return w.WEECHAT_RC_OK
def get_servers():
'''Get the servers that are not away, or were set away by this script'''
ignores = w.config_get_plugin('ignore').split(',')
infolist = w.infolist_get('irc_server','','')
buffers = []
while w.infolist_next(infolist):
if not w.infolist_integer(infolist, 'is_connected') == 1 or \
w.infolist_string(infolist, 'name') in ignores:
continue
if not w.config_string_to_boolean(w.config_get_plugin('set_away')) or \
not w.infolist_integer(infolist, 'is_away') or \
w.config_get_plugin('message') in w.infolist_string(infolist, 'away_message'):
# w.infolist_string(infolist, 'away_message') == \
# w.config_get_plugin('message'):
buffers.append((w.infolist_pointer(infolist, 'buffer'),
w.infolist_string(infolist, 'nick')))
w.infolist_free(infolist)
return buffers
def screen_away_timer_cb(buffer, args):
'''Check if screen is attached, update awayness'''
global AWAY, SOCK, CONNECTED_RELAY
set_away = w.config_string_to_boolean(w.config_get_plugin('set_away'))
check_relays = not w.config_string_to_boolean(w.config_get_plugin('ignore_relays'))
suffix = w.config_get_plugin('away_suffix')
attached = os.access(SOCK, os.X_OK) # X bit indicates attached
# Check wether a client is connected on relay or not
CONNECTED_RELAY = False
if check_relays:
infolist = w.infolist_get('relay', '', '')
if infolist:
while w.infolist_next(infolist):
status = w.infolist_string(infolist, 'status_string')
if status == 'connected':
CONNECTED_RELAY = True
break
w.infolist_free(infolist)
if (attached and AWAY) or (check_relays and CONNECTED_RELAY and not attached and AWAY):
w.prnt('', '%s: Screen attached. Clearing away status' % SCRIPT_NAME)
for server, nick in get_servers():
if set_away:
w.command(server, "/away")
if suffix and nick.endswith(suffix):
nick = nick[:-len(suffix)]
w.command(server, "/nick %s" % nick)
AWAY = False
for cmd in w.config_get_plugin("command_on_attach").split(";"):
w.command("", cmd)
elif not attached and not AWAY:
if not CONNECTED_RELAY:
w.prnt('', '%s: Screen detached. Setting away status' % SCRIPT_NAME)
for server, nick in get_servers():
if suffix and not nick.endswith(suffix):
w.command(server, "/nick %s%s" % (nick, suffix));
if set_away:
w.command(server, "/away %s %s" % (w.config_get_plugin('message'), time.strftime(w.config_get_plugin('time_format'))))
AWAY = True
for cmd in w.config_get_plugin("command_on_detach").split(";"):
w.command("", cmd)
return w.WEECHAT_RC_OK
if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE,
SCRIPT_DESC, "", ""):
version = w.info_get('version_number', '') or 0
for option, default_desc in settings.iteritems():
if not w.config_is_set_plugin(option):
w.config_set_plugin(option, default_desc[0])
if int(version) >= 0x00030500:
w.config_set_desc_plugin(option, default_desc[1])
if 'STY' in os.environ.keys():
# We are running under screen
cmd_output = os.popen('env LC_ALL=C screen -ls').read()
match = re.search(r'Sockets? in (/.+)\.', cmd_output)
if match:
SOCK = os.path.join(match.group(1), os.environ['STY'])
if not SOCK and 'TMUX' in os.environ.keys():
# We are running under tmux
socket_data = os.environ['TMUX']
SOCK = socket_data.rsplit(',',2)[0]
if SOCK:
set_timer()
w.hook_config("plugins.var.python." + SCRIPT_NAME + ".*",
"screen_away_config_cb", "")

View File

@ -0,0 +1,57 @@
# This weechat plugin pipes the current weechat buffer through urlview
#
# Usage:
# /urlview
#
# History:
# 10-04-2015
# Version 1.0.0: initial release
# Version 1.0.1: reverse text passed to urlview
# Version 1.0.2: remove weechat color from messages
import distutils.spawn
import os
import pipes
import weechat
def urlview(data, buf, args):
infolist = weechat.infolist_get("buffer_lines", buf, "")
lines = []
while weechat.infolist_next(infolist) == 1:
lines.append(
weechat.string_remove_color(
weechat.infolist_string(infolist, "message"),
""
)
)
weechat.infolist_free(infolist)
if not lines:
weechat.prnt(buf, "No URLs found")
return weechat.WEECHAT_RC_OK
text = "\n".join(reversed(lines))
response = os.system("echo %s | urlview" % pipes.quote(text))
if response != 0:
weechat.prnt(buf, "No URLs found")
weechat.command(buf, "/window refresh")
return weechat.WEECHAT_RC_OK
def main():
if distutils.spawn.find_executable("urlview") is None:
return weechat.WEECHAT_RC_ERROR
if not weechat.register("urlview", "Keith Smiley", "1.0.2", "MIT",
"Use urlview on the current buffer", "", ""):
return weechat.WEECHAT_RC_ERROR
weechat.hook_command("urlview", "Pass the current buffer to urlview", "",
"", "", "urlview", "")
if __name__ == "__main__":
main()

View File

@ -0,0 +1,48 @@
#
# weechat -- relay.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
auto_open_buffer = on
raw_messages = 256
[color]
client = cyan
status_active = lightblue
status_auth_failed = lightred
status_connecting = 130
status_disconnected = lightred
status_waiting_auth = brown
text = default
text_bg = default
text_selected = white
[network]
allow_empty_password = off
allowed_ips = ""
bind_address = ""
clients_purge_delay = 0
compression_level = 6
ipv6 = on
max_clients = 5
password = ""
ssl_cert_key = "%h/ssl/relay.pem"
ssl_priorities = "NORMAL:-VERS-SSL3.0"
websocket_allowed_origins = ""
[irc]
backlog_max_minutes = 1440
backlog_max_number = 256
backlog_since_last_disconnect = on
backlog_since_last_message = off
backlog_tags = "irc_privmsg"
backlog_time_format = "[%H:%M] "
[port]

View File

@ -0,0 +1,14 @@
#
# weechat -- ruby.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

View File

@ -0,0 +1,56 @@
#
# weechat -- script.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
columns = "%s %n %V %v %u │ %d │ %t"
diff_color = on
diff_command = "auto"
display_source = on
quiet_actions = on
sort = "p,n"
translate_description = on
use_keys = on
[color]
status_autoloaded = cyan
status_held = white
status_installed = lightcyan
status_obsolete = lightmagenta
status_popular = 130
status_running = lightgreen
status_unknown = lightred
text = default
text_bg = default
text_bg_selected = 235
text_date = default
text_date_selected = white
text_delimiters = 130
text_description = default
text_description_selected = white
text_extension = default
text_extension_selected = white
text_name = cyan
text_name_selected = lightcyan
text_selected = white
text_tags = brown
text_tags_selected = 130
text_version = magenta
text_version_loaded = default
text_version_loaded_selected = white
text_version_selected = lightmagenta
[scripts]
autoload = on
cache_expire = 1440
download_timeout = 30
hold = ""
path = "%h/script"
url = "http://weechat.org/files/plugins.xml.gz"

Binary file not shown.

18
weechat/.weechat/sec.conf Normal file
View File

@ -0,0 +1,18 @@
#
# weechat -- sec.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[crypt]
cipher = aes256
hash_algo = sha256
passphrase_file = ""
salt = on
[data]

View File

@ -0,0 +1,59 @@
#
# weechat -- trigger.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
enabled = on
monitor_strip_colors = off
[color]
flag_command = lightgreen
flag_conditions = 130
flag_post_action = lightblue
flag_regex = lightcyan
flag_return_code = lightmagenta
regex = white
replace = cyan
trigger = green
trigger_disabled = red
[trigger]
beep.arguments = ""
beep.command = "/print -beep"
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
beep.enabled = on
beep.hook = print
beep.post_action = none
beep.regex = ""
beep.return_code = ok
cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
cmd_pass.command = ""
cmd_pass.conditions = ""
cmd_pass.enabled = on
cmd_pass.hook = modifier
cmd_pass.post_action = none
cmd_pass.regex = "==^((/(msg|m|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
cmd_pass.return_code = ok
msg_auth.arguments = "5000|irc_message_auth"
msg_auth.command = ""
msg_auth.conditions = ""
msg_auth.enabled = on
msg_auth.hook = modifier
msg_auth.post_action = none
msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
msg_auth.return_code = ok
server_pass.arguments = "5000|input_text_display;5000|history_add"
server_pass.command = ""
server_pass.conditions = ""
server_pass.enabled = on
server_pass.hook = modifier
server_pass.post_action = none
server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}"
server_pass.return_code = ok

View File

@ -0,0 +1,676 @@
#
# weechat -- weechat.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[debug]
[startup]
command_after_plugins = ""
command_before_plugins = ""
display_logo = on
display_version = on
sys_rlimit = ""
[look]
align_end_of_lines = message
align_multiline_words = on
bar_more_down = "++"
bar_more_left = "<<"
bar_more_right = ">>"
bar_more_up = "--"
bare_display_exit_on_input = on
bare_display_time_format = "%H:%M"
buffer_auto_renumber = on
buffer_notify_default = all
buffer_position = end
buffer_search_case_sensitive = off
buffer_search_force_default = off
buffer_search_regex = off
buffer_search_where = prefix_message
buffer_time_format = "${color:250}%H${color:lightcyan}:${color:245}%M${color:lightcyan}:${color:240}%S"
color_basic_force_bold = off
color_inactive_buffer = on
color_inactive_message = on
color_inactive_prefix = on
color_inactive_prefix_buffer = on
color_inactive_time = off
color_inactive_window = on
color_nick_offline = on
color_pairs_auto_reset = 5
color_real_white = off
command_chars = ""
command_incomplete = off
confirm_quit = off
confirm_upgrade = off
day_change = on
day_change_message_1date = "-- %a, %d %b %Y --"
day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --"
eat_newline_glitch = off
emphasized_attributes = ""
highlight = ""
highlight_regex = ""
highlight_tags = ""
hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0"
hotlist_buffer_separator = ", "
hotlist_count_max = 2
hotlist_count_min_msg = 2
hotlist_names_count = 3
hotlist_names_length = 0
hotlist_names_level = 12
hotlist_names_merged_buffers = off
hotlist_prefix = "H: "
hotlist_remove = merged
hotlist_short_names = on
hotlist_sort = group_time_asc
hotlist_suffix = ""
hotlist_unique_numbers = on
input_cursor_scroll = 20
input_share = none
input_share_overwrite = off
input_undo_max = 32
item_away_message = on
item_buffer_filter = "*"
item_buffer_zoom = "!"
item_mouse_status = "M"
item_time_format = "%H:%M"
jump_current_to_previous_buffer = on
jump_previous_buffer_when_closing = on
jump_smart_back_to_buffer = on
key_bind_safe = on
key_grab_delay = 800
mouse = off
mouse_timer_delay = 100
nick_color_force = ""
nick_color_hash = djb2
nick_color_stop_chars = "_|["
nick_prefix = ""
nick_suffix = ""
paste_auto_add_newline = on
paste_bracketed = on
paste_bracketed_timer_delay = 10
paste_max_lines = 1
prefix_action = " *"
prefix_align = right
prefix_align_max = 15
prefix_align_min = 15
prefix_align_more = "+"
prefix_align_more_after = on
prefix_buffer_align = right
prefix_buffer_align_max = 0
prefix_buffer_align_more = "+"
prefix_buffer_align_more_after = on
prefix_error = "=!="
prefix_join = "-->"
prefix_network = "--"
prefix_quit = "<--"
prefix_same_nick = ""
prefix_suffix = "│"
quote_nick_prefix = "<"
quote_nick_suffix = ">"
quote_time_format = "%H:%M:%S"
read_marker = line
read_marker_always_show = off
read_marker_string = "- "
save_config_on_exit = on
save_config_with_fsync = off
save_layout_on_exit = none
scroll_amount = 3
scroll_bottom_after_switch = off
scroll_page_percent = 100
search_text_not_found_alert = on
separator_horizontal = "-"
separator_vertical = ""
tab_width = 1
time_format = "%a, %d %b %Y %T"
window_auto_zoom = off
window_separator_horizontal = on
window_separator_vertical = on
window_title = "WeeChat ${info:version}"
word_chars_highlight = "!\u00A0,-,_,|,alnum"
word_chars_input = "!\u00A0,-,_,|,alnum"
[palette]
[color]
bar_more = lightcyan
chat = default
chat_bg = default
chat_buffer = white
chat_channel = white
chat_day_change = cyan
chat_delimiters = 235
chat_highlight = lightcyan
chat_highlight_bg = 235
chat_host = cyan
chat_inactive_buffer = default
chat_inactive_window = default
chat_nick = lightcyan
chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue"
chat_nick_offline = blue
chat_nick_offline_highlight = default
chat_nick_offline_highlight_bg = blue
chat_nick_other = cyan
chat_nick_prefix = green
chat_nick_self = red
chat_nick_suffix = green
chat_prefix_action = white
chat_prefix_buffer = brown
chat_prefix_buffer_inactive_buffer = default
chat_prefix_error = 130
chat_prefix_join = lightgreen
chat_prefix_more = lightmagenta
chat_prefix_network = magenta
chat_prefix_quit = lightred
chat_prefix_suffix = 235
chat_read_marker = magenta
chat_read_marker_bg = default
chat_server = brown
chat_tags = red
chat_text_found = 130
chat_text_found_bg = lightmagenta
chat_time = default
chat_time_delimiters = brown
chat_value = cyan
chat_value_null = blue
emphasized = 130
emphasized_bg = magenta
input_actions = lightgreen
input_text_not_found = red
item_away = yellow
nicklist_away = cyan
nicklist_group = green
separator = 235
status_count_highlight = magenta
status_count_msg = brown
status_count_other = default
status_count_private = green
status_data_highlight = lightmagenta
status_data_msg = 130
status_data_other = default
status_data_private = lightgreen
status_filter = green
status_more = 130
status_mouse = green
status_name = white
status_name_ssl = lightgreen
status_nicklist_count = default
status_number = 130
status_time = default
[completion]
base_word_until_cursor = on
command_inline = on
default_template = "%(nicks)|%(irc_channels)"
nick_add_space = on
nick_case_sensitive = off
nick_completer = ":"
nick_first_only = off
nick_ignore_chars = "[]`_-^"
partial_completion_alert = on
partial_completion_command = off
partial_completion_command_arg = off
partial_completion_count = on
partial_completion_other = off
partial_completion_templates = "config_options"
[history]
display_default = 5
max_buffer_lines_minutes = 0
max_buffer_lines_number = 4096
max_commands = 100
max_visited_buffers = 50
[proxy]
[network]
connection_timeout = 60
gnutls_ca_file = "/etc/ssl/certs/ca-certificates.crt"
gnutls_handshake_timeout = 30
proxy_curl = ""
[plugin]
autoload = "*"
debug = off
extension = ".so,.dll"
path = "%h/plugins"
save_config_on_unload = on
[bar]
buflist.color_bg = default
buflist.color_delim = default
buflist.color_fg = default
buflist.conditions = ""
buflist.filling_left_right = vertical
buflist.filling_top_bottom = columns_vertical
buflist.hidden = off
buflist.items = "buflist"
buflist.position = left
buflist.priority = 100
buflist.separator = on
buflist.size = 0
buflist.size_max = 0
buflist.type = root
fset.color_bg = default
fset.color_delim = cyan
fset.color_fg = default
fset.conditions = "${buffer.full_name} == fset.fset"
fset.filling_left_right = vertical
fset.filling_top_bottom = horizontal
fset.hidden = off
fset.items = "fset"
fset.position = top
fset.priority = 0
fset.separator = on
fset.size = 3
fset.size_max = 3
fset.type = window
isetbar.color_bg = default
isetbar.color_delim = cyan
isetbar.color_fg = default
isetbar.conditions = ""
isetbar.filling_left_right = vertical
isetbar.filling_top_bottom = horizontal
isetbar.hidden = on
isetbar.items = "isetbar_help"
isetbar.position = top
isetbar.priority = 0
isetbar.separator = on
isetbar.size = 3
isetbar.size_max = 3
isetbar.type = window
nicklist.color_bg = default
nicklist.color_delim = cyan
nicklist.color_fg = default
nicklist.conditions = "${nicklist}"
nicklist.filling_left_right = vertical
nicklist.filling_top_bottom = columns_vertical
nicklist.hidden = off
nicklist.items = "buffer_nicklist"
nicklist.position = right
nicklist.priority = 200
nicklist.separator = on
nicklist.size = 0
nicklist.size_max = 0
nicklist.type = window
rootinput.color_bg = default
rootinput.color_delim = cyan
rootinput.color_fg = default
rootinput.conditions = ""
rootinput.filling_left_right = vertical
rootinput.filling_top_bottom = horizontal
rootinput.hidden = off
rootinput.items = "[input_prompt]+(away),[input_search],[input_paste],input_text"
rootinput.position = bottom
rootinput.priority = 50
rootinput.separator = off
rootinput.size = 1
rootinput.size_max = 0
rootinput.type = root
rootstatus.color_bg = 235
rootstatus.color_delim = lightcyan
rootstatus.color_fg = default
rootstatus.conditions = ""
rootstatus.filling_left_right = vertical
rootstatus.filling_top_bottom = horizontal
rootstatus.hidden = off
rootstatus.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,[lag],[hotlist],(mouse_status),completion,scroll"
rootstatus.position = bottom
rootstatus.priority = 25
rootstatus.separator = off
rootstatus.size = 1
rootstatus.size_max = 0
rootstatus.type = root
title.color_bg = 235
title.color_delim = lightcyan
title.color_fg = default
title.conditions = ""
title.filling_left_right = vertical
title.filling_top_bottom = horizontal
title.hidden = off
title.items = "buffer_title"
title.position = top
title.priority = 500
title.separator = off
title.size = 0
title.size_max = 0
title.type = window
[layout]
default.buffer = "core;weechat;1"
default.buffer = "perl;highmon;1"
default.buffer = "irc;server.tilde;1"
default.buffer = "irc;tilde.#meta;2"
default.buffer = "irc;tilde.#team;3"
default.window = "1;0;15;1;-;-"
default.window = "2;1;0;0;irc;tilde.#team"
default.window = "3;1;0;0;core;weechat"
default.current = on
[notify]
[filter]
[key]
ctrl-? = "/input delete_previous_char"
ctrl-A = "/input move_beginning_of_line"
ctrl-B = "/input move_previous_char"
ctrl-C_ = "/input insert \x1F"
ctrl-Cb = "/input insert \x02"
ctrl-Cc = "/input insert \x03"
ctrl-Ci = "/input insert \x1D"
ctrl-Co = "/input insert \x0F"
ctrl-Cv = "/input insert \x16"
ctrl-D = "/input delete_next_char"
ctrl-E = "/input move_end_of_line"
ctrl-F = "/input move_next_char"
ctrl-H = "/input delete_previous_char"
ctrl-I = "/input complete_next"
ctrl-J = "/input return"
ctrl-K = "/input delete_end_of_line"
ctrl-L = "/window refresh"
ctrl-M = "/input return"
ctrl-N = "/buffer +1"
ctrl-P = "/buffer -1"
ctrl-R = "/input search_text"
ctrl-Sctrl-U = "/input set_unread"
ctrl-T = "/input transpose_chars"
ctrl-U = "/input delete_beginning_of_line"
ctrl-W = "/input delete_previous_word"
ctrl-X = "/input switch_active_buffer"
ctrl-Y = "/input clipboard_paste"
meta-meta-OP = "/bar scroll buflist * b"
meta-meta-OQ = "/bar scroll buflist * e"
meta-meta2-1~ = "/window scroll_top"
meta-meta2-23~ = "/bar scroll nicklist * b"
meta-meta2-24~ = "/bar scroll nicklist * e"
meta-meta2-4~ = "/window scroll_bottom"
meta-meta2-5~ = "/window scroll_up"
meta-meta2-6~ = "/window scroll_down"
meta-meta2-7~ = "/window scroll_top"
meta-meta2-8~ = "/window scroll_bottom"
meta-meta2-A = "/buffer -1"
meta-meta2-B = "/buffer +1"
meta-meta2-C = "/buffer +1"
meta-meta2-D = "/buffer -1"
meta-- = "/filter toggle @"
meta-/ = "/input jump_last_buffer_displayed"
meta-0 = "/buffer *10"
meta-1 = "/buffer *1"
meta-2 = "/buffer *2"
meta-3 = "/buffer *3"
meta-4 = "/buffer *4"
meta-5 = "/buffer *5"
meta-6 = "/buffer *6"
meta-7 = "/buffer *7"
meta-8 = "/buffer *8"
meta-9 = "/buffer *9"
meta-< = "/input jump_previously_visited_buffer"
meta-= = "/filter toggle"
meta-> = "/input jump_next_visited_buffer"
meta-OA = "/input history_global_previous"
meta-OB = "/input history_global_next"
meta-OC = "/input move_next_word"
meta-OD = "/input move_previous_word"
meta-OF = "/input move_end_of_line"
meta-OH = "/input move_beginning_of_line"
meta-OP = "/bar scroll buflist * -100%"
meta-OQ = "/bar scroll buflist * +100%"
meta-Oa = "/input history_global_previous"
meta-Ob = "/input history_global_next"
meta-Oc = "/input move_next_word"
meta-Od = "/input move_previous_word"
meta2-15~ = "/buffer -1"
meta2-17~ = "/buffer +1"
meta2-18~ = "/window -1"
meta2-19~ = "/window +1"
meta2-1;3A = "/buffer -1"
meta2-1;3B = "/buffer +1"
meta2-1;3C = "/buffer +1"
meta2-1;3D = "/buffer -1"
meta2-1;3F = "/window scroll_bottom"
meta2-1;3H = "/window scroll_top"
meta2-1;5A = "/input history_global_previous"
meta2-1;5B = "/input history_global_next"
meta2-1;5C = "/input move_next_word"
meta2-1;5D = "/input move_previous_word"
meta2-1~ = "/input move_beginning_of_line"
meta2-200~ = "/input paste_start"
meta2-201~ = "/input paste_stop"
meta2-20~ = "/bar scroll title * -30%"
meta2-21~ = "/bar scroll title * +30%"
meta2-23;3~ = "/bar scroll nicklist * b"
meta2-23~ = "/bar scroll nicklist * -100%"
meta2-24;3~ = "/bar scroll nicklist * e"
meta2-24~ = "/bar scroll nicklist * +100%"
meta2-3~ = "/input delete_next_char"
meta2-4~ = "/input move_end_of_line"
meta2-5;3~ = "/window scroll_up"
meta2-5~ = "/window page_up"
meta2-6;3~ = "/window scroll_down"
meta2-6~ = "/window page_down"
meta2-7~ = "/input move_beginning_of_line"
meta2-8~ = "/input move_end_of_line"
meta2-A = "/input history_previous"
meta2-B = "/input history_next"
meta2-C = "/input move_next_char"
meta2-D = "/input move_previous_char"
meta2-F = "/input move_end_of_line"
meta2-G = "/window page_down"
meta2-H = "/input move_beginning_of_line"
meta2-I = "/window page_up"
meta2-Z = "/input complete_previous"
meta2-[E = "/buffer -1"
meta-_ = "/input redo"
meta-a = "/input jump_smart"
meta-b = "/input move_previous_word"
meta-d = "/input delete_next_word"
meta-f = "/input move_next_word"
meta-h = "/input hotlist_clear"
meta-jmeta-f = "/buffer -"
meta-jmeta-l = "/buffer +"
meta-jmeta-r = "/server raw"
meta-jmeta-s = "/server jump"
meta-j01 = "/buffer 1"
meta-j02 = "/buffer 2"
meta-j03 = "/buffer 3"
meta-j04 = "/buffer 4"
meta-j05 = "/buffer 5"
meta-j06 = "/buffer 6"
meta-j07 = "/buffer 7"
meta-j08 = "/buffer 8"
meta-j09 = "/buffer 9"
meta-j10 = "/buffer 10"
meta-j11 = "/buffer 11"
meta-j12 = "/buffer 12"
meta-j13 = "/buffer 13"
meta-j14 = "/buffer 14"
meta-j15 = "/buffer 15"
meta-j16 = "/buffer 16"
meta-j17 = "/buffer 17"
meta-j18 = "/buffer 18"
meta-j19 = "/buffer 19"
meta-j20 = "/buffer 20"
meta-j21 = "/buffer 21"
meta-j22 = "/buffer 22"
meta-j23 = "/buffer 23"
meta-j24 = "/buffer 24"
meta-j25 = "/buffer 25"
meta-j26 = "/buffer 26"
meta-j27 = "/buffer 27"
meta-j28 = "/buffer 28"
meta-j29 = "/buffer 29"
meta-j30 = "/buffer 30"
meta-j31 = "/buffer 31"
meta-j32 = "/buffer 32"
meta-j33 = "/buffer 33"
meta-j34 = "/buffer 34"
meta-j35 = "/buffer 35"
meta-j36 = "/buffer 36"
meta-j37 = "/buffer 37"
meta-j38 = "/buffer 38"
meta-j39 = "/buffer 39"
meta-j40 = "/buffer 40"
meta-j41 = "/buffer 41"
meta-j42 = "/buffer 42"
meta-j43 = "/buffer 43"
meta-j44 = "/buffer 44"
meta-j45 = "/buffer 45"
meta-j46 = "/buffer 46"
meta-j47 = "/buffer 47"
meta-j48 = "/buffer 48"
meta-j49 = "/buffer 49"
meta-j50 = "/buffer 50"
meta-j51 = "/buffer 51"
meta-j52 = "/buffer 52"
meta-j53 = "/buffer 53"
meta-j54 = "/buffer 54"
meta-j55 = "/buffer 55"
meta-j56 = "/buffer 56"
meta-j57 = "/buffer 57"
meta-j58 = "/buffer 58"
meta-j59 = "/buffer 59"
meta-j60 = "/buffer 60"
meta-j61 = "/buffer 61"
meta-j62 = "/buffer 62"
meta-j63 = "/buffer 63"
meta-j64 = "/buffer 64"
meta-j65 = "/buffer 65"
meta-j66 = "/buffer 66"
meta-j67 = "/buffer 67"
meta-j68 = "/buffer 68"
meta-j69 = "/buffer 69"
meta-j70 = "/buffer 70"
meta-j71 = "/buffer 71"
meta-j72 = "/buffer 72"
meta-j73 = "/buffer 73"
meta-j74 = "/buffer 74"
meta-j75 = "/buffer 75"
meta-j76 = "/buffer 76"
meta-j77 = "/buffer 77"
meta-j78 = "/buffer 78"
meta-j79 = "/buffer 79"
meta-j80 = "/buffer 80"
meta-j81 = "/buffer 81"
meta-j82 = "/buffer 82"
meta-j83 = "/buffer 83"
meta-j84 = "/buffer 84"
meta-j85 = "/buffer 85"
meta-j86 = "/buffer 86"
meta-j87 = "/buffer 87"
meta-j88 = "/buffer 88"
meta-j89 = "/buffer 89"
meta-j90 = "/buffer 90"
meta-j91 = "/buffer 91"
meta-j92 = "/buffer 92"
meta-j93 = "/buffer 93"
meta-j94 = "/buffer 94"
meta-j95 = "/buffer 95"
meta-j96 = "/buffer 96"
meta-j97 = "/buffer 97"
meta-j98 = "/buffer 98"
meta-j99 = "/buffer 99"
meta-k = "/input grab_key_command"
meta-l = "/window bare"
meta-m = "/mute mouse toggle"
meta-n = "/window scroll_next_highlight"
meta-p = "/window scroll_previous_highlight"
meta-r = "/input delete_line"
meta-s = "/mute aspell toggle"
meta-u = "/window scroll_unread"
meta-wmeta-meta2-A = "/window up"
meta-wmeta-meta2-B = "/window down"
meta-wmeta-meta2-C = "/window right"
meta-wmeta-meta2-D = "/window left"
meta-wmeta2-1;3A = "/window up"
meta-wmeta2-1;3B = "/window down"
meta-wmeta2-1;3C = "/window right"
meta-wmeta2-1;3D = "/window left"
meta-wmeta-b = "/window balance"
meta-wmeta-s = "/window swap"
meta-x = "/input zoom_merged_buffer"
meta-z = "/window zoom"
ctrl-_ = "/input undo"
[key_search]
ctrl-I = "/input search_switch_where"
ctrl-J = "/input search_stop"
ctrl-M = "/input search_stop"
ctrl-R = "/input search_switch_regex"
meta2-A = "/input search_previous"
meta2-B = "/input search_next"
meta-c = "/input search_switch_case"
[key_cursor]
ctrl-J = "/cursor stop"
ctrl-M = "/cursor stop"
meta-meta2-A = "/cursor move area_up"
meta-meta2-B = "/cursor move area_down"
meta-meta2-C = "/cursor move area_right"
meta-meta2-D = "/cursor move area_left"
meta2-1;3A = "/cursor move area_up"
meta2-1;3B = "/cursor move area_down"
meta2-1;3C = "/cursor move area_right"
meta2-1;3D = "/cursor move area_left"
meta2-A = "/cursor move up"
meta2-B = "/cursor move down"
meta2-C = "/cursor move right"
meta2-D = "/cursor move left"
@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}"
@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}"
@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}"
@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop"
@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}"
@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop"
@chat:m = "hsignal:chat_quote_message;/cursor stop"
@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop"
[key_mouse]
@bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse"
@bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse"
@bar(input):button2 = "/input grab_mouse_area"
@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%"
@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e"
@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%"
@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b"
@chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${_chat_line_y}"
@chat(fset.fset):button2* = "hsignal:fset_mouse"
@chat(fset.fset):wheeldown = "/fset -down 5"
@chat(fset.fset):wheelup = "/fset -up 5"
@chat(perl.iset):button1 = "hsignal:iset_mouse"
@chat(perl.iset):button2* = "hsignal:iset_mouse"
@chat(perl.iset):wheeldown = "/repeat 5 /iset **down"
@chat(perl.iset):wheelup = "/repeat 5 /iset **up"
@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}"
@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}"
@chat(script.scripts):wheeldown = "/script down 5"
@chat(script.scripts):wheelup = "/script up 5"
@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}"
@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}"
@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}"
@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}"
@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}"
@item(buflist):button1* = "hsignal:buflist_mouse"
@item(buflist):button2* = "hsignal:buflist_mouse"
@item(buflist2):button1* = "hsignal:buflist_mouse"
@item(buflist2):button2* = "hsignal:buflist_mouse"
@item(buflist3):button1* = "hsignal:buflist_mouse"
@item(buflist3):button2* = "hsignal:buflist_mouse"
@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%"
@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%"
@chat:button1 = "/window ${_window_number}"
@chat:button1-gesture-left = "/window ${_window_number};/buffer -1"
@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1"
@chat:button1-gesture-right = "/window ${_window_number};/buffer +1"
@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer"
@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%"
@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%"
@chat:wheeldown = "/window scroll_down -window ${_window_number}"
@chat:wheelup = "/window scroll_up -window ${_window_number}"
@*:button3 = "/cursor go ${_x},${_y}"

View File

@ -0,0 +1,48 @@
[2018-07-21 18:34:37] WeeChat 2.2 (compiled on Jul 14 2018 13:10:05)
[2018-07-21 18:34:37] Reading configuration file sec.conf
[2018-07-21 18:34:37] Reading configuration file weechat.conf
[2018-07-21 18:34:37] Reading configuration file plugins.conf
[2018-07-21 18:34:37] Reading configuration file charset.conf
[2018-07-21 18:34:37] Reading configuration file logger.conf
[2018-07-21 18:34:37] Reading configuration file exec.conf
[2018-07-21 18:34:37] Reading configuration file trigger.conf
[2018-07-21 18:34:37] Reading configuration file aspell.conf
[2018-07-21 18:34:37] Reading configuration file alias.conf
[2018-07-21 18:34:37] Reading configuration file buflist.conf
[2018-07-21 18:34:37] Writing configuration file fifo.conf (default options)
[2018-07-21 18:34:37] Reading configuration file fifo.conf
[2018-07-21 18:34:37] Reading configuration file xfer.conf
[2018-07-21 18:34:37] Reading configuration file irc.conf
[2018-07-21 18:34:37] Reading configuration file relay.conf
[2018-07-21 18:34:37] Writing configuration file python.conf (default options)
[2018-07-21 18:34:37] Reading configuration file python.conf
[2018-07-21 18:34:37] Writing configuration file ruby.conf (default options)
[2018-07-21 18:34:37] Reading configuration file ruby.conf
[2018-07-21 18:34:37] Writing configuration file perl.conf (default options)
[2018-07-21 18:34:37] Reading configuration file perl.conf
[2018-07-21 18:34:37] Reading configuration file iset.conf
[2018-07-21 18:34:37] Reading configuration file script.conf
[2018-07-21 18:34:37] Writing configuration file fset.conf (default options)
[2018-07-21 18:34:37] Reading configuration file fset.conf
[2018-07-21 18:34:37] irc: connecting to server localhost/6667...
[2018-07-21 18:54:22] irc: connecting to server irc.hashbang.sh/6697 (SSL)...
[2018-07-21 23:47:32] Writing configuration file plugins.conf
[2018-07-21 23:47:32] Writing configuration file fset.conf
[2018-07-21 23:47:32] Writing configuration file iset.conf
[2018-07-21 23:47:32] Writing configuration file perl.conf
[2018-07-21 23:47:32] Writing configuration file script.conf
[2018-07-21 23:47:32] Writing configuration file aspell.conf
[2018-07-21 23:47:32] Writing configuration file irc.conf
[2018-07-21 23:47:32] Writing configuration file trigger.conf
[2018-07-21 23:47:32] Writing configuration file xfer.conf
[2018-07-21 23:47:32] Writing configuration file logger.conf
[2018-07-21 23:47:32] Writing configuration file alias.conf
[2018-07-21 23:47:32] Writing configuration file relay.conf
[2018-07-21 23:47:32] Writing configuration file ruby.conf
[2018-07-21 23:47:32] Writing configuration file python.conf
[2018-07-21 23:47:32] Writing configuration file fifo.conf
[2018-07-21 23:47:32] Writing configuration file buflist.conf
[2018-07-21 23:47:32] Writing configuration file exec.conf
[2018-07-21 23:47:32] Writing configuration file charset.conf
[2018-07-21 23:47:32] Writing configuration file weechat.conf
[2018-07-21 23:47:32] Writing configuration file sec.conf

View File

@ -0,0 +1,47 @@
#
# weechat -- xfer.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
auto_open_buffer = on
progress_bar_size = 20
pv_tags = "notify_private"
[color]
status_aborted = lightred
status_active = lightblue
status_connecting = 130
status_done = lightgreen
status_failed = lightred
status_waiting = lightcyan
text = default
text_bg = default
text_selected = white
[network]
blocksize = 65536
fast_send = on
own_ip = ""
port_range = ""
send_ack = on
speed_limit = 0
timeout = 300
[file]
auto_accept_chats = off
auto_accept_files = off
auto_accept_nicks = ""
auto_check_crc32 = off
auto_rename = on
auto_resume = on
convert_spaces = on
download_path = "%h/xfer"
upload_path = "~"
use_nick_in_filename = on