# WeeChat FAQ (Często zadawane pytania)

Sébastien Helleu
flashcode@flashtux.org
wersja 4.8.1

## 1. Ogólne

### 1.1. Skąd się wzięła nazwa "WeeChat"?

"Wee" to akronim rekursywny oznaczającym "Wee Enhanced Environment". Stąd kompletna nazwa to "Wee Enhanced Environment for Chat".

"Wee" oznacza również "bardzo mały" (tak jest jeszcze inne znaczenie, ale nie pasuje ono do WeeChat!).

### 1.2. Dlaczego wybrać WeeChat? X-Chat i Irssi są takie dobre…​

Ponieważ WeeChat jest bardzo lekki i posiada innowacyjne funkcje. Więcej informacji na temat WeeChat można znaleźć na tej stronie ↗.

## 2. Kompilacja / instalacja

### 2.1. Słyszałem o wielu GUI dla WeeChat. Jak mogę je skompilować/użyć?

Kilka zdalnych GUI jest dostępnych, zajrzyj na stronę poświęconą zdalnym interfejsom ↗.

### 2.2. Nie mogę skompilować WeeChat po sklonowaniu repozytorium git, dlaczego?

WeeChat musi być kompilowany przy użyciu CMake.

Postępuj zgodnie z instrukcjami kompilacji ↗ w celu upewnienia się, że wszystkie wymagane zależności są zainstalowane.

Jeśli nadal występują jakieś problemy zgłoś je do developerów.

### 2.3. Jak zainstalować WeeChat na macOS?

Zaleca się użycie Homebrew ↗, pomoc uzyskasz za pomocą komendy:

    brew info weechat

Możesz zainstalować WeeChat za pomocą komendy:

    brew install weechat

### 2.4. Uruchomiłem WeeChat, ale czuję się zagubiony, co robić?

Dla pomocy wpisz `/help`. Aby uzyskać pomoc dla komendy wpisz `/help komenda`. Keys ↗ i commands ↗ są opisane w dokumentacji.

Nowym użytkowniką zaleca się przeczytanie dokumentu Szybki start ↗.

## 3. Wyświetlanie

### 3.1. Nie widzę niektórych znaków diakrytycznych, co mogę zrobić?

Jest to częsty problem powodowany przez wiele rzeczy, przeczytaj uważnie i sprawdź WSZYSTKIE rozwiązania opisane poniżej:

- sprawdź czy weechat jest zlinkowany z libncursesw (uwaga: wymagane na większości dystrybucji ale nie wszystkich): `ldd /ścieżka/do/weechat`

- sprawdź czy wtyczka "charset" jest załadowana za pomocą komendy `/plugin` (jeśli nie jest, to najprawdopodobniej potrzebujesz pakietu "weechat-plugins")

- sprawdź wyjście komendy `/charset` (w głównym buforze). Powinieneś zobaczyć ISO-XXXXXX lub UTF-8 dla kodowania terminala. Jeśli widzisz ANSI_X3.4-1968 lub inne wartości, twoje ustawienie dla locale najprawdopodobniej jest złe.
  Aby to naprawić, sprawdź zainstalowane w systemie kodowania za pomocą `locale -a` i ustaw odpowiednią wartość zmiennej $LANG, na przykład: `export LANG=en_US.UTF-8`.

- ustaw globalną wartość dekodowania, na przykład: `/set charset.default.decode "ISO-8859-2"`

- jeśli korzystasz z UTF-8:

  - sprawdź czy twój terminal jest przystosowany dla UTF-8 (zalecanym terminalem dla UTF-8 jest rxvt-unicode)

  - jeśli korzystasz ze screena, sprawdź czy jest uruchomiony z trybem UTF-8 (“defutf8 on” w ~/.screenrc lub `screen -U` uruchamiając screena)

- sprawdź czy opcja weechat.look.eat_newline_glitch ↗ jest wyłączona (ta opcja może powodować błędy wyświetlania)

Notka | UTF-8 jest zalecany dla WeeChat. Jeśli korzystasz z lokalizacji ISO lub innych, sprawdź czy wszystkie twoje ustawienia (terminal, screen, ..) są ISO, a nie UTF-8.

### 3.2. Niektóre znaki unicode są wyświetlane w terminalu ale nie w WeeChat, dlaczego?

Może to być spowodowane przez błąd libc w funkcji wcwidth, który powinien zostać naprawiony w glibc 2.22 (może jeszcze nie być dostępny w twojej dystrybucji).

Istnieje sposób na obejście błędu funkcji wcwidth: https://blog.nytsoi.net/2015/05/04/emoji-support-for-weechat ↗.

Więcej informacji można znaleźć w tym zgłoszonym błędzie ↗.

### 3.3. Paski jak tytuł i status nie są filtrowane, kolor tła zatrzymuje się po tekście, czemu?

Może to być spowodowane złą wartością zmiennej środowiskowej TERM (spójrz na wynik `echo $TERM` w terminalu).

W zależności, gdzie uruchamiasz WeeChat, powinieneś uzyskać:

- jeżeli WeeChat działa lokalnie lub na zdalnej maszynie bez programów jak screen czy tmux, zależy od używanego terminala: xterm, xterm-256color, rxvt-unicode, rxvt-256color, …​

- jeśli WeeChat działa pod screenem, zmienna $TERM powinna zawierać screen lub screen-256color,

- jeśli WeeChat działa pod tmuxem, zmienna $TERM powinna zawierać tmux, tmux-256color, screen lub screen-256color.

W razie potrzeby, popraw zmienna TERM: `export TERM="xxx"`.

### 3.4. Podczas używania WeeChat pod screenem/tmuxem pojawiają mi się dziwne, losowe znaki, jak to naprawić?

