mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
d4ed290a37
Theme files saved with /theme save and automatic backups now always contain every themable option (full snapshot), so a theme file is self-contained and round-trips exactly regardless of the current configuration. The diff-only mode and the "-full" argument of /theme save are removed.
6221 lines
237 KiB
Plaintext
6221 lines
237 KiB
Plaintext
// SPDX-FileCopyrightText: 2003-2026 Sébastien Helleu <flashcode@flashtux.org>
|
||
// SPDX-FileCopyrightText: 2009-2024 Krzysztof Korościk <soltys1@gmail.com>
|
||
//
|
||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
||
= Poradnik użytkownika WeeChat
|
||
:author: Sébastien Helleu
|
||
:email: flashcode@flashtux.org
|
||
:lang: pl
|
||
include::includes/attributes-pl.adoc[]
|
||
|
||
Ten dokument opisuje klienta rozmów WeeChat, będącego częścią WeeChat.
|
||
|
||
Najnowszą wersję tego dokumentu można znaleźć na
|
||
https://weechat.org/doc/[tej stronie ^↗^^].
|
||
|
||
[[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 TLS, IPv6, proxy)
|
||
* mały, szybki i lekki
|
||
* konfigurowalny i rozszerzalny dzięki wtyczką i skryptom
|
||
* zgodny z RFC dla IRC
|
||
https://datatracker.ietf.org/doc/html/rfc1459[1459 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2810[2810 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2811[2811 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2812[2812 ^↗^^],
|
||
https://datatracker.ietf.org/doc/html/rfc2813[2813 ^↗^^] i
|
||
https://datatracker.ietf.org/doc/html/rfc7194[7194 ^↗^^]
|
||
* proxy IRC i pośrednik dla WeeChat i zdalnych interfejsów
|
||
* wielo-platformowy (GNU/Linux, *BSD, macOS, Windows i inne)
|
||
* 100% GPL, darmowe oprogramowanie
|
||
|
||
Listę wszystkich cech i możliwości można znaleźć na
|
||
https://weechat.org/about/features/[tej stronie ^↗^^].
|
||
|
||
[[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` +
|
||
Najnowsze wersje i nocne buildy można znaleźć na stonie:
|
||
https://weechat.org/download/debian/[Repozytoria Debiana ^↗^^]
|
||
* Fedora Core: `dnf install weechat`
|
||
* FreeBSD: `pkg 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`
|
||
* macOS (za pomocą https://brew.sh/[Homebrew ^↗^^]): `brew install weechat`
|
||
(w razie problemów: `brew info weechat`)
|
||
|
||
Niektóre dodatkowe pakiety mogą okazać się przydatne, jak weechat-plugins.
|
||
|
||
Dla innych dystrybucji, poszukaj w dokumentacji instrukcji na temat instalacji
|
||
pakietów.
|
||
|
||
[[containers]]
|
||
=== Kontenery
|
||
|
||
Kontenery z WeeChat mogą być zbudowane lub zainstalowane bezpośrednio
|
||
z https://hub.docker.com/r/weechat/weechat[Docker Hub ^↗^^]. +
|
||
Więcej informacji można znaleźć w pliku README w repozytorium
|
||
https://github.com/weechat/weechat-container[weechat-container ^↗^^].
|
||
|
||
[[source_package]]
|
||
=== Pakiety źródłowe
|
||
|
||
WeeChat musi być kompilowany przy użyciu CMake.
|
||
|
||
[NOTE]
|
||
Na macOS możesz użyć https://brew.sh/[Homebrew ^↗^^]:
|
||
`brew install --build-from-source weechat`.
|
||
|
||
[[dependencies]]
|
||
==== Zależności
|
||
|
||
Poniższa tabela pokazuje listę pakietów *wymaganych* do skompilowania
|
||
WeeChat:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
| Pakiet ^(1)^ | Wersja | Funkcje
|
||
|
||
| kompilator C (gcc / clang) |
|
||
| Kompilacja źródeł C.
|
||
|
||
| cmake | ≥ 3.0
|
||
| Kompilacja.
|
||
|
||
| pkgconf / pkg-config |
|
||
| Wykrywa zainstalowane biblioteki.
|
||
|
||
| libncurses-dev |
|
||
| Interfejs ncurses.
|
||
|
||
| libcurl4-gnutls-dev |
|
||
| Transfer URL.
|
||
|
||
| libgcrypt20-dev |
|
||
| Zabezpieczone dane, uwierzytelnianie IRC SASL.
|
||
|
||
| libgnutls28-dev | ≥ 2.2.0 ^(2)^
|
||
| Wtyczka IRC: wsparcie dla połączeń TLS, autentykacja IRC SASL (ECDSA-NIST256P-CHALLENGE). +
|
||
Wtyczka relay: wsparcie dla połączeń TLS.
|
||
|
||
| zlib1g-dev |
|
||
| Wtyczka logger: kompresja rotowanych plików z logami (gzip). +
|
||
Wtyczka relay: kompresja wiadomości (WeeChat -> klient) za pomocą https://zlib.net/[zlib ^↗^^]
|
||
(protokoły api i weechat). +
|
||
Wtyczka script: odczyt repozytorium ze skryptami (gzip).
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Nazwa pochodzi z repozytorium dystrybucji Debian GNU/Linux Bookworm distribution,
|
||
wersja i nazwa mogą się różnić dla innych dystrybucji. +
|
||
^(2)^ GnuTLS ≥ 3.0.21 jest wymagany dla uwierzytelnienia IRC SASL za pomocą
|
||
mechanizmu ECDSA-NIST256P-CHALLENGE.
|
||
|
||
The following table shows the list of packages that are optional to compile
|
||
WeeChat:
|
||
|
||
[width="100%",cols="5,^3,.^15",options="header"]
|
||
|===
|
||
| Pakiet ^(1)^ | Wersja | Funkcje
|
||
|
||
| kompilator {cpp} (pass:[g++ / clang++]) |
|
||
| Kompilacja i uruchamianie testów, wtyczka JavaScript.
|
||
|
||
| gettext |
|
||
| Internacjonalizacja (tłumaczenie wiadomości; język bazowy to Angielski).
|
||
|
||
| ca-certificates |
|
||
| Certyfikaty dla połączeń TLS.
|
||
|
||
| libcjson-dev |
|
||
| Wtyczka relay: protokół "api" (HTTP REST API).
|
||
|
||
| libzstd-dev | ≥ 0.8.1
|
||
| Wtyczka logger: kompresja rotowanych plików z logami (zstandard). +
|
||
Wtyczka relay: kompresja wiadomości (WeeChat -> klient) za pomocą https://facebook.github.io/zstd/[Zstandard ^↗^^]
|
||
(protokoły api i weechat).
|
||
|
||
| libaspell-dev / libenchant-dev |
|
||
| Wtyczka spell.
|
||
|
||
| python3-dev | ≥ 3.0
|
||
| Wtyczka python.
|
||
|
||
| libperl-dev |
|
||
| Wtyczka perl.
|
||
|
||
| ruby3.1, ruby3.1-dev | ≥ 1.9.1
|
||
| Wtyczka ruby.
|
||
|
||
| liblua5.4-dev |
|
||
| Wtyczka lua.
|
||
|
||
| tcl-dev | ≥ 8.5
|
||
| Wtyczka tcl.
|
||
|
||
| guile-3.0-dev | ≥ 2.0
|
||
| Wtyczka guile (scheme).
|
||
|
||
| libv8-dev | ≤ 3.24.3
|
||
| Wtyczka javascript.
|
||
|
||
| php-dev | ≥ 7.0
|
||
| Wtyczka PHP.
|
||
|
||
| libphp-embed | ≥ 7.0
|
||
| Wtyczka PHP.
|
||
|
||
| libxml2-dev |
|
||
| Wtyczka PHP.
|
||
|
||
| libargon2-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.
|
||
|
||
| python3-pygments, ruby-pygments.rb |
|
||
| Dokumentacja budowania.
|
||
|
||
| libcpputest-dev | ≥ 3.4
|
||
| Kompilacja i uruchamianie testów.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Nazwa pochodzi z repozytorium dystrybucji Debian GNU/Linux Bookworm distribution,
|
||
wersja i nazwa mogą się różnić dla innych dystrybucji. +
|
||
|
||
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:
|
||
|
||
[source,shell]
|
||
----
|
||
sudo apt-get build-dep weechat
|
||
----
|
||
|
||
[[build]]
|
||
==== Kompilacja
|
||
|
||
* Instalacja w katalogach systemowych (wymaga uprawnień użytkownika _root_):
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir build
|
||
cd build
|
||
cmake ..
|
||
make
|
||
sudo make install
|
||
----
|
||
|
||
* Instalacja w wybranym katalogu (na przykład w katalogu domowym):
|
||
|
||
[source,shell]
|
||
----
|
||
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 dostępnych opcji:
|
||
|
||
[width="100%",cols="3m,3,3m,10",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 | (pusty ciąg)
|
||
| Domyślny katalog domowy dla WeeChat. +
|
||
Bez ustawionej wartości (zalecane) domyślnie zostaną użyte wartości XDG.
|
||
Jeśli wartość nie jest pusta zostanie użyty jeden katalog dla wszystkich plików.
|
||
Wartością mogą być również 4 katalogi oddzielone dwukropkami, w takiej
|
||
kolejności: config, data, cache, runtime.
|
||
|
||
| ENABLE_ALIAS | `ON`, `OFF` | ON
|
||
| Kompilacja <<command_aliases,wtyczki alias>>.
|
||
|
||
| ENABLE_BUFLIST | `ON`, `OFF` | ON
|
||
| Kompilacja <<buflist,wtyczki buflist>>.
|
||
|
||
| ENABLE_CHARSET | `ON`, `OFF` | ON
|
||
| Kompilacja <<charset,wtyczki charset>>.
|
||
|
||
| ENABLE_CJSON | `ON`, `OFF` | ON
|
||
| Wsparcie dla JSON z użyciem biblioteki https://github.com/DaveGamble/cJSON[cJSON ^↗^^].
|
||
|
||
| ENABLE_MAN | `ON`, `OFF` | OFF
|
||
| Generowanie strony manuala.
|
||
|
||
| ENABLE_DOC | `ON`, `OFF` | OFF
|
||
| Generowanie dokumentacji HTML.
|
||
|
||
| ENABLE_DOC_INCOMPLETE | `ON`, `OFF` | OFF
|
||
| Wymusza wygenerowanie dokumentacji nawet w przypadku jeśli nie wszystki
|
||
wtyczki zostaną skompilowane (nie zalecane: dokumentacja nie będzie kompletna).
|
||
|
||
| ENABLE_ENCHANT | `ON`, `OFF` | OFF
|
||
| Kompilacja <<spell_checking,wtyczki spell>> z Enchant.
|
||
|
||
| ENABLE_EXEC | `ON`, `OFF` | ON
|
||
| Kompilacja <<external_commands,wtyczki exec>>.
|
||
|
||
| ENABLE_FIFO | `ON`, `OFF` | ON
|
||
| Kompilacja <<fifo_pipe,wtyczki fifo>>.
|
||
|
||
| ENABLE_FSET | `ON`, `OFF` | ON
|
||
| Kompilacja <<fset,wtyczki fset>>.
|
||
|
||
| ENABLE_GUILE | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_plugins,wtyczki guile>> (Scheme).
|
||
|
||
| ENABLE_HEADLESS | `ON`, `OFF` | ON
|
||
| Kompilacja pliku binarnego w trybie headless.
|
||
|
||
| ENABLE_IRC | `ON`, `OFF` | ON
|
||
| Kompilacja <<irc,wtyczki IRC>>.
|
||
|
||
| ENABLE_JAVASCRIPT | `ON`, `OFF` | OFF
|
||
| Kompilacja <<scripting_plugins,wtyczki javascript>>.
|
||
|
||
| ENABLE_LARGEFILE | `ON`, `OFF` | ON
|
||
| Wsparcie dla dużych plików.
|
||
|
||
| ENABLE_LOGGER | `ON`, `OFF` | ON
|
||
| Kompilacja <<buffer_logging,wtyczki logger>>.
|
||
|
||
| ENABLE_LUA | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_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 <<scripting_plugins,wtyczki perl>>.
|
||
|
||
| ENABLE_PHP | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_plugins,wtyczki PHP>>.
|
||
|
||
| ENABLE_PYTHON | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_plugins,wtyczki Python>>.
|
||
|
||
| ENABLE_RELAY | `ON`, `OFF` | ON
|
||
| Kompilacja <<relay,wtyczki relay>>.
|
||
|
||
| ENABLE_RUBY | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_plugins,wtyczki ruby>>.
|
||
|
||
| ENABLE_SCRIPT | `ON`, `OFF` | ON
|
||
| Kompilacja <<script_manager,wtyczki script>>.
|
||
|
||
| ENABLE_SCRIPTS | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_plugins,wtyczek skryptowych>> (Python, Perl, Ruby, Lua,
|
||
Tcl, Guile, PHP).
|
||
|
||
| ENABLE_SPELL | `ON`, `OFF` | ON
|
||
| Kompilacja <<spell_checking,wtyczki spell>>.
|
||
|
||
| ENABLE_TCL | `ON`, `OFF` | ON
|
||
| Kompilacja <<scripting_plugins,wtyczki tcl>>.
|
||
|
||
| ENABLE_TRIGGER | `ON`, `OFF` | ON
|
||
| Kompilacja <<trigger,wtyczki trigger>>.
|
||
|
||
| ENABLE_TYPING | `ON`, `OFF` | ON
|
||
| Kompilacja <<typing_notifications,wtyczki typing>>.
|
||
|
||
| ENABLE_XFER | `ON`, `OFF` | ON
|
||
| Kompilacja <<xfer,wtyczki xfer>>.
|
||
|
||
| ENABLE_ZSTD | `ON`, `OFF` | ON
|
||
| Włącza kompresje https://facebook.github.io/zstd/[Zstandard ^↗^^].
|
||
|
||
| 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:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake -LA
|
||
----
|
||
|
||
Lub z interfejsem Curses:
|
||
|
||
[source,shell]
|
||
----
|
||
ccmake ..
|
||
----
|
||
|
||
[[tests]]
|
||
==== Testy
|
||
|
||
Następujące pakiety są *wymagane* do kompilacji testów:
|
||
|
||
* libcpputest-dev
|
||
* kompilator C++
|
||
|
||
Testy muszą być włączone podczas kompilacji WeeChat:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DENABLE_TESTS=ON
|
||
----
|
||
|
||
Można je uruchomić po skompilowaniu z katalogu kompilacji:
|
||
|
||
[source,shell]
|
||
----
|
||
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ę:
|
||
|
||
[source,shell]
|
||
----
|
||
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 dla debuggera (albo zainstalować stosowną paczkę w systemie)
|
||
** weryfikacją adresów w pamięci (opcjonalnie)
|
||
* włączyć obsługę plików _core_ w systemie
|
||
* zainstalować gdb
|
||
|
||
[[debug_build]]
|
||
==== Kompilacja w trybie debug
|
||
|
||
Jeśli kompilujesz z użyciem CMake:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug
|
||
----
|
||
|
||
[[address_sanitizer]]
|
||
==== Weryfikacja adresów w pamięci
|
||
|
||
Możesz dodatowo włączyć weryfikację adresów, co spowoduje natychmiastową awarię
|
||
WeeChat w przypadku wystąpienia problemu:
|
||
|
||
[source,shell]
|
||
----
|
||
cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address
|
||
----
|
||
|
||
[CAUTION]
|
||
Powinieneś włączyć tą opcję tylko jeśli chcesz wymusić awarię aplikacji,
|
||
nie powinno się tego używać do codziennej pracy.
|
||
|
||
Po skompilowaniu i zainstalowaniu należy uruchamiać WeeChat w taki sposób:
|
||
|
||
[source,shell]
|
||
----
|
||
ASAN_OPTIONS="detect_odr_violation=0 log_path=asan.log" weechat
|
||
----
|
||
|
||
W przypadku awarii plik logi znajdą się w pliku `asan.log`.
|
||
|
||
[[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`:
|
||
|
||
[source,shell]
|
||
----
|
||
ulimit -c unlimited
|
||
----
|
||
|
||
Lub z maksymalnym rozmiarem:
|
||
|
||
[source,shell]
|
||
----
|
||
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!).
|
||
|
||
[NOTE]
|
||
Na niektórych systemach jak Archlinux pliki te mogą znajdować się w innym katalogu
|
||
jak _/var/lib/systemd/coredump_ i należy użyć komendy `coredumpctl` do ich odczytania. +
|
||
Więcej informacji można znaleźć na tej
|
||
https://wiki.archlinux.org/title/Core_dump[stronie wiki ^↗^^].
|
||
|
||
Na przykład jeśli _weechat_ jest zainstalowany w _/usr/bin/_ i plik _core_
|
||
znajduje się w _/home/user/_, uruchom gdb za pomocą tej komendy:
|
||
|
||
[source,shell]
|
||
----
|
||
gdb /usr/bin/weechat /home/user/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/core-hook.c:1364
|
||
hook_process = 0x254eb90
|
||
status = <value optimized out>
|
||
#5 0x000000000044cc7d in hook_timer_exec ()
|
||
at /some_path/src/core/core-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):
|
||
|
||
[source,shell]
|
||
----
|
||
gdb /usr/bin/weechat 12345
|
||
----
|
||
|
||
Następnie jak w przypadku awarii, użyj polecenia `bt full`:
|
||
|
||
----
|
||
(gdb) bt full
|
||
----
|
||
|
||
[[running_weechat]]
|
||
== Uruchamianie WeeChat
|
||
|
||
Żeby uruchomić WeeChat, wykonaj polecenie:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat
|
||
----
|
||
|
||
Podczas pierwszego uruchomienia WeeChat tworzone są domyślne pliki konfiguracyjne
|
||
w _~/.config/weechat_ z domyślnymi opcjami i wartościami
|
||
(zobacz <<files_and_directories,Pliki i foldery>>).
|
||
|
||
[[command_line_options]]
|
||
=== Argumenty linii poleceń
|
||
|
||
include::includes/cmdline_options.pl.adoc[tag=standard]
|
||
|
||
Kilka dodatkowych opcji jest dostępne tylko do celu debugowania:
|
||
|
||
[CAUTION]
|
||
*NIE* używaj żadnej z nich podczas codziennej pracy!
|
||
|
||
include::includes/cmdline_options.pl.adoc[tag=debug]
|
||
|
||
[[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, ...). Działa tak samo jak <<build,opcja CMake>> `WEECHAT_HOME`.
|
||
| 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ą).
|
||
|===
|
||
|
||
[[colors_support]]
|
||
=== Wsparcie kolorów
|
||
|
||
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="75%",cols="8,>3,>3",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
|
||
----
|
||
|
||
[[files_and_directories]]
|
||
=== Pliki i foldery
|
||
|
||
[[xdg_directories]]
|
||
==== Katalogi XDG
|
||
|
||
WeeChat domyślnie używa katalogów XDG (zgodnie ze specyfikacją:
|
||
https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[XDG Base Directory Specification ^↗^^]). +
|
||
Pojedynczy katalog może zostać wymuszony przez opcję CMake `WEECHAT_HOME`,
|
||
zmienną środowiskową `WEECHAT_HOME` lub parametr z linii polecań `-d` / `--dir`.
|
||
|
||
Kiedy jeden katalog domowy dla WeeChat nie zostanie wymuszony, używane zostają katalogi
|
||
XDG z takim podziałem:
|
||
|
||
[width="100%",cols="1,2m,5",options="header"]
|
||
|===
|
||
| Katalog | Domyślna wartość | Wartość jeśli $XDG_XXX nie jest zdefiniowana
|
||
| config | $XDG_CONFIG_HOME/weechat | `$HOME/.config/weechat`
|
||
| data | $XDG_DATA_HOME/weechat | `$HOME/.local/share/weechat`
|
||
| cache | $XDG_CACHE_HOME/weechat | `$HOME/.cache/weechat`
|
||
| runtime | $XDG_RUNTIME_DIR/weechat | Taki sam jak katalog _cache_
|
||
|===
|
||
|
||
Pliki konfiguracyjne z domyślnymi wartościami są tworzone przy pierwszym uruchomieniu WeeChat.
|
||
The configuration files are created with default values the first time you run WeeChat.
|
||
|
||
[[weechat_directories]]
|
||
==== Katalogi WeeChat
|
||
|
||
Katalogi używane przez WeeChat to:
|
||
|
||
[width="100%",cols="1m,3",options="header"]
|
||
|===
|
||
| Ścieżka ^(1)^ | Opis
|
||
| ~/.config/weechat/ | Pliki konfiguracyjne WeeChat: `*.conf`, certifikaty, itp.
|
||
| ~/.local/share/weechat/ | Pliki z danymi WeeChat: logi, skrypty, dane skryptów, pliki xfer, itp.
|
||
| logs/ | Pliki z logami (jeden na bufor).
|
||
| python/ | Skrypty pythonowe.
|
||
| autoload/ | Skrypty pythonowe automatycznie ładowane przy starcie ^(2)^.
|
||
| perl/ | Skrypty perlowe.
|
||
| autoload/ | Skrypty perlowe automatycznie ładowane przy starcie ^(2)^.
|
||
| ruby/ | Skrypty ruby.
|
||
| autoload/ | Skrypty ruby automatycznie ładowane przy starcie ^(2)^.
|
||
| lua/ | Skrypty lua.
|
||
| autoload/ | Skrypty lua automatycznie ładowane przy starcie ^(2)^.
|
||
| tcl/ | Skrypty tcl.
|
||
| autoload/ | Skrypty tcl automatycznie ładowane przy starcie ^(2)^.
|
||
| guile/ | Skrypty guile.
|
||
| autoload/ | Skrypry guile automatycznie ładowane przy starcie ^(2)^.
|
||
| javascript/ | Skrypty JavaScript.
|
||
| autoload/ | Skrypty JavaScript automatycznie ładowane przy starcie ^(2)^.
|
||
| php/ | Skrypty PHP.
|
||
| autoload/ | Skrypty PHP automatycznie ładowane przy starcie ^(2)^.
|
||
| ~/.cache/weechat/ | Pliki pamięci podręcznej WeeChat: pliki pamięci podręcznej skryptów.
|
||
| /run/user/1000/weechat/ | Pliki uruchomieniowe WeeChat: kolejki FIFO, Gniazda UNIX pośrednika.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Katalogi XDG mogą się różnić w zależności od wartości zmiennych `XDG_*`. +
|
||
^(2)^ 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_ | *Tak*: może on zawierać hasła pośredników i sekrety TOTP (jeśli nie zostały zapisane w `sec.conf`), dozwolone adresy IP/websockety oraz otwarte porty.
|
||
| 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.
|
||
| typing.conf | Plik konfiguracyjny wtyczki _typing_ | Nie.
|
||
| 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.
|
||
|
||
[[upgrade]]
|
||
== Aktualizacja
|
||
|
||
Jeśli zostanie wydana nowa stabilna wersja WeeChat należy zaktualizować
|
||
się do tej wersji.
|
||
|
||
Na samym początku musisz zainstalować nową wersje WeeChat albo za pomocą
|
||
managera pakietów albo kompilując ją samemu, w taki sposób żeby plik
|
||
wykonywalny `weechat` i wszystke wymagane pliki znajdowały się w tych samych
|
||
ścieżkach. +
|
||
Można to zrobić podczas działania WeeChat.
|
||
|
||
[[upgrade_command]]
|
||
=== Komenda aktualizacji
|
||
|
||
WeeChat może zostać ponownie uruchomiony z nowego pliku binarnego bez potrzeby
|
||
jego wyłączania za pomocą komendy <<command_weechat_upgrade,/upgrade>>:
|
||
zawartości buforów i połączenia nie TLS zostają zachowane. +
|
||
Połączenia TLS są przerywane podczas aktualizacji i są automatycznie
|
||
przywracane po jej zakończeniu (przeładowanie sesji TLS jest obecnie
|
||
niemożliwe z użyciem GnuTLS).
|
||
|
||
Komenda ta może zostać użyta również w momencie restartu maszyny, na przykład
|
||
w celu aktualizacji kernela albo przeniesienia WeeChat na nową maszynę:
|
||
|
||
----
|
||
/upgrade -quit
|
||
----
|
||
|
||
Zapisuje to obecny stan w plikach `*.upgrade`. Możesz następnie wykonać restart
|
||
lub przenieść cały katalog WeeChat (konfiguracja, dane, cache) na inną maszynę,
|
||
następnie uruchomić WeeChat za pomocą polecenia:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat --upgrade
|
||
----
|
||
|
||
[[restart_after_upgrade]]
|
||
=== Restart po aktualizacji
|
||
|
||
[[restart_upgrading_notes]]
|
||
==== Informacje o aktualizacji
|
||
|
||
Po aktualizacji *zaleca się* zapoznanie z plikiem
|
||
https://github.com/weechat/weechat/blob/main/UPGRADING.md[UPGRADING.md ^↗^^],
|
||
który zawiera ważne informacje o niekompatybilnych zmianach i czynnościach,
|
||
jakie mogą być wymagane.
|
||
|
||
Powinieneś zapoznać się z informacjami dla wersji pomiędzy tą, która aktualizowałeś
|
||
a nową wersją. +
|
||
Na przykład dla aktualizacji z wersji 4.0.0 do 4.3.0 należy przeczytać informacje
|
||
dotyczące wszystkich wersji od 4.0.1 do 4.3.0 włącznie.
|
||
|
||
[[restart_configuration_upgrade]]
|
||
==== Aktualizacja konfiguracji
|
||
|
||
WeeChat potrafi automatycznie aktualizować pliki konfiguracyjne (`*.conf`):
|
||
|
||
* nowe opcje są dodawane z domyślnymi wartościami
|
||
* niepotrzebne już opcje są automatycznie kasowane i WeeChat wyświetla ostrzeżenie
|
||
z wartościami odczytanymi z pliku.
|
||
|
||
Przykład ostrzeżenia o usuwanej opcji:
|
||
|
||
----
|
||
=!= Ostrzeżenie: /home/user/.config/weechat/sec.conf, linia 15: nieznana opcja dla sekcji "crypt": passphrase_file = ""
|
||
----
|
||
|
||
Oznaza to, że opcja `sec.crypt.passphrase_file` została usunięta i jej wartość była
|
||
ustawiona na pusty ciąg, który był domyślną wartością w poprzednej wersji
|
||
(w tym przypadku żadna dodatkowa akcja nie jest wymagana).
|
||
|
||
[[interface]]
|
||
== Interfejs
|
||
|
||
[[screen_layout]]
|
||
=== Układ ekranu
|
||
|
||
Przykład terminala z WeeChat:
|
||
|
||
....
|
||
▼ bar "buflist" ▼ bar "title"
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.libera │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/libera] 2:#test(+n){4}* M [H: 3:#abc(2,5), 5] │
|
||
│ │[@Flashy(i)] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ bars "status" and "input" bar "nicklist" ▲
|
||
....
|
||
|
||
Domyślnie ekran jest podzielony na następujące obszary:
|
||
|
||
* 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,^3,9",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,^3,9",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,^3,9",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| time | `12:55` | Czas.
|
||
| buffer_last_number | `5` | Liczba najnowszych buforów (może się różnić od `buffer_count` jeśli opcja <<option_weechat.look.buffer_auto_renumber,weechat.look.buffer_auto_renumber>> jest ustawiona na `off`).
|
||
| buffer_plugin | `irc/libera` | 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 wyświetlanych 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.
|
||
| mouse_status | `M` | Status obsługi myszy (pusty jeśli obsługa myszy jest wyłączona), zobacz <<command_weechat_mouse,/mouse>> i <<key_bindings_toggle_keys,Włącz/wyłącz>>.
|
||
| 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 | `H: 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).
|
||
| typing | `Typing: bob, (alice)` | Powiadomienia o pisaniu, zobacz <<typing_notifications,Powiadomienia o pisaniu>>.
|
||
| 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,^3,9",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| input_prompt | `@Flashy(i)` | Input prompt, dla irc: nick i tryby (tryb "+i" oznacza niewidzialny na libera).
|
||
| away | `away` | Wskaźnik nieobecności.
|
||
| input_search | `Search lines (~ str,msg)` | Wskaźnik wyszukiwania (zobacz poniżej).
|
||
| 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.
|
||
|===
|
||
|
||
Dostępne są dwa tryby wyszukiwania:
|
||
|
||
* wyszukiwanie w liniach, na przydład `[Search lines (~ str,msg)]`, z następującymi informacjami:
|
||
** `~`: 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)
|
||
* wyszukiwanie w historii komend, na przydład `[Search command (~ str,local)]`,
|
||
z następującymi informacjami:
|
||
** `~`: wielkość liter ma znaczenie
|
||
** `==`: wielkość liter nie ma znaczenia
|
||
** `str`: wyszukiwanie ciągu
|
||
** `regex`: wyszukiwanie wyrażenia regularnego
|
||
** `local`: wyszukiwanie w lokalnej historii bufora
|
||
** `global`: wyszukiwanie w globalnej historii.
|
||
|
||
Pasek _nicklist_ posiada następujące domyślne elementy:
|
||
|
||
[width="100%",cols="^3,^3,9",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,^3,9",options="header"]
|
||
|===
|
||
| Element | Przykład | Opis
|
||
| buffer_count | `5` | Liczba otwartych buforów.
|
||
| buffer_nicklist_count_all | `4` | Liczba widocznych grup i nicków na nickliście.
|
||
| buffer_nicklist_count_groups | `0` | Liczba widocznych grup na nickliście.
|
||
| buffer_short_name | `#test` | Skrócona nazwa obecnego buforu.
|
||
| buflist2 | `1.weechat` | Lista buforów, drugi element paska (zobacz opcję <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist3 | `1.weechat` | Lista buforów, trzeci element paska (zobac opcję <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist4 | `1.weechat` | Lista buforów, czwarty element paska (zobacz opcję <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| buflist5 | `1.weechat` | Lista buforów, piąty element paska (zobacz opcję <<option_buflist.look.use_items,buflist.look.use_items>>).
|
||
| fset | `+buflist.look.sort: …+` | Pomoc dla obecnie wybranej opcji w buforze fset.
|
||
| irc_channel | `#test` | Nazwa bieżącego kanału IRC.
|
||
| irc_host | `+user@host.com+` | Aktualny host IRC.
|
||
| irc_nick | `+Flashy+` | Aktualny nick IRC.
|
||
| irc_nick_host | `+Flashy!user@host.com+` | Aktualny nick i host IRC.
|
||
| irc_nick_modes | `i` | Atrybuty IRC dla własnego nicka.
|
||
| irc_nick_prefix | `@` | Prefiks nicku na kanale IRC.
|
||
| spacer | | Specjalny element używany do wyrównania tekstu na paskach, zobacz <<item_spacer,Odstęp>>.
|
||
| 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).
|
||
| tls_version | `TLS1.3` | Wersja TLS używana przez obecny serwer IRC.
|
||
| window_number | `2` | Numer obecnego okna.
|
||
|===
|
||
|
||
Każdy aspekt układu może zostać spersonalizowany za pomocą <<command_line,komend>>:
|
||
<<command_weechat_bar,`/bar`>> do dostosowania pasków,
|
||
<<command_weechat_buffer,/buffer>> i <<command_weechat_window,`/window`>>
|
||
do dostosowania <<buffers_and_windows,budorów i okien>>,
|
||
i <<command_weechat_layout,/layout>> żeby nazwać, zapisać i przywrócić układ ekranu
|
||
i powiązania między oknami i buforami.
|
||
|
||
[[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="100%",cols="1,2",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:[d],
|
||
kbd:[xxxxxx] | Kolor tekstu `xxxxxx` (RGB jako wartości szesnastkowe, na przykład `FF0000` dla czerwonego).
|
||
| kbd:[Ctrl+c], kbd:[d],
|
||
kbd:[xxxxxx], kbd:[,],
|
||
kbd:[yyyyyy] | Kolor tekstu `xxxxxx` i tła `yyyyyy` (RGB jako wartości szesnastkowe).
|
||
| kbd:[Ctrl+c], kbd:[i] | Kursywa
|
||
| kbd:[Ctrl+c], kbd:[o] | Wyłącza kolory i atrybuty
|
||
| kbd:[Ctrl+c], kbd:[s] | Przekreślony tekst (wyświetlany w interfejsie ncurses jako w połowie jasny, ponieważ przekreślenie nie jest wspierane).
|
||
| kbd:[Ctrl+c], kbd:[v] | Odwróć video (przywraca kolor tekstu i tła)
|
||
| kbd:[Ctrl+c], kbd:[_] | Podkreślony tekst
|
||
|===
|
||
|
||
[NOTE]
|
||
Te same skróty (bez numeru kbd:[Ctrl+c], kbd:[c] i kbd:[Ctrl+c], kbd:[d])
|
||
mogą zostać użyte dla zatrzymania atrybutu.
|
||
|
||
Kody kolorów dla kbd:[Ctrl+c], kbd:[c]:
|
||
|
||
include::{autogendir}/autogen_user_irc_colors.pl.adoc[tag=irc_colors]
|
||
|
||
[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>>.
|
||
|
||
[[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 (przykłady <<window_split_examples,poniżej>>,
|
||
szczegóły komenda <<command_weechat_window,/window>>).
|
||
|
||
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.
|
||
|
||
Układy ekranu i powiązania między oknami i buforami mogą być
|
||
<<command_weechat_layout,zapisywane i przywracane>>.
|
||
|
||
[[window_split_examples]]
|
||
==== Przykłady
|
||
|
||
Przykład podziału poziomego (`/window splith`):
|
||
|
||
....
|
||
▼ window #2 (buffer #4)
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.libera │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/libera] 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/libera] 3:#abc(+n){4} │
|
||
│ │[@Flashy] hi peter!█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3)
|
||
....
|
||
|
||
Przykład podziału pionowego (`/window splitv`):
|
||
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.libera │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/libera] 3:#abc(+n) │[12:55] [5] [irc/libera] 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.libera │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/libera] 5:#ghi(+n) │
|
||
│ │ │ │[@Flashy] │
|
||
│ │ │ │──────────────────────────────────────│
|
||
│ │ │ │Welcome to #def │
|
||
│ │ │ │12:55:12 Max | hi │@Flashy│
|
||
│ │ │ │12:55:20 @Flashy | hi Max! │Max │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │[12:55] [5] [irc/libera] 3:#abc(+n) │[12:55] [5] [irc/libera] 4:#def(+n) │
|
||
│ │[@Flashy] hi peter!█ │[@Flashy] │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
▲ window #1 (buffer #3) ▲ window #2 (buffer #4)
|
||
....
|
||
|
||
[[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.libera │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/doc │ │
|
||
│ │ | /weechat/devel/weechat_plugin_api.en.html#_weechat │ │
|
||
│ │ | _hook_process │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │ │ │
|
||
│ │[12:55] [5] [irc/libera] 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/weechat/devel/weechat_│
|
||
│plugin_api.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).
|
||
|
||
[[buffers]]
|
||
=== 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,tagi linii>>).
|
||
|===
|
||
|
||
Wyświetlanie linni może być zmienione za pomocą 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="100%",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 komendę <<command_logger_logger,/logger>>).
|
||
| notify_none | Linia nie może być dodana do hotlisty. ^(1)^
|
||
| notify_message | Linia jest wiasomością użytkownika. ^(1)^
|
||
| notify_private | Linia jest wiadomością prywatną. ^(1)^
|
||
| notify_highlight | Linia jest wiadomością z podświetleniem. ^(1)^
|
||
| 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.
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Kiedy brak jest taga "notify_xxx", poziom jest ustawiony domyślnie na "low".
|
||
Jeśli tag "notify_xxx" jest obecny, można zdefiniować odpowiedni poziom powiadomień,
|
||
na przykład jeśli maksymalna hotlista jest używana dla nicku, poziom powiadomień może
|
||
być niższy niż wartość dla tagu.
|
||
|
||
[[local_variables]]
|
||
==== Zmienne lokalne
|
||
|
||
Zmienne lokalne mogą być definiowane dla wsystkich buforów.
|
||
|
||
Zmienna lokalna posiada:
|
||
|
||
* nazwę (ciąg)
|
||
* wartość (ciąg, może być pusty).
|
||
|
||
Zmienne lokalne mogą być tworzone przez WeeChat, wtyczki, skrypty lub ręcznie
|
||
w linii poleceń bufora.
|
||
|
||
Na przykład, żeby dodać zmienna lokalną „completion_default_template” wystarczy
|
||
polecenie:
|
||
|
||
----
|
||
/buffer setvar completion_default_template %(my_completion)
|
||
----
|
||
|
||
Żeby wyświetlić zmienne lokalne dla obecnego bufora:
|
||
|
||
----
|
||
/buffer listvar
|
||
----
|
||
|
||
Usunięcie zmiennej lokalnej „completion_default_template”:
|
||
|
||
----
|
||
/buffer delvar completion_default_template
|
||
----
|
||
|
||
WeeChat i jego wtyczki domyślnie tworzą następujące zmienne:
|
||
|
||
[width="100%",cols="2m,2,5",options="header"]
|
||
|===
|
||
| Nazwa | Wartość | Opis
|
||
|
||
| away
|
||
| dowolny ciąg
|
||
| Powód nieobecności na serwerze, ustawiane przez wtyczkę irc.
|
||
|
||
| channel
|
||
| dowolny ciąg
|
||
| Nazwa kanału, ustawiana przez wtyczki irc/xfer i bufory z
|
||
informacjami do debugowania wtyczek relay/trigger.
|
||
|
||
| charset_modifier
|
||
| dowolny ciąg
|
||
| Modyfikacja kodowania używanego na kanale, ustawiane przez wtyczkę irc.
|
||
|
||
| completion_default_template
|
||
| dowolny ciąg
|
||
| Domyślny szablon dopełnień dla bufora, nadpisuje zmienną
|
||
`weechat.completion.default_template`.
|
||
|
||
| filter
|
||
| dowolny ciąg
|
||
| Filtr zdefiniowany w niektórych buforach jak `/fset`, `/list` (irc), `/server raw` (irc)
|
||
i `/script`.
|
||
|
||
| host
|
||
| dowolny ciąg
|
||
| Własny host (jeśli jest znany), ustawiane przez wtyczkę irc.
|
||
|
||
| lag
|
||
| dowolny ciąg
|
||
| Opóźnienie serwera, ustawiane przez wtyczkę irc.
|
||
|
||
| name
|
||
| dowolny ciąg
|
||
| Nazwa bufora (uważaj, nie jest to pełna nazwa i nie wystarczy ona do
|
||
zidentyfikowania i wyszukania bufora).
|
||
|
||
| nick
|
||
| dowolny ciąg
|
||
| Nazwa użytkownika, ustawiane przez wtyczki irc i xfer.
|
||
|
||
| no_log
|
||
| `1` (lub dowolny niepusty ciąg)
|
||
| Jeśli jest ustawiona, wiadomości z bufora nie są logowane.
|
||
|
||
| plugin
|
||
| dowolny ciąg
|
||
| Nazwa wtyczki, która stworzyła bufor (`core` dla buforów WeeChat).
|
||
|
||
| script_close_cb
|
||
| dowolny ciąg
|
||
| Callback zamykania bufora zdefiniowany przez skrypt.
|
||
|
||
| script_close_cb_data
|
||
| dowolny ciąg
|
||
| Dane dla callbacka zamykania bufora zdefiniowane przez skrypt.
|
||
|
||
| script_input_cb
|
||
| dowolny ciąg
|
||
| Callback wprowadzania danych w buforze zdefiniowany przez skrypt.
|
||
|
||
| script_input_cb_data
|
||
| dowolny ciąg
|
||
| Dane dla callbacka wprowadzania danych w buforze zdefiniowane przez skrypt.
|
||
|
||
| script_name
|
||
| dowolny ciąg
|
||
| Nazwa skryptu, który stworzył bufor.
|
||
|
||
| server
|
||
| dowolny ciąg
|
||
| Nazwa serwera ustawiana przez wtyczkę irc albo bufor z informacjami do
|
||
debugowania wtyczki relay/trigger.
|
||
|
||
| spell_suggest
|
||
| dowolny ciąg
|
||
| Źle napisane słowo i sugestie (format: "słowo:sugestie"), ustawiane przez
|
||
wtyczkę spell.
|
||
|
||
| trigger_filter
|
||
| dowolny ciąg
|
||
| Filtr triggerów, ustawiany przez wtyczkę trigger.
|
||
|
||
| type
|
||
| dowolny ciąg, na przykład:
|
||
`channel`,
|
||
`debug`,
|
||
`exec`,
|
||
`option`,
|
||
`private`,
|
||
`relay`,
|
||
`script`,
|
||
`server`,
|
||
`user`,
|
||
`xfer`
|
||
| Typ bufora ustawiany przez WeeChat i wiele wtyczek.
|
||
|
||
|===
|
||
|
||
[NOTE]
|
||
External plugins and scripts can define and use other local variables.
|
||
|
||
[[buflist]]
|
||
=== Lista buforów
|
||
|
||
Wtyczka buflist wyświetla listę buforów w elemencie paska nazwanym "buflist"
|
||
(cztery dodatkowe elementy "buflist2", "buflist3", "buflist4" i "buflist5" są
|
||
również dostępne). +
|
||
Domyślny pasek "buflist" jest tworzony podczas uruchomieina z włączoną wtyczką.
|
||
|
||
[[buflist_commands]]
|
||
==== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=buflist_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=buflist_options]
|
||
|
||
[[cursor_mode]]
|
||
=== Tryb kursora
|
||
|
||
Tryb kursora pozwala na przesuwanie kurdsora w dowolne miejsce na ekranie,
|
||
w obszarze czatu i paskach, i pozwala na wykonywanie akcji w danym miejscu. +
|
||
Możesz wejść w tryb kursora za pomocą komendy `/cursor` lub za pomocą środkowego
|
||
przycisku myszy (obsługa myszy musi być włączona za pomocą kbd:[Alt+m] lub
|
||
komendy `/mouse enable`).
|
||
|
||
Typowym użyciem jest cytowanie wiadomości (obszar czatu) i interakcja z nickami
|
||
(pasek z listą nicków).
|
||
|
||
Zobacz komendę <<command_weechat_cursor,/cursor>> i
|
||
<<key_bindings_cursor_context,skróty klawiszowe w trybie kursora>> dla listy akcji
|
||
dostępnych w tym trybie.
|
||
|
||
[[key_bindings]]
|
||
== Skróty klawiszowe
|
||
|
||
WeeChat posiada wiele domyślnych skrótów opisanych w poniższych rozdziałach. +
|
||
Można je zmienić oraz dodać nowe za pomocą komendy <<command_weechat_key,/key>>.
|
||
|
||
[[key_bindings_command_line]]
|
||
=== Skróty dla linii poleceń
|
||
|
||
[[key_bindings_cmdline_cursor_movement]]
|
||
==== Poruszanie kursora
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[←] +
|
||
kbd:[Shift+←] +
|
||
kbd:[Ctrl+b] | Idź do poprzedniego znaku w linii poleceń. | `+/input move_previous_char+`
|
||
| kbd:[→] +
|
||
kbd:[Shift+→] +
|
||
kbd:[Ctrl+f] | Idź do następnego znaku w linii poleceń. | `+/input move_next_char+`
|
||
| kbd:[Shift+↑] | Idź do poprzedniej linii. | `+/input move_previous_line+`
|
||
| kbd:[Shift+↓] | Idź do następnej linii. | `+/input move_next_line+`
|
||
| 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 obecnej linii. | `+/input move_beginning_of_line+`
|
||
| kbd:[Shift+Home] | Idź na początek lini poleceń. | `+/input move_beginning_of_input+`
|
||
| kbd:[End] +
|
||
kbd:[Ctrl+e] | Idź na koniec obecnej linii. | `+/input move_end_of_line+`
|
||
| kbd:[Shift+End] | Idż na koniec linii poleceń. | `+/input move_end_of_input+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_editing]]
|
||
==== Edycja
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Del] +
|
||
kbd:[Ctrl+d] | Usuń następny znak w linii poleceń. | `+/input delete_next_char+`
|
||
| kbd:[Backspace] +
|
||
kbd:[Ctrl+h] | Usuń poprzedni znak w linii poleceń. | `+/input delete_previous_char+`
|
||
| kbd:[Ctrl+k] | Usuń wszystko od kursora do końca obecnej linii (skasowany ciąg zostanie skopipowany do wewnętrznego schowka). | `+/input delete_end_of_line+`
|
||
| kbd:[Alt+Ctrl+k] | Usuń wszystko od kursora do końca linii poleceń (skasowany ciąg zostanie skopipowany do wewnętrznego schowka). | `+/input delete_end_of_input+`
|
||
| kbd:[Ctrl+t] | Przestaw znaki. | `+/input transpose_chars+`
|
||
| kbd:[Ctrl+u] | Usuń wszystko od kursora do początku obecnej linii (skasowany ciąg zostanie skopipowany do wewnętrznego schowka). | `+/input delete_beginning_of_line+`
|
||
| kbd:[Alt+Ctrl+u] | Usuń wszystko od kursora do początku linii poleceń (skasowany ciąg zostanie skopipowany do wewnętrznego schowka). | `+/input delete_beginning_of_input+`
|
||
| kbd:[Alt+Backspace] | Usuń poprzednie słowo w linii poleceń (usuwany ciąg jest kopiowany do wewnętrznego schowka). | `+/input delete_previous_word+`
|
||
| kbd:[Ctrl+w] | Usuń poprzednie słowo w linii poleceń do białego znaku (usuwany ciąg jest kopiowany do wewnętrznego schowka). | `+/input delete_previous_word_whitespace+`
|
||
| 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:[Alt+Enter] | Wstawia nową linię. | `+/input insert \n+`
|
||
| 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ń obecną linię. | `+/input delete_line+`
|
||
| kbd:[Alt+R] | Usuń całą linię poleceń. | `+/input delete_input+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_color_codes]]
|
||
==== Kolory
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| 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:[d] | Wstaw kod dla kolorowego tekstu (kolor RGB jaki liczba szesnastkowa). | `+/input insert \x04+`
|
||
| 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:[s] | Wstaw kod dla przekreślonego tekstu. | `+/input insert \x1E+`
|
||
| 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+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_history]]
|
||
==== Historia poleceń
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| 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+`
|
||
|===
|
||
|
||
[[key_bindings_cmdline_system]]
|
||
==== System
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+z] | Uśpij proces WeeChat. | `+/sys suspend+`
|
||
|===
|
||
|
||
[[key_bindings_buffers]]
|
||
=== Bufory
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+r] | Szukaj tekstu w historii komend (zobacz <<key_bindings_histsearch_context,skróty w kontekscie "histsearch">>). | `+/input search_history+`
|
||
| kbd:[Ctrl+s] | Szukaj tekstu w liniach bufora (zobacz <<key_bindings_search_context,skróty w kontekscie "search">>). | `+/input search_text_here+`
|
||
| kbd:[Ctrl+x] | Przełącz obecny bufor jeśli bufory są połączone pod tym samym numerem, na przykład przełącz na bufor innego serwera IRC. | `+/buffer switch+`
|
||
| kbd:[Alt+x] | Pokaż wybrany z połączonych buforów (naciśnij kbd:[Alt+x] ponownie: wyświetl wszystkie połączone bufory). | `+/buffer zoom+`
|
||
| 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:[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:[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+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+Shift+U] | Ustaw znacznik nieprzeczytania we wszystkich buforach. | `+/allbuf /buffer set unread+`
|
||
| kbd:[Alt+<] | Przełącz na poprzedni bufor z listy odwiedzonych buforów. | `+/buffer jump prev_visited+`
|
||
| kbd:[Alt+>] | Przełącz na następny bufor z listy odwiedzonych buforów. | `+/buffer jump next_visited+`
|
||
| kbd:[Alt+/] | Przełącz na ostatnio wyświetlony bufor (przed ostatnią zmianą bufora). | `+/buffer jump last_displayed+`
|
||
|===
|
||
|
||
[[key_bindings_windows]]
|
||
=== Okna
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+l] (`L`) | Przerysuj całe okno. | `+/window refresh+`
|
||
| kbd:[Alt+l] (`L`) | Przełącz tryb niesformatowanego wyświetlania. | `+/window bare+`
|
||
| kbd:[F7] | Przełącz na poprzednie okno. | `+/window -1+`
|
||
| kbd:[F8] | Przełącz na następne okno. | `+/window +1+`
|
||
| 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+`
|
||
|===
|
||
|
||
[[key_bindings_bars]]
|
||
=== Paski
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| 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:[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+Shift+B] | Przełącz widoczność listy buforów. | `+/buflist toggle+`
|
||
| kbd:[Alt+Shift+N] | Przełącza widoczność paska z listą nicków. | `+/bar toggle nicklist+`
|
||
|===
|
||
|
||
[[key_bindings_hotlist]]
|
||
=== Hotlista
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Alt+a] | Przełącz na następny bufor z aktywnością (z priorytetem: powiadomienie, wiadomość, inne). | `+/buffer jump smart+`
|
||
| kbd:[Alt+h], kbd:[Alt+c] | Wyczyść hotliste (powiadomienia o aktywności w buforach). | `+/hotlist clear+`
|
||
| kbd:[Alt+h], kbd:[Alt+m] | Usuń obecny bufor z hotlisty. | `+/hotlist remove+`
|
||
| kbd:[Alt+h], kbd:[Alt+r] | Przywróć ostatnią usuniętą hotlistę w obecnym buforze. | `+/hotlist restore+`
|
||
| kbd:[Alt+h], kbd:[Alt+Shift+R] | Przywróć ostatnią hotlistę usuniętą we wszystkich buforach. | `+/hotlist restore -all+`
|
||
|===
|
||
|
||
[[key_bindings_toggle_keys]]
|
||
=== Włącz/wyłącz
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Alt+m] | Włącz/wyłącz obsługę myszy. | `+/mouse toggle+`
|
||
| kbd:[Alt+s] | Włącz/wyłącz sprawdzenie pisowni. | `+/mute spell toggle+`
|
||
| kbd:[Alt+=] | Włącz/wyłącz filtry. | `+/filter toggle+`
|
||
| kbd:[Alt+-] | Włącz/wyłącz filtry w bieżącym buforze. | `+/filter toggle @+`
|
||
| kbd:[Alt+Ctrl+l] (`L`) | Przełącz między lokalnymi komendami a zdalnym buforem (relay "api"). | `+/remote togglecmd+`
|
||
|===
|
||
|
||
[[key_bindings_search_context]]
|
||
=== Wyszukiwanie tekstu
|
||
|
||
Te skróty można użyć w kontskście "search" (kiedy kbd:[Ctrl+s] zostało wciśnięte do wyszukiwania
|
||
tekstu w liniach bufora).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+x] | 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:[Ctrl+r] +
|
||
kbd:[↑] | Poprzednie wystąpienie. | `+/input search_previous+`
|
||
| kbd:[Ctrl+s] +
|
||
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 przywróć ekran do stanu z przed wyszukiwania. | `+/input search_stop+`
|
||
|===
|
||
|
||
[[key_bindings_histsearch_context]]
|
||
=== Wyszukiwanie w historii komend
|
||
|
||
Te skróty można użyć w kontskście "histsearch" (kiedy kbd:[Ctrl+r] zostało wciśnięte do wyszukiwania
|
||
tekstu w historii komend).
|
||
|
||
[width="100%",cols="^.^3,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Opis | Komenda
|
||
| kbd:[Ctrl+x] | 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 przeszukiwanie w: lokalnej histori (domyślne), historia globalna. | `+/input search_switch_where+`
|
||
| kbd:[Ctrl+r] +
|
||
kbd:[↑] | Szukaj we wcześniejszych (starszych) wpisach w historii. | `+/input search_previous+`
|
||
| kbd:[Ctrl+s] +
|
||
kbd:[↓] | Szukaj w następnych (nowszych) wpisach w historii. | `+/input search_next+`
|
||
| kbd:[Enter] +
|
||
kbd:[Ctrl+j] +
|
||
kbd:[Ctrl+m] | Zatrzymaj wyszukiwanie i użyj znalezionej komendy. | `+/input search_stop_here+`
|
||
| kbd:[Ctrl+o] | Wykonaj komende znaleziona w historii i wstaw kolejna do linii poleceń. | `+/input history_use_get_next+`
|
||
| kbd:[Ctrl+q] | Zatrzymaj wyszukiwanie i przywróć linię poleceń do początkowej wartości. | `+/input search_stop+`
|
||
|===
|
||
|
||
[[key_bindings_cursor_context]]
|
||
=== Kursor
|
||
|
||
Te skróty są używane w kontekście kursora (dowolne przemieszczanie kursora na
|
||
ekranie), zobacz <<cursor_mode,tryb kursora>>.
|
||
|
||
[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 do pierwszej linii w obszarze. | `+/cursor move edge_top+`
|
||
| kbd:[Alt+↓] | - | Przesuń kursor do ostatniej linii w obszarze. | `+/cursor move edge_bottom+`
|
||
| kbd:[Alt+←] | - | Przesuń kursor do pierwszej kolumny w obszarze. | `+/cursor move edge_left+`
|
||
| kbd:[Alt+→] | - | Przesuń kursor do ostatniej kolumny w obszarze. | `+/cursor move edge_right+`
|
||
| kbd:[Alt+Home] | - | Przesuń kursor w górny lewy róg obszaru. | `+/cursor move top_left+`
|
||
| kbd:[Alt+End] | - | Przesuń kursor w dolny prawy róg obszaru. | `+/cursor move bottom_right+`
|
||
| kbd:[Alt+Shift+↑] | - | Przesuń kursor obszar do góry. | `+/cursor move area_up+`
|
||
| kbd:[Alt+Shift+↓] | - | Przesuń kursor obszar w dół. | `+/cursor move area_down+`
|
||
| kbd:[Alt+Shift+←] | - | Przesuń kursor obszar w lewo. | `+/cursor move area_left+`
|
||
| kbd:[Alt+Shift+→] | - | Przesuń kursor obszar w prawo. | `+/cursor move area_right+`
|
||
| kbd:[m] | chat | Cytuj wiadomość. | `+hsignal:chat_quote_message;/cursor stop+`
|
||
| kbd:[l] | chat | Cytuj zaznaczoną linię. | `+hsignal:chat_quote_focused_line;/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]]
|
||
=== Mysz
|
||
|
||
Te akcje myszą mogą zostać użyte tylko jeśli obsługa myszy została włączona
|
||
za pomocą skrótu kbd:[Alt+m] (komenda: `+/mouse toggle+`).
|
||
|
||
[width="100%",cols="^.^3,^.^3,^.^3,.^8,.^8",options="header"]
|
||
|===
|
||
| Klawisz/Wheel ^(1)^ | Gest | Obszar | Opis | Komenda
|
||
| kbd:[■ □ □] | - | chat | Przełącz na okno. | `+/window ${_window_number}+`
|
||
| kbd:[■ □ □] | lewo | chat | Przełącz na poprzedni bufor. | `+/window ${_window_number};/buffer +1+`
|
||
| kbd:[■ □ □] | prawo | chat | Przełącz na następny bufor. | `+/window ${_window_number};/buffer +1+`
|
||
| kbd:[■ □ □] | lewo (długo) | chat | Przełącz na pierwszy bufor. | `+/window ${_window_number};/buffer 1+`
|
||
| kbd:[■ □ □] | prawo (długo) | chat | Przełącz na ostatni bufor. | `+/window ${_window_number};/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+`
|
||
| kbd:[■ □ □] | - | chat: bufor fset | Zaznacz linię b buforze fset. | `+/window ${_window_number};/fset -go ${fset_option_index}+`
|
||
| kbd:[□ □ ■] | - | chat: bufor fset | Przełącz (włącz/wyłącz) lub edytuj wartośc opcji. | `+hsignal:fset_mouse+`
|
||
| kbd:[□ □ ■] | lewo | chat: bufor fset | Zmniejsz wartość zmiennej liczbowej / koloru / enum, ustaw/rozszerz wartośc innego typu. | `+hsignal:fset_mouse+`
|
||
| kbd:[□ □ ■] | prawo | chat: bufor fset | Zwiększ wartość zmiennej liczbowej / koloru / enum, ustaw/rozszerz wartośc innego typu. | `+hsignal:fset_mouse+`
|
||
| kbd:[□ □ ■] | góra / dół | chat: bufor fset | Zaznacz/odznacz wiele opcji. | `+hsignal:fset_mouse+`
|
||
| kbd:[▲] | - | chat: /list buffer | Przesuń pięć linii w górę w buforze /list. | `+/list -up 5+`
|
||
| kbd:[▼] | - | chat: /list buffer | Przesuń pięć linii w dół w buforze /list. | `+/list -down 5+`
|
||
| kbd:[■ □ □] | - | chat: /list buffer | Wybierz linię w buforze /list. | `+/window ${_window_number};/list -go ${_chat_line_y}+`
|
||
| kbd:[□ □ ■] | - | chat: /list buffer | Wejdź na kanał IRC w zaznaczonej linii. | `+hsignal:irc_list_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+`
|
||
| kbd:[■ □ □] | - | chat: bufor skryptów | Zaznacz linię w buforze skryptów. | `+/script -go ${_chat_line_y}+`
|
||
| kbd:[□ □ ■] | - | chat: bufor skryptów | Zainstaluj/usuń skrypt. | `+/script -go ${_chat_line_y};/script installremove -q ${script_name_with_extension}+`
|
||
| kbd:[■ □ □] | góra / lewo | buflist | Przenieś bufor na niższy numer. | Sygnał `+buflist_mouse+`.
|
||
| kbd:[■ □ □] | dół / prawo | buflist | Przenieś bufor na wyższy numer. | Sygnał `+buflist_mouse+`.
|
||
| kbd:[■ □ □] | - | buflist | Przełącz na bufor (poprzednio odwiedzony bufor, jeśli jest to obecny bufor). | Sygnał `+buflist_mouse+`.
|
||
| kbd:[□ □ ■] | - | 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+`.
|
||
| kbd:[■ □ □] | góra | lista nicków | Przewiń w górę jedna stronę listy nicków. | `+/bar scroll nicklist ${_window_number} -100%+`
|
||
| kbd:[■ □ □] | dół | lista nicków | Przewiń w dół jedna stronę listy nicków. | `+/bar scroll nicklist ${_window_number} +100%+`
|
||
| kbd:[■ □ □] | góra (długo) | lista nicków | Idź na początek listy nicków. | `+/bar scroll nicklist ${_window_number} b+`
|
||
| kbd:[■ □ □] | dół (długo) | lista nicków | Idź na koniec listy nicków. | `+/bar scroll nicklist ${_window_number} e+`
|
||
| kbd:[■ □ □] | - | lista nicków | Otwórz prywatną rozmowę z nick. | `+/window ${_window_number};/query ${nick}+`
|
||
| kbd:[□ □ ■] | - | lista nicków | Wykonaj whois dla nicka. | `+/window ${_window_number};/whois ${nick}+`
|
||
| kbd:[■ □ □] | lewo | lista nicków | Wykop nick. | `+/window ${_window_number};/kick ${nick}+`
|
||
| kbd:[■ □ □] | lewo (długo) | lista nicków | Wykop i zbanuj nick. | `+/window ${_window_number};/kickban ${nick}+`
|
||
| kbd:[□ □ ■] | lewo | lista nicków | Zbanuj nick. | `+/window ${_window_number};/ban ${nick}+`
|
||
| kbd:[□ □ ■] | - | 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%+`
|
||
| kbd:[□ ■ □] | - | gdziekolwiek | Włącz tryb kursora w tym miejscu. | `+/cursor go ${_x},${_y}+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Przyciski: +
|
||
kbd:[◼ □ □]: kliknięcie lewym przyciskiem +
|
||
kbd:[□ ◼ □]: kliknięcie środkowym przyciskiem +
|
||
kbd:[□ □ ◼]: kliknięcie prawym przyciskiem +
|
||
Kółko: +
|
||
kbd:[▲]: w górę +
|
||
kbd:[▼]: w dół
|
||
|
||
[[key_bindings_fset_buffer]]
|
||
=== Bufor fset
|
||
|
||
Poniższe skróty i akcje mogą zostać użyte w buforze fset (zobacz <<fset,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/enum, ustaw wartość pozostałych typów. | `+/fset -del -1+`
|
||
| kbd:[Alt++] | `+` | Dodaj 1 do wartości liczbowej/koloru/enum, 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 komenda <<command_fset_fset,/fset>>). |
|
||
| | `u:xxx` | Odznacz zaznaczone opcje pasujące do filtra "xxx" (dowolny filtr an opcję lub wartość, zobacz komenda <<command_fset_fset,/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] | `p` | Przełącz opcje opisu wtyczki (`pass:[plugins.desc.*]`). | `+/mute /set fset.look.show_plugins_desc toggle+`
|
||
| kbd:[Alt+v] | `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_irc_list_buffer]]
|
||
=== Bufor IRC /list
|
||
|
||
Te skróty i akcje mogą zostać użyte w buforze IRC /list (zobacz komendę <<command_irc_list,/list>>).
|
||
|
||
[width="100%",cols="^.^3,^.^2,.^8,.^5",options="header"]
|
||
|===
|
||
| Skrót | Akcja ^(1)^ | Opis | Komenda
|
||
| kbd:[↑] | | Przejdź linię wyżej. | `+/list -up+`
|
||
| kbd:[↓] | | Przejdź linię niżej. | `+/list -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. | `+/list -go 0+`
|
||
| kbd:[Alt+End] | `pass:[>>]` | Przejdź do ostatniej linii. | `+/list -go end+`
|
||
| kbd:[F11] | `pass:[<]` | Przewiń poziomo w lewo. | `+/list -left+`
|
||
| kbd:[F12] | `pass:[>]` | Przewiń poziomo w prawo. | `+/list -right+`
|
||
| kbd:[Ctrl+j] | `j` | Wejdź na kanał IRC z zaznaczonej linii. | `+/list -join+`
|
||
| | `xxx` | Pokaż tylko kanały z "xxx" w nazwie lub temacie (wielkość liter nie jest uwzględniana). |
|
||
| | `n:xxx` | Pokaż tylko kanały z "xxx" w nazwie (wielkość liter nie jest uwzględniana). |
|
||
| | `t:xxx` | Pokaż tylko kanały z "xxx" w temacie (wielkość liter nie jest uwzględniana). |
|
||
| | `u:n` | Pokaż tylko kanały z przynajmniej "n" użytkownikami. |
|
||
| | `u:>n` | Pokaż tylko kanały z więcej niż "n" użytkownikami. |
|
||
| | `u:<n` | Pokaż tylko kanały z mniej niż "n" użytkownikami. |
|
||
| | `c:xxx` | Pokaż tylko kanały pasujące do przetworzonego warunku "xxx", z użyciem następujących zmiennych: name, name2, users, topic. |
|
||
| | `s:x,y` | Sortuj kanały po polach x,y (zobacz komendę <<command_irc_list,/list>>). |
|
||
| | `s:` | Zresetuj sortowanie do domyślnej wartości (zobacz komendę <<command_irc_list,/list>>). |
|
||
| | `$` | Odświerz listę (wykonaj ponownie komendę <<command_irc_list,/list>>). |
|
||
| | `q` | Zamknij bufor. | `+/buffer close+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Akcja musi zostać wprowadzona z linii poleceń i potwierdzona przez kbd:[Enter].
|
||
|
||
[[key_bindings_script_buffer]]
|
||
=== Bufor skryptów
|
||
|
||
Te skróty klawiszowe i akcje mogą zostać użyte w buforze skryptów (zobacz <<script_manager,manager skryptów>>).
|
||
|
||
[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` | Załaduj skrypt. | `+/script load+`
|
||
| kbd:[Alt+L] | `L` | Przeładuj skrypt. | `+/script reload+`
|
||
| 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+`
|
||
| | `s:x,y` | Sortuj skrypty po polach x,y (zobacz opcję <<option_script.look.sort,script.look.sort>>). |
|
||
| | `s:` | Zresetuj sortowanie do domyślnej wartości (zobacz opcję <<option_script.look.sort,script.look.sort>>). |
|
||
| | `$` | Odświerza listę. |
|
||
| | `q` | Zamyka bufor. | `+/buffer close+`
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Akcja musi zostać wprowadzona z linii poleceń i potwierdzona przez kbd:[Enter].
|
||
|
||
[[configuration]]
|
||
== Konfiguracja
|
||
|
||
[[fset]]
|
||
=== Fset
|
||
|
||
Wtyczka Fast Set wyświetla listę opcji w buforze i pomaga w ustawianiu opcji
|
||
WeeChat i wtyczek.
|
||
|
||
Przykład bufora fset wyświetlający opcje zaczynające się od `weechat.look` :
|
||
|
||
[subs="quotes"]
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.weechat│7/125 | Filtr: weechat.look.* | Sortowanie: ~name | Klawisz(wejście): alt+>>│
|
||
│2.fset │weechat.look.bare_display_exit_on_input: wyjście z trybu niesformatowanego w│
|
||
│ │yświetlania po każdej zmianie wejścia [domyślnie: on] │
|
||
│ │----------------------------------------------------------------------------│
|
||
│ │ weechat.look.align_end_of_lines enum message │
|
||
│ │ weechat.look.align_multiline_words bool on │
|
||
│ │ weechat.look.bar_more_down ciąg "++" │
|
||
│ │ weechat.look.bar_more_left ciąg "<<" │
|
||
│ │ weechat.look.bar_more_right ciąg ">>" │
|
||
│ │ weechat.look.bar_more_up ciąg "--" │
|
||
│ │## weechat.look.bare_display_exit_on_input bool on ##│
|
||
│ │ weechat.look.bare_display_time_format ciąg "%H:%M" │
|
||
│ │ weechat.look.buffer_auto_renumber bool on │
|
||
│ │ weechat.look.buffer_notify_default enum all │
|
||
│ │ weechat.look.buffer_position enum end │
|
||
│ │ weechat.look.buffer_search_case_sensitive bool off │
|
||
│ │ weechat.look.buffer_search_force_default bool off │
|
||
│ │ weechat.look.buffer_search_history enum local │
|
||
│ │ weechat.look.buffer_search_regex bool off │
|
||
│ │ weechat.look.buffer_search_where enum prefix_message │
|
||
│ │ weechat.look.buffer_time_format ciąg "%H:%M:%S" │
|
||
│ │[12:55] [2] [fset] 2:fset │
|
||
│ │█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[fset_commands]]
|
||
==== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=fset_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=fset_options]
|
||
|
||
[[colors]]
|
||
=== Kolory
|
||
|
||
[[colors_basic]]
|
||
==== Podstawowe kolory
|
||
|
||
Podstawowe kolory w WeeChat to:
|
||
|
||
[width="75%",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:
|
||
|
||
* `+%+`: mruganie
|
||
* `+.+`: "przyciemnienie" (połowa jasności)
|
||
* `+*+` : pogrubiony tekst
|
||
* `+!+` : odwrócenie video
|
||
* `+/+` : pochyły
|
||
* `+_+` : podkreślony tekst
|
||
* `+|+`: zachowuje atrybuty: nie resetuje blink/dim/bold/reverse/italic/underlined
|
||
przy zmianie 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
|
||
----
|
||
|
||
// TRANSLATION MISSING
|
||
[[themes]]
|
||
=== Motywy
|
||
|
||
A theme is a named bundle of option overrides that can be applied with
|
||
the <<command_weechat_theme,/theme>> command. WeeChat ships a built-in
|
||
`"light"` theme tuned for light-background terminals and supports
|
||
user-defined themes loaded transiently from files.
|
||
|
||
[[themes_themable_options]]
|
||
==== Themable options
|
||
|
||
Themes can only set options marked as _themable_. All `*.color.*`
|
||
options are themable by default; a few string options that hold format
|
||
expressions with `+${color:...}+` references (such as
|
||
`+weechat.color.chat_nick_colors+`, `+weechat.look.prefix_error+` or the
|
||
`+buflist.format.*+` formats) are explicitly opted in.
|
||
|
||
You can list the full themable surface area from the
|
||
<<command_fset_fset,/fset>> buffer with the `+t:themable+` filter.
|
||
|
||
[[themes_apply]]
|
||
==== Applying a theme
|
||
|
||
To switch to the built-in light-background theme:
|
||
|
||
----
|
||
/theme apply light
|
||
----
|
||
|
||
The current state of every themable option is saved beforehand to a
|
||
backup theme file named like `+backup-YYYYMMDD-HHMMSS-uuuuuu+` in
|
||
directory `+themes+` inside the WeeChat configuration directory, so the
|
||
previous look can be restored at any time with:
|
||
|
||
----
|
||
/theme apply backup-YYYYMMDD-HHMMSS-uuuuuu
|
||
----
|
||
|
||
Backup creation can be disabled (not recommended):
|
||
|
||
----
|
||
/set weechat.look.theme_backup off
|
||
----
|
||
|
||
If backup is enabled and the backup file cannot be written, the apply
|
||
is aborted before any option is changed.
|
||
|
||
The name of the last applied theme is stored in
|
||
`+weechat.look.theme+` (informational only; not re-applied at startup).
|
||
|
||
[[themes_reset]]
|
||
==== Resetting to defaults
|
||
|
||
To restore the look shipped with WeeChat, reset every themable option
|
||
to its default value:
|
||
|
||
----
|
||
/theme reset
|
||
----
|
||
|
||
A backup is written first (same gate as `+/theme apply+`); on backup
|
||
failure the reset is aborted before any option is changed.
|
||
`+weechat.look.theme+` is cleared too.
|
||
|
||
[[themes_save_delete]]
|
||
==== Saving and deleting user themes
|
||
|
||
Save the current themable options as a new user theme file:
|
||
|
||
----
|
||
/theme save mytheme
|
||
----
|
||
|
||
Every themable option is written, so the file is self-contained and
|
||
applies the exact same look on any WeeChat, regardless of its current
|
||
configuration.
|
||
|
||
Reserved names (built-in theme names like `+light+` and any name
|
||
starting with `+backup-+`) are refused. Files live at
|
||
`+${weechat_config_dir}/themes/<name>.theme+`.
|
||
|
||
Rename a user theme (typical use: keep a useful automatic backup
|
||
under a meaningful name):
|
||
|
||
----
|
||
/theme rename backup-20260525-094210-123456 mybackup
|
||
----
|
||
|
||
Built-in themes have no file and cannot be renamed; the target name
|
||
cannot match a built-in name or start with `+backup-+`, and the
|
||
target file must not already exist. The `+[info]+` `+name+` field
|
||
inside the file is rewritten so `/theme info` reports the new name
|
||
consistently.
|
||
|
||
Delete a user theme:
|
||
|
||
----
|
||
/theme delete mytheme
|
||
----
|
||
|
||
This removes the file on disk; built-in themes cannot be deleted.
|
||
|
||
[[themes_file_format]]
|
||
==== Theme file format
|
||
|
||
A theme file is INI-like with two sections:
|
||
|
||
----
|
||
[info]
|
||
name = "solarized_light"
|
||
description = "Light-background theme inspired by Solarized"
|
||
date = "2026-05-25 09:42:10"
|
||
weechat = "4.10.0-dev"
|
||
|
||
[options]
|
||
weechat.color.chat = "darkgray"
|
||
weechat.color.separator = "blue"
|
||
irc.color.input_nick = "magenta"
|
||
buflist.format.number = "${color:28}${number}${if:${number_displayed}?.: }"
|
||
----
|
||
|
||
`+[info]+` is informational metadata shown by `/theme info`. `+[options]+`
|
||
holds the actual overrides; keys are the full option names that would
|
||
appear in `/set`. String values can be enclosed in double or single
|
||
quotes; quotes are stripped at parse time. Non-themable options listed
|
||
in a theme file are refused at apply time and logged to the core
|
||
buffer (so a `.theme` file imported from an untrusted source cannot
|
||
overwrite passwords, autoload lists, or startup commands).
|
||
|
||
User theme files are never cached: on every `/theme apply <name>` the
|
||
file is parsed, applied, and freed.
|
||
|
||
[[themes_resolution]]
|
||
==== Resolution order
|
||
|
||
When `+/theme apply <name>+` is run:
|
||
|
||
* If `+${weechat_config_dir}/themes/<name>.theme+` exists, the file
|
||
is parsed and used (it shadows any built-in with the same name).
|
||
* Otherwise the built-in theme registry is consulted; built-ins are
|
||
registered programmatically by core, plugins and scripts (see the
|
||
plugin and scripting documentation for `+weechat_theme_register+`).
|
||
|
||
If neither source provides the name, the apply is refused.
|
||
|
||
[[charset]]
|
||
=== 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.libera 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::{autogendir}/autogen_user_commands.pl.adoc[tag=charset_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=charset_options]
|
||
|
||
[[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="75%",cols="2m,7",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 "libera":
|
||
|
||
----
|
||
/set weechat.notify.irc.libera message
|
||
----
|
||
|
||
Ustawienie poziomu powiadomień na _highlight_ tylko dla kanału "#weechat":
|
||
|
||
----
|
||
/set weechat.notify.irc.libera.#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 setauto hotlist_max_level_nicks_add joe:2,mike:2
|
||
----
|
||
|
||
[[highlights]]
|
||
=== Podświetlenia
|
||
|
||
[[highlights_disable]]
|
||
==== Wyłączenie podświetleń
|
||
|
||
Możesz wyłączyć podświetlenia za pomocą opcji
|
||
<<option_weechat.look.highlight_disable_regex,weechat.look.highlight_disable_regex>>
|
||
(wyrażenie regularne). +
|
||
Kiedy podświetlenie jest wyłączone za pomocą tej opcji wszystkie pozostałe opcje
|
||
podświetleń są ignorowane.
|
||
|
||
Na przykład żeby wyłączyć wszystkie podświetlenia wiadomości ze słowem zaczynającym
|
||
się od "flash" pomiędzy nawiasami trójkątnymi:
|
||
|
||
----
|
||
/set weechat.look.highlight_disable_regex "<flash.*>"
|
||
----
|
||
|
||
Można to także osiągnąć za pomocą właściwości bufora "highlight_disable_regex".
|
||
|
||
Ten sam przykład, tylko dla konkretnego bufora:
|
||
|
||
----
|
||
/buffer setauto highlight_disable_regex <flash.*>
|
||
----
|
||
|
||
[[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 setauto highlight_regex .*
|
||
----
|
||
|
||
[[buffer_logging]]
|
||
=== Bufor logera
|
||
|
||
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.libera.#weechat 3
|
||
----
|
||
|
||
* ustawienie poziomu 3 dla buforu serwera libera:
|
||
|
||
----
|
||
/set logger.level.irc.server.libera 3
|
||
----
|
||
|
||
* ustawienie poziomu 3 dla wszystkich kanałów na serwerze libera:
|
||
|
||
----
|
||
/set logger.level.irc.libera 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 listvar
|
||
----
|
||
|
||
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.libera.#weechat", WeeChat będzie szukał maski dla
|
||
nazwy w takiej kolejności:
|
||
|
||
----
|
||
logger.mask.irc.libera.#weechat
|
||
logger.mask.irc.libera
|
||
logger.mask.irc
|
||
logger.file.mask
|
||
----
|
||
|
||
Oznacza to, że można mieć maski specyficzne tylko dla niektórych serwerów IRC
|
||
("logger.mask.irc.libera") 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:
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
├── 2010
|
||
│ ├── 11
|
||
│ │ ├── irc.server.libera.weechatlog
|
||
│ │ └── irc.libera.#weechat.weechatlog
|
||
│ └── 12
|
||
│ ├── irc.server.libera.weechatlog
|
||
│ └── irc.libera.#weechat.weechatlog
|
||
├── 2011
|
||
│ ├── 01
|
||
│ │ ├── irc.server.libera.weechatlog
|
||
│ │ └── irc.libera.#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:
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
└── irc
|
||
├── libera
|
||
│ ├── libera.weechatlog
|
||
│ ├── #weechat.weechatlog
|
||
│ └── #mychan.weechatlog
|
||
├── oftc
|
||
│ ├── oftc.weechatlog
|
||
│ ├── #channel1.weechatlog
|
||
│ └── #channel2.weechatlog
|
||
...
|
||
....
|
||
|
||
[[logger_rotation_compression]]
|
||
==== Rotowanie i kompresja
|
||
|
||
Istnieje możliwość zdefiniowania rozmiaru pliku z logami, po przekroczeniu
|
||
którego nastąpi automatyczne zrotowanie pliku z logiem.
|
||
|
||
Zrotowany plik z logami może być skompresowany za pomocą gzip lub
|
||
https://facebook.github.io/zstd/[zstd ^↗^^].
|
||
|
||
[NOTE]
|
||
Jako że kompresowanie pliku może zająć chwilę jest wykonywane w tle.
|
||
|
||
Przykład dla maksymalnej wielkości pliku 2GB i włączonej kompresji gzip,
|
||
z użyciem dobrego poziomu kompresji (wolniejsze od domyślnego):
|
||
|
||
----
|
||
/set logger.file.rotation_compression_type gzip
|
||
/set logger.file.rotation_compression_level 80
|
||
/set logger.file.rotation_size_max "2g"
|
||
----
|
||
|
||
Jeśli chcesz użyć liczby dziesiętnej, możesz użyć poniższej jednostki
|
||
i pomnożyć przez 1000, na przykład aby ustwić maksymalny rozmiar na 2.5GB:
|
||
|
||
----
|
||
/set logger.file.rotation_size_max "2500m"
|
||
----
|
||
|
||
Z tymi ustawieniami, uzyskasz strukturę plików podobną do poniższej
|
||
(w tym przykładzie rotowany jest tylko plik z logiem kanału #weechat):
|
||
|
||
....
|
||
~/.local/share/weechat
|
||
└── logs
|
||
├── core.weechat.weechatlog
|
||
├── irc.server.libera.weechatlog
|
||
├── irc.libera.#weechat.weechatlog
|
||
├── irc.libera.#weechat.weechatlog.1.gz
|
||
├── irc.libera.#weechat.weechatlog.2.gz
|
||
└── irc.libera.#weechat.weechatlog.3.gz
|
||
....
|
||
|
||
[[logger_commands]]
|
||
==== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=logger_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=logger_options]
|
||
|
||
[[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,obsługa 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 (według nazwy):
|
||
|
||
[width="100%",cols="1m,4",options="header"]
|
||
|===
|
||
| Modyfikator | Opis
|
||
| alt | Klawisz kbd:[Alt]
|
||
| ctrl | Klawisz kbd:[Ctrl]
|
||
| shift | Klawisz kbd:[Shift] ^(1)^
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Modyfikator `shift` można sporadycznie użyć w WeeChat ponieważ terminale
|
||
zazwyczaj używają tego modyfikatora do przechwytywania ewentów myszy.
|
||
|
||
Modyfikatory można ze sobą łączyć, na przykład:
|
||
|
||
* `alt-ctrl`
|
||
* `ctrl-shift`
|
||
* `alt-ctrl-shift`
|
||
|
||
Lista klawiszy/rolek:
|
||
|
||
[width="100%",cols="1m,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 ... button11 | Dodatkowe klawisze
|
||
| wheelup | Rolka (w górę)
|
||
| wheeldown | Rolka (w dół)
|
||
|===
|
||
|
||
Lista gestów (tylko dla klawiszy, nie rolki):
|
||
|
||
[width="100%",cols="1m,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="100%",cols="1m,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`
|
||
* `alt-ctrl-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ń.
|
||
|
||
[[spell_checking]]
|
||
=== Sprawdzanie pisowni
|
||
|
||
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 libera:
|
||
|
||
----
|
||
/set spell.dict.irc.libera 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ę:
|
||
|
||
[source,shell]
|
||
----
|
||
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/libera] 3:#test(+n){4} [print,prone,prune] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
Przykład sugestii ze słownikami angielskim i francuskim (`en,fr`):
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [print,prone,prune/prime,primer,primé] │
|
||
│[@Flashy] prinr █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[spell_commands]]
|
||
==== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=spell_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=spell_options]
|
||
|
||
[[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,[buffer_last_number]":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/libera.#weechat [9] │
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[item_spacer]]
|
||
===== Odstęp
|
||
|
||
Element paska `spacer` może być użyty do wyrównywania elementów (lewo, środek, prawo).
|
||
|
||
Kiedy przynajmniej jeden element `spacer` jest użyty na pasku, użyta jest cała
|
||
szerokość:
|
||
odstępy same się skalują do tego samego rozmiaru (albo prawie). +
|
||
Kiedy pasek nie jest dostatecznie duży dla wszystkich elementów odstępy nie
|
||
są wyświetlane.
|
||
|
||
[NOTE]
|
||
Elementy `spacer` mogą być tylko użyte w paskach z pozycją `top` lub `bottom`,
|
||
wypełnieniem `horizontal` i rozmiarem `1`.
|
||
|
||
Example of bar with items
|
||
"[time],spacer,buffer_number+:+buffer_plugin+.+buffer_name,spacer,[buffer_last_number]":
|
||
|
||
....
|
||
┌───────────────────────────────────────────────────────────────────────────┐
|
||
│[12:55] 3:irc/libera.#weechat [9]│
|
||
└───────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[item_force_buffer]]
|
||
===== Wymuszenie bufora
|
||
|
||
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"
|
||
----
|
||
|
||
[[custom_bar_items]]
|
||
===== Niestandardowe elementy
|
||
|
||
Niestandardowe elementy paska mogą zostać oddane za pomocą komendy <<command_weechat_item,/item>>,
|
||
każdy nowy element posiada dwie właściwości zdefiniowanymi przez opcje konfiguracyjne:
|
||
|
||
* `conditions`: warunki do wyświetlenia elementu paska, na przykład
|
||
wyświetlenie elementu paska tylko w specyficznych buforach (jeśli nie zostanie podany
|
||
pasek jest wyświetlany wszędzie)
|
||
* `content`: przetworzona zawartość elementu paska.
|
||
|
||
W obu opcjach mogą zostać użyte następujące zmienne:
|
||
|
||
* `window`: wskaźnik do okna, w którym pasek jest wyświetlany (`NULL` dla pasków typu root)
|
||
* `buffer`: wskaźnik do buforu, w którym wyświetlany jest pasek (obecny bufor dla pasków typu root).
|
||
|
||
Przykłady warunków:
|
||
|
||
[width="100%",cols="3,10",options="header"]
|
||
|===
|
||
| Warunek | Opis
|
||
| `${window}` | Wyświetlany tylko w paskach okien
|
||
| `${buffer.number} == 1` | Wyświetlany we wszystkich buforach z numerem = 1.
|
||
| `${buffer.plugin.name} == irc` | Wyświetlany tylko w buforach IRC
|
||
| `${type} == channel` | Wyświetlany tylko w buforach, w których zmienna lokalna `type` ma wartość `channel` (przykład: wszystkie kanały IRC)
|
||
| `${type} == private` | Wyświetlany tylko w buforach, w których zmienna lokalna `type` ma wartość `private` (przykład: wszystkie bufory prywatne IRC)
|
||
|===
|
||
|
||
[NOTE]
|
||
Nie istnieje wbudowany sposób na odświerzenie niestandardowych elementów paska.
|
||
Możesz użyć wtyczki <<trigger,Trigger>> do wymuszenia odświerzenia, na przykład
|
||
przez ostrzymanie jednego lub więcej sygnałów.
|
||
|
||
Więcej informacji i przykładów można otrzymać wykonując komendę <<command_weechat_item,/item>>.
|
||
|
||
[[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/libera] 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/libera] 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 pokazujący pasek z listą nicków we wszystkich buforach, które mają
|
||
ją włączoną i tylko jeśli szerokość terminala jest > 100:
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && ${info:term_width} > 100"
|
||
----
|
||
|
||
Ten sam warunek, ale lista nicków jest zawsze wyświetlana w buforze _&bitlbee_
|
||
(nawet jeśli jest mały):
|
||
|
||
----
|
||
/set weechat.bar.nicklist.conditions "${nicklist} && (${info:term_width} > 100 || ${buffer.full_name} == irc.bitlbee.&bitlbee)"
|
||
----
|
||
|
||
[[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
|
||
----
|
||
|
||
[[secured_data_passphrase_on_startup]]
|
||
===== Hasło przy uruchomieniu
|
||
|
||
Kiedy ustawione jest hasło WeeChat poprosi o nie podczas uruchomieina
|
||
(ale nie podczas `/upgrade`).
|
||
|
||
Jeśli używasz managera haseł, możesz uruchomić zewnętrzny program do
|
||
odczytania hasła bez konieczności wprowadzania go ręcznie przy utuchomieniu WeeChat. +
|
||
Na przykład dla password-store (komenda `pass`):
|
||
|
||
----
|
||
/set sec.crypt.passphrase_command "/usr/bin/pass show weechat/passphrase"
|
||
----
|
||
|
||
Program może poprosić o odblokowanie klucza GPG lub wprowadzenie innego hasła,
|
||
aby odczytać sekret. WeeChat poczeka do zakończenia komendy i odczyta hasło
|
||
ze standardowego wyjścia (musi to być w pierwszej linii bez żadnych dodatkowych
|
||
znaków). +
|
||
Jeśli wyjście programu nie zawiera hasla lub jest ono błęde, WeeChat poprosi
|
||
i jego wprowadzenie.
|
||
|
||
[[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
|
||
libera = "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 _libera_:
|
||
|
||
----
|
||
/secure set libera 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 ...`). +
|
||
Aby otrzymać pełną listę wspieranych opcji zapoznaj się z komendą <<command_weechat_secure,/secure>>.
|
||
|
||
W celu użycia hasła _libera_, na przykład z
|
||
<<irc_sasl_authentication,uwierzytelnianiem SASL>>:
|
||
|
||
----
|
||
/set irc.server.libera.sasl_password "${sec.data.libera}"
|
||
----
|
||
|
||
[[command_aliases]]
|
||
=== Aliasy
|
||
|
||
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::{autogendir}/autogen_user_default_aliases.pl.adoc[tag=default_aliases]
|
||
|
||
[[alias_commands]]
|
||
==== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=alias_commands]
|
||
|
||
[[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.
|
||
|===
|
||
|
||
[[commands_and_options]]
|
||
=== Komendy i opcje
|
||
|
||
[[weechat_commands]]
|
||
==== Komendy WeeChat
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=weechat_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=sec_options]
|
||
|
||
[[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/TLS.
|
||
| plugin | /set weechat.plugin.* | Opcje wtyczek.
|
||
| signal | /set weechat.signal.* | Opcje sygnałów.
|
||
| bar | <<command_weechat_bar,/bar>> +
|
||
/set weechat.bar.* | Opcje pasków.
|
||
| layout | <<command_weechat_layout,/layout>> | Układy.
|
||
| buffer | <<command_weechat_buffer,/buffer setauto>> | Właściwości automatycznie nanoszne na bufory podczas otwierania.
|
||
| 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::{autogendir}/autogen_user_options.pl.adoc[tag=weechat_options]
|
||
|
||
[[irc]]
|
||
== 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,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 _#weechat-fr_ na serwerze
|
||
_irc.libera.chat_, na domyślnym porcie (6667), z nickiem _alice_:
|
||
|
||
[source,shell]
|
||
----
|
||
weechat irc://alice@irc.libera.chat/#weechat,#weechat-fr
|
||
----
|
||
|
||
[[irc_servers]]
|
||
=== Serwery
|
||
|
||
[[irc_servers_add]]
|
||
==== Dodanie serwera
|
||
|
||
Domyślnie nie są zdefiniowane żadne serwery. Możesz dodać ich tyle ile chcesz
|
||
za pomocą polecenia <<command_irc_server,/server>>.
|
||
|
||
Na przykład w celu połączenia się do https://libera.chat/[libera.chat ^↗^^]:
|
||
|
||
----
|
||
/server add libera irc.libera.chat
|
||
----
|
||
|
||
[NOTE]
|
||
Domyślny port to 6697 i TLS (szyfrowanie ruchu) jest włączone.
|
||
|
||
Możesz powiedzieć WeeChat, aby automatycznie łączył się z tym serwerem po
|
||
uruchomieniu:
|
||
|
||
----
|
||
/set irc.server.libera.autoconnect on
|
||
----
|
||
|
||
W celu uwierzytelnienia zalecane jest używanie SASL (jeśli wspiera to
|
||
serwer), za pomocą hasła przechowaywanego w bezpieczny sposób (więcej
|
||
w rozdziale <<irc_sasl_authentication,Uwierzytelnianie SASL>>):
|
||
|
||
----
|
||
/set irc.server.libera.sasl_username "alice"
|
||
/secure set libera xxxxxxx
|
||
/set irc.server.libera.sasl_password "${sec.data.libera}"
|
||
----
|
||
|
||
Jeśli SASL nie jest wspierane możesz użyć komendy, aby wysłać wiadomość do
|
||
nickserva:
|
||
|
||
----
|
||
/set irc.server.libera.command "/msg nickserv identify ${sec.data.libera}"
|
||
----
|
||
|
||
[NOTE]
|
||
Wysyłając wiadomość do nickserva możesz sie uwierzytelnić po wejściu na
|
||
kanały, co może być problemem na kanałach, na które mogą wejść tylko
|
||
uwierzytelnione osoby. W takim przypadku możesz ustawić opóźnienie dla
|
||
komendy: `/set irc.server.libera.command_delay 5`.
|
||
|
||
[[irc_servers_options]]
|
||
==== Opcje serwerów
|
||
|
||
Opcje serwerów są nazywane w taki sposób `irc.server.<serwer>.<opcja>`,
|
||
gdzie `<serwer>` to zdefiniowana nazwa serwera, `<opcja>` to nazwa opcji. +
|
||
Wartość opcji jest dziedziczona z `irc.server_default.xxx` w przypadku
|
||
kiedy opcja ma specalną wartość `null`.
|
||
|
||
Na przykład jeśli stworzyłeś serwer _libera_ za pomocą po wyższych komend
|
||
zobaczysz to po wykonaniu `/fset libera`:
|
||
|
||
....
|
||
irc.server.libera.addresses ciąg "irc.libera.chat"
|
||
irc.server.libera.anti_flood liczba null -> 2000
|
||
irc.server.libera.autoconnect bool on
|
||
irc.server.libera.autojoin ciąg null -> ""
|
||
irc.server.libera.autojoin_delay liczba null -> 0
|
||
irc.server.libera.autojoin_dynamic bool null -> off
|
||
irc.server.libera.autoreconnect bool null -> on
|
||
irc.server.libera.autoreconnect_delay liczba null -> 10
|
||
irc.server.libera.autorejoin bool null -> off
|
||
irc.server.libera.autorejoin_delay liczba null -> 30
|
||
irc.server.libera.away_check liczba null -> 0
|
||
irc.server.libera.away_check_max_nicks liczba null -> 25
|
||
irc.server.libera.capabilities ciąg null -> "*"
|
||
irc.server.libera.charset_message enum null -> message
|
||
irc.server.libera.command ciąg null -> ""
|
||
irc.server.libera.command_delay liczba null -> 0
|
||
irc.server.libera.connection_timeout liczba null -> 60
|
||
irc.server.libera.default_chantypes ciąg null -> "#&"
|
||
irc.server.libera.ipv6 enum null -> auto
|
||
irc.server.libera.local_hostname ciąg null -> ""
|
||
irc.server.libera.msg_kick ciąg null -> ""
|
||
irc.server.libera.msg_part ciąg null -> "WeeChat ${info:version}"
|
||
irc.server.libera.msg_quit ciąg null -> "WeeChat ${info:version}"
|
||
irc.server.libera.nicks ciąg null -> "${username},${username}2,${username}3,${username}4,${username}5"
|
||
irc.server.libera.nicks_alternate bool null -> on
|
||
irc.server.libera.notify ciąg null -> ""
|
||
irc.server.libera.password ciąg null -> ""
|
||
irc.server.libera.proxy ciąg null -> ""
|
||
irc.server.libera.realname ciąg null -> ""
|
||
irc.server.libera.registered_mode ciąg null -> "r"
|
||
irc.server.libera.sasl_fail enum null -> reconnect
|
||
irc.server.libera.sasl_key ciąg null -> ""
|
||
irc.server.libera.sasl_mechanism enum null -> plain
|
||
irc.server.libera.sasl_password ciąg "${sec.data.libera}"
|
||
irc.server.libera.sasl_timeout liczba null -> 15
|
||
irc.server.libera.sasl_username ciąg "alice"
|
||
irc.server.libera.split_msg_max_length liczba null -> 512
|
||
irc.server.libera.tls bool null -> on
|
||
irc.server.libera.tls_cert ciąg null -> ""
|
||
irc.server.libera.tls_dhkey_size liczba null -> 2048
|
||
irc.server.libera.tls_fingerprint ciąg null -> ""
|
||
irc.server.libera.tls_password ciąg null -> ""
|
||
irc.server.libera.tls_priorities ciąg null -> "NORMAL"
|
||
irc.server.libera.tls_verify bool null -> on
|
||
irc.server.libera.usermode ciąg null -> ""
|
||
irc.server.libera.username ciąg null -> "${username}"
|
||
....
|
||
|
||
Na przykład jeśli chcesz automatycznie połączyć się ze wszystkimi zdefiniowanym
|
||
serwerami bez potrzeby ustawiania tej opcji dla każdego z serwerów, możesz to
|
||
zrobić za pomocą:
|
||
|
||
----
|
||
/set irc.server_default.autoconnect on
|
||
----
|
||
|
||
Następnie możesz zresetować opcję serwera do jej domyślnej (dziedziczonej)
|
||
wartości, która teraz ma wartość `on` zamiast domyślnego `off`:
|
||
|
||
----
|
||
/unset irc.server.libera.autoconnect
|
||
----
|
||
|
||
[[irc_tls_certificates]]
|
||
==== Certyfikaty TLS
|
||
|
||
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 TLS:
|
||
|
||
weechat.network.gnutls_ca_system::
|
||
ładuje domyślne systemowe zaufane urzędy cetyfikujące
|
||
|
||
weechat.network.gnutls_ca_user::
|
||
dodatkowy plik(i) urzędów certyfikacyjnych
|
||
|
||
irc.server.xxx.tls_cert::
|
||
certyfikat TLS używany do automatycznej identyfikacji twojego nicka (na
|
||
przykład CertFP w sieci oftc, zobacz niżej)
|
||
|
||
irc.server.xxx.tls_dhkey_size::
|
||
rozmiar klucza użytego podczas wymiany kluczy Diffie-Hellman (domyślnie: 2048)
|
||
|
||
irc.server.xxx.tls_verify::
|
||
sprawdź, że połączenie TLS jest w pełni zaufane (domyślnie włączone)
|
||
|
||
[NOTE]
|
||
Opcja "tls_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:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
wget -O ~/.config/weechat/tls/CAs.pem https://www.spi-inc.org/ca/spi-cacert.crt
|
||
----
|
||
|
||
[NOTE]
|
||
Musisz zamienić `~/.config/weechat` na ścieżkę do katalogu z konfiguracją WeeChat,
|
||
który może być ustawiony na przykład na `~/.weechat`.
|
||
|
||
[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:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
cd ~/.config/weechat/tls
|
||
openssl req -nodes -newkey rsa:2048 -keyout nick.pem -x509 -days 365 -out nick.pem
|
||
----
|
||
|
||
[NOTE]
|
||
Musisz zamienić `~/.config/weechat` na ścieżkę do katalogu z konfiguracją WeeChat,
|
||
który może być ustawiony na przykład na `~/.weechat`.
|
||
|
||
* W WeeChat z dodanym wcześniej serwerem "oftc":
|
||
|
||
----
|
||
/set irc.server.oftc.tls_cert "${weechat_config_dir}/tls/nick.pem"
|
||
/connect oftc
|
||
/msg nickserv cert add
|
||
----
|
||
|
||
Więcej informacji można znaleźć odwiedzając
|
||
https://www.oftc.net/NickServ/CertFP/[tą stronę ^↗^^].
|
||
|
||
[[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)
|
||
* _scram-sha-1_: SCRAM z użyciem algorytmu SHA-1
|
||
* _scram-sha-256_: SCRAM z użyciem algorytmu SHA-256
|
||
* _scram-sha-512_: SCRAM z użyciem algorytmu SHA-512
|
||
* _ecdsa-nist256p-challenge_: klucz prywatny/publiczny
|
||
* _external_: certyfikat TLS po stronie klienta
|
||
|
||
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:
|
||
|
||
[source,shell]
|
||
----
|
||
openssl ecparam -genkey -name prime256v1 -out ~/.config/weechat/ecdsa.pem
|
||
----
|
||
|
||
[NOTE]
|
||
Musisz zamienić `~/.config/weechat` na ścieżkę do katalogu z konfiguracją WeeChat,
|
||
który może być ustawiony na przykład na `~/.weechat`.
|
||
|
||
Klucz publiczny (zakodowany za pomocą base64) uzyskujemy wywołując komendę:
|
||
|
||
[source,shell]
|
||
----
|
||
openssl ec -noout -text -conv_form compressed -in ~/.config/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 libera
|
||
/msg nickserv identify your_password
|
||
/msg nickserv set pubkey Av8k1FOGetUDq7sPMBfufSIZ5c2I/QYWgiwHtNXkVe/q
|
||
----
|
||
|
||
Konfiguracja opcji SASL dla serwera:
|
||
|
||
----
|
||
/set irc.server.libera.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.libera.sasl_username "twój_nick"
|
||
/set irc.server.libera.sasl_key "${weechat_config_dir}/ecdsa.pem"
|
||
----
|
||
|
||
Ponowne połączenie z serwerem:
|
||
|
||
----
|
||
/reconnect libera
|
||
----
|
||
|
||
[[irc_servers_connection]]
|
||
==== Łączenie się z serwerem
|
||
|
||
Możesz połączyć się z serwerem za pomocą komendy <<command_irc_connect,/connect>>:
|
||
|
||
----
|
||
/connect libera
|
||
----
|
||
|
||
Aby się rozłączyć:
|
||
|
||
----
|
||
/disconnect libera
|
||
----
|
||
|
||
Lub tylko to jeśli jesteś w buforze należącym do serwera _libera_ (serwer,
|
||
kanał, wiadomości prywatne):
|
||
|
||
----
|
||
/disconnect
|
||
----
|
||
|
||
Jeśli łączysz się do wielu serwerów na raz, bufory serwerów są domyślnie połączone
|
||
i możesz się między nimi przełączać za pomocą klawiszy kbd:[Ctrl+x]. +
|
||
Możliwe jest wyłączenie automatycznego łączenia buforów serwerów i posiadania
|
||
oddzielnych buforów dla serwerów:
|
||
|
||
----
|
||
/set irc.look.server_buffer independent
|
||
----
|
||
|
||
[[irc_tor_sasl]]
|
||
==== Połączenie za pomocą Tora i SASL
|
||
|
||
Niekróre serwery wspierają połączenia z sieci https://www.torproject.org/[Tor ^↗^^],
|
||
sieci wirtualnych tuneli, które umożliwają poprawienie swojej prywatności
|
||
i bezpieczeństwa w Internecie.
|
||
|
||
Pierwszym krokiem jest instalacja Tora. Dla Debiana (i pochodnych):
|
||
|
||
[source,shell]
|
||
----
|
||
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 należy dodać nowy serwer (zastąp nazwę serwera "irc-tor" i andres właściwymi
|
||
wartościami):
|
||
|
||
----
|
||
/server add irc-tor adres.serwera.onion
|
||
----
|
||
|
||
Ustaw proxy dla Tor:
|
||
|
||
----
|
||
/set irc.server.irc-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.irc-tor.sasl_mechanism ecdsa-nist256p-challenge
|
||
/set irc.server.irc-tor.sasl_username "twój_użytkownik"
|
||
/set irc.server.irc-tor.sasl_key "${weechat_config_dir}/ecdsa.pem"
|
||
----
|
||
|
||
Teraz pozostaje już się tylko połączyć z serwerem:
|
||
|
||
----
|
||
/connect irc-tor
|
||
----
|
||
|
||
[[irc_ircv3_support]]
|
||
=== Wsparcie dla IRCv3
|
||
|
||
WeeChat wspiera następujące https://ircv3.net/irc/[rozszerzenia IRCv3 ^↗^^]:
|
||
|
||
* <<irc_ircv3_account_notify,account-notify>>
|
||
* <<irc_ircv3_account_tag,account-tag>>
|
||
* <<irc_ircv3_away_notify,away-notify>>
|
||
* <<irc_ircv3_batch,batch>>
|
||
* <<irc_ircv3_cap_notify,cap-notify>>
|
||
* <<irc_ircv3_chghost,chghost>>
|
||
* <<irc_ircv3_draft_multiline,draft/multiline>>
|
||
* <<irc_ircv3_echo_message,echo-message>>
|
||
* <<irc_ircv3_extended_join,extended-join>>
|
||
* <<irc_ircv3_invite_notify,invite-notify>>
|
||
* <<irc_ircv3_message_tags,message-tags>>
|
||
* <<irc_ircv3_monitor,monitor>>
|
||
* <<irc_ircv3_multi_prefix,multi-prefix>>
|
||
* <<irc_ircv3_sasl,SASL v3.2>>
|
||
* <<irc_ircv3_server_time,server-time>>
|
||
* <<irc_ircv3_setname,setname>>
|
||
* <<irc_ircv3_typing,typing>>
|
||
* <<irc_ircv3_userhost_in_names,userhost-in-names>>
|
||
* <<irc_ircv3_whox,WHOX>>
|
||
|
||
Domyślnie wszystkie możliwości wspierane przez serwer i WeeChat są
|
||
automatycznie włączone
|
||
(opcja <<option_irc.server_default.capabilities,irc.server_default.capabilities>>).
|
||
|
||
Tabele z porównaniem różnych klientów IRC, także WeeChat, można znaleźć na
|
||
https://ircv3.net/software/clients[tej stronie ^↗^^].
|
||
|
||
[[irc_ircv3_account_notify]]
|
||
==== account-notify
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/account-notify[account-notify ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie wiadomości po tym jak użytkownik
|
||
zostanie zidentyfikwany lub niezidentyfikowany na serwerze. +
|
||
WeeChat wyświetla takie wiadomości jeśli opcja
|
||
<<option_irc.look.display_account_message,irc.look.display_account_message>>
|
||
jest włączona (domyślna wartość).
|
||
|
||
Przykłady:
|
||
|
||
....
|
||
-- alice zidentyfikował się jako Alice01
|
||
|
||
-- alice został niezidentyfikowany
|
||
....
|
||
|
||
[[irc_ircv3_account_tag]]
|
||
==== account-tag
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/account-tag[account-tag ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie komend konta jako tagów wiadomości
|
||
do komend wysyłanych do klienta. +
|
||
WeeChat parsuje te tagi i zapisuje je w wiadomości ale nie jest on używany ani
|
||
wyświetlany. Można ich użyć w komendzie <<command_weechat_filter,/filter>> do filtrowania
|
||
wiadmości pasujących do konkretnych kont:
|
||
|
||
Przykład otrzymanej nieprzetworzonej wiadomości:
|
||
|
||
....
|
||
@account=Alice01 :user@example.com PRIVMSG #test :Hello!
|
||
....
|
||
|
||
Wiadomość wyświetlana na kanale:
|
||
|
||
....
|
||
<alice> Hello!
|
||
....
|
||
|
||
Wiadomość z tagami:
|
||
|
||
....
|
||
<alice> Hello! [irc_privmsg,irc_tag_account_Alice01,notify_message,prefix_nick_lightcyan,nick_alice,host_user@example.com,log1]
|
||
....
|
||
|
||
[[irc_ircv3_away_notify]]
|
||
==== away-notify
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/away-notify[away-notify ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie powiadomień o nieobecności do
|
||
użytkowników znajdujących się na tych samych kanałach co ty.
|
||
|
||
Kiedy status nieobecności zmienia się dla użytkownika, jest to odzwierciedlane
|
||
konkretnym kolorze na liście nicków, za pomocą następujących opcji:
|
||
|
||
* <<option_irc.server_default.away_check,irc.server_default.away_check>>
|
||
* <<option_irc.server_default.away_check_max_nicks,irc.server_default.away_check_max_nicks>>
|
||
* <<option_weechat.look.item_away_message,weechat.look.item_away_message>>
|
||
|
||
[[irc_ircv3_batch]]
|
||
==== batch
|
||
|
||
Specifikacja: https://ircv3.net/specs/extensions/batch[batch ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie seri zdarzeń (pogrupowane kilka powiązanych
|
||
wiadomości).
|
||
|
||
Obecnie WeeChat tylko przechowuje wiadomości odebrane w seri i przetwarza je w normalny
|
||
sposób, po zakończeniu seri.
|
||
|
||
[[irc_ircv3_cap_notify]]
|
||
==== cap-notify
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/capability-negotiation#the-cap-new-subcommand[cap-notify ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na ogłaszanie nowych lub usuniętych możliwości
|
||
na serwerze (za pomocą komend `CAP NEW` i `CAP DEL`i).
|
||
|
||
Przykłady:
|
||
|
||
....
|
||
-- irc: możliwości klienta, teraz dostępne: sasl
|
||
|
||
-- irc: możliwości klienta, usunięte: sasl
|
||
....
|
||
|
||
[[irc_ircv3_chghost]]
|
||
==== chghost
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/chghost[chghost ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie wiadomości, kiedy użytkownik zmienia
|
||
nazwę lub hosta. Kiedy opcja <<option_irc.look.smart_filter_chghost,irc.look.smart_filter_chghost>>
|
||
jest włączona (domyślna wartość), zmiany hosta są domyślnie ukrywane jeśli dany
|
||
nick nie odzywał się od kilku minut. +
|
||
Kolor wiadomości o zmianie hosta można ustawić za pomocą opcji
|
||
<<option_irc.color.message_chghost,irc.color.message_chghost>>.
|
||
|
||
Przykłady:
|
||
|
||
....
|
||
-- alice (user@example.com) zmienił hosta na test.com
|
||
....
|
||
|
||
[[irc_ircv3_draft_multiline]]
|
||
==== draft/multiline
|
||
|
||
Specifikacja: https://ircv3.net/specs/extensions/multiline[multiline ^↗^^]
|
||
|
||
Ta właściwość pozwala klientowi i serwerowi wysyłać wieloliniowe wiadomości,
|
||
za pomocą właściwości <<irc_ircv3_batch,batch>>, która również musi być włączona.
|
||
|
||
Istnieje limit bajtów lub ilości lini tych wiadomości podawane dla tej
|
||
właściwości wysyłanej przez serwer, na przykład:
|
||
|
||
....
|
||
CAP alice LS * :draft/multiline=max-bytes=4096,max-lines=24
|
||
....
|
||
|
||
Ustawia to limit na 4096 bajtów i 24 linie dla zawartości wieloliniowej serii.
|
||
|
||
Jeśli serwer nie ustawia limitu, domyślne wartości dla WeeChat to:
|
||
|
||
* ilość bajtów: 4096
|
||
* ilość lin: 24
|
||
|
||
Tylko standardowe wiadmości oraz te wysyłane przez polecenie <<command_irc_notice,/notice>>
|
||
mogą mieć wiele linii. +
|
||
Ta właściwość nie ma wpływu na wiadomości ACTION CTCP wysyłane przez polecenie
|
||
<<command_irc_me,/me>>. Oznacza to ze wieloliniowe akcje wysyłane są jako wiele akcji.
|
||
|
||
[WARNING]
|
||
Ponieważ specyfikacja jest "szkicem" może się zmienić i wsparcie dla tej właściwości
|
||
w WeeChat może się zepsuć w dowolnym momencie. +
|
||
Wsparcie dla tej właściwości jest automatycznie włączane jeśli serwer ją wspiera,
|
||
można ją wyłączyć za pomocą polecenia:
|
||
`/set irc.server_default.capabilities "*,!draft/multiline"`. +
|
||
Kiedy wsparcie jest wyłączone, wieloliniowe wiadomości są wysyłane jako wiele wiadomości,
|
||
tak jakby były wysyłane sekwencyjnie do serwera.
|
||
|
||
Przykład wiadomości IRC wysłanych dla wiadomości użytkownika z dwoma liniami
|
||
(`this is a test` / `on two lines`), wysłane na kanał #test:
|
||
|
||
....
|
||
BATCH +i8Je7M7gquddoyC9 draft/multiline #test
|
||
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :this is a test
|
||
@batch=i8Je7M7gquddoyC9 PRIVMSG #test :on two lines
|
||
BATCH -i8Je7M7gquddoyC9
|
||
....
|
||
|
||
Wiadomość wyświetlana w WeeChat:
|
||
|
||
....
|
||
19:01:45 alice | this is a test
|
||
| on two lines
|
||
....
|
||
|
||
[[irc_ircv3_echo_message]]
|
||
==== echo-message
|
||
|
||
Specifikacja: https://ircv3.net/specs/extensions/echo-message[echo-message ^↗^^]
|
||
|
||
Ta właściwość wymusza na serwerze wysyłanie wiadomości PRIVMSG, NOTICE i TAGMSG
|
||
spowrotem do WeeChat.
|
||
|
||
WeeChat wyświetla tylko otrzymane wiadomości, dlatego można zaobserwować pewne
|
||
opóźnienia pomiędzy wysłaniem a wyświetleniem wiadomości. Kiedy wiadomość zostanie
|
||
wyświetlona, oznacza to, że została ona poprawnie odebrana przez serwer i przesłana
|
||
do innych połączonych klientów.
|
||
|
||
[[irc_ircv3_extended_join]]
|
||
==== extended-join
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/extended-join[extended-join ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie konta i prawdziwej nazwy,
|
||
kiedy użytkownicy wchodzą na kanały. +
|
||
WeeChat wyświetla te dodatkowe informacje jeśli opcja
|
||
<<option_irc.look.display_extended_join,irc.look.display_extended_join>>
|
||
jest włączona (domyślna wartość).
|
||
|
||
Przykład:
|
||
|
||
....
|
||
--> john [John01] (John Doe) (~user@example.com) wszedł na #test
|
||
....
|
||
|
||
[[irc_ircv3_invite_notify]]
|
||
==== invite-notify
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/invite-notify[invite-notify ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie wiadomości zaproszeń, kiedy
|
||
użytkownicy są zapraszani na kanały.
|
||
|
||
Przykłady:
|
||
|
||
....
|
||
-- alice zaprosił bob na #test
|
||
....
|
||
|
||
[[irc_ircv3_message_tags]]
|
||
==== message-tags
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/message-tags[message-tags ^↗^^]
|
||
|
||
Ta właściwość pozwala dodawać metdane do wiadomości. +
|
||
Tagi te mogą być wyświetlone za pomocą komendy `/debug tags`.
|
||
|
||
Musi to być włączone, żeby używać <<typing_notifications,powiadomień o pisaniu>>.
|
||
|
||
[[irc_ircv3_monitor]]
|
||
==== monitor
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/monitor[monitor ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie powiadomień kiedy klient
|
||
stanie się online lub offline. +
|
||
WeeChat automatycznie użyje tego rozszerzenia jeśli jest dostępne podczas
|
||
użycia komendy <<command_irc_notify,/notify>>.
|
||
|
||
[[irc_ircv3_multi_prefix]]
|
||
==== multi-prefix
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/multi-prefix[multi-prefix ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie wszystkich trybów użytkownika
|
||
na raz w odpowiedziach na <<command_irc_names,/names>> i <<command_irc_whois,/whois>>. +
|
||
|
||
////
|
||
Przykład: wynik `/names`:
|
||
|
||
....
|
||
-- Nicki #test: [@%+alice bob +carol]
|
||
....
|
||
////
|
||
|
||
[NOTE]
|
||
Obecnie WeeChat nie wyświetla wszystkich prefuksów w wyniku komendy `/names`,
|
||
nawet jeśli zostały poprawnie otrzmane i zapisane wewnętrznie.
|
||
|
||
Przykład: wynik `/whois alice`:
|
||
|
||
....
|
||
-- [alice] @%+#test
|
||
....
|
||
|
||
[[irc_ircv3_sasl]]
|
||
==== SASL
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/sasl-3.2[SASL 3.2 ^↗^^]
|
||
|
||
Zobacz dedykowany rozdział <<irc_sasl_authentication,autentykacja SASL>>.
|
||
|
||
[[irc_ircv3_server_time]]
|
||
==== server-time
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/server-time[server-time ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie czasu dla wiadomości w tagach. +
|
||
Po otrzymaniu czasu w wiadomości WeeChat używa go do jej wyświetlenia
|
||
(może zostać wyświetlona z wrześniejszym czasem).
|
||
|
||
<<relay_irc_proxy,IRC proxy>> we wtyczce Relay wspiera tą właściwość,
|
||
każdy klient IRC połączony z Relay powinien włączyć tą właściwość jeśli
|
||
chce wyświetlać prawdziwi czas wysłania wiadomości.
|
||
|
||
[[irc_ircv3_setname]]
|
||
==== setname
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/setname[setname ^↗^^]
|
||
|
||
Ta właściwość pozwala zmienić prawdziwą nazwę za pomocą komendy
|
||
<<command_irc_setname,/setname>>.
|
||
|
||
[[irc_ircv3_typing]]
|
||
==== typing
|
||
|
||
Specyfikacja: https://ircv3.net/specs/client-tags/typing[typing ^↗^^]
|
||
|
||
Zobacz dedykowany rozdział <<typing_notifications,Powiadomienia o pisaniu>>.
|
||
|
||
[[irc_ircv3_userhost_in_names]]
|
||
==== userhost-in-names
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/userhost-in-names[userhost-in-names ^↗^^]
|
||
|
||
Ta właściwość pozwala serwerowi na wysyłanie nazwy kostów w odpowiedzi na
|
||
komendę <<command_irc_names,/names>>.
|
||
|
||
[NOTE]
|
||
WeeChat nie wyświetla nazwy hostów w wyjściu komendy `/names`.
|
||
|
||
Przykład nieprzetworzonych wiadomości IRC otrzymanych bez tej właściwości:
|
||
|
||
....
|
||
:irc.server 353 alice = #test :@alice bob +carol
|
||
....
|
||
|
||
Przykład nieprzetworzonych wiadomości IRC z tą właściwością:
|
||
|
||
....
|
||
:irc.server 353 alice = #test :@alice!user1@host1 bob!user2@host2 +carol!user3@host3
|
||
....
|
||
|
||
[[irc_ircv3_whox]]
|
||
==== WHOX
|
||
|
||
Specyfikacja: https://ircv3.net/specs/extensions/whox[WHOX ^↗^^]
|
||
|
||
Ta właściwość pozwala na zarządanie dodatkowych pól w odpowiedzi na WHO
|
||
(przez komendę <<command_irc_who,/who>>). +
|
||
WeeChat wyświetla wszystkie dodatkowe informacje otrzymane w odpowiedzi
|
||
na WHO.
|
||
|
||
[[irc_channels]]
|
||
=== Kanały
|
||
|
||
Możesz dołączać do kanałów za pomocą komendy <<command_irc_join,/join>>:
|
||
|
||
----
|
||
/join #channel
|
||
----
|
||
|
||
Wyjście z kanału (zostawiając otwarty bufor):
|
||
|
||
----
|
||
/part [quit message]
|
||
----
|
||
|
||
Kanały do których dołączyłeś nie są zapisywane. Jeśli chcesz automatycznie
|
||
do nich dołączać podczas łączenia się z serwerem, należy ustawić opcje
|
||
serwera `autojoin`:
|
||
|
||
----
|
||
/set irc.server.libera.autojoin "#weechat"
|
||
----
|
||
|
||
[NOTE]
|
||
Niektóre skrypty mogą pomóc w automatycznym ustawianiu tej opcji, zobacz
|
||
`/script search autojoin`.
|
||
|
||
Bądź ostrożny, spacje mogą być używane tylko do oddzielenia listy kanałów
|
||
od ich haseł, na przykład jeśli `#kanał1` wymaga hasła ale `#kanał2` już
|
||
nie:
|
||
|
||
----
|
||
/set irc.server.libera.autojoin "#kanał1,#kanał2 hasło1"
|
||
----
|
||
|
||
Informacje o formacie można znaleźć w opcji <<option_irc.server_default.autojoin,irc.server_default.autojoin>>.
|
||
|
||
[[irc_private_messages]]
|
||
=== Prywatne wiadomości
|
||
|
||
Możesz wysłać prywatną wiadomość za pomocą polecenia <<command_irc_query,/query>>,
|
||
co otwiera oddzielny bufor:
|
||
|
||
----
|
||
/query bob cześć, co tam?
|
||
----
|
||
|
||
Bez argumentów to polecenie otwiera bufor (lub przechodzi do niego jeśli już jest
|
||
otwarty):
|
||
|
||
----
|
||
/query bob
|
||
----
|
||
|
||
W celu zamknięcia prywatnego buforu możesz wykonać to polecenie w prywatnym buforze:
|
||
|
||
----
|
||
/close
|
||
----
|
||
|
||
[[irc_smart_filter]]
|
||
=== Inteligentne filtry
|
||
|
||
Inteligentne filtry są dostępne dla filtrowania części wiadomości w przypadku,
|
||
kiedy ktoś nic nie napisał na kanale w określonym czasie:
|
||
|
||
- join: user joins the channel
|
||
- part: user leaves the channel
|
||
- quit: user quits the server
|
||
- account: user changes its account
|
||
- chghost: user changes name or host
|
||
- mode: mode changes on channel
|
||
- nick: user changes its nick
|
||
- setname: user changes its real name
|
||
|
||
Intgeligentne filtry są domyślnie włączone, ale musisz dodać filtr ukrywający
|
||
wiadomości w buforach, na przydład:
|
||
|
||
----
|
||
/filter add irc_smart * irc_smart_filter *
|
||
----
|
||
|
||
Można stworzyć filtry dla pojedynczego kanału lub kanałów, których nazwy
|
||
zaczynają się tak samo (zobacz komendę <<command_weechat_filter,/filter>>):
|
||
|
||
----
|
||
/filter add irc_smart_weechat irc.libera.#weechat* irc_smart_filter *
|
||
----
|
||
|
||
Możesz ustawić dłuższe opóźnienie (w minutach):
|
||
|
||
----
|
||
/set irc.look.smart_filter_delay 10
|
||
----
|
||
|
||
Jeśli ktoś nie napiał nic w ciągu ostatnich 10 minut, jego wiadomości jak
|
||
join/part/quit zostaną domyślnie ukryte na kanale. Można użyć skrótu kbd:[Alt+=]
|
||
(przełącz filtry) żeby je zobaczyć.
|
||
|
||
[[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!"
|
||
----
|
||
|
||
[NOTE]
|
||
Nazwa wiadomości CTCP musi być pisana małymi literami. Oznacza to, że ustawienie
|
||
opcji _irc.ctcp.VERSION_ nie zadziała.
|
||
|
||
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.libera.version "WeeChat ${version} (for libera)"
|
||
----
|
||
|
||
Jeśli chcesz przywrócić standardowe odpowiedzi dla CTCP usuń opcję:
|
||
|
||
----
|
||
/unset irc.ctcp.version
|
||
----
|
||
|
||
Odpowiedzi CTCP są przetwarzane (zobacz komendę <<command_weechat_eval,/eval>>),
|
||
można użyć następujących zmiennych:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
| Zmienna | Opis | Wartość/Przykład
|
||
| `+${clientinfo}+` | Lista wspieranych CTCP | `+ACTION DCC CLIENTINFO PING SOURCE TIME VERSION+`
|
||
| `+${version}+` | Wersja WeeChat | `+4.1.0-dev+`
|
||
| `+${versiongit}+` | Wersja WeeChat + wersja Git ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
|
||
| `+${git}+` | Wersja git ^(1)^ | `+v4.0.0-51-g8f98b922a+`
|
||
| `+${compilation}+` | Data kompilacji WeeChat | `+Jul 8 2023 20:14:23+`
|
||
| `+${osinfo}+` | Informacje o systemie operacyjnym | `+Linux 5.10.0-23-amd64 / x86_64+`
|
||
| `+${site}+` | Strona WeeChat | `+https://weechat.org/+`
|
||
| `+${download}+` | Strona WeeChat, pobieranie | `+https://weechat.org/download/+`
|
||
| `+${time}+` | Obecna data/czas | `+Sat, 08 Jul 2023 21:11:19 +0200+`
|
||
| `+${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.
|
||
|
||
Domyślne odpowiedzi CTCP:
|
||
|
||
[width="100%",cols="2,4,8",options="header"]
|
||
|===
|
||
| CTCP | Format odpowiedzi | Przykład
|
||
| CLIENTINFO | `+${clientinfo}+` | `+ACTION DCC CLIENTINFO PING SOURCE TIME VERSION+`
|
||
| SOURCE | `+${download}+` | `+https://weechat.org/download/+`
|
||
| TIME | `+${time}+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
|
||
| VERSION | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
|
||
|===
|
||
|
||
[[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="100%",cols="^2m,^3m,15",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: `libera.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 "libera":
|
||
|
||
----
|
||
/set irc.msgbuffer.libera.invite current
|
||
----
|
||
|
||
* wyświetlaj wiadomość "303" (ison) w buforze "core" WeeChat:
|
||
|
||
----
|
||
/set irc.msgbuffer.303 weechat
|
||
----
|
||
|
||
[[irc_commands]]
|
||
=== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=irc_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=irc_options]
|
||
|
||
[[xfer]]
|
||
== 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::{autogendir}/autogen_user_commands.pl.adoc[tag=xfer_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=xfer_options]
|
||
|
||
[[typing_notifications]]
|
||
== Powiadomienia o pisaniu
|
||
|
||
Wtyczka typing jest używana do informowania innych że coś piszesz oraz
|
||
pokazaniu listy osób piszących obecnie wiadomości w buforze.
|
||
|
||
Jest używana przez wtyczkę IRC na kanałach i w prywatnych buforach, kiedy
|
||
serwer posiada włączoną opcję "message-tags" (możesz to sprawdzić komendą
|
||
<<command_irc_cap,/cap>>). +
|
||
Pod spodem użyty jest tag klienta, zgodnie z
|
||
https://ircv3.net/specs/client-tags/typing[tą specyfikacją ^↗^^].
|
||
|
||
[[typing_activation]]
|
||
=== Aktywacja
|
||
|
||
W trosce o prywatność, opcja ta jest domyślnie wyłączona. +
|
||
Jeśli chcesz ją włączyć, musisz ustawić opcje zarówno we wtyczce typing
|
||
jak i irc:
|
||
|
||
----
|
||
/set typing.look.enabled_nicks on
|
||
/set typing.look.enabled_self on
|
||
/set irc.look.typing_status_nicks on
|
||
/set irc.look.typing_status_self on
|
||
----
|
||
|
||
Powiadomienia o pisaniu są wyświetlane na końcu pasku statusu.
|
||
|
||
Przykład paska statusu z elementem "typing": "bob" pisze wiadomość, natomiast
|
||
"alice" pisała coś ale zrobiła sobie przerwę:
|
||
|
||
....
|
||
│[12:55] [6] [irc/libera] 3:#test(+n){4} [Typing: bob, (alice)] │
|
||
│[@Flashy] █ │
|
||
└─────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[typing_signals_sent]]
|
||
=== Wysyłane sygnały
|
||
|
||
Kiedy piszesz wiadomość (ale nie polecenie zaczynające się od `/`) ta wtyczka
|
||
wysyła sygnały informujące inne wtyczki (jak IRC) o tym że piszesz, te wtyczki
|
||
mogą następnie wysłać informacje do innych użytkowników.
|
||
|
||
Następujące sygnały są wysyłane, kiedy piszesz wiadomość:
|
||
|
||
[width="100%",cols="1,1,5",options="header"]
|
||
|===
|
||
| Sygnał | Argumenty | Opis
|
||
| typing_self_typing | Wskaźnik: bufor. | Piszesz wiadomość.
|
||
| typing_self_paused | Wskaźnik: bufor. | Przestałeś pisać wiadomość.
|
||
| typing_self_cleared | Wskaźnik: bufor. | Skasowałeś pisaną wiadomość z lini poleceń (bez wysłania).
|
||
| typing_self_sent | Wskaźnik: bufor. | Wysłałeś wiadomość do bufora.
|
||
|===
|
||
|
||
[[typing_signals_caught]]
|
||
=== Przechwytywane sygnały
|
||
|
||
Wtyczka typing przechwyytuje niektóre sygnały, które mogą być wysłane przez
|
||
inne wtyczki (jak IRC) do aktualizacji wewnętrznych tablicy hashy używanych
|
||
do przechowywania stanu nicków i buforów. Te tablice są używane do budowania
|
||
zawartości elementu paska "typing".
|
||
|
||
Następujące sygnały są przechwytywane przez wtyczke typing:
|
||
|
||
[width="100%",cols="1,4,3",options="header"]
|
||
|===
|
||
| Sygnal | Argumenty | Opis
|
||
|
||
| typing_set_nick
|
||
| Ciąg: wskaźnik bufora + ";" + stan (jeden z: "off", "typing", "paused",
|
||
"cleared") + ";" + nick. +
|
||
Przykład: "0x1234abcd;typing;alice".
|
||
| Ustawia stan pisania dla nicka w buforze.
|
||
|
||
| typing_reset_buffer
|
||
| Wskaźnik: bufor.
|
||
| Usuwa status pisania dla nicków w buforze.
|
||
|===
|
||
|
||
[[typing_options]]
|
||
=== Opcje
|
||
|
||
Sekcje w pliku _typing.conf_:
|
||
|
||
[width="100%",cols="3m,6m,16",options="header"]
|
||
|===
|
||
| Sekcja | Komenda | Opis
|
||
| look | /set typing.look.* | Wygląd.
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::{autogendir}/autogen_user_options.pl.adoc[tag=typing_options]
|
||
|
||
[[relay]]
|
||
== 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
|
||
* _api_: HTTP REST API, używane przez WeeChat i zdalne interfejsy do wyświetlania
|
||
i interakcji z WeeChat
|
||
* _weechat_: protokół używany przez zdalne interfejsy do wyświetlania i interakcji
|
||
z WeeChat.
|
||
|
||
Listę dostępnych zdalnych interfejsów dla protokołów _api_ i _weechat_ można znaleźć na
|
||
https://weechat.org/about/interfaces/[tej stronie ^↗^^].
|
||
|
||
[[relay_password]]
|
||
=== Hasło
|
||
|
||
Zaleca się ustawenia hasła dla pośrednika za pomocą poniższych komend:
|
||
|
||
----
|
||
/secure set relay moje_hasło
|
||
/set relay.network.password "${sec.data.relay}"
|
||
----
|
||
|
||
To hasło jest używane przez wszystkie protokoły.
|
||
|
||
[[relay_totp]]
|
||
=== TOTP
|
||
|
||
|
||
TOTP (Time-based One-Time Password) może być użyte jako drugi składnik uwierzytelniania
|
||
dla protokołów _api_ i _weechat_, poza samym 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://apps.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://apps.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:
|
||
|
||
----
|
||
/secure set relay_totp secretpasswordbase32
|
||
/set relay.network.totp_secret "${sec.data.relay_totp}"
|
||
----
|
||
|
||
[[relay_tls]]
|
||
=== TLS
|
||
|
||
Możesz używać TLS poprzez utworzenie certyfikatu i klucza prywatnego, oraz
|
||
użycie prefiksu "tls." w nazwie protokołu.
|
||
|
||
Domyślna ścieżka do certyfikatów/kluczy jest zdefiniowana przez opcję
|
||
<<option_relay.network.tls_cert_key,relay.network.tls_cert_key>>.
|
||
|
||
Możesz utworzyć certyfikat i klucz prywatny wykonując poniższe komendy:
|
||
|
||
[source,shell]
|
||
----
|
||
mkdir -p ~/.config/weechat/tls
|
||
cd ~/.config/weechat/tls
|
||
openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out relay.pem
|
||
----
|
||
|
||
[NOTE]
|
||
Musisz zamienić `~/.config/weechat` na ścieżkę do katalogu z konfiguracją WeeChat,
|
||
który może być ustawiony na przykład na `~/.weechat`.
|
||
|
||
Jeśli WeeChat jest już uruchomiony, możesz przładować certyfikat i klucz prywatny
|
||
za pomocą polecenia:
|
||
|
||
----
|
||
/relay tlscertkey
|
||
----
|
||
|
||
[[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 TLS dla dowolnego serwera (klient wybiera):
|
||
|
||
----
|
||
/relay add tls.irc 8000
|
||
----
|
||
|
||
Przykład: proxy IRC bez TLS tylko dla serwera "libera":
|
||
|
||
----
|
||
/relay add irc.libera 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 "libera:moje_hasło" jeśli żaden
|
||
serwer nie został podany w przekaźniku).
|
||
|
||
Na przydład jeśli używasz WeeChat jako klienta pośrednika IRC, z serwerem
|
||
nazwanym "relay" i hasłem pośrednika "moje_hasło", możesz ustawić hasło
|
||
za pomocą tych komend:
|
||
|
||
----
|
||
/secure set relay_libera libera:moje_hasło
|
||
/set irc.server.relay.password "{sec.data.relay_libera}"
|
||
----
|
||
|
||
[[relay_api_protocol]]
|
||
=== Protokół API
|
||
|
||
Wtyczka Relay może wysyłać dane do zdalnego WeeChat lub interfejsu za pomocą
|
||
protokołu HTTP REST API.
|
||
|
||
Możesz przeglądać i testować API online:
|
||
https://weechat.org/api/[WeeChat Relay API ^↗^^].
|
||
|
||
Możesz się połączyć przez WeeChat lub zdalnym interfejsem, sprawdź
|
||
https://weechat.org/about/interfaces/[tą stronę ^↗^^].
|
||
|
||
Na przykład:
|
||
|
||
----
|
||
/relay add api 9000
|
||
----
|
||
|
||
Możesz teraz połączyć się na porcie 9000 używając WeeChat lub zdalnym interfejsem
|
||
używając hasła 'mypassword'.
|
||
|
||
Połączenie z pośrednikiem _api_ działającym lokalnie z WeeChat:
|
||
|
||
----
|
||
/remote add weechat http://localhost:9000 -password=mypassword
|
||
/remote connect weechat
|
||
----
|
||
|
||
Połączenie z pośrednikiem _api_ działającym gdzieś z WeeChat
|
||
(TLS jest baredzo zalecany):
|
||
|
||
----
|
||
/remote add weechat https://example.com:9000 -password=mypassword
|
||
/remote connect weechat
|
||
----
|
||
|
||
[NOTE]
|
||
Zdalny WeeChat musi używać tej samej wersji API co lokalny WeeChat, zaleca się
|
||
używanie dokładnie tych samych wersji WeeChat zarówno lokalnie jak i na zdalnej
|
||
maszynie.
|
||
|
||
[[relay_weechat_protocol]]
|
||
=== Protokół WeeChat
|
||
|
||
Wtyczka relay może wysyłać dane do zdalnego interfejsu korzystając z protokołu
|
||
WeeChat.
|
||
|
||
Możesz się łączyć za pomocą zdalnych interfejsów, więcej na
|
||
https://weechat.org/about/interfaces/[tej stronie ^↗^^].
|
||
|
||
[IMPORTANT]
|
||
WeeChat NIE MOŻE się połączyć z innym WeeChat za pomocą tego protokołu.
|
||
|
||
Na przykład:
|
||
|
||
----
|
||
/relay add weechat 9500
|
||
----
|
||
|
||
Teraz możesz się połączyć zdalnym interfejsem na porcie 9500 za pomocą hasła
|
||
"moje_hasło".
|
||
|
||
[[relay_websocket]]
|
||
=== WebSocket
|
||
|
||
Protokół WebSocket (https://datatracker.ietf.org/doc/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,javascript]
|
||
----
|
||
websocket = new WebSocket("ws://example.com:9500/weechat");
|
||
----
|
||
|
||
Port (9500 w przykładzie) to port zdefiniowany we wtyczce relay.
|
||
|
||
URI musi się kończyć "/weechat" dla protokołów _irc_ i _weechat_ oraz "/api"
|
||
dla protokołu _api_.
|
||
|
||
[[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 ${weechat_runtime_dir}/relay_socket
|
||
----
|
||
|
||
Pozwala to na połączenia od klientów za pomocą protokołu weechat do
|
||
_/run/user/1000/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:
|
||
|
||
[source,shell]
|
||
----
|
||
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::{autogendir}/autogen_user_commands.pl.adoc[tag=relay_commands]
|
||
|
||
[[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 (opcje w tej sekcji mogą być dodawane/usuwane).
|
||
|===
|
||
|
||
Opcje:
|
||
|
||
include::{autogendir}/autogen_user_options.pl.adoc[tag=relay_options]
|
||
|
||
[[external_commands]]
|
||
== Zewnętrzne polecenia
|
||
|
||
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::{autogendir}/autogen_user_commands.pl.adoc[tag=exec_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=exec_options]
|
||
|
||
[[fifo_pipe]]
|
||
== Kolejka 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).
|
||
|
||
Strumień FIFO jest zlokalizowany w katalogu uruchomieniowym WeeChat i ma
|
||
domyślnie nazwę weechat_fifo_12345_ (gdzie _12345_ to numer procesu WeeChat).
|
||
|
||
Składnia dla komend/tekstu przekazywanego do kolejki FIFO wygląda następująco:
|
||
|
||
....
|
||
wtyczka.bufor *tekst lub komenda
|
||
*tekst lub komenda
|
||
....
|
||
|
||
Backslashe mogą być użyte w tym formacie zastępując `*` przez `\`, pozwalając
|
||
na przykład wysyłanie wiadomości wieloliniowych:
|
||
|
||
....
|
||
plugin.buffer \text or command here
|
||
\text or command here
|
||
....
|
||
|
||
Kilka przykładów:
|
||
|
||
* Zmiana nicka na serwerze IRC libera na "newnick":
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.server.libera */nick newnick' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Wysłanie wiadomości na kanał IRC #weechat:
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.libera.#weechat *hello!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Wysyłanie wielolinowych wiadomości na kanał IRC #test, jeśli właściwość
|
||
"draft/multiline" jest włączona na serwerze ergo:
|
||
|
||
[source,shell]
|
||
----
|
||
echo 'irc.ergo.#test \hello\n...on two lines!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Wysłanie wiadomości do obecnego bufora:
|
||
|
||
[source,shell]
|
||
----
|
||
echo '*hello!' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
* Wysłanie dwóch komend do wyładowania/przeładowania skryptów Python (należy
|
||
oddzielić je za pomocą "\n"):
|
||
|
||
[source,shell]
|
||
----
|
||
printf '%b' '*/python unload\n*/python autoload\n' >/run/user/1000/weechat/weechat_fifo_12345
|
||
----
|
||
|
||
[[fifo_commands]]
|
||
=== Komendy
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=fifo_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=fifo_options]
|
||
|
||
[[trigger]]
|
||
== 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:[/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,wyrażenia regularne>>.
|
||
|
||
| 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.libera.*+` +
|
||
`+*;irc.libera.#weechat+` +
|
||
`+formatted;irc.libera.#weechat;irc_notice+`
|
||
| link:weechat_plugin_api.en.html#_hook_line[hook_line ^↗^^] +
|
||
(Angielski)
|
||
|
||
| print
|
||
| 1. nazwa buforu +
|
||
2. tagi +
|
||
3. wiadomość +
|
||
4. odrzucić kolory (0/1)
|
||
| `+irc.libera.*+` +
|
||
`+irc.libera.#weechat+` +
|
||
`+irc.libera.#weechat;irc_notice+` +
|
||
`+*;;;1+`
|
||
| link:weechat_plugin_api.en.html#_hook_print[hook_print ^↗^^] +
|
||
(Angielski)
|
||
|
||
| command
|
||
| 1. nazwa komendy dozwolony priorytet) (wymagane) +
|
||
2. opis (przetwarzane, zobacz komendę <<command_weechat_eval,/eval>>) +
|
||
3. argumenty (przetwarzane, zobacz komendę <<command_weechat_eval,/eval>>) +
|
||
4. opis argumentów (przetwarzane, zobacz komendę <<command_weechat_eval,/eval>>) +
|
||
5. dopełnienie (przetwarzane, 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 tabelach hashy callbacków.
|
||
|
||
Format to jeden z poniższych:
|
||
|
||
----
|
||
/string1/string2
|
||
/string1/string2/var
|
||
s/string1/string2
|
||
s/string1/string2/var
|
||
y/string1/string2
|
||
y/string1/string2/var
|
||
----
|
||
|
||
Pola:
|
||
|
||
* `s` lub `y`: litera z komendą; jeśli nie podana domyślnie zostanie użyte `s`
|
||
następny znak jest użyty jako ogranicznik:
|
||
** `s`: zamiana z użyciem wyrażenia regularnego: pierwszy ciąg to wyrażenie
|
||
regularne, drugi to ciąg na który ma zostać zamienione każde dopasowanie
|
||
** `y`: zamiana znaków: pierwszy ciąg to zbiór znaków które zostaną zastąpione
|
||
przez znaki z drugiego ciągu; po przetworzeniu każdy z ciągów musi mieć
|
||
dokładnie taką samą ilość znaków UTF-8
|
||
* `/`: separator wyrażenia; znak "/" może zostać zastąpiony dowolnym innym znakiem
|
||
(jeden lub więcej identycznych znaków)
|
||
* `string1`: pierwszy ciąg (użycie zależne od polecenia)
|
||
* `string2`: drugi ciąg (użycie zależne od polecenia)
|
||
* `var`: zmienna w tabeli hashy do zaktualizowania
|
||
|
||
Wyrażenia regularne można oddzielić spacją, na przykład:
|
||
|
||
----
|
||
s/regex1/replace1/var1 y/abcdef/ABDDEF/var2
|
||
----
|
||
|
||
[[trigger_regex_replace]]
|
||
==== Zamiana wyrażeniem regularnym
|
||
|
||
Dla komendy `s`, format jest jestępujący: `s/regex/replace` lub `s/regex/replace/var`
|
||
(gdzie _var_ to zmianna z tablicy hashy).
|
||
|
||
Jako że `s` to domyślna komenda, można to pominąć, dlatego `/regex/replace`
|
||
jest także poprawne (jednak pierwszy znak, który będzie separatorem, nie może być
|
||
literą).
|
||
|
||
Dopasowanie grup może być także użyte:
|
||
|
||
* `+${re:0}+` do `+${re:99}+`: `+${re:0}+` to pełne dopasowanie, `+${re:1}+` do
|
||
`+${re:99}+` to złapane grupy
|
||
* `pass:[${re:+}]`: ostatnie dopasowanie (z najwyższym numerem)
|
||
* `+${re:#}+`: index of last group captured
|
||
* `+${re:repl_index}+`: index of replacement being done (starts to 1)
|
||
* `+${hide:c,${re:N}}+`: dopasuje "N" ze wszystkimi znakami zastąpionymi przez "c"
|
||
(przykład: `+${hide:*,${re:2}}+` to grupa #2 ze wszystkimi znakami zastąpionymi przez
|
||
`+*+`).
|
||
|
||
Przykład: użyj pogrubienia dla słów pomiędzy `+*+`:
|
||
|
||
----
|
||
s/\*([^ ]+)\*/*${color:bold}${re:1}${color:-bold}*/
|
||
----
|
||
|
||
Przykład: domyślny trigger _server_pass_ używa tego wyrażenia regularnego do
|
||
ukrycia haseł w komendach `/server` i `/connect` (znaki w hasłach są zastępowane
|
||
przez `+*+`):
|
||
|
||
----
|
||
s==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}
|
||
----
|
||
|
||
[NOTE]
|
||
W tym przykładzie jako separator jest użyte "==" ponieważ znak "/" jest użyty
|
||
w wyrażeniu regularnym.
|
||
|
||
[[trigger_regex_translate_chars]]
|
||
==== Tłumaczenie znaków
|
||
|
||
Dla komendy `y`, format to: `y/chars1/chars2` lub `y/chars1/chars2/var`
|
||
(gdzie _var_ to zmienna w tabeli hashy).
|
||
|
||
Przykłady: zamienia "a", "b" i "c" na wielkie litery:
|
||
|
||
----
|
||
y/abc/ABC/
|
||
----
|
||
|
||
Przykład: obraca strzałki zgodnie z ruchem wskazówek zegara:
|
||
|
||
----
|
||
y/←↑→↓/↑→↓←/
|
||
----
|
||
|
||
Przykład: zamienia wielkie litery na małe:
|
||
|
||
----
|
||
y/${chars:upper}/${chars:lower}/
|
||
----
|
||
|
||
Przykład: przesuwa litery o jedną pozycję zachowując wielkość: a→b, b→c … y→z, z→a:
|
||
|
||
----
|
||
y/${chars:a-z}${chars:A-Z}/${chars:b-z}a${chars:B-Z}A/
|
||
----
|
||
|
||
[[trigger_regex_variable]]
|
||
==== Zmienna
|
||
|
||
Jeśli _var_ nie istnieje w tabeli hashy zostanie sutomatycznie utworzona bez
|
||
wartości. Pozwala to na tworzenie zmiennych tymczasowych.
|
||
|
||
Jeśli _var_ nie została podana, zostanie użyta domyślna zmienna w zależności
|
||
od typu hooka:
|
||
|
||
[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_usec, date_printed, date_usec_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.
|
||
|
||
[[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
|
||
----
|
||
|
||
Wszystkie callbacki ustawiają następujące zmienne w tablicy hashy:
|
||
|
||
[width="100%",cols="3m,2,14",options="header"]
|
||
|===
|
||
| Zmienna | Typ | Opis
|
||
| tg_trigger_name | ciąg | Nazwa triggera.
|
||
| tg_hook_type | ciąg | Typ hooka: "signal", "command", etc.
|
||
|===
|
||
|
||
[[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: "libera").
|
||
| tags | ciąg | Tagi w wiadomości (rzadko używane).
|
||
| message_without_tags | ciąg | Wiadomość bez tagów.
|
||
| nick | ciąg | Nick. ^(1)^
|
||
| 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).
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Nick to nadawca wiadomości. +
|
||
Twój nick na serwerze to `${irc_server.nick}`.
|
||
|
||
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_usec | ciąg | Mikrosekundy w linii z datą.
|
||
| date_printed | ciąg | Data, kiedy linia została wyświetlona (timestamp).
|
||
| date_usec_printed | ciąg | Mikrosekundy w dacie wyświetlenia linii.
|
||
| 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_tag_irc_xxx | ciąg | Tag wiadomości IRC (klucz "xxx"). ^(1)^
|
||
| tg_notify | ciąg | Poziom powiadomień, jeśli różny od _none_.
|
||
| tg_msg_pv | ciąg | "1" dla prywatnej wiadomości, inaczej "0".
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Przecinki są zastępowane przez średniki w tagach IRC (kluczach i wartościach)
|
||
|
||
[[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: `%FT%T.%f`, zobacz link:weechat_plugin_api.en.html#_util_strftimeval[Opis API wtyczek WeeChat / util_strftimeval ^↗^^]).
|
||
| 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_tag_irc_xxx | ciąg | Tag wiadomości IRC (klucz "xxx"). ^(1)^
|
||
| tg_notify | ciąg | Poziom powiadomień, jeśli różny od _none_.
|
||
| tg_msg_pv | ciąg | "1" dla prywatnej wiadomości, inaczej "0".
|
||
|===
|
||
|
||
[NOTE]
|
||
^(1)^ Przecinki są zastępowane przez średniki w tagach IRC (kluczach i wartościach)
|
||
|
||
[[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_argc | ciąg | Ilość argumentów (komenda liczy się za jeden).
|
||
| tg_argvN | ciąg | Argument #N (`+tg_argv0+` to komenda, pozostałe to jej argumenty).
|
||
| tg_argv_eolN | ciąg | Od argumentu #N do końca argumentów (`+tg_argv_eol0+` zawiera komendę).
|
||
| tg_shell_argc | ciąg | Ilość argumentów podzielonych tak jak parametry konsolowe (sama komenda liczy się jako jeden).
|
||
| tg_shell_argvN | ciąg | Argument #N podzielone tak jak parametry konsolowe (`+tg_shell_argv0+` to nazwa komendy, pozostałe to argumenty).
|
||
|===
|
||
|
||
[[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 `%FT%T.%f`, zobacz link:weechat_plugin_api.en.html#_util_strftimeval[Opis API wtyczek WeeChat / util_strftimeval ^↗^^]).
|
||
|===
|
||
|
||
[[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::{autogendir}/autogen_user_commands.pl.adoc[tag=trigger_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=trigger_options]
|
||
|
||
[[extending_weechat]]
|
||
== Rozszerzanie WeeChat
|
||
|
||
WeeChat zbudowany jest z modułów i może być rozszerzany przez wtyczki
|
||
i skrypty.
|
||
|
||
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`.
|
||
|
||
[[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.
|
||
|
||
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,5",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.
|
||
| typing | Pokazuje użytkowników obecnie piszących wiadomości.
|
||
| 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 ^↗^^].
|
||
|
||
[[scripts]]
|
||
=== 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.
|
||
|
||
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_manager]]
|
||
==== Manager skryptów
|
||
|
||
Manager skryptów (komenda <<command_script_script,/script>>) jest używany
|
||
do ładowania/wyładowania skryptów w dowolnym języku, oraz do
|
||
instalowania/usuwania skryptów z repozytorium skryptów WeeChat, które można
|
||
znależć na https://weechat.org/scripts/[tej stronie ^↗^^].
|
||
|
||
W trosce o prywatność pobieranie skryptów jest domyślnie wyłąćzone. +
|
||
Żeby je włączyć, wpisz poniższe polecenie:
|
||
|
||
----
|
||
/script enable
|
||
----
|
||
|
||
Następnie możesz pobrać listę skryptów i wyświetlić je w nowym buforze
|
||
za pomocą polecenia <<command_script_script,/script>>:
|
||
|
||
[subs="quotes,attributes"]
|
||
:x: *
|
||
....
|
||
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||
│1.weechat│322/322 skrypty (filtr: {x}) | Sort: i,p,n | Alt+klawisz/wejście: i=instaluj r=usuń l=załaduj L=prze>>│
|
||
│2.scripts│{x} autosort.py 3.10 2023-12-31 | Automatycznie grupowanie buforów wg serw│
|
||
│ │{x} highmon.pl 2.7 2020-06-21 | Dodaje bufor monitorujący higlighty. │
|
||
│ │{x}ia r grep.py 0.8.6 0.8.6 2022-11-11 | Przeszukuje bufor lub plik z logami za p│
|
||
│ │{x} colorize_nicks.py 32 2023-10-30 | Używaj kolorów nicków weechat w oknie ro│
|
||
│ │##{x}ia r go.py 3.0.1 3.0.1 2024-05-30 | Szybkie przemieszczanie się pomiędzy buf##│
|
||
│ │ aesthetic.py 1.0.6 2020-10-25 | Spraw, że wiadomości będą bardziej E S T│
|
||
│ │ aformat.py 0.2 2018-06-21 | Alternatywne formatowanie tekstu, przyda│
|
||
│ │ alternatetz.py 0.4 2022-01-25 | Dodaje alternatywny element strefy czaso│
|
||
│ │ amarok2.pl 0.7 2012-05-08 | Kontrola i wyświetlanie aktualnie odtwar│
|
||
│ │ amqp_notify.rb 0.1 2011-01-12 | Wysyła prywatne wiadomości i higlighty d│
|
||
│ │ announce_url_title.py 19 2021-06-05 | Prezentuje tytuł URL'a użytkownikowi lub│
|
||
│ │ anotify.py 1.0.2 2020-05-16 | Powiadomienia na ekranie dla prywatnych │
|
||
│ │ anti_password.py 1.2.1 2021-03-13 | Zapobiega przypadkowemu wysłaniu hasła d│
|
||
│ │ apply_corrections.py 1.3 2018-06-21 | Wyświetla poprawiony tekst, kiedy użytko│
|
||
│ │ arespond.py 0.1.2 2022-01-25 | Prosty autoresponder. │
|
||
│ │ atcomplete.pl 0.001 2016-10-29 | Dopełnianie tabem dla nicków poprzedzony│
|
||
│ │ audacious.pl 0.3 2009-05-03 | Wyświetla aktualnie odtwarzany utwór prz│
|
||
│ │ auth.rb 0.3 2014-05-30 | Automatyczne uwierzytelnianie w NickServ│
|
||
│ │ auto_away.py 0.4 2018-11-11 | Prosty skrypt auto-away. │
|
||
│ │ autoauth.py 1.3 2021-11-07 | Pozwala na automatyczną identyfikację po│
|
||
│ │ autobump.py 0.1.0 2019-06-14 | Ustawia bufory według aktywności. │
|
||
│ │ autoconf.py 0.4 2021-05-11 | Automatyczne zapisywanie/ładowanie zapis│
|
||
│ │ autoconnect.py 0.3.3 2019-10-06 | Otwiera kanały i serwery otwarte przed o│
|
||
│ │ autojoin_on_invite.py 0.9 2022-10-25 | Automatycznie wchodzi na kanał po otrzym│
|
||
│ │ automarkbuffer.py 1.0 2015-03-31 | Oznacza bufor jako przeczytany jeśli nie│
|
||
│ │ automerge.py 0.2 2018-03-03 | Automatyczna łączenie nowych buforów zgo│
|
||
│ │[12:55] [2] [script] 2:scripts │
|
||
│ │█ │
|
||
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||
....
|
||
|
||
[[script_commands]]
|
||
===== Komendy wtyczki script
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=script_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=script_options]
|
||
|
||
[[scripting_plugins]]
|
||
==== Wtyczki skryptowe
|
||
|
||
[[python_commands]]
|
||
===== Komendy wtyczki python
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=python_commands]
|
||
|
||
[[perl_commands]]
|
||
===== Komendy wtyczki perl
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=perl_commands]
|
||
|
||
[[ruby_commands]]
|
||
===== Komendy wtyczki ruby
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=ruby_commands]
|
||
|
||
[[lua_commands]]
|
||
===== Komendy wtyczki lua
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=lua_commands]
|
||
|
||
[[tcl_commands]]
|
||
===== Komendy wtyczki tcl
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=tcl_commands]
|
||
|
||
[[guile_commands]]
|
||
===== Komendy wtyczki guile
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=guile_commands]
|
||
|
||
[[php_commands]]
|
||
===== Komendy wtyczki php
|
||
|
||
include::{autogendir}/autogen_user_commands.pl.adoc[tag=php_commands]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=python_options]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=perl_options]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=ruby_options]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=lua_options]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=tcl_options]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=guile_options]
|
||
|
||
[[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::{autogendir}/autogen_user_options.pl.adoc[tag=php_options]
|
||
|
||
[[support]]
|
||
== Wsparcie
|
||
|
||
Przed pytaniem o pomoc upewnij się, że przeczytałeś dokumentację i FAQ
|
||
dostarczone z WeeChat.
|
||
|
||
Wsparcie w sieci IRC na serwerze _irc.libera.chat_:
|
||
|
||
* oficjalne kanały (z developerami):
|
||
** _#weechat_ (Angielski)
|
||
** _#weechat-fr_ (Francuski)
|
||
* nieoficjalne kanały:
|
||
** _#weechat-de_ (Niemiecki)
|
||
** _#weechat-fi_ (Fiński)
|
||
|
||
Inne opcje uzyskania wsparcia można znaleźć na
|
||
https://weechat.org/about/support/[tej stronie ^↗^^].
|