4425 lines
168 KiB
Plaintext
4425 lines
168 KiB
Plaintext
= Poradnik użytkownika WeeChat
|
||
:author: Sébastien Helleu
|
||
:email: flashcode@flashtux.org
|
||
:lang: pl
|
||
:toc: left
|
||
:toclevels: 4
|
||
:toc-title: Spis treści
|
||
:sectnums:
|
||
:sectnumlevels: 3
|
||
:docinfo1:
|
||
|
||
|
||
Tłumaczenie:
|
||
|
||
* Krzysztof Korościk <soltys1@gmail.com>, 2009-2016
|
||
|
||
|
||
Ten dokument opisuje klienta rozmów WeeChat, będącego częścią WeeChat.
|
||
|
||
Najnowsza wersja tego dokumentu dostępna jest na stronie:
|
||
https://weechat.org/doc
|
||
|
||
|
||
[[introduction]]
|
||
== Wprowadzenie
|
||
|
||
WeeChat (Wee Enhanced Environment for Chat) to darmowy klient rozmów, szybki
|
||
i lekki, przeznaczony dla wielu systemów operacyjnych.
|
||
|
||
[[features]]
|
||
=== Cechy
|
||
|
||
Główne cechy to:
|
||
|
||
* wsparcie dla wielu protokołów (mainly IRC)
|
||
* połączenie z wieloma serwerami (z SSL, IPv6, proxy)
|
||
* mały, szybki i lekki
|
||
* konfigurowalny i rozszerzalny dzięki wtyczką i skryptom
|
||
* zgodny z RFC dla IRC
|
||
https://tools.ietf.org/html/rfc1459[1459],
|
||
https://tools.ietf.org/html/rfc2810[2810],
|
||
https://tools.ietf.org/html/rfc2811[2811],
|
||
https://tools.ietf.org/html/rfc2812[2812] i
|
||
https://tools.ietf.org/html/rfc2813[2813]
|
||
* proxy IRC i pośrednik dla zdalnych interfejsów
|
||
* wielo-platformowy (GNU/Linux, *BSD, macOS, Windows i inne)
|
||
* 100% GPL, darmowe oprogramowanie
|
||
|
||
Strona domowa WeeChat: https://weechat.org/
|
||
|
||
[[prerequisites]]
|
||
=== Wymagania
|
||
|
||
Żeby zainstalować WeeChat, potrzebujesz:
|
||
|
||
* działający system GNU/Linux (z narzędziami kompilatora dla kompilacji ze
|
||
źródeł), lub kompatybilny system
|
||
* przywileje _roota_ (do instalacji w katalogu systemowym)
|
||
* niektóre biblioteki (zobacz <<dependencies,zależności>>).
|
||
|
||
[[install]]
|
||
== Instalacja
|
||
|
||
[[binary_packages]]
|
||
=== Pakiety binarne
|
||
|
||
Pakiety binarne dostępne są dla wielu dystrybucji, wliczając:
|
||
|
||
* Arch Linuxa: `pacman -S weechat`
|
||
* Cygwin (Windows): wybierz pakiet WeeChat w setup.exe
|
||
* Debiana/Ubuntu (lub dowolna kompatybilna):
|
||
`apt-get install weechat-curses weechat-plugins`
|
||
* Fedora Core: `dnf install weechat`
|
||
* Gentoo: `emerge weechat`
|
||
* Mandrive/RedHata (lub dowolna kompatybilna):
|
||
`rpm -i /path/to/weechat-x.y.z-1.i386.rpm`
|
||
* openSUSE: `zypper in weechat`
|
||
* Sourcemage: `cast weechat`
|
||
|
||
Niektóre dodatkowe pakiety mogą okazać się przydatne, jak weechat-plugins.
|
||
|
||
Dla innych dystrybucji, poszukaj w dokumentacji instrukcji na temat instalacji
|
||
pakietów.
|
||
|
||
[[source_package]]
|
||
=== Pakiety źródłowe
|
||
|
||
WeeChat może być kompilowany za pomocą CMake lub autotools (CMake jest zalecany).
|
||
|
||
[NOTE]
|
||
Na macOS możesz użyć https://brew.sh/[Homebrew]:
|
||
`brew install weechat` (pomoc można uzyskać za pomocą komendy: `brew info weechat`).
|
||
|
||
[[dependencies]]
|
||
==== Zależności
|
||
|
||
Poniższa tabela przedstawia pakiety wymagane i opcjonalne do skompilowania
|
||
WeeChat.
|
||
|
||
[width="100%",cols="6,^3,^3,.^13",options="header"]
|
||
|===
|
||
| Pakiet ^(1)^ | Wersja | Wymagany | Opis
|
||
| kompilator C
|
||
(gcc, clang, ...) | | *tak* | Kompilacja.
|
||
| kompilator C++ | | | Kompilacja i uruchamianie testów, wtyczka JavaScript.
|
||
| cmake | ≥ 3.0 | *tak* | Kompilacja (możliwe jest użycie autotools, jednak CMake jest zalecany).
|
||
| pkg-config | | *tak* | Wykrywa zainstalowane biblioteki.
|
||
| libncursesw5-dev ^(2)^ | | *tak* | Interfejs ncurses.
|
||
| libcurl4-gnutls-dev | | *tak* | Transfer URL.
|
||
| zlib1g-dev | | *tak* | Kompresja pakietów we wtyczce relay (protokół weechat), wtyczka script.
|
||
| libgcrypt20-dev | | *tak* | Zabezpieczone dane, uwierzytelnianie IRC SASL (DH-BLOWFISH/DH-AES).
|
||
| libgnutls28-dev | ≥ 2.2.0 ^(3)^ | *tak* | Połączenia SSL z serwerami IRC, wsparcie dla SSL we wtyczce relay, uwierzytelnianie IRC SASL (ECDSA-NIST256P-CHALLENGE).
|
||
| gettext | | | Internacjonalizacja (tłumaczenie wiadomości; język bazowy to Angielski).
|
||
| ca-certificates | | | Certyfikaty dla połączeń SSL.
|
||
| libaspell-dev
|
||
∥ libenchant-dev | | | Wtyczka spell.
|
||
| python3-dev | ^(4)^ | | Wtyczka python.
|
||
| libperl-dev | | | Wtyczka perl.
|
||
| ruby2.5, ruby2.5-dev | ≥ 1.9.1 | | Wtyczka ruby.
|
||
| liblua5.3-dev | | | Wtyczka lua.
|
||
| tcl-dev | ≥ 8.5 | | Wtyczka tcl.
|
||
| guile-2.0-dev | ≥ 2.0 | | Wtyczka guile (scheme).
|
||
| libv8-dev | ≤ 3.24.3 | | Wtyczka javascript.
|
||
| php-dev, libphp-embed | ≥ 7.0 | | Wtyczka PHP.
|
||
| libxml2-dev | | | Wtyczka PHP.
|
||
| libargon2-0-dev | | | Wtyczka PHP (jeśli PHP ≥ 7.2).
|
||
| libsodium-dev | | | Wtyczka PHP (jeśli PHP ≥ 7.2).
|
||
| asciidoctor | ≥ 1.5.4 | | Tworzenie strony man i dokumentacji.
|
||
| libcpputest-dev | ≥ 3.4 | | Kompilacja i uruchamianie testów.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Nazwy pochodzą z dystrybucji Debian GNU/Linux, wersje i nazwy pakietów
|
||
mogą być inne w innych dystrybucjach. +
|
||
^(2)^ Zaleca się kompilację z użyciem libncurses**w**5-dev (*w* jest istotne).
|
||
WeeChat można skompilowac używając libncurses5-dev, ale *NIE* jest to zalecane:
|
||
możesz doświadczyć błędów wyświetlania. +
|
||
^(3)^ GnuTLS ≥ 3.0.21 jest wymagany dla uwierzytelnienia IRC SASL za pomocą
|
||
mechanizmu ECDSA-NIST256P-CHALLENGE. +
|
||
^(4)^ Domyślnie używany jest Pythin 3.x. Chyba że włączysz opcję `ENABLE_PYTHON2` (zobacz
|
||
niżej), zaleca się uzywania wersji 2.7 Pythona.
|
||
|
||
Jeśli używasz dystrybujci bazującej na Debianie/Ubuntu, oraz jeśli posiadasz wpisy
|
||
"deb-src" w pliku _/etc/apt/sources.list_, możesz zainstalować wszytkie zależności
|
||
za pomocą jednej komendy:
|
||
|
||
----
|
||
# apt-get build-dep weechat
|
||
----
|
||
|
||
[[compile_with_cmake]]
|
||
==== Kompilacja z użyciem CMake
|
||
|
||
* Instalacja w katalogach systemowych (wymaga uprawnień użytkownika _root_):
|
||
|
||
----
|
||
$ mkdir build
|
||
$ cd build
|
||
$ cmake ..
|
||
$ make
|
||
$ sudo make install
|
||
----
|
||
|
||
* Instalacja w wybranym katalogu (na przykład w katalogu domowym):
|
||
|
||
----
|
||
$ mkdir build
|
||
$ cd build
|
||
$ cmake .. -DCMAKE_INSTALL_PREFIX=/ścieżka/do/katalogu
|
||
$ make
|
||
$ make install
|
||
----
|
||
|
||
Opcje mogą zostać przekazane do CMake, format "-DOPCJA=WARTOŚĆ".
|
||
|
||
Lista popularnych opcji:
|
||
|
||
[width="100%",cols="2m,2,5m,12",options="header"]
|
||
|===
|
||
| Opcja | Wartość | Wartość domyślna | Opis
|
||
|
||
| CMAKE_BUILD_TYPE | `Debug`, `Release`, `RelWithDebInfo`, `MinSizeRel` | |
|
||
Typ budowania pakietu: `Debug` (lub `RelWithDebInfo`) jest zalecany dla
|
||
wersjrozwojowej WeeChat.
|
||
|
||
| CMAKE_INSTALL_PREFIX | katalog | /usr/local |
|
||
Katalog, do którego zostanie zainstalowany WeeChat.
|
||
|
||
| WEECHAT_HOME | katalog | ~/.weechat |
|
||
Domyślny katalog domowy dla WeeChat.
|
||
|
||
| CA_FILE | plik | /etc/ssl/certs/ca-certificates.crt |
|
||
Plik zawierający urzędy certyfikacji.
|
||
Jest to domyślna wartość opcji
|
||
<<option_weechat.network.gnutls_ca_file,weechat.network.gnutls_ca_file>>.
|
||
|
||
| ENABLE_ALIAS | `ON`, `OFF` | ON |
|
||
Kompilacja <<alias_plugin,wtyczki alias>>.
|
||
|
||
| ENABLE_BUFLIST | `ON`, `OFF` | ON |
|
||
Kompilacja <<buflist_plugin,wtyczki buflist>>.
|
||
|
||
| ENABLE_CHARSET | `ON`, `OFF` | ON |
|
||
Kompilacja <<charset_plugin,wtyczki charset>>.
|
||
|
||
| ENABLE_MAN | `ON`, `OFF` | OFF |
|
||
Generowanie strony manuala.
|
||
|
||
| ENABLE_DOC | `ON`, `OFF` | OFF |
|
||
Generowanie dokumentacji HTML.
|
||
|
||
| ENABLE_ENCHANT | `ON`, `OFF` | OFF |
|
||
Kompilacja <<spell_plugin,wtyczki spell>> z Enchant.
|
||
|
||
| ENABLE_EXEC | `ON`, `OFF` | ON |
|
||
Kompilacja <<exec_plugin,wtyczki exec>>.
|
||
|
||
| ENABLE_FIFO | `ON`, `OFF` | ON |
|
||
Kompilacja <<fifo_plugin,wtyczki fifo>>.
|
||
|
||
| ENABLE_FSET | `ON`, `OFF` | ON |
|
||
Kompilacja <<fset_plugin,wtyczki fset>>.
|
||
|
||
| ENABLE_GUILE | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki guile>> (Scheme).
|
||
|
||
| ENABLE_IRC | `ON`, `OFF` | ON |
|
||
Kompilacja <<irc_plugin,wtyczki IRC>>.
|
||
|
||
| ENABLE_JAVASCRIPT | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki javascript>>.
|
||
|
||
| ENABLE_LARGEFILE | `ON`, `OFF` | ON |
|
||
Wsparcie dla dużych plików.
|
||
|
||
| ENABLE_LOGGER | `ON`, `OFF` | ON |
|
||
Kompilacja <<logger_plugin,wtyczki logger>>.
|
||
|
||
| ENABLE_LUA | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki lua>>.
|
||
|
||
| ENABLE_NCURSES | `ON`, `OFF` | ON |
|
||
Kompilacja interfejsu Ncurses.
|
||
|
||
| ENABLE_NLS | `ON`, `OFF` | ON |
|
||
Włączenie NLS (tłumaczenia).
|
||
|
||
| ENABLE_PERL | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki perl>>.
|
||
|
||
| ENABLE_PHP | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki PHP>>.
|
||
|
||
| ENABLE_PYTHON | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki Python>>.
|
||
|
||
| ENABLE_PYTHON2 | `ON`, `OFF` | OFF |
|
||
Kompilacja <<scripts_plugins,wtyczki Python>> z użyciem Pythona 2 zamiast Pythona 3.
|
||
|
||
| ENABLE_RELAY | `ON`, `OFF` | ON |
|
||
Kompilacja <<relay_plugin,wtyczki relay>>.
|
||
|
||
| ENABLE_RUBY | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki ruby>>.
|
||
|
||
| ENABLE_SCRIPT | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki script>>.
|
||
|
||
| ENABLE_SCRIPTS | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczek skryptowych>> (Python, Perl, Ruby, Lua,
|
||
Tcl, Guile, JavaScript, PHP).
|
||
|
||
| ENABLE_SPELL | `ON`, `OFF` | ON |
|
||
Kompilacja <<spell_plugin,wtyczki spell>>.
|
||
|
||
| ENABLE_TCL | `ON`, `OFF` | ON |
|
||
Kompilacja <<scripts_plugins,wtyczki tcl>>.
|
||
|
||
| ENABLE_TRIGGER | `ON`, `OFF` | ON |
|
||
Kompilacja <<trigger_plugin,wtyczki trigger>>.
|
||
|
||
| ENABLE_XFER | `ON`, `OFF` | ON |
|
||
Kompilacja <<xfer_plugin,wtyczki xfer>>.
|
||
|
||
| ENABLE_TESTS | `ON`, `OFF` | OFF |
|
||
Kompiluje testy.
|
||
|
||
| ENABLE_CODE_COVERAGE | `ON`, `OFF` | OFF |
|
||
Kompilacja z opcja pokrycia kodu. +
|
||
Ta opcja powinna być używana tylko dla testów, w celu pomiaru pokrycia kodu.
|
||
|===
|
||
|
||
Pozostałe opcje można wyświetlić poleceniem:
|
||
|
||
----
|
||
$ cmake -LA
|
||
----
|
||
|
||
Lub z interfejsem Curses:
|
||
|
||
----
|
||
$ ccmake ..
|
||
----
|
||
|
||
[[compile_with_autotools]]
|
||
==== Kompilacja z użyciem autotools
|
||
|
||
[WARNING]
|
||
Oficjalne wsparcie do budowania WeeChat posiada tylko CMake. Powinieneś używać
|
||
autotools tylko jeśli nie możesz użyć CMake. +
|
||
Budowanie z użyciem autotools wymaga więcej zależności i jest wolniejsze niż
|
||
z CMake.
|
||
|
||
* Instalacja w katalogach systemowych (wymaga uprawnień użytkownika _root_):
|
||
|
||
----
|
||
$ ./autogen.sh
|
||
$ mkdir build
|
||
$ cd build
|
||
$ ../configure
|
||
$ make
|
||
$ sudo make install
|
||
----
|
||
|
||
* Instalacja w wybranym katalogu (na przykład w katalogu domowym):
|
||
|
||
----
|
||
$ ./autogen.sh
|
||
$ mkdir build
|
||
$ cd build
|
||
$ ../configure --prefix=/ścieżka/do/katalogu
|
||
$ make
|
||
$ make install
|
||
----
|
||
|
||
Opcje mogą zostać przekazane to skryptu _configure_, można je wyświetlić
|
||
za pomocą tej komendy:
|
||
|
||
----
|
||
$ ./configure --help
|
||
----
|
||
|
||
[[run_tests]]
|
||
==== Uruchamianie testów
|
||
|
||
Następujące pakiety są *wymagane* do kompilacji testów:
|
||
|
||
* libcpputest-dev
|
||
* kompilator C++
|
||
|
||
Testy muszą być włączone podczas kompilacji WeeChat (z użyciem CMake):
|
||
|
||
----
|
||
$ cmake .. -DENABLE_TESTS=ON
|
||
----
|
||
|
||
Można je uruchomić po skompilowaniu z katalogu kompilacji (z użyciem CMake):
|
||
|
||
----
|
||
$ ctest -V
|
||
----
|
||
|
||
[[git_sources]]
|
||
=== Źródła z gita
|
||
|
||
Uwaga: źródła z gita przeznaczone są tylko dla zaawansowanych użytkowników:
|
||
mogą się nie kompilować lub być niestabilne. Zostałeś ostrzeżony!
|
||
|
||
W celu pobrania źródeł z gita, wykonaj poniższą komendę:
|
||
|
||
----
|
||
$ git clone https://github.com/weechat/weechat.git
|
||
----
|
||
|
||
Następnie postępuj zgodnie z instrukcjami dla pakietów źródłowych (zobacz
|
||
<<source_package,pakiety źródłowe>>).
|
||
|
||
[[report_crashes]]
|
||
=== Zgłaszanie awarii
|
||
|
||
Jeśli doświadczyłeś awarii, lub chcesz zgłosić przyszłą awarię WeeChat, należy:
|
||
|
||
* skompilować WeeChat z informacjami diagnostycznymi (lub zainstalować
|
||
odpowiedni pakiet)
|
||
* włączyć obsługę plików _core_ w systemie
|
||
* zainstalować gdb
|
||
|
||
[[debug_info]]
|
||
==== Informacje diagnostyczne
|
||
|
||
Jeśli kompilujesz z użyciem CMake:
|
||
|
||
----
|
||
$ cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||
----
|
||
|
||
Jeśli kompilujesz z użyciem autotools, debugowanie jest domyślnie włączone
|
||
(`--with-debug=1`).
|
||
|
||
Jeśli zainstalowałeś pakiet binarny, doinstaluj paczkę _weechat-dbg_.
|
||
|
||
[[core_files]]
|
||
==== CPliki core
|
||
|
||
W celu włączenia plików _core_ możesz użyć opcji
|
||
<<option_weechat.startup.sys_rlimit,weechat.startup.sys_rlimit>>:
|
||
|
||
----
|
||
/set weechat.startup.sys_rlimit "core:-1"
|
||
----
|
||
|
||
Dla WeeChat w wersji ≤ 0.3.8 albo jeśli chcesz włączyć obsługę plików core przed
|
||
startem WeeChat, możesz użyć komendy `ulimit`.
|
||
|
||
Na przykład pod Linuksem używając powłoki _bash_, dodaj to do pliku `~/.bashrc`:
|
||
|
||
----
|
||
ulimit -c unlimited
|
||
----
|
||
|
||
Lub z maksymalnym rozmiarem:
|
||
|
||
----
|
||
ulimit -c 200000
|
||
----
|
||
|
||
[[gdb_backtrace]]
|
||
==== Pozyskiwanie logów za pomocą gdb
|
||
|
||
Kiedy WeeChat ulegnie awarii, Twój system stworzy plik _core_ lub _core.12345_
|
||
(_12345_ to id procesu) jeśli <<core_files,zostało to włączone>>.
|
||
Plik ten zostanie utworzony w katalogu, z którego uruchomiono WeeChat (*nie*
|
||
jest to katalog, gdzie zainstalowano WeeChat!).
|
||
|
||
Na przykład jeśli _weechat_ jest zainstalowany w _/usr/bin/_ i plik _core_
|
||
znajduje się w _/home/xxx/_, uruchom gdb za pomocą tej komendy:
|
||
|
||
----
|
||
gdb /usr/bin/weechat /home/xxx/core
|
||
----
|
||
|
||
Następnie pod gdb użyj komendy `bt full`, aby wyświetlić log.
|
||
Zobaczysz coś podobnego do tego:
|
||
|
||
----
|
||
(gdb) set logging file /tmp/crash.txt
|
||
(gdb) set logging on
|
||
Copying output to /tmp/crash.txt.
|
||
(gdb) bt full
|
||
#0 0x00007f9dfb04a465 in raise () from /lib/libc.so.6
|
||
#1 0x00007f9dfb04b8e6 in abort () from /lib/libc.so.6
|
||
#2 0x0000000000437f66 in weechat_shutdown (return_code=1, crash=1)
|
||
at /some_path/src/core/weechat.c:351
|
||
#3 <signal handler called>
|
||
#4 0x000000000044cb24 in hook_process_timer_cb (arg_hook_process=0x254eb90,
|
||
remaining_calls=<value optimized out>) at /some_path/src/core/wee-hook.c:1364
|
||
hook_process = 0x254eb90
|
||
status = <value optimized out>
|
||
#5 0x000000000044cc7d in hook_timer_exec ()
|
||
at /some_path/src/core/wee-hook.c:1025
|
||
tv_time = {tv_sec = 1272693881, tv_usec = 212665}
|
||
ptr_hook = 0x2811f40
|
||
next_hook = 0x0
|
||
#6 0x000000000041b5b0 in gui_main_loop ()
|
||
at /some_path/src/gui/curses/gui-curses-main.c:319
|
||
hook_fd_keyboard = 0x173b600
|
||
tv_timeout = {tv_sec = 0, tv_usec = 0}
|
||
read_fds = {fds_bits = {0 <repeats 16 times>}}
|
||
write_fds = {fds_bits = {0 <repeats 16 times>}}
|
||
except_fds = {fds_bits = {0 <repeats 16 times>}}
|
||
max_fd = <value optimized out>
|
||
----
|
||
|
||
Musisz przekazać ten log developerom i powiedzieć im co spowodowało awarię.
|
||
|
||
Dziękujemy za pomoc!
|
||
|
||
[[debug_running_weechat]]
|
||
==== Debugowanie działającego WeeChat
|
||
|
||
W celu debugowania działającego WeeChat (na przykład kiedy WeeChat wydaje się
|
||
zawieszony), można użyć gdb podając in procesu (zastąp _12345_ numerem PID
|
||
procesu weechat):
|
||
|
||
----
|
||
gdb /usr/bin/weechat 12345
|
||
----
|
||
|
||
Następnie jak w przypadku awarii, użyj polecenia `bt full`:
|
||
|
||
----
|
||
(gdb) bt full
|
||
----
|
||
|
||
[[usage]]
|
||
== Używanie
|
||
|
||
[[running_weechat]]
|
||
=== Uruchamianie WeeChat
|
||
|
||
Żeby uruchomić WeeChat, wykonaj polecenie:
|
||
|
||
----
|
||
$ weechat
|
||
----
|
||
|
||
Podczas pierwszego uruchomienia WeeChat tworzone są domyślne pliki konfiguracyjne
|
||
w _~/.weechat_ z domyślnymi opcjami i wartościami
|
||
(zobacz <<files_and_directories,Pliki i foldery>>).
|
||
|
||
==== Argumenty linii poleceń
|
||
|
||
include::cmdline_options.pl.adoc[]
|
||
|
||
==== Dodatkowe opcje do debugowania
|
||
|
||
[WARNING]
|
||
Te opcje służą tylko do debugowania błędów, *NIE UŻYWAĆ NA PRODUKCJI!*
|
||
|
||
include::cmdline_options_debug.pl.adoc[]
|
||
|
||
[[environment_variables]]
|
||
=== Zmienne środowiskowe
|
||
|
||
Niektóre zmienne śwodowiskowe są używane przez WeeChat o ile zostały zdefiniowane:
|
||
|
||
[width="100%",cols="1m,6",options="header"]
|
||
|===
|
||
| Nazwa | Opis
|
||
| WEECHAT_HOME | Katalog domowy WeeChat (z plikami konfiguracyjnymi, logami, skryptami, ...).
|
||
| WEECHAT_PASSPHRASE | Hasło używane do odszyfrowania zabezpieczonych danych.
|
||
| WEECHAT_EXTRA_LIBDIR | Dodatkowy katalog do ładowania wtyczek (z katalogu "plugins" znajdującego się pod tą ścieżką).
|
||
|===
|
||
|
||
[[files_and_directories]]
|
||
=== Pliki i foldery
|
||
|
||
WeeChat zapisuje pliki konfiguracyjne i inne rzeczy domyślnie w folderze `~/.weechat`.
|
||
|
||
[[weechat_directories]]
|
||
==== Katalogi WeeChat
|
||
|
||
Katalogi używane przez WeeChat to:
|
||
|
||
[width="100%",cols="1m,3",options="header"]
|
||
|===
|
||
| Ścieżka/plik | Opis
|
||
| ~/.weechat/ | Katalog domowy WeeChat (można go zmienić, zobacz <<running_weechat,Uruchamianie WeeChat>>).
|
||
| logs/ | Pliki z logami (jeden na bufor).
|
||
| python/ | Skrypty pythonowe.
|
||
| autoload/ | Skrypty pythonowe automatycznie ładowane przy starcie ^(1)^.
|
||
| perl/ | Skrypty perlowe.
|
||
| autoload/ | Skrypty perlowe automatycznie ładowane przy starcie ^(1)^.
|
||
| ruby/ | Skrypty ruby.
|
||
| autoload/ | Skrypty ruby automatycznie ładowane przy starcie ^(1)^.
|
||
| lua/ | Skrypty lua.
|
||
| autoload/ | Skrypty lua automatycznie ładowane przy starcie ^(1)^.
|
||
| tcl/ | Skrypty tcl.
|
||
| autoload/ | Skrypty tcl automatycznie ładowane przy starcie ^(1)^.
|
||
| guile/ | Skrypty guile.
|
||
| autoload/ | skrypry guile automatycznie ładowane przy starcie ^(1)^.
|
||
| javascript/ | Skrypty JavaScript.
|
||
| autoload/ | Skrypty JavaScript automatycznie ładowane przy starcie ^(1)^.
|
||
| php/ | Skrypty PHP.
|
||
| autoload/ | Skrypty PHP automatycznie ładowane przy starcie ^(1)^.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Ten folder zawiera przewazine linki symboliczne do plików w folderze nadrzędnym.
|
||
|
||
[[weechat_files]]
|
||
==== Pliki WeeChat
|
||
|
||
Pliki tworzone w katalogu domowym WeeChat:
|
||
|
||
[width="100%",cols="1m,3,6",options="header"]
|
||
|===
|
||
| Plik | Opis | Wrażliwe dane
|
||
| weechat.conf | Główny plik konfiguracyjny WeeChat | Możliwe (przykład: lista kanałów w zapisanym układzie buforów).
|
||
| sec.conf | Plik konfiguracyjny z zabezpieczonymi danymi | *Tak, bardzo wrażliwe*: Tym plikiem nie powinno się z nikim dzielić.
|
||
| plugins.conf | Plik konfiguracyjny wtyczek | Możliwe, zależy od wtyczki/skryptu.
|
||
| alias.conf | Plik konfiguracyjny wtyczki _alias_ | Możliwe, zależy od aliasu.
|
||
| buflist.conf | Plik konfiguracyjny wtyczki _buflist_ | Nie.
|
||
| charset.conf | Plik konfiguracyjny wtyczki _charset_ | Nie.
|
||
| exec.conf | Plik konfiguracyjny wtyczki _exec_ | Nie.
|
||
| fifo.conf | Plik konfiguracyjny wtyczki _fifo_ | Nie.
|
||
| fset.conf | Plik konfiguracyjny wtyczki _fset_ | Nie.
|
||
| guile.conf | Plik konfiguracyjny wtyczki _guile_ | Nie.
|
||
| irc.conf | Plik konfiguracyjny wtyczki _irc_ | *Tak*: Może zawierać hasła dla serwerów, nickserva i kanałów (jeśli nie zostały zapisane w `sec.conf`).
|
||
| javascript.conf | Plik konfiguracyjny wtyczki _javascript_ | Nie.
|
||
| logger.conf | Plik konfiguracyjny wtyczki _logger_ | Nie.
|
||
| lua.conf | Plik konfiguracyjny wtyczki _lua_ | Nie.
|
||
| perl.conf | Plik konfiguracyjny wtyczki _perl_ | Nie.
|
||
| php.conf | Plik konfiguracyjny wtyczki _php_ | Nie.
|
||
| python.conf | Plik konfiguracyjny wtyczki _python_ | Nie.
|
||
| relay.conf | Plik konfiguracyjny wtyczki _relay_ | Nie.
|
||
| ruby.conf | Plik konfiguracyjny wtyczki _ruby_ | Nie.
|
||
| script.conf | Plik konfiguracyjny wtyczki _script_ | Nie.
|
||
| spell.conf | Plik konfiguracyjny wtyczki _spell_ | Nie.
|
||
| tcl.conf | Plik konfiguracyjny wtyczki _tcl_ | Nie.
|
||
| trigger.conf | Plik konfiguracyjny wtyczki _trigger_ | Możliwe, zależy od triggerów.
|
||
| xfer.conf | Plik konfiguracyjny wtyczki _xfer_ | Nie.
|
||
| weechat.log | Plik z logami WeeChat | Nie.
|
||
|===
|
||
|
||
[IMPORTANT]
|
||
*Nie zaleca się* edytowania plików konfiguracyjnych ręcznie, ponieważ WeeChat
|
||
może je nadpisać w dowolnym momencie (na przykład poprzez komende <<command_weechat_quit,/quit>>)
|
||
oraz po wprowadzeniu ręcznie zmian należy użyć komendy <<command_weechat_reload,/reload>>
|
||
(ryzykując utratę zmian, nie zapisanych za pomocą komendy <<command_weechat_save,/save>>). +
|
||
Możesz użyć komendy <<command_weechat_set,/set>>, która sprawdza ustawianą wartość
|
||
i od razu wprowadza zmiany.
|
||
|
||
[[screen_layout]]
|
||
=== Układ ekranu
|
||
|
||
Przykład terminala z WeeChat:
|
||
|
||
....
|
||
▼ bar "buflist" ▼ bar "title"
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #test, this is a test channel │
|
||
│ weechat │12:52:27 --> | Flashy (flashcode@weechat.org) has joined #test │@Flashy│
|
||
│2. #test │12:52:27 -- | Nicks #test: [@Flashy @joe +weebot peter] │@joe │
|
||
│3. #abc │12:52:27 -- | Channel #test: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
|
||
│4. #def │12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
|
||
│5. #ghi │12:54:15 peter | hey! │ │
|
||
│ │12:55:01 @joe | hello │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 2:#test(+n){4}* [Act: 3:#abc(2,5), 5] │
|
||
│ │[@Flashy(i)] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ bars "status" and "input" bar "nicklist" ▲
|
||
....
|
||
|
||
Ekran składa się z następujących obszarów:
|
||
|
||
* obszar rozmowy (środek ekranu) z liniami rozmowy, zawierającymi:
|
||
** czas
|
||
** prefiks (przed "|")
|
||
** wiadomość (za "|")
|
||
* paski dookoła obszaru rozmowy, domyślne paski to:
|
||
** pasek _buflist_, po lewej
|
||
** pasek _title_, nad obszarem rozmowy
|
||
** pasek _status_, pod obszarem rozmowy
|
||
** pasek _input_, pod paskiem statusu
|
||
** pasek _nicklist_, po prawej
|
||
|
||
Pasek _buflist_ posiada następujące domyślne elementy:
|
||
|
||
[width="100%",cols="^3,^4,10",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| buflist | `1.weechat` | Lista buforów.
|
||
|===
|
||
|
||
Pasek _title_ posiada następujące domyślne elementy:
|
||
|
||
[width="100%",cols="^3,^4,10",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| buffer_title | `Witaj na #test` | Tytuł buforu.
|
||
|===
|
||
|
||
Pasek _status_ posiada następujące domyślne elementy:
|
||
|
||
[width="100%",cols="^3,^4,10",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| time | `[12:55]` | Czas.
|
||
| buffer_last_number | `[5]` | Numer ostatniego buforu na liście.
|
||
| buffer_plugin | `[irc/freenode]` | Wtyczka dla obecnego bufora (wtyczka irc może dodać nazwę serwera IRC używanego przez bufor).
|
||
| buffer_number | `2` | Numer obecnego buforu.
|
||
| buffer_name | `#test` | Nazwa obecnego buforu.
|
||
| buffer_modes | `+n` | Tryby kanału IRC.
|
||
| buffer_nicklist_count | `{4}` | Ilość nicków na liście nicków.
|
||
| buffer_zoom | ! | `!` oznacza, że połączony bufor jest przybliżony (tylko ten jest wyświetlany), pusta wartość oznacza, że wszystkie połączone bufory są wyświetlane.
|
||
| buffer_filter | `+*+` | Wskaźnik filtrowania: `+*+` oznacza, że niektóre linie zostały odfiltrowywane (ukryte), pusta wartość oznacza, że wszystkie linie są wyświetlane.
|
||
| scroll | `-Więcej(50)-` | Wskaźnik przewijania, z numerem linii poniżej ostatniej wyświetlanej.
|
||
| lag | `[Lag: 2.5]` | Wskaźnik opóźnienia, w sekundach (ukryty dla niskich opóźnień).
|
||
| hotlist | `[Act: 3:#abc(2,5), 5]` | Lista buforów z aktywnością (nieprzeczytane wiadomości) (w przykładzie, 2 podświetlenia i 5 nieprzeczytanych wiadomości w _#abc_, jedna wiadomość w buforze #5).
|
||
| completion | `abc(2) def(5)` | Lista słów do dopełnienia, z ilością możliwych dopełnień dla każdego słowa.
|
||
|===
|
||
|
||
Pasek _input_ posiada następujące domyślne elementy:
|
||
|
||
[width="100%",cols="^3,^4,10",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| input_prompt | `[@Flashy(i)]` | Input prompt, dla irc: nick i tryby (tryb "+i" oznacza niewidzialny na freenode).
|
||
| away | `(away)` | Wskaźnik nieobecności.
|
||
| input_search | `[Szukam (~ str,msg)]` | Wskaźnik wyszukiwania ("`~`": wielkość liter ma znaczenie, "`==`": wielkość liter nie ma znaczenia, "`str`": wyszukiwanie ciągu, "`regex`": wyszukiwanie wyrażenia regularnego, "`msg`": wyszukiwanie w wiadomościach, "`pre`": wyszukiwanie w prefiksach, "`pre\|msg`": wyszukiwanie w prefiksach i wiadomościach).
|
||
| input_paste | `[Wkleić 7 linii ? [ctrl-Y] Tak [ctrl-N] Nie]` | Pyta użytkownika podczas wklejania kilku linii tekstu.
|
||
| input_text | `hi peter!` | Wprowadzony tekst.
|
||
|===
|
||
|
||
Pasek _nicklist_ posiada następujące domyślne elementy:
|
||
|
||
[width="100%",cols="^3,^4,10",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| buffer_nicklist | `@Flashy` | Lita nicków w obecnym buforze.
|
||
|===
|
||
|
||
Inne dostępne elementy (nie używane domyślnie w paskach):
|
||
|
||
[width="100%",cols="^3,^4,10",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| spell_dict | `fr,en` | Słowniki używane w obecnym buforze.
|
||
| spell_suggest | `print,prone,prune` | Sugestie dla słowa pod kursorem (jeśli zawiera błąd).
|
||
| buffer_count | `10` | Liczba otwartych buforów.
|
||
| buffer_short_name | `#test` | Skrócona nazwa obecnego buforu.
|
||
| irc_channel | `#test` | Nazwa bieżącego kanału IRC.
|
||
| irc_nick_modes | `@` | Atrybuty IRC dla własnego nicka.
|
||
| mouse_status | `M` | Status obsługi myszy (pusty jeśli obsługa myszy jest wyłączona).
|
||
| window_number | `2` | Numer obecnego okna.
|
||
|===
|
||
|
||
[[command_line]]
|
||
=== Linia poleceń
|
||
|
||
Linia poleceń WeeChat (na dole okna) pozwala na wykonywanie komend lub wysłanie
|
||
tekstu do bufora.
|
||
|
||
[[command_line_syntax]]
|
||
==== Składnia
|
||
|
||
Komendy zaczynają się od znaku "/", następnie wpisujemy komendę. Na przykład,
|
||
aby zobaczyć listę wszystkich opcji:
|
||
|
||
----
|
||
/set
|
||
----
|
||
|
||
Tekst wysłany do buforu to dowolny tekst, który nie zaczyna się od znaku "/".
|
||
Na przykład, żeby wysłać tekst _hello_ do obecnego buforu wystarczy:
|
||
|
||
----
|
||
hello
|
||
----
|
||
|
||
Jednak możliwe jest rozpoczęcie tekstu znakiem "/", wpisując go podwójnie.
|
||
Na przykład, żeby wysłać tekst `/set` do obecnego buforu:
|
||
|
||
----
|
||
//set
|
||
----
|
||
|
||
[[command_line_colors]]
|
||
==== Kody kolorów
|
||
|
||
Dla niektórych wtyczek jak IRC, można użyć kolorów i atrybutów w następujący sposób
|
||
(wciśnij kbd:[Ctrl+c] następnie literę z opcjonalną wartością):
|
||
|
||
[width="60%",cols="3,5",options="header"]
|
||
|===
|
||
| Klawisz | Opis
|
||
| kbd:[Ctrl+c], kbd:[b] | pogrubiony tekst
|
||
| kbd:[Ctrl+c], kbd:[c],
|
||
kbd:[xx] | kolor tekstu `xx` (zgodnie z poniższą listą kolorów)
|
||
| kbd:[Ctrl+c], kbd:[c],
|
||
kbd:[xx], kbd:[,],
|
||
kbd:[yy] | kolor tekstu `xx` i tła `yy` (zgodnie z poniższą listą kolorów)
|
||
| kbd:[Ctrl+c], kbd:[i] | pochyły tekst
|
||
| kbd:[Ctrl+c], kbd:[o] | wyłącza kolory i atrybuty
|
||
| kbd:[Ctrl+c], kbd:[v] | odwróć video (przywraca kolor tekstu i tła)
|
||
| kbd:[Ctrl+c], kbd:[_] | podkreślony tekst
|
||
|===
|
||
|
||
[NOTE]
|
||
Ten sam sktót (bez numeru dla kbd:[Ctrl+c], kbd:[c]) może zostać użyty do zatrzymania
|
||
atrybutu.
|
||
|
||
Kody kolorów dla kbd:[Ctrl+c], kbd:[c]:
|
||
|
||
include::autogen/user/irc_colors.adoc[]
|
||
|
||
[NOTE]
|
||
W celu wyświetlenia wszystkich dostępnych kolorów dla terminala możesz wykonać
|
||
komendę `/color` następnie kbd:[Alt+c] (w WeeChat) lub wywołać w terminalu:
|
||
`weechat --colors`.
|
||
|
||
Przykład: wyświetlenie "hello Alice!" z pogrubionym jasno niebieskim "hello"
|
||
i podkreślonym jasno czerwonym "Alice":
|
||
|
||
----
|
||
^Cc12^Cbhello ^Cb^Cc04^C_Alice^C_^Cc!
|
||
----
|
||
|
||
Skróty klawiszowe:
|
||
|
||
kbd:[Ctrl+c] kbd:[c] kbd:[1] kbd:[2] kbd:[Ctrl+c] kbd:[b] +
|
||
kbd:[h] kbd:[e] kbd:[l] kbd:[l] kbd:[o] kbd:[Space] +
|
||
kbd:[Ctrl+c] kbd:[b] kbd:[Ctrl+c] kbd:[c] kbd:[0] kbd:[4] kbd:[Ctrl+c] kbd:[pass:[_]] +
|
||
kbd:[A] kbd:[l] kbd:[i] kbd:[c] kbd:[e] +
|
||
kbd:[Ctrl+c] kbd:[pass:[_]] kbd:[Ctrl+c] kbd:[c] +
|
||
kbd:[!]
|
||
|
||
[NOTE]
|
||
We wtyczce irc, można zmienić przypisania tych kolorów za pomocą opcji
|
||
<<option_irc.color.mirc_remap,irc.color.mirc_remap>>.
|
||
|
||
[[colors]]
|
||
=== Kolory
|
||
|
||
WeeChat może użyć do 32767 par kolorów do wyświetlania tekstu w paskach i obszarze
|
||
rozmów (twój terminal musi wspierać do 256 par kolorów, aby użyć ich w WeeChat).
|
||
|
||
Zgodnie z wartością zmiennej środowiskowej _TERM_, możesz posiadać następujące
|
||
limity dla kolorów w WeeChat:
|
||
|
||
[width="50%",cols="8,>2,>2",options="header"]
|
||
|===
|
||
| $TERM | Kolory | Pary
|
||
| "rxvt-unicode", "xterm", ... | 88 | 32767
|
||
| "rxvt-256color", "xterm-256color", ... | 256 | 32767
|
||
| "screen" | 8 | 64
|
||
| "screen-256color" | 256 | 32767
|
||
| "tmux" | 8 | 64
|
||
| "tmux-256color" | 256 | 32767
|
||
|===
|
||
|
||
Możesz wykonać `weechat --colors` lub użyć komendy `/color` w WeeChat, aby
|
||
wyświetlić limity dla twojego środowiska.
|
||
|
||
Niektóre z zalecanych wartości dla _TERM_ jeśli chcesz używać 256 kolorów:
|
||
|
||
* dla screena: _screen-256color_
|
||
* pod tmux: _screen-256color_ lub _tmux-256color_
|
||
* poza screenem/tmuxem: _xterm-256color_, _rxvt-256color_, _putty-256color_, ...
|
||
|
||
[NOTE]
|
||
Być może konieczne jest zainstalowanie pakietu "ncurses-term", w celu użycia
|
||
tych wartości dla zmiennej _TERM_.
|
||
|
||
Jeśli używasz screena, możesz dodać to do swojego _~/.screenrc_:
|
||
|
||
----
|
||
term screen-256color
|
||
----
|
||
|
||
Jeśli wartość zmiennej _TERM_ ma złą wartość, a WeeChat jest już uruchomiony,
|
||
możesz ją zmienić za pomocą tych dwóch komend:
|
||
|
||
----
|
||
/set env TERM screen-256color
|
||
/upgrade
|
||
----
|
||
|
||
[[colors_basic]]
|
||
==== Podstawowe kolory
|
||
|
||
Podstawowe kolory w WeeChat to:
|
||
|
||
[width="50%",cols="1m,4",options="header"]
|
||
|===
|
||
| Nazwa | Kolor
|
||
| default | Domyślny kolor terminala (przezroczysty dla tła)
|
||
| black | Czarny
|
||
| darkgray | Ciemny szary
|
||
| red | Ciemny czerwony
|
||
| lightred | Jasny czerwony
|
||
| green | Ciemny zielony
|
||
| lightgreen | Jasny zielony
|
||
| brown | Brązowy
|
||
| yellow | Żółty
|
||
| blue | Ciemny niebieski
|
||
| lightblue | Jasny niebieski
|
||
| magenta | Ciemny karmazynowy
|
||
| lightmagenta | Jasny karmazynowy
|
||
| cyan | Ciemny błękitny
|
||
| lightcyan | Jasny błękitny
|
||
| gray | Szary
|
||
| white | Biały
|
||
|===
|
||
|
||
[[colors_extended]]
|
||
==== Rozszerzone kolory
|
||
|
||
WeeChat dynamicznie alokuje pary kolorów, kiedy kolory są używane na ekranie (do
|
||
wyświetlania buforów i pasków).
|
||
|
||
W dodatku do podstawowych kolorów, możesz użyć numer koloru pomiędzy 1 a limitem
|
||
twojego terminala.
|
||
|
||
Użyj komendy `/color`, aby zobaczyć obecne kolory i limity. Za pomocą kbd:[Alt+c]
|
||
możesz tymczasowo przełączyć się na kolory terminala, żeby wybrać kolor.
|
||
|
||
Na przykład jeśli chcesz wyświetlać czas na pomarańczowo w buforze:
|
||
|
||
----
|
||
/set weechat.color.chat_time 214
|
||
----
|
||
|
||
Lub jeśli chcesz mocno ciemno zielonego tła dla pasku statusu:
|
||
|
||
----
|
||
/set weechat.bar.status.color_bg 22
|
||
----
|
||
|
||
[[colors_aliases]]
|
||
==== Aliasy
|
||
|
||
Możesz dodać aliasy do kolorów za pomocą komendy `/color alias` i używać ich w
|
||
dowolnej opcji jako koloru.
|
||
|
||
Na przykład:
|
||
|
||
----
|
||
/color alias 214 orange
|
||
/set weechat.color.chat_delimiters orange
|
||
----
|
||
|
||
[[colors_attributes]]
|
||
==== Atrybuty
|
||
|
||
Możliwe jest użycie niektórych atrybutów dla kolorów. Jeden lub więcej z nich
|
||
może zostać użyty przed nazwą lub numerem koloru:
|
||
|
||
* `+*+` : pogrubiony tekst
|
||
* `+!+` : odwrócenie video
|
||
* `+/+` : pochyły
|
||
* `+_+` : podkreślony tekst
|
||
* `+|+` : zachowaj atrybuty: nie resetuj pogrubienia/odwrócenia/pochylenia/podkreślenia,
|
||
podczas zmiany koloru
|
||
|
||
Na przykład jeśli chcesz, żeby twój nick był biały i podkreślony:
|
||
|
||
----
|
||
/set weechat.color.chat_nick_self _white
|
||
----
|
||
|
||
Lub jeśli chcesz, żeby czas w pasku statusu był pomarańczowy, podkreślony i
|
||
pogrubiony:
|
||
|
||
----
|
||
/set weechat.color.status_time *_214
|
||
----
|
||
|
||
Aby użyć atrybutu z domyślnym kolorem terminala (-1), należy użyć numeru większego
|
||
od ostatniego koloru terminala, na przykład maksymalny kolor w WeeChat: 99999.
|
||
|
||
Przykład pogrubienia z domyślnym kolorem terminala:
|
||
|
||
----
|
||
/set weechat.color.status_time *99999
|
||
----
|
||
|
||
[[buffers_and_windows]]
|
||
=== Bufory i okna
|
||
|
||
_Bufor_ posiada numer, nazwę, wyświetlane linie (i trochę innych danych).
|
||
|
||
Przykłady buforów:
|
||
|
||
* główny bufor (tworzony po uruchomieniu WeeChat, nie może zostać zamknięty)
|
||
* serwer irc (wyświetla informacje z serwera)
|
||
* kanał irc
|
||
* prywatna rozmowa irc
|
||
|
||
_Okno_ to obszar ekranu, w którym wyświetlane są bufory. Nie jest możliwe
|
||
podzielenie ekranu na kilka okien.
|
||
|
||
Każde okno wyświetla jeden bufor. Bufor może zostać ukryty (nie wyświetlany w
|
||
oknie) lub wyświetlany w jednym lub więcej oknach.
|
||
|
||
Przykład podziału poziomego (`/window splith`):
|
||
|
||
....
|
||
▼ window #2 (buffer #4)
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #def │
|
||
│ weechat │12:55:12 Max | hi │@Flashy│
|
||
│2. #test │12:55:20 @Flashy | hi Max! │Max │
|
||
│3. #abc │ │ │
|
||
│4. #def │ │ │
|
||
│5. #ghi │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 4:#def(+n){2} │
|
||
│ │[@Flashy] │
|
||
│ │───────────────────────────────────────────────────────────────────────────│
|
||
│ │Welcome to #abc │
|
||
│ │12:54:15 peter | hey! │@Flashy│
|
||
│ │12:55:01 @joe | hello │@joe │
|
||
│ │ │+weebot│
|
||
│ │ │peter │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n){4} │
|
||
│ │[@Flashy] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3)
|
||
....
|
||
|
||
Przykład podziału pionowego (`/window splitv`):
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #abc │Welcome to #def │
|
||
│ weechat │12:54:15 peter | hey! │@Flashy│12:55:12 Max | hi │@Flashy│
|
||
│2. #test │12:55:01 @joe | hello │@joe │12:55:20 @Flashy | hi Max! │Max │
|
||
│3. #abc │ │+weebot│ │ │
|
||
│4. #def │ │peter │ │ │
|
||
│5. #ghi │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n)│[12:55] [5] [irc/freenode] 4:#def(+n)│
|
||
│ │[@Flashy] hi peter!█ │[@Flashy] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
||
....
|
||
|
||
Przykład podziałów pionowego i poziomego:
|
||
|
||
....
|
||
▼ window #3 (buffer #5)
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #abc │Welcome to #ghi │
|
||
│ weechat │12:54:15 peter | hey! │@Flashy│12:55:42 @Flashy | hi │@Flashy│
|
||
│2. #test │12:55:01 @joe | hello │@joe │12:55:56 alex | hi Flashy │alex │
|
||
│3. #abc │ │+weebot│ │ │
|
||
│4. #def │ │peter │ │ │
|
||
│5. #ghi │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │[12:55] [5] [irc/freenode] 5:#ghi(+n)│
|
||
│ │ │ │[@Flashy] │
|
||
│ │ │ │─────────────────────────────────────│
|
||
│ │ │ │Welcome to #def │
|
||
│ │ │ │12:55:12 Max | hi │@Flashy│
|
||
│ │ │ │12:55:20 @Flashy | hi Max! │Max │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n)│[12:55] [5] [irc/freenode] 4:#def(+n)│
|
||
│ │[@Flashy] hi peter!█ │[@Flashy] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
||
....
|
||
|
||
[[buffers_lines]]
|
||
=== Linie buforów
|
||
|
||
[[lines_format]]
|
||
==== Format linii
|
||
|
||
Linie wyświetlane w formatowanych buforach maja następujące pola:
|
||
|
||
[width="100%",cols="2,2,10",options="header"]
|
||
|===
|
||
| Pole | Wyświetlane | Opis
|
||
| data/czas (wiadomość) | Tak | Data/czas wiadomości (może być przeszła).
|
||
| data/czas (wywietlenie) | Nie | Data/time, kiedy WeeChat wyświetlił wiadomość.
|
||
| prefiks | Tak | Prefiks wiadomości, zazwyczaj nick.
|
||
| wiadomość | Tak | Wiadomość.
|
||
| wyświetlone | Nie | Boolean: true jeśli linia została wyświetlona, false jeśli linia została odfiltrowana komendą <<command_weechat_filter,/filter>>.
|
||
| podświetlenie | Nie | Boolean: true jeśli linia ma podświetlenie, false w przeciwnym wypadku.
|
||
| tagi | Przez `/debug tags` | Tagi powiązane z linią (zobacz <<lines_tags,lines tags>>).
|
||
|===
|
||
|
||
Wyświetlanie linni może być zmienione za pomoćą wielu opcji wyglądu
|
||
(_pass:[weechat.look.*]_) oraz koloru (_pass:[weechat.color.chat_*]_).
|
||
|
||
[[lines_tags]]
|
||
==== Tagi linii
|
||
|
||
WeeChat używa tagów w liniach dla różnych celów:
|
||
|
||
* podświetleń
|
||
* poziomu powiadomień
|
||
* logowaia
|
||
* użycia komendy <<command_weechat_filter,/filter>>
|
||
|
||
Tagi można wyświetlić używając komendy `/debug tags` (tą samą komendą można je ukryć).
|
||
|
||
Popularnie używane tagi (niepełna lista):
|
||
|
||
[width="70%",cols="1m,4",options="header"]
|
||
|===
|
||
| Tag | Opis
|
||
| no_filter | Linia nie może być filtrowana.
|
||
| no_highlight | Podświetlenia nie są dozwolone w tej linii.
|
||
| no_log | Linia nie jest zapisywana w logu.
|
||
| log0 ... log9 | Poziom logowania dla linii (zobacz `/help logger`).
|
||
| notify_none | Bufor z linią nie dodana do hotlisty.
|
||
| notify_message | Bufor z linia dodaną do hotlisty z poziomem "message".
|
||
| notify_private | Bufor z linia dodaną do hotlisty z poziomem "private".
|
||
| notify_highlight | Bufor z linia dodaną do hotlisty z poziomem "highlight".
|
||
| self_msg | Własna wiadomość.
|
||
| nick_xxx | Wiadomość od nicku "xxx".
|
||
| prefix_nick_ccc | Prefiks to nick o kolorze "ccc".
|
||
| host_xxx | Nazwa użytkowniak i host w wiadomości.
|
||
| irc_xxx | Wiadomość IRC "xxx" (komenda, albo 3 cyfrowy numer).
|
||
| irc_numeric | Wiadomość numeryczna IRC.
|
||
| irc_error | Błąd od erwera IRC.
|
||
| irc_action | Akcja nicka (komenda `/me`).
|
||
| irc_ctcp | Wiadomość CTCP.
|
||
| irc_ctcp_reply | Odpowiedź na wiadomość CTCP.
|
||
| irc_smart_filter | Wiadomość IRC, która może być filtrowana przez "inteligentny filtr".
|
||
| away_info | Wiadomość z powodem nieobecności.
|
||
|===
|
||
|
||
[[bars]]
|
||
=== Paski
|
||
|
||
_Pasek_ to obszar poza rozmową, mogący zawierać dowolny rodzaj tekstu.
|
||
|
||
Opcje paska mogą być ustawiane za pomocą opcji `weechat.bar.nazwa.opcja`,
|
||
gdzie `nazwa` to nazwa paska i `opcja` to opcja dla tego paska.
|
||
|
||
Lista opcji dla pasków:
|
||
|
||
[width="100%",cols="2m,2,10",options="header"]
|
||
|===
|
||
| Opcja | Wartości | Opis
|
||
|
||
| type | `root`, `window` |
|
||
Pasek z typem `root` jest wyświetlany dokładnie jeden raz na ekranie, poza
|
||
wszystkimi oknami. Domyślny pasek _buflist_ ma typ `root`. +
|
||
Pasek z typem `window` wyświetlany jest w każdym oknie, na przykład jeśli
|
||
podzielisz jednorazowo ekran (używając `/window splith` lun `/window splitv`)
|
||
otrzymasz po jednym pasku w każdym oknie. Domyślnie paski _title_, _status_,
|
||
_input_ i _nicklist_ mają typ `window`.
|
||
|
||
| position | `top`, `bottom`, `left`, `right` |
|
||
Pozycja paska: powyżej/poniżej ekranu rozmowy, po jego lewej/prawej stronie.
|
||
|
||
| priority | integer ≥ 0 |
|
||
Priorytet wyświetlania paska: jest on używany do uporządkowania pasków na
|
||
ekranie, kiedy więcej niż jeden pasek posiada ten sam typ i położenie. +
|
||
Paski są wyświetlane od brzegu do środka ekranu. Paski z wyższym priorytetem
|
||
zostaną wyświetlone na początku, czyli bliżej krawędzi. +
|
||
Przykład: pasek _input_ ma priorytet 1000, dlatego jest wyświetlany przed
|
||
paskiem _status_, który ma priorytet 500.
|
||
|
||
| size | integer ≥ 0 |
|
||
Rozmiar paska: ilość kolumn dla pozycji lewo/prawo, numer linii dla pozycji
|
||
góra/dół. Rozmiar `0` oznacza automatyczny - rozmiar zostanie wyliczony zgodnie
|
||
z wyświetlaną zawartością.
|
||
|
||
| size_max | integer ≥ 0 |
|
||
Maksymalny rozmiar paska, `0` = brak limitu (opcja ta jest używana tylko jeśli
|
||
`size` = 0).
|
||
|
||
| color_bg | color |
|
||
Domyślny kolor tła paska.
|
||
|
||
| color_fg | color |
|
||
Domyślny kolor tekstu na pasku.
|
||
|
||
| color_delim | color |
|
||
Kolor separatorów na pasku.
|
||
|
||
| hidden | `on`, `off` |
|
||
Kiedy ta opcja jest ustawiona na `on`, pasek jest ukrywany. +
|
||
Uwaga: zamiast zmiany tej opcji zaleca się użycie komendy `/bar`, na przykład:
|
||
`/bar toggle nicklist` (zobacz komendę <<command_weechat_bar,/bar>> po więcej
|
||
informacji).
|
||
|
||
| separator | `on`, `off` |
|
||
Kiedy ta opcja jest ustawiona na `on`, separator (linia) jest wyświetlany
|
||
pomiędzy tym paskiem a pozostałymi (lub oknem rozmowy).
|
||
|
||
| items | string |
|
||
Lista _elementów_ (zobacz <<bar_items,elementy>> po więcej informacji).
|
||
|
||
| filling_left_right | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
|
||
Typ wypełnienia paska dla pozycji o pozycji `left` lub `right` (zobacz
|
||
<<bar_filling,wypełnienie>> po więcej informacji).
|
||
|
||
| filling_top_bottom | `horizontal`, `vertical`, `columns_horizontal`, `columns_vertical` |
|
||
Typ wypełnienia paska dla pozycji o pozycji `top` lub `bottom` (zobacz
|
||
<<bar_filling,wypełnienie>> po więcej informacji).
|
||
|
||
| conditions | string |
|
||
Warunki wyświetlania paska (zobacz <<bar_conditions,warunki>> po więcej
|
||
informacji).
|
||
|===
|
||
|
||
[[bar_items]]
|
||
==== Elementy
|
||
|
||
Opcja _items_ jest ciągiem z listą elementów paska oddzielonych przecinkiem
|
||
(spacja pomiędzy elementami na ekranie) lub `+++` (elementy sklejone).
|
||
|
||
Lista wszystkich elementów paska jest wyświetlana za pomocą komendy `/bar listitems`.
|
||
|
||
Przed i za nazwą elementu można używać znaków (nie będących alfanumerycznymi,
|
||
`+-+` lub `+_+`). Będą one wyświetlane przed/za elementem z kolorem separatorów
|
||
zdefiniowanych dla paska (opcja _color_delim_).
|
||
|
||
Przykład paska z elementami "[time],buffer_number+:+buffer_plugin+.+buffer_name":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/freenode.#weechat │
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Specjalna składnia może zostać użyta, żeby wymusić bufor używany do wyświetlenia
|
||
elementów paska: "@bufor:element" (gdzie "bufor" to pełna nazwa bufora i "element"
|
||
to nazwa elementu paska).
|
||
|
||
Jest to przydatne w paskach typu `root` do wyświetlania elementów dla konkretnych
|
||
buforów, które nie są wyświetlane w obecnym oknie (lub nawet nie wyświetlanych
|
||
w ogóle).
|
||
|
||
Przykład: lista nicków dla bitlbee w pasku `root` (jeśli pasek nazywa się _bitlist_
|
||
i serwer bitlbee nazywa sie _bitlbee_):
|
||
|
||
----
|
||
/set weechat.bar.bitlist.items "@irc.bitlbee.&bitlbee:buffer_nicklist"
|
||
----
|
||
|
||
[[bar_filling]]
|
||
==== Wypełnienie
|
||
|
||
Są cztery typy wypełnień:
|
||
|
||
* `horizontal`: elementy są wyświetlane poziomo, od lewej do prawej. Jeśli
|
||
w elementach występują nowe linie, odstęp jest używany do ich oddzielenia.
|
||
* `vertical`: elementy są wyświetlane od góry do dołu. Jeśli w elementach
|
||
występują nowe linie, do ich oddzielenia używana jest nowa linia.
|
||
* `columns_horizontal`: elementy są wyświetlane z użyciem kolumn, gdzie tekst
|
||
tekst jest wyrównany do lewej. Pierwszy element znajduje się na górze z lewej,
|
||
kolejny w tej samej linii z prawej.
|
||
* `columns_vertical`: elementy są wyświetlane z użyciem kolumn, gdzie tekst
|
||
tekst jest wyrównany do lewej. Pierwszy element znajduje się na górze z lewej,
|
||
kolejny jest linię niżej.
|
||
|
||
Domyślne paski _title_, _status_ i _input_ mają wypełnienie _horizontal_,
|
||
domyślny pasek _nicklist_ ma wypełnienie _vertical_.
|
||
|
||
Przykłady wypełnień paska _nicklist_:
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────┐
|
||
│Welcome to #test, this is a test channel │
|
||
│12:54:15 peter | hey! │@carl │
|
||
│12:55:01 +Max | hello │@jessika│
|
||
│ │@maddy │
|
||
│ │%Diego │
|
||
│ │%Melody │
|
||
│ │+Max │
|
||
│ │ celia │
|
||
│ │ Eva │
|
||
│ │ freddy │
|
||
│ │ Harold^│
|
||
│ │ henry4 │
|
||
│ │ jimmy17│
|
||
│ │ jodie ▼│
|
||
│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
|
||
│[@carl] █ │
|
||
└───────────────────────────────────────────────────────────────────────┘
|
||
filling_left_right = vertical ▲
|
||
|
||
┌───────────────────────────────────────────────────────────────────────┐
|
||
│Welcome to #test, this is a test channel │
|
||
│12:54:15 peter | hey! │@carl lee │
|
||
│12:55:01 +Max | hello │@jessika louise │
|
||
│ │@maddy mario │
|
||
│ │%Diego mark │
|
||
│ │%Melody peter │
|
||
│ │+Max Rachel │
|
||
│ │ celia richard│
|
||
│ │ Eva sheryl │
|
||
│ │ freddy Vince │
|
||
│ │ Harold^ warren │
|
||
│ │ henry4 zack │
|
||
│ │ jimmy17 │
|
||
│ │ jodie │
|
||
│[12:55] [6] [irc/freenode] 3:#test(+n){24} │
|
||
│[@carl] █ │
|
||
└───────────────────────────────────────────────────────────────────────┘
|
||
filling_left_right = columns_vertical ▲
|
||
|
||
┌───────────────────────────────────────────────────────────────────────┐
|
||
│@carl %Diego celia Harold^ jodie mario Rachel Vince │
|
||
│@jessika %Melody Eva henry4 lee mark richard warren │
|
||
│@maddy +Max freddy jimmy17 louise peter sheryl zack │
|
||
│───────────────────────────────────────────────────────────────────────│
|
||
│ │
|
||
filling_top_bottom = columns_vertical ▲
|
||
|
||
┌───────────────────────────────────────────────────────────────────────┐
|
||
│@carl @jessika @maddy %Diego %Melody +Max celia Eva │
|
||
│ freddy Harold^ henry4 jimmy17 jodie lee louise mario │
|
||
│ mark peter Rachel richard sheryl Vince warren zack │
|
||
│───────────────────────────────────────────────────────────────────────│
|
||
│ │
|
||
filling_top_bottom = columns_horizontal ▲
|
||
....
|
||
|
||
[[bar_conditions]]
|
||
==== Warunki
|
||
|
||
Opcja _conditions_ jest jest przetwarzana w celu sprawdzenia czy pasek ma być
|
||
wyświetlony czy nie.
|
||
|
||
Dostępne opcje:
|
||
|
||
* _active_: okno musi być aktywne
|
||
* _inactive_: okno musi być nieaktywne
|
||
* _nicklist_: bufor wyświetlany w oknie musi mieć listę nicków
|
||
* wyrażenie: jest wykonywane jako wyrażenie logiczne (zobacz komendę
|
||
<<command_weechat_eval,/eval>>)
|
||
|
||
Dla wyrażeń dostępne są następujące zmienne:
|
||
|
||
* `+${active}+`: prawda, jeśli okno jest aktywne
|
||
* `+${inactive}+`: prawda, jeśli okno jest nieaktywne
|
||
* `+${nicklist}+`: prawda, jeśli okno posiada listę nicków
|
||
|
||
Następujące wskaźniki są dostępne:
|
||
|
||
* `+${window}+`: okno, dla którego warunek jest sprawdzany
|
||
* `+${buffer}+`: bufor okna, dla którego warunek jest sprawdzany
|
||
|
||
Przykład wyświetlania paska z listą nicków w każdym oknie z taką listą i tylko
|
||
jeśli szerokość okna > 100:
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && ${window.win_width} > 100"
|
||
----
|
||
|
||
Taki sam warunek ale lista nicków będzie wyświetlana zawsze w buforze _&bitlbee_
|
||
(nawet jeśli okno jest małe):
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && (${window.win_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
|
||
----
|
||
|
||
[[bare_display]]
|
||
=== Niesformatowany ekran
|
||
|
||
Specjalny ekran nazywany "bare display" może zostać użyty do łatwego kliknięcia
|
||
w długi adres URL i zaznaczania tekstu (za pomocą myszy).
|
||
|
||
Tryb niesformatowanego ekranu posiada następujące cechy:
|
||
|
||
* wyświetlana jest tylko zawartość obecnego bufora: bez podziału okna i pasków
|
||
(brak tematu, listy nicków, statusu, wejścia, ...)
|
||
* wsparcie dla myszy w WeeChat jest wyłączone (jeśli zostało włączone): możesz
|
||
używać myszy jak w normalnym terminalu do klikania w adresy URL i zaznaczania
|
||
tekstu
|
||
* ncurses nie jest używane, dlatego URLe nie są obcinane z końcem linii.
|
||
|
||
Domyślnym skrótem uruchamiającym ten tryb jest kbd:[Alt+l] (`L`), tak jak wyłączającym
|
||
go (lub domyślnie dowolna zmiana wejścia spowoduje wyjście z tego trybu, zobacz
|
||
<<option_weechat.look.bare_display_exit_on_input,weechat.look.bare_display_exit_on_input>>).
|
||
|
||
Format czasu może zostać dostosowany za pomocą opcji
|
||
<<option_weechat.look.bare_display_time_format,weechat.look.bare_display_time_format>>.
|
||
|
||
Tryb ten może być włączony również na specyficzny czas za pomocą komendy
|
||
<<command_weechat_window,/window>>.
|
||
|
||
Jeśłi WeeChat wygląda następująco:
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.freenode│Welcome to #abc │
|
||
│ weechat │12:52:27 --> | Flashy (flashcode@weechat.org) has joined #abc │@Flashy│
|
||
│2. #test │12:52:27 -- | Nicks #abc: [@Flashy @joe +weebot peter] │@joe │
|
||
│3. #abc │12:52:27 -- | Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal) │+weebot│
|
||
│4. #def │12:52:27 -- | Channel created on Tue Jan 27 06:30:17 2009 │peter │
|
||
│5. #ghi │12:54:15 peter | hey! │ │
|
||
│ │12:55:01 @joe | peter: hook_process: https://weechat.org/files/do │ │
|
||
│ │ | c/devel/weechat_plugin_api.en.html#_weechat_hook_ │ │
|
||
│ │ | process │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/freenode] 3:#abc(+n){4} │
|
||
│ │[@Flashy(i)] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Ekran w trybie niesformatowanego wyświetlania będzie wyglądać tak:
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│ │
|
||
│12:52 --> Flashy (flashcode@weechat.org) has joined #abc │
|
||
│12:52 -- Nicks #abc: [@Flashy @joe +weebot peter] │
|
||
│12:52 -- Channel #abc: 4 nicks (2 ops, 1 voice, 1 normal) │
|
||
│12:52 -- Channel created on Tue Jan 27 06:30:17 2009 │
|
||
│12:54 <peter> hey! │
|
||
│12:55 <@joe> peter: hook_process: https://weechat.org/files/doc/devel/weechat_plugin_a│
|
||
│pi.en.html#_weechat_hook_process │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Możesz więc kliknąć w URL od _joe_ bez żadnych problemów w swoim terminalu (jeśli
|
||
twój terminal wspiera klikanie w URLe).
|
||
|
||
[[notify_levels]]
|
||
=== Poziomy powiadomień
|
||
|
||
[[setup_notify_levels]]
|
||
==== Ustawienia poziomu powiadomień
|
||
|
||
Dostępne są cztery poziomy dla wiadomości wyświetlanych w buforach, od najniższego
|
||
do najwyższego:
|
||
|
||
* _low_: wiadomości mało istotne (na przykład dla irc join/part/quit)
|
||
* _message_: wiadomość od użytkownika
|
||
* _private_: wiadomość w buforze prywatnym
|
||
* _highlight_: wiadomość z powiadomieniem
|
||
|
||
Każdy bufor posiada poziom powiadomień, który decyduje o tym, jakie wiadomości
|
||
zostaną dodane do bufora w hotliście.
|
||
|
||
Domyślny poziom powiadomień można ustawić za pomocą opcji
|
||
<<option_weechat.look.buffer_notify_default,weechat.look.buffer_notify_default>>,
|
||
domyślna wartość to _all_.
|
||
|
||
[width="50%",cols="3m,10",options="header"]
|
||
|===
|
||
| Poziom powiadomień | Poziom wiadomości dodawanej do hotlisty
|
||
| none | (brak)
|
||
| highlight | _highlight_ + _private_
|
||
| message | _highlight_ + _private_ + _message_
|
||
| all | _highlight_ + _private_ + _message_ + _low_
|
||
|===
|
||
|
||
Poziom powiadomień może być definiowany dla zestawu buforów, na przykład dla
|
||
wszystkich buforów serwera irc "freenode":
|
||
|
||
----
|
||
/set weechat.notify.irc.freenode message
|
||
----
|
||
|
||
Ustawienie poziomu powiadomień na _highlight_ tylko dla kanału "#weechat":
|
||
|
||
----
|
||
/set weechat.notify.irc.freenode.#weechat highlight
|
||
----
|
||
|
||
Poziom powiadomień dla bufora może zostać ustawiony za pomocą komendy `/buffer`:
|
||
|
||
----
|
||
/buffer notify highlight
|
||
----
|
||
|
||
[[max_hotlist_level_nicks]]
|
||
==== Maksymalny poziom hotlisty dla nicków
|
||
|
||
Jest możliwe ustawienie maksymalnego poziomu hotlist dla nicków, dla bufora lub grupy buforów
|
||
(jak erwery IRC).
|
||
|
||
Właściwość bufora "hotlist_max_level_nicks" może być ustawiona na listę nicków,
|
||
z ustawonym dla każdego z nich maksymalnym poziomem hotlisty, możliwe poziomy to:
|
||
|
||
* -1: brak zmiany hotlisty dla nicka
|
||
* 0: niski priorytet (jak wiadomości join/part)
|
||
* 1: wiadomość
|
||
* 2: prywatna wiadomość
|
||
* 3: podświetlenie (mało przydatne, jest to domyślny poziom dla wszytkich wiadomości)
|
||
|
||
Na przykład, żeby wyłączyć podświetlenia od "joe" oraz "mike" w obecnym buforze:
|
||
|
||
----
|
||
/buffer set hotlist_max_level_nicks_add joe:2,mike:2
|
||
----
|
||
|
||
[NOTE]
|
||
Właściwość bufora "hotlist_max_level_nicks" nie jest zapisywana w konfiguracji. +
|
||
Można ją zapisać za pomocą skryptu _buffer_autoset.py_: można go zaintalować za pomocą
|
||
`/script install buffer_autoset.py`, informacje o używaniu `/help buffer_autoset`.
|
||
|
||
[[highlights]]
|
||
=== Podświetlenia
|
||
|
||
[[highlights_words]]
|
||
==== Dodawanie słów do podświetleń
|
||
|
||
Domyślnie WeeChat podświetla wiadomości od innych użytkowników zawierające Twój nick,
|
||
dlatego podświetlenia zależą od buforu (nick może być inny w zależności od buforu).
|
||
|
||
Możesz dodawać inne słowa do podświetlen używając opcji
|
||
<<option_weechat.look.highlight,weechat.look.highlight>>, na przykład, żeby
|
||
podświetlać Twój nick oraz słowa "słowo1", "słowo2" oraz wszystko co zaczyna się od "test":
|
||
|
||
----
|
||
/set weechat.look.highlight słowo1,słowo2,test*
|
||
----
|
||
|
||
Jeżeli potrzebujesz bardziej przecyzyjnej reguły, możesz użyć wyrażenia reglarnego
|
||
używając opcji <<option_weechat.look.highlight_regex,weechat.look.highlight_regex>>,
|
||
na przydład do podświetlania słów "flashcode", "flashcöde" i "flashy":
|
||
|
||
----
|
||
/set weechat.look.highlight_regex flashc[oö]de|flashy
|
||
----
|
||
|
||
Separatory do okoła podświetlanych słów można zmienić za pomocą opcji
|
||
<<option_weechat.look.word_chars_highlight,weechat.look.word_chars_highlight>>.
|
||
|
||
[[highlights_tags]]
|
||
==== Dodawanie tagów do podświetleń
|
||
|
||
Wyświetlane linie moga zawierać "tagi", które dają troche informacji o pochodzeniu
|
||
wiasomości lub o samej wiadmości. +
|
||
Możesz wyświetlić tagi za pomocą komendy `/debug tags` (ta sama komenda je ukrywa).
|
||
|
||
Możesz dodać konkretne tagi do podświetleń za pomocą opcji
|
||
<<option_weechat.look.highlight_tags,weechat.look.highlight_tags>>.
|
||
Tagi są oddzielane przecinkami, kilka tagów może być oddzielone przez `+++` dla wykonania
|
||
logicznego "i" między nimi.
|
||
|
||
Na przykład dla podświetlenia wszytkich wiadomości od nicka "FlashCode" oraz powiadomień od
|
||
nicków zaczynających się od "toto":
|
||
|
||
----
|
||
/set weechat.look.highlight_tags "nick_flashcode,irc_notice+nick_toto*"
|
||
----
|
||
|
||
[[highlights_regex_buffer]]
|
||
==== Ustawianie dodatkowych podświetleń dla bufora
|
||
|
||
Możesz wymusić podświetlenia używając wyrażenia regularnego z właściwościa bufora
|
||
"highlight_regex".
|
||
|
||
Na przykład żeby wymusić podświetlenie dla wszytkich wiadomości w obecnym buforze:
|
||
|
||
----
|
||
/buffer set highlight_regex .*
|
||
----
|
||
|
||
[NOTE]
|
||
Właściwość bufora "highlight_regex" nie jest zapisywana w konfiguracji. +
|
||
Można ją zapisać za pomocą skryptu _buffer_autoset.py_: można go zaintalować za pomocą
|
||
`/script install buffer_autoset.py`, informacje o używaniu `/help buffer_autoset`.
|
||
|
||
[[key_bindings]]
|
||
=== Domyślne skróty klawiszowe
|
||
|
||
[[key_bindings_command_line]]
|
||
==== Skróty dla linii poleceń
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[←] +
|
||
kbd:[Ctrl+b] | Idź do poprzedniego znaku w linii poleceń. | `/input move_previous_char`
|
||
| kbd:[→] +
|
||
kbd:[Ctrl+f] | Idź do następnego znaku w linii poleceń. | `/input move_next_char`
|
||
| kbd:[Ctrl+←] +
|
||
kbd:[Alt+b] | Idź do poprzedniego słowa w linii poleceń. | `/input move_previous_word`
|
||
| kbd:[Ctrl+→] +
|
||
kbd:[Alt+f] | Idź do następnego słowa w linii poleceń. | `/input move_next_word`
|
||
| kbd:[Home] +
|
||
kbd:[Ctrl+a] | Idź na początek linii poleceń. | `/input move_beginning_of_line`
|
||
| kbd:[End] +
|
||
kbd:[Ctrl+e] | Idź na koniec linii poleceń. | `/input move_end_of_line`
|
||
| kbd:[Ctrl+c],
|
||
kbd:[b] | Wstaw kod dla pogrubionego tekstu. | `/input insert \x02`
|
||
| kbd:[Ctrl+c],
|
||
kbd:[c] | Wstaw kod dla kolorowego tekstu. | `/input insert \x03`
|
||
| kbd:[Ctrl+c],
|
||
kbd:[i] | Wstaw kod dla pochyłego tekstu. | `/input insert \x1D`
|
||
| kbd:[Ctrl+c],
|
||
kbd:[o] | Wstaw kod dla zresetowania koloru. | `/input insert \x0F`
|
||
| kbd:[Ctrl+c],
|
||
kbd:[v] | Wstaw kod dla odwrócenia koloru. | `/input insert \x16`
|
||
| kbd:[Ctrl+c],
|
||
kbd:[_] | Wstaw kod dla podkreślonego tekstu. | `/input insert \x1F`
|
||
| kbd:[Del] +
|
||
kbd:[Ctrl+d] | Usuń następny znak w linii poleceń. | `/input delete_next_char`
|
||
| kbd:[Backsp.] +
|
||
kbd:[Ctrl+h] | Usuń poprzedni znak w linii poleceń. | `/input delete_previous_char`
|
||
| kbd:[Ctrl+k] | Usuń od znacznika kursora do końca linii poleceń (usuwany ciąg jest kopiowany do wewnętrznego schowka). | `/input delete_end_of_line`
|
||
| kbd:[Ctrl+r] | Wyszukaj tekst w historii bufora (zobacz <<key_bindings_search_context,skróty dla kontekstu wyszukiwania>>). | `/input search_text_here`
|
||
| kbd:[Ctrl+t] | Przestaw znaki. | `/input transpose_chars`
|
||
| kbd:[Ctrl+u] | Usuń od znaku kursora do początku linii poleceń (usuwany ciąg jest kopiowany do wewnętrznego schowka). | `/input delete_beginning_of_line`
|
||
| kbd:[Ctrl+w] | Usuń poprzednie słowo w linii poleceń (usuwany ciąg jest kopiowany do wewnętrznego schowka). | `/input delete_previous_word`
|
||
| kbd:[Ctrl+y] | Wkleja zawartość wewnętrznego schowka. | `/input clipboard_paste`
|
||
| kbd:[Ctrl+_] | Cofnij poprzednia akcję w linii poleceń. | `/input undo`
|
||
| kbd:[Alt+_] | Powtórz ostatnią akcję w linii poleceń. | `/input redo`
|
||
| kbd:[Tab] | Dopełnij komendę lub nick (ponowne wciśnięcie kbd:[Tab]: znajdź następne dopełnienie). | `/input complete_next`
|
||
| kbd:[Shift+Tab] | Bez dopełnienia: wykonaj częściowe dopełnienie, z oczekującym dopełnieniem: dopełnij z poprzednim dopełnieniem. | `/input complete_previous`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | Wykonaj komendę lub wyślij wiadomość (w trybie wyszukiwania: przerwij wyszukiwanie). | `/input return`
|
||
| kbd:[↑] | Pokaż poprzednią komendę/wiadomość (w trybie wyszukiwania: szukaj w górę). | `/input history_previous`
|
||
| kbd:[↓] | Pokaż następną komendę/wiadomość (w trybie wyszukiwania: szukaj w dół). | `/input history_next`
|
||
| kbd:[Ctrl+↑] | Pokaż poprzednią komendę/wiadomość w historii globalnej (wspólnej dla wszystkich buforów). | `/input history_global_previous`
|
||
| kbd:[Ctrl+↓] | Pokaż następną komendę/wiadomość w historii globalnej (wspólnej dla wszystkich buforów). | `/input history_global_next`
|
||
| kbd:[Alt+d] | Usuń następne słowo w linii poleceń (usuwany ciąg jest kopiowany do wewnętrznego schowka). | `/input delete_next_word`
|
||
| kbd:[Alt+k] | Przechwyć wciśnięte klawisze i zwróć ich kod (i przypisaną komendę, jeśli istnieje) w linii poleceń. | `/input grab_key_command`
|
||
| kbd:[Alt+r] | Usuń całą zawartość linii poleceń. | `/input delete_line`
|
||
| kbd:[Alt+s] | Włącz/wyłącz sprawdzenie pisowni. | `/mute spell toggle`
|
||
|===
|
||
|
||
[[key_bindings_buffers_windows]]
|
||
==== Skróty dla buforów / okien
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+l] (`L`) | Przerysuj całe okno. | `/window refresh`
|
||
| kbd:[Ctrl+s],
|
||
kbd:[Ctrl+u] | Ustaw znacznik nieprzeczytania we wszystkich buforach. | `/input set_unread`
|
||
| kbd:[Ctrl+x] | Przełącz obecny bufor jeśli bufory są dołączone z tym samym numerem. | `/input switch_active_buffer`
|
||
| kbd:[Alt+x] | Pokaż wybrany z połączonych buforów (naciśnij kbd:[Alt+x] ponownie: wyświetl wszystkie połączone bufory). | `/input zoom_merged_buffer`
|
||
| kbd:[PgUp] | Przewiń jedną stronę w górę w historii bufora. | `/window page_up`
|
||
| kbd:[PgDn] | Przewiń jedną stronę w dół w historii bufora. | `/window page_down`
|
||
| kbd:[Alt+PgUp] | Przewiń w górę kilka linii w historii bufora. | `/window scroll_up`
|
||
| kbd:[Alt+PgDn] | Przewiń w dół kilka linii w historii bufora. | `/window scroll_down`
|
||
| kbd:[Alt+Home] | Przewiń na górę bufora. | `/window scroll_top`
|
||
| kbd:[Alt+End] | Przewiń na dół bufora. | `/window scroll_bottom`
|
||
| kbd:[F1] +
|
||
kbd:[Ctrl+F1] | Przewiń do góry jedną stronę na liście buforów. | `/bar scroll buflist * -100%`
|
||
| kbd:[F2] +
|
||
kbd:[Ctrl+F2] | Przewiń w dół jedną stronę na liście buforów. | `/bar scroll buflist * +100%`
|
||
| kbd:[Alt+F1] | Idź na początek listy buforów. | `/bar scroll buflist * b`
|
||
| kbd:[Alt+F2] | Idź na koniec listy buforów. | `/bar scroll buflist * e`
|
||
| kbd:[Alt+←] +
|
||
kbd:[Alt+↑] +
|
||
kbd:[Ctrl+p] +
|
||
kbd:[F5] | Przełącz na poprzedni bufor. | `/buffer -1`
|
||
| kbd:[Alt+→] +
|
||
kbd:[Alt+↓] +
|
||
kbd:[Ctrl+n] +
|
||
kbd:[F6] | Przełącz na następny bufor. | `/buffer +1`
|
||
| kbd:[F7] | Przełącz na poprzednie okno. | `/window -1`
|
||
| kbd:[F8] | Przełącz na następne okno. | `/window +1`
|
||
| kbd:[F9] | Przewiń tytuł bufora w lewo. | `+/bar scroll title * -30%+`
|
||
| kbd:[F10] | Przewiń tytuł bufora w prawo. | `+/bar scroll title * +30%+`
|
||
| kbd:[F11] +
|
||
kbd:[Ctrl+F11] | Przewiń w górę jedna stronę listy nicków. | `/bar scroll nicklist * -100%`
|
||
| kbd:[F12] +
|
||
kbd:[Ctrl+F12] | Przewiń w dół jedna stronę listy nicków. | `/bar scroll nicklist * +100%`
|
||
| kbd:[Alt+F11] | Idź na początek listy nicków. | `/bar scroll nicklist * b`
|
||
| kbd:[Alt+F12] | Idź na koniec listy nicków. | `/bar scroll nicklist * e`
|
||
| kbd:[Alt+a] | Przełącz na następny bufor z aktywnością (z priorytetem: powiadomienie, wiadomość, inne). | `/input jump_smart`
|
||
| kbd:[Alt+h] | Wyczyść hotlistę (powiadomienia o aktywności w innych buforach). | `/input hotlist_clear`
|
||
| kbd:[Alt+j],
|
||
kbd:[Alt+f] | Przełącz na pierwszy bufor. | `/buffer -`
|
||
| kbd:[Alt+j],
|
||
kbd:[Alt+l] (`L`) | Przełącz na ostatni bufor. | `/buffer +`
|
||
| kbd:[Alt+j],
|
||
kbd:[Alt+r] | Przełącz na bufor IRC raw. | `/server raw`
|
||
| kbd:[Alt+j],
|
||
kbd:[Alt+s] | Przełącz na bufor serwera IRC. | `/server jump`
|
||
| kbd:[Alt+0...9] | Przełącz na bufor za pomocą liczb (0 = 10). | `/buffer *N`
|
||
| kbd:[Alt+j],
|
||
kbd:[01...99] | Przełącz na bufor za pomocą liczb. | `/buffer *NN`
|
||
| kbd:[Alt+l] (`L`) | Przełącz tryb niesformatowanego wyświetlania. | `/window bare`
|
||
| kbd:[Alt+m] | Przełącz obsługę myszy. | `/mouse toggle`
|
||
| kbd:[Alt+n] | Przewiń do następnego powiadomienia. | `/window scroll_next_highlight`
|
||
| kbd:[Alt+p] | Przewiń do poprzedniego powiadomienia. | `/window scroll_previous_highlight`
|
||
| kbd:[Alt+u] | Przewiń do pierwszej nieprzeczytanej linii w buforze. | `/window scroll_unread`
|
||
| kbd:[Alt+w],
|
||
kbd:[Alt+↑] | Przełącz na okno wyżej. | `/window up`
|
||
| kbd:[Alt+w],
|
||
kbd:[Alt+↓] | Przełącz na okno niżej. | `/window down`
|
||
| kbd:[Alt+w],
|
||
kbd:[Alt+←] | Przełącz na okno z lewej. | `/window left`
|
||
| kbd:[Alt+w],
|
||
kbd:[Alt+→] | Przełącz na okno z prawej. | `/window right`
|
||
| kbd:[Alt+w],
|
||
kbd:[Alt+b] | Balansuj rozmiar wszystkich okien. | `/window balance`
|
||
| kbd:[Alt+w],
|
||
kbd:[Alt+s] | Zamień bufory między dwoma oknami. | `/window swap`
|
||
| kbd:[Alt+z] | Pokaż obecne okno (ponowne wciśnięcie kbd:[Alt+z]: przywraca wcześniejszy układ okien). | `/window zoom`
|
||
| kbd:[Alt+<] | Przełącz na poprzedni bufor z listy odwiedzonych buforów. | `/input jump_previously_visited_buffer`
|
||
| kbd:[Alt+>] | Przełącz na następny bufor z listy odwiedzonych buforów. | `/input jump_next_visited_buffer`
|
||
| kbd:[Alt+/] | Przełącz na ostatnio wyświetlony bufor (przed ostatnią zmianą bufora). | `/input jump_last_buffer_displayed`
|
||
| kbd:[Alt+=] | Włącz/wyłącz filtry. | `/filter toggle`
|
||
| kbd:[Alt+-] | Włącz/wyłącz filtry w bieżącym buforze. | `/filter toggle @`
|
||
|===
|
||
|
||
[[key_bindings_search_context]]
|
||
==== Skróty dla kontekstu wyszukiwania
|
||
|
||
Te skróty są używane w kontekście wyszukiwania (kiedy kombinacja kbd:[Ctrl+r]
|
||
zostanie wciśnięta w buforze tekstowym).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+r] | Przełącz rodzaj wyszukiwania: ciąg (domyślne), wyrażenie regularne. | `/input search_switch_regex`
|
||
| kbd:[Alt+c] | Przełącz dopasowywanie wielości liter podczas wyszukiwania. | `/input search_switch_case`
|
||
| kbd:[Tab] | Przełącz miejsce wyszukiwania: wiadomości (domyślne), prefiksy, prefiksy + wiadmości. | `/input search_switch_where`
|
||
| kbd:[↑] | Poprzednie wystąpienie. | `/input search_previous`
|
||
| kbd:[↓] | Następne wystąpienie. | `/input search_next`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | Zatrzymaj wyszukiwanie na obecnej pozycji. | `/input search_stop_here`
|
||
| kbd:[Ctrl+q] | Zatrzymaj wyszukiwanie i przewin na spód bufora. | `/input search_stop`
|
||
|===
|
||
|
||
[[key_bindings_cursor_context]]
|
||
==== Skróty dla kontekstu kursora
|
||
|
||
Te skróty są używane s kontekście kursora (dowolne przemieszczanie kursora na
|
||
ekranie).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^7,.^7",options="header"]
|
||
|===
|
||
| Skrót | Obszar | Opis | Komenda
|
||
| kbd:[↑] | - | Przesuń kursor linię wyżej. | `/cursor move up`
|
||
| kbd:[↓] | - | Przesuń kursor linię niżej. | `/cursor move down`
|
||
| kbd:[←] | - | Przesuń kursor kolumnę w lewo. | `/cursor move left`
|
||
| kbd:[→] | - | Przesuń kursor kolumnę w prawo. | `/cursor move right`
|
||
| kbd:[Alt+↑] | - | Przesuń kursor obszar do góry. | `/cursor move area_up`
|
||
| kbd:[Alt+↓] | - | Przesuń kursor obszar w dół. | `/cursor move area_down`
|
||
| kbd:[Alt+←] | - | Przesuń kursor obszar w lewo. | `/cursor move area_left`
|
||
| kbd:[Alt+→] | - | Przesuń kursor obszar w prawo. | `/cursor move area_right`
|
||
| kbd:[m] | chat | Cytuj wiadomość. | `hsignal:chat_quote_message;/cursor stop`
|
||
| kbd:[q] | chat | Cytuj prefiks i wiadomość. | `hsignal:chat_quote_prefix_message;/cursor stop`
|
||
| kbd:[Q] | chat | Cytuj czas, prefiks i wiadomość. | `hsignal:chat_quote_time_prefix_message;/cursor stop`
|
||
| kbd:[b] | nicklist | Zbanuj osobę. | `/window ${_window_number};/ban ${nick}`
|
||
| kbd:[k] | nicklist | Wykop osobę. | `/window ${_window_number};/kick ${nick}`
|
||
| kbd:[K] | nicklist | Wykop i zbanuj osobę. | `/window ${_window_number};/kickban ${nick}`
|
||
| kbd:[q] | nicklist | Otwórz rozmowę z osobą. | `/window ${_window_number};/query ${nick};/cursor stop`
|
||
| kbd:[w] | nicklist | Wykonaj whois dla osoby. | `/window ${_window_number};/whois ${nick}`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | - | Wyłącz tryb kursora. | `/cursor stop`
|
||
|===
|
||
|
||
[[key_bindings_mouse_context]]
|
||
==== Skróty dla kontekstu myszy
|
||
|
||
Te skróty używane są w kontekście myszy, w momencie wystąpienia zdarzenia myszy.
|
||
|
||
[width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"]
|
||
|===
|
||
| Klawisz/Wheel ^(1)^ | Gest | Obszar | Opis | Komenda
|
||
| ◾◽◽ | - | chat | Przełącz na okno. | `/window ${_window_number}`
|
||
| ◾◽◽ | lewo | chat | Przełącz na poprzedni bufor. | `/window ${_window_number};/buffer +1`
|
||
| ◾◽◽ | prawo | chat | Przełącz na następny bufor. | `/window ${_window_number};/buffer +1`
|
||
| ◾◽◽ | lewo (długo) | chat | Przełącz na pierwszy bufor. | `/window ${_window_number};/buffer 1`
|
||
| ◾◽◽ | prawo (długo) | chat | Przełącz na ostatni bufor. | `/window ${_window_number};/input jump_last_buffer`
|
||
| kbd:[▲] | - | chat | Przewiń w górę kilka linii w historii bufora. | `/window scroll_up -window ${_window_number}`
|
||
| kbd:[▼] | - | chat | Przewiń w dół kilka linii w historii bufora. | `/window scroll_down -window ${_window_number}`
|
||
| kbd:[Ctrl+▲] | - | chat | Przewiń poziomo w lewo. | `/window scroll_horiz -window ${_window_number} -10%`
|
||
| kbd:[Ctrl+▼] | - | chat | Przewiń poziomo w prawo. | `/window scroll_horiz -window ${_window_number} +10%`
|
||
| kbd:[▲] | - | chat: bufor fset | Przewiń pięć linii w góre w buforze fset. | `/fset -up 5`
|
||
| kbd:[▼] | - | chat: bufor fset | Przewiń pięć linii w dół w buforze fset. | `/fset -down 5`
|
||
| ◾◽◽ | - | chat: bufor fset | Zaznacz linię b buforze fset. | `/window ${_window_number};/fset -go ${_chat_line_y}`
|
||
| ◽◽◾ | - | chat: bufor fset | Przełącz (włącz/wyłącz) lub edytuj wartośc opcji. | `hsignal:fset_mouse`
|
||
| ◽◽◾ | left | chat: bufor fset | Zmniejsz wartość zmiennej liczbowej / koloru, ustaw/rozszerz wartośc innego typu. | `hsignal:fset_mouse`
|
||
| ◽◽◾ | right | chat: bufor fset | Zwiększ wartość zmiennej liczbowej / koloru, ustaw/rozszerz wartośc innego typu. | `hsignal:fset_mouse`
|
||
| ◽◽◾ | up / down | chat: bufor fset | Zaznacz/odznacz wiele opcji. | `hsignal:fset_mouse`
|
||
| kbd:[▲] | - | chat: bufor skryptów | Przejdź 5 linii w górę w buforze skryptów. | `/script up 5`
|
||
| kbd:[▼] | - | chat: bufor skryptów | Przejdź 5 linii w dół w buforze skryptów. | `/script down 5`
|
||
| ◾◽◽ | - | chat: bufor skryptów | Zaznacz linię w buforze skryptów. | `/script go ${_chat_line_y}`
|
||
| ◽◽◾ | - | chat: bufor skryptów | Zainstaluj/usuń skrypt. | `/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}`
|
||
| ◾◽◽ | góra / lewo | buflist | Przenieś bufor na niższy numer. | Sygnał `buflist_mouse`.
|
||
| ◾◽◽ | dół / prawo | buflist | Przenieś bufor na wyższy numer. | Sygnał `buflist_mouse`.
|
||
| ◾◽◽ | - | buflist | Przełącz na bufor (poprzednio odwiedzony bufor, jeśli jest to obecny bufor). | Sygnał `buflist_mouse`.
|
||
| ◽◽◾ | - | buflist | Przełącz na następny odwiedzony bufor, jeśli jest to obecny bufor. | Sygnał `buflist_mouse`.
|
||
| kbd:[Ctrl+▲] | - | buflist | Przełącz na poprzedni bufor. | Sygnał `buflist_mouse`.
|
||
| kbd:[Ctrl+▼] | - | buflist | Przełącz na następny bufor. | Sygnał `buflist_mouse`.
|
||
| ◾◽◽ | góra | lista nicków | Przewiń w górę jedna stronę listy nicków. | `/bar scroll nicklist ${_window_number} -100%`
|
||
| ◾◽◽ | dół | lista nicków | Przewiń w dół jedna stronę listy nicków. | `/bar scroll nicklist ${_window_number} +100%`
|
||
| ◾◽◽ | góra (długo) | lista nicków | Idź na początek listy nicków. | `/bar scroll nicklist ${_window_number} b`
|
||
| ◾◽◽ | dół (długo) | lista nicków | Idź na koniec listy nicków. | `/bar scroll nicklist ${_window_number} e`
|
||
| ◾◽◽ | - | lista nicków | Otwórz prywatną rozmowę z nick. | `/window ${_window_number};/query ${nick}`
|
||
| ◽◽◾ | - | lista nicków | Wykonaj whois dla nicka. | `/window ${_window_number};/whois ${nick}`
|
||
| ◾◽◽ | lewo | lista nicków | Wykop nick. | `/window ${_window_number};/kick ${nick}`
|
||
| ◾◽◽ | lewo (długo) | lista nicków | Wykop i zbanuj nick. | `/window ${_window_number};/kickban ${nick}`
|
||
| ◽◽◾ | lewo | lista nicków | Zbanuj nick. | `/window ${_window_number};/ban ${nick}`
|
||
| ◽◽◾ | - | linia poleceń | Przechwyć zdarzenie myszy i wstaw jego kod w linii poleceń. | `/input grab_mouse_area`
|
||
| kbd:[▲] | - | dowolny pasek | Przewiń pasek o -20%. | `/bar scroll ${_bar_name} ${_window_number} -20%`
|
||
| kbd:[▼] | - | dowolny pasek | Przewiń pasek o +20%. | `/bar scroll ${_bar_name} ${_window_number} +20%`
|
||
| ◽◾◽ | - | gdziekolwiek | Włącz tryb kursora w tym miejscu. | `/cursor go ${_x},${_y}`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ kbd:[▲] i kbd:[▼] to przewijanie rolką myszy w górę i w dół.
|
||
|
||
[[key_bindings_fset_buffer]]
|
||
==== Skróty klawiszowe dla bufora fset
|
||
|
||
Poniższe skróty i akcje mogą zostać użyte w buforze fset (zobacz <<fset_plugin,wtyczka fset>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Akcja ^(1)^ | Opis | Komenda
|
||
| kbd:[↑] | | Przejdź linię wyżej. | `/fset -up`
|
||
| kbd:[↓] | | Przejdź linię niżej. | `/fset -down`
|
||
| kbd:[PgUp] | | Przejdź stronę do góry. | `/window page_up`
|
||
| kbd:[PgDn] | | Przejdź stronę w dół. | `/window page_down`
|
||
| kbd:[Alt+Home] | `pass:[<<]` | Przejdź do pierwszej linii. | `/fset -go 0`
|
||
| kbd:[Alt+End] | `pass:[>>]` | Przejdź do ostatniej linii. | `/fset -go end`
|
||
| kbd:[F11] | `pass:[<]` | Przewiń poziomo w lewo. | `/fset -left`
|
||
| kbd:[F12] | `pass:[>]` | Przewiń poziomo w prawo. | `/fset -right`
|
||
| kbd:[Alt+Space] | `t` | Przełącz zmienną boolowską. | `/fset -toggle`
|
||
| kbd:[Alt+-] | `-` | Odejmij 1 od wartości liczbowej/koloru, ustaw wartość pozostałych typów. | `/fset -del -1`
|
||
| kbd:[Alt++] | `+` | Dodaj 1 do wartości liczbowej/koloru, dodaj to wartości pozostałych typów. | `/fset -add 1`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+r] | `r` | Zresetuj wartość. | `/fset -reset`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+u] | `u` | Skasuj wartość. | `/fset -unset`
|
||
| kbd:[Alt+Enter] | `s` | Ustaw wartość. | `/fset -set`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+n] | `n` | Ustaw nową wartość. | `/fset -setnew`
|
||
| kbd:[Alt+f],
|
||
kbd:[Alt+a] | `a` | Dodaj do wartości. | `/fset -append`
|
||
| kbd:[Alt+,] | `,` | Zaznacz/odznacz opcję. | `/fset -mark 1`
|
||
| kbd:[Shift+↑] | | Przejdź do linii wyżej oraz zaznacz/odznacz opcję. | `/fset -up; /fset -mark`
|
||
| kbd:[Shift+↓] | | Przejdź do linii niżej oraz zaznacz/odznacz opcję. | `/fset -mark; /fset -down`
|
||
| | `m:xxx` | Zaznacz wyświetlane opcje pasujące do filtra "xxx" (dowolny filtr na opcję albo wartość, zobacz <<command_fset_fset,komenda fset>>). |
|
||
| | `u:xxx` | Odznacz zaznaczone opcje pasujące do filtra "xxx" (dowolny filtr an opcję lub wartość, zobacz <<command_fset_fset,komenda fset>>). |
|
||
| kbd:[Ctrl+l] (`L`) | | Odświerz opcje i cały ekran. | `/fset -refresh`
|
||
| | `$` | Odświerz opcje (zachowuje zaznaczone opcje). |
|
||
| | `$$` | Odświerz opcje (odznacza zaznaczone kompilację). |
|
||
| kbd:[Alt+p] | | Przełącz opcje opisu wtyczki (`pass:[plugins.desc.*]`). | `/mute /set fset.look.show_plugins_desc toggle`
|
||
| kbd:[Alt+v] | | Przełącz pasek pomocy. | `/bar toggle fset`
|
||
| | `s:x,y` | Sortuj opcje po polach x,y (zobacz opcję <<option_fset.look.sort,fset.look.sort>>). | `/mute /set fset.look.sort x,y`
|
||
| | `s:` | Zresetuj soerowanie do domyślnej wartości (zobacz opcję <<option_fset.look.sort,fset.look.sort>>). | `/mute /unset fset.look.sort`
|
||
| | `w:xxx` | Wyeksportuj opcje do pliku "xxx". | `/fset -export xxx`
|
||
| | `w-:xxx` | Wyeksportuj opcje do pliku "xxx" bez dodatkowych informacji. | `/fset -export -nohelp xxx`
|
||
| | `w+:xxx` | Wyeksportuj opcje do pliku "xxx" z dodatkowymi informacjami. | `/fset -export -help xxx`
|
||
| kbd:[Ctrl+x] | `x` | Zmień format w jakim wyświetlane są opcje. | `/fset -format`
|
||
| | `q` | Zamkknij bufor fset. | `/buffer close`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Akcja musi zostać wprowadzona z linii poleceń i potwierdzona przez kbd:[Enter].
|
||
|
||
[[key_bindings_script_buffer]]
|
||
==== Skróty klawiszowe w buforze skryptów
|
||
|
||
Te skróty klawiszowe i akcje mogą zostać użyte w oknie skryptów (zobacz <<scripts_plugins,wtyczka script>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Akcja ^(1)^ | Opis | Komenda
|
||
| kbd:[↑] | | Przejdź linię wyżej. | `/script up`
|
||
| kbd:[↓] | | Przejdź linię niżej. | `/script down`
|
||
| kbd:[PgUp] | | Przewiń stronę do góry. | `/window page_up`
|
||
| kbd:[PgDn] | | Przewiń stronę w dół. | `/window page_down`
|
||
| kbd:[Alt+i] | `i` | Zainstaluj skrypt. | `/script install`
|
||
| kbd:[Alt+r] | `r` | Usuń skrypt. | `/script remove`
|
||
| kbd:[Alt+l] (`L`) | `l` | Załaduj skrypt. | `/script load`
|
||
| kbd:[Alt+u] | `u` | Wyładuj skrypt. | `/script unload`
|
||
| kbd:[Alt+Shift+A] | `A` | Automatycznie ładuj skrypt. | `/script toggleautoload`
|
||
| kbd:[Alt+h] | `h` | Zablokuj/odblokuj skrypt. | `/script hold`
|
||
| kbd:[Alt+v] | `v` | Pokarz skrypt. | `/script show`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Akcja musi zostać wprowadzona z linii poleceń i potwierdzona przez kbd:[Enter].
|
||
|
||
[[mouse]]
|
||
=== Wsparcie myszy
|
||
|
||
WeeChat obsługuje kliknięcia myszy i gesty. Działa to z lokalnym terminalem,
|
||
jak i zdalnie przez połączenie ssh z lub bez użycia screena/tmuxa.
|
||
|
||
[[mouse_enable]]
|
||
==== Włączenie obsługi myszy
|
||
|
||
Żeby włączyć obsługę myszy podczas uruchamiania:
|
||
|
||
----
|
||
/set weechat.look.mouse on
|
||
----
|
||
|
||
Żeby włączyć obsługę myszy teraz, wciśnij kbd:[Alt+m] lub wykonaj komendę:
|
||
|
||
----
|
||
/mouse enable
|
||
----
|
||
|
||
Możliwe jest czasowe wyłączenie obsługi myszy i przypisanie tego do skrótu. Na
|
||
przykład skrót kbd:[Alt+%] wyłączający obsługę myszy na 10 sekund:
|
||
|
||
----
|
||
/key bind meta-% /mouse toggle 10
|
||
----
|
||
|
||
[IMPORTANT]
|
||
Kiedy obsługa myszy jest włączona w WeeChat, wszystkie zdarzenia myszy są
|
||
przechwytywane przez WeeChat. Dlatego akcje jak kopiowanie/wklejanie lub
|
||
klikanie w URLe nie są przesyłane do terminala. +
|
||
Użycie klawisza kbd:[Shift] sprawia, że te zdarzenia są przesyłane bezpośrednio
|
||
do terminala, tak jakby obsługa myszy była wyłączona (w niektórych terminalach
|
||
jak iTerm, należy użyc klawisza kbd:[Alt] zamiast kbd:[Shift]).
|
||
|
||
[NOTE]
|
||
W razie jakichkolwiek problemów z obsługą myszy, zajrzyj do
|
||
link:weechat_faq.pl.html#mouse[WeeChat FAQ / Obsługa myszy].
|
||
|
||
[[mouse_bind_events]]
|
||
==== Przypisanie zdarzeń myszy do komend
|
||
|
||
Wiele domyślnych zdarzeń myszy jest już zdefiniowanych w WeeChat (zobacz
|
||
<<key_bindings_mouse_context,skróty dla kontekstu myszy>>).
|
||
|
||
Możesz zmienić lub dodać przypisania za pomocą komendy `/key` używając kontekstu
|
||
"mouse" (dla składni zobacz komenda <<command_weechat_key,/key>>).
|
||
|
||
Nazwa zdarzenia zawiera modyfikator (opcjonalny), nazwę klawisza/rolki i gest
|
||
(opcjonalny). Różne elementy są rozdzielane przez `+-+`.
|
||
|
||
Lista modyfikatorów:
|
||
|
||
[width="50%",cols="3m,4",options="header"]
|
||
|===
|
||
| Modyfikator | Opis
|
||
| ctrl | Klawisz kbd:[Ctrl]
|
||
| alt | Klawisz kbd:[Alt]
|
||
| ctrl-alt | Klawisze kbd:[Ctrl] + kbd:[Alt]
|
||
|===
|
||
|
||
Lista klawiszy/rolek:
|
||
|
||
[width="50%",cols="3m,4",options="header"]
|
||
|===
|
||
| Klawisz/rolka | Opis
|
||
| button1 | Lewy klawisz myszy
|
||
| button2 | Prawy klawisz myszy
|
||
| button3 | Środkowy klawisz myszy (często naciśnięcie rolki)
|
||
| button4 ... button9 | Dodatkowe klawisze
|
||
| wheelup | Rolka (w górę)
|
||
| wheeldown | Rolka (w dół)
|
||
|===
|
||
|
||
Lista gestów (tylko dla klawiszy, nie rolki):
|
||
|
||
[width="50%",cols="3m,4",options="header"]
|
||
|===
|
||
| Gest | Odległość
|
||
| gesture-up | 3 ... 19
|
||
| gesture-up-long | ≥ 20
|
||
| gesture-down | 3 ... 19
|
||
| gesture-down-long | ≥ 20
|
||
| gesture-left | 3 ... 39
|
||
| gesture-left-long | ≥ 40
|
||
| gesture-right | 3 ... 39
|
||
| gesture-right-long | ≥ 40
|
||
|===
|
||
|
||
Lista niedkończonych zdarzeń (tylko dla przycisków, użyteczne dla wtyczek/skryptów):
|
||
|
||
[width="50%",cols="3m,4",options="header"]
|
||
|===
|
||
| Zdarzenie | Opis
|
||
| event-down | Klawisz został wciśnięty ale jeszcze nie puszczony
|
||
| event-drag | Mysz została przesunięta z wciśniętym klawiszem
|
||
|===
|
||
|
||
Przykłady zdarzeń:
|
||
|
||
* `button1`
|
||
* `ctrl-button1`
|
||
* `button1-gesture-right`
|
||
* `button1-event-down`
|
||
* `button1-event-drag`
|
||
* `alt-button2-gesture-down-long`
|
||
* `wheelup`
|
||
* `ctrl-alt-wheeldown`
|
||
* ...
|
||
|
||
[TIP]
|
||
Podczas przypisywania skrótów w kontekście myszy, możliwe jest dopasowanie wielu
|
||
zdarzeń używając `+*+` na początku lub końcu nazwy, na przykład
|
||
`+button1-gesture-*+` będzie pasować do gestów wykonanych z użyciem lewego
|
||
przycisku myszy.
|
||
|
||
[TIP]
|
||
Możesz znaleźć nazwę zdarzenia za pomocą komendy `/input grab_mouse` wykonując
|
||
następnie zdarzenie za pomocą myszy. Umieści to zdarzenie w linii poleceń.
|
||
|
||
[[secured_data]]
|
||
=== Zabezpieczone dane
|
||
|
||
[[secured_data_storage]]
|
||
==== Przechowywanie
|
||
|
||
WeeChat umie szyfrować hasła lub prywatne dane i przechowuje je w pliku _sec.conf_.
|
||
|
||
Plik ten jest odczytywany przed wszystkimi innymi plikami i wartości przechowywane
|
||
w nim mogą być użyte w różnych opcjach WeeChat jak i wtyczek/skryptów.
|
||
|
||
Możesz ustawić hasło dla danych zaszyfrowanych w pliku _sec.conf_. Nie jest to
|
||
obowiązkowe ale wysoce zalecane, w przeciwnym wypadku dane są zapisywane jako
|
||
zwykły tekst.
|
||
|
||
----
|
||
/secure passphrase to jest moje hasło
|
||
----
|
||
|
||
Kiedy hasło jest ustawione, WeeChat poprosi o jego podanie przy uruchomieniu
|
||
(ale nie podczas `upgrade`).
|
||
|
||
Możesz zmienić to zachowanie i użyć pliku z zapisanym hasłem (zobacz opcję
|
||
<<option_sec.crypt.passphrase_file,sec.crypt.passphrase_file>>).
|
||
|
||
[[secured_data_encryption]]
|
||
===== Szyfrowanie
|
||
|
||
Szyfrowanie danych odbywa się w 3 krokach:
|
||
|
||
. Pozyskanie klucza z hasła (z opcjonalną solą).
|
||
. Wyliczenia hasha danych do zaszyfrowania.
|
||
. Szyfrowanie hash + dane (wynik to: sól + zaszyfrowany hash/dane).
|
||
|
||
[NOTE]
|
||
Tryb blokowy szyfru to _CFB_.
|
||
|
||
Wynik jest zapisywany jako ciąg heksadecymalny w pliku _sec.conf_, na przykład:
|
||
|
||
----
|
||
[data]
|
||
__passphrase__ = on
|
||
freenode = "53B1C86FCDA28FC122A95B0456ABD79B5AB74654F21C3D099A6CCA8173239EEA59533A1D83011251F96778AC3F5166A394"
|
||
----
|
||
|
||
[[secured_data_decryption]]
|
||
===== Deszyfrowanie
|
||
|
||
Deszyfrowanie danych odbywa się w 3 krokach:
|
||
|
||
. Pozyskanie klucza za pomocą soli i hasła.
|
||
. Deszyfrowanie hash + dane.
|
||
. Sprawdzenie czy odszyfrowany hash == hash danych.
|
||
|
||
[[secured_data_manage]]
|
||
==== Zarządzanie zabezpieczonymi danymi
|
||
|
||
W celu dodania bezpiecznych danych użyj `/secure set`, na przykład hasło dla
|
||
serwera IRC _freenode_:
|
||
|
||
----
|
||
/secure set freenode mojehasło
|
||
----
|
||
|
||
Dla wygody, zabezpieczone dane mogą być wyświetlone w dedykowanym buforze (kbd:[Alt+v]
|
||
w buforze, w celu wyświetlenia wartości), po prostu wykonaj:
|
||
|
||
----
|
||
/secure
|
||
----
|
||
|
||
Bezpieczne dane mogą zostać użyte w opcjach zawierających prywatne dane jak
|
||
hasła, za pomocą formatu: "${sec.data.xxx}", gdzie "xxx" to nazwa zabezpieczonych
|
||
danych (utworzone za pomocą `/secure set xxx ...`). +
|
||
Pełną listę dostępnych opcji można uzyskać wykonując `/help secure`.
|
||
|
||
W celu użycia hasła _freenode_, na przykład z
|
||
<<irc_sasl_authentication,SASL authentication>>:
|
||
|
||
----
|
||
/set irc.server.freenode.sasl_password "${sec.data.freenode}"
|
||
----
|
||
|
||
[[commands_and_options]]
|
||
=== Komendy i opcje
|
||
|
||
[[weechat_commands]]
|
||
==== Komendy WeeChat
|
||
|
||
include::autogen/user/weechat_commands.adoc[]
|
||
|
||
[[sec_options]]
|
||
==== Opcje dla bezpiecznych danych
|
||
|
||
Sekcje w pliku _sec.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| crypt | /set sec.crypt.* | Opcje szyfrowania.
|
||
| data | <<command_weechat_secure,/secure>> | Zabezpieczone dane.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/sec_options.adoc[]
|
||
|
||
[[weechat_options]]
|
||
==== Opcje WeeChat
|
||
|
||
Sekcje w pliku _weechat.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| debug | <<command_weechat_debug,/debug set>> +
|
||
/set weechat.debug.* | Poziom debugowania dla rdzenia i wtyczek (opcje mogą być dodawane/usuwane w sekcji).
|
||
| startup | /set weechat.startup.* | Opcje dla startu aplikacji.
|
||
| look | /set weechat.look.* | Wygląd.
|
||
| palette | <<command_weechat_color,/color alias>> +
|
||
/set weechat.palette.* | Aliasy kolorów (opcje mogą być dodawane/usuwane w sekcji).
|
||
| color | /set weechat.color.* | Kolory.
|
||
| completion | /set weechat.completion.* | Opcje dopełnień.
|
||
| history | /set weechat.history.* | Opcje historii (komend i buforów).
|
||
| proxy | <<command_weechat_proxy,/proxy>> +
|
||
/set weechat.proxy.* | Opcje proxy.
|
||
| network | /set weechat.network.* | Opcje sieci/SSL.
|
||
| bar | <<command_weechat_bar,/bar>> +
|
||
/set weechat.bar.* | Opcje pasków.
|
||
| layout | <<command_weechat_layout,/layout>> | Układy.
|
||
| notify | <<command_weechat_buffer,/buffer notify>> | Poziomy powiadomień dla buforów (opcje mogą być dodawane/usuwane w sekcji).
|
||
| filter | <<command_weechat_filter,/filter>> | Filtry.
|
||
| key | <<command_weechat_key,/key>> | Skróty klawiszowe dla domyślnego kontekstu.
|
||
| key_search | <<command_weechat_key,/key>> | Skróty klawiszowe dla kontekstu wyszukiwania.
|
||
| key_cursor | <<command_weechat_key,/key>> | Skróty klawiszowe dla kontekstu kursora.
|
||
| key_mouse | <<command_weechat_key,/key>> | Skróty klawiszowe dla kontekstu myszy.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/weechat_options.adoc[]
|
||
|
||
[[plugins]]
|
||
== Wtyczki
|
||
|
||
Wtyczka jest biblioteka dynamiczną, napisaną w C i skompilowaną, która jest
|
||
ładowana przez WeeChat.
|
||
W systemach GNU/Linux plik ma rozszerzenie ".so", w Windowsie ".dll".
|
||
|
||
Znalezione wtyczki są automatycznie ładowane podczas uruchamiania WeeChat,
|
||
możliwe jest również ładowanie lub wyładowywanie wtyczek podczas pracy WeeChat.
|
||
|
||
Ważne jest, aby odróżniać _wtyczkę_ od _skryptu_: _wtyczka_ jest to plik binarny
|
||
skompilowany i ładowany za pomocą polecenia `/plugin`, natomiast _skrypt_ to
|
||
plik tekstowy, ładowany za pomocą wtyczki jak na przykład _python_ za pomocą
|
||
polecenia `/python`.
|
||
|
||
Możesz użyć komendy `/plugin` żeby załadować/wyładować wtyczkę, lub wyświetlić
|
||
wszystkie załadowane wtyczki.
|
||
|
||
Podcza wyładowywania wtyczki WeeChat usówa:
|
||
|
||
* bufory
|
||
* opcje konfiguracyjne (options są zapisywane w plikach)
|
||
* wszystkie hooki: komendy, modyfikatory, procesy, etc.
|
||
* infos i infolists
|
||
* hdata
|
||
* elementy pasków.
|
||
|
||
Przykłady ładowania, wyładowywania i wyświetlania załadowanych wtyczek:
|
||
|
||
----
|
||
/plugin load irc
|
||
/plugin unload irc
|
||
/plugin list
|
||
----
|
||
|
||
Domyślne wtyczki:
|
||
|
||
[width="100%",cols="1,8",options="header"]
|
||
|===
|
||
| Wtyczka | Opis
|
||
| alias | Definiuje aliasy dla komend.
|
||
| buflist | Element paska z listą buforów.
|
||
| charset | Ustawianie kodowania dla buforów.
|
||
| exec | Wykonuje zewnętrzną komendę z poziomu WeeChat.
|
||
| fifo | Kolejka FIFO używana do zdalnego wysyłania poleceń dla WeeChat.
|
||
| fset | Szybkie ustawianie opcji WeeChat i wtyczek.
|
||
| irc | Protokół IRC.
|
||
| logger | Logowanie zawartości buforów do plików.
|
||
| relay | Przekazuje dane przez sieć.
|
||
| script | Zarządzanie skryptami.
|
||
| python | Wsparcie dla skryptów napisanych w Pythonie.
|
||
| perl | Wsparcie dla skryptów napisanych w Perlu.
|
||
| ruby | Wsparcie dla skryptów napisanych w Ruby.
|
||
| lua | Wsparcie dla skryptów napisanych w Lua.
|
||
| tcl | Wsparcie dla skryptów napisanych w Tcl.
|
||
| guile | Wsparcie dla skryptów napisanych w Guile (scheme).
|
||
| javascript | Wsparcie dla skryptów napisanych w JavaScript.
|
||
| php | Wsparcie dla skryptów napisanych w PHP.
|
||
| spell | Sprawdzanie pisowni w linii poleceń.
|
||
| trigger | Zamiana tekstu i wykonywanie komend dla zdarzeń wywołanych przez WeeChat/wtyczki.
|
||
| xfer | Przesyłanie plików i bezpośredni chat.
|
||
|===
|
||
|
||
Więcej informacji o wtyczkach i tworzeniu skryptów (przez API), można znaleźć w
|
||
link:weechat_plugin_api.en.html[Opisie API wtyczek] (Angielski) i
|
||
link:weechat_scripting.pl.html[Poradniku pisania skryptów].
|
||
|
||
[[alias_plugin]]
|
||
=== Alias
|
||
|
||
Wtyczka alias pozwala tworzyć aliasy dla komend (z WeeChat lub innych wtyczek).
|
||
|
||
Niektóre aliasy tworzone są domyślnie z nazwami pisanymi wielkimi literami
|
||
(żeby można było je odróżnić od standardowch poleceń); komendy w WeeChat nie
|
||
rozróżniają wielkości znaków dlatego na przykład `/close` wywoła alias `/CLOSE`.
|
||
|
||
Lista domyślnych aliasów:
|
||
|
||
include::autogen/user/alias_default_aliases.adoc[]
|
||
|
||
[[alias_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/alias_commands.adoc[]
|
||
|
||
[[alias_options]]
|
||
==== Options
|
||
|
||
Ssekcje w pliku _alias.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| cmd | <<command_alias_alias,/alias>> +
|
||
/set alias.cmd.* | Commands for aliases.
|
||
| completion | <<command_alias_alias,/alias>> +
|
||
/set alias.completion.* | Completions for aliases.
|
||
|===
|
||
|
||
[[buflist_plugin]]
|
||
=== Buflist
|
||
|
||
Wtyczka buflist wyświetla listę buforów w elemencie paska nazwanym "buflist"
|
||
(dostępne są również dwa dodatkowe elementy "buflist2" oraz "buflist3"). +
|
||
Domyślny pasek "buflist" jest tworzony podczas uruchomieina z włączoną wtyczką.
|
||
|
||
[[buflist_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/buflist_commands.adoc[]
|
||
|
||
[[buflist_options]]
|
||
==== Options
|
||
|
||
Sekcje w pliku _buflist.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| format | /set buflist.format.* | Formaty użyte do wyświetlania listy buforów.
|
||
| look | /set buflist.look.* | Wygląd elementów na liście buforów.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/buflist_options.adoc[]
|
||
|
||
[[charset_plugin]]
|
||
=== Charset
|
||
|
||
Wtyczka charset pozwala na zmianę kodowania dla wysyłanych i otrzymywanych danych.
|
||
|
||
Można zdefiniować domyślne kodowanie, oraz dla poszczególnych buforów (lub grup
|
||
buforów).
|
||
|
||
Ta wtyczka jest opcjonalna, jednak zalecana: jeśli nie jest załadowana WeeChat
|
||
może odczytywać/zapisywać dane tylko w UTF-8.
|
||
|
||
Ta wtyczka powinna zostać automatycznie załadowana przy uruchomieniu WeeChat.
|
||
Aby się upewnić, że została załadowana, spróbuj:
|
||
|
||
----
|
||
/charset
|
||
----
|
||
|
||
Jeśli komenda nie zostanie znaleziona, załaduj tą wtyczkę za pomocą:
|
||
|
||
----
|
||
/plugin load charset
|
||
----
|
||
|
||
Jeśli wtyczka nie zostanie znaleziona, powinieneś skompilować ponownie WeeChat z
|
||
wtyczkami i wsparciem dla charset.
|
||
|
||
Kiedy wtyczka charset zostanie uruchomiona wyświetla kodowanie terminala i.
|
||
wewnętrzne.
|
||
Kodowanie terminala zależy od ustawień systemu, a wewnętrzne to UTF-8.
|
||
|
||
Na przykład:
|
||
|
||
....
|
||
charset: terminal: ISO-8859-15, internal: UTF-8
|
||
....
|
||
|
||
[[charset_set]]
|
||
==== Ustawianie kodowania
|
||
|
||
Żeby ustawić globalne kodowanie dla wysyłanych i otrzymywanych danych należy
|
||
użyć komendy `/set`.
|
||
|
||
Na przykład:
|
||
|
||
----
|
||
/set charset.default.decode ISO-8859-15
|
||
/set charset.default.encode ISO-8859-15
|
||
----
|
||
|
||
Jeżeli globalna wartość dla kodowania nie jest ustawiona (na przykład podczas
|
||
pierwszego zaladowania wtyczki), zostanie automatycznie ustawione na kodowanie
|
||
terminala (jeśli jest inne niż UTF-8), lub domyślnie na _ISO-8859-1_.
|
||
|
||
Domyślnie kodowanie dla wysyłanych danych nie jest ustawione, dane domyślnie
|
||
wysyłane są w kodowaniu wewnętrznym (UTF-8).
|
||
|
||
W celu ustawienia kodowania dla serwera IRC, należy wywołać komendę `/charset`
|
||
w buforze serwera.
|
||
Jeśli zostanie podane tylko kodowanie, zostanie ono użyte dla wysyłania i odbioru.
|
||
|
||
Na przykład:
|
||
|
||
----
|
||
/charset ISO-8859-15
|
||
----
|
||
|
||
Jest równoważne z:
|
||
|
||
----
|
||
/charset decode ISO-8859-15
|
||
/charset encode ISO-8859-15
|
||
----
|
||
|
||
Aby ustawić kodowanie dla kanału (lub prywatnej rozmowy) należy wykonać to samo,
|
||
co w przypadku serwera, tylko w buforze kanału (lub prywatnej rozmowy).
|
||
|
||
Aby ustawić kodowanie dla wszystkich kanałów/rozmów prywatnych na danym serwerze:
|
||
|
||
----
|
||
/set charset.encode.irc.freenode ISO-8859-15
|
||
----
|
||
|
||
W celu wyświetlenia wszystkich ustawionych kodowań, wykonaj:
|
||
|
||
----
|
||
/set charset.*
|
||
----
|
||
|
||
[[charset_troubleshooting]]
|
||
==== Rozwiązywanie problemów
|
||
|
||
W razie jakichś problemów z kodowaniem, zajrzyj do link:weechat_faq.pl.html#charset[WeeChat FAQ / Charset].
|
||
|
||
[[charset_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/charset_commands.adoc[]
|
||
|
||
[[charset_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _charset.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| default | /set charset.default.* | Domyślne kodowanie.
|
||
| decode | <<command_charset_charset,/charset decode>> +
|
||
/set charset.decode.* | Kodowanie dla wiadomości przychodzących w buforach (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
| encode | <<command_charset_charset,/charset encode>> +
|
||
/set charset.encode.* | Kodowanie dla wiadomości wychodzących w buforach (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/charset_options.adoc[]
|
||
|
||
[[exec_plugin]]
|
||
=== Exec
|
||
|
||
Komenda `/exec` pozwala wykonać zewnętrzne polecenie wewnątrz WeeChat i wyświetlić
|
||
jej wynik lokalnie lub wysłać do bufora.
|
||
|
||
[[exec_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/exec_commands.adoc[]
|
||
|
||
[[exec_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _exec.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| command | /set exec.command.* | Opcje dla komend.
|
||
| color | /set exec.color.* | Kolory.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/exec_options.adoc[]
|
||
|
||
[[fifo_plugin]]
|
||
=== Fifo
|
||
|
||
Możesz zdalnie kontrolować WeeChat, poprzez wysyłanie komend lub tekstu do
|
||
kolejki FIFO (jeśli opcja "fifo.file.enabled" jest włączona, domyślnie jest
|
||
włączona).
|
||
|
||
Kolejka FIFO znajduje się w katalogu _~/.weechat/_ i domyślnie nazywa się _weechat_fifo_.
|
||
|
||
Składnia dla komend/tekstu przekazywanego do kolejki FIFO wygląda następująco:
|
||
|
||
....
|
||
wtyczka.bufor *tekst lub komenda
|
||
*tekst lub komenda
|
||
....
|
||
|
||
Kilka przykładów:
|
||
|
||
* Zmiana nicka na serwerze IRC freenode na "newnick":
|
||
|
||
----
|
||
$ echo 'irc.server.freenode */nick newnick' >~/.weechat/weechat_fifo
|
||
----
|
||
|
||
* Wysłanie wiadomości na kanał IRC #weechat:
|
||
|
||
----
|
||
$ echo 'irc.freenode.#weechat *hello!' >~/.weechat/weechat_fifo
|
||
----
|
||
|
||
* Wysłanie wiadomości do obecnego bufora:
|
||
|
||
----
|
||
$ echo '*hello!' >~/.weechat/weechat_fifo
|
||
----
|
||
|
||
* Wysłanie dwóch komend do wyładowania/przeładowania skryptów Python (należy
|
||
oddzielić je za pomocą "\n"):
|
||
|
||
----
|
||
$ printf '%b' '*/python unload\n*/python autoload\n' >~/.weechat/weechat_fifo
|
||
----
|
||
|
||
[[fifo_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/fifo_commands.adoc[]
|
||
|
||
[[fifo_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _fifo.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| plik | /set fifo.file.* | Kontrola kolejki FIFO.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/fifo_options.adoc[]
|
||
|
||
[[fset_plugin]]
|
||
=== Fset
|
||
|
||
Wtyczka Fast Set wyświetla listę opcji w buforze i pomaga w ustawianiu opcji
|
||
WeeChat i wtyczek.
|
||
|
||
[[fset_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/fset_commands.adoc[]
|
||
|
||
[[fset_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _fset.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| color | /set fset.color.* | Kolory.
|
||
| format | /set fset.format.* | Formaty używane do wyświetlenia listy opcji.
|
||
| look | /set fset.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/fset_options.adoc[]
|
||
|
||
[[irc_plugin]]
|
||
=== IRC
|
||
|
||
Wtyczka IRC jest zaprojektowana do prowadzenia rozmów z innymi osobami przez
|
||
protokół IRC.
|
||
|
||
Jest multi-serwerowa i oferuje wszystkie wspierane komendy IRC włącznie z
|
||
rozmowami DCC i transferami plików (poprzez wtyczkę xfer, zobacz
|
||
<<xfer_plugin,Wtyczka xfer>>).
|
||
|
||
[[irc_command_line_options]]
|
||
==== Opcje z linii poleceń
|
||
|
||
Możliwe jest podanie adresu URL do jednego lub wielu serwerów IRC:
|
||
|
||
----
|
||
irc[6][s]://[nick[:hasło]@]adres.serwera.irc[:port][/kanał][,kanał[...]]
|
||
----
|
||
|
||
Przykład wejścia na kanały _#weechat_ i _#toto_ na serwerze _chat.freenode.net_,
|
||
na domyślnym porcie (6667), z nickiem _nono_:
|
||
|
||
----
|
||
$ weechat irc://nono@chat.freenode.net/#weechat,#toto
|
||
----
|
||
|
||
[[irc_ssl_certificates]]
|
||
==== Certyfikaty SSL
|
||
|
||
Podczas łączenia się z serwerem IRC, WeeChat domyślnie sprawdza czy połączenie
|
||
jest w pełni zaufane.
|
||
|
||
Niektóre opcje są używane do kontroli połączenia SSL:
|
||
|
||
weechat.network.gnutls_ca_file::
|
||
ścieżka do pliku z organami certyfikującymi (domyślnie: "%h/ssl/CAs.pem")
|
||
|
||
irc.server.xxx.ssl_cert::
|
||
certyfikat SSL używany do automatycznej identyfikacji twojego nicka (na
|
||
przykład CertFP w sieci oftc, zobacz niżej)
|
||
|
||
irc.server.xxx.ssl_dhkey_size::
|
||
rozmiar klucza użytego podczas wymiany kluczy Diffie-Hellman (domyślnie: 2048)
|
||
|
||
irc.server.xxx.ssl_verify::
|
||
sprawdź, że połączenie SSL jest w pełni zaufane (domyślnie włączone)
|
||
|
||
[NOTE]
|
||
Opcja "ssl_verify" jest domyślnie włączona, weryfikacja jest restrykcyjna i może
|
||
się nie powieść, nawet jeśli wszystko było OK w wersjach przed 0.3.1.
|
||
|
||
[[irc_connect_oftc_with_certificate]]
|
||
===== Pierwszy przykład: połączenie z oftc i sprawdzenie certyfikatu
|
||
|
||
* Import certyfikatu w kosoli:
|
||
|
||
----
|
||
$ mkdir -p ~/.weechat/ssl
|
||
$ wget -O ~/.weechat/ssl/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt
|
||
----
|
||
|
||
[NOTE]
|
||
Możliwe jest umieszczenie wielu certyfikatów w pliku CAs.pem.
|
||
|
||
* W WeeChat z dodanym wcześniej serwerem "oftc":
|
||
|
||
----
|
||
/connect oftc
|
||
----
|
||
|
||
[[irc_connect_oftc_with_certfp]]
|
||
===== Drugi przykład: połączenie z oftc używając CertFP
|
||
|
||
* Tworzenie certyfikatu w konsoli:
|
||
|
||
----
|
||
$ mkdir -p ~/.weechat/ssl
|
||
$ cd ~/.weechat/ssl
|
||
$ openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
|
||
----
|
||
|
||
* W WeeChat z dodanym wcześniej serwerem "oftc":
|
||
|
||
----
|
||
/set irc.server.oftc.ssl_cert "%h/ssl/nick.pem"
|
||
/connect oftc
|
||
/msg nickserv cert add
|
||
----
|
||
|
||
Więcej informacji można znaleźć pod adresem: https://www.oftc.net/NickServ/CertFP
|
||
|
||
[[irc_sasl_authentication]]
|
||
==== Uwierzytelnianie SASL
|
||
|
||
WeeChat wspiera uwierzytelnianie SASL, używając różnych mechanizmów:
|
||
|
||
* _plain_: hasło w czystym tekście (domyślne)
|
||
* _ecdsa-nist256p-challenge_: klucz prywatny/publiczny
|
||
* _external_: certyfikat SSL po stronie klienta
|
||
* _dh-blowfish_: hasło zaszyfrowane algorytmem blowfish
|
||
(*niebezpieczne*, nie zalecane)
|
||
* _dh-aes_: hasło zaszyfrowane algorytmem AES
|
||
(*niebezpieczne*, nie zalecane)
|
||
|
||
Opcje dla serwerów to:
|
||
|
||
* _sasl_mechanism_: mechanizm do użycia (zobacz wyżej)
|
||
* _sasl_timeout_: limit czasu (w sekundach) na uwierzytelnienie
|
||
* _sasl_fail_: akcja wykonywana jeśli uwierzytelnienie się nie powiedzie
|
||
* _sasl_username_: nazwa użytkownika (nick)
|
||
* _sasl_password_: hasło
|
||
* _sasl_key_: plik z kluczem prywatnym ECc (dla mechanizmu
|
||
_ecdsa-nist256p-challenge_)
|
||
|
||
[[irc_sasl_ecdsa_nist256p_challenge]]
|
||
===== SASL ECDSA-NIST256P-CHALLENGE
|
||
|
||
Musisz wygenerować klucz prywatny w celu uwierzytelnienia za pomocą mechanizmu
|
||
ECDSA-NIST256P-CHALLENGE (hasło nie potrzebne do połączenia).
|
||
|
||
Klucz można wygenerować za pomocą komendy:
|
||
|
||
----
|
||
$ openssl ecparam -genkey -name prime256v1 -out ~/.weechat/ecdsa.pem
|
||
----
|
||
|
||
Klucz publiczny (zakodowany za pomocą base64) uzyskujemy wywołując komendę:
|
||
|
||
----
|
||
$ openssl ec -noout -text -conv_form compressed -in ~/.weechat/ecdsa.pem | grep '^pub:' -A 3 | tail -n 3 | tr -d ' \n:' | xxd -r -p | base64
|
||
----
|
||
|
||
Połącz się do serwera, zidentyfikuj (na przykład za pomocą "nickserv identify")
|
||
i ustaw swój klucz publiczny dla swojego konta, za pomocą nickserva (zamień
|
||
wartość base64 wartościa dla swojego klucza):
|
||
|
||
----
|
||
/connect freenode
|
||
/msg nickserv identify your_password
|
||
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
|
||
----
|
||
|
||
Konfiguracja opcji SASL dla serwera:
|
||
|
||
----
|
||
/set irc.server.freenode.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.freenode.sasl_username "twój_nick"
|
||
/set irc.server.freenode.sasl_key "%h/ecdsa.pem"
|
||
----
|
||
|
||
Ponowne połączenie z serwerem:
|
||
|
||
----
|
||
/reconnect freenode
|
||
----
|
||
|
||
[[irc_tor_freenode]]
|
||
==== Połączenie z siecią Freenode za pomocą TOR/SASL
|
||
|
||
Jako dodatek do SSL, serwery Freenode wspierają połączenia za pomocą sieci TOR
|
||
(https://www.torproject.org/), sieci wirtualnych tuneli umożliwiających ludziom
|
||
oraz grupom polepszyć swoją prywatność i bezpieczeństwo w Internecie.
|
||
|
||
Pierwszym krokiem jest instalacja TORa. Dla Debiana (i pochodnych):
|
||
|
||
----
|
||
$ sudo apt-get install tor
|
||
----
|
||
|
||
W WeeChat należy stworzyć proxy socks5 dla serwisu TOR (nazwa hosta/IP i port
|
||
zależą od twojej konfiguracji TORa):
|
||
|
||
----
|
||
/proxy add tor socks5 127.0.0.1 9050
|
||
----
|
||
|
||
Teraz dodaj nowy serwer na przykład:
|
||
|
||
----
|
||
/server add freenode-tor ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion
|
||
----
|
||
|
||
[NOTE]
|
||
Jeśli używasz starszej wersji TORa (przed 0.3.5) powinieneś użyć adresu
|
||
`freenodeok2gncmy.onion`.
|
||
|
||
Ustaw proxy dla TOR:
|
||
|
||
----
|
||
/set irc.server.freenode-tor.proxy "tor"
|
||
----
|
||
|
||
Ustaw uwierzytelnianie SASL z użyciem ECDSA-NIST256P-CHALLENGE (zobacz rozdział
|
||
<<irc_sasl_ecdsa_nist256p_challenge,SASL ECDSA-NIST256P-CHALLENGE>> żeby dowiedzieć
|
||
się jak wygenerować klucz prywatny):
|
||
|
||
----
|
||
/set irc.server.freenode-tor.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.freenode-tor.sasl_username "twój_użytkownik"
|
||
/set irc.server.freenode-tor.sasl_key "%h/ecdsa.pem"
|
||
----
|
||
|
||
Na koniec połącz się z serwerem:
|
||
|
||
----
|
||
/connect freenode-tor
|
||
----
|
||
|
||
Więcej informacji o Freenode i TOR:
|
||
https://freenode.net/kb/answer/chat#accessing-freenode-via-tor
|
||
|
||
|
||
[[irc_smart_filter_join_part_quit]]
|
||
==== Inteligentne filtry dla wiadomości
|
||
|
||
Inteligentny filtr umożliwia filtrowanie informacji o wejściu/opuszczeniu/wyjściu
|
||
z kanału, kiedy dany nick nie powiedział nic na kanale w ciągu ostatnich X minut.
|
||
|
||
Jest on domyślnie włączony, ale należy dodać filtr do ukrywania linii w buforach,
|
||
na przykład:
|
||
|
||
----
|
||
/filter add irc_smart * irc_smart_filter *
|
||
----
|
||
|
||
Możliwe jest tworzenie filtru tylko dla jednego kanału lub kanałów zaczynających
|
||
się od tej samej nazwy (zobacz `/help filter`):
|
||
|
||
----
|
||
/filter add irc_smart_weechat irc.freenode.#weechat irc_smart_filter *
|
||
/filter add irc_smart_weechats irc.freenode.#weechat* irc_smart_filter *
|
||
----
|
||
|
||
Można ukrywac tylko wejściu lub opuszczenia/wyjścia z kanału za pomocą tych opcji:
|
||
|
||
----
|
||
/set irc.look.smart_filter_join on
|
||
/set irc.look.smart_filter_quit on
|
||
----
|
||
|
||
Ustawianie opóźnienia (w minutach):
|
||
|
||
----
|
||
/set irc.look.smart_filter_delay 5
|
||
----
|
||
|
||
Jeśli osoba nie odzywała się w ciągu ostatnich 5 minut, jej wejście i/lub
|
||
opuszczenie/wyjście zostanie ukryte na kanale.
|
||
|
||
[[irc_ctcp_replies]]
|
||
==== Odpowiedzi CTCP
|
||
|
||
Możliwe jest dostosowywanie odpowiedzi CTCP, lub blokowanie niektórych zapytań
|
||
CTCP (brak odpowiedzi).
|
||
|
||
Na przykład, ustawianie własnej odpowiedzi na CTCP "VERSION", możliwe jest za
|
||
pomocą polecenia:
|
||
|
||
----
|
||
/set irc.ctcp.version "I'm running WeeChat $version, it rocks!"
|
||
----
|
||
|
||
Jeśli chcesz zablokować CTCP "VERSION" (nie odpowiadać na zapytanie), ustaw
|
||
pusty ciąg:
|
||
|
||
----
|
||
/set irc.ctcp.version ""
|
||
----
|
||
|
||
Nawet odpowiedzi na nieznane zapytania CTCP mogą być dostosowywane, na przykład
|
||
odpowiedź na CTCP "BLABLA":
|
||
|
||
----
|
||
/set irc.ctcp.blabla "This is my answer to CTCP BLABLA"
|
||
----
|
||
|
||
Możliwe jest dostosowywanie odpowiedzi na CTCP tylko w obrębie serwera, używając
|
||
jego wewnętrznej nazwy przed nazwą zapytania CTCP:
|
||
|
||
----
|
||
/set irc.ctcp.freenode.version "WeeChat $version (for freenode)"
|
||
----
|
||
|
||
Jeśli chcesz przywrócić standardowe odpowiedzi dla CTCP usuń opcję:
|
||
|
||
----
|
||
/unset irc.ctcp.version
|
||
----
|
||
|
||
Następujące kody mogą być użyte w ciągach i zostaną automatycznie zamienione
|
||
przez WeeChat podczas odpowiedzi na CTCP:
|
||
|
||
[width="100%",cols="2l,4,8",options="header"]
|
||
|===
|
||
| Kod | Opis | Wartość/Przykład
|
||
| $clientinfo | Lista wspieranych CTCP | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
|
||
| $version | Wersja WeeChat | `0.4.0-dev`
|
||
| $versiongit | Wersja WeeChat + wersja git ^(1)^ | `0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
|
||
| $git | Wersja git ^(1)^ | `v0.3.9-104-g7eb5cc4`
|
||
| $compilation | Data kompilacji WeeChat | `Dec 16 2012`
|
||
| $osinfo | Informacje o systemie operacyjnym | `Linux 2.6.32-5-amd64 / x86_64`
|
||
| $site | Strona WeeChat | `https://weechat.org/`
|
||
| $download | Strona WeeChat, pobieranie | `https://weechat.org/download`
|
||
| $time | Obecna data/czas | `Sun, 16 Dec 2012 10:40:48 +0100`
|
||
| $username | Nazwa użytkownika na serwerze IRC | `name`
|
||
| $realname | Prawdziwa nazwa na serwerze IRC | `John Doe`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Wersja git jest wynikiem komendy `git describe`. Jest dostępna tylko jeśli
|
||
WeeChat został skompilowany wewnątrz repozytorium git i git był zainstalowany.
|
||
|
||
Jeśli opcje CTCP nie są zdefiniowane (domyślne), odpowiedzi CTCP to:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
| CTCP | Format odpowiedzi | Przykład
|
||
| CLIENTINFO | `$clientinfo` | `ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION`
|
||
| FINGER | `WeeChat $versiongit` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4)`
|
||
| SOURCE | `$download` | `https://weechat.org/download`
|
||
| TIME | `$time` | `Sun, 16 Dec 2012 10:40:48 +0100`
|
||
| USERINFO | `$username ($realname)` | `name (John Doe)`
|
||
| VERSION | `WeeChat $versiongit ($compilation)` | `WeeChat 0.4.0-dev (git: v0.3.9-104-g7eb5cc4) (Dec 16 2012)`
|
||
|===
|
||
|
||
[[irc_target_buffer]]
|
||
==== Bufor dla wiadomości IRC
|
||
|
||
Jest możliwe dostosowanie buforu docelowego dla wiadomości IRC (bufor użyty do
|
||
wyświetlania wiadomości) za pomocą opcji `+irc.msgbuffer.*+`.
|
||
|
||
Dla niektórych wiadomości IRC (Zobacz poniższa listę), można ustawić wartość:
|
||
|
||
current::
|
||
obecny bufor (jeśli jest to bufor IRC, lub domyślnie bufor serwera)
|
||
|
||
private::
|
||
prywatny bufor dla osoby, lub bufor obecny/serwera jeśli nie zostanie
|
||
znaleziony (zgodnie z opcją _irc.look.msgbuffer_fallback_)
|
||
|
||
server::
|
||
bufor serwera
|
||
|
||
weechat::
|
||
Bufor "rdzeń" WeeChat
|
||
|
||
Kiedy opcja nie jest ustawiona (domyślnie), WeeChat wybiera odpowiedni bufor,
|
||
zazwyczaj bufor serwera albo kanału.
|
||
|
||
Niepełna lista wiadomości IRC lub aliasów jakie można dostosować:
|
||
|
||
[width="60%",cols="^1m,^3m,8",options="header"]
|
||
|===
|
||
| wiadomość | alias | opis
|
||
| error | | błąd
|
||
| invite | | zaproszono na kanał
|
||
| join | | wejście
|
||
| kick | | wykopanie
|
||
| kill | | zabicie
|
||
| mode | | tryb
|
||
| notice | | powiadomienie
|
||
| part | | opuszczenie
|
||
| quit | | wyjście
|
||
| topic | | temat
|
||
| wallops | | wallops
|
||
| | ctcp | ctcp (wysłane lub otrzymane, w wiadomości prywatnej lub powiadomieniu)
|
||
| 221 | | ciąg trybu użytkownika
|
||
| 275 | whois | whois (bezpieczne połączenie)
|
||
| 301 | whois | whois (away)
|
||
| 303 | | ison
|
||
| 305 | unaway | unaway
|
||
| 306 | away | away
|
||
| 307 | whois | whois (zarejestrowany nick)
|
||
| 310 | whois | whois (tryb pomocy)
|
||
| 311 | whois | whois (użytkownik)
|
||
| 312 | whois | whois (serwer)
|
||
| 313 | whois | whois (operator)
|
||
| 314 | whowas | whowas
|
||
| 315 | who | who (koniec)
|
||
| 317 | whois | whois (idle)
|
||
| 318 | whois | whois (koniec)
|
||
| 319 | whois | whois (kanały)
|
||
| 320 | whois | whois (zidentyfikowany użytkownik)
|
||
| 321 | list | list (start)
|
||
| 322 | list | list (kanał)
|
||
| 323 | list | list (koniec)
|
||
| 326 | whois | whois (ma uprawnienia operatora)
|
||
| 327 | whois | whois (host)
|
||
| 328 | | URL kanału
|
||
| 329 | | data utworzenia kanału
|
||
| 330 | whois | whois (zalogowany jako)
|
||
| 331 | | brak tematu na kanale
|
||
| 332 | | temat kanału
|
||
| 333 | | informacje o temacie
|
||
| 335 | whois | whois (jest botem na)
|
||
| 338 | whois | whois (host)
|
||
| 341 | | zaproszenie
|
||
| 343 | whois | whois (is opered as)
|
||
| 344 | reop | reop dla kanału
|
||
| 345 | reop | reop dla kanału (koniec)
|
||
| 346 | invitelist | lista zaproszonych
|
||
| 347 | invitelist | lista zaproszonych (koniec)
|
||
| 348 | exceptionlist | lista wyjątków
|
||
| 349 | exceptionlist | lista wyjątków (koniec)
|
||
| 351 | | wersja serwera
|
||
| 352 | who | who
|
||
| 353 | names | lista osób na kanale
|
||
| 366 | names | koniec listy osób na kanale
|
||
| 367 | banlist | lista zbanowanych
|
||
| 368 | banlist | koniec listy zbanowanych
|
||
| 369 | whowas | whowas (koniec)
|
||
| 378 | whois | whois (łączy się z)
|
||
| 379 | whois | whois (używa trybów)
|
||
| 401 | whois | brak nicka/kanału
|
||
| 402 | whois | brak serwera
|
||
| 432 | | błędna nazwa użytkownika
|
||
| 433 | | nazwa użytkownika już zajęta
|
||
| 438 | | brak uprawnień do zmiany nicka
|
||
| 671 | whois | whois (bezpieczne połączenie)
|
||
| 728 | quietlist | cicha lista
|
||
| 729 | quietlist | koniec cichej listy
|
||
| 732 | monitor | lista monitorowanych nicków
|
||
| 733 | monitor | lista monitorowanych nicków (koniec)
|
||
| 901 | | jesteś teraz zalogowany
|
||
|===
|
||
|
||
Inne numeryczne komendy mogą również zostać spersonalizowane.
|
||
|
||
Wiadomość może być poprzedzona nazwą serwera, żeby być specyficzna dla danego
|
||
serwera irc (na przykład: `freenode.whois`).
|
||
|
||
Kilka przykładów:
|
||
|
||
* wyświetlaj wynik komendy `/whois` w prywatnym buforze:
|
||
|
||
----
|
||
/set irc.msgbuffer.whois private
|
||
----
|
||
|
||
* przywróć domyślny bufor dla komendy `/whois` (bufor serwera):
|
||
|
||
----
|
||
/unset irc.msgbuffer.whois
|
||
----
|
||
|
||
* wyświetlaj zaproszenia w obecnym buforze, tylko na serwerze "freenode":
|
||
|
||
----
|
||
/set irc.msgbuffer.freenode.invite current
|
||
----
|
||
|
||
* wyświetlaj wiadomość "303" (ison) w buforze "core" WeeChat:
|
||
|
||
----
|
||
/set irc.msgbuffer.303 weechat
|
||
----
|
||
|
||
[[irc_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/irc_commands.adoc[]
|
||
|
||
[[irc_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _irc.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set irc.look.* | Wygląd.
|
||
| color | /set irc.color.* | Kolory.
|
||
| network | /set irc.network.* | Opcje sieci.
|
||
| msgbuffer | /set irc.msgbuffer.* | <<irc_target_buffer,Bufor dla wiadomości IRC>> (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
| ctcp | /set irc.ctcp.* | <<irc_ctcp_replies,Odpowiedzi CTCP>> (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
| ignore | <<command_irc_ignore,/ignore>> | Osoby ignorowane.
|
||
| server_default | /set irc.server_default.* | Domyślne ustawienia dla serwerów (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
| server | <<command_irc_server,/server>> +
|
||
/set irc.server.* | Serwery.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/irc_options.adoc[]
|
||
|
||
[[logger_plugin]]
|
||
=== Logger
|
||
|
||
Wtyczka logger pozwala zapisywać zawartość bufora do pliku, oraz wybrać co i jak
|
||
ma być zapisywane.
|
||
|
||
[[logger_log_levels]]
|
||
==== Poziomy logowania
|
||
|
||
Logowanie odbywa się dla odpowiedniego poziomu dla każdego bufora. Domyślny
|
||
poziom to 9 (logowane są wszystkie wiadomości wyświetlane w buforze).
|
||
Możesz zmienić poziom dla pojedynczego bufora lub grupy buforów.
|
||
|
||
Dostępne są poziomy od 0 do 9. Zero oznacza "nic nie loguj", a 9 oznacza "loguj
|
||
wszystko".
|
||
|
||
Wtyczki wykorzystują różne poziomy dla wyświetlanych wiadomości.
|
||
Wtyczka IRC używa następujących:
|
||
|
||
* poziom 1: wiadomość od użytkownika (na kanale lub prywatnie)
|
||
* poziom 2: zmiana nicka (twojego lub innego)
|
||
* poziom 3: dowolna wiadomość serwera (poza wejściem/opuszczeniem/wyjściem z kanału)
|
||
* poziom 4: wiadomości serwera o wejściu/opuszczeniu/wyjściu z kanału
|
||
|
||
Zatem jeśli ustawisz poziom 3 dla kanału IRC, WeeChat będzie logować wszystkie
|
||
wiadomości, poza tymi o wejściu/opuszczeniu/wyjściu z kanału.
|
||
|
||
Kilka przykładów:
|
||
|
||
* ustawienie poziomu 3 dla kanału IRC #weechat:
|
||
|
||
----
|
||
/set logger.level.irc.freenode.#weechat 3
|
||
----
|
||
|
||
* ustawienie poziomu 3 dla buforu serwera freenode:
|
||
|
||
----
|
||
/set logger.level.irc.server.freenode 3
|
||
----
|
||
|
||
* ustawienie poziomu 3 dla wszystkich kanałów na serwerze freenode:
|
||
|
||
----
|
||
/set logger.level.irc.freenode 3
|
||
----
|
||
|
||
* ustawienie poziomu 2 dla wszystkich buforów IRC:
|
||
|
||
----
|
||
/set logger.level.irc 2
|
||
----
|
||
|
||
[[logger_filenames_masks]]
|
||
==== Maski dla nazw plików
|
||
|
||
Możliwe jest zdefiniowanie maski dla nazwy pliku z logiem dla każdego bufora i
|
||
użycie do tego zmiennych lokalnych bufora. W celu wyświetlenia listy dostępnych
|
||
zmiennych dla bufora wykonaj:
|
||
|
||
----
|
||
/buffer localvar
|
||
----
|
||
|
||
Maski zostaną dopasowane do opcji w kolejności malejącej specyficznie dla
|
||
`logger.mask.$plugin.*`, z `logger.file.mask` jako opcją zapasową.
|
||
|
||
Na przykład, w buforze "irc.freenode.#weechat", WeeChat będzie szukał maski dla
|
||
nazwy w takiej kolejności:
|
||
|
||
----
|
||
logger.mask.irc.freenode.#weechat
|
||
logger.mask.irc.freenode
|
||
logger.mask.irc
|
||
logger.file.mask
|
||
----
|
||
|
||
Oznacza to, że można mieć maski specyficzne tylko dla niektórych serwerów IRC
|
||
("logger.mask.irc.freenode") lub dla wtyczek ("logger.mask.irc").
|
||
|
||
[[logger_files_by_date]]
|
||
===== Pliki z logami uporządkowane według daty
|
||
|
||
Żeby mieć pliki z logami uporządkowane według daty, możesz użyć specyfikatorów
|
||
daty/czasu w masce (obsługiwane formaty można znaleźć w `man strftime`),
|
||
na przykład:
|
||
|
||
----
|
||
/set logger.file.mask "%Y/%m/$plugin.$name.weechatlog"
|
||
----
|
||
|
||
Spowoduje powstanie następującej struktury:
|
||
|
||
....
|
||
~/.weechat
|
||
└── logs
|
||
├── 2010
|
||
│ ├── 11
|
||
│ │ ├── irc.server.freenode.weechatlog
|
||
│ │ └── irc.freenode.#weechat.weechatlog
|
||
│ └── 12
|
||
│ ├── irc.server.freenode.weechatlog
|
||
│ └── irc.freenode.#weechat.weechatlog
|
||
├── 2011
|
||
│ ├── 01
|
||
│ │ ├── irc.server.freenode.weechatlog
|
||
│ │ └── irc.freenode.#weechat.weechatlog
|
||
│ ├── 02
|
||
...
|
||
....
|
||
|
||
[[logger_irc_files_by_server_channel]]
|
||
===== Pliki z logami IRC uporządkowane według serwera i daty
|
||
|
||
Jeśli chcesz mieć oddzielne katalogi dla serwerów IRC z oddzielnym plikiem dla
|
||
każdego kanału:
|
||
|
||
----
|
||
/set logger.mask.irc "irc/$server/$channel.weechatlog"
|
||
----
|
||
|
||
Spowoduje powstanie następującej struktury:
|
||
|
||
....
|
||
~/.weechat
|
||
└── logs
|
||
└── irc
|
||
├── freenode
|
||
│ ├── freenode.weechatlog
|
||
│ ├── #weechat.weechatlog
|
||
│ └── #mychan.weechatlog
|
||
├── oftc
|
||
│ ├── oftc.weechatlog
|
||
│ ├── #chan1.weechatlog
|
||
│ └── #chan2.weechatlog
|
||
...
|
||
....
|
||
|
||
[[logger_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/logger_commands.adoc[]
|
||
|
||
[[logger_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _logger.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set logger.look.* | Wygląd.
|
||
| color | /set logger.color.* | Kolory.
|
||
| file | /set logger.file.* | Opcje dla plików z logami.
|
||
| level | /set logger.level.* | Poziomy logowania dla buforów (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
| mask | /set logger.mask.* | Maski dla nazw plików dla buforów (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/logger_options.adoc[]
|
||
|
||
[[relay_plugin]]
|
||
=== Relay
|
||
|
||
Wtyczka relay jest używana do przekazywania danych przez sieć, z użyciem różnych
|
||
protokołów:
|
||
|
||
* _irc_: pośrednik IRC: używany do dzielenia połączeń z serwerami IRC z jednym
|
||
lub wieloma klientami IRC
|
||
* _weechat_: protokół używany przez zdalne interfejsy do wyświetlania i
|
||
interakcji z WeeChat, na przykład:
|
||
** Glowing Bear (HTML5): https://www.glowing-bear.org/
|
||
** QWeeChat (Qt): https://weechat.org/download
|
||
** WeeChat-Android (Android): https://github.com/ubergeek42/weechat-android
|
||
** weechat.el (Emacs): https://github.com/the-kenny/weechat.el
|
||
** WeeCloud (JavaScript): https://github.com/eirikb/weecloud
|
||
|
||
[[relay_password]]
|
||
==== Hasło
|
||
|
||
Zalecane jest ustawienie hasła dla pośrednika, za pomocą komendy:
|
||
|
||
----
|
||
/set relay.network.password "moje_hasło"
|
||
----
|
||
|
||
Hasło to używane jest przez protokoły _irc_ i _weechat_.
|
||
|
||
[[relay_totp]]
|
||
==== TOTP
|
||
|
||
TOTP (Time-based One-Time Password) może zostać użyte jako drugi stopień uwierzytelnienia
|
||
dla protokołu _weechat_, poza normalnym hasłem.
|
||
|
||
Jest to opcjomalne ale podnosi to poziom bezpieczeństwa.
|
||
This is optional and increases the security level.
|
||
|
||
Hasła jednorazowe mogą być generowane między innymi za pomocą:
|
||
|
||
* FreeOTP:
|
||
https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp[Android],
|
||
https://itunes.apple.com/fr/app/freeotp-authenticator/id872559395[iOS]
|
||
(https://freeotp.github.io/[website])
|
||
* Google Authenticator:
|
||
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2[Android],
|
||
https://itunes.apple.com/fr/app/google-authenticator/id388497605[iOS]
|
||
|
||
Ten sam sekret TOTP musi być utawiony w WeeChat i aplikacji używanej do generowania haseł.
|
||
|
||
Musi to być ciąg zakodowany za pomocą base32, zawierajcy tylko litery i liczby od 2 do 7,
|
||
na przykład:
|
||
|
||
----
|
||
/set relay.network.totp_secret "secretpasswordbase32"
|
||
----
|
||
|
||
[[relay_ssl]]
|
||
==== SSL
|
||
|
||
Możesz używać SSL poprzez utworzenie certyfikatu i klucza prywatnego, oraz
|
||
użycie prefiksu "ssl." w nazwie protokołu.
|
||
|
||
Domyślna lokalizacja pliku z certyfikatem/kluczem to _~/.weechat/ssl/relay.pem_
|
||
(opcja <<option_relay.network.ssl_cert_key,relay.network.ssl_cert_key>>).
|
||
|
||
Możesz utworzyć certyfikat i klucz prywatny wykonując poniższe komendy:
|
||
|
||
----
|
||
$ mkdir -p ~/.weechat/ssl
|
||
$ cd ~/.weechat/ssl
|
||
$ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
|
||
----
|
||
|
||
Jeśli WeeChat jest już uruchomiony, możesz przładować certyfikat i klucz prywatny
|
||
za pomocą polecenia:
|
||
|
||
----
|
||
/relay sslcertkey
|
||
----
|
||
|
||
[[relay_irc_proxy]]
|
||
==== IRC proxy
|
||
|
||
Wtyczka relay może zachowywać się jak proxy dla IRC: będzie symulować serwer IRC,
|
||
możesz się połączyć do niego za pomocą dowolnego klienta IRC (w tym WeeChat).
|
||
|
||
Możesz zdefiniować oddzielne porty dla serwerów IRC, lub jeden dla wszystkich.
|
||
|
||
Jeśli używasz jednego portu dla wszystkich serwerów, klient musi wysłać
|
||
wewnętrzną nazwę serwera w komendzie IRC "PASS", zachowując format
|
||
(zobacz poniższy przykład):
|
||
|
||
----
|
||
PASS serwer:hasło
|
||
----
|
||
|
||
Przykład: proxy IRC z SSL dla dowolnego serwera (klient wybiera):
|
||
|
||
----
|
||
/relay add ssl.irc 8000
|
||
----
|
||
|
||
Przykład: proxy IRC bez SSL tylko dla serwera "freenode":
|
||
|
||
----
|
||
/relay add irc.freenode 8000
|
||
----
|
||
|
||
Teraz możesz się połączyć na porcie 8000 za pomocą dowolnego klienta IRC
|
||
używając hasła serwera "moje_hasło" (lub "freenode:moje_hasło" jeśli żaden
|
||
serwer nie został podany w przekaźniku).
|
||
|
||
Na przykład jeśli używasz WeeChat jako klienta porednika IRC, z serwerem nazwanym
|
||
"relay" i hasłem "secret", możesz ustawić hasło za pomocą tej komendy:
|
||
|
||
----
|
||
/set irc.server.relay.password "freenode:secret"
|
||
----
|
||
|
||
[[relay_weechat_protocol]]
|
||
==== Protokół WeeChat
|
||
|
||
Wtyczka relay może wysyłać dane do zdalnego interfejsu korzystając z protokołu
|
||
WeeChat.
|
||
|
||
Możesz połączyć się zdalnym inrerfejsem, listę znajdziesz w <<relay_plugin>>.
|
||
|
||
[IMPORTANT]
|
||
WeeChat NIE MOŻE się połączyć z innym WeeChat za pomocą tego protokołu.
|
||
|
||
Na przykład:
|
||
|
||
----
|
||
/relay add weechat 9000
|
||
----
|
||
|
||
Teraz możesz się połączyć zdalnym interfejsem na porcie 9000 za pomocą hasła
|
||
"moje_hasło".
|
||
|
||
[[relay_websocket]]
|
||
==== WebSocket
|
||
|
||
Protokół WebSocket (https://tools.ietf.org/html/rfc6455[RFC 6455]) jest wspierany
|
||
dla wszystkich protokołów.
|
||
|
||
Żądanie WebSocket jest automatycznie wykrywane i socket staje się gotowy do
|
||
transmisji WebSocket jeśli wymagane nagłówki znajdują się w żądaniu oraz, gdy
|
||
źródło jest dopuszczone (zobacz opcję
|
||
<<option_relay.network.websocket_allowed_origins,relay.network.websocket_allowed_origins>>).
|
||
|
||
WebSocket może zostać otworzony w HTML5 za pomocą jednej linii w JavaScript:
|
||
|
||
[source,js]
|
||
----
|
||
websocket = new WebSocket("ws://server.com:9000/weechat");
|
||
----
|
||
|
||
Port (9000 w przykładzie) to port zdefiniowany we wtyczce relay.
|
||
Adres URL musi się zawsze kończyć "/weechat" (dla protokołów _irc_ i _weechat_).
|
||
|
||
[[relay_unix_socket]]
|
||
==== Sockety UNIXowe
|
||
|
||
Używając opcji protokołu "unix" razem z komendą `/relay`, można nasłuchiwać dowolnego
|
||
protokołu za pomocą socketu UNIXowego w podanej ścieżce. Na przykład:
|
||
|
||
----
|
||
/relay add unix.weechat %h/relay_socket
|
||
----
|
||
|
||
Pozwala to na połączenia od klientów za pomocą protokołu weechat do
|
||
_~/.weechat/relay_socket_. Jest to przydatne zwłaszcza jeśli chcemy tunelować klienty
|
||
przez SSH, w przypadku, kiedy inne porty nie moga być otwierane. Za pomocą OpenSSH:
|
||
|
||
----
|
||
$ ssh -L 9000:.weechat/relay_socket user@hostname
|
||
----
|
||
|
||
Przekerowuje to połączenia lokalnych klientów łączących się na port 9000 do intancji
|
||
WeeChat uruchomionej na "hostname".
|
||
|
||
[[relay_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/relay_commands.adoc[]
|
||
|
||
[[relay_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _relay.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set relay.look.* | Wygląd.
|
||
| color | /set relay.color.* | Kolory.
|
||
| network | /set relay.network.* | Opcje sieci.
|
||
| irc | /set relay.irc.* | Opcje specyficzne dla protokołu irc (pośrednik irc).
|
||
| port | <<command_relay_relay,/relay add>> +
|
||
/set relay.port.* | Porty używane do przekazywania (protokoły irc i weechat) (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/relay_options.adoc[]
|
||
|
||
[[scripts_plugins]]
|
||
=== Skryptowe
|
||
|
||
WeeChat posiada 8 wtyczek skryptowych: Python, Perl, Ruby, Lua, Tcl, Guile
|
||
(scheme), JavaScript i PHP.
|
||
Wtyczki te potrafią ładować, wykonywać i wyładowywać skrypty w tych językach.
|
||
|
||
Inna wtyczka nazwana "script" jest managerem skryptów i jest używana do
|
||
ładowania/wyładowywania skryptów w dowolnym języku, oraz do instalacji/usuwania
|
||
skryptów z repozytorium skryptów WeeChat, dostępnego pod adresem:
|
||
https://weechat.org/scripts
|
||
|
||
Więcej informacji o tym jak pisać skrypty lub o API WeeChat dla skryptów można
|
||
znaleźć w link:weechat_scripting.pl.html[Poradniku pisania skryptów].
|
||
|
||
[[script_commands]]
|
||
==== Komendy wtyczki script
|
||
|
||
include::autogen/user/script_commands.adoc[]
|
||
|
||
[[python_commands]]
|
||
==== Komendy wtyczki python
|
||
|
||
include::autogen/user/python_commands.adoc[]
|
||
|
||
[[perl_commands]]
|
||
==== Komendy wtyczki perl
|
||
|
||
include::autogen/user/perl_commands.adoc[]
|
||
|
||
[[ruby_commands]]
|
||
==== Komendy wtyczki ruby
|
||
|
||
include::autogen/user/ruby_commands.adoc[]
|
||
|
||
[[lua_commands]]
|
||
==== Komendy wtyczki lua
|
||
|
||
include::autogen/user/lua_commands.adoc[]
|
||
|
||
[[tcl_commands]]
|
||
==== Komendy wtyczki tcl
|
||
|
||
include::autogen/user/tcl_commands.adoc[]
|
||
|
||
[[guile_commands]]
|
||
==== Komendy wtyczki guile
|
||
|
||
include::autogen/user/guile_commands.adoc[]
|
||
|
||
[[javascript_commands]]
|
||
==== Komendy wtyczki javascript
|
||
|
||
include::autogen/user/javascript_commands.adoc[]
|
||
|
||
[[php_commands]]
|
||
==== Komendy wtyczki php
|
||
|
||
include::autogen/user/php_commands.adoc[]
|
||
|
||
[[script_options]]
|
||
==== Opcje wtyczki script
|
||
|
||
Sekcje w pliku _script.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set script.look.* | Wygląd.
|
||
| color | /set script.color.* | Kolory.
|
||
| scripts | /set script.scripts.* | Opcja dla pobierania skryptów.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/script_options.adoc[]
|
||
|
||
[[python_options]]
|
||
==== Opcje dla języka Python
|
||
|
||
Sekcje w pliku _python.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set python.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/python_options.adoc[]
|
||
|
||
[[perl_options]]
|
||
==== Opcje dla języka Perl
|
||
|
||
Sekcje w pliku _perl.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set perl.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/perl_options.adoc[]
|
||
|
||
[[ruby_options]]
|
||
==== Opcje dla języka Ruby
|
||
|
||
Sekcje w pliku _ruby.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set ruby.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/ruby_options.adoc[]
|
||
|
||
[[lua_options]]
|
||
==== Opcje dla języka Lua
|
||
|
||
Sekcje w pliku _lua.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set lua.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/lua_options.adoc[]
|
||
|
||
[[tcl_options]]
|
||
==== Opcje dla języka Tcl
|
||
|
||
Sekcje w pliku _tcl.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set tcl.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/tcl_options.adoc[]
|
||
|
||
[[guile_options]]
|
||
==== Opcje dla języka Guile
|
||
|
||
Sekcje w pliku _guile.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set guile.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/guile_options.adoc[]
|
||
|
||
[[javascript_options]]
|
||
==== Opcje dla języka Javascript
|
||
|
||
Sekcje w pliku _javascript.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set javascript.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/javascript_options.adoc[]
|
||
|
||
[[php_options]]
|
||
==== Opcje dla języka PHP
|
||
|
||
Sekcje w pliku _php.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set php.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/php_options.adoc[]
|
||
|
||
[[spell_plugin]]
|
||
=== Spell
|
||
|
||
Wtyczka spell pozwala na sprawdzanie pisowni w linii poleceń. Możliwe jest
|
||
ustawienie wielu języków dla bufora.
|
||
|
||
Sprawdzenie pisowni jest domyślnie wyłączone i możę być przełączone za pomocą kbd:[Alt+s].
|
||
|
||
[[spell_dictionaries]]
|
||
==== Słowniki
|
||
|
||
Przed użyciem sprawdzania pisowni należy zdefiniować słowniki można to zrobić
|
||
zarówno globalnie jak i dla poszczególnych buforów.
|
||
|
||
Możliwe jest użycie kilku słowników równocześnie: WeeChat sprawdzi słowa we wszystkich
|
||
słownikach.
|
||
|
||
Na przykład dla angielskiego i francuskiego:
|
||
|
||
----
|
||
/set spell.check.default_dict "en,fr"
|
||
----
|
||
|
||
Możliwe jest użycie innego słownika dla konkretnego buforu, na przykład na kanale
|
||
niemieckojęzycnzym:
|
||
|
||
----
|
||
/spell setdict de
|
||
----
|
||
|
||
Możesz również ustawić słownik dla grupy buforów, na przykład angielski dla
|
||
wsystkich kanałów na serwerze IRC freenode:
|
||
|
||
----
|
||
/set spell.dict.irc.freenode en
|
||
----
|
||
|
||
Więcej informacji można znaleźć w opisie komendy <<command_spell_spell,/spell>>.
|
||
|
||
[[spell_speller_options]]
|
||
==== Opcje słowników
|
||
|
||
Opcje słowników mogą zostać zdefiniowane poprzez dodanie opcji w sekcji "option"
|
||
dla konfiguracji aspell.
|
||
|
||
Nazwa opcji to nazwa opcji konfiguracyjnej aspell. Listę opcji można uzyskać
|
||
wykonując w powłoce następującą komendę:
|
||
|
||
----
|
||
$ aspell config
|
||
----
|
||
|
||
Na przykład, aby włączyć opcję "ignore-case":
|
||
|
||
----
|
||
/set spell.option.ignore-case "true"
|
||
----
|
||
|
||
[[spell_suggestions]]
|
||
==== Sugestie
|
||
|
||
Sugestie są wyświetlane w elemencie paska "spell_suggest". Ilość wyświetlanych
|
||
sugestii można ustawić za pomocą opcji _spell.check.suggestions_.
|
||
|
||
Aby włączyć sugestie trzeba ustawić opcję _spell.check.suggestions_ na liczbę
|
||
≥ 0 i dodać element "spell_suggest" do jakiegoś paska, jak _status_.
|
||
|
||
Przykład sugestii z angielskim słownikiem (`en`):
|
||
|
||
....
|
||
│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Przykład sugestii ze słownikami angielskim i francuskim (`en,fr`):
|
||
|
||
....
|
||
│[12:55] [6] [irc/freenode] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[spell_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/spell_commands.adoc[]
|
||
|
||
[[spell_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _spell.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| color | /set spell.color.* | Kolory.
|
||
| check | /set spell.check.* | Opcje do kontrolowania sprawdzania pisowni.
|
||
| dict | <<command_spell_spell,/spell setdict>> +
|
||
/set spell.dict.* | Słowniki używane w buforze (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
| look | /set spell.look.* | Wygląd.
|
||
| option | /set spell.option.* | <<spell_speller_options,Opcje słowników>> (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/spell_options.adoc[]
|
||
|
||
[[trigger_plugin]]
|
||
=== Trigger
|
||
|
||
Trigger to scyzoryk szwajcarski dla WeeChat: może być podpięty do wielu rzeczy
|
||
(sygnał, modyrikator, wyśiwrtlanie, ...), zmieniać zawartość danych, oraz wykonać
|
||
jedną lub więcej komend. Można użyć warunków w celu ograniczenia działania
|
||
w określonych przypadkach.
|
||
|
||
Używanie triggerów wymaga znajomości jak działają sygnały, modyfikatory, ... .
|
||
Warto rozważyć przeczytanie
|
||
link:weechat_plugin_api.en.html#hooks[Opisu Api wtyczek WeeChat / Hooks] (Angielski).
|
||
|
||
[[trigger_default]]
|
||
==== Domyślne triggery
|
||
|
||
WeeChat tworzy domyślnie 5 triggerów, które mogą zostać wyłączone, zaktualizowane
|
||
lub usunięte:
|
||
|
||
* trigger _beep_ dla powiadomień
|
||
* cztery pozostałe triggery służą ukrywaniu haseł na ekranie
|
||
|
||
Lista domyśłnych triggerów:
|
||
|
||
[width="100%",cols="5m,3,22",options="header"]
|
||
|===
|
||
| Nazwa | Hook | Opis
|
||
|
||
| beep | print |
|
||
Powiadamiaj o podświetleniach/prywatnej wiadomości.
|
||
|
||
| cmd_pass | modifier |
|
||
Ukrywa hasło w komendach:
|
||
`pass:[/msg nickserv id\|identify\|set password\|ghost\|release\|regain\|recover]`,
|
||
`pass:[/oper]`,
|
||
`pass:[/quote pass]`,
|
||
`pass:[/set *password*]`,
|
||
`pass:[/secure passphrase\|decrypt\|set]`.
|
||
|
||
| cmd_pass_register | modifier |
|
||
Ukrywa hasło w komendzie `pass:[/msg nickserv register]`.
|
||
|
||
| msg_auth | modifier |
|
||
Ukrywa hasło w wiadomości IRC auth (wiadomość otrzymana od serwera po
|
||
wykonaniu komendy przez użytkownika).
|
||
|
||
| server_pass | modifier |
|
||
Ukrywa hasło serwera w komendach `/server` i `/connect`.
|
||
|===
|
||
|
||
[[trigger_anatomy]]
|
||
==== Anatomia triggera
|
||
|
||
Trigger posiada następujące opcje (nazwy to `trigger.trigger.<nazwa>.<opcja>`):
|
||
|
||
[width="100%",cols="2m,3,10",options="header"]
|
||
|===
|
||
| Opcja | Wartość | Opis
|
||
|
||
| enabled | `on`, `off` |
|
||
Kiedy wartość ustawiona jest na `off`, trigger jest wyłączony i akcje nie będą
|
||
więcej wykonywane.
|
||
|
||
| hook | `signal`, `hsignal`, `modifier`, `line`, `print`, `command`,
|
||
`command_run`, `timer`, `config`, `focus`, `info`, `info_hashtable` |
|
||
Zdarzenia używane przez trigger. Więcej informacji można znaleźć w
|
||
link:weechat_plugin_api.en.html#hooks[WeeChat Plugin API Reference / Hooks] (Angielski).
|
||
|
||
| arguments | string |
|
||
Argumenty dla zdarzenia, zależą od jego typu.
|
||
|
||
| conditions | string |
|
||
Waruki do wykonania triggera; są one przetwarzane (zobacz komendę
|
||
<<command_weechat_eval,/eval>>).
|
||
|
||
| regex | string |
|
||
Jedno lub więcej rozszerzonych wyrażeń regularnych POSIX, do zamiany danych
|
||
otrzymanych w odpowiedzi od podpiętego zdarzenia (i trochę rzeczy dodanych
|
||
przez wtyczkę trigger) zobacz <<trigger_regex,regular expression>>.
|
||
|
||
| command | string |
|
||
Komenda do wykonania (wiele komend należy oddzielić średnikiem); jest to
|
||
przetwarzane (zobacz komendę <<command_weechat_eval,/eval>>).
|
||
|
||
| return_code | `ok`, `ok_eat`, `error` |
|
||
Kod wiadomości zwrotnej (domyślnie jest to `ok`, które powinno być używane dla
|
||
większości triggerów, pozostałe wartości są sporadycznie używane).
|
||
|
||
| post_action | `none`, `disable`, `delete` |
|
||
Akcja wykonywana na triggerze po jego wykonaniu (domyślna wartość `none` powinna
|
||
być użyta dla wszystkich triggerów, pozostałe wartości są sporadycznie używane).
|
||
|===
|
||
|
||
Na przykład, domyślny trigger _beep_ ma następujące opcje:
|
||
|
||
----
|
||
trigger.trigger.beep.enabled = on
|
||
trigger.trigger.beep.hook = print
|
||
trigger.trigger.beep.arguments = ""
|
||
trigger.trigger.beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})"
|
||
trigger.trigger.beep.regex = ""
|
||
trigger.trigger.beep.command = "/print -beep"
|
||
trigger.trigger.beep.return_code = ok
|
||
trigger.trigger.beep.post_action = none
|
||
----
|
||
|
||
[[trigger_execution]]
|
||
==== Wykonywanie
|
||
|
||
Kiedy wywoływany jest trigger, następujące akcje są wykonywane, dokładnie w takiej
|
||
kolejności, jeśli triggery są globalnie włączone i jeśli sam trigger jest włączony:
|
||
|
||
. sprawdzenie warunków triggera: jeśli nie jest spełniony następuje wyjście
|
||
. zastępowanie tekstu w triggerze za pomocą wyrażenia
|
||
. wykonanie komend(-y)
|
||
. wyjście z kodem poweoru (nie dotyczy hooków _modifier_, _line_, _focus_,
|
||
_info_ i _info_hashtable_)
|
||
. wykonanie akcji kończącej (jeśli inna niż `none`).
|
||
|
||
[[trigger_hook_arguments]]
|
||
==== Argumenty uchwytów
|
||
|
||
Argumenty zależą od rodzaju uchwytu. Są oddzielane średnikami.
|
||
|
||
[width="100%",cols="2,6,7,2",options="header"]
|
||
|===
|
||
| Uchwyt | Argumenty | Przykłady | Dokumentacja (API)
|
||
|
||
| signal |
|
||
1. nazwa sygnału (dozwolony priorytet) (wymagane) +
|
||
2. nazwa sygnału (dozwolony priorytet) +
|
||
3. ... |
|
||
`+*,irc_in_privmsg+` +
|
||
`+*,irc_in_privmsg;*,irc_in_notice+` +
|
||
`+signal_sigwinch+` |
|
||
link:weechat_plugin_api.en.html#_hook_signal[hook_signal] (Angielski)
|
||
|
||
| hsignal |
|
||
1. nazwa sygnału (dozwolony priorytet) (wymagane) +
|
||
2. nazwa sygnału (dozwolony priorytet) +
|
||
3. ... |
|
||
`+nicklist_nick_added+` |
|
||
link:weechat_plugin_api.en.html#_hook_hsignal[hook_hsignal] (Angielski)
|
||
|
||
| modifier |
|
||
1. nazwa modyfikatora (dozwolony priorytet) (wymagane) +
|
||
2. nazwa modyfikatora (dozwolony priorytet) +
|
||
3. ... |
|
||
`+weechat_print+` +
|
||
`+5000\|input_text_display;5000\|history_add+` |
|
||
link:weechat_plugin_api.en.html#_hook_modifier[hook_modifier] (Angielski)
|
||
|
||
| line |
|
||
1. typ bufora +
|
||
2. nazwa bufora +
|
||
3. tagi |
|
||
`+formatted+` +
|
||
`+free+` +
|
||
`+*;irc.freenode.*+` +
|
||
`+*;irc.freenode.#weechat+` +
|
||
`+formatted;irc.freenode.#weechat;irc_notice+` |
|
||
link:weechat_plugin_api.en.html#_hook_line[hook_line]
|
||
|
||
| print |
|
||
1. nazwa buforu +
|
||
2. tagi +
|
||
3. wiadomość +
|
||
4. odrzucić kolory (0/1) |
|
||
`+irc.freenode.*+` +
|
||
`+irc.freenode.#weechat+` +
|
||
`+irc.freenode.#weechat;irc_notice+` +
|
||
`+*;;;1+` |
|
||
link:weechat_plugin_api.en.html#_hook_print[hook_print] (Angielski)
|
||
|
||
// TRANSLATION MISSING
|
||
| command |
|
||
1. nazwa komendy dozwolony priorytet) (wymagane) +
|
||
2. opis (evaluated, zobacz komendę <<command_weechat_eval,/eval>>) +
|
||
3. argumenty (evaluated, zobacz komendę <<command_weechat_eval,/eval>>) +
|
||
4. opis argumentów (evaluated, zobacz komendę <<command_weechat_eval,/eval>>) +
|
||
5. dopełnienie (evaluated, zobacz komendę <<command_weechat_eval,/eval>>) |
|
||
`+test+` +
|
||
`+5000\|test+` +
|
||
`+test;test command;arg1 arg2;arg1: description 1${\n}arg2: description 2+` |
|
||
link:weechat_plugin_api.en.html#_hook_command[hook_command] (Angielski)
|
||
|
||
| command_run |
|
||
1. komenda (dozwolony priorytet) (wymagane) +
|
||
2. komenda (dozwolony priorytet) +
|
||
3. ... |
|
||
`+/cmd argumenty+` |
|
||
link:weechat_plugin_api.en.html#_hook_command_run[hook_command_run] (Angielski)
|
||
|
||
| timer |
|
||
1. interwał w milisekundach (wymagane) +
|
||
2. wyrównanie na sekundę (domyślnie: 0) +
|
||
3. maksymalna ilość wywołań (domyślnie: 0, co oznacza "brak końca") |
|
||
`+3600000+` +
|
||
`+60000;0;5+` |
|
||
link:weechat_plugin_api.en.html#_hook_timer[hook_timer] (Angielski)
|
||
|
||
| config |
|
||
1. nazwa opcji (dozwolony priorytet) (wymagane) +
|
||
2. nazwa opcji (dozwolony priorytet) +
|
||
3. ... |
|
||
`+weechat.look.*+` |
|
||
link:weechat_plugin_api.en.html#_hook_config[hook_config] (Angielski)
|
||
|
||
| focus |
|
||
1. nazwa obszaru (dozwolony priorytet) (wymagane) +
|
||
2. nazwa obszaru (dozwolony priorytet) +
|
||
3. ... |
|
||
`+buffer_nicklist+` |
|
||
link:weechat_plugin_api.en.html#_hook_focus[hook_focus] (Angielski)
|
||
|
||
| info |
|
||
1. info name (dozwolony priorytet) (wymagane) +
|
||
2. info name (dozwolony priorytet) +
|
||
3. ... |
|
||
`+my_info+` |
|
||
link:weechat_plugin_api.en.html#_hook_info[hook_info] (Angielski)
|
||
|
||
| info_hashtable |
|
||
1. info name (dozwolony priorytet) (wymagane) +
|
||
2. info name (dozwolony priorytet) +
|
||
3. ... |
|
||
`+my_info+` |
|
||
link:weechat_plugin_api.en.html#_hook_info_hashtable[hook_info_hashtable] (Angielski)
|
||
|===
|
||
|
||
[[trigger_conditions]]
|
||
==== Warunki
|
||
|
||
Warunki są używane do kontynuowania przetwarzania w triggerze, lub zatrzymania
|
||
wszystkiego.
|
||
|
||
Są one przetwarzane i dane dostępne w callbackach mogą zostać użyte
|
||
(zobacz <<trigger_callback_data,dane w callbackach>> oraz komendę
|
||
<<command_weechat_eval,/eval>>).
|
||
|
||
Przykład: domyślny trigger _beep_ używa tego warunku do wywołania dźwięku tylko
|
||
w przypadku podświetlenia lub otrzymania prywatnej wiadomości:
|
||
|
||
----
|
||
${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})
|
||
----
|
||
|
||
[[trigger_regex]]
|
||
==== Wyrażenia regularne
|
||
|
||
Wyrażenia regularne są używane do zmiany zmiennych w tablicy hashy callbacka.
|
||
|
||
Format: "/wyrażenie/zamień" lub "/wyrażenie/zamień/zmienna" (gdzie _zmienna_ to
|
||
zmienna tablicy hashy).
|
||
|
||
Jeśli _zmienna_ nie istnieje w tablicy haszy zostanie automarycznie utworzona bez
|
||
wartości. Pozwala to tworzyć dowolne zmienne tymczasowe.
|
||
|
||
Jeśli _zmienna_ nie zostanie podana, użyta zostanie domyślna zmienna, zależy ona
|
||
od typu uchwytu:
|
||
|
||
[width="100%",cols="2,3,7",options="header"]
|
||
|===
|
||
| Uchwyt | Domyślna zmienna | Dozwolona aktualizacja ^(1)^
|
||
| signal | tg_signal_data |
|
||
| hsignal | |
|
||
| modifier | tg_string | tg_string
|
||
| line | message | buffer, buffer_name, y, date, date_printed, str_time, tags, notify_level, highlight, prefix, message
|
||
| print | tg_message |
|
||
| command | tg_argv_eol1 |
|
||
| command_run | tg_command |
|
||
| timer | tg_remaining_calls |
|
||
| config | tg_value |
|
||
| focus | |
|
||
| info | tg_info | tg_info
|
||
| info_hashtable | | wszytkie zmienne otrzymane w tablicy hashy
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Wszystkie zmienne mogą zostać zaktualizowane, jednak tylko te zmienne
|
||
mają wpływ na zmienne zwrócone i użyte przez WeeChat.
|
||
|
||
Wiele wyrażeń może być oddzielonych spacją, na przykład:
|
||
"/regex1/zamień1/zmienna1 /regex2/zamień2/zmienna2".
|
||
|
||
Znak "/" może zostać zastąpiony dowolnym znakiem (jednym lub kilkoma
|
||
identycznymi znakami).
|
||
|
||
Dopasowane grupy, które mogą zostać użyte w "zamień":
|
||
|
||
* `+${re:0}+` to `+${re:99}+`: `+${re:0}+` to pełne dopasowanie, `+${re:1}+` do
|
||
`+${re:99}+` to przechwycone grupy
|
||
* `+${re:+}+`: ostatnie dopasowanie (z najwyższym numerem)
|
||
* `+${hide:c,${re:N}}+`: dopasowanie "N" z wszystkimi znakami zastąpionymi "c"
|
||
(przykład: `+${hide:*,${re:2}}+` to grupa #2 ze znakami zastąpionymi `+*+`).
|
||
|
||
Przykład: użyj pogrubienia dla słów pomiędzy `+*+`:
|
||
|
||
----
|
||
/\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/
|
||
----
|
||
|
||
Przykład: domyślny trigger _server_pass_ używa tego wyrażenia do ukrycia hasła
|
||
w komendach `/server` i `/connect` (znaki haseł są zastępowane przez `+*+`):
|
||
|
||
----
|
||
==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
|
||
----
|
||
|
||
[NOTE]
|
||
W tym przykładzie, użyty jest separator "==" ponieważ w wyrażeniu występuje "/".
|
||
|
||
[[trigger_command]]
|
||
==== Komenda
|
||
|
||
Komenda jest wykonywana po zastąpieniu tekstu przez wyrażenie regularne.
|
||
Wiele komend może być oddzielonych średnikiem.
|
||
|
||
Komendy są przetwarzane (zobacz komendę <<command_weechat_eval,/eval>>) i tekst
|
||
zastępowany wyrażeniem może zostać użyty w komendzie.
|
||
|
||
Przykład: domyślny trigger _beep_ używa tej komendy do wydania dźwięku (BEL):
|
||
|
||
----
|
||
/print -beep
|
||
----
|
||
|
||
[[trigger_callback_data]]
|
||
==== Dane w callbackach
|
||
|
||
Dane otrzymane w callbackach są przechowywane w tablicach hashy (wskaźniki i
|
||
ciągi) i mogą zostać użyte w następujących opcjach:
|
||
|
||
* _warunki_
|
||
* _wyrażenia_
|
||
* _komendy_
|
||
|
||
Zawartość tablicy hashy zależy od typu uchwytu.
|
||
|
||
Przystępną drogą do zobaczenia danych w triggerze jest otworzenie buforu
|
||
monitorującego, za pomocą komendy:
|
||
|
||
----
|
||
/trigger monitor
|
||
----
|
||
|
||
[[trigger_data_signal]]
|
||
===== Sygnał
|
||
|
||
Callback "signal" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_signal | ciąg | Nazwa sygnału.
|
||
| tg_signal_data | ciąg | Dane wysłane z sygnałem.
|
||
|===
|
||
|
||
Jeśli sygnał zawiera wiadomość IRC, wiadomość jest parsowana i następujące dane
|
||
są dodawane do tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| irc_server | wskaźnik | Wskaźnik na serwer IRC (można użyć zmiennych hdata typu "irc_server" jak `${irc_server.name}`).
|
||
| irc_channel | wskaźnik | Wskaźnik na kanał IRC (można użyć zmiennych hdata typu "irc_channel" jak `${irc_channel.name}`).
|
||
| server | ciąg | Nazwa serwera (przykład: "freenode").
|
||
| tags | ciąg | Tagi w wiadomości (rzadko używane).
|
||
| message_without_tags | ciąg | Wiadomość bez tagów.
|
||
| nick | ciąg | Nick.
|
||
| host | ciąg | Nazwa hosta.
|
||
| command | ciąg | Komendy IRC (na przykład: "PRIVMSG", "NOTICE", ...).
|
||
| channel | ciąg | Kanał IRC.
|
||
| arguments | ciąg | Argumenty komendy (razem z wartością _channel_).
|
||
| text | ciąg | Tekst (na przykład wiadomość użytkownika).
|
||
| pos_command | ciąg | Indeks _command_ w wiadomości ("-1" jeśli _command_ nie zostanie znalezione).
|
||
| pos_arguments | ciąg | Indeks _arguments_ w wiadomości ("-1" jeśli _arguments_ nie zostaną znalezione).
|
||
| pos_channel | ciąg | Indeks _channel_ w wiadomości ("-1" jeśli _channel_ nie został znaleziony).
|
||
| pos_text | ciąg | Indeks _text_ w wiadomości ("-1" jeśli _text_ nie został znaleziony).
|
||
|===
|
||
|
||
Kiedy dane są wskaźnikiem, zmienna `tg_signal_data` może zostać użyta do
|
||
odczytania pola w hdata (w tym przypadku jest to wskaźnik na bufor):
|
||
|
||
----
|
||
${buffer[${tg_signal_data}].full_name}
|
||
----
|
||
|
||
[[trigger_data_hsignal]]
|
||
===== Hsignal
|
||
|
||
Callback "hsignal" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_signal | ciąg | Nazwa sygnału.
|
||
|===
|
||
|
||
Tablica zawiera wszystkie klucze/wartości z otrzymanej tablicy hashy (typ:
|
||
ciąg/ciąg).
|
||
|
||
[[trigger_data_modifier]]
|
||
===== Modyfikator
|
||
|
||
Callback "modifier" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_modifier | ciąg | Nazwa modyfikatora.
|
||
| tg_modifier_data | ciąg | Dane wysłane z modyfikatorem.
|
||
| tg_string | ciąg | Ciąg mogący zostać zmodyfikowany.
|
||
| tg_string_nocolor | ciąg | Ciąg bez kodów kolorów.
|
||
|===
|
||
|
||
Dla modyfikatora _weechat_print_, są dodawane zmienne używające tagi wiadomości
|
||
zobacz <<trigger_data_print,hook print>> poniżej), oraz następujące zmienne:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| buffer | wskaźnik | Bufor, w którym wiadomość jest wyświetlana.
|
||
| tg_plugin | ciąg | Wtyczka bufora z wyświetlana wiadomością.
|
||
| tg_buffer | ciąg | Pełna nazwa bufora z wyświetlana wiadomością.
|
||
| tg_prefix | ciąg | Prefiks wyświetlanej wiadomości.
|
||
| tg_prefix_nocolor | ciąg | Prefiks bez kodów kolorów.
|
||
| tg_message | ciąg | Wyświetlana wiadomość.
|
||
| tg_message_nocolor | ciąg | Wiadomość bez kodów kolorów.
|
||
|===
|
||
|
||
Jeśli modyfikator zawiera wiadomość IRC, wiadomość jest parsowana i dodawane są
|
||
dodatkowe dane do tablicy hashy (zobacz <<trigger_data_signal,hook signal>>).
|
||
|
||
[[trigger_data_line]]
|
||
===== Line
|
||
|
||
Callback "line" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| buffer | wskaźnik | Bufor.
|
||
| buffer_name | ciąg | Nazwa bufora.
|
||
| buffer_type | ciąg | Typ bufora ("formatted" lub "free").
|
||
| y | ciąg | Numer linii bufora z wolną zawartością (≥ 0), -1 dla bufora ze sformatowaną zawartością.
|
||
| date | ciąg | Linia z datą (timestamp).
|
||
| date_printed | ciąg | Data, kiedy linia została wyświetlona (timestamp).
|
||
| str_time | ciąg | Date do wyświetlenia. Może zawierać kody kolorów.
|
||
| tags | ciąg | Tagi wiadomości (z przecinkiem dodanym na początku/końcu ciągu).
|
||
| displayed | ciąg | "1" jeśli wyświetlono, "0" jeśli nie wyświetlono.
|
||
| notify_level | ciąg | "-1" = brak powiadomienia, "0" = poziom niski, "1" = wiadomość, "2" = wiadomość prywatna, "3" = podświetlenie
|
||
| highlight | ciąg | "1" jeśli podświetlenie, inaczej "0".
|
||
| prefix | ciąg | Prefiks.
|
||
| tg_prefix_nocolor | ciag | Prefiks bez kodów kolorów.
|
||
| message | ciąg | Wiadomość.
|
||
| tg_message_nocolor | ciag | Wiadomość bez kodów kolorów.
|
||
|===
|
||
|
||
Zmienne ustawiane za pomocą tagów w wiadomościach:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_tags_count | ciąg | Liczba tagów w wiadomości.
|
||
| tg_tag_nick | ciąg | Nick (z tagu "nick_xxx").
|
||
| tg_tag_prefix_nick | ciąg | Kolor nicka w prefiksie (z tagu "prefix_nick_ccc").
|
||
| tg_tag_host | ciąg | Nazwa użytkownika i host, format: username@host (z tagu "host_xxx").
|
||
| tg_tag_notify | ciąg | Poziom powiadomień (_none_, _message_, _private_, _highlight_).
|
||
| tg_notify | ciąg | Poziom powiadomień, jeśli różny od _none_.
|
||
| tg_msg_pv | ciąg | "1" dla prywatnej wiadomości, inaczej "0".
|
||
|===
|
||
|
||
[[trigger_data_print]]
|
||
===== Print
|
||
|
||
Callback "print" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| buffer | wskaźnik | Bufor.
|
||
| tg_date | ciąg | Data/czas wiadomości (format: `YYYY-MM-DD hh:mm:ss`).
|
||
| tg_displayed | ciąg | "1" jeśli wyświetlone, "0" jeśli linia odfiltrowana.
|
||
| tg_highlight | ciąg | "1" jeśli higlight, inaczej "0".
|
||
| tg_prefix | ciąg | Prefiks.
|
||
| tg_prefix_nocolor | ciąg | Prefiks bez kodów kolorów.
|
||
| tg_message | ciąg | Wiadomość.
|
||
| tg_message_nocolor | ciąg | Wiadomość bez kodów kolorów.
|
||
|===
|
||
|
||
Zmienne ustawiane za pomocą tagów w wiadomościach:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_tags | ciąg | Tagi wiadomości (z przecinkiem dodanym na początku/końcu ciągu).
|
||
| tg_tags_count | ciąg | Liczba tagów w wiadomości.
|
||
| tg_tag_nick | ciąg | Nick (z tagu "nick_xxx").
|
||
| tg_tag_prefix_nick | ciąg | Kolor nicka w prefiksie (z tagu "prefix_nick_ccc").
|
||
| tg_tag_host | ciąg | Nazwa użytkownika i host, format: username@host (z tagu "host_xxx").
|
||
| tg_tag_notify | ciąg | Poziom powiadomień (_none_, _message_, _private_, _highlight_).
|
||
| tg_notify | ciąg | Poziom powiadomień, jeśli różny od _none_.
|
||
| tg_msg_pv | ciąg | "1" dla prywatnej wiadomości, inaczej "0".
|
||
|===
|
||
|
||
[[trigger_data_command]]
|
||
===== Command
|
||
|
||
Callback "command" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| buffer | wskaźnik | Bufor.
|
||
| tg_argvN | ciąg | Argument #N.
|
||
| tg_argv_eolN | ciąg | Od argumentu #N do końca argumentów.
|
||
|===
|
||
|
||
[[trigger_data_command_run]]
|
||
===== Command_run
|
||
|
||
Callback "command_run" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| buffer | wskaźnik | Bufor.
|
||
| tg_command | ciąg | Wykonana komenda.
|
||
|===
|
||
|
||
[[trigger_data_timer]]
|
||
===== Timer
|
||
|
||
Callback "timer" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_remaining_calls | ciąg | Liczba pozostałych wywołań.
|
||
| tg_date | ciąg | Obecna data/czas (format: `YYYY-MM-DD hh:mm:ss`).
|
||
|===
|
||
|
||
[[trigger_data_config]]
|
||
===== Config
|
||
|
||
Callback "config" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_option | ciąg | Opcja.
|
||
| tg_value | ciąg | Wartość.
|
||
|===
|
||
|
||
[[trigger_data_focus]]
|
||
===== Focus
|
||
|
||
Callback "focus" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| window | wskaźnik | Okno.
|
||
| buffer | wskaźnik | Bufor.
|
||
|===
|
||
|
||
Tablica zawiera wszystkie klucze/wartości z otrzymanej tablicy hashy (typ:
|
||
ciąg/ciąg).
|
||
|
||
[[trigger_data_info]]
|
||
===== Info
|
||
|
||
Callback "info" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_info_name | string | Name of info.
|
||
| tg_arguments | string | Arguments.
|
||
| tg_info | string | Empty string (the info to return).
|
||
|===
|
||
|
||
[[trigger_data_info_hashtable]]
|
||
===== Info_hashtable
|
||
|
||
Callback "info_hashtable" ustawia następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_info_name | string | Name of info.
|
||
|===
|
||
|
||
Tablica zawiera wszystkie klucze/wartości z otrzymanej tablicy hashy (typ:
|
||
ciąg/ciąg).
|
||
|
||
[[trigger_examples]]
|
||
==== Przykłady
|
||
|
||
[[trigger_example_url_color]]
|
||
===== Kolory dla URLi
|
||
|
||
Wyświetlanie URLi na zielono:
|
||
|
||
----
|
||
/trigger add url_color modifier weechat_print "${tg_notify}" "==[a-zA-Z0-9_]+://[^ ]+==${color:green}${re:0}${color:reset}=="
|
||
----
|
||
|
||
[NOTE]
|
||
Proste wyrażenie użyte do wykrycia URLa może nie łapać wszstkich URLi, ale jest
|
||
szybsze od złożonego wyrażenia.
|
||
|
||
[[trigger_example_auto_pong]]
|
||
===== Automatyczna odpowiedz pong na zapytania ping
|
||
|
||
Kiedy ktoś wyśle "ping" w prywatnym buforze, ten trigger odpowie automatycznie
|
||
`pong`:
|
||
|
||
----
|
||
/trigger add pong print "" "${type} == private && ${tg_message} == ping" "" "pong"
|
||
----
|
||
|
||
[[trigger_example_responsive_layout]]
|
||
===== Responsywny układ
|
||
|
||
Następujące triggery mogą zostać użyte do zmiany rzeczy wyświetlanych, kiedy
|
||
nastąpi zmiana rozmiaru terminala:
|
||
|
||
----
|
||
/trigger add resize_small signal signal_sigwinch "${info:term_width} < 100" "" "/bar hide nicklist"
|
||
/trigger add resize_big signal signal_sigwinch "${info:term_width} >= 100" "" "/bar show nicklist"
|
||
----
|
||
|
||
Triggery przechwytują sygnał "signal_sigwinch", który jest wysyłany przez WeeChat,
|
||
kiedy sygnał SIGWINCH zostanie otrzymany (kiedy rozmiar terminala się zmieni).
|
||
|
||
Warunek z `+${info:term_width}+` sprawdza szerokość terminala (możesz również użyć
|
||
`+${info:term_height}+` w razie potrzeby).
|
||
|
||
W przykładzie, kiedy terminal stanie się mały, ukrywana jest lista nicków. Jest
|
||
ona przywracana, kiedy szerokość jest większa lub równa 100 znakom.
|
||
|
||
[[trigger_example_config_save]]
|
||
===== Automatyczne zapisywanie konfiguracji
|
||
|
||
Możesz automatycznie zapisywać pliki konfiguracyjne (`+*.conf+`), na przykład co
|
||
godzinę:
|
||
|
||
----
|
||
/trigger add cfgsave timer 3600000;0;0 "" "" "/mute /save"
|
||
----
|
||
|
||
Argumenty dla uchwytu timera to:
|
||
|
||
* _3600000_: 3600 * 1000 milisekund, callback wywoływany jest co godzinę
|
||
* _0_: wyrównanie sekund (nie ustawione)
|
||
* _0_: maksymalna ilość wywołań (0 = brak ograniczenia ilości wywołań)
|
||
|
||
Komenda `/mute /save` zapisze po cichu pliki konfiguracyjne (nic się nie
|
||
wyświetli w buforze rdzenia).
|
||
|
||
[[trigger_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/trigger_commands.adoc[]
|
||
|
||
[[trigger_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _trigger.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set trigger.look.* | Wygląd.
|
||
| color | /set trigger.color.* | Kolory.
|
||
| trigger | <<command_trigger_trigger,/trigger add>> +
|
||
<<command_trigger_trigger,/trigger set>> +
|
||
/set trigger.trigger.* | Opcje triggerów.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/trigger_options.adoc[]
|
||
|
||
[[xfer_plugin]]
|
||
=== Xfer
|
||
|
||
Wtyczka xfer zapewnia:
|
||
|
||
* bezpośrednią rozmowę (pomiędzy dwoma hostami, bez serwera): na przykład
|
||
"DCC Chat" przez wtyczkę IRC
|
||
* transfer plików, na przykład "DCC" przez wtyczkę IRC
|
||
|
||
[[xfer_commands]]
|
||
==== Komendy
|
||
|
||
include::autogen/user/xfer_commands.adoc[]
|
||
|
||
[[xfer_options]]
|
||
==== Opcje
|
||
|
||
Sekcje w pliku _xfer.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set xfer.look.* | Wygląd.
|
||
| color | /set xfer.color.* | Kolory.
|
||
| network | /set xfer.network.* | Opcje sieci.
|
||
| file | /set xfer.file.* | Opcje dla plików odbieranych/wysyłanych.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::autogen/user/xfer_options.adoc[]
|
||
|
||
[[support]]
|
||
== Wsparcie
|
||
|
||
Przed pytaniem o pomoc upewnij się, że przeczytałeś dokumentację i FAQ
|
||
dostarczone z WeeChat.
|
||
|
||
Wsparcie w sieci IRC na serwerze _chat.freenode.net_:
|
||
|
||
* oficjalne kanały (z developerami):
|
||
** _#weechat_ (Angielski)
|
||
** _#weechat-fr_ (Francuski)
|
||
* nieoficjalne kanały:
|
||
** _#weechat-de_ (Niemiecki)
|
||
** _#weechat-fi_ (Fiński)
|
||
|
||
Inne sposoby na uzyskanie pomocy można znaleźć pod adresem:
|
||
https://weechat.org/about/support
|