Może to być spowodowane przez złą wartość zmiennej TERM w swojej powłoce (spójrz na wynik `echo $TERM` w swoim terminalu, poza screenem/tmuxem).
Na przykład, xterm-color może wyświetlać takie dziwne znaki, możesz użyć xterm, który działa dobrze (jak wiele innych wartości).
W razie potrzeby, popraw zmienna TERM: `export TERM="xxx"`.

Jeśli używasz gnome-terminal, sprawdź czy opcja "Ambigous-width chracters" w menu Preferencje/Profile/Kompatybilność jest ustawiona na `narrow`.

### 3.5. Skompilowałem WeeChat pod macOS i wszędzie na ekranie widzę "(null)", co jest nie tak?

Jeśli samodzielnie skompilowałeś ncursesw, spróbuj użyć domyślnej wersji (dostarczanej z systemem).

Ponadto, pod macOS, zaleca się instalowanie WeeChat za pomocą managera pakietów Homebrew.

### 3.6. Słyszałem o "buforach" i "oknach", jaka jest między nimi różnica?

bufor jest określany przez numer, nazwę, wyświetlane linie (i trochę innych danych).

okno jest to obszar ekranu wyświetlający bufor. Możliwe jest podzielenie ekranu na wiele okien.

Każde okno wyświetla jeden bufor lub grupę połączonych buforów. Buform może być ukryty (nie wyświetlany w żadnym oknie) lub wyświetlany w jednym lub kilku oknach.

### 3.7. Jak wyświetlić listę z buforami po lewej stronie?

Wtyczka buflist ↗ jest domyślnie włączona i załadowana.

Ograniczenie rozmiaru bufora z listą kanałów:

    /set weechat.bar.buflist.size_max 15

Aby przesunąć pasek na spód:

    /set weechat.bar.buflist.position bottom

Przewijanie paska: jeśli obsługa myszy jest włączona (skrót: `Alt`+`m`), możesz przewijać pasek za pomocą rolki myszy.

Domyślne skróty do przewijania paska buflist to `F1` (lub `Ctrl`+`F1`), `F2` (lub `Ctrl`+`F2`), `Alt`+`F1` oraz `Alt`+`F2`.

### 3.8. Jak mogę spersonalizować lisę buforów, na przykład kolor aktywnego budora?

Możesz sprawdzić wszystkie opcję listy buforów za pomocą polecenia:

    /fset buflist

Tło dla aktywnego bufora jest niebieskie, możesz to zmienić na przykład na `czerwone` w ten sposób:

    /set buflist.format.buffer_current "${color:,red}${format_buffer}"

Notka | Przecinek przed nazwą koloru „red” jest wymagany, ponieważ zostanie on użyty jako kolor tła, a nie kolor tekstu. Możesz także używać numerów kolorów zamiast ich nazwy, jak `237` dla ciemnego szarego.

Wtyczka buflist posiada wiele opcji, które można personalizować, zapoznaj się z opisem dla każdej z nich.

Jest też dostępna strona wiki ↗ z przykładami zaawansowanej konfiguracji listy buforów.

### 3.9. Jak mogę ograniczyć długość wyświetlanych nicków lub usunąć wyrównanie w oknie rozmowy?

W celu ograniczenia długości nicków w oknie rozmowy:

    /set weechat.look.prefix_align_max 15

Żeby usunąć wyrównanie nicków:

    /set weechat.look.prefix_align none

### 3.10. Co oznacza [H: 3(1,8), 2(4)] na pasku statusu?

Jest to "hotlista", lista buforów z ilością nieprzeczytanych wiadomości, w kolejnoci: podświetlenia, prywatne wiadomości, wiadomości, inne (jak wejścia/wyjścia).
Ilość "nieprzeczytanych wiadomości" to lista nowych wyświetlonych/odebranych wiadomości od ostatniej wizyty w buforze.

w przykładzie `[H: 3(1,8), 2(4)]`, oznacza:

- 1 wywołanie i 8 nieprzeczytanych wiadomości w buforze #3,

- 4 nieprzeczytane wiadomości w buforze #2.

Kolor bufora/licznika zależy od typu wiadomości, domyślne kolory:

- podświetlenie: `lightmagenta` / `magenta`

- prywatna wiadomość: `lightgreen` / `green`

- wiadomość: `yellow` / `brown`

- inne: `default` / `default` (kolor tekstu w terminalu)

Kolory można zmienić za pomocą opcji weechat.color.status_data_* (bufory) i weechat.color.status_count_* (liczniki).
Pozostałe opcje hotlist można zmienić za pomocą opcji weechat.look.hotlist_*.

Więcej informacji na temat hotlity można znaleźć w Poradniku użytkownika / Układ ekranu ↗.

### 3.11. Jak używać linii poleceń z więcej niż jednym wierszem?

Opcja size paska wprowadzania może zostać ustawiona na wartość wyższą niż 1 (dla ustalonej wartości, domyślny rozmiar to 1) lub 0 dla dynamicznego rozmiaru, następnie opcja size_max ustali maksymalny rozmiar (0 = brak limitu).

Przykład dynamicznego rozmiaru:

    /set weechat.bar.input.size 0

Maksymalny rozmiar równy 2:

    /set weechat.bar.input.size_max 2

### 3.12. Czy jest możliwe wyświetlanie tylko jednego paska wejściowego dla wszystkich okien (po podzieleniu)?

Tak, należy stworzyć pasek typu "root" (z elementem mówiącym, w którym oknie aktualnie jesteśmy), następnie usunąć obecny pasek wejściowy.

