Merge all common packages together

This commit puts all the common packages, that is, packages used with
any desktop environment or window manager, in one file. Although this
list is still a work in progress, this commit covers the majority of
shared packages.
This commit is contained in:
Donovan Glover 2018-09-19 17:17:33 -04:00
parent 5e5edda8a6
commit d0a0011ca1
No known key found for this signature in database
GPG Key ID: EA7408A77AE1BE65
19 changed files with 67 additions and 344 deletions

67
packages/arch/common Normal file
View File

@ -0,0 +1,67 @@
rng-tools
pacman-contrib
xdg-user-dirs
ttf-hack
ttf-fira-mono
ttf-roboto
ttf-dejavu
ttf-liberation
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-extra
tmux
htop
openssh
vim
neovim
git
diff-so-fancy
tig
ripgrep
fzf
httpie
fd
exa
jq
fdupes
bind-tools
ncdu
borg
youtube-dl
neofetch
pygmentize
xclip
zip
unzip
p7zip
unrar
texlive-most
minted
firefox
chromium
firejail
nodejs
npm
yarn
crystal
shards
llvm
rustup
jdk10-openjdk

View File

@ -1,25 +0,0 @@
#!/bin/sh
#
# Vim is the standard text editor.
#
# https://wiki.archlinux.org/index.php/Vim
set -xe
sudo pacman -S vim
sudo pacman -S neovim
# Add the `undo` directory for regular vim
mkdir -p ~/.vim/undo
# Install all vim plugins with `vim-plug`. Note that your
# .vimrc should already have a section with the plugins that
# you want to install.
#
# https://github.com/junegunn/vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim +PlugInstall +qall

View File

@ -1,18 +0,0 @@
#!/bin/sh
#
# Note that before we'd use the `ttf-noto` package from the AUR,
# although I doubt this is needed anymore with the official packages.
#
# https://wiki.archlinux.org/index.php/Fonts
set -xe
sudo pacman -S ttf-hack
sudo pacman -S ttf-fira-mono
sudo pacman -S ttf-roboto
sudo pacman -S ttf-dejavu ttf-liberation
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

View File

@ -1,17 +0,0 @@
#!/bin/sh
#
# The `zip` package lets us zip files from the shell. The `unzip`,
# `p7zip`, and `unrar` packages let us uncompress zip files, 7z
# files, and rar files respectfully.
#
# https://wiki.archlinux.org/index.php/Archiving_and_compression
set -xe
sudo pacman -S zip
sudo pacman -S unzip
sudo pacman -S p7zip
sudo pacman -S unrar

View File

@ -1,12 +0,0 @@
#!/bin/sh
#
# Firejail is the standard sandboxing software.
#
# To run a program with firejail, simply use:
# firejail <program_name>
#
# https://wiki.archlinux.org/index.php/Firejail
set -xe
pacman -S firejail

View File

@ -1,13 +0,0 @@
#!/bin/sh
#
# The `rng-tools` package is used to increase entropy and make
# /dev/random faster. This is useful for many programs, including
# [SDDM](https://wiki.archlinux.org/index.php/SDDM).
#
# https://wiki.archlinux.org/index.php/Rng-tools
set -xe
sudo pacman -S rng-tools
sudo systemctl enable rngd.service

View File

@ -1,17 +0,0 @@
#!/bin/sh
#
# XDG user dirs are a universal way to store files. They are used
# by other programs to determine where to find and save files.
#
# The following directories are created with `xdg-user-dirs`:
#
# Desktop | Documents | Downloads | Music
# Pictures | Public | Templates | Videos
#
# https://wiki.archlinux.org/index.php/Xdg_user_directories
set -xe
sudo pacman -S xdg-user-dirs
xdg-user-dirs-update

View File

@ -1,20 +0,0 @@
#!/bin/sh
#
# Git is the standard version control system.
#
# `diff-so-fancy` is used to show colorful diffs. These diffs
# look much better than the default, so I highly recommend it.
#
# `tig` is used as a terminal-based GUI for the git commit tree.
# It works really well and supports many vim keybindings out of
# the box.
#
# https://wiki.archlinux.org/index.php/Git
set -xe
sudo pacman -S git
sudo pacman -S diff-so-fancy
sudo pacman -S tig

View File

@ -1,9 +0,0 @@
#!/bin/sh
#
# `tmux` is the standard terminal multiplexer.
#
# https://wiki.archlinux.org/index.php/Tmux
set -xe
sudo pacman -S tmux

View File

@ -1,34 +0,0 @@
#!/bin/sh
#
# This script installs an assortment of common CLI tools that I use
# regularly enough to warrant inclusion.
#
# Note that you could also install `lolcat` if you really wanted to.
#
# https://github.com/junegunn/fzf
# https://github.com/sharkdp/fd
# https://github.com/BurntSushi/ripgrep
# https://github.com/jakubroztocil/httpie
# https://github.com/ogham/exa
# https://github.com/stedolan/jq
# https://github.com/borgbackup/borg
# https://github.com/rg3/youtube-dl
set -xe
sudo pacman -S jq # JSON manipulation
sudo pacman -S ripgrep # Faster than ag / ack / grep
sudo pacman -S fzf # Fuzzy find anything
sudo pacman -S httpie # Make HTTP requests
sudo pacman -S fd # Faster alternative to find
sudo pacman -S exa # Drop-in replacement for ls and tree
sudo pacman -S fdupes # Find duplicate files
sudo pacman -S bind-tools # DNS tools like dig
sudo pacman -S ncdu # Ncurses du (disk usage)
sudo pacman -S borg # Backup directories
sudo pacman -S youtube-dl # View online videos in mpv
sudo pacman -S neofetch # Bragging rights
sudo pacman -S pygmentize # Command line syntax highlighting (used for 'dog')

