1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
|
---
title: Capítulo 5. O sistema X Window
part: Parte I. Primeiros Passos
prev: books/handbook/ports
next: books/handbook/partii
showBookMenu: true
weight: 7
params:
path: "/books/handbook/x11/"
---
[[x11]]
= O sistema X Window
:doctype: book
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:sectnumoffset: 5
:partnums:
:source-highlighter: rouge
:experimental:
:images-path: books/handbook/x11/
ifdef::env-beastie[]
ifdef::backend-html5[]
:imagesdir: ../../../../images/{images-path}
endif::[]
ifndef::book[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
toc::[]
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]
ifndef::env-beastie[]
toc::[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]
[[x11-synopsis]]
== Sinopse
Uma instalação padrão do FreeBSD usando o bsdinstall não irá instalar automaticamente uma interface gráfica para o usuário. Este capítulo descreve como instalar e configurar o Xorg, que fornece o sistema X Window open source usado para fornecer um ambiente gráfico. Em seguida, descreve como encontrar e instalar um ambiente de área de trabalho ou um gerenciador de janelas.
[NOTE]
====
Os usuários que preferem um método de instalação que configure automaticamente o Xorg devem consultar https://www.furybsd.org[FuryBSD], https://ghostbsd.org[GhostBSD] ou https://www.midnightbsd.org[MidnightBSD].
====
Para obter maiores informações sobre o hardware de vídeo suportado pelo Xorg, consulte o web site http://www.x.org/[x.org].
Depois de ler este capítulo, você saberá:
* Quais são os vários componentes do Sistema X Window e como eles interoperam.
* Como instalar e configurar o Xorg.
* Como instalar e configurar vários gerenciadores de janelas e ambientes de desktop.
* Como usar fontes TrueType(TM) no Xorg.
* Como configurar seu sistema para usar um sistema de login gráfico (XDM).
Antes de ler este capítulo, você deve:
* Saber como instalar softwares adicionais de terceiros, conforme descrito em crossref:ports[ports, Instalando Aplicativos. Pacotes e Ports].
[[x-understanding]]
== Terminologia
Embora não seja necessário entender todos os detalhes dos vários componentes do Sistema X Window e como eles interagem, algum conhecimento básico desses componentes pode ser útil.
Servidor X::
O X foi projetado desde o início para ser centrado em rede e para adotar um modelo "cliente-servidor". Neste modelo, o "Servidor X" é executado no computador que possui o teclado, o monitor e o mouse conectados. A responsabilidade do servidor inclui tarefas como gerenciar o monitor, manipular a entrada do teclado e do mouse e manipular a entrada ou saída de outros dispositivos, como um tablet ou um projetor de vídeo. Isso confunde algumas pessoas, porque a terminologia X é exatamente o oposto do que eles esperam. Eles esperam que o "X server" seja a grande máquina poderosa no final das contas, e o "Ciente X" seja a máquina em sua mesa.
Cliente X::
Cada aplicativo X, como o XTerm ou o Firefox, é um "cliente". Um cliente envia mensagens para o servidor, como "Por favor, desenhe uma janela nessas coordenadas", e o servidor envia de volta mensagens como "O usuário apenas clicou no botão OK".
+
Em um ambiente doméstico ou de uma pequena empresa, o servidor X e os clientes X geralmente são executados no mesmo computador. Também é possível executar o servidor X em um computador menos potente e executar os aplicativos X em um sistema mais poderoso. Nesse cenário, a comunicação entre o cliente X e o servidor ocorre através da rede.
Gerenciador de janelas::
O X não dita como as janelas devem se parecer na tela, como movê-las com o mouse, quais teclas devem ser usadas para mover-se entre as janelas, como devem ficar as barras de título em cada janela, se elas têm ou não botões para fechar nelas e assim por diante. Em vez disso, o X delega essa responsabilidade para um gerenciador de janelas separado. Existem http://www.xwinman.org/[dezenas de gerenciadores de janelas] disponíveis. Cada gerenciador de janelas oferece uma aparência diferente: alguns oferecem suporte a desktops virtuais, alguns permitem pressionamentos de tecla personalizados para gerenciar a área de trabalho, alguns têm um botão "Iniciar" e alguns são personalizáveis, permitindo uma alteração completa da aparência da área de trabalho. Os gerenciadores de janelas estão disponíveis na categoria [.filename]#x11-wm# da coleção de ports.
+
Cada gerenciador de janelas usa um mecanismo de configuração diferente. Alguns esperam que o arquivo de configuração seja escrito à mão, enquanto outros fornecem ferramentas gráficas para a maioria das tarefas de configuração.
Ambiente de desktop::
O KDE e o GNOME são considerados ambientes de desktop, pois incluem um conjunto completo de aplicativos para executar tarefas comuns de desktop. Estes podem incluir pacotes de escritório, navegadores da web e jogos.
Política de foco::
O gerenciador de janelas é responsável pela política de foco do mouse. Essa política fornece alguns meios para escolher qual janela está recebendo ativamente as teclas digitadas e também deve indicar visivelmente qual janela está ativa no momento.
+
Uma política de foco é chamada "click-to-focus". Neste modelo, uma janela fica ativa ao receber um clique do mouse. Na política "focus-follows-mouse", a janela que está sob o ponteiro do mouse tem foco e o foco é alterado apontando para outra janela. Se o mouse estiver sobre a janela raiz, esta janela estará focada. No modelo "sloppy-focus", se o mouse for movido sobre a janela raiz, a janela usada mais recentemente ainda terá o foco. Com sloppy-focus, o foco só é alterado quando o cursor entra em uma nova janela, e não ao sair da janela atual. Na política de "click-to-focus", a janela ativa é selecionada pelo clique do mouse. A janela pode então ser destacada para aparecer na frente de todas as outras janelas. Todas as teclas digitadas serão direcionadas para esta janela, mesmo se o cursor for movido para outra janela.
+
Diferentes gerenciadores de janela suportam diferentes modelos de foco. Todos eles suportam click-to-focus, e a maioria deles também suporta outras políticas. Consulte a documentação do gerenciador de janelas para determinar quais modelos de foco estão disponíveis.
Widgets::
Widget é um termo para todos os itens na interface do usuário que podem ser clicados ou manipulados de alguma forma. Isso inclui botões, caixas de seleção, botões de opção, ícones e listas. Um kit de ferramentas de widget é um conjunto de widgets usado para criar aplicativos gráficos. Existem vários toolkits de widgets populares, incluindo o Qt, usado pelo KDE, e o GTK+, usado pelo GNOME. Como resultado, os aplicativos terão uma aparência e comportamentos diferentes, dependendo de qual kit de ferramentas de widget foi usado para criar o aplicativo.
[[x-install]]
== Instalando o Xorg
No FreeBSD, o Xorg pode ser instalado como um pacote ou port.
O pacote binário pode ser instalado rapidamente, mas com menos opções de personalização:
[source,shell]
....
# pkg install xorg
....
Para compilar e instalar a partir da Coleção de Ports:
[source,shell]
....
# cd /usr/ports/x11/xorg
# make install clean
....
Qualquer uma dessas instalações resulta no sistema completo do Xorg sendo instalado. Pacotes binários são a melhor opção para a maioria dos usuários.
Uma versão menor do sistema X adequada para usuários experientes está disponível em package:x11/xorg-minimal[]. A maioria dos documentos, bibliotecas e aplicativos não será instalada. Algumas aplicações requerem esses componentes adicionais para funcionarem.
[[x-config]]
== Configuração do Xorg
[[x-config-quick-start]]
=== Inicio Rápido
O Xorg suporta as placas de vídeo, teclados e dispositivos USB mais comuns.
[TIP]
====
Placas de vídeo, monitores e dispositivos de entrada são detectados automaticamente e não exigem nenhuma configuração manual. Não crie o [.filename]#xorg.conf# ou execute o passo `-configure` a menos que a configuração automática falhe.
====
[.procedure]
====
. Se o Xorg tiver sido usado neste computador antes, mova ou remova qualquer arquivo de configuração existente:
+
[source,shell]
....
# mv /etc/X11/xorg.conf ~/xorg.conf.etc
# mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
....
+
. Adicione o usuário que executará o Xorg ao grupo `video` ou `wheel` para ativar a aceleração 3D quando disponível. Para adicionar o usuário _jru_ ao grupo que estiver disponível:
+
[source,shell]
....
# pw groupmod video -m jru || pw groupmod wheel -m jru
....
+
. O gerenciador de janelas twm é incluído por padrão. Ele é chamado quando o Xorg se inicia:
+
[source,shell]
....
% startx
....
+
. Em algumas versões mais antigas do FreeBSD, o console do sistema deve ser definido como man:vt[4] antes que a volta para o console de texto funcione corretamente. Veja <<x-config-kms>>.
====
[[x-config-user-group]]
=== Grupo de Usuários para Vídeo Acelerado
O acesso ao [.filename]#/dev/dri# é necessário para permitir a aceleração 3D nas placas de vídeo. Geralmente é mais simples adicionar o usuário que estará executando o X no grupo `video` ou no `wheel`. Aqui, o man:pw[8] é usado para adicionar o usuário _slurms_ ao grupo `video`, ou ao grupo `wheel` se não houver nenhum grupo `video`:
[source,shell]
....
# pw groupmod video -m slurms || pw groupmod wheel -m slurms
....
[[x-config-kms]]
=== Configuração do Modo Kernel (KMS)
Quando o computador alterna a exibição do console para uma resolução de tela mais alta para o X, ele deve definir o _modo_ da saída de vídeo. Versões recentes do Xorg usam um sistema dentro do kernel para fazer essas mudanças de modo mais eficiente. Versões mais antigas do FreeBSD usam o man:sc[4], que não tem conhecimento do sistema KMS. O resultado final é que depois de fechar o X, o console do sistema fica em branco, embora ainda esteja funcionando. O console man:vt[4] mais recente evita esse problema.
Adicione esta linha ao [.filename]#/boot/loader.conf# para ativar o man:vt[4]:
[.programlisting]
....
kern.vty=vt
....
[[x-config-files]]
=== Arquivos de Configuração
A configuração manual geralmente não é necessária. Por favor, não crie manualmente arquivos de configuração, a menos que a autoconfiguração não funcione.
[[x-config-files-directory]]
==== Diretório
O Xorg procura em vários diretórios por arquivos de configuração. O [.filename]#/usr/local/etc/X11/# é o diretório recomendado para esses arquivos no FreeBSD. Usar esse diretório ajuda a manter os arquivos dos aplicativos separados dos arquivos do sistema operacional.
Armazenar arquivos de configuração no diretório legado [.filename]#/etc/X11/# ainda funciona. No entanto, isso combina arquivos de aplicativos com os arquivos básicos do FreeBSD e não é recomendado.
[[x-config-files-single-or-multi]]
==== Arquivos Únicos ou Múltiplos
É mais fácil usar multiplos arquivos em que cada um controla uma configuração específica ao invés do único e tradicional [.filename]#xorg.conf#. Esses arquivos são armazenados no subdiretório [.filename]#xorg.conf.d/# do diretório principal do arquivo de configuração. O caminho completo é tipicamente [.filename]#/usr/local/etc/X11/xorg.conf.d/#.
Exemplos desses arquivos serão mostrados posteriormente nesta seção.
O tradicional e único arquivo [.filename]#xorg.conf# ainda funciona, mas não é tão claro e nem tão flexível quanto vários arquivos no subdiretório [.filename]#xorg.conf.d/#.
[[x-config-video-cards]]
=== Placas de Vídeo
Devido as mudanças feitas nas versões recentes do FreeBSD, agora é possível usar drivers gráficos fornecidos pelo Framework do Ports, assim como pelos pacotes. Assim sendo, os usuários podem usar um dos seguintes drivers disponíveis em package:graphics/drm-kmod[].
[[x-config-video-cards-ports]]
Intel KMS driver::
A aceleração 2D e 3D é suportada na maioria das placas gráficas do driver Intel KMS fornecidas pela Intel.
+
Nome do driver: `i915kms`
+
A aceleração 2D e 3D é suportada na maioria das placas gráficas de driver Radeon KMS mais antigas fornecidas pela AMD.
+
Nome do Driver: `radeonkms`
+
A aceleração 2D e 3D é suportada nas mais recentes placas gráficas do driver AMD KMS fornecidas pela AMD.
+
Nome do Driver: `amdgpu`
+
Para referência, veja https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units[] ou https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units[] para uma lista das GPUs suportadas.
[[x-config-video-cards-intel]]
Intel(TM)::
A aceleração 3D é suportada na maioria dos chipsets gráficos da Intel(TM) até o Ivy Bridge (HD Graphics 2500, 4000 e P4000), incluindo Iron Lake (HD Graphics) e Sandy Bridge (HD Graphics 2000) .
+
Nome do driver: `intel`
+
Para referência, veja https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units[].
[[x-config-video-cards-radeon]]
AMD(TM) Radeon::
Aceleração 2D e 3D é suportada em placas Radeon das mais antigas até a série HD6000.
+
Nome do Driver: `radeon`
+
Para referência, veja https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units[].
[[x-config-video-cards-nvidia]]
NVIDIA::
Vários drivers da NVIDIA estão disponíveis na categoria [.filename]#x11# da Coleção de Ports. Instale o driver que corresponde à sua placa de vídeo.
+
Para referência, veja https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units[].
[[x-config-video-cards-hybrid]]
Gráficos Híbridos de Combinação::
Alguns notebooks adicionam unidades de processamento gráfico adicionais àquelas incorporadas ao chipset ou ao processador. O _Optimus_ combina o hardware da Intel(TM) e da NVIDIA. O _Switchable Graphics_ ou _Hybrid Graphics_ são uma combinação dos processadores Intel(TM) ou AMD(TM) e uma GPUAMD(TM) Radeon.
+
As implementações desses sistemas gráficos híbridos variam e o Xorg no FreeBSD não é capaz de controlar todas as versões deles.
+
Alguns computadores fornecem uma opção no BIOS para desativar um dos adaptadores gráficos ou selecionar um modo _discreto_ que pode ser usado com um dos drivers de placa de vídeo padrão. Por exemplo, às vezes é possível desativar a GPU NVIDIA em um sistema Optimus. O vídeo Intel(TM) pode então ser usado com um driver Intel(TM).
+
Configurações de BIOS dependem do modelo do computador. Em algumas situações, ambas GPUs podem ser deixadas ativadas, mas criar um arquivo de configuração que use apenas a GPU principal na seção `Device` é o suficiente para tornar esse sistema funcional.
[[x-config-video-cards-other]]
Outras placas de vídeo::
Drivers para algumas placas de vídeo menos comuns podem ser encontrados no diretório [.filename]#x11-drivers# da Coleção de Ports.
+
PLacas que não são suportadas por um driver específico ainda podem ser usadas com o driver package:x11-drivers/xf86-video-vesa[]. Este driver é instalado pelo package:x11/xorg[]. Ele também pode ser instalado manualmente como package:x11-drivers/xf86-video-vesa[]. O Xorg tenta usar este driver quando um driver específico não é encontrado para a placa de vídeo.
+
O package:x11-drivers/xf86-video-scfb[] é um driver de vídeo não especializado similar que funciona em muitos computadores UEFI e ARM(TM).
[[x-config-video-cards-file]]
Configurando o driver de vídeo em um arquivo::
Para definir o driver Intel(TM) em um arquivo de configuração:
+
[[x-config-video-cards-file-intel]]
.Selecione o driver de vídeo Intel(TM) em um arquivo
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-intel.conf#
[.programlisting]
....
Section "Device"
Identifier "Card0"
Driver "intel"
# BusID "PCI:1:0:0"
EndSection
....
Se mais de uma placa de vídeo estiver presente, o identificador `BusID` pode ser descomentado e configurado para selecionar a placa desejada. Uma lista de barramento de placa de vídeo ID pode ser exibida com `pciconf -lv | grep -B3 display`.
====
+
Para definir o driver Radeon em um arquivo de configuração:
+
[[x-config-video-cards-file-radeon]]
.Selecione o driver de vídeo Radeon em um arquivo
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf#
[.programlisting]
....
Section "Device"
Identifier "Card0"
Driver "radeon"
EndSection
....
====
+
Para definir o driver VESA em um arquivo de configuração:
+
[[x-config-video-cards-file-vesa]]
.Selecione o driver de vídeo VESA em um arquivo
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf#
[.programlisting]
....
Section "Device"
Identifier "Card0"
Driver "vesa"
EndSection
....
====
+
Para definir o driver `scfb` para uso com um computador UEFI ou ARM(TM):
+
[[x-config-video-cards-file-scfb]]
.Selecione o driver de vídeo `scfb` em um arquivo
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf#
[.programlisting]
....
Section "Device"
Identifier "Card0"
Driver "scfb"
EndSection
....
====
[[x-config-monitors]]
=== Monitores
Quase todos os monitores suportam o padrão Extended Display Identification Data (EDID). O Xorg usa o EDID para se comunicar com o monitor e detectar as resoluções e taxas de atualização suportadas. Em seguida, seleciona a combinação mais adequada de configurações para usar com esse monitor.
Outras resoluções suportadas pelo monitor podem ser escolhidas definindo a resolução desejada nos arquivos de configuração, ou após o servidor X ter sido iniciado com man:xrandr[1].
[[x-config-monitors-xrandr]]
Usando man:xrandr[1]::
Execute o man:xrandr[1] sem nenhum parâmetro para ver uma lista de saídas de vídeo e modos de monitor detectados:
+
[source,shell]
....
% xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
1920x1200 59.95*+
1600x1200 60.00
1280x1024 85.02 75.02 60.02
1280x960 60.00
1152x864 75.00
1024x768 85.00 75.08 70.07 60.00
832x624 74.55
800x600 75.00 60.32
640x480 75.00 60.00
720x400 70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
....
+
Isso mostra que a saída `DVI-0` está sendo usada para exibir uma resolução de tela de 1920x1200 pixels a uma taxa de atualização de cerca de 60 Hz. Os monitores não estão conectados aos conectores `DisplayPort-0` e `HDMI-0`.
+
Qualquer um dos outros modos de exibição pode ser selecionado com man:xrandr[1]. Por exemplo, para mudar para 1280x1024 a 60 Hz:
+
[source,shell]
....
% xrandr --mode 1280x1024 --rate 60
....
+
Uma tarefa comum é usar a saída de vídeo externa em um notebook para um projetor de vídeo.
+
O tipo e a quantidade de conectores de saída variam entre os dispositivos, e o nome dado a cada saída varia de driver para driver. O que um driver chama de `HDMI-1`, outro pode chamar de `HDMI1`. Portanto, o primeiro passo é executar man:xrandr[1] para listar todas as saídas disponíveis:
+
[source,shell]
....
% xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
1366x768 60.04*+
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
VGA1 connected (normal left inverted right x axis y axis)
1280x1024 60.02 + 75.02
1280x960 60.00
1152x864 75.00
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00
720x400 70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
....
+
Quatro saídas foram encontradas: os conectores `LVDS1` e `VGA1`, `HDMI1` e `DP1` do painel interno.
+
O projetor foi conectado à saída `VGA1`. O man:xrandr[1] agora é usado para definir essa saída para a resolução nativa do projetor e adicionar o espaço adicional à direita da área de trabalho:
+
[source,shell]
....
% xrandr --output VGA1 --auto --right-of LVDS1
....
+
A opção `--auto` escolhe a resolução e a taxa de atualização detectadas pelo EDID. Se a resolução não for detectada corretamente, um valor fixo pode ser fornecido com `--mode` em vez da instrução `--auto`. Por exemplo, a maioria dos projetores pode ser usada com uma resolução de 1024x768, que é definida com `--mode 1024x768`.
+
O man:xrandr[1] geralmente é executado a partir do [.filename]#.xinitrc# para definir o modo apropriado quando o X é iniciado.
[[x-config-monitors-files]]
Configurando a resolução do monitor em um arquivo::
Para definir uma resolução de tela de 1024x768 em um arquivo de configuração:
+
.Defina a resolução de tela em um arquivo
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf#
[.programlisting]
....
Section "Screen"
Identifier "Screen0"
Device "Card0"
SubSection "Display"
Modes "1024x768"
EndSubSection
EndSection
....
====
+
Os poucos monitores que não possuem EDID podem ser configurados setando o `HorizSync` e o `VertRefresh` para o intervalo de frequências suportado pelo monitor.
+
.Configurando Manualmente as Frequências do Monitor
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf#
[.programlisting]
....
Section "Monitor"
Identifier "Monitor0"
HorizSync 30-83 # kHz
VertRefresh 50-76 # Hz
EndSection
....
====
[[x-config-input]]
=== Dispositivos de Entrada
[[x-config-input-keyboard]]
==== Teclados
[[x-config-input-keyboard-layout]]
Layout do Teclado::
A localização padronizada das teclas em um teclado é chamada de _layout_. Layouts e outros parâmetros ajustáveis são listados em man:xkeyboard-config[7].
+
Um layout dos Estados Unidos é o padrão. Para selecionar um layout alternativo, defina as opções `XkbLayout` e `XkbVariant` em um `InputClass`. Isso será aplicado a todos os dispositivos de entrada que correspondam à classe.
+
Este exemplo seleciona um layout de teclado Francês.
+
.Definindo um layout de teclado
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/keyboard-fr.conf#
[.programlisting]
....
Section "InputClass"
Identifier "KeyboardDefaults"
MatchIsKeyboard "on"
Option "XkbLayout" "fr"
EndSection
....
====
+
.Definindo vários layouts de teclado
[example]
====
Define os layouts de teclado para Estados Unidos, Espanhol e Ucraniano. Alterne entre esses layouts pressionando kbd:[Alt+Shift]. O package:x11/xxkb[] ou package:x11/sbxkb[] pode ser usado para um melhor controle da mudança de layout e dos indicadores do layout atual.
[.filename]#/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf#
[.programlisting]
....
Section "InputClass"
Identifier "All Keyboards"
MatchIsKeyboard "yes"
Option "XkbLayout" "us, es, ua"
EndSection
....
====
[[x-config-input-keyboard-zap]]
Fechando o Xorg pelo teclado::
X pode ser fechado com uma combinação de teclas. Por padrão, essa combinação de teclas não está definida porque entra em conflito com os comandos do teclado para alguns aplicativos. Ativar essa opção requer alterações na seção `InputDevice` do teclado:
+
.Ativando o fechamento de X pelo teclado
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf#
[.programlisting]
....
Section "InputClass"
Identifier "KeyboardDefaults"
MatchIsKeyboard "on"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
....
====
[[x11-input-mice]]
==== Mouse e Dispositivos Similares
[IMPORTANT]
====
Se ao usar package:xorg-server[] 1.20.8 ou maior no FreeBSD 12.1 e não usar man:moused[8], adicione `kern.evdev.rcpt_mask=12` ao arquivo [.filename]#/etc/sysctl.conf#:
====
Muitos parâmetros do mouse podem ser ajustados com opções de configuração. Veja man:mousedrv[4] para obter uma lista completa.
[[x11-input-mice-buttons]]
Botões do Mouse::
O número de botões em um mouse pode ser definido na seção `InputDevice` do [.filename]#xorg.conf#. Para definir o número de botões para 7:
+
.Definindo o número de botões do mouse
[example]
====
[.filename]#/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf#
[.programlisting]
....
Section "InputDevice"
Identifier "Mouse0"
Option "Buttons" "7"
EndSection
....
====
[[x-config-manual-configuration]]
=== Configuração manual
Em alguns casos, a autoconfiguração do Xorg não funciona com alguns hardwares específicos, ou uma configuração diferente é desejada. Para esses casos, um arquivo de configuração personalizado pode ser criado.
[WARNING]
====
Não crie arquivos de configuração manualmente, a menos que seja necessário. A configuração manual desnecessária pode impedir o funcionamento adequado.
====
Um arquivo de configuração pode ser gerado pelo Xorg baseado no hardware detectado. Esse arquivo geralmente é um ponto de partida útil para configurações personalizadas.
Gerando um arquivo [.filename]#xorg.conf#:
[source,shell]
....
# Xorg -configure
....
O arquivo de configuração é salvo em [.filename]#/root/xorg.conf.new#. Faça as alterações desejadas e teste esse arquivo(usando `-retro` assim será exibido um fundo visível) com:
[source,shell]
....
# Xorg -retro -config /root/xorg.conf.new
....
Após a nova configuração ter sido ajustada e testada, ela pode ser dividida em arquivos menores no diretorio, [.filename]#/usr/local/etc/X11/xorg.conf.d/#.
[[x-fonts]]
== Usando fontes no Xorg
[[type1]]
=== Fontes Type1
As fontes padrões que vem com o Xorg não são adequadas para muitas aplicações desktop. As fontes grandes aparecem irregulares e com aparência não profissional, e as fontes pequenas são quase ilegíveis. Contudo existem muitas fontes Type1 (PostScript(TM)) gratuitas de alta qualidade prontas para uso no Xorg. Por exemplo, a coleção de fontes URW (package:x11-fonts/urwfonts[]) inclui versões de alta qualidade de fontes type1 padrão (Times Roman(TM), Helvetica(TM), Palatino(TM) e outras). A coleção Freefonts (package:x11-fonts/freefonts[]) inclui muito mais fontes, mas a maioria delas direcionadas para uso em softwares gráficos como o Gimp, e não são tão completas para servir como fontes de tela. Além disso, o Xorg pode ser configurado para usar fontes TrueType(TM) com um minimo esforço. Para maiores detalhes sobre isso veja a página de manual do man:X[7] ou <<truetype>>.
Para instalar as coleções de fontes Type1 usando pacotes binários, execute os seguintes comandos:
[source,shell]
....
# pkg install urwfonts
....
Como alternativa, para compilar a partir da coleção de Ports, execute os seguintes comandos:
[source,shell]
....
# cd /usr/ports/x11-fonts/urwfonts
# make install clean
....
Proceda da mesma forma com a freefont ou outras coleções. Para que o servidor X detecte essas fontes, adicione uma linha apropriada ao arquivo de configuração do servidor X ([.filename]#/etc/X11/xorg.conf#):
[.programlisting]
....
FontPath "/usr/local/shared/fonts/urwfonts/"
....
Alternativamente, na linha de comando de execução da sessão X:
[source,shell]
....
% xset fp+ /usr/local/shared/fonts/urwfonts
% xset fp rehash
....
Isso funcionará, mas será perdido quando a sessão X for fechada, a menos que seja adicionada ao arquivo de inicialização ([.filename]#~/.xinitrc# para uma sessão `startx` normal ou [.filename]#~/.xsession# ao efetuar login através de um gerenciador de login gráfico como o XDM). Uma terceira forma é usar o novo [.filename]#/usr/local/etc/fonts/local.conf#, como demonstrado em <<antialias>>.
[[truetype]]
=== Fontes TrueType(TM)
O Xorg tem suporte nativo para renderizar fontes TrueType(TM). Existem dois módulos diferentes que podem ativar essa funcionalidade. O módulo freetype é usado neste exemplo porque é mais consistente com os outros backends de renderização de fonte. Para habilitar o módulo freetype, basta adicionar a seguinte linha à seção `"Module"` do [.filename]#/etc/X11/xorg.conf#.
[.programlisting]
....
Load "freetype"
....
Agora crie um diretório para as fontes TrueType(TM) (por exemplo, [.filename]#/usr/local/shared/fonts/TrueType#) e copie todas as fontes TrueType(TM) para este diretório. Tenha em mente que as fontes TrueType(TM) não podem ser obtidas diretamente de um Apple(TM)Mac(TM); elas devem estar no formato UNIX(TM)/MS-DOS(TM)/Windows(TM) para uso pelo Xorg. Uma vez que os arquivos foram copiados para este diretório, use mkfontdir para criar um [.filename]#fonts.dir#, para que o renderizador de fontes do X saiba que esses novos arquivos foram instalados. O `mkfontdir` pode ser instalado como um pacote binário com o comando:
[source,shell]
....
# pkg install mkfontdir
....
Em seguida, crie um índice de arquivos de fontes X em um diretório:
[source,shell]
....
# cd /usr/local/shared/fonts/TrueType
# mkfontdir
....
Agora adicione o diretório TrueType(TM) ao caminho da fonte. Isso é exatamente o mesmo descrito em <<type1>>:
[source,shell]
....
% xset fp+ /usr/local/shared/fonts/TrueType
% xset fp rehash
....
ou adicione uma linha de `FontPath` ao [.filename]#xorg.conf#.
Agora, o Gimp, o Apache OpenOffice e todos os outros aplicativos X devem reconhecer as fontes TrueType(TM) instaladas. Fontes extremamente pequenas (como o texto em uma tela de alta resolução em uma página da Web) e fontes extremamente grandes (dentro do StarOffice(TM)) ficarão muito melhores agora.
[[antialias]]
=== Fontes com Anti-Alias
Todas as fontes do Xorg que são encontradas em [.filename]#/usr/local/shared/fonts/# e [.filename]#~/.fonts/# são automaticamente disponibilizadas para anti-aliasing para aplicativos compatíveis com Xft-aware. Os aplicativos mais recentes são compatíveis com o Xft-aware, incluindo o KDE, o GNOME e o Firefox.
Para controlar quais fontes são anti-aliased, ou para configurar as propriedades do anti-alias, crie (ou edite, se já existir) o arquivo [.filename]#/usr/local/etc/fonts/local.conf#. Vários recursos avançados do sistema de fontes Xft podem ser ajustados usando este arquivo; Esta seção descreve apenas algumas possibilidades simples. Para maiores detalhes, por favor veja man:fonts-conf[5].
Este arquivo deve estar no formato XML. Preste muita atenção ao uso de letras maiusculas e minusculas e certifique-se de que todas as tags estejam corretamente fechadas. O arquivo começa com o cabeçalho XML usual seguido por uma definição DOCTYPE e, em seguida, a tag `<fontconfig>`:
[.programlisting]
....
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
....
Como dito anteriormente, todas as fontes em [.filename]#/usr/local/shared/fonts/# e [.filename]#~/.fonts/# já estão disponíveis para aplicativos Xft-aware. Para adicionar outro diretório fora dessas duas árvores de diretórios, adicione uma linha como essa a [.filename]#/usr/local/etc/fonts/local.conf#:
[.programlisting]
....
<dir>/path/to/my/fonts</dir>
....
Depois de adicionar novas fontes e especialmente novos diretórios de fontes, reconstrua os caches de fontes:
[source,shell]
....
# fc-cache -f
....
O anti-aliasing torna as bordas um pouco confusas, o que torna o texto muito pequeno mais legível e remove os "serrilhados" do texto grande, mas pode causar fadiga ocular se aplicado ao texto normal. Para excluir tamanhos de fonte menores que 14 pontos do anti-aliasing, inclua estas linhas:
[.programlisting]
....
<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>
....
O espaçamento para algumas fontes monoespaçadas também pode ser inadequado com o anti-aliasing. Este parece ser um problema com o KDE, em particular. Uma possível correção é forçar o espaçamento dessas fontes para que seja 100. Adicione essas linhas:
[.programlisting]
....
<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
....
(isto cria um apelido para outros nomes comuns para fontes fixas como `"mono"`), e então adicione:
[.programlisting]
....
<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>
....
Determinadas fontes, como Helvetica, podem ter um problema com o anti-alias. Geralmente isso se manifesta como uma fonte que parece cortada ao meio na vertical. Na pior das hipóteses, pode causar falhas nos aplicativos. Para evitar isso, considere adicionar o seguinte ao [.filename]#local.conf#:
[.programlisting]
....
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>
....
Depois de editar o [.filename]#local.conf#, certifique-se de finalizar o arquivo com a tag `</fontconfig>`. Não fazer isso fará com que as alterações sejam ignoradas.
Os usuários podem adicionar configurações personalizadas criando seus próprios arquivos [.filename]#~/.config/fontconfig/fonts.conf#. Este arquivo usa o mesmo formato XML descrito acima.
Um último ponto: com uma tela de LCD, a amostragem de sub-pixels pode ser desejada. Isso basicamente trata os componentes vermelho, verde e azul (separados horizontalmente) separadamente para melhorar a resolução horizontal; os resultados podem ser dramáticos. Para habilitar isso, adicione a linha em algum lugar do [.filename]#local.conf#:
[.programlisting]
....
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
....
[NOTE]
====
Dependendo do tipo de display, o `rgb` pode precisar ser alterado para `bgr`, `vrgb` ou `vbgr`: experimente e veja qual funciona melhor.
====
[[x-xdm]]
== O Gerenciador de Display X
O Xorg fornece um Gerenciador de Display X, o XDM, que pode ser usado para o gerenciamento de sessões de login. O XDM fornece uma interface gráfica para escolher em qual servidor de display se conectar para inserir informações de autorização, tal como uma combinação de login e senha.
Esta seção demonstra como configurar o X Display Manager no FreeBSD. Alguns ambientes de desktop fornecem seu próprio gerenciador de login gráfico. Consulte <<x11-wm-gnome>> para instruções sobre como configurar o GNOME Display Manager e <<x11-wm-kde>> para instruções sobre como configurar o KDE Display Manager.
=== Configurando o XDM
Para instalar o XDM, use o pacote ou ports package:x11/xdm[]. Uma vez instalado, o XDM pode ser configurado para ser executado quando a máquina for inicializada editando esta entrada em [.filename]#/etc/ttys#:
[source,shell]
....
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure
....
Altere o `off` para `on` e salve a edição. O `ttyv8` nesta entrada indica que o XDM será executado no nono terminal virtual.
O diretório de configuração do XDM está localizado em [.filename]#/usr/local/lib/X11/xdm#. Esse diretório contém diversos arquivos usados para alterar o comportamento e a aparência do XDM, bem como alguns scripts e programas usados para configurar a área de trabalho quando o XDM está em execução. <<xdm-config-files>> resume a função de cada um desses arquivos. A sintaxe exata e o uso desses arquivos são descritos em man:xdm[1].
[[xdm-config-files]]
.Arquivos de Configuração do XDM
[cols="1,1", frame="none", options="header"]
|===
| Arquivo
| Descrição
|[.filename]#Xaccess#
|O protocolo para conectar ao XDM é chamado de X Display Manager Connection Protocol (XDMCP). Este arquivo é um conjunto de regras de autorização do cliente para controlar conexões de XDMCP de máquinas remotas. Por padrão, esse arquivo não permite a conexão de nenhum cliente remoto.
|[.filename]#Xresources#
|Este arquivo controla a aparência do seletor de display XDM e das telas de login. A configuração padrão é uma janela de login retangular simples com o nome do host da máquina exibido na parte superior em uma fonte grande e "Login:" e "Senha:" solicitado abaixo. O formato deste arquivo é idêntico ao arquivo app-defaults descrito na documentação do Xorg.
|[.filename]#Xservers#
|A lista de exibições locais e remotas que o seletor deve fornecer como opções de login.
|[.filename]#Xsession#
|Script de sessão padrão para logins que é executado pelo XDM após um usuário realizar o login. Isso aponta para um script de sessão personalizado em [.filename]#~/.xsession#.
|[.filename]#Xsetup_#*
|Script para iniciar automaticamente os aplicativos antes de exibir as interfaces de seleção ou de login. Há um script para cada exibição sendo usada, denominada [.filename]#Xsetup_*#, em que `*` é o número de exibição local. Geralmente, esses scripts executam um ou dois programas em segundo plano, como `xconsole`.
|[.filename]#xdm-config#
|Configuração global para todos os monitores executados nesta máquina.
|[.filename]#xdm-errors#
|Contém os erros gerados pelo programa do servidor. Se um display que o XDM está tentando iniciar travar, procure neste arquivo por mensagens de erro. Essas mensagens também são gravadas no [.filename]#~/.xsession-errors# do usuário.
|[.filename]#xdm-pid#
|O ID do processo XDM em execução.
|===
=== Configurando o acesso remoto
Por padrão, somente usuários no mesmo sistema podem efetuar login usando o XDM. Para permitir que os usuários em outros sistemas se conectem ao servidor de Display, edite as regras de controle de acesso e ative o listener de conexão.
Para configurar o XDM para escutar qualquer conexão remota, comente a linha `DisplayManager.requestPort` em [.filename]#/usr/local/etc/X11/xdm/xdm-config# colocando um `!` na frente dele:
[source,shell]
....
! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
DisplayManager.requestPort: 0
....
Salve as edições e reinicie o XDM. Para restringir o acesso remoto, veja as entradas de exemplo em [.filename]#/usr/local/lib/X11/xdm/Xaccess# e consulte man:xdm[1] para mais informações.
[[x11-wm]]
== Ambientes de desktop
Esta seção descreve como instalar três ambientes de desktop populares em um sistema FreeBSD. Um ambiente de desktop pode variar de um gerenciador de janelas simples a um conjunto completo de aplicativos de desktop. Mais de cem ambientes de área de trabalho estão disponíveis na categoria [.filename]#x11-wm# da Coleção de Ports.
[[x11-wm-gnome]]
=== GNOME
O GNOME é um ambiente de área de trabalho amigável. Ele inclui um painel para iniciar aplicativos e exibir status, uma área de trabalho, um conjunto de ferramentas e aplicativos e um conjunto de convenções que facilitam a cooperação entre os aplicativos e a compatibilidade entre eles. Mais informações sobre o GNOME no FreeBSD podem ser encontradas em https://www.FreeBSD.org/gnome[https://www.FreeBSD.org/gnome]. Esse site contém documentação adicional sobre instalação, configuração e gerenciamento do GNOME no FreeBSD.
Este ambiente de desktop pode ser instalado a partir de um pacote binario:
[source,shell]
....
# pkg install gnome3
....
Para instalar o GNOME a partir do ports, use o seguinte comando. O GNOME é um aplicativo grande e levará algum tempo para compilar, mesmo em um computador rápido.
[source,shell]
....
# cd /usr/ports/x11/gnome3
# make install clean
....
O GNOME requer que o [.filename]#/proc# seja montado. Adicione esta linha ao [.filename]#/etc/fstab# para montar este sistema de arquivos automaticamente durante a inicialização do sistema:
[.programlisting]
....
proc /proc procfs rw 0 0
....
O GNOME usa o D-Bus e o HAL para barramento de mensagens e abstração de hardware. Esses aplicativos são instalados automaticamente como dependências do GNOME. Habilite-os em [.filename]#/etc/rc.conf# para que eles sejam iniciados quando o sistema inicializar:
[.programlisting]
....
dbus_enable="YES"
hald_enable="YES"
....
Após a instalação, configure o Xorg para iniciar o GNOME. A maneira mais fácil de fazer isso é habilitar o Gerenciador de Display do GNOME, o GDM, que é instalado como parte do pacote ou ports do GNOME. Pode ser ativado adicionando esta linha ao [.filename]#/etc/rc.conf#:
[.programlisting]
....
gdm_enable="YES"
....
Geralmente é desejável também iniciar todos os serviços do GNOME. Para conseguir isso, adicione uma segunda linha ao [.filename]#/etc/rc.conf#:
[.programlisting]
....
gnome_enable="YES"
....
O GDM será iniciado automaticamente quando o sistema for inicializado.
Um segundo método para iniciar o GNOME é digitar `startx` na linha de comando depois de configurar o [.filename]#~/.xinitrc#. Se este arquivo já existir, substitua a linha que inicia o gerenciador de janelas atual por uma que inicie o [.filename]#/usr/local/bin/gnome-session#. Se este arquivo não existir, crie-o com este comando:
[source,shell]
....
% echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc
....
Um terceiro método é usar o XDM como o gerenciador de Display. Neste caso, crie um executável [.filename]#~/.xsession#:
[source,shell]
....
% echo "exec /usr/local/bin/gnome-session" > ~/.xsession
....
[[x11-wm-kde]]
=== KDE
O KDE é outro ambiente de trabalho fácil de usar. Essa área de trabalho fornece um conjunto de aplicativos com aparência e comportamento consistentes, um menu e barras de ferramentas padronizadas, atalhos de teclado, esquemas de cores, internacionalização e uma configuração de área de trabalho centralizada e orientada a diálogos. Mais informações sobre o KDE podem ser encontradas em http://www.kde.org/[http://www.kde.org/]. Para informações específicas do FreeBSD, consulte http://freebsd.kde.org/[http://freebsd.kde.org].
Para instalar o pacote KDE, digite:
[source,shell]
....
# pkg install x11/kde5
....
Para instalar o KDE via ports, use o seguinte comando. A instalação do ports fornecerá um menu para selecionar quais componentes instalar. O KDE é um aplicativo grande e levará algum tempo para compilar, mesmo em um computador rápido.
[source,shell]
....
# cd /usr/ports/x11/kde5
# make install clean
....
O KDE requer que o [.filename]#/proc# esteja montado. Adicione esta linha ao [.filename]#/etc/fstab# para montar este sistema de arquivos automaticamente durante a inicialização do sistema:
[.programlisting]
....
proc /proc procfs rw 0 0
....
O KDE usa o D-Bus e o HAL para barramento de mensagens e abstração de hardware. Estas aplicações são automaticamente instaladas como dependências do KDE. Habilite-os em [.filename]#/etc/rc.conf# para que eles sejam iniciados quando o sistema inicializar:
[.programlisting]
....
dbus_enable="YES"
hald_enable="YES"
....
Desde o KDE Plasma 5, o Gerenciador de Display do KDE, KDM, não é mais desenvolvido. Uma possível substituição é o SDDM. Para instalá-lo, digite:
[source,shell]
....
# pkg install x11/sddm
....
Adicione esta linha em [.filename]#/etc/rc.conf#:
[.programlisting]
....
sddm_enable="YES"
....
Um segundo método para iniciar o KDE Plasma é digitar `startx` na linha de comando. Para que isso funcione, a seguinte linha é necessária em [.filename]#~/.xinitrc#:
[.programlisting]
....
exec ck-launch-session startplasma-x11
....
Um terceiro método para iniciar o KDE Plasma é através do XDM. Para fazer isso, crie um arquivo executável [.filename]#~/.xsession# da seguinte maneira:
[source,shell]
....
% echo "exec ck-launch-session startplasma-x11" > ~/.xsession
....
Uma vez iniciado o KDE Plasma , consulte o sistema de ajuda integrado para obter mais informações sobre como usar seus diversos menus e aplicativos.
[[x11-wm-xfce]]
=== Xfce
O Xfce é um ambiente de desktop baseado no kit de ferramentas GTK+ usado pelo GNOME. No entanto, é mais leve e fornece um desktop simples, eficiente e fácil de usar. É totalmente configurável, possui um painel principal com menus, applets e lançadores de aplicativos, fornece um gerenciador de arquivos e um gerenciador de som e é personalizável. Como é rápido, leve e eficiente, é ideal para máquinas mais antigas ou mais lentas com limitações de memória. Mais informações sobre o Xfce podem ser encontradas em http://www.xfce.org/[http://www.xfce.org].
Para instalar o pacote Xfce:
[source,shell]
....
# pkg install xfce
....
Alternativamente , para compilar o port:
[source,shell]
....
# cd /usr/ports/x11-wm/xfce4
# make install clean
....
O Xfce usa o D-Bus para barramento de mensagens. Este aplicativo é instalado automaticamente como dependência do Xfce. Habilite-o em [.filename]#/etc/rc.conf# para que ele seja iniciado quando o sistema inicializar:
[.programlisting]
....
dbus_enable="YES"
....
Ao contrário do GNOME ou KDE, o Xfce não disponibiliza seu próprio gerenciador de login. Para iniciar o Xfce à partir da linha de comando digitando `startx`, mas primeiro adicione sua entrada ao [.filename]#~/.xinitrc#:
[source,shell]
....
% echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xinitrc
....
Um método alternativo é usar o XDM. Para configurar este método, crie um executável [.filename]#~/.xsession#:
[source,shell]
....
% echo ". /usr/local/etc/xdg/xfce4/xinitrc" > ~/.xsession
....
[[x-compiz-fusion]]
== Instalando o Compiz Fusion
Uma maneira de tornar o uso de um computador desktop mais agradável é com bons efeitos 3D.
Instalar o pacote Compiz Fusion é fácil, mas a configuração requer alguns passos que não estão descritos na documentação do ports.
[[x-compiz-video-card]]
=== Configurando o Driver nVidia no FreeBSD
Os efeitos da área de trabalho podem causar uma carga considerável na placa gráfica. Para uma placa gráfica baseada na nVidia, o driver proprietário é necessário para um bom desempenho. Usuários de outras placas gráficas podem pular esta seção e continuar com a configuração do [.filename]#xorg.conf#.
Para determinar qual o driver nVidia é necessário, consulte a extref:{faq}[Perguntas frequentes sobre o assunto, idp59950544].
Tendo determinado o driver correto para usar em sua placa gráfica, a instalação é tão simples quanto instalar qualquer outro pacote.
Por exemplo, para instalar o driver mais recente:
[source,shell]
....
# pkg install x11/nvidia-driver
....
O driver irá criar um módulo do kernel, que precisa ser carregado na inicialização do sistema. Adicione a seguinte linha ao [.filename]#/boot/loader.conf#:
[.programlisting]
....
nvidia_load="YES"
....
[NOTE]
====
Para carregar imediatamente o módulo no kernel em execução, você pode executar o comando `kldload nvidia`. No entanto, foi observado que algumas versões do Xorg não funcionarão corretamente se o driver não for carregado no momento da inicialização. Desta forma, depois de editar o [.filename]#/boot/loader.conf#, é recomendado reiniciar o sistema.
====
Com o módulo do kernel carregado, você normalmente só precisa alterar uma única linha no [.filename]#xorg.conf# para habilitar o driver proprietário:
Encontre a seguinte linha no [.filename]#/etc/X11/xorg.conf#:
[.programlisting]
....
Driver "nv"
....
e mude para:
[.programlisting]
....
Driver "nvidia"
....
Inicie a GUI como de costume, e você será saudado pelo splash da nVidia. Tudo deve funcionar como de costume.
[[xorg-configuration]]
=== Configurando o xorg.conf para Efeitos de Desktop
Para ativar o Compiz Fusion, o [.filename]#/etc/X11/xorg.conf# precisa ser modificado:
Adicione a seguinte seção para habilitar os efeitos compostos:
[.programlisting]
....
Section "Extensions"
Option "Composite" "Enable"
EndSection
....
Localize a seção "Screen", que deve ser semelhante à abaixo:
[.programlisting]
....
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
...
....
e adicione as duas linhas seguintes (após "Monitor"):
[.programlisting]
....
DefaultDepth 24
Option "AddARGBGLXVisuals" "True"
....
Localize a "Subsection" que se refere à resolução da tela que você deseja usar. Por exemplo, se você deseja usar 1280x1024, localize a seção a seguir. Se a resolução desejada não aparecer em nenhuma subseção, você pode adicionar a entrada relevante à mão:
[.programlisting]
....
SubSection "Display"
Viewport 0 0
Modes "1280x1024"
EndSubSection
....
Uma profundidade de cor de 24 bits é necessária para a composição do desktop, altere a subseção acima para:
[.programlisting]
....
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSection
....
Finalmente, confirme que os módulos "glx" e "extmod" estão carregados na seção "Module":
[.programlisting]
....
Section "Module"
Load "extmod"
Load "glx"
...
....
A configuração acima pode ser feita automaticamente com o package:x11/nvidia-xconfig[] (executando como `root`):
[source,shell]
....
# nvidia-xconfig --add-argb-glx-visuals
# nvidia-xconfig --composite
# nvidia-xconfig --depth=24
....
[[compiz-fusion]]
=== Instalando e Configurando o Compiz Fusion
Instalar o Compiz Fusion é tão simples quanto qualquer outro pacote:
[source,shell]
....
# pkg install x11-wm/compiz-fusion
....
Quando a instalação estiver concluída, inicie o Desktop Gráfico e, em um terminal, digite os seguintes comandos (como usuário normal):
[source,shell]
....
% compiz --replace --sm-disable --ignore-desktop-hints ccp &
% emerald --replace &
....
Sua tela piscará por alguns segundos, pois o gerenciador de janelas (por exemplo, Metacity se você estiver usando o GNOME) será substituído pelo Compiz Fusion. O Emerald cuida das decorações da janela (isto é, botões de fechar, minimizar, maximizar, barras de título e assim por diante).
Você pode converter isso em um script trivial e executá-lo na inicialização automaticamente (por exemplo, adicionando a "Sessions" em um Desktop do GNOME):
[.programlisting]
....
#! /bin/sh
compiz --replace --sm-disable --ignore-desktop-hints ccp &
emerald --replace &
....
Salve isso no seu diretório home como, por exemplo, [.filename]#start-compiz# e torne-o executável:
[source,shell]
....
% chmod +x ~/start-compiz
....
Em seguida, utilize a GUI para adicioná-lo a [.guimenuitem]#Startup Programs# (localizado em [.guimenuitem]#System#, [.guimenuitem]#Preferences#, [.guimenuitem]#Sessions# em um desktop GNOME).
Para selecionar realmente todos os efeitos desejados e suas configurações, execute (novamente como um usuário normal) o Compiz Config Settings Manager:
[source,shell]
....
% ccsm
....
[NOTE]
====
No GNOME, isso também pode ser encontrado no menu [.guimenuitem]#System#, [.guimenuitem]#Preferences#.
====
Se você selecionou "gconf support" durante a compilação, você também será capaz de ver estas configurações usando o `gconf-editor` sob `apps/compiz`.
[[x11-troubleshooting]]
== Solução de problemas
Se o mouse não funcionar, você precisará primeiro configurá-lo antes de prosseguir. Em versões recentes do Xorg, as seções `InputDevice` em [.filename]#xorg.conf# são ignoradas em favor dos dispositivos autodetectados. Para restaurar o comportamento antigo, adicione a seguinte linha à seção `ServerLayout` ou `ServerFlags` deste arquivo:
[.programlisting]
....
Option "AutoAddDevices" "false"
....
Os dispositivos de entrada podem então ser configurados como nas versões anteriores, juntamente com quaisquer outras opções necessárias (por exemplo, troca do layout de teclado).
[NOTE]
====
Como explicado anteriormente, o daemon hald irá, por padrão, detectar automaticamente o seu teclado. Há chances de que o layout ou modelo do teclado não esteja correto, ambientes de Desktop como o GNOME, KDE ou Xfce fornecem ferramentas para configurar o teclado. No entanto, é possível definir as propriedades do teclado diretamente com a ajuda do utilitário man:setxkbmap[1] ou com uma regra de configuração do aplicativohald.
Por exemplo, se alguém quiser usar um teclado de teclas PC 102 vindo com um layout francês, temos que criar um arquivo de configuração de teclado para o hald chamado [.filename]#x11-input.fdi# e salva-lo no diretório [.filename]#/usr/local/etc/hal/fdi/policy#. Este arquivo deve conter as seguintes linhas:
[.programlisting]
....
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_options.XkbModel" type="string">pc102</merge>
<merge key="input.x11_options.XkbLayout" type="string">fr</merge>
</match>
</device>
</deviceinfo>
....
Se este arquivo já existir, apenas copie e adicione ao seu arquivo as linhas referentes à configuração do teclado.
Você terá que reinicializar sua máquina para forçar o hald a ler este arquivo.
É possível fazer a mesma configuração a partir de um terminal X ou um script com esta linha de comando:
[source,shell]
....
% setxkbmap -model pc102 -layout fr
....
O [.filename]#/usr/local/shared/X11/xkb/rules/base.lst# lista os vários teclados, layouts e opções disponíveis.
====
O arquivo de configuração [.filename]#xorg.conf.new# pode agora ser ajustado para o seu gosto. Abra o arquivo em um editor de texto, como man:emacs[1] ou o man:ee[1]. Se o monitor for um modelo antigo ou incomum que não suporta a detecção automática de frequências de sincronização, essas configurações podem ser adicionadas ao [.filename]#xorg.conf.new# na seção `"Monitor"`:
[.programlisting]
....
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSection
....
A maioria dos monitores suporta autodetecção de frequência de sincronização, tornando desnecessária a entrada manual desses valores. Para os poucos monitores que não suportam a detecção automática, evite possíveis danos inserindo apenas valores fornecidos pelo fabricante.
O X permite que os recursos do DPMS (Energy Star) sejam usados com monitores capazes. O programa man:xset[1] controla os tempos limite e pode forçar os modos de espera, suspensão ou desativação. Se você deseja habilitar recursos de DPMS para o seu monitor, você deve adicionar a seguinte linha à seção do monitor:
[.programlisting]
....
Option "DPMS"
....
Enquanto o arquivo de configuração [.filename]#xorg.conf.new# ainda estiver aberto em um editor, selecione a resolução padrão e a profundidade de cor desejada. Isso é definido na seção `"Screen"`:
[.programlisting]
....
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSection
....
A palavra-chave `DefaultDepth` descreve a profundidade de cor a ser executada por padrão. Isto pode ser sobrescrito com a opção de linha de comando `-depth` para man:Xorg[1]. A palavra-chave `Modes` descreve a resolução a ser executada na profundidade de cor especificada. Observe que somente os modos padrão VESA são suportados, conforme definido pelo hardware gráfico do sistema de destino. No exemplo acima, a profundidade de cor padrão é de vinte e quatro bits por pixel. Nesta profundidade de cor, a resolução aceita é 1024 por 768 pixels.
Finalmente, escreva o arquivo de configuração e teste-o usando o modo de teste dado acima.
[NOTE]
====
Uma das ferramentas disponíveis para ajudá-lo durante o processo de solução de problemas são os arquivos de log do Xorg, que contêm informações sobre cada dispositivo ao qual o servidor Xorg se conecta. Os nomes de arquivos de log do Xorg estão no formato [.filename]#/var/log/Xorg.0.log#. O nome exato do log pode variar de [.filename]#Xorg.0.log# para [.filename]#Xorg.8.log# e assim por diante.
====
Se tudo estiver bem, o arquivo de configuração precisa ser instalado em um local comum onde o man:Xorg[1] possa encontrá-lo. Isto é tipicamente [.filename]#/etc/X11/xorg.conf# ou [.filename]#/usr/local/etc/X11/xorg.conf#.
[source,shell]
....
# cp xorg.conf.new /etc/X11/xorg.conf
....
O processo de configuração do Xorg agora está completo. O Xorg pode agora ser iniciado com o utilitário man:startx[1]. O servidor Xorg também pode ser iniciado com o uso de man:xdm[1].
=== Configuração com Chipsets gráficos Intel(TM)`i810`
A configuração com chipsets integrados i810 da Intel(TM) requer a interface de programação AGP [.filename]#agpgart# para o Xorg para conduzir a placa. Consulte a página de manual do driver man:agp[4] para obter maiores informações.
Isso permitirá a configuração do hardware como qualquer outra placa gráfica. Observe que nos sistemas sem o driver man:agp[4] compilado no kernel, tentar carregar o módulo com man:kldload[8] não funcionará. Este driver tem que estar no kernel no momento da inicialização, através da compilação ou usando o [.filename]#/boot/loader.conf#.
=== Adicionando um Flatpanel Widescreen ao Mix
Esta seção pressupõe um pouco de conhecimento avançado de configuração. Se as tentativas de usar as ferramentas de configuração padrão acima não resultaram em uma configuração funcional, há informações suficientes nos arquivos de log para serem úteis para fazer a configuração funcionar. O uso de um editor de texto será necessário.
Os formatos widescreen atuais (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, etc.) suportam formatos ou proporções de formato 16:10 e 10:9 que podem ser problemáticos. Exemplos de algumas resoluções de tela comuns para proporções de 16:10 são:
* 2560x1600
* 1920x1200
* 1680x1050
* 1440x900
* 1280x800
Em algum momento, será tão fácil quanto adicionar uma dessas resoluções como um possível `Mode` na `Section "Screen"` como tal:
[.programlisting]
....
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1680x1050"
EndSubSection
EndSection
....
O Xorg é inteligente o suficiente para extrair as informações de resolução da tela widescreen via informações I2C/DDC, para que ele saiba o que o monitor pode suportar em termos de freqüências e resoluções.
Se aqueles `ModeLines` não existem nos drivers, pode ser necessário dar ao Xorg uma pequena dica. Usando o [.filename]#/var/log/Xorg.0.log# pode-se extrair informações suficientes para criar manualmente um `ModeLine` que funcionará. Basta procurar informações semelhantes:
[.programlisting]
....
(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz
....
Esta informação é chamada de informação EDID. Criar uma `ModeLine` a partir disso é apenas uma questão de colocar os números na ordem correta:
[.programlisting]
....
ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>
....
Assim, o `ModeLine` na `Section "Monitor"` para este exemplo ficaria assim:
[.programlisting]
....
Section "Monitor"
Identifier "Monitor1"
VendorName "Bigname"
ModelName "BestModel"
ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option "DPMS"
EndSection
....
Agora, tendo completado estes passos simples de edição, o X deve iniciar no seu novo monitor widescreen.
[[compiz-troubleshooting]]
=== Solução de problemas do Compiz Fusion
==== Eu instalei o Compiz Fusion, e depois de executar os comandos que você mencionou, minhas janelas ficaram sem barras de título e botões. O que está errado?
Provavelmente está faltando alguma configuração em [.filename]#/etc/X11/xorg.conf#. Revise este arquivo cuidadosamente e verifique especialmente as diretivas `DefaultDepth` e `AddARGBGLXVisuals`.
==== Quando executo o comando para iniciar o Compiz Fusion, o servidor X trava e eu volto ao console. O que está errado?
Se você verificar o [.filename]#/var/log/Xorg.0.log#, você provavelmente encontrará mensagens de erro durante a inicialização do X. As mais comuns seriam:
[source,shell]
....
(EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X
(EE) NVIDIA(0): log file that the GLX module has been loaded in your X
(EE) NVIDIA(0): server, and that the module is the NVIDIA GLX module. If
(EE) NVIDIA(0): you continue to encounter problems, Please try
(EE) NVIDIA(0): reinstalling the NVIDIA driver.
....
Este é geralmente o caso quando você atualiza o Xorg. Você precisará reinstalar o pacote package:x11/nvidia-driver[] para que o glx seja compilado novamente.
|