From: xf0r3m
@@ -10947,10 +10947,305 @@ KeyRelease event, serial 37, synthetic NO, window 0x3800001,
i przesuniÄcie kursora. NastÄpnie naciÅniÄto dwa klawisze na
klawiaturze. W polu root otrzymamy wspóÅrzÄdne kursa myszy
na ekranie. Natomiast przed tym polem znajdujÄ
siÄ wspóÅrzÄdne
- wzglÄdem okna otwartego przez polecenie xev
-
-
-
+ wzglÄdem okna otwartego przez polecenie xev. W przypadku
+ naciÅniÄtych na klawiszy istotnÄ
informacjÄ
zwracanÄ
przez to
+ polecenie jest keycode, który
+ pozwoli nam na zmianÄ mapowania klawiatury, co może byÄ przydatne
+ przy komputerach firmy Apple, zamieniajÄ
c na ich klawiaturach
+ klawisze Command z Option. W tych klawiaturach
+ klawisz Option peÅni rolÄ klawisza Alt, zatem
+ po zmianie mapowania, klawiatura funkcjonalnie bÄdzie przypinaÄ
+ każdÄ
innÄ
.
+
+
+ CiekawÄ
opcjÄ
polecenia xev jest
+ -id identyfikator. Pozwala ona na
+ podanie identyfikatora okna (możnÄ
go uzyskaÄ, za pomocÄ
polecenia
+ xwininfo), z którego polecenie
+ xev bÄdzie odczytywaÄ zdarzenia.
+
+ 13.4.5. Ustawianie preferencji i dane wejÅciowe serwera X
+
+ System wyÅwietlania Xorg oraz jego serwer zapewniajÄ
kilka
+ możliwych metod na zmianÄ preferencji, a niektóre z nich mogÄ
nawet
+ nie zadziaÅaÄ. JednÄ
ze zmian jakie możemym chceÄ przeprowadziÄ jest
+ wspomniana wczeÅniej zmiana mapowania, które można przeprowadziÄ na
+ dwa sposoby, albo zmiany sÄ
maÅe i wprowadzane na obecnym mapowaniu
+ przy użyciu polecenia
+ xmodmap albo utworzenie nowego
+ mapowania, skomplowania go za pomocÄ
polecenia
+ xkbcomp oraz zaÅadowania i
+ aktywacji przy użyciu polecenia
+ setxkbmap. Za pomocÄ
tych poleceÅ
+ możemy zmieniaÄ mapowania wiÄkszoÅci klawiszy, jak i mamy możliwoÅÄ
+ definicji mapowaÄ dla każdej podÅÄ
czonej klawiatury.
+
+
+ Innym ustawieniem, które możemy chceÄ zmieniÄ jest kolejnoÅÄ klawiszy
+ przy myszy. W przypadku osób leworÄcznych podstawowy przypisk (LPM,
+ dla osób praworÄcznych mieÅci skrajnie po lewej stronie) powinien
+ znajdowaÄ sie po drugiej stronie urzÄ
dzenia (skrajnie po lewej).
+ Takiej zamiany możemy dokonaÄ z pomocÄ
+ xinput. Na poniższym przykÅadzie
+ pokazano w jaki sposób dostosowaÄ myszkÄ dla osób leworÄcznych.
+
+
+xf0r3m@vm-cffa62e:~$ xinput --set-button-map dev 3 2 1
+
+
+ Gdzie dev jest identyfikatorem
+ urzÄ
dzenia. Po podaniu informacji o urzÄ
dzeniu wskazujemy kolejnoÅÄ
+ klawiszy. Jednak skÄ
d można wziÄ
Ä taki identyfikator?
+
+
+ Aby poznaÄ urzÄ
dzenia wejsciowe podÅÄ
czone do komputera z dystrybucjÄ
+ linuksa, na której wykorzystywany jest serwer wyÅwietlania X,
+ należy użyÄ wyżej wymienionego polecenia
+ xinput.
+
+
+xf0r3m@vm-cffa62e:~$ xinput
+â¡ Virtual core pointer id=2 [master pointer (3)]
+â â³ Virtual core XTEST pointer id=4 [slave pointer (2)]
+â â³ JUCHEN USB Keyboard id=11 [slave pointer (2)]
+â â³ JUCHEN USB Keyboard id=12 [slave pointer (2)]
+â â³ Logitech G502 HERO Gaming Mouse id=13 [slave pointer (2)]
+â â³ Logitech G502 HERO Gaming Mouse Keyboard id=14 [slave pointer (2)]
+â â³ AlpsPS/2 ALPS GlidePoint id=17 [slave pointer (2)]
+⣠Virtual core keyboard id=3 [master keyboard (2)]
+ â³ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
+ â³ Power Button id=6 [slave keyboard (3)]
+ â³ Video Bus id=7 [slave keyboard (3)]
+ â³ Power Button id=8 [slave keyboard (3)]
+ â³ Sleep Button id=9 [slave keyboard (3)]
+ â³ JUCHEN USB Keyboard id=10 [slave keyboard (3)]
+ â³ Dell WMI hotkeys id=15 [slave keyboard (3)]
+ â³ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
+ â³ DELL Wireless hotkeys id=18 [slave keyboard (3)]
+ â³ JUCHEN USB Keyboard id=19 [slave keyboard (3)]
+ â³ Logitech G502 HERO Gaming Mouse Keyboard id=20 [slave keyboard (3)]
+
+
+ W przypadku mojego komputera, klawiatury posiadajÄ
identyfikatory
+ 10 lub 19 oraz 16, w przypadku myszy (wskaźnika) jest to 13 oraz 17.
+
+
+ Nie ma takiej potrzeby aby klienci mieli by nasÅuchiwaÄ zdarzeÅ na
+ (w tym przypadku) na trzech lub wiÄkszej iloÅci urzÄ
dzeÅ.
+ WykorzystujÄ
oni natomiast pojedyncze urzÄ
dzenia
+ rdzenia wirtualnego, dziÄki temu możemy podÅÄ
czyÄ
+ i korzystaÄ z wiÄcej niż jednej klawiatury i wiÄcej niż jednej
+ myszy. Nie mniej jednak, klienci mogÄ
korzystaÄ z rozszerzenia
+ X Input Extension w celu skupienia nasÅuchiwania na jednym
+ z nich, najczÄsciej wiekszoÅÄ z nich nie posiada w ogóle informacji
+ o tym rozszerzeniu.
+
+
+ PozostaÅymi preferencjami to ustawienia może byÄ tÅo ekranu
+ nazywane potocznie tÅem pulpitu, w tym przypadku możemy skorzystaÄ
+ z polecenia xsetroot, jednak
+ nie dziaÅa ono we wszystkich przypadkach. Lepszym rozwiÄ
zaniem może
+ byÄ użycie zewnÄtrznego programu feh, które de facto jest
+ przeglÄ
darkÄ
plików graficznych; czy ustawienia wygaszacza ekranu
+ lub funkcji DPMS (ang. Display Power Management Signaling)
+
+ 13.5. UsÅuga D-Bus
+
+ UsÅuga D-Bus jest mechanizm przekazywania
+ komunikatów, umożliwia ona wymianÄ informacji miÄdzy aplikacji
+ klienta, wykorzystujÄ
c do tego komunikacjÄ miÄdzy procesowÄ
. Jednak
+ aplikacjÄ wykorzystujÄ
jÄ
do powiadamiania o zdarzeniach systemowych
+ takich jaki np. podÅÄ
cznie pendrive-a do komputera. Proces
+ chcÄ
c wykorzystaÄ jÄ
do nasÅuchiwania zdarzeÅ muszÄ
poÅÄ
czyÄ siÄ
+ na poczÄ
tku z centralnym koncentratorem - demonem
+ dbus-daemon i zarejestrowaÄ w celu odbierania konkretych
+ rodzajów komunikatów. Dla przykÅadku inny monitor
+ udisks-daemon sprawdza stan systemu plików udev
+ pod kÄ
tem zdarzeÅ dyskowych i nastÄpnie wysyÅa je do
+ dbus-daemona, a on przesyÅa je dalej do aplikacji
+ zaintersowanych zdarzeniami tego typu.
+
+ 13.5.1. Instancja systemowa oraz instancja sessji
+
+ System D-Bus obecnie jest jednÄ
z ważniejszych czÄÅci
+ dystrybucji
+ Linuksa - kanaÅami komunikacji D-Bus dysponuje
+ systemd, a ze wzglÄdu na to, że jest on ÅciÅle powiÄ
zany ze
+ Årodowiskiem graficznym powoduje to konflikt natury projektowej.
+ RozwiÄ
zaniem okazaÅo siÄ podzielenie centralnego koncentratora na
+ dwa osobne procesy - instancjÄ systemowÄ
, która
+ uruchamiana jest podczas rozruchu przez program typu init.
+ Proces ten jest uruchamiany wówczas w raz z opcjÄ
--system i
+ dziaÅa z uprawnieniami użytkowanika usÅugi D-Bus, a procesy mogÄ
+ ÅÄ
czyÄ siÄ z niÄ
za pomocÄ
uniksowego gniazda.
+
+
+ Nie zależnie od instacji systemowej wystÄpuje
+ instancja sesji która jest uruchamiana wyÅÄ
cznie
+ w momencie startu Årodowiska graficznego i to z niÄ
ÅÄ
czÄ
siÄ
+ aplikacje.
+
+ 13.5.2. Monitorowanie komunikatów usÅugi D-Bus
+
+ W przypadku instancji systemowej, może dziaÄ siÄ nie wiele w
+ zależnoÅci od sprzÄtu na jakim pracujemy. Nie mniej jednak do
+ obserwacji komunikatów usÅugi D-Bus możemy wykorzystaÄ
+ dostÄpne polecenie jakie dbus-monitor
+ Wybóru instancji dokonujemyu za pomocÄ
odpowiedniej opcji:
+ instancja systemowa - --system oraz instancja sesji -
+ --session.
+
+
+ OsobiÅcie na swoim sprzÄcie za pomocÄ
monitorowania komunikatów
+ D-Bus zauważyÅem informacje odnoÅnie baterii oraz skanowania
+ sieci bezprzewodowych przez mój komputer.
+
+
+xf0r3m@laptop-0b3697e:~$ dbus-monitor --system
+...
+signal time=1712415292.734476 sender=:1.39 -> destination=(null destination)
+serial=3626 path=/org/freedesktop/UPower/devices/battery_BAT0;
+interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
+ string "org.freedesktop.UPower.Device"
+ array [
+ dict entry(
+ string "UpdateTime"
+ variant uint64 1712415292
+ )
+ dict entry(
+ string "Voltage"
+ variant double 8.388
+ )
+ ]
+ array [
+ ]
+signal time=1712415307.335665 sender=:1.8 -> destination=(null destination)
+serial=14104 path=/org/freedesktop/NetworkManager/Devices/3;
+interface=org.freedesktop.NetworkManager.Device.Wireless; member=AccessPointAdded
+ object path "/org/freedesktop/NetworkManager/AccessPoint/794"
+signal time=1712415307.335727 sender=:1.8 -> destination=(null destination)
+serial=14105 path=/org/freedesktop/NetworkManager/Devices/3;
+interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
+ string "org.freedesktop.NetworkManager.Device.Wireless"
+ array [
+ dict entry(
+ string "AccessPoints"
+ variant array [
+ object path "/org/freedesktop/NetworkManager/AccessPoint/348"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/349"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/766"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/787"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/788"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/792"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/793"
+ object path "/org/freedesktop/NetworkManager/AccessPoint/794"
+ ]
+ )
+ ]
+ array [
+ ]
+
+
+ W przypadku instancji sesji informacji jest znacznie wiÄcej, wystarczy
+ że zmienimy aktywne okno lub nacisniemy klawisz kontrol przy aktywnym
+ terminalu.
+
+
+xf0r3m@laptop-0b3697e:~$ dbus-monitor --session
+...
+error time=1712415718.701034 sender=:1.119 -> destination=:1.106
+error_name=org.xfce.Xfconf.Error.PropertyNotFound reply_serial=25086
+ string "WÅaÅciwoÅÄ â/shortcuts-no-menukeyâ nie istnieje na kanale âxfce4-terminalâ"
+method call time=1712415718.925428 sender=:1.106 -> destination=:1.119
+serial=25087 path=/org/xfce/Xfconf; interface=org.xfce.Xfconf; member=GetProperty
+ string "xfce4-terminal"
+ string "/shortcuts-no-menukey"
+error time=1712415718.926183 sender=:1.119 -> destination=:1.106
+error_name=org.xfce.Xfconf.Error.PropertyNotFound reply_serial=25087
+ string "WÅaÅciwoÅÄ â/shortcuts-no-menukeyâ nie istnieje na kanale âxfce4-terminalâ"
+
+ 13.6. Drukowanie
+
+ Drukowanie dokumentów w dystrybucjach linuksa, to wieloetapowy
+ proces:
+
+
+ Program odpowiedzialny za drukowanie może przekszataÅciÄ
+ drukowany dokument na format PostScript. Ten krok jest
+ opcjonalny. W przypadku braku konwersji program przesyÅa dokument do
+ serwera wydruku, dokument wówczas zostaje umieszczony w kolejce
+ wydruku. W momencie rozpoczÄcia procesu drukowania serwer wydruku
+ przesÅa dokument do filtra wydruku. W przypadku gdy dokument nie ma
+ formatu PostScript filtr wydruku może dokonaÄ konwersji.
+ JeÅli drukarka nie obsÅuguje formatu PostScript to przy
+ użyciu sterownika dokument zostaje skonwertowany do postacji
+ odpowiedniej dla urzÄ
dzenia drukujÄ
cego. Ze sterownika drukarki
+ zostajÄ
pobrane takie informacje jak źródÅo papieru czy ewentualny
+ dupleks - zostajÄ
one dodane do dokumentu. Na koniec serwer wydruku
+ wykorzystuje postprocesor aby wysÅaÄ dokument do drukarki.
+
+
+ Sam proces jest doÅÄ skomplikowany, ponieważ wykorzystuje siÄ on w
+ bardzo dużym stopniu na jÄzyku programowania PostScript.
+ JÄzyk ten peÅni rolÄ standardu drukowania w dystrybucjach Linuksa.
+
+ 13.6.1. CUPS
+
+ System wydruku w dystrybucjach jest CUPS, produkt firmy Apple, wiÄc
+ jest on także stosowany systemach macOS. Demonem tego system jest
+ cupsd. W raz system drukowania mamy dostÄpne polecenie
+ lpr, które może peÅniÄ rolÄ prostego
+ klienta pozwalajÄ
cego na wysÅanie plików do demona.
+
+
+ IstotnÄ
funkcjÄ
systemu CUPS jest implementacja protokoÅu IPP
+ (ang. Internet Print Protocol), wykorzystuje on port TCP/631 i jego
+ dziaÅanie opiera siÄ transakcje podobne do protokoÅu HTTP. System
+ CUPS można konfigurowaÄ za pomocÄ
przeglÄ
darki ÅÄ
czÄ
c siÄ z adresem
+ http://localhost:631. Użytkownikiem administracyjnym jest
+ root i hasÅo jest takie same jak do zalogowania siÄ na tego
+ użytkownika w systemie. WiÄkszoÅÄ serwerów wydruku obsÅuguje
+ protokóŠIPP, w tym również system MS Windows. Co umożliwia nam
+ tworznie drukarek sieciowych, które nie sÄ
domyÅlnie sieciowe.
+ To zadanie jednak wymaga nieco ingerencji, ponieważ domyÅlna
+ konfiguracja nie jest zbyt bezpieczna.
+
+
+ Konfiguracja drukarek w dystrybucjach Linuksa, jeÅli mówimy tu o
+ komputerze desktopowym zazwyczaj sprowadza siÄ dodania drukarki
+ przy użyciu specjalnego apletu w sekcji ustawieŠdla danego
+ Årodowiska graficznego. OczywiÅcie, jak w przypadku wiÄkszoÅci
+ zwykÅego sprzÄtu dostÄpnego dla ogóÅu problemem mogÄ
byÄ sterowniki
+ lub brak pliku PPD (wyjaÅnienie czym jest plik PPD znajduje siÄ
+ w podrozdziale 13.6.2). Z wÅasnego doÅwiadczenia wiem, że
+ z dystrybucjami Linuksa (przynajmniej z Debianem) dobrz dziaÅajÄ
+ drukarki firmy Kyocera (dawniej Kyocera-Mita) jeÅli nie dziaÅajÄ
+ plug and play to zapewne dostÄpny jest sterownik
+ wÅasnoÅciowy - w przypadku tych urzÄ
dzeÅ problemem może byÄ koszt
+ tonera (sÄ
to urzÄ
dzenia laserowe). UrzÄ
dzeniem domowym, z które
+ rzadko korzystam jest Canon Pixma TR4550 dziaÅa z Debianem
+ plug and play dużym plusem jest tego urzÄ
dzenia jest to,
+ że te tusze nie zasychajÄ
(przynajmniej oryginalne). Z racji tego
+ że to urzÄ
dzenie wielofunkcyjne różnież jest możliwoÅÄ skanowania
+ przez pakiet Sane.
+
+ 13.6.2. Konwersja formatów i filtry wydruku
+
+ WiÄkszoÅÄ tanich drukarek nie rozpoznaje formatów PostScript
+ ani PDF, aby móc znich korzystaÄ na dystrybucjach Linuksa niezbÄdna
+ jest konwersja formatu do tego okreÅlanego przez drukarkÄ.
+
+
+ System CUPS wysyÅa dokument do procesora RIP (ang. Raster Image
+ Processor), aby wygenerowaÄ bitmapÄ. Procesor RIP zawsze stosuje
+ program Ghostscript (gs) do
+ realizowanie wiÄkszoÅci zadaÅ. CzynnoÅÄ jest doÅÄ skomplikowana, gdyż
+ bitmapa musi byÄ dostowana do formatu drukarki. Sterowniki drukarki
+ używane przez CUPS sprawdzajÄ
plik PPD
+ (ang. PostScript Printer Definition) konkretnego urzÄ
dzenia,
+ aby okreÅliÄ takie ustawienia jak rozmiar papieru czy rozdzielczoÅÄ.
+
+
2022; COPYLEFT; ALL RIGHTS REVERSED;