Skip to content

Instantly share code, notes, and snippets.

@salopst
Created September 19, 2021 13:01
Show Gist options
  • Save salopst/89bf87ceecd666901d09841dbd0aef22 to your computer and use it in GitHub Desktop.
Save salopst/89bf87ceecd666901d09841dbd0aef22 to your computer and use it in GitHub Desktop.
Running list of apps and stuff installed following Pop OS install Jul 2021
#!/bin/bash
# 2021-07-13/2021-09-19
# [email protected]
# $HOME/.dotfiles/_startup/ubuntu-post-install.sh
#
# - Not intended for script-running
# - Very GNOMEy -- Something for non-APT package managers ??
# - Emacs sold seperately
export XDG_CONFIG_HOME=$HOME/.config
echo "$XDG_CONFIG_HOME"
sudo apt update && sudo apt full-upgrade -y
#### DELETE FROM STOCK
#
#
sudo apt purge --autoremove geary -y # replaced with evolution
# sudo apt purge --autoremove eog -y # POS cannot even crop... after all these years!
# gedit for geany ??
# GNOME videos for MPV / VLC ??
#### GENERAL --separate out the GNOMEy stuffs?
#
# if [ $(pgrep -c gnome-session) -gt 0 ]; then
# echo "Show me the way to go GNOME..."
# sudo apt install -y gnome-sushi gnome-tweaks
# # flatpaks
# flatpak install -y --noninteractive --user org.gnome.Evince org.gnome.Evolution
#
# fi
#
sudo apt install -y \
alacritty apt-file bat curl copyq dconf-editor evolution exa ffmpeg \
file flameshot flatpak fonts-powerline fonts-roboto fortune \
fonts-font-awesomefzf git gnome-sushi\
gnome-tweaks gthumb htop ibus-m17n imagemagick inxi jq kazam \
libimage-exiftool-perl \
libsane-hpaio lshw most neofetch nautilus-admin audacious-share \
nmap ocrfeeder openssh-server p7zip pavucontrol \
python3 python3-dev python3-pip python3-testresources \
qalc ruby-dev samba sane sane-airscan shotwell spice-vdagent \
stow sqlite3 texinfo \
tmux ubuntu-restricted-extras unrar unzip wireguard youtube-dl zsh
#### DEV
#
#
sudo apt install -y \
autoconf automake autotools-dev build-essential clang cmake \
gnome-builder gridsite-clients kbd \
libclang-dev libexif-dev libgtk-3-dev libimlib2-dev \
libudve-dev nodejs npm libreadline-dev
#### PHONE & FILESYSTEMS
#
# PHONE
sudo apt install -y \
ifuse libimobiledevice6 libimobiledevice-utils
# FILESYSTEMS
sudo mkdir -p /media/{iphone,macos,external}
sudo apt install -y \
btrfs-progs bzip2 fuse gnutls-devlibjpeg-dev libattr1-dev \
libdsk-utils libfuse3-dev libtiff-dev libssl-dev openssl libacl1-dev \
libacl1 libgif-dev libxpm-dev libdsk-utils libgtk2.0-dev libgtk-3-dev \
libfuse-dev libmediainfo-dev pkg-config libncurses5-dev libreadline-dev \
libxml2-dev libxt-dev libbz2 zfsutils-linux zlib1g-dev
#### VIRTUALISATION
#
#
sudo apt install -y \
genisoimage libguestfs-tools libosinfo-bin libvirt-dev linux-source \
qemu-kvm uuid-runtime virtinst virt-manager virt-viewer \
virtualbox virtualbox-ext-pack virtualbox-guest-additions-iso \
virtualbox-guest-dkms virtualbox-guest-utils
###############################################################################
#### END REPO APT INSTALLS
###############################################################################
##### FLATPAK
#
#
# to add to ulauncher etc, add aliases $XDG_CONFIG_HOME/.shell_aliases.sh...
# `alias vscodium="flatpak run com.vscodium.codium"`
#
# flatpak uninstall --delete-data --noninteractive -y <app-name>
if [ $(dpkg-query -W -f='${Status}' flatpak 2>/dev/null | grep -c "ok installed") -eq 0 ];
then
echo ""
echo "Installing → flatpak"
echo ""
sudo apt-get install -qq -y flatpak;
fi
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# com.play0ad.zeroad # strategy game about 13 ancient civs
# ✔ org.atheme.audacious # lightweight music player like ye olde WinAmp
# org.clementine_player.Clementine
# io.github.cmus.cmus
# ✔ com.github.qarmin.czkawka # CLI INSTALLED WITH CARGO
# org.kde.elisa # lightweight KDE/QT music player
# org.gnome.Evince
# org.gnome.Evolution # installed via repo
# ✔ com.github.tchx84.Flatseal # manage flatpak permissions
# ✔ com.github.johnfactotum.Foliate # ebook reader
# io.freetubeapp.FreeTube # privacy oriented YouTube client
# net.cozic.joplin_desktop # X-platform MD notetaker w/ sync
# flathub org.kde.kdenlive # grandaddy video editor
# ✔ io.github.seadve.Kooha # screenrecorder w/ Wayland support
# ✔ org.gnome.Lollypop # lightweight music player
# ✔ org.gnome.Meld # GNOME's differencing tool
# ✔ org.nomacs.ImageLounge # because ROG is a POS and cannot even crop
# ✔ nz.mega.MEGAsync # free non-google storage,
# md.obsidian.Obsidian # Markdown-based knowledge base
# org.openshot.OpenShot # video editing for the simples ?
# io.photoflare.photoflare # simple X-platform Image Editor
# ✔ org.musicbrainz.Picard # music tagger
# im.pidgin.Pidgin
# org.qownnotes.QOwnNotes
# org.shotcut.Shotcut # lightweight video editor
# ✔ flathub org.gnome.Shotwell # GNOME version of DigiKam?
# com.simplenote.Simplenote
# org.standardnotes.standardnotes
# ✔ io.typora.Typora # markdown editor
# com.valvesoftware.Steam
# org.videolan.VLC
# com.tutanota.Tutanota
flatpak install -y --noninteractive --user flathub \
net.ankiweb.Anki \
org.audacityteam.Audacity \
org.audacityteam.Audacity.Codecs \
com.bitwarden.desktop \
com.calibre_ebook.calibre \
com.discordapp.Discord \
com.github.johnfactotum.Foliate \
org.freefilesync.FreeFileSync \
com.github.tchx84.Flatseal \
org.gimp.GIMP \
org.inkscape.Inkscape \
org.nomacs.ImageLounge \
io.github.seadve.Kooha \
org.gnome.Lollypop \
io.github.liberodark.OpenDrive \
org.musicbrainz.Picard \
io.github.Qalculate \
com.obsproject.Studio \
ch.protonmail.protonmail-bridge \
ch.protonmail.protonmail-import-export-app \
com.github.wwmm.pulseeffects \
de.haeckerfelix.Shortwave \
org.signal.Signal \
com.skype.Client \
com.spotify.Client \
org.telegram \
org.texstudio.TeXstudio \
com.transmissionbt.Transmission \
io.typora.Typora \
com.vscodium.codium \
us.zoom.Zoom
##### PIP3 APPS (PYTHON3)
#
#
pip3 install --user --upgrade youtube_dl
# a CLI front-end for borgbackup
# pip3 -m pip install --user --upgrade emborg
# a set of rules for auto-managing files--- kinda like MacOS' Hazel or Maid
pip3 install --user --upgrade organize-tool
##### R
#
# https://cloud.r-project.org/bin/linux/ubuntu/
#
# update indices
sudo apt update -qq
# install two helper packages we need
sudo apt install --no-install-recommends software-properties-common dirmngr
# import the signing key (by Michael Rutter) for these repo
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
# add the R 4.0 repo from CRAN -- adjust 'focal' to 'groovy' or 'bionic' as needed
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
sudo apt install --no-install-recommends r-base
### RStudio
sudo apt install gdebi-core -y
cd ~/tmp
wget https://download1.rstudio.org/desktop/bionic/amd64/rstudio-1.4.1717-amd64.deb
sudo apt install -y ./rstudio-1.4.1717-amd64.deb
##### RUST, CARGO & FEEL-GOODS
#
#
curl https://sh.rustup.rs -sSf | sh
# Default Crate install location is $HOME/.cargo/bin
source $HOME/.cargo/env
#
# rust replacements & feel-goods... https://zaiste.net/posts/shell-commands-rust/
# aliases in .shell-aliases
# alias bat=batcat
# type exa >/dev/null 2>&1 && alias ls='exa -lahGi'
# alias fd=fdfind
cargo install bat # purdy cat
cargo install bandwhich # display current network utilization by process
# cargo install castor # GTK gemini, gopher, finger client
cargo install czkawka_gui # https://github.com/qarmin/czkawka
cargo install czkawka_cli # remove unnecessary files from your computer.
cargo install du-dust # du alternative; bin is `dust`
cargo install exa # drop-in replacement for `ls`
cargo install fd-find # a better `find` than `find`?
cargo install git-delta # file diffing
cargo install grex # provide pattern... it offers a possible regex
cargo install hyperfine # performance monitor
cargo install procs # procs is a modern replacement for `ps
cargo install ripgrep #`rg` .. a better grep?
cargo install skim # FZF alternative; bin is `sk`
cargo install sd # more intuitive than `sed`
cargo install starship # lovely drop-in command prompt
cargo install szyszka # GUI batch file-renamer
cargo install tealdeer # tldr alternative; bin is `tldr
cargo install ytop # purdy htop
cargo install zellij # a terminal workspace -- buggy as of 2021-04-28
cargo install zoxide # fast `cd`ing around the filesystem
##### NPM
#
#
# Should already be installed, but...
if [ $(dpkg-query -W -f='${Status}' npm 2>/dev/null | grep -c "ok installed") -eq 1 ];
then
echo ""
echo "Installing → npm"
echo ""
sudo apt-get install -qq -y npm;
fi
# sometimes get perm issues with installing to /usr/local/lib/node_modules
mkdir $HOME/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH >> $HOME/.profile
source $HOME/.profile
# for to make some wapps from web pages
# https://github.com/nativefier/nativefier
npm install -g nativefier
## EG... make icloud nativefier app for ical...
## 2021-03-28
# ```
# mkdir -p ~/tmp/icloud-nativefier-build-dir
# cd ../tmp/icloud-nativefier-build-dir
# # get nice icon
# wget https://i.imgur.com/m0abT4k.png -O icon.png
# nativefier -p linux -a x64 -i icon.png --disable-context-menu --disable-dev-tools --single-instance https://www.icloud.com/
# # App built to /home/yearluk/tmp/icloud-nativefier-build-dir/iCloud-linux-x64
# mv ~/tmp/icloud-nativefier-build-dir/iCloud-linux-x64 ~/bin/
# # add to $XDG_CONFIG_HOME/.shell_aliases.sh ...
# # alias icloud="$HOME/bin/iCloud-linux-x64/iCloud"
# cd ~/bin/iCloud-linux-x64
# # make the desktop file.... put in ~/.local/share/applications ... or /usr/share/applications/
# vscodium icloud.desktop
# chmod +x ./icloud.desktop
# ```
##### SHIT FROM OTHER PLACES
#
#
# Espanso: text expander ... https://espanso.org/
cd $HOME/tmp
wget https://github.com/federico-terzi/espanso/releases/latest/download/espanso-debian-amd64.deb
sudo apt install -y ./espanso-debian-amd64.deb
espanso start
# Module for espanso ... https://espanso.org/install/linux/
mkdir -p $HOME/opt
wget https://github.com/federico-terzi/modulo/releases/latest/download/modulo-x86_64.AppImage -O $HOME/opt/modulo.AppImage && chmod u+x $HOME/opt/modulo.AppImage
sudo ln -s $HOME/opt/modulo.AppImage /usr/bin/modulo
# KiTTY ... https://sw.kovidgoyal.net/kitty
# default install path is $HOME/.local/kitty.app
# To update kitty, simply re-run the command.
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin \
dest=$HOME/bin
cp $HOME/bin/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/kitty.desktop
sed -i "s|Icon=kitty|Icon=$HOME/bin/kitty.app/share/icons/hicolor/256x256/apps/kitty.png|g" ~/.local/share/applications/kitty.desktop
# purdy BASH prompt ... https://github.com/chris-marsh/pureline
cd $HOME/tmp && git clone https://github.com/chris-marsh/pureline.git
cp pureline/configs/powerline_full_256col.conf $HOME/.config/.pureline.conf
echo 'source $HOME/.config/ $HOME/.pureline.conf' >> $HOME/.bashrc
# Ulauncher: Alfred-like launcher
sudo add-apt-repository ppa:agornostal/ulauncher
sudo apt install ulauncher -y
# MediaElch: simple movie/tv show scraper
sudo add-apt-repository ppa:mediaelch/mediaelch-stable
sudo apt update
sudo apt install mediaelch -y
# Musique -- a music player
# cd $HOME/tmp
# wget -O https://flavio.tordini.org/files/musique/musique.deb
# sudo apt install musique.deb
# NordVPN
sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)
# sxiv: CLI imageviewer
cd $HOME/src && \
git clone https://github.com/muennich/sxiv.git && cd sxiv \
make && sudo make install
# ytfzf: CLI youtube viewer
cd $HOME/src && \
git clone https://github.com/pystardust/ytfzf && cd ytfzf \
sudo make install
# sudo make uninstall
##### DCONF / GSETTINGS
#
# $ grep -i -R --exclude-dir=~/.local 'gsettings set' ~/ > ~/Desktop/gsettings-search.txt
#
# GUI `dconf-editor` and CLI `gsettings` both access the same db, but command line has options not present in GUI... figures!
#
gsettings set org.gnome.desktop.interface cursor-theme "Pop"
gsettings set org.gnome.desktop.interface locate-pointer true
gsettings set org.gnome.desktop.interface icon-theme "Pop"
gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
gsettings set org.gnome.desktop.notifications.show-in-lockscreen false
gsettings set org.gnome.shell.extensions.pop-cosmic show-applications-button false
gsettings set org.gnome.shell.extensions.pop-cosmic show-workspaces-button true
# Since <Primary>t gives me alacrity...
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom04-GNOME-terminal/ name "GNOME Terminal"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom04-GNOME-terminal/ command "gnome-terminal --maximize"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom04-GNOME-terminal/ binding "<Primary><Alt>t"
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom04-GNOME-terminal/']"
# enable (or not) notifications for whatever apps
# [org/gnome/desktop/notifications]
# application-children=['io-elementary-appcenter', 'org-gnome-nautilus', 'org-freefilesync-freefilesync', 'org-signal-signal', 'us-zoom-zoom', 'org-gnome-tweaks', 'brave-browser', 'firefox', 'ca-desrt-dconf-editor', 'org-gnome-geary', 'org-gnome-shell-extensions', 'virtualbox', 'com-transmissionbt-transmission', 'ulauncher', 'flameshot', 'org-gnome-gedit', 'org-telegram-desktop', 'org-gnome-totem', 'io-github-hexchat', 'com-alacritty-alacritty', 'gnome-printers-panel', 'gnome-control-center', 'org-gnome-extensions-desktop', 'org-gnome-evolution', 'gnome-power-panel', 'rstudio', 'protonmail-bridge', 'org-gnome-evolution-alarm-notify', 'megasync', 'com-hamrick-vuescan', 'org-gimp-gimp', 'org-gnome-chromegnomeshell', 'musique', 'org-gnome-eog', 'gnome-datetime-panel', 'kazam', 'org-clementine-player-clementine', 'net-scribus-scribus', 'com-github-unrud-videodownloader', 'org-audacityteam-audacity', 'org-gnome-easytag', 'org-qbittorrent-qbittorrent', 'freefilesync', 'org-musicbrainz-picard', 'org-gnome-baobab', 'fr-handbrake-ghb']
# show-banners=true
dconf write /org/gnome/nautilus/preferences/always-use-location-entry true
dconf write /org/gnome/desktop/interface/clock-format "['24hr']"
dconf write /org/gnome/desktop/interface/locate-pointer "['true']"
dconf write /org/gnome/desktop/wm/keybindings/show-desktop "['<Super>D']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-1 "['<Super>1']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-2 "['<Super>2']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-3 "['<Super>3']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-4 "['<Super>4']"
dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:ctrl','caps:ctrl_modifier','compose:ralt']"
# for the GNOME panel-date-format extension, below
dconf write /org/gnome/shell/extensions/panel-date-format/format "'%A | %Y-%m-%d | ** %k:%M:%s ** '"
# for the workspace-switch-wraparound, below. switch workspaces w/ <Super>Tab
dconf write /org/gnome/desktop/wm/kwybindings/switch-to-workspace-down "['<Primary><Super>Down', '<Primary><Super>KP_Down', '<Primary><Super>j', '<Super>Tab']"
gsettings get org.gnome.desktop.input-sources sources
==> [('xkb', 'us'), ('xkb', 'in+hin-kagapa')]
# does not work...
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'in+hin-kagapa'), ('ibus', 'gr+polytonic')]"
('xkb', 'gr+polytonic')
('xkb', 'in+bolnagri'), ('xkb', 'eu')
org.gnome.desktop.input-sources []
##### GNOME EXTENSIONS --MANUAL
#
# https://extensions.gnome.org/extension/1462/panel-date-format/
# https://extensions.gnome.org/extension/1162/emoji-selector/
# https://extensions.gnome.org/accounts/profile/dlandau
# https://extensions.gnome.org/extension/750/openweather/
# https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/
# https://extensions.gnome.org/extension/4173/clear-top-bar/
# https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/
##### BROWSER EXTENSIONS --MANUAL
#
# bitwarden
# ublockorigin
# reddit enhancement suite
# tin eye image search
# alt search engine: https://millionshort.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment