docs
  • README
  • John's Notes and Documentation
    • Linux
      • Distributions
        • Arch Linux
          • Common Applications
          • Setting up pacaur with the Arch User Repository
          • Bluetooth
          • Hibernate
          • Graphical Configuration
          • libvirt
          • Post Install Tasks
            • Time
            • Reflector
            • SMTP
            • ZFS Configuration
            • smart
            • nfs
            • Package Management
              • aurutils
            • Programming Languages
              • nodejs
              • ruby
            • Restore Installed Applications
            • User Configuration Management
            • User Namespaces
            • Gaming with Wine
            • ZFS Dataset Structure
            • Raspberry PI Secure VPN Torrentbox
        • NixOS
          • Remotely Accessing Install Media
          • root on ZFS Install
      • systemd
        • Network Bonding
      • Tuning
        • CPU Tuning
        • Limits
        • Sysctls
        • Network Reliability With iwlwifi
        • Surface Pro 4 Power Tuning
        • ZFS Arc Max on Linux
      • TrueNAS
        • Setup
  • BSD
    • FreeBSD
      • iocage
      • Poudriere in a bhyve VM
    • FreeNAS
      • Copy SSH Keys off FreeNAS
      • FreeNAS Service jails
      • iocage Service jails
        • Couchpotato jail
        • Deluge jail
        • Emby jail
        • Poudriere WebUI jail
        • Podcatcher jail
        • Sabnzbd jail
        • Sickrage jail
        • Syncthing jail
        • Duplicity jail
        • Lets Encrypt jail
      • Wrong Version jail
    • pfSense
      • Sending Specific Traffic Through OpenVPN
  • Desktop and Userspace
    • Gaming
      • Grim Dawn
      • Path of Exile
    • Internet
      • Re-authenticate IRC Nickname
      • Lightdm VNC Connection with Password
    • Media
      • Convert Audio to Video
      • Convert Text to Speech
  • System Administration
    • Security
      • GPG Subkeys
    • Shell Scripting
      • dd
      • find
      • rsync
      • vim
    • ZFS
      • Mirrors
  • Certifications
    • CKA
      • Core-Concepts
      • Scheduling
      • Logging
      • Application Lifecycle Management
      • Cluster Maintenance
      • Security
      • Storage
      • Networking
      • Install Kubernetes with kubeadm
      • JSON PATH
Powered by GitBook
On this page
  • Graphics
  • Xorg
  • Setup a Window Manager or Desktop Environment
  • Display Manager
  • VNC
  • Fonts
  1. John's Notes and Documentation
  2. Linux
  3. Distributions
  4. Arch Linux

Graphical Configuration

PreviousHibernateNextlibvirt

Last updated 5 months ago

First setup and graphics.

Graphics

Install graphics drivers, my main system is .

pacman -S nvidia lib32-nvidia-utils

Xorg

pacman -S xorg-server

Set dpi in ~/.Xresources, I use 192 for my 4k screen.

nano ~/.Xresources
Xft.dpi: 192

Nvidia - Tearing Fix

My Nvidia card tears. This removes the tearing.

Desktop

nano /etc/X11/xorg.conf.d/20-nvidia.conf
Section "Screen"
    Identifier     "Screen0"
    Option         "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
    Option         "AllowIndirectGLXProtocol" "off"
    Option         "TripleBuffer" "on"
EndSection

Laptop

Add the nvidia-drm.modeset=1 kernel parameter, and add nvidia, nvidia_modeset, nvidia_uvm and nvidia_drm to mkinitcpio modules.

Pacman hook

To update initramfs after an NVIDIA driver upgrade, use a pacman hook:

/etc/pacman.d/hooks/nvidia.hook
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia

[Action]
Depends=mkinitcpio
When=PostTransaction
Exec=/usr/bin/mkinitcpio -P

Setup a Window Manager or Desktop Environment

KDE Plasma

Choose phonon-qt5-gstreamer, libx264, cronie, phonon-qt4-gstreamer.

pacman -S plasma kdeadmin-meta kdebase-meta kdegraphics-meta kdenetwork-meta kdeutils-meta

I disable baloo since it seems to make my system chug.

balooctl disable

Display Manager

pacman -S sddm qt5-virtualkeyboard

Setup config at /etc/sddm.conf.d/sddm.conf.

nano /etc/sddm.conf.d/sddm.conf

Tell it to start a desktop file from /usr/share/xsessions/, set dpi, and user.

# Set DPI based on display
ServerArguments=-nolisten tcp -dpi 192

# Name of session file for autologin session
Session=plasma.desktop

# Username for autologin session
User=john

# Current theme name
Current=breeze

Enable sddm.

systemctl enable sddm

Reboot into KDE!

VNC

Can access current display or create new session.

System

Configure startup run vncserver.

Setup a systemd unit to start vnc, note this connects to physical display, other options are available. Change user.

nano /etc/systemd/system/x0vncserver.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=john
ExecStart=/usr/bin/sh -c '/usr/bin/x0vncserver -display :0 -rfbport 5900 -passwordfile /home/john/.vnc/passwd &'

[Install]
WantedBy=multi-user.target
systemctl start x0vncserver

Fonts

aursync --update --temp --chroot ttf-google-fonts-git

To fix laptop using .

364.16 adds support for DRM kernel mode setting.

Install package as well as some . I dont install kdeaccessibility-meta, kdeedu-meta, kdegames-meta, .kdemultimedia-meta, kdepim-meta, kdesdk-meta, kdewebdev-meta.

I use sddm, simple and works well. For an onscreen keyboard install .

To access the entire system over vnc, install .

Install .

xorg
nvidia
DRM kernel mode setting
nvidia
KDE Plasma
KDE meta-packages
qt5-virtualkeyboard
tigervnc
ttf-google-fonts-git (AUR)