Na przykład:

    /bar add rootinput root bottom 1 0 [buffer_name]+[input_prompt]+(away),[input_search],[input_paste],input_text
    /bar del input

Jeśli kiedyś przestanie ci to odpowiadać, po prostu usuń ten pasek, WeeChat automatycznie stworzy nowy pasek "input" jeśli element "input_text" nie zostanie użyty w żadnym z pasków:

    /bar del rootinput

### 3.13. Jak mogę kopiować/wklejać tekst bez wklejania listy nicków?

Możesz użyć prostego tybu wyświetlania (domyślnie: `Alt`+`l` (`L`)), który pokazuje samą zawartość obecnie wybranego okna, bez żadnego formatowania.

Możesz użyć terminala z prostokątnym zaznaczaniem (jak rxvt-unicode, konsole, gnome-terminal, …​). Klawisze to zazwyczaj `Ctrl` + `Alt` + zaznaczenie myszką.

Możesz wyłączyć listę nicków i włączyć ją, kiedy będzie potrzebna za pomocą `Alt`+`Shift`+`N`.

Innym rozwiązaniem jest przesunięcie listy nicków na górę lub dół, na przykład:

    /set weechat.bar.nicklist.position top
    /set weechat.bar.nicklist.size_max 8

### 3.14. Jak mogę kliknąć na długi URL (dłuższy niż linia)?

Możesz użyć prostego trybu wyświetlania (domyślnie: `Alt`+`l` (`L`)).

Żeby operowanie na URLach było latwiejsze możesz:

- wyłączyć listę nicków i pokazać ja tylko, kiedy będzie potrzebna, za pomocą `Alt`+`Shift`+`N`

- przenieść listę nicków na górę:

    /set weechat.bar.nicklist.position top
    /set weechat.bar.nicklist.size_max 8

- wyłączyć wyrównanie dla wieloliniowych słów:

    /set weechat.look.align_multiline_words off

- albo dla wszystkich zawiniętych lini:

    /set weechat.look.align_end_of_lines time

Możesz włączyć opcję "eat_newline_glitch", dzięki czemu znak nowej lini nie będzie dodawany na końcu każdej wyświetlanej lini (nie będzie przerywać zaznaczania URLi):

    /set weechat.look.eat_newline_glitch on

Ważne | Ta opcja może spowodować pojawienie się błędów. Jeśli doświadczysz takich problemów wyłącz tą opcję.

Innym rozwiązaniem jest użycie skryptu:

    /script search url

### 3.15. Chcę zmienić język komunikatów wyświetlanych przez WeeChat, ale bez jego zamykania, czy jest to możliwe?

Oczywiście jest to możliwe:

    /set env LANG pl_PL.UTF-8
    /upgrade

### 3.16. Jak mogę zmienić strefę czasową?

Nie ma opcji na zmianę strefy czasowej w WeeChat, zmienna środowiskowa `TZ` musi być ustawiona na odpowiednią wartość.

W pliku inicjalizującym powłokę lub w linii poleceń, przed uruchomieniem WeeChat wpisz:

    export TZ=Europe/Warsaw

W WeeChat, nowa wartość zostanie natychmiast użyta:

    /set env TZ Europe/Warsaw

### 3.17. Jak mogę użyć 256 kolorów w WeeChat?

Najpierw należy sprawdzić czy wartość zmiennej środowiskowej TERM jest poprawna,\ zalecane wartości to:

- w screenie: screen-256color

- pod tmuxem: screen-256color lub tmux-256color

- poza screenem/tmuxem: xterm-256color, rxvt-256color, putty-256color, …​

Notka | Może okazać się konieczne zainstalowanie pakietu "ncurses-term" w celu użycia tych wartości w zmiennej TERM.

Jeśli używasz screena, możesz dodać to do swojego ~/.screenrc:

    term screen-256color

Jeśli twoja zmienna TERM posiada złą wartość i WeeChat jest już uruchomiony, możesz zmienić ją za pomocą tych dwóch komend:

    /set env TERM screen-256color
    /upgrade

Możesz użyć dowolnego numeru koloru w opcjach (opcjonalnie możesz dodać aliasy dla kolorów za pomocą polecenia `/color`).

Więcej informacji o zarządzaniu kolorami można znaleźć w Poradniku użytkownika / Kolory ↗.

### 3.18. Jak mogę wyszukać tekst w buforze (jak za pomocą /lastlog w irssi)?

Domyślny skrót klawiszowy to `Ctrl`+`r` (komenda: `/input search_text_here`).

Poruszanie się między podświetleniami: `Alt`+`p` / `Alt`+`n`.

Więcej informacji o skrótach klawiszowych można znaleźć w Poradniku użytkownika / Domyślne skróty klawiszowe ↗.

### 3.19. Jak mogę wykonywać komendy, kiedy terminal stanie się/przestanie być aktywny?

Musisz włączyć obsługę tego zdarzenia za pomocą specjalnego kodu wysyłanego do terminala.

Ważne:

- Musisz użyć współczesnego terminala zgodnego z xterm.

- Dodatkowo, istotne jest, any zmenna TERM była utawiona na wartość xterm lub xterm-256color.

- Jeśli używaz tmuxa, musisz dodatkowo włączyć obsługę zdarzeń aktywności poprzez dodanie `set -g focus-events on` do pliku .tmux.conf.

- Nie działa to pod screenem.

Żeby wysłać kod podczas uruchamiania WeeChat:

    /set weechat.startup.command_after_plugins "/print -stdout \033[?1004h\n"

