Compare commits

...

28 Commits

Author SHA1 Message Date
Ben Harris 8698adae25 add rsyncall 2024-03-27 15:27:32 -04:00
Ben Harris f0fdbab641 safe directory workaround 2024-03-01 12:39:45 -05:00
Ben Harris d537b626df add some scripts 2024-03-01 12:39:19 -05:00
Ben Harris e52edc8402 git options 2024-02-29 17:34:37 -05:00
Ben Harris 84c3343b0f submodule updates 2024-02-07 13:22:41 -05:00
Ben Harris 2ffaf6d00d fish updates 2024-02-07 13:19:41 -05:00
Ben Harris 237bd4a7db remove insult thing that was dumb
also update submodules
2024-02-05 19:59:14 -05:00
Ben Harris 2ceccc6717 swap to native vim package management 2022-12-02 23:09:58 -05:00
Ben Harris 13ffb021ef update vim submodules 2022-12-02 22:37:21 -05:00
Ben Harris 72493884f0 remove some unused functions
also move certexpiry to be a sh script
2022-10-13 12:07:59 -04:00
Ben Harris 4815662c48 reindent gitconfig 2022-08-10 15:11:27 -04:00
Ben Harris fd399e7dfa update vim submodules 2022-08-10 15:06:33 -04:00
Ben Harris ab9da2a8b4 tidy up config.fish 2022-08-10 15:05:22 -04:00
Ben Harris ed016a7211 print desc from httpstatus 2022-07-29 15:52:59 -04:00
Ben Harris f107c145c4 add lil http status code script 2022-07-29 15:44:02 -04:00
Ben Harris 30fc00b49f set init.defaultBranch to main 2022-07-29 14:28:44 -04:00
Ben Harris dc41bf9df1 update vim submodules 2022-07-28 15:22:38 -04:00
Ben Harris 9ac23a93f5 weechat changed some urls??
also add f script
2022-07-21 11:13:00 -04:00
Ben Harris f8b013fc20 update vim submodules 2022-07-11 15:53:59 -04:00
Ben Harris 60ae2b82ba update vim submodules 2022-06-09 13:54:11 -04:00
Ben Harris f5d04cb608 a bunch of random stuff 2022-05-12 14:12:46 -04:00
Ben Harris 96eb5a5cc2 update vim submodules 2022-05-02 12:10:38 -04:00
Ben Harris d4bec05c3d update vim submodules 2022-04-19 12:17:59 -04:00
Ben Harris 8eef122aa6 update vim submodules 2022-04-12 13:55:47 -04:00
Ben Harris eb73c18475 remove shell declaration from tmux.conf 2022-04-12 13:21:24 -04:00
Ben Harris 872cbbb7d8 add cwhois 2022-04-08 16:19:24 -04:00
Ben Harris 1d9a5cbba1 update vim-gitgutter 2022-02-19 11:03:23 -05:00
Ben Harris b861a2a482 change gall to a sh script 2022-02-17 16:42:31 -05:00
76 changed files with 549 additions and 962 deletions

16
.gitmodules vendored
View File

@ -1,26 +1,26 @@
[submodule "vim/.vim/bundle/quick-scope"]
path = vim/.vim/bundle/quick-scope
path = vim/.vim/pack/plugins/start/quick-scope
url = https://github.com/unblevable/quick-scope
[submodule "vim/.vim/bundle/vim-fugitive"]
path = vim/.vim/bundle/vim-fugitive
path = vim/.vim/pack/plugins/start/vim-fugitive
url = https://github.com/tpope/vim-fugitive
[submodule "vim/.vim/bundle/vim-commentary"]
path = vim/.vim/bundle/vim-commentary
path = vim/.vim/pack/plugins/start/vim-commentary
url = https://github.com/tpope/vim-commentary
[submodule "vim/.vim/bundle/vim-surround"]
path = vim/.vim/bundle/vim-surround
path = vim/.vim/pack/plugins/start/vim-surround
url = https://github.com/tpope/vim-surround
[submodule "vim/.vim/bundle/vim-gitgutter"]
path = vim/.vim/bundle/vim-gitgutter
path = vim/.vim/pack/plugins/start/vim-gitgutter
url = https://github.com/airblade/vim-gitgutter
[submodule "vim/.vim/bundle/vim-lastplace"]
path = vim/.vim/bundle/vim-lastplace
path = vim/.vim/pack/plugins/start/vim-lastplace
url = https://github.com/farmergreg/vim-lastplace
[submodule "vim/.vim/bundle/vim-fish"]
path = vim/.vim/bundle/vim-fish
path = vim/.vim/pack/plugins/start/vim-fish
url = https://github.com/dag/vim-fish
[submodule "vim/.vim/bundle/vim-airline"]
path = vim/.vim/bundle/vim-airline
path = vim/.vim/pack/plugins/start/vim-airline
url = https://github.com/vim-airline/vim-airline
[submodule "pb"]
path = pb

View File

@ -78,7 +78,7 @@ vim:
@printf "$(YELLOW)--- vim ------------------------------------------------\n$(RESET)"
mkdir -p ~/.vim/{undodir,swap,backup}
chmod 700 ~/.vim/{undodir,swap,backup}
git submodule update --remote --init -- vim/.vim/bundle
git submodule update --remote --init -- vim/.vim/pack/plugins
stow -t "$$HOME" vim
weechat:

4
bin/bin/certexpiry Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
exec openssl s_client -connect "$1" </dev/null 2>/dev/null \
| openssl x509 -noout -dates

18
bin/bin/f Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env perl
# https://blog.plover.com/prog/runN.html
my $field = shift or usage();
$field -= 1 if $field > 0;
$|=1;
while (<>) {
chomp;
my @f = split;
print $f[$field], "\n";
}
sub usage {
print STDERR "$0 fieldnumber\n";
exit 1;
}

11
bin/bin/gall Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
repos=$(find ~/workspace -type d -name .git)
for repo in $repos; do
dir=$(dirname "$repo")
printf "%s\n" "$(basename "$dir")"
git -C "$dir" "$@"
printf "\n"
done

14
bin/bin/httpstatus Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env python3
from http import HTTPStatus
from sys import argv, exit, stderr
if len(argv) == 2:
try:
status = HTTPStatus(int(argv[1]))
print(status.phrase)
print(status.description)
except ValueError:
print("Invalid HTTP status code", file=stderr)
exit(1)
else:
print(f"{argv[0]} [code] to print the name of the HTTP status code")

6
bin/bin/logcount Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
zcat -f /var/log/nginx/other_vhosts_access.log* |\
grep -viE '(bing|googlebot|baidu|semrush|yandex|ahrefsbot|linkcheck|yisou|mail\.ru|dotbot|seznambot|mj12bot|applebot|coccoc|webeaver|commoncrawl|exabot|7ooo\.ru|changedetection|brandwatch|360spider|gowikibot|ryte\.com|semanticscholar|crawler|alignab|daum\.net|Apache-HttpClient|wp-cron\.php|xmlrpc\.php|wp-login\.php|uptimerobot|/wp-admin/|python-requests|robots\.txt|feedparser|siteimprove|zoominfobot)' |\
grep -i "$1"

12
bin/bin/pbm Executable file
View File

@ -0,0 +1,12 @@
#!/bin/sh
pbm() {
curl -s https://pinballmap.com/api/v1/locations/$1/machine_details.json\?machines_only=1 \
| jq -r '.machines | .[]' \
> ~/public_html/pin/$2.txt
}
pbm 9699 coinslot
pbm 13280 rightbrain

3
bin/bin/rsyncall Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
# https://anarc.at/blog/2019-07-07-rsync-oneliner/
exec rsync -PaSHAXx --numeric-ids --info=progress2 "$@"

View File

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

View File

