Tartalomjegyzék

Ubuntu with i3 window manager

Installation

# Install i3 and other important tools
sudo apt-get install i3 i3blocks jq rofi feh nitrogen xclip libgnome-keyring0

# Install useful KDE and other applications
sudo apt-get install krusader konsole kate gwenview okular evince ksysguard gnome-system-monitor systemsettings chromium-browser gimp spectacle darktable vlc

# Install utilities
sudo apt-get install ncdu meld apt-transport-https git tree clipit keditbookmarks

# Install pdftk
sudo add-apt-repository ppa:malteworld/ppa
sudo apt update
sudo apt install pdftk

# Install texlive
sudo apt-get install texlive-full pdfshufler

# Instal Apache2 MySQL server
sudo apt-get install apache2 php7.2 php-mysql mysql-server mysql-client

# Insall linux kernel headers
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install linux-headers-generic

# Python
sudo apt-get install python3-pip

# Install Java
# Java 8 with Java FX is needed for JabRef
sudo apt-get install openjdk-8-jre openjfx

# If openjfx for Java 11 is installed downgrade openjfx to Java 8 (this worked for me on Ubuntu 18.04.3)
sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2

# Is it really necessary
sudo apt-get install xfce4-pulseaudio-plugin qt5ct breeze plasma-desktop

# Install java for OdsLoader
sudu apt-get install maven
sudo apt-get install openjdk-8-jdk # Figyelem JDK is kell

Configuration file: .i3/config.

Troubleshooting

Keyboard layouts

setxkbmap -layout hu -variant 102_qwerty_comma_dead
setxkbmap -layout hu
setxkbmap -layout us

Key bindings

For the most important i3 key bindings, I refer to i3 Reference Card.

In order to find out the key codes (keycode) and the their corresponding symbolical value (keysym), execute xmodmap -pke or xmodmap.

Display settings (xrandr)

In order to list the available displays, you can execute xrandr.

Set display layout use:

xrandr --auto
xrandr --output eDP-1-1 --right-of VGA-1-1 --auto --dpi 100

or append the following lines to the config file

exec --no-startup-id xrandr --auto
exec --no-startup-id xrandr --output eDP-1-1 --right-of VGA-1-1 --auto --dpi 100

In order to simply change (globally) the font size, you can try the following, then restart i3 inplace (Mod+Shift+R).

xrandr --dpi 100

To make these settings permanent:

#~/.Xresources
Xft.dpi: 100
#~/.xinitrc
xrdb -merge ~/.Xresources
exec i3
#~/.xprofile
# ...

Setup ultra wide monitor (21:9) - source

cvt 2560 1080 44 | cut -f2 -d$'\n'
cvt 2560 1080 60 | cut -f2 -d$'\n' | cut -f 3- -d' '
cvt 2560 1080 60 | cut -f2 -d$'\n' | cut -f2 -d' '
xrandr --newmod "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync
xrandr --newmode "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync
xrandr --addmode HDMI-1-1 "2560x1080_60.00"
xrandr --output HDMI-1-1 --mode "2560x1080_60.00"
#!/bin/bash
# setup my massive monitor at 45/60hz if its plugged in

RESOLUTION="2560 1080 60"
OUTPUT="HDMI-0"

CONNECTED=$(xrandr --current | grep -i $OUTPUT | cut -f2 -d' ')

if [ "$CONNECTED" = "connected" ]; then
    MODELINE=$(cvt $RESOLUTION | cut -f2 -d$'\n')
    MODEDATA=$(echo $MODELINE | cut -f 3- -d' ')
    MODENAME=$(echo $MODELINE | cut -f2 -d' ')

    echo "Adding mode - " $MODENAME $MODEDATA
    xrandr --newmode $MODENAME $MODEDATA
    xrandr --addmode $OUTPUT $MODENAME
    xrandr --output $OUTPUT --mode $MODENAME
else
    echo "Monitor is not detected"
fi

Split screen virtually: source

xrandr --setmonitor VIRT-LEFT 960/238x1080/286+0+0 eDP-1-1
xrandr --setmonitor VIRT-RIGHT-TOP 960/238x540/143+960+0 none
xrandr --setmonitor VIRT-RIGHT-BOT 960/238x540/143+960+540 none 

Display brightness

You can choose to set manually the display brightness as follows (source):

echo 400 | sudo tee /sys/class/backlight/intel_backlight/brightness

i3blocks

Rofi

Krusader

Note. Krusader --left and --rgiht does not like symbolic links! You can notice the the embedded terminal will not work properly.

Other useful or handy tools

Important (default) key bindings

Basics

Mod + Enter open new terminal
Mod + j focus left
Mod + k focus down
Mod + l focus up
Mod + ; focus right
Mod + a focus parent
Mod + Space toggle focus mode

Moving windows

Mod + Shift + j move window left
Mod + Shift + k move window down
Mod + Shift + l move window up
Mod + Shift + ; move window right

Modifying windows

Mod + f toggle fullscreen
Mod + v split a window vertically
Mod + h split a window horizontally
Mod + r resize mode

Changing the container layout

Mod + e default
Mod + s stacking
Mod + w tabbed

Floating

Mod + Shift + Space toggle floating
Mod + Click drag floating

Using workspaces

Mod + 0-9 switch to another workspace
Mod + Shift + 0-9 move a window to another workspace

Opening applications / Closing windows

Mod + d open application launcher (dmenu)
Mod + Shift + q kill a window

Restart / Exit

Mod + Shift + c reload the configuration file
Mod + Shift + r restart i3 inplace
Mod + Shift + e exit i3

Workspace-output quick switch

 i3-msg -t get_outputs | jq -r '.[]|"\(.name):\(.current_workspace)"' | grep -v ':null$' | awk -F ";" '{if (a[$1]=="") a[$1]=$0; else a[$1]=a[$1]";"$NF} END{for(i in a) print a[i]}'
IFS=:
i3-msg -t get_outputs | jq -r '.[]|"\(.name):\(.current_workspace)"' | grep -v '^null:null$' | \
while read -r name current_workspace; do
    echo "moving ${current_workspace} right..."
    i3-msg workspace "${current_workspace}"
    i3-msg move workspace to output right
done

Vagy: Nezd meg ezt is.