Następnie przypisz dwie kombinacje klawiszy dla stanu aktywności (zamień komendy `/print` własnymi komendami:

    /key bind meta-[I /print -core focus
    /key bind meta-[O /print -core unfocus

Na przykład w celu oznaczenia boforów jako nie przeczytane w momencie jak terminal straci focus:

    /key bind meta-[O /allbuf /buffer set unread

### 3.20. Kiedy WeeChat działa pod screenem, tekst wklejany do innego okna screena ma dodane ~0 i ~1 dookoła, dlaczego?

Jest to spowodowane przez opcję wklejania nawiasów, która jest domyślnie włączona i nie jest właściwie obsługiwana przez inne okna screena.

Możesz po prostu wyłączyć tą opcję:

    /set weechat.look.paste_bracketed off

### 3.21. Jak mogę dostosować wyświetlanie do bardzo małych terminali (jak 80x25), żeby nie tracić przestrzeni?

Możesz wyłączyć boczne paski (listy buforów i nicków), zmienić format czasu, żeby wyświetlane były tylko godziny i minuty, wyłączyć wyrównywanie wiadomości oraz ustawić prefiks i sufiks nicku:

    /set buflist.look.enabled off
    /bar hide nicklist
    /set weechat.look.buffer_time_format "%H:%M"
    /set weechat.look.prefix_align none
    /set weechat.look.align_end_of_lines prefix
    /set weechat.look.nick_suffix ">"
    /set weechat.look.nick_prefix "<"

Terminal 80x25, z domyślną konfiguracją:

    ┌────────────────────────────────────────────────────────────────────────────────┐
    │1.local     │Welcome on WeeChat channel!                                        │
    │  weechat   │16:27:16        --> | FlashCode (~flashcode@localhost)  │@FlashCode│
    │2.  #weechat│                    | has joined #weechat               │ bob      │
    │            │16:27:16         -- | Mode #weechat [+nt] by hades.arpa │          │
    │            │16:27:16         -- | Channel #weechat: 1 nick (1 op, 0 │          │
    │            │                    | voices, 0 normals)                │          │
    │            │16:27:18         -- | Channel created on Sun, 22 Mar    │          │
    │            │                    | 2020 16:27:16                     │          │
    │            │17:02:28        --> | bob (~bob_user@localhost) has     │          │
    │            │                    | joined #weechat                   │          │
    │            │17:03:12 @FlashCode | hi bob, you're the first user     │          │
    │            │                    | here, welcome on the WeeChat      │          │
    │            │                    | support channel!                  │          │
    │            │17:03:33        bob | hi FlashCode                      │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │                                                        │          │
    │            │[17:04] [2] [irc/local] 2:#weechat(+nt){2}                         │
    │            │[@FlashCode(i)] █                                                  │
    └────────────────────────────────────────────────────────────────────────────────┘

Terminal 80x25, po zmianach:

    ┌────────────────────────────────────────────────────────────────────────────────┐
    │Welcome on WeeChat channel!                                                     │
    │16:27 --> FlashCode (~flashcode@localhost) has joined #weechat                  │
    │16:27 -- Mode #weechat [+nt] by hades.arpa                                      │
    │16:27 -- Channel #weechat: 1 nick (1 op, 0 voices, 0 normals)                   │
    │16:27 -- Channel created on Sun, 22 Mar 2020 16:27:16                           │
    │17:02 --> bob (~bob_user@localhost) has joined #weechat                         │
    │17:03 <@FlashCode> hi bob, you're the first user here, welcome on the WeeChat   │
    │      support channel!                                                          │
    │17:03 <bob> hi FlashCode                                                        │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │                                                                                │
    │[17:04] [2] [irc/local] 2:#weechat(+nt){2}                                      │
    │[@FlashCode(i)] █                                                               │
    └────────────────────────────────────────────────────────────────────────────────┘

## 4. Przypisania klawiszy

### 4.1. Niektóre skróty klawiszowe (alt + klawisz) nie działają, dlaczego?

Jeśli używasz terminali jak xterm lub uxterm, niektóre skróty domyślnie nie będą działać. Możesz dodać następujące linie do pliku ~/.Xresources:

- dla xterm:

    XTerm*metaSendsEscape: true

- dla uxterm:

    UXTerm*metaSendsEscape: true

Następnie przeładować zasoby (`xrdb -override ~/.Xresources`) lub zrestartować X.

Jeśli używasz aplikacji Terminal na macOS włącz opcję "Use option as meta key" w menu Settings/Keyboard. Następnie możesz używać klawisza `Option` jako klawisza meta.

### 4.2. Niektóre przyciski w tym Enter nie działają, dlatego?

Jeśli używasz WeeChat < 4.0.0 z plikami konfiguracyjnymi stworzonymi przez dowolną wersję ≥ 4.0.0, nazwy przycisków stały się nieprawidłowe i wiele z nich nie będzie działać.
Żeby to naprawić zamknij WeeChat, usuń wszystkie sekcje `[key*]` z pliku weechat.conf i uruchom WeeChat ponownie: przywróci to domyślną konfigurację skrótów klawiszowych.

### 4.3. F11 maksymalizuje okno terminala, jak mogę przewijać listę nicków?

Klawisz `F11` jest często używany przez terminale do maksymalizacji okna, oraz `F11`/`F12` są domyślnie używane przez WeeChat do przewijania listy nicków.

Możesz przypisać inne klawisze, na przykład `Shift`+`F11` i `Shift`+`F12`, w WeeChat ≥ 4.0.0:

    /key bind shift-f11 /bar scroll nicklist * -100%
    /key bind shift-f12 /bar scroll nicklist * +100%

Innym rozwiązaniem jest włączenie obsługi myszy (`Alt`+`m`) i przewijanie listy za pomocą kółka myszy (zobacz pytania na temat obsługi myszy).

### 4.4. Jak mogę zmienić przypisania klawiszy?

Przypisania klawiszy można dostosować za pomocą komendy `/key`.

Domyślnie `Alt`+`k` pozwala pobrać kod klawiszy i umieścić go w wierszu poleceń.

### 4.5. Jakim skrótem można przejść do buforu 11 (lub o większym numerze)?

Skrót to `Alt`+`j` i dwie cyfry, na przykład `Alt`+`j`, `1`, `1` przejdzie do buforu 11.

Można również samemu stworzyć skrót, na przykład:

    /key bind meta-q /buffer *11

Listę domyślnych skrótów klawiszowych można znależć w Poradniku uzytkownika / Domyślne skróty klawiszowe ↗.

Aby przesjść do bufora o numerze ≥ 100, możesz zdefiniować trigger i następnie użyć komendy w stylu `/123` żeby przejść do bufora #123:

    /trigger add numberjump modifier "2000|input_text_for_buffer" "${tg_string} =~ ^/[0-9]+$" "=\/([0-9]+)=/buffer *${re:1}=" "" "" "none"

Dla łatwego przechodzenia między buforami możesz również zainstalować skrypt go.py:

    /script install go.py

### 4.6. Jak używać globalnej historii (zamiast historii buforu) za pomocą strzałek góra/dół?

Możesz przypisać strzałki w górę i dół do globalnej historii (domyślnie dla globalnej historii przypisane są klawisze `Ctrl`+`↑` oraz `Ctrl`+`↓`).

Przykład:

    /key bind up /input history_global_previous
    /key bind down /input history_global_next

Dla wersji WeeChat ≤ 3.8, należy podać kody klawiszy (naciśnij `Alt`+`k` następnie kombinacje klawiszy, aby zobaczyć ich kod):

    /key bind meta2-A /input history_global_previous
    /key bind meta2-B /input history_global_next

## 5. Obsługa myszy

### 5.1. Obsługa myszy w ogóle nie działa, co mogę zrobić?

Na samym początku należy włączyć obsługę myszy:

    /mouse enable

Jeśli to nie pomogło należy sprawdzić wartość zmiennej TERM w swojej powłoce (wynik komendy `echo $TERM` w swoim terminalu). W zależności od używanego terminfo, mysz może nie być wspierana.

Możesz sprawdzić wsparcie myszy w terminalu:

    printf '\033[?1002h'

Następnie kliknij pierwszy znak w terminalu (górny lewy róg). Powinieneś zobaczyć " !!#!!".

Aby wyłączyć wsparcie dla myszy w terminalu:

    printf '\033[?1002l'

### 5.2. Mysz nic nie robi dla X lub Y większych od 94 (lub 222), dlaczego?

Niektóre terminale wysyłają tylko znaki ISO dla położenia myszy, dlatego nie działa to dla X/Y większych dla 94 (lub 222).

Powinieneś użyć terminala wspierającego położenia UTF-8 dla myszy, jak rxvt-unicode.

### 5.3. Jak mogę zaznaczyć lub wkleić tekst w terminalu z włączoną obsługa myszy w WeeChat?

Kiedy obsługa myszy jest włączona w WeeChat, można użyć modyfikatora `Shift` do zaznaczania lub kliknać w terminalu, tak jak w przypadku wyłączonej obsługi myszy (w niektórych terminalach jak iTerm należy użyć `Alt` zamiast `Shift`).

## 6. IRC

### 6.1. Mam problemy podczas połączenia z serwerem używającym TLS, co mogę zrobić?

Jeśli używasz Mac macOS, musisz zainstalować `openssl` z Homebrew. Plik CA zostanie wygenerowany korzystając z systemowego keychaina.

Jeśli widzisz błędy gnutls, możesz użyć innej wielkości klucza Diffie-Hellman (domyślnie 2048):

    /set irc.server.example.tls_dhkey_size 1024

Jeśli widzisz błędy związanie z certyfikatami, możesz wyłączyć opcję "tls_verify" (należy jednak uważać, ponieważ połączenie będzie mniej bezpieczne):

    /set irc.server.example.tls_verify off

Jeśli serwer ma niewłaściwy certyfikat i wiesz jaki on powinien być, możesz podać sumę kontrolną (SHA-512, SHA-256 lub SHA-1):

    /set irc.server.example.tls_fingerprint 0c06e399d3c3597511dc8550848bfd2a502f0ce19883b728b73f6b7e8604243b

### 6.2. Podczas łączenia się z serwerem poprzez TLS widzę tylko błąd "TLS handshake failed", co mogę zrobić?

Możesz spróbować innego ciągu priorytetu, zamień "xxx" nazwą serwera:

    /set irc.server.xxx.tls_priorities "NORMAL:%COMPAT"

### 6.3. Jak mogę połączyć się z serwerem libera używając TLS?

Sprawdź czy masz zainstalowane cartyfikaty w systemie, zazwyczaj zapewnia je paczka o nazwie "ca-certificates".

Ustaw port serwera, TLS, następnie się połącz:

    /set irc.server.libera.addresses "irc.libera.chat/6697"
    /set irc.server.libera.tls on
    /connect libera

### 6.4. Jak połączyć się z serwerem wymagającym "oauth"?

Niektóre serwery jak twitch wymagają oauth do połączenia.

Oauth to po prostu hasło w postaci "oauth:hasło".

Możesz dodać taki serwer i połączyć się z nim za pomocą komend (zamień nazwę i adres na poprawne wartości):

    /server add nazwa irc.server.org -password=oauth:hasło
    /connect nazwa

### 6.5. Jak mogę się zidentyfikować przed wejściem na kanały?

Jeśli serwer wspiera SASL, możesz użyć tego zamiast wysyłać komendę do nickserva, na przykład:

    /set irc.server.libera.sasl_username "nick"
    /set irc.server.libera.sasl_password "xxxxxxx"

Jeśli serwer nie wspiera SASL, możesz dodać odstęp pomiędzy komendą a wejściem na kanały):

    /set irc.server.libera.command_delay 5

### 6.6. Jak mogę dodać/usunąć kanaly z opcji automatycznego wejścia?

Z WeeChat ≥ 3.5, możesz automatycznie śledzić kanały, na które wchodzisz i które opuszczasz w opcji serwera "autojoin".

Dla wszystkich serwerów:

    /set irc.server_default.autojoin_dynamic on

Dla pojedynczego serwera:

    /set irc.server.libera.autojoin_dynamic on

Możesz także dodać obecny kanał do opcji "autojoin" dla serwera za pomocą polecenia `/autojoin`:

    /autojoin add

Lub inny kanał:

    /autojoin add #test

Dostępne są również skrypty:

    /script search autojoin

### 6.7. Jaka jest różnica między komendami /ignore i /filter ?

Komenda `/ignore` jest komendą IRC, zatem odnosi się tylko do buforów IRC (serwery i kanały). Pozwala ignorować niektóre nicki lub hosty użytkowników serwera lub kanału (komendy nie stosuje się do treści wiadomości). Pasujące wiadomości są usuwane przez wtyczkę IRC przed wyświetleniem (nigdy ich nie zobaczysz i nie zostaną przywrócone po zaprzestaniu ignorowania).

Komenda `/filter` jest komendą WeeChat, można jej użyć do dowolnego bufora. Pozwala filtrować niektóre linie w buforach za pomocą tagów lub wyrażeń regularnych dla przedrostków i zawartości linii. Filtrowane linie są tylko ukrywane, nie usuwane, można je zobaczyć wyłączając filtry (domyślnie `Alt`+`=` zmienia stan filtrów).

### 6.8. Jak odfiltrować informację o join/part/quit i inne uciążliwe wiadomości na kanałach IRC?

Zobacz Poradnik użytkownika / Inteligentny filtr ↗.

### 6.9. Jak mogę filtrować wyświetlane wiadomości podczas wejścia na kanał IRC?

Możesz wybrać, które wiadomości są wyświetlane po wejściu na kanał za pomocą opcji irc.look.display_join_message (więcej informacji można uzyskać wykonując `/help irc.look.display_join_message`).

W celu ukrycia wiadomości (ale zachowując je w buforze), możesz je filtrować używając tagu (na przykład irc_329 dla daty utworzenia kanału). zobacz `/help filter` w celu uzyskania pomocy z filtrami.

### 6.10. Jak mogę filtrować informacje o przyznaniu voice (np na serwerze Bitlbee)?

Filtrowanie wiadomości o przyznaniu voice nie jest proste, ponieważ może on zostać nadany wraz z innymi atrybutami w jednej wiadomości IRC.

Zapewne chcesz to zrobić, ponieważ Bitlbee używa voice do wskazania nieobecnych użytkowników, oraz jesteś zasypywany takimi wiadomościami. Możesz to zmienić oraz pozwolić WeeChat używać specjalnego koloru dla nieobecnych nicków.

Dla Bitlbee ≥ 3, należy wykonać na kanale &bitlbee:

    channel set show_users online,away

Dla starszych wersji Bitlbee, należy wykonać na kanale &bitlbee:

    set away_devoice false

Aby dowiedzieć się jak sprawdzić nieobecność w WeeChat, spójrz na pytanie o nieobecnych osobach.

Jeśli napewno chcesz filtrować wiadomości o statusie voice, możesz użyć tej komendy, nie jest ona jednak doskonała (działa tylko jeśli pierwszy z modyfikowanych trybów to voice):

    /filter add hidevoices * irc_mode (\+|\-)v

### 6.11. Jak mogę zobaczyć kto jest aktualnie nieobecny ?

Należy ustawić opcję irc.server_default.away_check na wartość większą od zera (minuty pomiędzy sprawdzaniem czy nick jest nieobecny).

Możesz ustawić opcję irc.server_default.away_check_max_nicks w celu ustalenia sprawdzania nieobecności dla małych kanałów.

Na przykład, aby sprawdzać nieobecność nicków co 5, dla kanałów z maksymalnie 25 osobami:

    /set irc.server_default.away_check 5
    /set irc.server_default.away_check_max_nicks 25

### 6.12. Jak mogę zostać powiadomiony, jeśli ktoś będzie chciał przyciągnąć moją uwagę na kanale?

Istnieje domyślny trigger "beep" wysyłający sygnał BEL do terminala przy wyołaniu na kanale lub prywatnej wiadomości. Możesz skonfigurować swój terminal (lub multiplekser jak screen/tmux), aby wykonał polecenie lub odtworzył dźwięk po otrzymaniu sygnału BEL.

Lub możesz dodać komendę w triggerze "beep":

    /set trigger.trigger.beep.command "/print -beep;/exec -bg /ścieżka/do/komendy argumenty"

W starszych wersjach WeeChat, możesz użyć skryptu jak beep.pl lub launcher.pl.

Dla launcher.pl, należ przeprowadzić konfigurację:

    /set plugins.var.perl.launcher.signal.weechat_highlight "/ścieżka/do/komendy argumenty"

Inne podobne skrypty:

    /script search notify

### 6.13. Jak mogę wyłączyć podświetlenia dla konkretnych nicków?

Możesz użyć właściwości bufora hotlist_max_level_nicks_add ↗, do ustawienia maksymalnego poziomu hotlisty dla niektórych nicków, dla buforów lub grup buforów (jak serwery IRC).

W celu wyłączenia tylko podświetleń wystarczy ustawić ja na 2.

Dla obecnego bufora:

    /buffer setauto hotlist_max_level_nicks_add joe:2,mike:2

Dla wszystkich kanałów na serwerze "libera":

    /set weechat.buffer.irc.libera.*.hotlist_max_level_nicks_add joe:2,mike:2

### 6.14. Jak mogę zmienić docelowy bufor dla komendy w połączonym buforze (jak bufor z serwerami)?

Domyślna kombinacja to `Ctrl`+`x` (komenda: `/buffer switch`).

## 7. Pluginy / skrypty

### 7.1. Używam OpenBSD, WeeChat nie ładuje żadnych pluginów, co jest nie tak?

Pod OpenBSD, nazwy wtyczek kończą się ".so.0.0" (".so" dla Linuksa).

Musisz ustawić:

    /set weechat.plugin.extension ".so.0.0"
    /plugin autoload

### 7.2. Jak mogę instalować skrypty? Czy są one kompatybilne z innymi klientami IRC?

Możesz użyć komendy `/script` do instalacji i zarządzania skryptami (zobacz `/help script`).

Skrypty nie są kompatybilne z innymi klientami IRC.

### 7.3. Komenda "/script update" nie może odczytać skryptów, jak to naprawić?

Najpierw zapoznaj się z zagadnieniami dotyczącymi połączeń TLS znajdującymi się w tym dokumencie.

Jeśli to nie pomoże spróbuj ręcznie usunąć plik z listą skryptów (z poziomu powłoki):

    rm ~/.cache/weechat/script/plugins.xml.gz

Notka | Jeśli nie używasz katalogów XDG, lista skryptów znajduję się w: ~/.weechat/script/plugins.xml.gz.

Następnie ponownie zaktualizuj listę sktyptów w WeeChat:

    /script update

Jeśli w dalszym ciągu widzisz błąd musisz wyłączyć automatyczną aktualizację tego pliku w WeeChat i ściągnąć go ręcznie w celu zaktualizowania listy dostępnych skryptów. have to update manually the file yourself to get updates):

- w WeeChat:

    /set script.scripts.cache_expire -1

- w powłoce, z zainstalowanym programem curl:

    cd ~/.cache/weechat/script
    curl -O https://weechat.org/files/plugins.xml.gz

Jeśli używasz macOS i pobrany plik ma wielkość 0 bajtów, spróbuj ustawić poniższą zmianną w inicjalizującym powłokę w terminalu lub z linii poleceń przed uruchomieniem WeeChat:

    export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

### 7.4. Zainstalowałem słowniki aspell w systemie, jak mogę ich użyć bez restartowania WeeChat?

Musisz przeładować wtyczkę spell:

    /plugin reload spell

## 8. Ustawienia

### 8.1. Czy mogę ręcznie edytować pliki konfiguracyjne (*.conf)?

Możesz, ale NIE jest to zalecane.

Zaleca się użycie komendy `/set`:

- Możesz dopałnić nazwę i wartość opcji za pomocą klawisza `Tab` (lub `Shift`+`Tab` dla częściowego dopełnieina, przydatne dla nazw).

- wartość jest sprawdzana, w razie błędu wyświetlana jest wiadomość

- wartości zmieniane są od razu, nie trzeba retartować WeeChat ani nic takiego

Jeśli nadal chcesz ręcznie edytować pliki, powinieneś zachować ostrożność:

- jeśli wprowadzisz nieprawidłową wartość dla opcji, WeeChat wyświetli błąd przy ładowaniu i odrzuci błędną wartość (zostanie użyta wartość domyślna)

- jeśli WeeChat jet uruchomiony, należy wykonać komendę `/reload`, jeżeli jakieś ustawienia zostały zmienione ale nie zapisane za pomocą `/save`, zostaną utracone

### 8.2. Jak mogę zmusić WeeChat do zużywania mniejszej ilości pamięci?

W celu zmniejszenia używanej pamięci możesz zastosować się do poniższych rad:

- używać najnowsze stabilnej wersji (powinna mieć mniej wycieków pamięci niż starsze wersje)

- nie ładuj nieużywanych pluginów, np: buflist, fifo, logger, perl, python, ruby, lua, tcl, guile, javascript, php, spell, xfer (używana do DCC). Zobacz `/help weechat.plugin.autoload`.

- ładować tylko naprawdę używane skrypty

- nie ładuj systemowych certyfikatów jeśli TLS nie jest używane: wyłącz tą opcję: weechat.network.gnutls_ca_system.

- zmniejsz wartość dla opcji weechat.history.max_buffer_lines_number lub ustaw wartość opcji weechat.history.max_buffer_lines_minutes

- zmniejszyć wartość opcji weechat.history.max_commands

### 8.3. Jak mogę zmusić WeeChat do zużywania mniejszej mocy CPU?

Możesz skorzystać z tych samych porad jak dla memory, oraz tych:

- schowaj pasek "nicklist": `/bar hide nicklist` (`Alt`+`Shift`+`N`).

- wyłącz "buflist": `/buflist disable` (`Alt`+`Shift`+`B`).

- usuń wyświetlanie sekund w czasie na pasku statusu: `/set weechat.look.item_time_format "%H:%M"` (domyślna wartość)

- wyłącz automatyczne sprawdzanie poprawności wpisywanych słów w linii poleceń (o ile je włączyłeś): `/set spell.check.real_time off`

- ustaw zmienną TZ (na przykład: `export TZ="Europe/Warsaw"`), w celu zmniejszenia częstotliwości czytania pliku /etc/localtime

### 8.4. Mam paranoję na temat bezpieczeństwa, które ustawienia powinienem zmienić, żeby być bardziej bezpiecznym?

Wyłącz wiadomości o wyjściu z kanału i rozłączenia z serwerem:

    /set irc.server_default.msg_part ""
    /set irc.server_default.msg_quit ""

Wyłącz odpowiedzi na wszystkie zapytania CTCP:

    /set irc.ctcp.clientinfo ""
    /set irc.ctcp.source ""
    /set irc.ctcp.time ""
    /set irc.ctcp.version ""
    /set irc.ctcp.ping ""

Dla WeeChat < 4.1.0, automatyczne odpowiedzi są również domyślnie wysyłane dla innch zapytań CTCP i muszą zostać również wyłączone:

    /set irc.ctcp.finger ""
    /set irc.ctcp.userinfo ""

Wyładuj i wyłącz automatyczne ładowanie wtyczki "xfer" (używanej przez IRC DCC):

    /plugin unload xfer
    /set weechat.plugin.autoload "*,!xfer"

Zdefiniuj hasło i używaj bezpiecznych danych wszędzie gdzie możesz dla danych wrażliwych jak hasła: zobacz `/help secure` oraz `/help` na opcjach (czy możesz użyć bezpiecznych danych, jest to zaznaczone w pomocy). Zobacz również Poradniku użytkownika / Zabezpieczone dane ↗.

Na przykład:

    /secure passphrase xxxxxxxxxx
    /secure set libera_username username
    /secure set libera_password xxxxxxxx
    /set irc.server.libera.sasl_username "${sec.data.libera_username}"
    /set irc.server.libera.sasl_password "${sec.data.libera_password}"

### 8.5. Chcę się podzielić moją konfiguracją WeeChat, które pliki powinienem pokazać, a które nie?

Możesz się dzielić wszystkimi plikami konfiguracyjnymi *.conf oprócz sec.conf, który zawiera hasla zaszyfrowane twoim kluczem.

Niektóre inne pliki mogą zawierać poufne informacje jak hasła (jeśli nie są przetrzymywane w sec.conf za pomocą komendy `/secure`).

Przejrzyj Poradnik użytkownika / Pliki i foldery ↗, gdzie znajdziesz więcej informacji o plikach konfiguracyjnych.

### 8.6. Chcę przenieść WeeChat na inne urządzenie i zachować swoją konfigurację, co powinienem skompilować?

Najpierw sprawdź katalogi używane przez WeeChat za pomocą polecenia: `/debug dirs`.
Katalogi home/config i home/data muszą zostać skopiowane (wszystkie pliki i podkatalogi).

Na przykład jeśli używasz katalogów XDG (domyślnie dla WeeChat ≥ 3.2), katalogi te to `$HOME/.config/weechat` i `$HOME/.local/share/weechat`.
Jeśli używasz pojedynczego katalogu (domyślne dla WeeChat < 3.2) jest to katalog `$HOME/.weechat`.

Ważne | Wersja WeeChat na nowym urządzeniu musi być wyższa lub taka sama jak na obecnym. Przenoszenie konfiguracji do starszej wersji WeeChat NIE JEST WSPIERANE i może ją zepsuć, prowadząć do niestabilnego działania WeeChat.

Kroki:

1. Zamknij Weechat: `/quit` (lub `/upgrade -quit` jeśli chcesz przywrócić sesję, co zawiera zawartość wszystkich buforów).

2. Skopiuj wszystkie katalogi, podkatalogi i pliki na nowe urządzenie, zachowując ich nazwy i uprawnienia.

3. Opcjonalne: skopiuj dowolne pliki z poza tych katalogów, do których odnosisz się w swojej konfiguracji (nie zaleca się używania plików z poza katalogów WeeChat).

4. Uruchom WeeChat na nowym urządzeniu: `weechat` (lub `weechat --upgrade` jeśli zapisywałeś sesje).

## 9. Rozwój

### 9.1. Jak zgłaszać błędy, prosić o nowe możliwości lub wysyłać patche?

Zobacz tą strone ↗.

### 9.2. Kiedy uruchamiam WeeChat pod gdb dostaję komunikat o wątkach, co mogę z tym zrobić?

Podczas uruchamiania WeeChat pod gdb, można spotkać się z takim błędem:

    $ gdb /scieżka/do/weechat
    (gdb) run
    [Thread debugging using libthread_db enabled]
    Cannot find new threads: generic error

Żeby to naprawić, można użyć takiej komendy(należy zmienić ścieżki do libpthread oraz WeeChat na właściwe dla naszego systemu):

    $ LD_PRELOAD=/lib/libpthread.so.0 gdb /ścieżka/do/weechat
    (gdb) run

### 9.3. Jaka jest lista platform wspieranych przez WeeChat? Czy będzie przeportowany na inne systemy operacyjne?

WeeChat działa dobrze na większości systemów Linux/BSD, GNU/Hurd, macOS i Windowsie (Cygwin i Windows Subsystem for Linux).

Robimy co w naszej mocy, aby WeeChat działał na tylu platformach ile to tylko możliwe. Mile widziana jest pomoc w testowaniu dla systemów, których nie mamy.

### 9.4. Chcę pomóc programistą WeeChat. Co mogę zrobić?

Jest wiele zadań do zrobienia (testowanie, kod, dokumentacja, …​)

Proszę odezwij się do nas na IRCu albo mailem, zobacz na stronę wsparcia ↗.

### 9.5. Czy mogę dać pieniądze albo inne rzeczy deweloperom WeeChat?

Możesz dać nam pieniądze na pomoc w rozwoju. Szczegóły można znaleźć na stronie dotacji ↗.