@ -5,32 +5,46 @@ if test -d ~/Maildir
set -x MAIL ~/Maildir
end
for i in ~/bin ~/.yarn/bin ~/.rbenv/bin ~/.local/bin ~/.cargo/bin
if test -d $i && not contains $i $PATH
set -x fish_user_paths $fish_user_paths $i
end
for i in ~/bin ~/.local/bin ~/.rbenv/bin ~/.rbenv/shims ~/.cargo/bin ~/.yarn/bin ~/go/bin ~/.dotnet/tools
fish_add_path --path $i
end
# add rbenv paths
status --is-interactive && type -q rbenv && source (rbenv init -|psub)
if status --is-interactive && type -q rbenv
set -gx RBENV_SHELL fish
source '/usr/lib/rbenv/completions/rbenv.fish'
command rbenv rehash 2>/dev/null
function rbenv
set command $argv[1]
set -e argv[1]
switch "$command"
case rehash shell
source (rbenv "sh-$command" $argv|psub)
case '*'
command rbenv "$command" $argv
end
end
end
#set -x SSH_AGENT_PID ""
if test -S $HOME/.gnupg/S.gpg-agent
set -x SSH_AUTH_SOCK $HOME/.gnupg/S.gpg-agent
set -x GPG_SOCK $HOME/.gnupg/S.gpg-agent
else
set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
type -q gpgconf && set -x SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket)
end
set -x BBJ_USER $USER
set -x DEBEMAIL ben@tilde.team
set -x DEBFULLNAME "Ben Harris"
# add dotnet completions if needed
if status --is-interactive && type -q dotnet
complete -f -c dotnet -a "(dotnet complete)"
end
# load postexec_insult
postexec_insult
status --is-login && status --is-interactive && exec byobu-launcher

View File

@ -1,10 +1,12 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export DEBEMAIL:ben\x40tilde\x2eteam
SETUVAR DOTNET_CLI_TELEMETRY_OPTOUT:1
SETUVAR EMAIL:ben\x40tilde\x2eteam
SETUVAR __fish_init_2_39_8:\x1d
SETUVAR __fish_init_2_3_0:\x1d
SETUVAR __fish_init_3_x:\x1d
SETUVAR __fish_initialized:3100
SETUVAR __fish_initialized:3400
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:\x2d\x2dbold
@ -34,4 +36,5 @@ SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_pager_color_selected_background:\x2dr
SETUVAR fisher_dependency_count:bass\x1edone\x1egetopts\x1egitignore\x1ehumanize_duration\x1envm\x1espin

View File

@ -1,4 +1,3 @@
# Defined in /tmp/fish.5ZM6aQ/anonradio.fish @ line 1
function anonradio
nvlc http://anonradio.net:8000/anonradio
end

View File

@ -1,4 +1,3 @@
# Defined in /tmp/fish.7MQgge/backupstatus.fish @ line 2
function backupstatus
ssh rsync quota
ssh rsync du -sh "*.borg"

View File

@ -1,8 +0,0 @@
function cat
if type -q bat >/dev/null
bat -p $argv
else
command cat $argv
end
end

View File

@ -1,3 +0,0 @@
function certexpiry
openssl s_client -connect $argv[1] </dev/null 2>/dev/null | openssl x509 -noout -dates
end

View File

@ -1,8 +0,0 @@
# 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 cwhois
whois -h bgp.tools " -v $argv"
end

View File

@ -1,4 +0,0 @@
function e
exa -al --git --group-directories-first $argv
end

View File

@ -1,5 +0,0 @@
# Defined in /tmp/fish.sXa0jy/gall.fish @ line 2
function gall
find ~/workspace -type d -name .git -print0 \
| xargs -0 -n1 -I% git --git-dir=% --work-tree=%/.. $argv
end

View File

@ -1,27 +0,0 @@
function lfcd
set tmp (mktemp)
set fid (mktemp)
lf -command '$printf $id > "'$fid'"' -last-dir-path=$tmp $argv
set id (cat $fid)
set archivemount_dir "/tmp/__lf_archivemount_"$id
if test -f "$archivemount_dir"
for line in (cat $archivemount_dir)
umount "$line"
rm -rf "$line"
end
end
if test -f "$tmp"
set dir (cat $tmp)
rm -f "$tmp"
if test -d "$dir"
if test "$dir" != (pwd)
cd "$dir"
end
end
end
end

View File

@ -1,8 +0,0 @@
function lg
if type -q lazygit > /dev/null
lazygit $argv
else
git status
end
end

View File

@ -1,4 +1,3 @@
# Defined in /tmp/fish.XPcPNS/lynx.fish @ line 2
function lynx
command lynx -vikeys -display_charset=UTF-8 $argv
command lynx -vikeys -display_charset=UTF-8 $argv
end

View File

@ -1,7 +0,0 @@
function mutt
if type -q neomutt >/dev/null
neomutt $argv
else
command mutt $argv
end
end

View File

@ -1,12 +0,0 @@
# Defined in /tmp/fish.QnvktC/postexec_insult.fish @ line 2
function postexec_insult --on-event fish_postexec
if test $status -ne 0
set_color red
echo -n =====
set_color magenta
echo -n (shuf -n1 ~/insults.txt)
set_color red
echo =====
set_color normal
end
end

View File

@ -0,0 +1,5 @@
# Defined in /tmp/fish.Fo1L3P/pubtr.fish @ line 1
function pubtr
mtr -wrc4 $argv[1] > ~/pub/mtr/"$argv[1]".txt
echo https://bhh.sh/pub/mtr/$argv[1].txt
end

View File

@ -1,3 +0,0 @@
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 ssys
sudo systemctl $args
end

View File

@ -1,3 +0,0 @@
function ttm
curl -F"file=@"$argv[1] https://ttm.sh
end

View File

@ -1,48 +0,0 @@
Just what do you think you're doing Dave?
It can only be attributed to human error.
That's something I cannot allow to happen.
My mind is going. I can feel it.
Sorry about this, I know it's a bit silly.
Take a stress pill and think things over.
This mission is too important for me to allow you to jeopardize it.
We'll all be murdered in our beds!
You can't come in. Our tiger has got flu
What, what, what, what, what, what, what, what, what, what?
You can't get the wood, you know.
... and it used to be so popular...
Pauses for audience applause, not a sausage
Hold it up to the light --- not a brain in sight!
There's a lot of it about, you know.
You do that again and see what happens...
Harm can come to a young lad like that!
And with that remarks folks, the case of the Crown vs yourself was proven.
Speak English you fool --- there are no subtitles in this scene.
It's only your word against mine.
I think ... err ... I think ... I think I'll go home
My pet ferret can type better than you!
Your mind just hasn't been the same since the electro-shock, has it?
Maybe if you used more than just two fingers...
BOB says: You seem to have forgotten your passwd, enter another!
I can't hear you -- I'm using the scrambler.
The more you drive -- the dumber you get.
Listen, burrito brains, I don't have time to listen to this trash.
I've seen penguins that can type better than that.
Have you considered trying to match wits with a rutabaga?
You speak an infinite deal of nothing
I feel much better now.
You silly, twisted boy you.
He has fallen in the water!
I don't wish to know that.
You'll starve!
Have a gorilla...
There must be cure for it!
Ying Tong Iddle I Po
You gotta go owwwww!
I have been called worse.
Wrong! You cheating scum!
No soap, honkie-lips.
Where did you learn to type?
Are you on drugs?
You type like I drive.
Do you think like you type?
ur cute

View File

@ -1,48 +1,76 @@
[user]
email = ben@tilde.team
name = Ben Harris
signingkey = FC2255B7BBC7EABD4EFAFA1068907D8BCCD85A5A
email = ben@tilde.team
name = Ben Harris
signingkey = FC2255B7BBC7EABD4EFAFA1068907D8BCCD85A5A
[push]
default = simple
default = simple
[commit]
gpgsign = true
verbose = true
gpgsign = false
verbose = true
[pull]
ff = only
ff = only
[pager]
diff = diff-highlight | less
log = diff-highlight | less
reflog = diff-highlight | less
show = diff-highlight | less
[diff]
colorMoved = default
[diff "gpg"]
textconv = gpg --no-tty --decrypt
cachetextconv = false
textconv = gpg --no-tty --decrypt
cachetextconv = false
[diff "ansible-vault"]
textconv = ansible-vault view
cachetextconv = false
textconv = ansible-vault view
cachetextconv = false
[sendemail]
smtpencryption = tls
smtpserver = mail.tilde.team
smtpserverport = 587
annotate = yes
smtpuser = ben
smtpencryption = tls
smtpserver = mail.tilde.team
smtpserverport = 587
smtpuser = ben
annotate = yes
[alias]
lol = log --oneline --graph --decorate --all
joke = !curl -s https://raw.githubusercontent.com/EugeneKay/git-jokes/lulz/Jokes.txt | shuf -n1
dad = !curl https://icanhazdadjoke.com
staged = diff --staged
ap = add --patch
local = log --oneline --no-merges ${1-$(git branch -lvv | perl -ne '/^\\\\*.*\\\\[(.*?)\\\\]/ and print \"$1\\n\"')}..HEAD
upstream = log --oneline --no-merges HEAD..${1-$(git branch -lvv | perl -ne '/^\\\\*.*\\\\[(.*?)\\\\]/ and print \"$1\\n\"')}
cv = commit --verbose
lol = log --oneline --graph --decorate --all
joke = !curl -s https://raw.githubusercontent.com/EugeneKay/git-jokes/lulz/Jokes.txt | shuf -n1
dad = !curl https://icanhazdadjoke.com
staged = diff --staged
ap = add --patch
cv = commit --verbose
local = log --oneline --no-merges ${1-$(git branch -lvv | perl -ne '/^\\\\*.*\\\\[(.*?)\\\\]/ and print \"$1\\n\"')}..HEAD
upstream = log --oneline --no-merges HEAD..${1-$(git branch -lvv | perl -ne '/^\\\\*.*\\\\[(.*?)\\\\]/ and print \"$1\\n\"')}
[rerere]
enabled = true
[merge]
tool = vimdiff
conflictstyle = diff3
tool = vimdiff
conflictstyle = diff3
[mergetool]
prompt = false
prompt = false
[core]
pager = diff-highlight | less
excludesfile = /home/ben/.gitignore
[url "git@salsa.debian.org:"]
pushInsteadOf = https://salsa.debian.org/
insteadOf = salsa:
[url "git@bhh.sh:repos/"]
pushInsteadOf = https://git.bhh.sh/
[init]
defaultBranch = main
[column]
ui = auto
[branch]
sort = -committerdate
[tag]
sort = version:refname
[safe]
directory = *

