It’s just yulistic!

HiDPI configuration of i3-wm in ManjaroLinux

· Read in about 2 min · (277 Words)
Linux Manjaro HiDPI scaling i3 i3wm tiling window manager

Intro.

I installed i3 tiling window manager on ManjaroLinux (xfce edition). It was required to configure HiDPI manually.
FYI, if you are going to install ManjaroLinux from scratch, you can install Manjaro-i3 edition.

Environment

  • ManjaroLinux 17 (xfce was used previously)
  • i3 4.15 (a.k.a. i3-wm)
  • 4k single monitor

Problem

To configure HiDPI (scaling) correctly in i3-wm.

Solution

  1. Write the following line to the file, ~/.Xresources. The dpi value can be adjusted as you want.

    Xft.dpi: 144
    
  2. Make sure that the file is loaded in ~/.xinitrc. For example, my default .xinitrc file was like below.

    #!/bin/bash
    #
    # ~/.xinitrc
    #
    # Executed by startx (run your window manager from here)
        
    userresources=$HOME/.Xresources
    usermodmap=$HOME/.Xmodmap
    sysresources=/etc/X11/xinit/.Xresources
    sysmodmap=/etc/X11/xinit/.Xmodmap
        
    SESSION=${1:-xfce}
        
    # merge in defaults and keymaps
        
    if [ -f $sysresources ]; then
        xrdb -merge $sysresources
    fi
        
    if [ -f $sysmodmap ]; then
        xmodmap $sysmodmap
    fi
        
    if [ -f "$userresources" ]; then
        xrdb -merge "$userresources"
    fi
        
    if [ -f "$usermodmap" ]; then
        xmodmap "$usermodmap"
    fi
        
    # start some nice programs
        
    if [ -d /etc/X11/xinit/xinitrc.d ] ; then
        for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
            [ -x "$f" ] && . "$f"
        done
        unset f
    fi
        
    get_session(){
        local dbus_args=(--sh-syntax --exit-with-session)
        case "$SESSION" in
            awesome) dbus_args+=(awesome) ;;
            bspwm) dbus_args+=(bspwm-session) ;;
            budgie) dbus_args+=(budgie-desktop) ;;
            cinnamon) dbus_args+=(cinnamon-session) ;;
            deepin) dbus_args+=(startdde) ;;
            enlightenment) dbus_args+=(enlightenment_start) ;;
            fluxbox) dbus_args+=(startfluxbox) ;;
            gnome) dbus_args+=(gnome-session) ;;
            i3|i3wm) dbus_args+=(i3 --shmlog-size 0) ;;
            jwm) dbus_args+=(jwm) ;;
            kde) dbus_args+=(startkde) ;;
            lxde) dbus_args+=(startlxde) ;;
            lxqt) dbus_args+=(lxqt-session) ;;
            mate) dbus_args+=(mate-session) ;;
            xfce) dbus_args+=(xfce4-session) ;;
            openbox) dbus_args+=(openbox-session) ;;
            *) dbus_args+=("$SESSION") ;;
        esac
        
        echo "dbus-launch ${dbus_args[*]}"
    }
        
    exec $(get_session)
    
  3. Reboot the system and confirm your display output.

Reference

Comments