• Arch Linux kommt ja nach der Installation recht nackig daher. Hier wird beschrieben, wie man zu einem einfach zu benutzendem System gelangt.
  • Nicht vergessen: Über Copy&Paste könnte man Code iniziieren.
    • Dies kann man umgehen indem man den Code in einen Editor einfügt und von diesem erneut kopiert und dann in die Konsole einfügt.

Vorbereitung

Falls nicht nicht schon wie in der Anleitung geschehen:

  • User zu den Sudo-Benutzern hinzufügen
    • su -
    • nano /etc/sudoers
      • Suche die Zeile %wheel ALL=(ALL) ALL und kommentiere sie aus.
    • groupadd wheel
    • usermod -aG wheel $MYUSERNAME
    • echo "Defaults insults" >> /etc/sudoers
  • Pacman initialisieren
    • su -
    • pacman-key --init
    • pacman-key --populate archlinux
  • Internetverbindung
    • ping -c 3 startpage.com

Skript

  • wget http://frank.zisko.io/assets/code/2015/archlinux-install-2.sh
  • chmod u+x archlinux-install-2.sh
  • ./archlinux-install-2.sh $MYARGUMENT
    • Wird kein Argument übergeben wird automatisch all eingesetzt.
    • Möchte man nur bestimmte abschnitte des Skriptes ausführen, aber nicht jede Sektion einzeln aufrufen, kannst du im Skript unter MY INSTALL SETUP aus den einzelnen Abschnitten auswählen und das Skipt mit dem Argument myaufrufen.
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
#!/usr/bin/env bash
################################################################################
# Author: Frank Zisko, 2015
# Version: 0.0.1.2
# Licence: MIT
#
# No warranty! For nothing. Use it at your own risk.
#
# About: After installing Arch Linux now we install some packages to increase
#        the usability. Well, we install input device drivers, video drivers and 
#        some usefull packages. Most have Cinnamon and GNOME dependencies.
#        For resetting the installation give the script the argument 'reset'.
################################################################################
# TODO: Collect in every section the pacages and after all install this i one step.
# TODO: Allow multiple arguments.


### Logging ### ################################################################
# Call this script again with logging parameters.
if [ -z "$IS_CALLED" ]; then
    export IS_CALLED=1
    # Get script path an set logging file.
    SCRIPT_PATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"`
    LOG_PATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"`.log
    . ${SCRIPT_PATH} ${1} 2>&1 | tee "${LOG_PATH}"
    # Exit here! If not, you'll go into endless recursive script calls!
    exit
    # Never reach this!
    echo "+++ If you read this line, abort this script immediately! +++"
    echo "+++ ABORT. THIS. SCRIPT. NOW! +++"
fi


### Log ### ####################################################################
JOB_NAME="Arch Linux - Post Installation Helper"
echo " "
echo "### Start Job: ${JOB_NAME} at $(date "+%Y-%m-%dT%H:%M:%S"). ###"
time_begin=$(date +"%s")


### Uninstall ### ##############################################################
if [[ ("${1}" == "reset") || ("${1}" == "uninstallall") ]]; then
    echo "Uninstallation ... "
    echo "   all exept base group."
    # https://wiki.archlinux.org/index.php/Pacman_tips#Removing_everything_but_base_group
    # https://bbs.archlinux.org/viewtopic.php?id=119195
    sudo pacman -R $(comm -23 <(pacman -Qq|sort) <((for i in $(pacman -Qqg base); do pactree -ul $i; done)|sort -u|cut -d ' ' -f 1))
fi


### Check ### ##################################################################

# http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
# http://www.tldp.org/LDP/abs/html/comparison-ops.html
#if [[ $EUID -ne 0 ]]; then
if [[ $EUID -eq 0 ]]; then
   echo "This script can not be run as root." 
   echo "This is necessary because we are running 'yaourt', too."
   exit 1
fi


### Pause ### ##################################################################
function pause(){
   read -p "$*"
}


### Install ### ################################################################
SCRIPT_PATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"`
PACMAN_PACKAGES=""
YAOURT_PACKAGES=""


# When ${1} is empty install all.
if [ -z "${1}" ]; then
    SCRIPT_PATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"`
    . ${SCRIPT_PATH} all
fi
# Installing all?
if [ "${1}" == "all" ]; then
    echo "Installing all ..."
    pause 'Press [enter] to continue.'
fi

### MY INSTALL SETUP ###
if [[ ("${1}" == "my") ]]; then
    SCRIPT_PATH=$(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"`

    # Comment unwanted.
    . ${SCRIPT_PATH} networkmanager
    . ${SCRIPT_PATH} pacman
    . ${SCRIPT_PATH} yaourt
    . ${SCRIPT_PATH} pacmantools
    . ${SCRIPT_PATH} input
    . ${SCRIPT_PATH} videodriver

    . ${SCRIPT_PATH} openbox
    . ${SCRIPT_PATH} cinnamon
    . ${SCRIPT_PATH} gnome
    . ${SCRIPT_PATH} awesome
    . ${SCRIPT_PATH} kde
    . ${SCRIPT_PATH} lxde
    . ${SCRIPT_PATH} lxqt
    . ${SCRIPT_PATH} gdm

    . ${SCRIPT_PATH} tools
    . ${SCRIPT_PATH} dev
    . ${SCRIPT_PATH} editor
    . ${SCRIPT_PATH} terminal
    . ${SCRIPT_PATH} internet
    . ${SCRIPT_PATH} communication
    . ${SCRIPT_PATH} news
    . ${SCRIPT_PATH} multimedia
    . ${SCRIPT_PATH} podcast
    . ${SCRIPT_PATH} video
    . ${SCRIPT_PATH} graphic
    . ${SCRIPT_PATH} vector
    . ${SCRIPT_PATH} construction
    . ${SCRIPT_PATH} office
    . ${SCRIPT_PATH} latex
fi



### NETWORKMANAGER ###
if [[ ("${1}" == "all") || ("${1}" == "network") || ("${1}" == "networkmanager") ]]; then
    # sudo ip link 
      # Or: sudo ls /sys/class/net
    # sudo systemctl --type=service
      # Show all active services.
    
    # Stop possible active daemons.
    sudo systemctl disable netctl
    sudo systemctl stop netctl
    sudo systemctl disable dhcpcd
    sudo systemctl stop dhcpcd
    
    # Install NetworkManager.
    sudo pacman -S networkmanager networkmanager-openconnect networkmanager-openvpn networkmanager-vpnc network-manager-applet gnome-keyring
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: networkmanager-l2tp"
    else
        yaourt -S --noconfirm networkmanager-l2tp
    fi

    # Activate and start NetworkManager.
    sudo systemctl enable NetworkManager
    sudo systemctl restart NetworkManager
    
    # nmcli
      # Command line tool.
      # See https://fedoraproject.org/wiki/Networking/CLI
    # nmtui
      # Interactive ncurses tool.
      # Usefull for wifi.
fi


### NETCTL ###
if [[ "${1}" == "netctl" ]]; then
    # sudo systemctl --type=service
    
    # Stop possible active daemons.
    sudo systemctl disable NetworkManager
    sudo systemctl disable dhcpd
    sudo systemctl stop NetworkManager
    sudo systemctl stop dhcpd

    sudo pacman -S netctl wpa_supplicant wpa_actiond dhcpcd dhclient dialog
    sudo systemctl enable netctl
    sudo systemctl restart netctl
    # cd /etc/netctl/examples/
      # Here are some examples for typically connections.
    cp ethernet-dhcp ../
    cd ..
    ip link
    nano ethernet-dhcp
        Ändere Interface=
    netctl start ethernet-dhcp
    # sudo wifi-menu
      #  Creates wifi connections. Naming of these connections is the ssid of the wifi network.
      # https://wiki.archlinux.org/index.php/Netctl#Wireless_.28WPA-PSK.29
fi


### PACMAN ###
if [[ ("${1}" == "all") || ("${1}" == "pacman") ]]; then
    sudo pacman-key --init
    sudo pacman-key --populate archlinux
    sudo sed -i 's/^/#Color/Color' /etc/pacman.conf
    echo "[multilib]" >> /etc/pacman.conf
    echo "Include = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
    sudo pacman -Syy
    sudo pacman -S pkgfile 
fi


### YAOURT ###
if [[ ("${1}" == "all") || ("${1}" == "yaourt") ]]; then
    sudo pacman -S wget diffutils base-devel
    mkdir -p ~/workspace/arch-pkgs
    cd ~/workspace/arch-pkgs
    curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/package-query.tar.gz
    tar -xvzf package-query.tar.gz
    cd package-query
    makepkg -si
    cd ..
    curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/yaourt.tar.gz
    tar -xvzf yaourt.tar.gz
    cd yaourt
    makepkg -si
    cd
    # http://kissmyarch.blogspot.de/2012/05/two-simple-yaourt-tips.html
    cp /etc/yaourtrc ~/.yaourtrc
    sed -i 's/^#BUILD_NOCONFIRM=0/BUILD_NOCONFIRM=1/' ~/.yaourtrc
    sed -i 's/^#EDITFILES=1/EDITFILES=0/' ~/.yaourtrc
    sed -i 's/^#USECOLOR=1/USECOLOR=1/' ~/.yaourtrc
    # Some yaourt packages will need this.
    sudo pacman -S qt5-tools qt5-base
fi


### PACMAN TOOLS ###
if [[ ("${1}" == "all") || ("${1}" == "pacmantools") ]]; then
    sudo pacman -S pcurses
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: octopi yaourt-gui"
    else
        yaourt -S --noconfirm pacmanxg octopi yaourt-gui
    fi
fi


### INPUT DEVICES ###
if [[ ("${1}" == "all") || ("${1}" == "input") ]]; then
    sudo pacman -S $(pacman -Ssq xf86-input-*)
fi


### VIDEO DRIVER ###
# https://wiki.archlinux.org/index.php/ATI
# https://wiki.archlinux.org/index.php/Intel_graphics
# https://wiki.archlinux.org/index.php/NVIDIA
if [[ ("${1}" == "all") || ("${1}" == "videodriver") ]]; then
    sudo pacman -S $(pacman -Ssq xf86-video-*) mesa-libgl
fi


### Desktops ### ###############################################################


### OPENBOX DESKTOP ###
if [[ ("${1}" == "all") || ("${1}" == "openbox") ]]; then
    sudo pacman -S openbox conky fbpanel feh tilda xscreensaver obconf obmenu gnome-keyring gpa openssh xfce4-appfinder xorg-xkbutils
    gsettings set org.gnome.settings-daemon.plugins.cursor active false
    # pacman -S gdm
    # systemctl enable gdm
fi

### CINNAMON DESKTOP ###
# https://github.com/linuxmint/nemo-extensions
# https://wiki.archlinux.org/index.php/Nemo
if [[ ("${1}" == "all") || ("${1}" == "cinnamon") ]]; then
    sudo pacman -S cinnamon gnome-keyring gpa nemo-fileroller nemo-preview nemo-share
    gsettings set org.nemo.desktop show-desktop-icons false
    # pacman -S gdm
    # systemctl enable gdm
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: nemo-compare"
    else
        yaourt -S --noconfirm nemo-compare rabbitvcs-nemo
    fi
fi

### GNOME DESKTOP ###
if [[ ("${1}" == "all") || ("${1}" == "gnome") ]]; then
    sudo pacman -S gnome gnome-software gnome-keyring gpa
    # pacman -S gdm
    # systemctl enable gdm
fi

### AWESOME DESKTOP ###
if [[ ("${1}" == "awesome") ]]; then
    sudo pacman -S awesome
    # pacman -S gdm
    # systemctl enable gdm
fi

### KDE PLASMA DESKTOP ###
if [[ ("${1}" == "kde") || ("${1}" == "plasma") ]]; then
    sudo pacman -S plasma kde-l10n-da kde-l10n-de kde-l10n-en_gb
    # pacman -S sddm
    # systemctl enable sddm
fi

### LXDE ###
if [[ ("${1}" == "lxde") ]]; then
    sudo pacman -S lxde-common openbox
    # pacman -S lxdm
    # systemctl enable lxdm
fi

### LXQT ###
if [[ ("${1}" == "lxde") ]]; then
    sudo pacman -S lxqt openbox
    # pacman -S sddm (recommended)
    # systemctl enable sddm
fi

### XFCE ###
if [[ ("${1}" == "lxqt") ]]; then
    sudo pacman -S xfce4 xfce4-goodies xscreensaver
    # pacman -S gdm
    # systemctl enable gdm
fi

### GDM ###
if [[ ("${1}" == "all") || ("${1}" == "gdm") ]]; then
    sudo pacman -S gdm
    sudo systemctl enable gdm
fi


### Applications ### ###########################################################


### TOOLS ###
if [[ ("${1}" == "all") || ("${1}" == "tools") ]]; then
    sudo pacman -S gnupg gpa
    sudo pacman -S ncdu baobab filelight 
    sudo pacman -S conky htop gnome-system-monitor xfce4-taskmanager wireshark-gtk
    sudo pacman -S xorg-xkill xfce4-appfinder synapse hwinfo hardinfo p7zip file-roller renameutils sshguard gparted packagekit gnome-packagekit gnome-software
    sudo pacman -S virtualbox virtualbox-guest-dkms virtualbox-guest-iso virtualbox-guest-modules virtualbox-guest-utils virtualbox-host-dkms virtualbox-host-modules
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: pyrenamer gconf-cleaner"
    else
        yaourt -S --noconfirm pyrenamer gconf-cleaner
    fi
fi


### DEVELOPMENT ###
# https://wiki.archlinux.de/title/Python
# https://wiki.archlinux.org/index.php/Qt
# https://wiki.archlinux.org/index.php/List_of_applications/Utilities#Integrated_development_environments
if [[ ("${1}" == "all") || ("${1}" == "dev") ]]; then
    sudo pacman -S make gcc binutils bison m4 autoconf automake libtool
    sudo pacman -S python python-pip
    sudo pacman -S diffuse meld doxygen cmake extra-cmake-modules
    sudo pacman -S git giggle gitg qgit mercurial hgview bzr subversion
    sudo pacman -S anjuta codeblocks ninja-ide qtcreator bluefish
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: python-devassistant"
    else
        yaourt -S aptana-studio  pycharm-community python-devassistant
    fi
fi


### TERMINAL ###
if [[ ("${1}" == "all") || ("${1}" == "terminal") ]]; then
    #sudo pacman -S xterm terminator gnome-terminal tilda yakuake
    sudo pacman -S xterm terminator gnome-terminal tilda gnome-commander mc screen tmux dtach
fi


### EDITOR ###
if [[ ("${1}" == "all") || ("${1}" == "editor") ]]; then
    sudo pacman -S gedit gedit-plugins gedit-code-assistance
    sudo pacman -S gvim-python3 vim-a vim-airline vim-align vim-bufexplorer vim-colorsamplerpack vim-ctrlp vim-doxygentoolkit vim-fugitive vim-guicolorscheme vim-indent-object vim-jad vim-jedi vim-jellybeans vim-latexsuite vim-minibufexpl vim-nerdtree vim-netrw vim-omnicppcomplete vim-pastie vim-project vim-rails vim-runtime vim-spell-de vim-spell-en vim-supertab vim-surround vim-syntastic vim-systemd vim-taglist vim-ultisnips vim-vcscommand vim-workspace
    sudo pacman -S emacs emacs-apel emacs-haskell-mode emacs-lua-mode emacs-muse emacs-php-mode emacs-pkgbuild-mode emacs-python-mode emacs-w3m-cvs
    sudo pacman- S ghex leafpad geany
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: atom-editor"
    else
        yaourt -S --noconfirm atom-editor lime-git
    fi
fi


### INTERNET ###
if [[ ("${1}" == "all") || ("${1}" == "internet") ]]; then
    sudo pacman -S firefox epiphany deluge clipgrab
fi


### COMMUNICATION ###
if [[ ("${1}" == "all") || ("${1}" == "communication") ]]; then
    sudo pacman -S evolution evolution-ews evolution-spamassassin evolution-bogofilter thunderbird
    sudo pacman -S pidgin pidgin-encryption pidgin-gfire pidgin-hotkeys pidgin-libnotify pidgin-otr pidgin-sipe pidgin-talkfilters pidgin-toobars
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: evolution-on evolution-tray evolution-rss pidgin-gpg pidgin-gnome-keying pidgin-twitter"
    else
        yaourt -S --noconfirm evolution-on evolution-tray evolution-rss pidgin-gpg pidgin-gnome-keying pidgin-twitter
    fi
fi


### NEWS ###
if [[ ("${1}" == "all") || ("${1}" == "news") ]]; then
    sudo pacman -S liferea
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: rssowl"
    else
        yaourt -S --noconfirm rssowl gwibber
    fi
fi


### MUTLIMEDIA ###
if [[ ("${1}" == "all") || ("${1}" == "multimedia") ]]; then
    # CODECS #
    sudo pacman -S celt faac faad2 flac ffmpeg gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly jasper lame a52dec libdca libdv libmpeg2 libmad libmpcdec opencore-amr opus schroedinger speex libtheora libvorbis libvpx wavpack x264 x265 xvidcore libx264 phonon-qt4-gstreamer phonon-qt5-gstreamer
    # DVD #
    sudo pacman -S libdvdcss libdvdread libdvdnav
    # Blu-Ray #
      # See below.
    # PLAYER #
    sudo pacman -S vlc totem whaawmp amarok banshee clementine picard puddletag 
    # Ripper #
    sudo pacman -S sound-juicer brasero
    # Admin & ebook & comic #
    sudo pacman -S gcstar calibre fbreader sigil mcomix
    sudo gcstar -n -u -a && sudo gcstar -n -u -c && sudo gcstar -n -u -w && sudo gcstar -n -u -i && sudo gcstar -n -u -e && sudo gcstar -n -u -l

    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: plex-media-server plex-media-server-plexpass coolreader python-epub ppub"
    else
        yaourt -S --noconfirm plex-media-server plex-media-server-plexpass 
        yaourt -S --noconfirm coolreader python-epub ppub
    fi
fi


### Blu-Ray ###
# https://wiki.archlinux.org/index.php/Blu-ray
# http://www.labdv.com/aacs/
# http://www.labdv.com/aacs/advanced-users.php
if [[ ("${1}" == "all") || ("${1}" == "multimedia") ]]; then
    sudo pacman -S libaacs libbluray

    mkdir -p ~/.config/aacs
    cd ~/.config/aacs
    #wget http://www.labdv.com/aacs/KEYDB.cfg
    wget http://vlc-bluray.whoknowsmy.name/files/KEYDB.cfg

    mkdir -p ~/.config/bdplus
    cd ~/.config/bdplus
    wget http://www.labdv.com/aacs/libbdplus/bdplus-vm0.bz2
    tar xjvf bdplus-vm0.bz2
    mv ./bdplus/vm0 ./
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: "
    else
        yaourt -S --noconfirm libbdplus
    fi
fi


### PODCASTS ###
if [[ ("${1}" == "all") || ("${1}" == "podcast") ]]; then
# Do not use miro. Miro installs malware.
# https://de.wikipedia.org/wiki/Miro_Media_Player#Malware

    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: gpodder3 vocal-bzr"
    else
        yaourt -S --noconfirm gpodder3 vocal-bzr
    fi
fi


### VIDEO ###
if [[ ("${1}" == "all") || ("${1}" == "video") ]]; then
    sudo pacman -S cheese gtk-recordmydesktop simplescreenrecorder guvcview
    sudo pacman -S transmageddon pitivi handbrake openshot avidemux-gtk avidemux-qt cinelerra-cv
    
    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: openmovieeditor shotcut-bin"
    else
        yaourt -S --noconfirm openmovieeditor shotcut-bin
    fi
fi


### GRAPHICS ###
if [[ ("${1}" == "all") || ("${1}" == "graphic") ]]; then
    sudo pacman -S gthumb shotwell eog
    sudo pacman -S imagemagick graphicsmagick
    sudo pacman -S gimp $(pacman -Ssq gimp-plugin) gimp-refocus gimp-ufraw cinepaint pinta mypaint scribus agave
    sudo pacman -S darktable luminancehdr hugin
    sudo pacman -S xsane xsane-gimp

    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: panomatic hugin-hg gimp-plugin-pandora gimp-plugin-stitchpanorama"
    else
        yaourt -S --noconfirm imagej fiji-binary panomatic hugin-hg gimp-plugin-pandora gimp-plugin-stitchpanorama
    fi
fi


### VECTOR GRAPHICS ###
if [[ ("${1}" == "all") || ("${1}" == "vector") ]]; then
    sudo pacman -S dia inkscape calligra calligra-karbon sk1 gnuplot
fi


### CONSTRUCTION ###
if [[ ("${1}" == "all") || ("${1}" == "construction") ]]; then
    sudo pacman -S freecad librecad openscad

    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: draftsight"
    else
        yaourt -S --noconfirm draftsight
    fi
fi


### OFFICE ###
if [[ ("${1}" == "all") || ("${1}" == "office") ]]; then
    sudo pacman -S hunspell hunspell-de hunspell-en libmythes mythes-de mythes-en hyphen hyphen-de hyphen-en 
    sudo pacman -S libreoffice-still libreoffice-still-de gnumeric gnome-calculator galculator xorg-xcalc
    sudo pacman -S homebank gnucash moneymanagerex
    sudo pacman -S evince cups cups-filters cups-pdf cups-pk-helper system-config-printer pdfmod zathura zathura-pdf-mupdf zathura-djvu ocrfeeder

    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: alexandria koha pdfstudio xpdf"
    else
        yaourt -S --noconfirm alexandria koha pdfstudio xpdf
    fi
fi


### LATEX ###
if [[ ("${1}" == "all") || ("${1}" == "latex") ]]; then
    sudo pacman -S texlive-core texlive-bibtexextra texlive-fontsextra texlive-formatsextra texlive-games texlive-genericextra texlive-htmlxml texlive-humanities texlive-latexextra texlive-music texlive-pictures texlive-plainextra texlive-pstricks texlive-publishers texlive-science texstudio lyx
    sudo pacman -S libreoffice-extension-texmaths libreoffice-extension-writer2latex

    # More #
    if [ -z "$(command -v yaourt)" ]; then
        echo "  'yaourt' command not found."
        echo "  Not installing: jabref"
    else
        yaourt -S --noconfirm jabref
    fi
fi


### Info ### ###################################################################
echo " "
echo "Installation finished."
echo " "
echo "For uninstallation call:"
echo "    $(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"` reset"
echo "or "
echo "    $(cd `dirname "${BASH_SOURCE[0]}"` && pwd)/`basename "${BASH_SOURCE[0]}"` uninstallall"


### Log ### ####################################################################
echo " "
time_end=$(date +"%s")
time_diff=$((${time_end}-${time_begin}))
echo "### Finished Job: ${JOB_NAME} at $(date "+%Y-%m-%dT%H:%M:%S"). ###"
echo "    $((${time_diff} / 60)) minutes and $((${time_diff} % 60)) seconds elapsed."
echo " "

################################################################################
################################################################################