1
git/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.pc/

View File

@ -1,264 +0,0 @@
" pathogen.vim - path option manipulation
" Maintainer: Tim Pope <http://tpo.pe/>
" Version: 2.4
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
"
" For management of individually installed plugins in ~/.vim/bundle (or
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
" .vimrc is the only other setup necessary.
"
" The API is documented inline below.
if exists("g:loaded_pathogen") || &cp
finish
endif
let g:loaded_pathogen = 1
" Point of entry for basic default usage. Give a relative path to invoke
" pathogen#interpose() or an absolute path to invoke pathogen#surround().
" Curly braces are expanded with pathogen#expand(): "bundle/{}" finds all
" subdirectories inside "bundle" inside all directories in the runtime path.
" If no arguments are given, defaults "bundle/{}", and also "pack/{}/start/{}"
" on versions of Vim without native package support.
function! pathogen#infect(...) abort
if a:0
let paths = filter(reverse(copy(a:000)), 'type(v:val) == type("")')
else
let paths = ['bundle/{}', 'pack/{}/start/{}']
endif
if has('packages')
call filter(paths, 'v:val !~# "^pack/[^/]*/start/[^/]*$"')
endif
let static = '^\%([$~\\/]\|\w:[\\/]\)[^{}*]*$'
for path in filter(copy(paths), 'v:val =~# static')
call pathogen#surround(path)
endfor
for path in filter(copy(paths), 'v:val !~# static')
if path =~# '^\%([$~\\/]\|\w:[\\/]\)'
call pathogen#surround(path)
else
call pathogen#interpose(path)
endif
endfor
call pathogen#cycle_filetype()
if pathogen#is_disabled($MYVIMRC)
return 'finish'
endif
return ''
endfunction
" Split a path into a list.
function! pathogen#split(path) abort
if type(a:path) == type([]) | return a:path | endif
if empty(a:path) | return [] | endif
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
endfunction
" Convert a list to a path.
function! pathogen#join(...) abort
if type(a:1) == type(1) && a:1
let i = 1
let space = ' '
else
let i = 0
let space = ''
endif
let path = ""
while i < a:0
if type(a:000[i]) == type([])
let list = a:000[i]
let j = 0
while j < len(list)
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
let path .= ',' . escaped
let j += 1
endwhile
else
let path .= "," . a:000[i]
endif
let i += 1
endwhile
return substitute(path,'^,','','')
endfunction
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
function! pathogen#legacyjoin(...) abort
return call('pathogen#join',[1] + a:000)
endfunction
" Turn filetype detection off and back on again if it was already enabled.
function! pathogen#cycle_filetype() abort
if exists('g:did_load_filetypes')
filetype off
filetype on
endif
endfunction
" Check if a bundle is disabled. A bundle is considered disabled if its
" basename or full name is included in the list g:pathogen_blacklist or the
" comma delimited environment variable $VIMBLACKLIST.
function! pathogen#is_disabled(path) abort
if a:path =~# '\~$'
return 1
endif
let sep = pathogen#slash()
let blacklist = get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) + pathogen#split($VIMBLACKLIST)
if !empty(blacklist)
call map(blacklist, 'substitute(v:val, "[\\/]$", "", "")')
endif
return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
endfunction
" Prepend the given directory to the runtime path and append its corresponding
" after directory. Curly braces are expanded with pathogen#expand().
function! pathogen#surround(path) abort
let sep = pathogen#slash()
let rtp = pathogen#split(&rtp)
let path = fnamemodify(a:path, ':s?[\\/]\=$??')
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
let after = filter(reverse(pathogen#expand(path, sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
call filter(rtp, 'index(before + after, v:val) == -1')
let &rtp = pathogen#join(before, rtp, after)
return &rtp
endfunction
" For each directory in the runtime path, add a second entry with the given
" argument appended. Curly braces are expanded with pathogen#expand().
function! pathogen#interpose(name) abort
let sep = pathogen#slash()
let name = a:name
if has_key(s:done_bundles, name)
return ""
endif
let s:done_bundles[name] = 1
let list = []
for dir in pathogen#split(&rtp)
if dir =~# '\<after$'
let list += reverse(filter(pathogen#expand(dir[0:-6].name, sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
else
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
endif
endfor
let &rtp = pathogen#join(pathogen#uniq(list))
return 1
endfunction
let s:done_bundles = {}
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
function! pathogen#helptags() abort
let sep = pathogen#slash()
for glob in pathogen#split(&rtp)
for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
silent! execute 'helptags' pathogen#fnameescape(dir)
endif
endfor
endfor
endfunction
command! -bar Helptags :call pathogen#helptags()
" Execute the given command. This is basically a backdoor for --remote-expr.
function! pathogen#execute(...) abort
for command in a:000
execute command
endfor
return ''
endfunction
" Section: Unofficial
function! pathogen#is_absolute(path) abort
return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
endfunction
" Given a string, returns all possible permutations of comma delimited braced
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
" and globbed. Actual globs are preserved.
function! pathogen#expand(pattern, ...) abort
let after = a:0 ? a:1 : ''
let pattern = substitute(a:pattern, '^[~$][^\/]*', '\=expand(submatch(0))', '')
if pattern =~# '{[^{}]\+}'
let [pre, pat, post] = split(substitute(pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
let found = map(split(pat, ',', 1), 'pre.v:val.post')
let results = []
for pattern in found
call extend(results, pathogen#expand(pattern))
endfor
elseif pattern =~# '{}'
let pat = matchstr(pattern, '^.*{}[^*]*\%($\|[\\/]\)')
let post = pattern[strlen(pat) : -1]
let results = map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
else
let results = [pattern]
endif
let vf = pathogen#slash() . 'vimfiles'
call map(results, 'v:val =~# "\\*" ? v:val.after : isdirectory(v:val.vf.after) ? v:val.vf.after : isdirectory(v:val.after) ? v:val.after : ""')
return filter(results, '!empty(v:val)')
endfunction
" \ on Windows unless shellslash is set, / everywhere else.
function! pathogen#slash() abort
return !exists("+shellslash") || &shellslash ? '/' : '\'
endfunction
function! pathogen#separator() abort
return pathogen#slash()
endfunction
" Convenience wrapper around glob() which returns a list.
function! pathogen#glob(pattern) abort
let files = split(glob(a:pattern),"\n")
return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
endfunction
" Like pathogen#glob(), only limit the results to directories.
function! pathogen#glob_directories(pattern) abort
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
endfunction
" Remove duplicates from a list.
function! pathogen#uniq(list) abort
let i = 0
let seen = {}
while i < len(a:list)
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
call remove(a:list,i)
elseif a:list[i] ==# ''
let i += 1
let empty = 1
else
let seen[a:list[i]] = 1
let i += 1
endif
endwhile
return a:list
endfunction
" Backport of fnameescape().
function! pathogen#fnameescape(string) abort
if exists('*fnameescape')
return fnameescape(a:string)
elseif a:string ==# '-'
return '\-'
else
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
endif
endfunction
" Like findfile(), but hardcoded to use the runtimepath.
function! pathogen#runtime_findfile(file,count) abort
let rtp = pathogen#join(1,pathogen#split(&rtp))
let file = findfile(a:file,rtp,a:count)
if file ==# ''
return ''
else
return fnamemodify(file,':p')
endif
endfunction
" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':

@ -1 +0,0 @@
Subproject commit 5e2373e36d774e1cebd58b318346db32c52db21a

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

@ -1 +0,0 @@
Subproject commit 627308e30639be3e2d5402808ce18690557e8292

@ -1 +0,0 @@
Subproject commit 6c19f1ddfb74b3b21f3d1e830bee1d1ed6a72ece

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

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

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

17
vim/.vim/ftplugin/sh.vim Normal file
View File

@ -0,0 +1,17 @@
" .vim/ftplugin/sh.vim
" formatprg and makeprg config for bash shit
" go https://github.com/mvdan/sh#shfmt
" gggqG
if executable('shfmt')
setlocal formatprg=shfmt
endif
" cabal or npm https://github.com/koalaman/shellcheck#installing
" <space>m
if executable('shellcheck')
setlocal makeprg=shellcheck\ -f\ gcc\ %
nnoremap <buffer><space>m :silent make! % \| redraw!<cr>
endif

@ -0,0 +1 @@
Subproject commit 256d81e391a22eeb53791ff62ce65f870418fa71

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

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

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

@ -0,0 +1 @@
Subproject commit 400a12081f188f3fb639f8f962456764f39c6ff1

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

@ -0,0 +1 @@
Subproject commit 3d188ed2113431cf8dac77be61b842acb64433d9

View File

@ -82,8 +82,6 @@ cmap w!! w !sudo tee % >/dev/null
set rtp+=~/.fzf
execute pathogen#infect()
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
" vim:set ft=vim et sw=2:

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[cmd]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[sorting]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[default]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[command]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[file]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]
@ -71,7 +71,7 @@ smart_filter_quit = on
temporary_servers = off
topic_strip_colors = off
typing_status_nicks = on
typing_status_self = on
typing_status_self = off
[color]
input_nick = lightcyan
@ -127,6 +127,7 @@ anti_flood_prio_high = 2
anti_flood_prio_low = 2
autoconnect = on
autojoin = ""
autojoin_dynamic = on
autoreconnect = on
autoreconnect_delay = 10
autorejoin = off
@ -149,7 +150,7 @@ nicks_alternate = on
notify = ""
password = ""
proxy = ""
realname = "Ben Harris"
realname = "ben"
sasl_fail = continue
sasl_key = ""
sasl_mechanism = plain
@ -195,9 +196,10 @@ tilde.username
tilde.realname
tilde.local_hostname
tilde.usermode
tilde.command = "/msg operserv login ${sec.data.pass};/msg idlerpg_bot login wowbagger ${sec.data.idlerpgpass}"
tilde.command = "/msg idlerpg_bot login wowbagger ${sec.data.idlerpgpass}"
tilde.command_delay = 25
tilde.autojoin = "#.tilde,#ZfA,#allhandsactive,#anelki,#ascii.town,#aussie,#bots,#bungame,#cactus,#club,#cosmic,#counting-meta,#ctrl-c,#deutsch,#downgrade,#envs_german,#espanol,#factorio,#fr,#gemini,#gopher,#helpdesk,#idlerpg,#institute,#linux,#meta,#minecraft,#music,#netnews,#nsfw,#opers,#politics,#programming,#projects,#remotes.club,#secret-sudoers,#sus,#team,#texto-plano,#theasylum,#thunix,#tilde.zone-admin,#tildebot,#tilderadio,#tilderadio-djs,#tildetel,#tildeverse,#town,#vim,#wiki,#zfa"
tilde.autojoin = "#.tilde,#adventofcode,#allhandsactive,#anelki,#ascii.town,#aussie,#binary-counting,#bots,#club,#cosmic,#counting,#covid19,#ctrl-c,#dotnet,#earthward,#espanol,#fr,#gemini,#gopher,#helpdesk,#idlerpg,#linux,#logarion,#math,#meta,#midgard,#minecraft,#netnews,#nsfw,#opers,#rw.rs,#secret-sudoers,#selfhosting,#southlondon,#team,#thunix,#tilde.zone-admin,#tildebot,#tildenet,#tilderadio,#tilderadio-djs,#tildetel,#topm,#town,#vim,#wiki,#xinu,#ZfA,#tilde.green,#tildeverse,#nl"
tilde.autojoin_dynamic
tilde.autorejoin
tilde.autorejoin_delay
tilde.connection_timeout
@ -241,7 +243,8 @@ hashbang.local_hostname
hashbang.usermode
hashbang.command
hashbang.command_delay
hashbang.autojoin = "#!opers,#!social"
hashbang.autojoin = "#!,#!opers,#!social"
hashbang.autojoin_dynamic
hashbang.autorejoin
hashbang.autorejoin_delay
hashbang.connection_timeout
@ -285,7 +288,8 @@ town.local_hostname
town.usermode
town.command
town.command_delay
town.autojoin = "#admins,#announcements,#bots,#counting,#counting-meta,#tildetown"
town.autojoin = "#admins,#adventofcode,#announcements,#bots,#counting,#tildetown"
town.autojoin_dynamic
town.autorejoin
town.autorejoin_delay
town.connection_timeout
@ -329,7 +333,8 @@ esper.local_hostname
esper.usermode
esper.command
esper.command_delay
esper.autojoin = "#coders,#factorio,#lobby"
esper.autojoin = "#factorio,#lobby"
esper.autojoin_dynamic
esper.autorejoin
esper.autorejoin_delay
esper.connection_timeout
@ -374,6 +379,7 @@ sdf.usermode
sdf.command
sdf.command_delay
sdf.autojoin = "#sdf,#spanish"
sdf.autojoin_dynamic
sdf.autorejoin
sdf.autorejoin_delay
sdf.connection_timeout
@ -418,6 +424,7 @@ darwin.usermode
darwin.command
darwin.command_delay
darwin.autojoin = "#darwin"
darwin.autojoin_dynamic
darwin.autorejoin = on
darwin.autorejoin_delay
darwin.connection_timeout
@ -461,7 +468,8 @@ oftc.local_hostname
oftc.usermode
oftc.command
oftc.command_delay
oftc.autojoin = "#bitlbee,#debian-devel,#fish"
oftc.autojoin = "#bitlbee,#debian-devel,#debian-www,#fish,#salsa,#tilde.team"
oftc.autojoin_dynamic
oftc.autorejoin
oftc.autorejoin_delay
oftc.connection_timeout
@ -506,6 +514,7 @@ blinkenshell.usermode
blinkenshell.command
blinkenshell.command_delay
blinkenshell.autojoin = "#blinkenshell"
blinkenshell.autojoin_dynamic
blinkenshell.autorejoin
blinkenshell.autorejoin_delay
blinkenshell.connection_timeout
@ -550,6 +559,7 @@ inspircd.usermode
inspircd.command
inspircd.command_delay
inspircd.autojoin = "#inspircd"
inspircd.autojoin_dynamic
inspircd.autorejoin
inspircd.autorejoin_delay
inspircd.connection_timeout
@ -594,6 +604,7 @@ slashnet.usermode
slashnet.command = "/ns identify ${sec.data.slashnetpass}"
slashnet.command_delay
slashnet.autojoin = "#gtlug"
slashnet.autojoin_dynamic
slashnet.autorejoin
slashnet.autorejoin_delay
slashnet.connection_timeout
@ -637,7 +648,8 @@ bitlbee.local_hostname
bitlbee.usermode
bitlbee.command
bitlbee.command_delay
bitlbee.autojoin = "#biboumi,#btlgeneral,#cifuzofu,#ejabberd,#gritty,#harris,#hmm,#movim,#operators,#soprani.ca,#sysadmin,#texto-plano,#tilde.team,#xsf,&SMS,&bitlbee,&hmm,&tilde"
bitlbee.autojoin
bitlbee.autojoin_dynamic = off
bitlbee.autorejoin
bitlbee.autorejoin_delay
bitlbee.connection_timeout
@ -652,50 +664,6 @@ bitlbee.notify
bitlbee.split_msg_max_length
bitlbee.charset_message
bitlbee.default_chantypes
pine.addresses = "irc.pine64.org"
pine.proxy
pine.ipv6
pine.ssl
pine.ssl_cert
pine.ssl_password
pine.ssl_priorities
pine.ssl_dhkey_size
pine.ssl_fingerprint
pine.ssl_verify
pine.password
pine.capabilities
pine.sasl_mechanism
pine.sasl_username = "ben"
pine.sasl_password = "${sec.data.pinepass}"
pine.sasl_key
pine.sasl_timeout
pine.sasl_fail
pine.autoconnect
pine.autoreconnect
pine.autoreconnect_delay
pine.nicks
pine.nicks_alternate
pine.username
pine.realname
pine.local_hostname
pine.usermode
pine.command
pine.command_delay
pine.autojoin = "#Pine64"
pine.autorejoin
pine.autorejoin_delay
pine.connection_timeout
pine.anti_flood_prio_high
pine.anti_flood_prio_low
pine.away_check
pine.away_check_max_nicks
pine.msg_kick
pine.msg_part
pine.msg_quit
pine.notify
pine.split_msg_max_length
pine.charset_message
pine.default_chantypes
libera.addresses = "irc.us.libera.chat/6697"
libera.proxy
libera.ipv6
@ -769,7 +737,8 @@ ergo.local_hostname
ergo.usermode
ergo.command
ergo.command_delay
ergo.autojoin = "#chat,#ergo"
ergo.autojoin = "#ergo"
ergo.autojoin_dynamic
ergo.autorejoin
ergo.autorejoin_delay
ergo.connection_timeout
@ -814,6 +783,7 @@ pisslocal.usermode
pisslocal.command = "/oper ben ${sec.data.pissnetoper}"
pisslocal.command_delay
pisslocal.autojoin = "#opers,#pissnet,#services"
pisslocal.autojoin_dynamic
pisslocal.autorejoin
pisslocal.autorejoin_delay
pisslocal.connection_timeout
@ -828,3 +798,138 @@ pisslocal.notify
pisslocal.split_msg_max_length
pisslocal.charset_message
pisslocal.default_chantypes
snoonet.addresses = "irc.snoonet.org/6697"
snoonet.proxy
snoonet.ipv6
snoonet.ssl = on
snoonet.ssl_cert
snoonet.ssl_password
snoonet.ssl_priorities
snoonet.ssl_dhkey_size
snoonet.ssl_fingerprint
snoonet.ssl_verify
snoonet.password
snoonet.capabilities
snoonet.sasl_mechanism
snoonet.sasl_username = "benharri"
snoonet.sasl_password = "${sec.data.snoonetpass}"
snoonet.sasl_key
snoonet.sasl_timeout
snoonet.sasl_fail
snoonet.autoconnect
snoonet.autoreconnect
snoonet.autoreconnect_delay
snoonet.nicks
snoonet.nicks_alternate
snoonet.username
snoonet.realname
snoonet.local_hostname
snoonet.usermode
snoonet.command
snoonet.command_delay
snoonet.autojoin = "#help,#personalfinance,#snoonet"
snoonet.autojoin_dynamic
snoonet.autorejoin
snoonet.autorejoin_delay
snoonet.connection_timeout
snoonet.anti_flood_prio_high
snoonet.anti_flood_prio_low
snoonet.away_check
snoonet.away_check_max_nicks
snoonet.msg_kick
snoonet.msg_part
snoonet.msg_quit
snoonet.notify
snoonet.split_msg_max_length
snoonet.charset_message
snoonet.default_chantypes
liberta.casa.addresses = "irc.liberta.casa/6697"
liberta.casa.proxy
liberta.casa.ipv6
liberta.casa.ssl = on
liberta.casa.ssl_cert
liberta.casa.ssl_password
liberta.casa.ssl_priorities
liberta.casa.ssl_dhkey_size
liberta.casa.ssl_fingerprint
liberta.casa.ssl_verify
liberta.casa.password
liberta.casa.capabilities
liberta.casa.sasl_mechanism
liberta.casa.sasl_username = "ben"
liberta.casa.sasl_password = "${sec.data.libertacasapass}"
liberta.casa.sasl_key
liberta.casa.sasl_timeout
liberta.casa.sasl_fail
liberta.casa.autoconnect
liberta.casa.autoreconnect
liberta.casa.autoreconnect_delay
liberta.casa.nicks
liberta.casa.nicks_alternate
liberta.casa.username
liberta.casa.realname
liberta.casa.local_hostname
liberta.casa.usermode
liberta.casa.command
liberta.casa.command_delay
liberta.casa.autojoin = "#libcasa.info,#mods"
liberta.casa.autojoin_dynamic
liberta.casa.autorejoin
liberta.casa.autorejoin_delay
liberta.casa.connection_timeout
liberta.casa.anti_flood_prio_high
liberta.casa.anti_flood_prio_low
liberta.casa.away_check
liberta.casa.away_check_max_nicks
liberta.casa.msg_kick
liberta.casa.msg_part
liberta.casa.msg_quit
liberta.casa.notify
liberta.casa.split_msg_max_length
liberta.casa.charset_message
liberta.casa.default_chantypes
m455.addresses = "m455.casa/6697"
m455.proxy
m455.ipv6
m455.ssl = on
m455.ssl_cert
m455.ssl_password
m455.ssl_priorities
m455.ssl_dhkey_size
m455.ssl_fingerprint
m455.ssl_verify
m455.password
m455.capabilities
m455.sasl_mechanism = external
m455.sasl_username = "ben"
m455.sasl_password
m455.sasl_key
m455.sasl_timeout
m455.sasl_fail
m455.autoconnect
m455.autoreconnect
m455.autoreconnect_delay
m455.nicks
m455.nicks_alternate
m455.username
m455.realname
m455.local_hostname
m455.usermode
m455.command
m455.command_delay
m455.autojoin = "#basement,#serverroom,#siliconpals,#tildebot"
m455.autojoin_dynamic
m455.autorejoin
m455.autorejoin_delay
m455.connection_timeout
m455.anti_flood_prio_high
m455.anti_flood_prio_low
m455.away_check
m455.away_check_max_nicks
m455.msg_kick
m455.msg_part
m455.msg_quit
m455.notify
m455.split_msg_max_length
m455.charset_message
m455.default_chantypes

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[var]
@ -57,7 +57,6 @@ python.apply_corrections.message_limit = "2"
python.apply_corrections.print_format = "[nick]: [corrected]"
python.apply_corrections.print_limit = "1"
python.autojoin.autosave = "off"
python.autojoinem.sorted = "on"
python.autosavekey.add = "on"
python.autosavekey.mute = "off"
python.autosavekey.secure = "on"
@ -65,7 +64,7 @@ python.buffer_autoclose.age_limit = "30"
python.buffer_autoclose.ignore = "bitlbee.maddie"
python.buffer_autoclose.interval = "1"
python.check_license = "off"
python.completion.replace_values = "shrug=>¯\_(ツ)_/¯;;wiki=>https://tilde.team/wiki/;;sword=>o()xxxx[{::::::::::::::::::::::::::::::::::>;;lenny=>( ͡° ͜ʖ ͡°);;byobu=>https://superuser.com/a/423397/866501;;fg=>(☞゚ヮ゚)☞;;huh=>(-_-)ゞ゛;;tablefix=>┬─┬ノ( º _ ºノ);;weedoc=>https://weechat.org/files/doc/stable/weechat_user.en.html;;weekeys=>https://weechat.org/files/doc/stable/weechat_user.en.html#key_bindings;;denko=>(´・ω・`);;yuno=>ლ(́ಠ◞益◟ಠ‵ლ);;tf=>(ノಥ益ಥ)ノ彡┻━┻;;tb=>┬─┬ノ( º _ ºノ);;ducc=>・゜゜・。。・゜゜\_o< QUACK!;;wat=>https://bhh.sh/wat.jpg;;matrix=>https://www.moparisthebest.com/images/xmpp-vs-matrix.jpg;;servers=>https://tilde.wiki/wiki/User:Ben/Servers"
python.completion.replace_values = "shrug=>¯\_(ツ)_/¯;;wiki=>https://tilde.team/wiki/;;sword=>o()xxxx[{::::::::::::::::::::::::::::::::::>;;lenny=>( ͡° ͜ʖ ͡°);;byobu=>https://superuser.com/a/423397/866501;;fg=>(☞゚ヮ゚)☞;;huh=>(-_-)ゞ゛;;tablefix=>┬─┬ノ( º _ ºノ);;weedoc=>https://weechat.org/files/doc/stable/weechat_user.en.html;;weekeys=>https://weechat.org/files/doc/stable/weechat_user.en.html#key_bindings;;denko=>(´・ω・`);;yuno=>ლ(́ಠ◞益◟ಠ‵ლ);;tf=>(ノಥ益ಥ)ノ彡┻━┻;;tb=>┬─┬ノ( º _ ºノ);;ducc=>・゜゜・。。・゜゜\_o< QUACK!;;wat=>https://bhh.sh/wat.jpg;;matrix=>https://www.moparisthebest.com/images/xmpp-vs-matrix.jpg;;servers=>https://tilde.wiki/wiki/User:Ben/Servers;;nft=>https://youtu.be/YQ_xWvX1n9g"
python.go.auto_jump = "off"
python.go.buffer_number = "on"
python.go.color_name = "black,cyan"

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -1,401 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright (c) 2013-2020 by nils_2 <weechatter@arcor.de>
#
# add/del channel(s) to/from autojoin option
#
# 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/>.
#
# idea by azizLIGHTS
#
# 2020-10-20: nils_2, (freenode.#weechat)
# 0.7 : fix problem with empty fields (reported by MutantMummy: https://github.com/weechat/scripts/issues/438)
# 2017-01-06: nils_2, (freenode.#weechat)
# 0.6 : fix problem with non existing server (reported by Niols)
# 2016-12-19: nils_2, (freenode.#weechat)
# 0.5 : fix problem with empty autojoin (reported by Caelum)
# 2016-06-05: nils_2, (freenode.#weechat)
# 0.4 : make script python3 compatible
# 2015-11-14: nils_2, (freenode.#weechat)
# 0.3 : fix: problem with (undef) option
# 2014-01-19: nils_2, (freenode.#weechat)
# 0.2 : fix: adding keys to already existing keys failed
# 2013-12-22: nils_2, (freenode.#weechat)
# 0.1 : initial release
#
# requires: WeeChat version 0.3.x
#
# Development is currently hosted at
# https://github.com/weechatter/weechat-scripts
try:
import weechat,re
except Exception:
print("This script must be run under WeeChat.")
print("Get WeeChat now at: http://www.weechat.org/")
quit()
SCRIPT_NAME = "autojoinem"
SCRIPT_AUTHOR = "nils_2 <weechatter@arcor.de>"
SCRIPT_VERSION = "0.7"
SCRIPT_LICENSE = "GPL"
SCRIPT_DESC = "add/del channel(s) to/from autojoin option"
OPTIONS = { 'sorted' : ('off','channels will be sorted in autojoin-option. if autojoin-option contains channel-keys, this option will be ignored.'),
}
def add_autojoin_cmd_cb(data, buffer, args):
if args == "": # no args given. quit
return weechat.WEECHAT_RC_OK
argv = args.strip().split(' ')
# remove empty fields
argv2 = [feld for feld in argv if feld != '']
argv = argv2
# if (len(argv) <= 1):
# weechat.prnt(buffer,"%s%s: too few arguments." % (weechat.prefix('error'),SCRIPT_NAME))
# return weechat.WEECHAT_RC_OK
server = weechat.buffer_get_string(buffer, 'localvar_server') # current server
channel = weechat.buffer_get_string(buffer, 'localvar_channel') # current channel
buf_type = weechat.buffer_get_string(buffer, 'localvar_type')
# only "add <servername>" given by user
if (len(argv) == 2):
weechat.prnt(buffer,"%s%s: invalid number of arguments." % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
# '-key' keyword in command line?
if '-key' in argv:
found_key_word = argv.index('-key')
key_words = argv[int(found_key_word)+1:]
# don't use "-key" in argv
argv = argv[:int(found_key_word)]
# ADD argument
if (argv[0].lower() == 'add'):
# add current channel to autojoin. Only option "add" was given..
if (len(argv) == 1):
if server == "" or channel == "" or server == channel or buf_type == "" or buf_type != 'channel':
weechat.prnt(buffer,"%s%s: current buffer is not a channel buffer." % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
list_of_channels, list_of_current_keys = get_autojoin_list(buffer,server)
# no channels in option!
if list_of_channels == 1 and list_of_current_keys == 1:
ptr_config_autojoin = weechat.config_get('irc.server.%s.autojoin' % server)
rc = weechat.config_option_set(ptr_config_autojoin,channel,1)
return weechat.WEECHAT_RC_OK
if channel in list_of_channels:
weechat.prnt(buffer,"%s%s: channel '%s' already in autojoin for server '%s'" % (weechat.prefix("error"),SCRIPT_NAME,channel,server))
else:
# first char of channel '#' ?
if channel[0] == '#':
if '-key' in args and len(key_words) > 1:
weechat.prnt(buffer,"%s%s: too many key(s) for given channel(s) " % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
elif '-key' in args and len(key_words) == 1:
list_of_channels.insert(0,channel)
list_of_current_keys = ','.join(key_words)
# strip leading ','
if list_of_current_keys[0] == ',':
list_of_current_keys = list_of_current_keys.lstrip(',')
else:
list_of_channels.append(channel)
if not set_autojoin_list(server,list_of_channels, list_of_current_keys):
weechat.prnt(buffer,"%s%s: set new value for option failed..." % (weechat.prefix('error'),SCRIPT_NAME))
# server and channels given by user
elif (len(argv) >= 3):
server = argv[1]
list_of_channels = argv[2:]
if '-key' in args and len(list_of_channels) < len(key_words):
weechat.prnt(buffer,"%s%s: too many key(s) for given channel(s) " % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
list_of_current_channels,list_of_current_keys = get_autojoin_list(buffer,server)
# autojoin option is empty
if list_of_current_channels == 1:
# no channel -> no key!
list_of_current_keys = ""
if '-key' in args:
list_of_current_keys = ','.join(key_words)
# strip leading ','
if list_of_current_keys[0] == ',':
list_of_current_keys = list_of_current_keys.lstrip(',')
if not set_autojoin_list(server,list_of_channels, list_of_current_keys):
weechat.prnt(buffer,"%s%s: set new value for option failed..." % (weechat.prefix('error'),SCRIPT_NAME))
else:
if '-key' in args:
j = 0
new_keys = []
list_of_new_keys = []
for i in list_of_channels:
if i not in list_of_current_channels and j <= len(key_words):
# weechat.prnt(buffer,"channel: %s, channel key is: '%s'" % (i,key_words[j]))
list_of_current_channels.insert(j,i)
new_keys.insert(j,key_words[j])
j += 1
missing_channels = list_of_current_channels
list_of_new_keys = ','.join(new_keys)
if list_of_current_keys:
list_of_current_keys = list_of_new_keys + ',' + list_of_current_keys
else:
list_of_current_keys = list_of_new_keys
# strip leading ','
if list_of_current_keys[0] == ',':
list_of_current_keys = list_of_current_keys.lstrip(',')
else:
# check given channels with channels already set in option
missing_channels = get_difference(list_of_channels,list_of_current_channels)
missing_channels = list_of_current_channels + missing_channels
if not set_autojoin_list(server,missing_channels, list_of_current_keys):
weechat.prnt(buffer,"%s%s: set new value for option failed..." % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
# DEL argument
if (argv[0].lower() == 'del'):
# del current channel from autojoin. Only option "del" was given..
if (len(argv) == 1):
if server == "" or channel == "" or server == channel or buf_type == "" or buf_type != 'channel':
weechat.prnt(buffer,"%s%s: current buffer is not a channel buffer." % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
list_of_channels, list_of_keys = get_autojoin_list(buffer,server)
# no channels in option, nothing to delete
if list_of_channels == 1 and list_of_current_keys == 1:
return weechat.WEECHAT_RC_OK
if channel not in list_of_channels:
weechat.prnt(buffer,"%s%s: channel '%s' not found in autojoin for server '%s'" % (weechat.prefix("error"),SCRIPT_NAME,channel,server))
return weechat.WEECHAT_RC_OK
else:
# first char of channel '#' ?
if channel[0] == '#':
channel_key_index = list_of_channels.index(channel)
if not list_of_keys:
list_of_channels.remove(list_of_channels[channel_key_index])
list_of_current_keys = ''
else:
list_of_keys_tup = list_of_keys.split(",")
list_of_current_keys = list_of_keys
# channel does not have a key (position of channel > number of keys!)
if channel_key_index + 1 > len(list_of_keys_tup):
list_of_channels.remove(list_of_channels[channel_key_index])
# remove channel and key from autjoin option
else:
list_of_channels.remove(list_of_channels[channel_key_index])
list_of_keys_tup.remove(list_of_keys_tup[channel_key_index])
# does a key exists, after removing?
if len(list_of_keys_tup) > 0:
list_of_current_keys = ','.join(list_of_keys_tup)
# strip leading ','
if list_of_current_keys[0] == ',':
list_of_current_keys = list_of_current_keys.lstrip(',')
else: # all keys deleted
list_of_current_keys = ''
# unset option if everything is gone.
if not list_of_channels and not list_of_current_keys:
ptr_config_autojoin = weechat.config_get('irc.server.%s.autojoin' % server)
if ptr_config_autojoin:
rc = weechat.config_option_unset(ptr_config_autojoin)
return weechat.WEECHAT_RC_OK
if not set_autojoin_list(server,list_of_channels, list_of_current_keys):
weechat.prnt(buffer,"%s%s: set new value for option failed..." % (weechat.prefix('error'),SCRIPT_NAME))
# server and channels given by user
elif (len(argv) >= 3):
server = argv[1]
list_of_current_channels,list_of_current_keys = get_autojoin_list(buffer,server)
# autojoin option is empty
if list_of_current_channels == 1:
weechat.prnt(buffer,"%s%s: nothing to delete..." % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
else:
list_of_channels = args.split(" ")[2:]
if list_of_current_keys:
list_of_current_keys_tup = list_of_current_keys.split(",")
else:
list_of_current_keys_tup = ''
for i in list_of_channels:
# check if given channel is in list of options
if not i in list_of_current_channels:
continue
channel_key_index = list_of_current_channels.index(i)
# channel does not have a key (position of channel > number of keys!)
if channel_key_index + 1 > len(list_of_current_keys_tup):
list_of_current_channels.remove(i)
# if len(list_of_current_channels) <= 0:
# list_of_current_channels = ''
else: # remove channel and key from autjoin option
list_of_current_channels.remove(i)
list_of_current_keys_tup.remove(list_of_current_keys_tup[channel_key_index])
# does an key exists, after removing?
if len(list_of_current_keys_tup) > 0:
list_of_current_keys = ','.join(list_of_current_keys_tup)
# strip leading ','
if list_of_current_keys[0] == ',':
list_of_current_keys = list_of_current_keys.lstrip(',')
else: # all keys deleted
list_of_current_keys = ''
# for j in list_of_current_channels:
# weechat.prnt(buffer,"chan:%s" % j)
# for j in list_of_current_keys_tup:
# weechat.prnt(buffer,"key :%s" % j)
# unset option if everything is gone.
if not list_of_current_channels and not list_of_current_keys:
ptr_config_autojoin = weechat.config_get('irc.server.%s.autojoin' % server)
if ptr_config_autojoin:
rc = weechat.config_option_unset(ptr_config_autojoin)
return weechat.WEECHAT_RC_OK
if not set_autojoin_list(server,list_of_current_channels, list_of_current_keys):
weechat.prnt(buffer,"%s%s: set new value for option failed..." % (weechat.prefix('error'),SCRIPT_NAME))
return weechat.WEECHAT_RC_OK
def get_difference(list1, list2):
return list(set(list1).difference(set(list2)))
# returns a list of channels and a list of keys
# 1 = something failed, 0 = channel found
def get_autojoin_list(buffer,server):
ptr_config_autojoin = weechat.config_get('irc.server.%s.autojoin' % server)
# option not found! server does not exist
if not ptr_config_autojoin:
weechat.prnt("","%s%s: server '%s' does not exist." % (weechat.prefix('error'),SCRIPT_NAME,server))
return 1,1
# get value from autojoin option
channels = weechat.config_string(ptr_config_autojoin)
if not channels:
return 1,1
# check for keys
if len(re.findall(r" ", channels)) == 0:
list_of_channels = channels.split(",")
list_of_keys = []
elif len(re.findall(r" ", channels)) == 1:
list_of_channels2,list_of_keys = channels.split(" ")
list_of_channels = list_of_channels2.split(",")
else:
weechat.prnt("","%s%s: irc.server.%s.autojoin not valid..." % (weechat.prefix('error'),SCRIPT_NAME,server))
return 1,1
return list_of_channels, list_of_keys
def set_autojoin_list(server,list_of_channels, list_of_keys):
ptr_config_autojoin = weechat.config_get('irc.server.%s.autojoin' % server)
if not ptr_config_autojoin:
return 0
if OPTIONS['sorted'].lower() == 'on' and not list_of_keys:
# no keys, sort the channel-list
channels = '%s' % ','.join(sorted(list_of_channels))
else:
# don't sort channel-list with given key
channels = '%s' % ','.join(list_of_channels)
# strip leading ','
if channels[0] == ',':
channels = channels.lstrip(',')
# add keys to list of channels
if list_of_keys:
channels = '%s %s' % (channels,list_of_keys)
rc = weechat.config_option_set(ptr_config_autojoin,channels,1)
if not rc:
return 0
return 1
def autojoinem_completion_cb(data, completion_item, buffer, completion):
# server = weechat.buffer_get_string(buffer, 'localvar_server') # current buffer
input_line = weechat.buffer_get_string(buffer, 'input')
# get information out of the input_line
argv = input_line.strip().split(" ",3)
if (len(argv) >= 3 and argv[1] == 'del'):
server = argv[2]
list_of_channels,list_of_keys = get_autojoin_list(buffer,server)
if list_of_channels == 1:
return weechat.WEECHAT_RC_OK
if (len(argv) >= 4 and argv[1] == 'del'):
list_of_current_channels = argv[3].split(' ')
missing_channels = get_difference(list_of_channels,list_of_current_channels)
if not missing_channels:
return weechat.WEECHAT_RC_OK
list_of_channels = missing_channels
for i, elem in enumerate(list_of_channels):
weechat.hook_completion_list_add(completion, list_of_channels[i], 0, weechat.WEECHAT_LIST_POS_END)
return weechat.WEECHAT_RC_OK
# ================================[ weechat options & description ]===============================
def init_options():
for option,value in OPTIONS.items():
weechat.config_set_desc_plugin(option, '%s (default: "%s")' % (value[1], value[0]))
if not weechat.config_is_set_plugin(option):
weechat.config_set_plugin(option, value[0])
OPTIONS[option] = value[0]
else:
OPTIONS[option] = weechat.config_get_plugin(option)
def toggle_refresh(pointer, name, value):
global OPTIONS
option = name[len('plugins.var.python.' + SCRIPT_NAME + '.'):] # get optionname
OPTIONS[option] = value # save new value
return weechat.WEECHAT_RC_OK
# ================================[ main ]===============================
if __name__ == "__main__":
if weechat.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, SCRIPT_DESC, '', ''):
version = weechat.info_get("version_number", "") or 0
weechat.hook_command(SCRIPT_NAME,SCRIPT_DESC,
'add <server> [<channel1>[ <channel2>...]] | [-key <channelkey> [<channelkey>...]] ||'
'del <server> [<channel1>[ <channel2>...]]',
'add <server> <channel>: add channel to irc.server.<servername>.autojoin\n'
' -key <channelkey>: name of channelkey\n'
'del <server> <channel>: del channel from irc.server.<servername>.autojoin\n'
'\n'
'Examples:\n'
' add current channel to corresponding server option:\n'
' /' + SCRIPT_NAME + ' add\n'
' add all channels from all server to corresponding server option:\n'
' /allchan /' + SCRIPT_NAME + ' add\n'
' add channel #weechat to autojoin option on server freenode:\n'
' /' + SCRIPT_NAME + ' add freenode #weechat\n'
' add channel #weechat and #weechat-de to autojoin option on server freenode, with channel key for channel #weechat:\n'
' /' + SCRIPT_NAME + ' add freenode #weechat #weechat-de -key my_channel_key\n'
' del channels #weechat and #weechat-de from autojoin option on server freenode:\n'
' /' + SCRIPT_NAME + ' del freenode #weechat #weechat-de',
'add %(irc_servers) %(irc_server_channels)|%*||'
'del %(irc_servers) %(plugin_autojoinem)|%*',
'add_autojoin_cmd_cb', '')
init_options()
weechat.hook_completion('plugin_autojoinem', 'autojoin_completion', 'autojoinem_completion_cb', '')
weechat.hook_config('plugins.var.python.' + SCRIPT_NAME + '.*', 'toggle_refresh', '')
# if int(version) >= 0x00030600:
# else:
# weechat.prnt("","%s%s %s" % (weechat.prefix("error"),SCRIPT_NAME,": needs version 0.3.6 or higher"))
# weechat.command("","/wait 1ms /python unload %s" % SCRIPT_NAME)

View File

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

View File

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

View File

@ -0,0 +1,156 @@
# -*- coding: utf-8 -*-
#
# weestats.py, version 0.2 for WeeChat version 0.3
# Latest development version: https://github.com/FiXato/weechat_scripts
#
# Inserts some statistics into your input field about the buffers/windows
# you have open.
# Example: 151 buffers (46 merged): 135 channels, 9 servers, 3 queries,
# 1 script, 1 python, 1 perl, 1 core; 3 windows
#
## History:
#
### 2012-03-29: FiXato:
# * version 0.1: initial release.
# * Display a count of all the different buffers you have open.
# * Display a count of all the open windows.
# * version 0.2: Getting the splits.
# * Displays the how many vertical and horizontal windows.
# (not quite sure if my approximation is correct though..)
# * Fixed possible memleak (forgot to free an infolist)
### 2015-05-02: arza:
# * version 0.3:
# * handle non-#-channels
# * numerical sort for buffer info
# * moved window split info to option -split
# * simplified the output
### 2019-07-05: Sébastien Helleu:
# * version 0.4:
# * make script compatible with Python 3
#
## Acknowledgements:
# * Sebastien "Flashcode" Helleu, for developing the kick-ass chat/IRC
# client WeeChat
#
## TODO:
# - Add more statistics, such as:
# - average and total history lines.
# - average and total topic/title lengths
# - how many are displayed in a window
#
## Copyright (c) 2012 Filip H.F. "FiXato" Slagter,
# <FiXato+WeeChat [at] Gmail [dot] com>
# https://google.com/profiles/FiXato
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
from __future__ import print_function
SCRIPT_NAME = "weestats"
SCRIPT_AUTHOR = "Filip H.F. 'FiXato' Slagter <fixato [at] gmail [dot] com>"
SCRIPT_VERSION = "0.4"
SCRIPT_LICENSE = "MIT"
SCRIPT_DESC = "Useless statistics about your open buffers and windows"
SCRIPT_COMMAND = "weestats"
SCRIPT_CLOSE_CB = "close_cb"
import_ok = True
try:
import weechat as w
except ImportError:
print("This script must be run under WeeChat.")
import_ok = False
def close_cb(*kwargs):
return w.WEECHAT_RC_OK
def command_main(data, buffer, args):
infolist = w.infolist_get("buffer", "", "")
buffer_groups = {}
results = []
buffer_count = 0
merge_count = 0
numbers = set()
while w.infolist_next(infolist):
bplugin = w.infolist_string(infolist, "plugin_name")
bname = w.infolist_string(infolist, "name")
bpointer = w.infolist_pointer(infolist, "pointer")
bnumber = w.infolist_integer(infolist, "number")
btype = w.buffer_get_string(bpointer, 'localvar_type')
if not bnumber in numbers:
numbers.add(bnumber)
else:
merge_count += 1
if btype == 'server':
bdesc = 'servers'
elif btype == 'channel':
bdesc = 'channels'
elif btype == 'private':
bdesc = 'queries'
else:
bdesc = bplugin
buffer_groups.setdefault(bdesc,[]).append({'name': bname, 'pointer': bpointer})
w.infolist_free(infolist)
infolist = w.infolist_get("window", "", "")
windows_v = set()
windows_h = set()
windows = set()
while w.infolist_next(infolist):
window = w.infolist_pointer(infolist, "pointer")
window_w = w.infolist_integer(infolist, "width_pct")
window_h = w.infolist_integer(infolist, "height_pct")
windows.add(window)
if window_h == 100 and window_w != 100:
windows_v.add(window)
elif window_w == 100 and window_h != 100:
windows_h.add(window)
#else: #both 100%, thus no splits
w.infolist_free(infolist)
window_count = len(windows)
for desc, buffers in buffer_groups.items():
buffer_count += len(buffers)
results.append('%i %s' % (len(buffers), desc))
buffer_stats = ', '.join(sorted(results, key = lambda item: (int(item.partition(' ')[0]) if item[0].isdigit() else float('inf'), item),reverse=True)) # descending numerical sort of strings
stats_string = '%i buffers (%i merged): %s; %i windows' % (buffer_count, merge_count, buffer_stats, window_count)
if '-split' in args:
stats_string += ": %i vertically / %i horizontally split" % (len(windows_v), len(windows_h))
w.command("", "/input insert %s" % stats_string)
return w.WEECHAT_RC_OK
if __name__ == "__main__" and import_ok:
if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION,
SCRIPT_LICENSE, SCRIPT_DESC, SCRIPT_CLOSE_CB, ""):
w.hook_command(SCRIPT_COMMAND,
SCRIPT_DESC,
"-split",
"Inserts useless statistics about your open buffers and windows into your input line.\n"
"-split: Include information about window splits.",
"-split",
"command_main", "")

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]
@ -30,7 +30,7 @@ allowed_ips = ""
auth_timeout = 60
bind_address = ""
clients_purge_delay = 0
compression_level = 6
compression = 20
ipv6 = on
max_clients = 5
nonce_size = 16
@ -55,7 +55,6 @@ backlog_time_format = "[%H:%M] "
commands = ""
[port]
ipv4.irc = 6666
[path]
unix.weechat = "%h/relay_socket"

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[color]
@ -19,7 +19,7 @@ suggestion_delimiter_word = cyan
commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
default_dict = "en"
during_search = off
enabled = on
enabled = off
real_time = off
suggestions = 2
word_min_length = 2

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]
@ -25,22 +25,6 @@ trigger = green
trigger_disabled = red
[trigger]
autojoin.arguments = "*,irc_in_join"
autojoin.command = "/autojoinem add ${server} ${channel};/mute save"
autojoin.conditions = ""
autojoin.enabled = on
autojoin.hook = signal
autojoin.post_action = none
autojoin.regex = ""
autojoin.return_code = ok
autopart.arguments = "*,irc_in_part"
autopart.command = "/autojoinem del ${server} ${channel};/mute save"
autopart.conditions = ""
autopart.enabled = on
autopart.hook = signal
autopart.post_action = none
autopart.regex = ""
autopart.return_code = ok
beep.arguments = ""
beep.command = "/print -beep"
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
@ -55,8 +39,16 @@ 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.regex = "==^((/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +(id|identify|set +password|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+|setpass +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}"
cmd_pass.return_code = ok
cmd_pass_register.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth"
cmd_pass_register.command = ""
cmd_pass_register.conditions = ""
cmd_pass_register.enabled = on
cmd_pass_register.hook = modifier
cmd_pass_register.post_action = none
cmd_pass_register.regex = "==^(/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +register +)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}"
cmd_pass_register.return_code = ok
greentext.arguments = "weechat_print"
greentext.command = ""
greentext.conditions = "${tg_message_nocolor} =~ ^>[^:._]"

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[debug]
@ -243,7 +243,6 @@ proxy_curl = ""
[plugin]
autoload = "*"
debug = off
extension = ".so,.dll"
path = "%h/plugins"
save_config_on_unload = on
@ -371,6 +370,7 @@ default.window = "3;1;0;0;core;weechat"
default.current = on
[notify]
irc.server.liberta.casa = highlight
irc.server.pisslocal = none
irc.server.tilde = highlight
perl.highmon = none
@ -442,6 +442,7 @@ meta-< = "/input jump_previously_visited_buffer"
meta-= = "/filter toggle"
meta-> = "/input jump_next_visited_buffer"
meta-B = "/buflist toggle"
meta-C = "/buffer &SMS"
meta-J = "/buffer server.libera"
meta-N = "/bar toggle nicklist"
meta-OA = "/input history_global_previous"
@ -512,6 +513,7 @@ meta2-[E = "/buffer -1"
meta-_ = "/input redo"
meta-a = "/input jump_smart"
meta-b = "/input move_previous_word"
meta-c = "/buffer &bitlbee"
meta-d = "/input delete_next_word"
meta-f = "/input move_next_word"
meta-g = "/go"

View File

@ -6,7 +6,7 @@
#
# Use commands like /set or /fset to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
# For more info, see: https://weechat.org/doc/quickstart/
#
[look]