forked from ben/dotfiles
Compare commits
28 Commits
Author | SHA1 | Date |
---|---|---|
Ben Harris | 8698adae25 | |
Ben Harris | f0fdbab641 | |
Ben Harris | d537b626df | |
Ben Harris | e52edc8402 | |
Ben Harris | 84c3343b0f | |
Ben Harris | 2ffaf6d00d | |
Ben Harris | 237bd4a7db | |
Ben Harris | 2ceccc6717 | |
Ben Harris | 13ffb021ef | |
Ben Harris | 72493884f0 | |
Ben Harris | 4815662c48 | |
Ben Harris | fd399e7dfa | |
Ben Harris | ab9da2a8b4 | |
Ben Harris | ed016a7211 | |
Ben Harris | f107c145c4 | |
Ben Harris | 30fc00b49f | |
Ben Harris | dc41bf9df1 | |
Ben Harris | 9ac23a93f5 | |
Ben Harris | f8b013fc20 | |
Ben Harris | 60ae2b82ba | |
Ben Harris | f5d04cb608 | |
Ben Harris | 96eb5a5cc2 | |
Ben Harris | d4bec05c3d | |
Ben Harris | 8eef122aa6 | |
Ben Harris | eb73c18475 | |
Ben Harris | 872cbbb7d8 | |
Ben Harris | 1d9a5cbba1 | |
Ben Harris | b861a2a482 |
|
@ -1,26 +1,26 @@
|
||||||
[submodule "vim/.vim/bundle/quick-scope"]
|
[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
|
url = https://github.com/unblevable/quick-scope
|
||||||
[submodule "vim/.vim/bundle/vim-fugitive"]
|
[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
|
url = https://github.com/tpope/vim-fugitive
|
||||||
[submodule "vim/.vim/bundle/vim-commentary"]
|
[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
|
url = https://github.com/tpope/vim-commentary
|
||||||
[submodule "vim/.vim/bundle/vim-surround"]
|
[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
|
url = https://github.com/tpope/vim-surround
|
||||||
[submodule "vim/.vim/bundle/vim-gitgutter"]
|
[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
|
url = https://github.com/airblade/vim-gitgutter
|
||||||
[submodule "vim/.vim/bundle/vim-lastplace"]
|
[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
|
url = https://github.com/farmergreg/vim-lastplace
|
||||||
[submodule "vim/.vim/bundle/vim-fish"]
|
[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
|
url = https://github.com/dag/vim-fish
|
||||||
[submodule "vim/.vim/bundle/vim-airline"]
|
[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
|
url = https://github.com/vim-airline/vim-airline
|
||||||
[submodule "pb"]
|
[submodule "pb"]
|
||||||
path = pb
|
path = pb
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -78,7 +78,7 @@ vim:
|
||||||
@printf "$(YELLOW)--- vim ------------------------------------------------\n$(RESET)"
|
@printf "$(YELLOW)--- vim ------------------------------------------------\n$(RESET)"
|
||||||
mkdir -p ~/.vim/{undodir,swap,backup}
|
mkdir -p ~/.vim/{undodir,swap,backup}
|
||||||
chmod 700 ~/.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
|
stow -t "$$HOME" vim
|
||||||
|
|
||||||
weechat:
|
weechat:
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
exec openssl s_client -connect "$1" </dev/null 2>/dev/null \
|
||||||
|
| openssl x509 -noout -dates
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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")
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# https://anarc.at/blog/2019-07-07-rsync-oneliner/
|
||||||
|
exec rsync -PaSHAXx --numeric-ids --info=progress2 "$@"
|
|
@ -1,3 +1 @@
|
||||||
set -g default-shell /usr/bin/fish
|
|
||||||
set -g default-command /usr/bin/fish
|
|
||||||
set -g default-terminal "screen-256color"
|
set -g default-terminal "screen-256color"
|
||||||
|
|
|
@ -5,32 +5,46 @@ if test -d ~/Maildir
|
||||||
set -x MAIL ~/Maildir
|
set -x MAIL ~/Maildir
|
||||||
end
|
end
|
||||||
|
|
||||||
for i in ~/bin ~/.yarn/bin ~/.rbenv/bin ~/.local/bin ~/.cargo/bin
|
for i in ~/bin ~/.local/bin ~/.rbenv/bin ~/.rbenv/shims ~/.cargo/bin ~/.yarn/bin ~/go/bin ~/.dotnet/tools
|
||||||
if test -d $i && not contains $i $PATH
|
fish_add_path --path $i
|
||||||
set -x fish_user_paths $fish_user_paths $i
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# add rbenv paths
|
# 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 ""
|
#set -x SSH_AGENT_PID ""
|
||||||
if test -S $HOME/.gnupg/S.gpg-agent
|
if test -S $HOME/.gnupg/S.gpg-agent
|
||||||
set -x SSH_AUTH_SOCK $HOME/.gnupg/S.gpg-agent
|
set -x SSH_AUTH_SOCK $HOME/.gnupg/S.gpg-agent
|
||||||
set -x GPG_SOCK $HOME/.gnupg/S.gpg-agent
|
set -x GPG_SOCK $HOME/.gnupg/S.gpg-agent
|
||||||
else
|
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
|
end
|
||||||
|
|
||||||
set -x BBJ_USER $USER
|
set -x BBJ_USER $USER
|
||||||
|
set -x DEBEMAIL ben@tilde.team
|
||||||
|
set -x DEBFULLNAME "Ben Harris"
|
||||||
|
|
||||||
# add dotnet completions if needed
|
# add dotnet completions if needed
|
||||||
if status --is-interactive && type -q dotnet
|
if status --is-interactive && type -q dotnet
|
||||||
complete -f -c dotnet -a "(dotnet complete)"
|
complete -f -c dotnet -a "(dotnet complete)"
|
||||||
end
|
end
|
||||||
|
|
||||||
# load postexec_insult
|
|
||||||
postexec_insult
|
|
||||||
|
|
||||||
status --is-login && status --is-interactive && exec byobu-launcher
|
status --is-login && status --is-interactive && exec byobu-launcher
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
# This file contains fish universal variable definitions.
|
# This file contains fish universal variable definitions.
|
||||||
# VERSION: 3.0
|
# VERSION: 3.0
|
||||||
|
SETUVAR --export DEBEMAIL:ben\x40tilde\x2eteam
|
||||||
SETUVAR DOTNET_CLI_TELEMETRY_OPTOUT:1
|
SETUVAR DOTNET_CLI_TELEMETRY_OPTOUT:1
|
||||||
|
SETUVAR EMAIL:ben\x40tilde\x2eteam
|
||||||
SETUVAR __fish_init_2_39_8:\x1d
|
SETUVAR __fish_init_2_39_8:\x1d
|
||||||
SETUVAR __fish_init_2_3_0:\x1d
|
SETUVAR __fish_init_2_3_0:\x1d
|
||||||
SETUVAR __fish_init_3_x:\x1d
|
SETUVAR __fish_init_3_x:\x1d
|
||||||
SETUVAR __fish_initialized:3100
|
SETUVAR __fish_initialized:3400
|
||||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||||
SETUVAR fish_color_cancel:\x2dr
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
SETUVAR fish_color_command:\x2d\x2dbold
|
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_description:B3A06D\x1eyellow
|
||||||
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
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_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
|
SETUVAR fisher_dependency_count:bass\x1edone\x1egetopts\x1egitignore\x1ehumanize_duration\x1envm\x1espin
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# Defined in /tmp/fish.5ZM6aQ/anonradio.fish @ line 1
|
|
||||||
function anonradio
|
function anonradio
|
||||||
nvlc http://anonradio.net:8000/anonradio
|
nvlc http://anonradio.net:8000/anonradio
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# Defined in /tmp/fish.7MQgge/backupstatus.fish @ line 2
|
|
||||||
function backupstatus
|
function backupstatus
|
||||||
ssh rsync quota
|
ssh rsync quota
|
||||||
ssh rsync du -sh "*.borg"
|
ssh rsync du -sh "*.borg"
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
function cat
|
|
||||||
if type -q bat >/dev/null
|
|
||||||
bat -p $argv
|
|
||||||
else
|
|
||||||
command cat $argv
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
function certexpiry
|
|
||||||
openssl s_client -connect $argv[1] </dev/null 2>/dev/null | openssl x509 -noout -dates
|
|
||||||
end
|
|
|
@ -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
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
function cwhois
|
||||||
|
whois -h bgp.tools " -v $argv"
|
||||||
|
end
|
|
@ -1,4 +0,0 @@
|
||||||
function e
|
|
||||||
exa -al --git --group-directories-first $argv
|
|
||||||
end
|
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
function lg
|
|
||||||
if type -q lazygit > /dev/null
|
|
||||||
lazygit $argv
|
|
||||||
else
|
|
||||||
git status
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# Defined in /tmp/fish.XPcPNS/lynx.fish @ line 2
|
|
||||||
function lynx
|
function lynx
|
||||||
command lynx -vikeys -display_charset=UTF-8 $argv
|
command lynx -vikeys -display_charset=UTF-8 $argv
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
function mutt
|
|
||||||
if type -q neomutt >/dev/null
|
|
||||||
neomutt $argv
|
|
||||||
else
|
|
||||||
command mutt $argv
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -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
|
|
|
@ -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
|
|
@ -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
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
function ssys
|
||||||
|
sudo systemctl $args
|
||||||
|
end
|
|
@ -1,3 +0,0 @@
|
||||||
function ttm
|
|
||||||
curl -F"file=@"$argv[1] https://ttm.sh
|
|
||||||
end
|
|
|
@ -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
|
|
|
@ -7,12 +7,18 @@
|
||||||
default = simple
|
default = simple
|
||||||
|
|
||||||
[commit]
|
[commit]
|
||||||
gpgsign = true
|
gpgsign = false
|
||||||
verbose = true
|
verbose = true
|
||||||
|
|
||||||
[pull]
|
[pull]
|
||||||
ff = only
|
ff = only
|
||||||
|
|
||||||
|
[pager]
|
||||||
|
diff = diff-highlight | less
|
||||||
|
log = diff-highlight | less
|
||||||
|
reflog = diff-highlight | less
|
||||||
|
show = diff-highlight | less
|
||||||
|
|
||||||
[diff]
|
[diff]
|
||||||
colorMoved = default
|
colorMoved = default
|
||||||
|
|
||||||
|
@ -28,17 +34,18 @@
|
||||||
smtpencryption = tls
|
smtpencryption = tls
|
||||||
smtpserver = mail.tilde.team
|
smtpserver = mail.tilde.team
|
||||||
smtpserverport = 587
|
smtpserverport = 587
|
||||||
annotate = yes
|
|
||||||
smtpuser = ben
|
smtpuser = ben
|
||||||
|
annotate = yes
|
||||||
[alias]
|
[alias]
|
||||||
lol = log --oneline --graph --decorate --all
|
lol = log --oneline --graph --decorate --all
|
||||||
joke = !curl -s https://raw.githubusercontent.com/EugeneKay/git-jokes/lulz/Jokes.txt | shuf -n1
|
joke = !curl -s https://raw.githubusercontent.com/EugeneKay/git-jokes/lulz/Jokes.txt | shuf -n1
|
||||||
dad = !curl https://icanhazdadjoke.com
|
dad = !curl https://icanhazdadjoke.com
|
||||||
staged = diff --staged
|
staged = diff --staged
|
||||||
ap = add --patch
|
ap = add --patch
|
||||||
|
cv = commit --verbose
|
||||||
local = log --oneline --no-merges ${1-$(git branch -lvv | perl -ne '/^\\\\*.*\\\\[(.*?)\\\\]/ and print \"$1\\n\"')}..HEAD
|
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\"')}
|
upstream = log --oneline --no-merges HEAD..${1-$(git branch -lvv | perl -ne '/^\\\\*.*\\\\[(.*?)\\\\]/ and print \"$1\\n\"')}
|
||||||
cv = commit --verbose
|
|
||||||
[rerere]
|
[rerere]
|
||||||
enabled = true
|
enabled = true
|
||||||
[merge]
|
[merge]
|
||||||
|
@ -46,3 +53,24 @@
|
||||||
conflictstyle = diff3
|
conflictstyle = diff3
|
||||||
[mergetool]
|
[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 = *
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
.pc/
|
|
@ -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
|
|
|
@ -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
|
|
@ -82,8 +82,6 @@ cmap w!! w !sudo tee % >/dev/null
|
||||||
|
|
||||||
set rtp+=~/.fzf
|
set rtp+=~/.fzf
|
||||||
|
|
||||||
execute pathogen#infect()
|
|
||||||
|
|
||||||
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
|
let g:qs_highlight_on_keys = ['f', 'F', 't', 'T']
|
||||||
|
|
||||||
" vim:set ft=vim et sw=2:
|
" vim:set ft=vim et sw=2:
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[cmd]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[sorting]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[default]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[command]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[file]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
@ -71,7 +71,7 @@ smart_filter_quit = on
|
||||||
temporary_servers = off
|
temporary_servers = off
|
||||||
topic_strip_colors = off
|
topic_strip_colors = off
|
||||||
typing_status_nicks = on
|
typing_status_nicks = on
|
||||||
typing_status_self = on
|
typing_status_self = off
|
||||||
|
|
||||||
[color]
|
[color]
|
||||||
input_nick = lightcyan
|
input_nick = lightcyan
|
||||||
|
@ -127,6 +127,7 @@ anti_flood_prio_high = 2
|
||||||
anti_flood_prio_low = 2
|
anti_flood_prio_low = 2
|
||||||
autoconnect = on
|
autoconnect = on
|
||||||
autojoin = ""
|
autojoin = ""
|
||||||
|
autojoin_dynamic = on
|
||||||
autoreconnect = on
|
autoreconnect = on
|
||||||
autoreconnect_delay = 10
|
autoreconnect_delay = 10
|
||||||
autorejoin = off
|
autorejoin = off
|
||||||
|
@ -149,7 +150,7 @@ nicks_alternate = on
|
||||||
notify = ""
|
notify = ""
|
||||||
password = ""
|
password = ""
|
||||||
proxy = ""
|
proxy = ""
|
||||||
realname = "Ben Harris"
|
realname = "ben"
|
||||||
sasl_fail = continue
|
sasl_fail = continue
|
||||||
sasl_key = ""
|
sasl_key = ""
|
||||||
sasl_mechanism = plain
|
sasl_mechanism = plain
|
||||||
|
@ -195,9 +196,10 @@ tilde.username
|
||||||
tilde.realname
|
tilde.realname
|
||||||
tilde.local_hostname
|
tilde.local_hostname
|
||||||
tilde.usermode
|
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.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
|
||||||
tilde.autorejoin_delay
|
tilde.autorejoin_delay
|
||||||
tilde.connection_timeout
|
tilde.connection_timeout
|
||||||
|
@ -241,7 +243,8 @@ hashbang.local_hostname
|
||||||
hashbang.usermode
|
hashbang.usermode
|
||||||
hashbang.command
|
hashbang.command
|
||||||
hashbang.command_delay
|
hashbang.command_delay
|
||||||
hashbang.autojoin = "#!opers,#!social"
|
hashbang.autojoin = "#!,#!opers,#!social"
|
||||||
|
hashbang.autojoin_dynamic
|
||||||
hashbang.autorejoin
|
hashbang.autorejoin
|
||||||
hashbang.autorejoin_delay
|
hashbang.autorejoin_delay
|
||||||
hashbang.connection_timeout
|
hashbang.connection_timeout
|
||||||
|
@ -285,7 +288,8 @@ town.local_hostname
|
||||||
town.usermode
|
town.usermode
|
||||||
town.command
|
town.command
|
||||||
town.command_delay
|
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
|
||||||
town.autorejoin_delay
|
town.autorejoin_delay
|
||||||
town.connection_timeout
|
town.connection_timeout
|
||||||
|
@ -329,7 +333,8 @@ esper.local_hostname
|
||||||
esper.usermode
|
esper.usermode
|
||||||
esper.command
|
esper.command
|
||||||
esper.command_delay
|
esper.command_delay
|
||||||
esper.autojoin = "#coders,#factorio,#lobby"
|
esper.autojoin = "#factorio,#lobby"
|
||||||
|
esper.autojoin_dynamic
|
||||||
esper.autorejoin
|
esper.autorejoin
|
||||||
esper.autorejoin_delay
|
esper.autorejoin_delay
|
||||||
esper.connection_timeout
|
esper.connection_timeout
|
||||||
|
@ -374,6 +379,7 @@ sdf.usermode
|
||||||
sdf.command
|
sdf.command
|
||||||
sdf.command_delay
|
sdf.command_delay
|
||||||
sdf.autojoin = "#sdf,#spanish"
|
sdf.autojoin = "#sdf,#spanish"
|
||||||
|
sdf.autojoin_dynamic
|
||||||
sdf.autorejoin
|
sdf.autorejoin
|
||||||
sdf.autorejoin_delay
|
sdf.autorejoin_delay
|
||||||
sdf.connection_timeout
|
sdf.connection_timeout
|
||||||
|
@ -418,6 +424,7 @@ darwin.usermode
|
||||||
darwin.command
|
darwin.command
|
||||||
darwin.command_delay
|
darwin.command_delay
|
||||||
darwin.autojoin = "#darwin"
|
darwin.autojoin = "#darwin"
|
||||||
|
darwin.autojoin_dynamic
|
||||||
darwin.autorejoin = on
|
darwin.autorejoin = on
|
||||||
darwin.autorejoin_delay
|
darwin.autorejoin_delay
|
||||||
darwin.connection_timeout
|
darwin.connection_timeout
|
||||||
|
@ -461,7 +468,8 @@ oftc.local_hostname
|
||||||
oftc.usermode
|
oftc.usermode
|
||||||
oftc.command
|
oftc.command
|
||||||
oftc.command_delay
|
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
|
||||||
oftc.autorejoin_delay
|
oftc.autorejoin_delay
|
||||||
oftc.connection_timeout
|
oftc.connection_timeout
|
||||||
|
@ -506,6 +514,7 @@ blinkenshell.usermode
|
||||||
blinkenshell.command
|
blinkenshell.command
|
||||||
blinkenshell.command_delay
|
blinkenshell.command_delay
|
||||||
blinkenshell.autojoin = "#blinkenshell"
|
blinkenshell.autojoin = "#blinkenshell"
|
||||||
|
blinkenshell.autojoin_dynamic
|
||||||
blinkenshell.autorejoin
|
blinkenshell.autorejoin
|
||||||
blinkenshell.autorejoin_delay
|
blinkenshell.autorejoin_delay
|
||||||
blinkenshell.connection_timeout
|
blinkenshell.connection_timeout
|
||||||
|
@ -550,6 +559,7 @@ inspircd.usermode
|
||||||
inspircd.command
|
inspircd.command
|
||||||
inspircd.command_delay
|
inspircd.command_delay
|
||||||
inspircd.autojoin = "#inspircd"
|
inspircd.autojoin = "#inspircd"
|
||||||
|
inspircd.autojoin_dynamic
|
||||||
inspircd.autorejoin
|
inspircd.autorejoin
|
||||||
inspircd.autorejoin_delay
|
inspircd.autorejoin_delay
|
||||||
inspircd.connection_timeout
|
inspircd.connection_timeout
|
||||||
|
@ -594,6 +604,7 @@ slashnet.usermode
|
||||||
slashnet.command = "/ns identify ${sec.data.slashnetpass}"
|
slashnet.command = "/ns identify ${sec.data.slashnetpass}"
|
||||||
slashnet.command_delay
|
slashnet.command_delay
|
||||||
slashnet.autojoin = "#gtlug"
|
slashnet.autojoin = "#gtlug"
|
||||||
|
slashnet.autojoin_dynamic
|
||||||
slashnet.autorejoin
|
slashnet.autorejoin
|
||||||
slashnet.autorejoin_delay
|
slashnet.autorejoin_delay
|
||||||
slashnet.connection_timeout
|
slashnet.connection_timeout
|
||||||
|
@ -637,7 +648,8 @@ bitlbee.local_hostname
|
||||||
bitlbee.usermode
|
bitlbee.usermode
|
||||||
bitlbee.command
|
bitlbee.command
|
||||||
bitlbee.command_delay
|
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
|
||||||
bitlbee.autorejoin_delay
|
bitlbee.autorejoin_delay
|
||||||
bitlbee.connection_timeout
|
bitlbee.connection_timeout
|
||||||
|
@ -652,50 +664,6 @@ bitlbee.notify
|
||||||
bitlbee.split_msg_max_length
|
bitlbee.split_msg_max_length
|
||||||
bitlbee.charset_message
|
bitlbee.charset_message
|
||||||
bitlbee.default_chantypes
|
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.addresses = "irc.us.libera.chat/6697"
|
||||||
libera.proxy
|
libera.proxy
|
||||||
libera.ipv6
|
libera.ipv6
|
||||||
|
@ -769,7 +737,8 @@ ergo.local_hostname
|
||||||
ergo.usermode
|
ergo.usermode
|
||||||
ergo.command
|
ergo.command
|
||||||
ergo.command_delay
|
ergo.command_delay
|
||||||
ergo.autojoin = "#chat,#ergo"
|
ergo.autojoin = "#ergo"
|
||||||
|
ergo.autojoin_dynamic
|
||||||
ergo.autorejoin
|
ergo.autorejoin
|
||||||
ergo.autorejoin_delay
|
ergo.autorejoin_delay
|
||||||
ergo.connection_timeout
|
ergo.connection_timeout
|
||||||
|
@ -814,6 +783,7 @@ pisslocal.usermode
|
||||||
pisslocal.command = "/oper ben ${sec.data.pissnetoper}"
|
pisslocal.command = "/oper ben ${sec.data.pissnetoper}"
|
||||||
pisslocal.command_delay
|
pisslocal.command_delay
|
||||||
pisslocal.autojoin = "#opers,#pissnet,#services"
|
pisslocal.autojoin = "#opers,#pissnet,#services"
|
||||||
|
pisslocal.autojoin_dynamic
|
||||||
pisslocal.autorejoin
|
pisslocal.autorejoin
|
||||||
pisslocal.autorejoin_delay
|
pisslocal.autorejoin_delay
|
||||||
pisslocal.connection_timeout
|
pisslocal.connection_timeout
|
||||||
|
@ -828,3 +798,138 @@ pisslocal.notify
|
||||||
pisslocal.split_msg_max_length
|
pisslocal.split_msg_max_length
|
||||||
pisslocal.charset_message
|
pisslocal.charset_message
|
||||||
pisslocal.default_chantypes
|
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
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[var]
|
||||||
|
@ -57,7 +57,6 @@ python.apply_corrections.message_limit = "2"
|
||||||
python.apply_corrections.print_format = "[nick]: [corrected]"
|
python.apply_corrections.print_format = "[nick]: [corrected]"
|
||||||
python.apply_corrections.print_limit = "1"
|
python.apply_corrections.print_limit = "1"
|
||||||
python.autojoin.autosave = "off"
|
python.autojoin.autosave = "off"
|
||||||
python.autojoinem.sorted = "on"
|
|
||||||
python.autosavekey.add = "on"
|
python.autosavekey.add = "on"
|
||||||
python.autosavekey.mute = "off"
|
python.autosavekey.mute = "off"
|
||||||
python.autosavekey.secure = "on"
|
python.autosavekey.secure = "on"
|
||||||
|
@ -65,7 +64,7 @@ python.buffer_autoclose.age_limit = "30"
|
||||||
python.buffer_autoclose.ignore = "bitlbee.maddie"
|
python.buffer_autoclose.ignore = "bitlbee.maddie"
|
||||||
python.buffer_autoclose.interval = "1"
|
python.buffer_autoclose.interval = "1"
|
||||||
python.check_license = "off"
|
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.auto_jump = "off"
|
||||||
python.go.buffer_number = "on"
|
python.go.buffer_number = "on"
|
||||||
python.go.color_name = "black,cyan"
|
python.go.color_name = "black,cyan"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -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)
|
|
|
@ -1 +0,0 @@
|
||||||
../autojoinem.py
|
|
|
@ -0,0 +1 @@
|
||||||
|
../weestats.py
|
|
@ -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", "")
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
@ -30,7 +30,7 @@ allowed_ips = ""
|
||||||
auth_timeout = 60
|
auth_timeout = 60
|
||||||
bind_address = ""
|
bind_address = ""
|
||||||
clients_purge_delay = 0
|
clients_purge_delay = 0
|
||||||
compression_level = 6
|
compression = 20
|
||||||
ipv6 = on
|
ipv6 = on
|
||||||
max_clients = 5
|
max_clients = 5
|
||||||
nonce_size = 16
|
nonce_size = 16
|
||||||
|
@ -55,7 +55,6 @@ backlog_time_format = "[%H:%M] "
|
||||||
commands = ""
|
commands = ""
|
||||||
|
|
||||||
[port]
|
[port]
|
||||||
ipv4.irc = 6666
|
|
||||||
|
|
||||||
[path]
|
[path]
|
||||||
unix.weechat = "%h/relay_socket"
|
unix.weechat = "%h/relay_socket"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[color]
|
||||||
|
@ -19,7 +19,7 @@ suggestion_delimiter_word = cyan
|
||||||
commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
|
commands = "ame,amsg,away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic"
|
||||||
default_dict = "en"
|
default_dict = "en"
|
||||||
during_search = off
|
during_search = off
|
||||||
enabled = on
|
enabled = off
|
||||||
real_time = off
|
real_time = off
|
||||||
suggestions = 2
|
suggestions = 2
|
||||||
word_min_length = 2
|
word_min_length = 2
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
@ -25,22 +25,6 @@ trigger = green
|
||||||
trigger_disabled = red
|
trigger_disabled = red
|
||||||
|
|
||||||
[trigger]
|
[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.arguments = ""
|
||||||
beep.command = "/print -beep"
|
beep.command = "/print -beep"
|
||||||
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
|
beep.conditions = "${tg_highlight} || ${tg_msg_pv}"
|
||||||
|
@ -55,8 +39,16 @@ cmd_pass.conditions = ""
|
||||||
cmd_pass.enabled = on
|
cmd_pass.enabled = on
|
||||||
cmd_pass.hook = modifier
|
cmd_pass.hook = modifier
|
||||||
cmd_pass.post_action = none
|
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.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.arguments = "weechat_print"
|
||||||
greentext.command = ""
|
greentext.command = ""
|
||||||
greentext.conditions = "${tg_message_nocolor} =~ ^>[^:._]"
|
greentext.conditions = "${tg_message_nocolor} =~ ^>[^:._]"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[debug]
|
||||||
|
@ -243,7 +243,6 @@ proxy_curl = ""
|
||||||
|
|
||||||
[plugin]
|
[plugin]
|
||||||
autoload = "*"
|
autoload = "*"
|
||||||
debug = off
|
|
||||||
extension = ".so,.dll"
|
extension = ".so,.dll"
|
||||||
path = "%h/plugins"
|
path = "%h/plugins"
|
||||||
save_config_on_unload = on
|
save_config_on_unload = on
|
||||||
|
@ -371,6 +370,7 @@ default.window = "3;1;0;0;core;weechat"
|
||||||
default.current = on
|
default.current = on
|
||||||
|
|
||||||
[notify]
|
[notify]
|
||||||
|
irc.server.liberta.casa = highlight
|
||||||
irc.server.pisslocal = none
|
irc.server.pisslocal = none
|
||||||
irc.server.tilde = highlight
|
irc.server.tilde = highlight
|
||||||
perl.highmon = none
|
perl.highmon = none
|
||||||
|
@ -442,6 +442,7 @@ meta-< = "/input jump_previously_visited_buffer"
|
||||||
meta-= = "/filter toggle"
|
meta-= = "/filter toggle"
|
||||||
meta-> = "/input jump_next_visited_buffer"
|
meta-> = "/input jump_next_visited_buffer"
|
||||||
meta-B = "/buflist toggle"
|
meta-B = "/buflist toggle"
|
||||||
|
meta-C = "/buffer &SMS"
|
||||||
meta-J = "/buffer server.libera"
|
meta-J = "/buffer server.libera"
|
||||||
meta-N = "/bar toggle nicklist"
|
meta-N = "/bar toggle nicklist"
|
||||||
meta-OA = "/input history_global_previous"
|
meta-OA = "/input history_global_previous"
|
||||||
|
@ -512,6 +513,7 @@ meta2-[E = "/buffer -1"
|
||||||
meta-_ = "/input redo"
|
meta-_ = "/input redo"
|
||||||
meta-a = "/input jump_smart"
|
meta-a = "/input jump_smart"
|
||||||
meta-b = "/input move_previous_word"
|
meta-b = "/input move_previous_word"
|
||||||
|
meta-c = "/buffer &bitlbee"
|
||||||
meta-d = "/input delete_next_word"
|
meta-d = "/input delete_next_word"
|
||||||
meta-f = "/input move_next_word"
|
meta-f = "/input move_next_word"
|
||||||
meta-g = "/go"
|
meta-g = "/go"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# Use commands like /set or /fset to change settings in WeeChat.
|
# 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]
|
[look]
|
||||||
|
|
Loading…
Reference in New Issue