View File

@ -1,39 +0,0 @@
#!/bin/sh
#
# OpenSSH is the standard SSH tool for both client side and
# server side operations. By default SSH servers listen on TCP
# port 22, but you should specify a high random number to prevent
# brute force attempts.
#
# To connect to a server, use:
# ssh -p port user@server-address
#
# Note that connecting via public-key authentication (i.e. SSH
# keys) is the standard. You should disable password logins
# entirely.
#
# To let other clients access your machine, enable the ssh
# daemon service:
# systemctl enable sshd.service
#
# If you let external computers access your machine through SSH,
# then you need to make sure to configure `/etc/ssh/sshd_config`
# appropriately.
#
# Note that `mosh` may also be a viable solution for certain
# use cases (note that it must be used with a terminal multiplexer
# like tmux for session history).
#
# If you want to SSH into your server with an internet hotspot that
# blocks anything except ports 80 / 443, you can use a server
# multiplexer like `sslh`.
#
# https://wiki.archlinux.org/index.php/Secure_Shell
# https://wiki.archlinux.org/index.php/SSH_keys
# https://wiki.archlinux.org/index.php/Port_knocking
# https://mosh.org/
# https://www.rutschle.net/tech/sslh/README.html
set -xe
sudo pacman -S openssh

View File

@ -1,11 +0,0 @@
#!/bin/sh
#
# `pacman-contrib` is used for tools like `paccache`, which
# allows us to get rid of older cached packages to save
# disk space.
#
# https://wiki.archlinux.org/index.php/Pacman
set -xe
pacman -S pacman-contrib

View File

@ -1,23 +0,0 @@
#!/bin/sh
#
# `texlive-most` is a meta package that has everything we need.
# Before we'd pick and choose which packages to install, but this
# doesn't really matter in the long term and having "most" of
# texlive is good enough anyway.
#
# `minted` is used for syntax highlighting support. This is useful
# when writing code blocks with La(TeX)
#
# `texstudio` is a nice IDE for some projects. If your project is
# relatively small and you're using KDE, feel free to include it.
# HiDPI is supported out of the box.
#
# https://wiki.archlinux.org/index.php/TeX_Live
set -xe
pacman -S texlive-most
pacman -S minted
pacman -S texstudio

View File

@ -1,12 +0,0 @@
#!/bin/sh
#
# Firefox is the standard web browser.
#
# Note that you should install fonts before you install Firefox,
# as it requires a ttf variant.
#
# https://wiki.archlinux.org/index.php/Firefox
set -xe
pacman -S firefox

View File

@ -1,15 +0,0 @@
#!/bin/sh
#
# Inox is a patchset to provide a minimal Chromium-based browser.
#
# Note that if `inox-bin` isn't updated when the libraries it uses
# are updated (e.g. icu) then the most future-proof workaround is
# building it yourself with the `inox` package instead.
#
# `inox` should take around 3 hours to compile on a modern setup.
#
# https://github.com/gcarq/inox-patchset
set -xe
yay -S inox-bin

View File

@ -1,27 +0,0 @@
#!/bin/sh
#
# Node lets us write JavaScript code outside of the browser.
#
# Yarn is the preferred dependency manager, however, some programs
# have npm hard-coded as a dependency, so we install that as well.
#
# We set the yarn prefix to /usr/local so libraries installed
# globally with yarn are automatically in our $PATH.
#
# We enable emojis since our terminal (termite) supports them. A
# nice addition for some added flair.
#
# https://wiki.archlinux.org/index.php/Node.js
# https://yarnpkg.com/en/docs/cli/global
set -xe
sudo pacman -S nodejs
sudo pacman -S npm
sudo pacman -S yarn
yarn config set prefix /usr/local
yarn config set -- --emoji true

View File

@ -1,21 +0,0 @@
#!/bin/sh
#
# Crystal is a nice programming language that lets us use
# the usability of Ruby with the performance of C.
#
# `shards` is the official dependency manager for Crystal.
#
# The low level virtual machine (llvm) is used to build
# crystal directly from the source. This is useful when
# we're making changes to the Crystal programming language
# itself.
#
# https://wiki.archlinux.org/index.php/Crystal
set -xe
sudo pacman -S crystal
sudo pacman -S shards
sudo pacman -S llvm

View File

@ -1,21 +0,0 @@
#!/bin/sh
#
# Rust is a nice programming language that finds many errors
# for us at compile time. This is useful for writing safe code.
#
# The `rustup` package is used over `rust` because this allows us
# to have multiple rust versions at any given time and update them
# as needed.
#
# There are 3 toolchains: stable, beta, and nightly. In this script
# we install the stable toolchain and make it the default.
#
# https://wiki.archlinux.org/index.php/Rust
set -xe
sudo pacman -S rustup
rustup install stable
rustup default stable

View File

@ -1,10 +0,0 @@
#!/bin/sh
#
# Java is a programming language used in many programming contests.
# This is arguably the only reason why we have it here.
#
# https://wiki.archlinux.org/index.php/Java
set -xe
sudo pacman -S jdk10-openjdk