summaryrefslogtreecommitdiff
path: root/install.sh
blob: b7a66070ebf3fd5029c922b3672bb2860b2b4f51 (plain)
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
#!/bin/sh

SRCDIR="$HOME/.local/src/"

rm ~/.config/mimeapps.list
rm ~/.local/share/wallpapers/bg
mkdir -p "$SRCDIR"

stow $(ls -d */)

ln -sf ~/.local/share/wallpapers/mountains.jpg ~/.local/share/wallpapers/bg

# Update Make Install
umi() { \
    branch=${2:-master}
    echo "[UPDATE] $1 $branch"
    cd "$SRCDIR/$1"
    git pull
    git checkout "$branch"
    make -j
    if [ -z "$3" ]; then
        sudo checkinstall --nodoc -y sudo make install
    else
        sudo checkinstall --nodoc -y sudo make "$3" install
    fi
}

umi_all() { \
    umi "ly"
    umi "dwm" "patched-config"
    umi "dwmblocks"
    umi "st"
    umi "neovim"
    umi "nnn" "master" "strip"
    umi "devour"
    umi "dragon"

    cd "$SRCDIR/digimend-kernel-drivers"
    git pull
    # TODO is it necessary to uninstall?
    sudo make dkms_uninstall
    sudo make dkms_install

    cd "$SRCDIR/xournalpp"
    mkdir build ; cd build
    rm -rf packages
    cmake ..
    cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo --build . -- -j 6
    cmake --build . --target translations -- -j 6
    cmake .. -DCPACK_GENERATOR="DEB"
    cmake --build . --target package -- -j 6
    cd packages
    sudo dpkg -i xournalpp*
}

if [ "$1" = "i" ]; then
    # system
    sudo apt-get -y install xserver-xorg dbus-x11 fonts-liberation fonts-font-awesome libnotify-bin jmtpfs maim xwallpaper python3-pip xfce4-power-manager redshift i3lock dmenu suckless-tools pass git picom
    # media
    sudo apt-get -y install sxiv mpv ncmpcpp mpd ffmpeg pulseeffects
    # web
    sudo apt-get -y install firefox chromium thunderbird
    # office
    sudo apt-get -y install git unrar unzip p7zip-full zathura texlive virt-manager
    # theming
    sudo apt-get -y install oxygen-icon-theme sox imagemagick
    pip3 install pywal

    # required for ly
    sudo apt-get -y install build-essential libpam0g-dev libxcb-xkb-dev

    # required for dwm
    sudo apt-get -y install libx11-xcb-dev libxcb-res0-dev

    # required for st and dwm
    sudo apt-get -y install libfontconfig-dev libx11-dev libxft-dev

    # required for nvim
    sudo apt-get -y install ninja-build gettext libtool libtool-bin autoconf automake cmake g++ pkg-config unzip curl

    # required for devour
    sudo apt-get -y install libx11-dev

    # required for dragon
    sudo apt-get -y install libgtk-3-dev

    # required for digimend drives
    sudo apt-get -y install -y "linux-headers-$(uname -r)"

    # required for xournalpp
    sudo apt-get -y install -y "linux-headers-$(uname -r)" dkms
    sudo apt-get -y install cmake libgtk-3-dev libpoppler-glib-dev portaudio19-dev libsndfile-dev libcppunit-dev dvipng texlive libxml2-dev liblua5.3-dev libzip-dev librsvg2-dev gettext lua-lgi

    # required for nnn
    sudo apt-get -y install pkg-config libncursesw5-dev libreadline-dev

    cd "$SRCDIR"
    git clone --recurse-submodules https://github.com/nullgemm/ly.git
    git clone https://github.com/ivan-boikov/dwm
    git clone https://github.com/ivan-boikov/dwmblocks
    git clone https://github.com/lukesmithxyz/st
    git clone https://github.com/neovim/neovim
    git clone https://github.com/jarun/nnn
    # is it necessary with dwm swallow patch?
    git clone https://github.com/salman-abedin/devour
    git clone https://github.com/mwh/dragon
    git clone https://github.com/DIGImend/digimend-kernel-drivers
    git clone https://github.com/xournalpp/xournalpp

    umi_all
fi

if [ "$1" = "u" ]; then
    umi_all
fi

# cleaning Firefox, schizo-style
# https://12bytes.org/articles/tech/firefox/firefoxgecko-configuration-guide-for-privacy-and-performance-buffs/
if [ "$1" = "f" ]; then
    cd /usr/lib/firefox/browser/features
    sudo rm *.xpi

    cd "$SRCDIR"
    git clone https://github.com/arkenfox/user.js
    wget https://github.com/arkenfox/user.js/blob/master/updater.sh
    wget https://github.com/arkenfox/user.js/blob/master/prefsCleaner.sh
    wget https://github.com/ivan-boikov/user-overrides.js
    cp -r ~/.mozilla ~/.mozilla.bak
    chmod +x updater.sh
    chmod +x prefsCleaner.sh
    ./updater.sh
    ./prefsCleaner.sh
fi