old larbs was bloated xd

This commit is contained in:
Luke Smith 2018-08-01 20:25:18 -04:00
parent 7e03e8afbb
commit 48de01ff8d
43 changed files with 441 additions and 1381 deletions

View File

@ -1,3 +1,14 @@
# License # Copyright 2017 Luke Smith, under the GPLv3 License
LARBS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GPLv3 This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1 +0,0 @@
docs/README.md

133
README.md Normal file
View File

@ -0,0 +1,133 @@
# Luke's Auto-Rice Bootstraping Scripts (LARBS)
[Official Website: larbs.xyz](http://larbs.xyz)
LARBS is a quick series of scripts deployable on a fresh installation of Arch
Linux. They automatically install and setup a fully-featured, but still
lightweight tiling window manager "suite", meant to be minimal and
keyboard-based. It is based on
[my dotfiles](https://github.com/lukesmithxyz/voidrice) and install programs
that can be seen
[here](https://github.com/LukeSmithxyz/LARBS/blob/master/src/progs.csv).
LARBS is also intensely well-documented. Users can press `super+F1` at any time
to view a full guide and explanation of the keyboard shortcuts. The only
advised foreknowledge for potential users is a general familiarity with vim.
Now there are also small scripts like `getkeys` which display the default
bindings for the different terminal programs used by the system. Users can also
press `super+shift+e` at any time to watch a growing list of tutorial videos on
the same programs and other basic concepts from [my YouTube channel](https://youtube.com/c/lukesmithxyz).
You can also easily fork these scripts for your own purposes to deploy your own
configs if you like. All the actual scripts do is install a `.csv` list of
programs of your choice and set up system basics.
## Requirements
An already installed Arch Linux or derivative system (works on Manjaro and
Antergos as well). Works on Parabola too, but due to repository differences,
some minor programs might not install. Check the program list.
If you have a non-systemd system, you might also have to manually set up
Pulseaudio and Network Manager after running the script.
## Installation
### On an already existing Arch install
Boot up a fresh Arch install and run the following as the root user.
```sh
curl -LO lukesmith.xyz/larbs.sh #Downloads the script.
bash larbs.sh #Runs it.
```
Once that all is done, you should be able to log out, then log in as your newly
created user and type `startx` to begin the graphical environment. Congrats!
Note that if the graphical environment doesn't start correctly, you might want
to see what kind of drivers your computer needs to run Arch and install them
via `pacman` manually.
### Installing Arch automatically
I also have a script here for installing Arch automatically. I *only* wrote this
script so I could quickly install then test the other scripts on new computers,
but theoretically you could use it as well. *BUT* this is a lazy, pre-alpha
script which does not give you many options (it automatically chooses the New
York time zone, US English, GRUB, Network Manager, etc). Even more important, it
automatically partitions /dev/sda without asking, so unless, you have no
non-backed up data on your machine, I don't advise running it unless you don't
mind a full wipe. That said, you can run it like this after booting into an Arch
live environment:
```sh
curl -LO lukesmith.xyz/arch.sh #Downloads the script.
bash arch.sh #Runs it.
```
After the system installs, you'll have the option of bootstrapping automatically
into installing my configs as well.
Don't be worried if the installation of the first programs seems to take a
while. As general dependencies are installed, things will move very quickly.
Still, since this is a total online install, it might take a little longer than
just installing a distro from an ISO.
## Details
In addition to installing all the needed dependencies, LARBS also:
- Enables `wheel` users to run basic commands without passwords including
shuttting down, rebooting and updating packages.
- Installs and enables NetworkManager and Pulseaudio.
- Disables the beep.
## Version
We're close to what can be called LARBS 2.0, and here are some of the major
changes since the original version.
- More documentation in the `getkeys` program and `mod+shift-e`.
- Luke's build of st is now the default terminal, instead of urxvt. This
includes:
- Full unicode compatibility
- vim-like bindings
- Scrollback with keys and mouse, clipboard use and other add ons to
the default st build
- Xresources colors, allowing the use of wal/pywal
- i3status is the status bar instead of Polybar, which was bloated and failed
to build on many machines. The new i3status includes the modules below, all
of which are constructed to be as minimal and light on system resources as
possible:
- Weather forecasts using `wttr.in`, with highs, lows and rain chance.
- Current song information from `mpd`
- Unread mail from Luke's `mutt-wizard`
- Possible pacman updates
- Status of torrents in transmission-daemon
- Expected date, time, battery, internet and volume modules
- Switch from mocp to mpd/ncmpcpp for music.
- System is more minimalist/suckless.
- dmenu is used instead of rofi for simplicity's sake.
- Deployment of my new mutt-wizard for secure offline email configuration
instead of config files for the user to manually edit.
- Firefox instead of qutebrowser for default browser (qutebrowser configs
remain for qutebrowser afeccionados)
- A default profile of Firefox including some privacy features, an ad-blocker
and VimVixen, for vim-based keyboard shortcuts.
- Extensive implementation of dmenu, including for mounting/unmounting drives,
display selection, confirmation for shutdown and other crucial commands, link
handling and screen/audio recording.
- Updates to config files can be pulled with git now.
- i3 window resize now intuitive directions
- Removal of a lot of brainlethood in the original design, where I relocated
configs for alleged extensibility's sake. That's all been fixed now.
- Configs for the new versions of qutebrowser, newsboat/newsbeuter, neomutt,
etc.
- Link handling scripts for mutt, newsboat and vim
- vi mode is now default in bash (with retention of emacs-mode ctrl-l)
- Caps lock functions both as a super key and escape key with xcape.
- Use of the much better, newer version of my shortcut-sync.
- And the repository is *significantly* smaller than it was before, meaning a
faster download.
- A million and one other tweaks and bug fixes.

View File

@ -6,9 +6,6 @@
#which means RIP in peace qq your data unless you've already backed up all of your drive. #which means RIP in peace qq your data unless you've already backed up all of your drive.
pacman -S --noconfirm dialog || { echo "Error at script start: Are you sure you're running this as the root user? Are you sure you have an internet connection?"; exit; } pacman -S --noconfirm dialog || { echo "Error at script start: Are you sure you're running this as the root user? Are you sure you have an internet connection?"; exit; }
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m'
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "This is an Arch install script that is very rough around the edges.\n\nOnly run this script if you're a big-brane who doesn't mind deleting your entire /dev/sda drive.\n\nThis script is only really for me so I can autoinstall Arch.\n\nt. Luke" 15 60 || exit dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "This is an Arch install script that is very rough around the edges.\n\nOnly run this script if you're a big-brane who doesn't mind deleting your entire /dev/sda drive.\n\nThis script is only really for me so I can autoinstall Arch.\n\nt. Luke" 15 60 || exit
@ -20,6 +17,19 @@ dialog --defaultno --title "Time Zone select" --yesno "Do you want use the defau
dialog --no-cancel --inputbox "Enter partitionsize in gb, separated by space (swap & root)." 10 60 2>psize dialog --no-cancel --inputbox "Enter partitionsize in gb, separated by space (swap & root)." 10 60 2>psize
pass1=$(dialog --no-cancel --passwordbox "Enter a root password." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
while true; do
[[ "$pass1" != "" && "$pass1" == "$pass2" ]] && break
pass1=$(dialog --no-cancel --passwordbox "Passwords do not match or are not present.\n\nEnter password again." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
done
export pass="$pass1"
IFS=' ' read -ra SIZE <<< $(cat psize) IFS=' ' read -ra SIZE <<< $(cat psize)
re='^[0-9]+$' re='^[0-9]+$'
@ -54,28 +64,52 @@ w
EOF EOF
partprobe partprobe
mkfs.ext4 /dev/sda4 yes | mkfs.ext4 /dev/sda4
mkfs.ext4 /dev/sda3 yes | mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda1 yes | mkfs.ext4 /dev/sda1
mkswap /dev/sda2 mkswap /dev/sda2
swapon /dev/sda2 swapon /dev/sda2
mount /dev/sda3 /mnt mount /dev/sda3 /mnt
mkdir /mnt/boot mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot mount /dev/sda1 /mnt/boot
mkdir /mnt/home mkdir -p /mnt/home
mount /dev/sda4 /mnt/home mount /dev/sda4 /mnt/home
pacstrap /mnt base base-devel pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab genfstab -U /mnt >> /mnt/etc/fstab
cat tz.tmp > /mnt/tzfinal.tmp cp tz.tmp /mnt/tzfinal.tmp
rm tz.tmp rm tz.tmp
curl https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/src/chroot.sh > /mnt/chroot.sh && arch-chroot /mnt bash chroot.sh && rm /mnt/chroot.sh curl https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/src/chroot.sh > /mnt/chroot.sh && arch-chroot /mnt bash chroot.sh && rm /mnt/chroot.sh
cat comp > /mnt/etc/hostname && rm comp ### BEGIN
arch-chroot /mnt echo "root:$pass" | chpasswd
TZuser=$(cat tzfinal.tmp)
ln -sf /usr/share/zoneinfo/$TZuser /etc/localtime
hwclock --systohc
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US ISO-8859-1" >> /etc/locale.gen
locale-gen
pacman --noconfirm --needed -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
pacman --noconfirm --needed -S grub && grub-install --target=i386-pc /dev/sda && grub-mkconfig -o /boot/grub/grub.cfg
pacman --noconfirm --needed -S dialog
larbs() { curl -O https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/src/larbs.sh && bash larbs.sh ;}
dialog --title "Install Luke's Rice" --yesno "This install script will easily let you access Luke's Auto-Rice Boostrapping Scripts (LARBS) which automatically install a full Arch Linux i3-gaps desktop environment.\n\nIf you'd like to install this, select yes, otherwise select no.\n\nLuke" 15 60 && larbs
### END
mv comp /mnt/etc/hostname
dialog --defaultno --title "Final Qs" --yesno "Eject CD/ROM (if any)?" 5 30 && eject
dialog --defaultno --title "Final Qs" --yesno "Reboot computer?" 5 30 && reboot dialog --defaultno --title "Final Qs" --yesno "Reboot computer?" 5 30 && reboot
dialog --defaultno --title "Final Qs" --yesno "Return to chroot environment?" 6 30 && arch-chroot /mnt dialog --defaultno --title "Final Qs" --yesno "Return to chroot environment?" 6 30 && arch-chroot /mnt
clear clear

View File

@ -1,14 +0,0 @@
# Copyright 2017 Luke Smith, under the GPLv3 License
LARBS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1,138 +0,0 @@
# Luke's Auto-Rice Bootstraping Scripts (LARBS)
[Official Website: larbs.xyz](http://larbs.xyz)
LARBS is a quick series of scripts deployable on a fresh installation of Arch
Linux. They automatically install and setup a fully-featured, but still
lightweight tiling window manager "suite", meant to be minimal and
keyboard-based. It is based on
[my dotfiles](https://github.com/lukesmithxyz/voidrice) and install programs
that can be seen
[here](https://github.com/LukeSmithxyz/LARBS/blob/master/src/progs.csv).
LARBS is also intensely well-documented. Users can press `super+F1` at any time
to view a full guide and explanation of the keyboard shortcuts. The only
advised foreknowledge for potential users is a general familiarity with vim.
Now there are also small scripts like `getkeys` which display the default
bindings for the different terminal programs used by the system. Users can also
press `super+shift+e` at any time to watch a growing list of tutorial videos on
the same programs and other basic concepts from [my YouTube channel](https://youtube.com/c/lukesmithxyz).
You can also easily fork these scripts for your own purposes to deploy your own
configs if you like. All the actual scripts do is install a `.csv` list of
programs of your choice and set up system basics.
## Requirements
An already installed Arch Linux or derivative system (works on Manjaro and
Antergos as well). Works on Parabola too, but due to repository differences,
some minor programs might not install. Check the program list.
If you have a non-systemd system, you might also have to manually set up
Pulseaudio and Network Manager after running the script.
## Installation
### On an already existing Arch install
Boot up a fresh Arch install and run the following as the root user.
```sh
curl -LO lukesmith.xyz/larbs.sh #Downloads the script.
bash larbs.sh #Runs it.
```
Once that all is done, you should be able to log out, then log in as your newly
created user and type `startx` to begin the graphical environment. Congrats!
Note that if the graphical environment doesn't start correctly, you might want
to see what kind of drivers your computer needs to run Arch and install them
via `pacman` manually.
### Installing Arch automatically
I also have a script here for installing Arch automatically. I *only* wrote this
script so I could quickly install then test the other scripts on new computers,
but theoretically you could use it as well. *BUT* this is a lazy, pre-alpha
script which does not give you many options (it automatically chooses the New
York time zone, US English, GRUB, Network Manager, etc). Even more important, it
automatically partitions /dev/sda without asking, so unless, you have no
non-backed up data on your machine, I don't advise running it unless you don't
mind a full wipe. That said, you can run it like this after booting into an Arch
live environment:
```sh
curl -LO lukesmith.xyz/arch.sh #Downloads the script.
bash arch.sh #Runs it.
```
After the system installs, you'll have the option of bootstrapping automatically
into installing my configs as well.
Don't be worried if the installation of the first programs seems to take a
while. As general dependencies are installed, things will move very quickly.
Still, since this is a total online install, it might take a little longer than
just installing a distro from an ISO.
## Details
In addition to installing all the needed dependencies, LARBS also:
- Enables `wheel` users to run basic commands without passwords including
shuttting down, rebooting and updating packages.
- Installs and enables NetworkManager and Pulseaudio.
- Disables the beep.
## Version
We're close to what can be called LARBS 2.0, and here are some of the major
changes since the original version.
- More documentation in the `getkeys` program and `mod+shift-e`.
- Luke's build of st is now the default terminal, instead of urxvt. This
includes:
- Full unicode compatibility
- vim-like bindings
- Scrollback with keys and mouse, clipboard use and other add ons to
the default st build
- Xresources colors, allowing the use of wal/pywal
- i3status is the status bar instead of Polybar, which was bloated and failed
to build on many machines. The new i3status includes the modules below, all
of which are constructed to be as minimal and light on system resources as
possible:
- Weather forecasts using `wttr.in`, with highs, lows and rain chance.
- Current song information from `mpd`
- Unread mail from Luke's `mutt-wizard`
- Possible pacman updates
- Status of torrents in transmission-daemon
- Expected date, time, battery, internet and volume modules
- Switch from mocp to mpd/ncmpcpp for music.
- System is more minimalist/suckless.
- dmenu is used instead of rofi for simplicity's sake.
- Deployment of my new mutt-wizard for secure offline email configuration
instead of config files for the user to manually edit.
- Firefox instead of qutebrowser for default browser (qutebrowser configs
remain for qutebrowser afeccionados)
- A default profile of Firefox including some privacy features, an ad-blocker
and VimVixen, for vim-based keyboard shortcuts.
- Extensive implementation of dmenu, including for mounting/unmounting drives,
display selection, confirmation for shutdown and other crucial commands, link
handling and screen/audio recording.
- Updates to config files can be pulled with git now.
- i3 window resize now intuitive directions
- Removal of a lot of brainlethood in the original design, where I relocated
configs for alleged extensibility's sake. That's all been fixed now.
- Configs for the new versions of qutebrowser, newsboat/newsbeuter, neomutt,
etc.
- Link handling scripts for mutt, newsboat and vim
- vi mode is now default in bash (with retention of emacs-mode ctrl-l)
- Caps lock functions both as a super key and escape key with xcape.
- Use of the much better, newer version of my shortcut-sync.
- And the repository is *significantly* smaller than it was before, meaning a
faster download.
- A million and one other tweaks and bug fixes.
### Soon to be added features
*At this point, all the planned features are there, and it's now just an issue
of fine-tuning them.*

View File

@ -1,13 +0,0 @@
# To-Do List
(No particular order.)
+ Scripts for Parabola
+ Scripts for OpenRC distros
+ For Arch
+ For Parabola
+ Smart installer for graphics drivers
+ Pulseaudio sinks on my default
+ Improvement of the arch.sh script, making it available for public use:
+ Options for partition sizes and drive choice
+ Options for localization and keyboards

141
larbs.sh Executable file
View File

@ -0,0 +1,141 @@
#!/bin/bash
# You can provide a custom repository with -r or a custom programs csv with -p.
# Otherwise, the script will use my defaults.
while getopts ":r:p:h" o; do
case "${o}" in
h)
echo -e "Optional arguments for custom use:\n-r: Dotfiles repository\n-p: Dependencies and programs csv" && exit ;;
r)
dotfilesrepo=${OPTARG} ;;
p)
progsfile=${OPTARG} ;;
*)
echo "-$OPTARG is not a valid option." && exit ;;
esac
done
[ -z ${dotfilesrepo+x} ] && dotfilesrepo="https://github.com/lukesmithxyz/voidrice.git"
[ -z ${progsfile+x} ] && progsfile="https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/progs.csv"
pacman -S --noconfirm --needed dialog || { echo "Error at script start: Are you sure you're running this as the root user? Are you sure you're using an Arch-based distro? ;-) Are you sure you have an internet connection?"; exit; }
dialog --title "Welcome!" --msgbox "Welcome to Luke's Auto-Rice Bootstrapping Script!\n\nThis script will automatically install a fully-featured i3wm Arch Linux desktop, which I use as my main machine.\n\n-Luke" 10 60
name=$(dialog --no-cancel --inputbox "First, please enter a name for the user account." 10 60 3>&1 1>&2 2>&3 3>&1)
re="^[a-z_][a-z0-9_-]*$"
while ! [[ "${name}" =~ ${re} ]]; do
name=$(dialog --no-cancel --inputbox "Username not valid. Give a username beginning with a letter, with only lowercase letters, - and _." 10 60 3>&1 1>&2 2>&3 3>&1)
done
pass1=$(dialog --no-cancel --passwordbox "Enter a password for that user." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
while [ $pass1 != $pass2 ]
do
pass1=$(dialog --no-cancel --passwordbox "Passwords do not match.\n\nEnter password again." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
unset pass2
done
dialog --infobox "Adding user \"$name\"..." 4 50
useradd -m -g wheel -s /bin/bash $name
echo "$name:$pass1" | chpasswd
dialog --title "Let's get this party started!" --msgbox "The rest of the installation will now be totally automated, so you can sit back and relax.\n\nIt will take some time, but when done, you can relax even more with your complete system.\n\nNow just press <OK> and the system will begin installation!" 13 60 || { clear; exit; }
dialog --infobox "Refreshing Arch Keyring..." 4 40
pacman --noconfirm -Sy archlinux-keyring &>/dev/null
# Give packerwrapper a list of programs. Finds only those needing installation
# then, it sorts them into $mainqueue and $aurqueue for progs installable from
# main repo or AUR.
posprogs=$(pacman -Sl | awk '{print $2}')
packerwrapper() { \
for arg in "$@"
do
pacman -Q "$arg" &>/dev/null && continue
pacman -Qg "$arg" &>/dev/null && continue
grep "^$arg$" <<< $posprogs &>/dev/null && mainqueue="$mainqueue $arg" && continue
aurqueue="$aurqueue $arg"
done ;}
dialog --infobox "Getting program list..." 4 40
packerwrapper $(curl -sL $progsfile | grep ^, | cut -d ',' -f2)
count=$(echo "$mainqueue" | wc -w)
for x in $mainqueue
do
n=$((n+1))
dialog --title "LARBS Installation" --infobox "Downloading and installing program $n out of $count: $x...\n\nThe first programs will take more time due to dependencies." 8 70
pacman --noconfirm --needed -S "$x" &>/dev/null
done
sed -e "/#LARBS/d" /etc/sudoers
echo "%wheel ALL=(ALL) NOPASSWD: ALL #LARBS" >> /etc/sudoers
[[ -f /usr/bin/packer ]] || (
dialog --infobox "Installing \"packer\", an AUR helper..." 10 60
cd /tmp
rm -rf /tmp/packer*
curl -sO https://aur.archlinux.org/cgit/aur.git/snapshot/packer.tar.gz &&
sudo -u $name tar -xvf packer.tar.gz &>/dev/null &&
cd packer &&
sudo -u $name makepkg --noconfirm -si &>/dev/null
cd /tmp)
count=$(echo "$aurqueue" | wc -w)
n=0
for prog in $aurqueue
do
n=$((n+1))
dialog --infobox "Downloading and installing program $n out of $count: $prog..." 10 60
sudo -u $name packer -S --noconfirm "$prog" &>/dev/null
done
# Downloading and installing dotfiles
dialog --infobox "Downloading and installing config files..." 4 60
rm -rf /tmp/dotfiles/
sudo -u $name git clone --depth 1 $dotfilesrepo /tmp/dotfiles &>/dev/null &&
sudo -u $name rsync -rl /tmp/dotfiles/ /home/$name
sudo -u $name curl -s https://raw.githubusercontent.com/LukeSmithxyz/shortcut-sync/master/shortcuts.sh > /home/$name/.scripts/shortcuts.sh && chown $name:wheel /home/$name/.scripts/shortcuts.sh && chmod +x /home/$name/.scripts/shortcuts.sh
dialog --infobox "Preparing welcome message..." 4 50
echo "exec_always --no-startup-id notify-send -i ~/.scripts/larbs.png '<b>Welcome to LARBS:</b> Press Super+F1 for the manual.' -t 10000" >> /home/$name/.config/i3/config
dialog --infobox "Reseting Pulseaudio..." 4 50
killall pulseaudio
sudo -u $name pulseaudio --start
# For installing programs via git. Give full url as argument
gitinstall() { \
dir=$(mktemp -d)
dialog --infobox "Installing \"$(basename $1)\" from source..." 4 40
git clone --depth 1 "$1" $dir
cd $dir
make
make install
}
gitinstall https://github.com/lukesmithxyz/st.git &>/dev/null
gitinstall https://github.com/lukesmithxyz/dmenu.git &>/dev/null
dialog --infobox "Enabling Network Manager..." 4 40
systemctl enable NetworkManager
systemctl start NetworkManager
dialog --infobox "Getting rid of that retarded error beep sound..." 10 50
rmmod pcspkr
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
dialog --infobox "Updating sudoers file..." 4 40
sed -e "/#LARBS/d" /etc/sudoers
echo "%wheel ALL=(ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/packer -Syu,/usr/bin/packer -Syyu,/usr/bin/systemctl restart NetworkManager,/usr/bin/rc-service NetworkManager restart, /usr/bin/pacman -Syyu --noconfirm #LARBS" >> /etc/sudoers
dialog --title "All done!" --msgbox "Congrats! Provided there were no hidden errors, the script completed successfully and all the programs and configuration files should be in place.\n\nTo run the new graphical environment, log out and log back in as your new user, then run the command \"startx\" to start the graphical environment.\n\n-Luke" 12 80
clear

109
progs.csv Normal file
View File

@ -0,0 +1,109 @@
,arandr,gui adjustment of screen
,base-devel,sudo and compilation software
,calcurse,calendar
,compton,transparency and removing tearing
,dmenu,command runner
,dosfstools,file system compatibility
,dunst,notification system
,exfat-utils,file system compatibility
,feh,image viewer
,ffmpeg,audio/video recording and splicing
,firefox,default browser
,git,dling config repos
,gnome-keyring,system keyring
,gnome-themes-extra,for dark GTK theme
,gvim,text editor
,i3-gaps,window manager
,i3blocks,status bar
,i3lock,screen lock
,mpc,music daemon control
,mpd,music daemon
,mpv,video/gif player
,ncmpcpp,music player
,network-manager-applet,GUI wifi manager
,networkmanager,network manager
,newsboat,RSS reader
,ttf-emojione-color,emoji fonts
,ntfs-3g,file system compatibility
,packer,AUR manager
,pamixer,audio system control
,pulseaudio,audio system
,pulseaudio-alsa,audio system
,pulsemixer,audio system manager
,python-pywal,colorscheme generator
,rsync,
,sc-im,spreadsheet manager
,screenkey,screencasting keyboard view
,speedometer,internet traffic view
,tmux,multiplexer and dropdown
,ttf-inconsolata,mono font
,ttf-linux-libertine,non-mono fonts
,unclutter-xfixes-git,hides mouse if idle
,unrar,extraction
,unzip,extraction
,urlview,url parser for terminal apps
,vim-pathogen,vim package manager
,w3m,,
,wget,
,xcape,for double mapping of escape
,xdotool,moving windows on command
,xorg-server,graphical environment
,xorg-xdpyinfo,screencasting
,xorg-xinit,graphical environment
,xssstate,screen idle detection
,youtube-dl,downloads youtube videos
,youtube-viewer,watch YT videos without browser
,zathura,pdf reader
,zathura-djvu,djvu reader
,zathura-pdf-mupdf,pdf compatibility
,poppler,ranger pdf previews
,ranger,file manager
,mediainfo,ranger audio/video info preview
,atool,ranger archive previews
,fzf,ranger fuzzy finder
,highlight,ranger previews highlighted
D,asciiquarium,terminal screensaver
D,bash-pipes,terminal screensaver
D,cli-visualizer,music/audio visualizer
D,cmatrix,terminal screensaver
D,figlet,text decoration
D,htop-vim-git,system info
lock screen",D,imagemagick,"image conversion and modification
D,neofetch,system stats
D,projectm-pulseaudio,music/audio visualizer
D,screenfetch,system stats
D,scrot,screenshots
T,transmission-cli,torrent
T,transmission-remote-cli-git,torrent interface
L,libreoffice-fresh,office suite
X,biber,LaTeX references
X,texlive-lang,LaTeX packages
X,texlive-most,LaTeX packages
X,vim-live-latex-preview,latex preview
B,blender,video modification and modelling
G,gimp,image modification
F,noto-fonts,Near Eastern Fonts
F,noto-fonts-cjk,East Asian fonts
F,ttf-ancient-fonts,rare and ancient fonts
E,neomutt,email client
E,notmuch,email system (indexing and search)
E,notmuch-mutt,email system (indexing and search)
E,offlineimap,email system (mail sync)
P,pandoc,file conversion
P,pandoc-citeproc,citations through pandoc
R,r,statistics and calculator
U,rxvt-unicode,alternate terminal
U,urxvt-perls,perl scripts for urxvt
U,urxvt-resize-font-git,resize urxvt font
Can't render this file because it has a wrong number of fields in line 46.

View File

@ -1,23 +0,0 @@
#Potential variables: timezone, lang and local
passwd
TZuser=$(cat tzfinal.tmp)
ln -sf /usr/share/zoneinfo/$TZuser /etc/localtime
hwclock --systohc
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US ISO-8859-1" >> /etc/locale.gen
locale-gen
pacman --noconfirm --needed -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
pacman --noconfirm --needed -S grub && grub-install --target=i386-pc /dev/sda && grub-mkconfig -o /boot/grub/grub.cfg
pacman --noconfirm --needed -S dialog
larbs() { curl -O https://raw.githubusercontent.com/LukeSmithxyz/LARBS/master/src/larbs.sh && bash larbs.sh ;}
dialog --title "Install Luke's Rice" --yesno "This install script will easily let you access Luke's Auto-Rice Boostrapping Scripts (LARBS) which automatically install a full Arch Linux i3-gaps desktop environment.\n\nIf you'd like to install this, select yes, otherwise select no.\n\nLuke" 15 60 && larbs

View File

@ -1,113 +0,0 @@
#!/bin/bash
pacman -S --noconfirm --needed dialog || { echo "Error at script start: Are you sure you're running this as the root user? Are you sure you're using an Arch-based distro? ;-) Are you sure you have an internet connection?"; exit; }
dialog --title "Welcome!" --msgbox "Welcome to Luke's Auto-Rice Bootstrapping Script!\n\nThis script will automatically install a fully-featured i3wm Arch Linux desktop, which I use as my main machine.\n\n-Luke" 10 60
name=$(dialog --no-cancel --inputbox "First, please enter a name for the user account." 10 60 3>&1 1>&2 2>&3 3>&1)
re="^[a-z_][a-z0-9_-]*$"
while ! [[ "${name}" =~ ${re} ]]; do
name=$(dialog --no-cancel --inputbox "Username not valid. Give a username beginning with a letter, with only lowercase letters, - and _." 10 60 3>&1 1>&2 2>&3 3>&1)
done
pass1=$(dialog --no-cancel --passwordbox "Enter a password for that user." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
while [ $pass1 != $pass2 ]
do
pass1=$(dialog --no-cancel --passwordbox "Passwords do not match.\n\nEnter password again." 10 60 3>&1 1>&2 2>&3 3>&1)
pass2=$(dialog --no-cancel --passwordbox "Retype password." 10 60 3>&1 1>&2 2>&3 3>&1)
unset pass2
done
dialog --infobox "Adding user \"$name\"..." 4 50
useradd -m -g wheel -s /bin/bash $name >/dev/tty6
echo "$name:$pass1" | chpasswd >/dev/tty6
cmd=(dialog --separate-output --nocancel --buildlist "Press <SPACE> to select the packages you want to install. LARBS will install all the packages you put in the right column.
Use \"^\" and \"\$\" to move to the left and right columns respectively. Press <ENTER> when done." 22 76 16)
options=(X "LaTeX packages" off
L "Libreoffice" off
G "GIMP" off
B "Blender" off
E "Emacs" off
F "Fonts for unicode and other languages" off
T "Transmission torrent client" off
D "Music visualizers and decoration" off
P "Pandoc and R/Rmarkdown" off
)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
let="\(\|[a-z]\|$(echo $choices | sed -e "s/ /\\\|/g")\)"
dialog --title "Let's get this party started!" --msgbox "The rest of the installation will now be totally automated, so you can sit back and relax.\n\nIt will take some time, but when done, you can relax even more with your complete system.\n\nNow just press <OK> and the system will begin installation!" 13 60 || { clear; exit; }
clear
dialog --infobox "Refreshing Arch Keyring..." 4 40
pacman --noconfirm -Sy archlinux-keyring >/dev/tty6
dialog --infobox "Getting program list..." 4 40
curl https://raw.githubusercontent.com/LukeSmithxyz/larbs/master/src/progs.csv > /tmp/progs.csv
rm /tmp/aur_queue &>/dev/tty6
count=$(cat /tmp/progs.csv | grep -G ",$let," | wc -l)
n=0
installProgram() { ( (pacman --noconfirm --needed -S $1 &>/dev/tty6 && echo $1 installed.) || echo $1 >> /tmp/aur_queue) || echo $1 >> /tmp/larbs_failed ;}
for x in $(cat /tmp/progs.csv | grep -G ",$let," | awk -F, {'print $1'})
do
n=$((n+1))
dialog --title "LARBS Installation" --infobox "Downloading and installing program $n out of $count: $x...\n\nThe first programs will take more time due to dependencies. You can watch the output on tty6." 8 70
installProgram $x >/dev/tty6
done
dialog --infobox "Preparing the user script..." 4 40
echo "%wheel ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
cd /tmp
if [ $1 = "devel" ]
then curl https://raw.githubusercontent.com/LukeSmithxyz/larbs/devel/src/larbs_user.sh > /tmp/larbs_user.sh;
else curl https://raw.githubusercontent.com/LukeSmithxyz/larbs/master/src/larbs_user.sh > /tmp/larbs_user.sh;
fi
sudo -u $name bash /tmp/larbs_user.sh
rm -f /tmp/larbs_user.sh
dialog --infobox "Installing \"st\" from source..." 4 40
cd /tmp
rm -rf st
git clone --depth 1 https://github.com/lukesmithxyz/st.git
cd st
make
make install
cd /tmp
dialog --infobox "Installing \"dmenu\" from source..." 4 40
cd /tmp
rm -rf dmenu
git clone --depth 1 https://github.com/lukesmithxyz/dmenu.git
cd dmenu
make
make install
cd /tmp
# Install R Markdown if R was chosen and installed.
[[ -e /usr/bin/R ]] && (
dialog --infobox "Installing R Markdown..." 4 40
cp /home/$name/.Rprofile ~ 2>/dev/tty6
echo "install.packages('rmarkdown')" | R -q --no-save 2>/dev/null)
dialog --infobox "Enabling Network Manager..." 4 40
systemctl enable NetworkManager
systemctl start NetworkManager
dialog --infobox "Getting rid of that retarded error beep sound..." 10 50
rmmod pcspkr
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
dialog --infobox "Updating sudoers file..." 4 40
sed -e "/^%wheel.*ALL$/d" /etc/sudoers
echo "%wheel ALL=(ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/packer -Syu,/usr/bin/packer -Syyu,/usr/bin/systemctl restart NetworkManager,/usr/bin/rc-service NetworkManager restart, /usr/bin/pacman -Syyu --noconfirm" >> /etc/sudoers
dialog --title "All done!" --msgbox "Congrats! Provided there were no hidden errors, the script completed successfully and all the programs and configuration files should be in place.\n\nTo run the new graphical environment, log out and log back in as your new user, then run the command \"startx\" to start the graphical environment.\n\n-Luke" 12 80
clear

View File

@ -1,60 +0,0 @@
#!/bin/bash
#Install an AUR package manually.
aurinstall() { curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/$1.tar.gz && tar -xvf $1.tar.gz && cd $1 && makepkg --noconfirm -si && cd .. && rm -rf $1 $1.tar.gz ;}
#aurcheck runs on each of its arguments, if the argument is not already installed, it either uses packer to install it, or installs it manually.
aurcheck() {
qm=$(pacman -Qm | awk '{print $1}')
for arg in "$@"
do
if [[ $qm = *"$arg"* ]]; then
echo $arg is already installed.
else
echo $arg not installed.
packer --noconfirm -S $arg >/dev/null || aurinstall $arg
fi
done
}
dialog --infobox "Installing \"packer\", an AUR helper..." 10 60
aurcheck packer >/dev/null
count=$(cat /tmp/aur_queue | wc -l)
n=0
for prog in $(cat /tmp/aur_queue)
do
n=$((n+1))
dialog --infobox "Downloading and installing program $n out of $count: $prog..." 10 60
aurcheck $prog >/dev/null
done
dialog --infobox "Downloading and installing config files..." 4 60
git clone --depth 1 https://github.com/lukesmithxyz/voidrice.git >/dev/null &&
rsync -va voidrice/ /home/$(whoami) >/dev/null &&
rm -rf voidrice >/dev/null
dialog --infobox "Readying mutt-wizard..." 4 60
git clone --depth 1 https://github.com/lukesmithxyz/mutt-wizard.git /home/$(whoami)/.config/mutt >/dev/null
dialog --infobox "Generating bash/ranger/qutebrowser shortcuts..." 4 60
git clone --depth 1 https://github.com/LukeSmithxyz/shortcut-sync.git >/dev/null &&
rsync shortcut-sync/shortcuts.sh ~/.scripts/ >/dev/null &&
rsync shortcut-sync/folders ~/.scripts/ >/dev/null &&
rsync shortcut-sync/configs ~/.scripts/ >/dev/null &&
bash /home/$(whoami)/.scripts/shortcuts.sh >/dev/null &&
rm -rf shortcut-sync/ >/dev/null
dialog --infobox "Creating LARBS Firefox profile..." 4 60
mkdir -p ~/.mozilla/firefox
git clone --depth 1 https://github.com/LukeSmithxyz/mozilla-larbs.git >/dev/null &&
rsync -r mozilla-larbs/firefox/* ~/.mozilla/firefox/
dialog --infobox "Preparing welcome message..." 4 50
echo "exec_always --no-startup-id notify-send -i ~/.scripts/larbs.png '<b>Welcome to LARBS:</b> Press Super+F1 for the manual.' -t 10000" >> /home/$(whoami)/.config/i3/config
dialog --infobox "Reseting Pulseaudio..." 4 50
killall pulseaudio >/dev/null
pulseaudio --start >/dev/null

View File

@ -1,100 +0,0 @@
arandr,,gui adjustment of screen
asciiquarium,D,terminal screensaver
atool,r,ranger archive previews
base-devel,,sudo and compilation software
bash-pipes,D,terminal screensaver
biber,X,LaTeX references
blender,B,video modification and modelling
calcurse,,calendar
cli-visualizer,D,music/audio visualizer
cmatrix,D,terminal screensaver
compton,,transparency and removing tearing
discount,?,
dmenu,,command runner
dosfstools,,file system compatibility
dunst,,notification system
emacs,E,everything
exfat-utils,,file system compatibility
feh,,image viewer
ffmpeg,,audio/video recording and splicing
figlet,D,text decoration
firefox,,default browser
fzf,r,ranger fuzzy finder
gimp,G,image modification
git,,dling config repos
gnome-keyring,,system keyring
gnome-themes-extra,,for dark GTK theme
gvim,,text editor
highlight,r,ranger previews highlighted
htop-vim-git,D,system info
i3-gaps,,window manager
i3blocks,,status bar
i3lock,,screen lock
imagemagick,D,"image conversion and modification, lock screen"
libcaca,r,
libreoffice-fresh,L,office suite
mediainfo,r,ranger audio/video info preview
mpc,,music daemon control
mpd,,music daemon
mpv,,video/gif player
ncmpcpp,,music player
neofetch,D,system stats
neomutt,e,email client
network-manager-applet,,GUI wifi manager
networkmanager,,network manager
newsboat,,RSS reader
notmuch,e,email system (indexing and search)
notmuch-mutt,e,email system (indexing and search)
noto-fonts,F,Near Eastern Fonts
noto-fonts-cjk,F,East Asian fonts
noto-fonts-emoji,,emoji fonts
ntfs-3g,,file system compatibility
offlineimap,e,email system (mail sync)
packer,,AUR manager
pamixer,,audio system control
pandoc,P,file conversion
pandoc-citeproc,P,citations through pandoc
poppler,r,ranger pdf previews
projectm-pulseaudio,D,music/audio visualizer
pulseaudio,,audio system
pulseaudio-alsa,,audio system
pulsemixer,,audio system manager
python-pywal,,colorscheme generator
r,P,statistics and calculator
ranger,r,file manager
rsync,,
rxvt-unicode,U,alternate terminal
sc-im,,spreadsheet manager
screenfetch,D,system stats
screenkey,,screencasting keyboard view
scrot,D,screenshots
speedometer,,internet traffic view
texlive-lang,X,LaTeX packages
texlive-most,X,LaTeX packages
tmux,,multiplexer and dropdown
transmission-cli,T,torrent
transmission-remote-cli-git,T,torrent interface
ttf-ancient-fonts,F,rare and ancient fonts
ttf-inconsolata,,mono font
ttf-linux-libertine,,non-mono fonts
unclutter-xfixes-git,,hides mouse if idle
unrar,,extraction
unzip,,extraction
urlview,,url parser for terminal apps
urxvt-perls,U,perl scripts for urxvt
urxvt-resize-font-git,U,resize urxvt font
vim-live-latex-preview,X,latex preview
vim-pathogen,,vim package manager
w3m,?,
wget,,
xcape,,for double mapping of escape
xdotool,,moving windows on command
xorg-server,,graphical environment
xorg-xdpyinfo,,screencasting
xorg-xinit,,graphical environment
xssstate,,screen idle detection
youtube-dl,,downloads youtube videos
youtube-viewer,,watch YT videos without browser
zathura,,pdf reader
zathura-djvu,,djvu reader
zathura-pdf-mupdf,,pdf compatibility
1 arandr gui adjustment of screen
2 asciiquarium D terminal screensaver
3 atool r ranger archive previews
4 base-devel sudo and compilation software
5 bash-pipes D terminal screensaver
6 biber X LaTeX references
7 blender B video modification and modelling
8 calcurse calendar
9 cli-visualizer D music/audio visualizer
10 cmatrix D terminal screensaver
11 compton transparency and removing tearing
12 discount ?
13 dmenu command runner
14 dosfstools file system compatibility
15 dunst notification system
16 emacs E everything
17 exfat-utils file system compatibility
18 feh image viewer
19 ffmpeg audio/video recording and splicing
20 figlet D text decoration
21 firefox default browser
22 fzf r ranger fuzzy finder
23 gimp G image modification
24 git dling config repos
25 gnome-keyring system keyring
26 gnome-themes-extra for dark GTK theme
27 gvim text editor
28 highlight r ranger previews highlighted
29 htop-vim-git D system info
30 i3-gaps window manager
31 i3blocks status bar
32 i3lock screen lock
33 imagemagick D image conversion and modification, lock screen
34 libcaca r
35 libreoffice-fresh L office suite
36 mediainfo r ranger audio/video info preview
37 mpc music daemon control
38 mpd music daemon
39 mpv video/gif player
40 ncmpcpp music player
41 neofetch D system stats
42 neomutt e email client
43 network-manager-applet GUI wifi manager
44 networkmanager network manager
45 newsboat RSS reader
46 notmuch e email system (indexing and search)
47 notmuch-mutt e email system (indexing and search)
48 noto-fonts F Near Eastern Fonts
49 noto-fonts-cjk F East Asian fonts
50 noto-fonts-emoji emoji fonts
51 ntfs-3g file system compatibility
52 offlineimap e email system (mail sync)
53 packer AUR manager
54 pamixer audio system control
55 pandoc P file conversion
56 pandoc-citeproc P citations through pandoc
57 poppler r ranger pdf previews
58 projectm-pulseaudio D music/audio visualizer
59 pulseaudio audio system
60 pulseaudio-alsa audio system
61 pulsemixer audio system manager
62 python-pywal colorscheme generator
63 r P statistics and calculator
64 ranger r file manager
65 rsync
66 rxvt-unicode U alternate terminal
67 sc-im spreadsheet manager
68 screenfetch D system stats
69 screenkey screencasting keyboard view
70 scrot D screenshots
71 speedometer internet traffic view
72 texlive-lang X LaTeX packages
73 texlive-most X LaTeX packages
74 tmux multiplexer and dropdown
75 transmission-cli T torrent
76 transmission-remote-cli-git T torrent interface
77 ttf-ancient-fonts F rare and ancient fonts
78 ttf-inconsolata mono font
79 ttf-linux-libertine non-mono fonts
80 unclutter-xfixes-git hides mouse if idle
81 unrar extraction
82 unzip extraction
83 urlview url parser for terminal apps
84 urxvt-perls U perl scripts for urxvt
85 urxvt-resize-font-git U resize urxvt font
86 vim-live-latex-preview X latex preview
87 vim-pathogen vim package manager
88 w3m ?
89 wget
90 xcape for double mapping of escape
91 xdotool moving windows on command
92 xorg-server graphical environment
93 xorg-xdpyinfo screencasting
94 xorg-xinit graphical environment
95 xssstate screen idle detection
96 youtube-dl downloads youtube videos
97 youtube-viewer watch YT videos without browser
98 zathura pdf reader
99 zathura-djvu djvu reader
100 zathura-pdf-mupdf pdf compatibility

View File

@ -1,103 +0,0 @@
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##
##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias WEBSERVERS = www1, www2, www3
##
## User alias specification
##
## Groups of users. These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias ADMINS = millert, dowdy, mikef
##
## Cmnd alias specification
##
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file. Note that other programs use HOME to find
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods. Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
##
## Runas alias specification
##
##
## User privilege specification
##
root ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL
## Same thing without a password
#%wheel ALL=(ALL) NOPASSWD: ALL
##Here I give wheel users the ability to run core non-harmless commands without a password.
%wheel ALL=(ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/mount,/usr/bin/umount,/usr/bin/pacman -Syu,/usr/bin/pacman -Syyu,/usr/bin/packer -Syu,/usr/bin/packer -Syyu,/usr/bin/systemctl restart NetworkManager,/usr/bin/rc-service NetworkManager restart, /usr/bin/pacman -Syyu --noconfirm
#This keeps you from needing to reinsert your passwords in each different terminal a wheel user uses sudo in.
Defaults !tty_tickets
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL
## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw # Ask for the password of the target user
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

View File

@ -1,97 +0,0 @@
## sudoers file.
##
## This file MUST be edited with the 'visudo' command as root.
## Failure to use 'visudo' may result in syntax or file permission errors
## that prevent sudo from running.
##
## See the sudoers man page for the details on how to write a sudoers file.
##
##
## Host alias specification
##
## Groups of machines. These may include host names (optionally with wildcards),
## IP addresses, network numbers or netgroups.
# Host_Alias WEBSERVERS = www1, www2, www3
##
## User alias specification
##
## Groups of users. These may consist of user names, uids, Unix groups,
## or netgroups.
# User_Alias ADMINS = millert, dowdy, mikef
##
## Cmnd alias specification
##
## Groups of commands. Often used to group related commands together.
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
# /usr/bin/pkill, /usr/bin/top
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
##
## Defaults specification
##
## You may wish to keep some of the following environment variables
## when running commands via sudo.
##
## Locale settings
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
##
## Run X applications through sudo; HOME is used to find the
## .Xauthority file. Note that other programs use HOME to find
## configuration files and this may lead to privilege escalation!
# Defaults env_keep += "HOME"
##
## X11 resource path settings
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
##
## Desktop path settings
# Defaults env_keep += "QTDIR KDEDIR"
##
## Allow sudo-run commands to inherit the callers' ConsoleKit session
# Defaults env_keep += "XDG_SESSION_COOKIE"
##
## Uncomment to enable special input methods. Care should be taken as
## this may allow users to subvert the command being run via sudo.
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Uncomment to use a hard-coded PATH instead of the user's to find commands
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
##
## Uncomment to send mail if the user does not enter the correct password.
# Defaults mail_badpass
##
## Uncomment to enable logging of a command's output, except for
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
# Defaults log_output
# Defaults!/usr/bin/sudoreplay !log_output
# Defaults!/usr/local/bin/sudoreplay !log_output
# Defaults!REBOOT !log_output
##
## Runas alias specification
##
##
## User privilege specification
##
root ALL=(ALL) ALL
## Uncomment to allow members of group wheel to execute any command
#%wheel ALL=(ALL) ALL
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL
## Uncomment to allow any user to run sudo if they know the password
## of the user they are running the command as (root by default).
# Defaults targetpw # Ask for the password of the target user
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
## Read drop-in files from /etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /etc/sudoers.d

View File

@ -1,21 +0,0 @@
#Potential variables: timezone, lang and local
passwd
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
hwclock --systohc
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "en_US ISO-8859-1" >> /etc/locale.gen
locale-gen
pacman --noconfirm --needed -S networkmanager
systemctl enable NetworkManager
systemctl start NetworkManager
pacman --noconfirm --needed -S grub && grub-install --target=i386-pc /dev/sda && grub-mkconfig -o /boot/grub/grub.cfg
pacman --noconfirm --needed -S dialog
larbs() { curl -O http://larbs.xyz/larbs.sh && bash larbs.sh ;}
dialog --title "Install Luke's Rice" --yesno "This install script will easily let you access Luke's Auto-Rice Boostrapping Scripts (LARBS) which automatically install a full Arch Linux i3-gaps desktop environment.\n\nIf you'd like to install this, select yes, otherwise select no.\n\nLuke" 15 60 && larbs

View File

@ -1,121 +0,0 @@
#!/bin/bash
blue() { printf "\n\033[0;34m $* \033[0m\n\n" && (echo $* >> /tmp/LARBS.log) ;}
red() { printf "\n\033[0;31m $* \033[0m\n\n" && (echo ERROR: $* >> /tmp/LARBS.log) ;}
NAME=$(whoami)
blue Activating Pulseaudio if not already active...
pulseaudio --start && blue Pulseaudio enabled...
#Install an AUR package manually.
aurinstall() { curl -O https://aur.archlinux.org/cgit/aur.git/snapshot/$1.tar.gz && tar -xvf $1.tar.gz && cd $1 && makepkg --noconfirm -si && cd .. && rm -rf $1 $1.tar.gz ;}
#aurcheck runs on each of its arguments, if the argument is not already installed, it either uses packer to install it, or installs it manually.
aurcheck() {
qm=$(pacman -Qm | awk '{print $1}')
for arg in "$@"
do
if [[ $qm = *"$arg"* ]]; then
echo $arg is already installed.
else
echo $arg not installed
blue Now installing $arg...
if [[ -e /usr/bin/packer ]]
then
(packer --noconfirm -S $arg && blue $arg now installed) || red Error installing $arg.
else
(aurinstall $arg && blue $arg now installed) || red Error installing $arg.
fi
fi
done
}
blue Installing AUR programs...
blue \(This may take some time.\)
cat << "EOF"
mm m m mmmmm mmmmmmm mmmmm m m mmmmmm m
## # # # "# # # ## ## # #
# # # # #mmmm" # # # ## # #mmmmm #
#mm# # # # "m # # # "" # # "
# # "mmmm" # " # mm#mm # # #mmmmm #
EOF
gpg --recv-keys 5FAF0A6EE7371805 #Add the needed gpg key for neomutt
aurcheck packer i3-gaps vim-pathogen tamzen-font-git urxvt-resize-font-git polybar python-pywal xfce-theme-blackbird || red Error with basic AUR installations...
#Also installing i3lock, since i3-gaps was only just now installed.
sudo pacman -S --noconfirm --needed i3lock
#packer --noconfirm -S ncpamixer-git speedometer cli-visualizer
choices=$(cat /tmp/.choices)
for choice in $choices
do
case $choice in
1)
aurcheck vim-live-latex-preview
git clone https://github.com/lukesmithxyz/latex-templates.git && mkdir -p /home/$NAME/Documents/LaTeX && rsync -va latex-templates /home/$NAME/Documents/LaTeX && rm -rf latex-templates
;;
6)
aurcheck ttf-ancient-fonts
;;
7)
aurcheck transmission-remote-cli-git
;;
8)
aurcheck bash-pipes cli-visualizer speedometer neofetch
;;
esac
done
cat << "EOF"
▄ ▄
▌▒█ ▄▀▒▌
▌▒▒▀▄ ▄▀▒▒▒▐
▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐
▄▄▀▒▒▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐
▄▀▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀██▀▒▌
▐▒▒▒▄▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄▒▒▌
▌▒▒▐▄█▀▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐
▐▒▒▒▒▒▒▒▒▒▒▒▌██▀▒▒▒▒▒▒▒▒▀▄▌
▌▒▀▄██▄▒▒▒▒▒▒▒▒▒▒▒░░░░▒▒▒▒▌
▌▀▐▄█▄█▌▄▒▀▒▒▒▒▒▒░░░░░░▒▒▒▐
▐▒▀▐▀▐▀▒▒▄▄▒▄▒▒▒▒▒░░░░░░▒▒▒▒▌
▐▒▒▒▀▀▄▄▒▒▒▄▒▒▒▒▒▒░░░░░░▒▒▒▐
▌▒▒▒▒▒▒▀▀▀▒▒▒▒▒▒▒▒░░░░▒▒▒▒▌
▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▐
▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▄▒▒▒▒▌
▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀
▐▀▒▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀
▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▀
EOF
browsers=$(cat /tmp/.browch)
for choice in $browsers
do
case $choice in
3)
gpg --recv-keys 865E6C87C65285EC #Key required for Palemoon install.
aurcheck palemoon-bin
;;
4)
aurcheck waterfox-bin
;;
esac
done
blue Downloading config files...
git clone https://github.com/lukesmithxyz/voidrice.git && rsync -va voidrice/ /home/$NAME && rm -rf voidrice
blue Generating bash/ranger/qutebrowser shortcuts...
cd /home/$NAME/
python /home/$NAME/.config/Scripts/shortcuts.py

View File

@ -1,268 +0,0 @@
#!/bin/bash
blue() { printf "\n\033[0;34m $* \033[0m\n\n" && (echo $* >> /tmp/LARBS.log) ;}
red() { printf "\n\033[0;31m $* \033[0m\n\n" && (echo ERROR: $* >> /tmp/LARBS.log) ;}
echo "LARBS started $(date)" >> /tmp/LARBS.log
chmod 777 /tmp/LARBS.log
pacman -S --noconfirm --needed dialog || (echo "Error at script start: Are you sure you're running this as the root user? Are you sure you have an internet connection?" && exit)
dialog --title "Welcome!" --msgbox "Welcome to Luke's Auto-Rice Bootstrapping Script!\n\nThis script will automatically install a fully-featured i3wm Parabola GNU/Linux desktop, which I use as my main machine.\n\n-Luke" 10 60
dialog --no-cancel --inputbox "First, please enter a name for the user account." 10 60 2> /tmp/.name
dialog --no-cancel --passwordbox "Enter a password for that user." 10 60 2> /tmp/.pass1
dialog --no-cancel --passwordbox "Reype password." 10 60 2> /tmp/.pass2
while [ $(cat /tmp/.pass1) != $(cat /tmp/.pass2) ]
do
dialog --no-cancel --passwordbox "Passwords do not match.\n\nEnter password again." 10 60 2> /tmp/.pass1
dialog --no-cancel --passwordbox "Reype password." 10 60 2> /tmp/.pass2
done
chmod 777 /tmp/.name
NAME=$(cat /tmp/.name)
shred -u /tmp/.name
useradd -m -g wheel -s /bin/bash $NAME
echo "$NAME:$(cat /tmp/.pass1)" | chpasswd
#I shred the password for safety's sake.
shred -u /tmp/.pass1
shred -u /tmp/.pass2
cmd=(dialog --separate-output --checklist "Select additional packages to install with <SPACE>:" 22 76 16)
options=(1 "LaTeX packages" off
2 "Libreoffice Suite" off
3 "GIMP" off
4 "Blender" off
5 "Emacs" off
6 "Fonts for unicode and other languages" off
7 "transmission torrent client" off
8 "Music visualizers and decoration" off
)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
echo $choices > /tmp/.choices
brow=(dialog --separate-output --checklist "Select a browser (none or multiple possible):" 22 76 16)
options=(1 "qutebrowser" off
2 "Firefox" off
3 "Palemoon" off
4 "Waterfox" off
)
browch=$("${brow[@]}" "${options[@]}" 2>&1 >/dev/tty)
echo $browch > /tmp/.browch
dialog --title "Let's get this party started!" --msgbox "The rest of the installation will now be totally automated, so you can sit back and relax.\n\nIt will take some time, but when done, you can relax even more with your complete system.\n\nNow just press <OK> and the system will begin installation!" 13 60
clear
cat << "EOF"
mmmmm # mmm
# "# mmm mmm mmm# m m " #
#mmmm" #" # " # #" "# "m m" m#"
# "m #"""" m"""# # # #m# "
# " "#mm" "mm"# "#m## "# #
m"
EOF
sleep 1
cat << "EOF"
mmmm m mmm
#" " mmm mm#mm " #
"#mmm #" # # m#"
"# #"""" # "
"mmm#" "#mm" "mm #
EOF
sleep 1
#Prints metal gay
cat << "EOF"
mmm mmmm m
m" " m" "m #
# mm # # #
# # # # "
"mmm" #mm# #
EOF
sleep .5
cat << "EOF"
- = .--._
- - ~_= =~_- = - `. `-.
==~_ = =_ ~ - = .-' `.
--=~_ - ~ == - = .' _..:._
---=~ _~ = =- = `. .--.' `.
--=_-=- ~= _ - = - _.' `. .--.:
-=_~ -- = = ~- .' : : :
-=-_ ~= = - _-`--. : .--: D
-=~ _= = -~_= `; .'.: ,`---'@
--=_= = ~- -= .' .' `._ `-.__.'
--== ~_ - = =- .' .' _.`---'
--=~_= = - = ~ .'--'' . `-..__.--.
jgs--==~ _= - ~-= =-~_- `-..___( ===;
--==~_==- =__ ~-= - - .' `---'
EOF
sleep .5
blue Now installing main programs...
pacman --noconfirm --needed -Sy base-devel xorg-xinit xorg-server noto-fonts rxvt-unicode feh ffmpeg pulseaudio pulseaudio-alsa wireless_tools arandr pavucontrol pamixer mpv wget rofi vim w3m ranger mediainfo poppler highlight tmux calcurse htop newsboat mpd mpc ncmpcpp network-manager-applet networkmanager imagemagick atool libcaca compton transset-df markdown mupdf evince rsync git youtube-dl youtube-viewer cups scrot unzip unrar ntfs-3g offlineimap msmtp notmuch notmuch-mutt dosfstools r pandoc python-dbus python-gobject xf86-video-intel neomutt unclutter-xfixes-git || (red Error installing basic packages. Check your internet connection and pacman keyring.)
pacman --noconfirm --needed -S fzf || (red Error with peripheral programs.)
cat << "EOF"
_____________________________
< Drink whole milk every day! >
-----------------------------
\ ____________
\ |__________|
/ /\
/ / \
/___________/___/|
| | |
| ==\ /== | |
| O O | \ \ |
| < | \ \|
/| | \ \
/ | \_____/ | / /
/ /| | / /|
/||\| | /||\/
-------------|
| | | |
<__/ \__>
EOF
for choice in $choices
do
case $choice in
1)
blue Now installing LaTeX packages...
cat << "EOF"
mmmmm m ""# ""# " m mmmmmmm m m
# m mm mmm mm#mm mmm # # mmm m mm mmmm # mmm # mmm # #
# #" # # " # " # # # # #" # #" "# # " # # #" # ##
# # # """m # m"""# # # # # # # # # m"""# # #"""" m""m
mm#mm # # "mmm" "mm "mm"# "mm "mm mm#mm # # "#m"# #mmmmm "mm"# # "#mm" m" "m # # #
m #
""
# # mmmmm mmmmmmm mmmmmm mmmm m
m m mmm m mm mmm# mmm m m mmm # m mmm # # # # m" "m #
"m m m" #" "# #" " #" "# #" " # # #" " # m" # " #mmmm" # #mmmmm # # #
#m#m# # # # # # # # # # #"# """m # # # # # # "
# # "#m#" # "#m## "#mm" "mm"# "#mm" # "m "mmm" #mmmm" # # #mm# #
EOF
pacman --noconfirm --needed -S texlive-most texlive-lang biber
;;
2)
blue Now installing LibreOffice Suite...
pacman --noconfirm --needed -S libreoffice-fresh
;;
3)
blue Now installing GIMP...
pacman --noconfirm --needed -S gimp
;;
4)
blue Now installing Blender...
pacman --noconfirm --needed -S blender
;;
5)
blue Now installing Emacs...
pacman --noconfirm --needed -S emacs
;;
6)
blue Now installing extra fonts...
pacman --noconfirm --needed -S noto-fonts-cjk noto-fonts-emoji
;;
7)
blue Now installing transmission...
pacman --noconfirm --needed -S transmission-cli
;;
8)
blue Now installing visualizers and decoration...
pacman --noconfirm --needed -S projectm-pulseaudio cmatrix asciiquarium screenfetch
;;
esac
done
#Prints gay [autism intensifies]
cat << "EOF"
#" m " " m " m"" " "#
# mmm m m mm#mm mmm mmm mmmmm mmm m mm mm#mm mmm m mm mmm mmm mm#mm mmm mmm mmm #
# " # # # # # # " # # # # #" # # #" # #" # # " # # # #" # # " #
# m"""# # # # # """m # # # # # # # #"""" # # """m # # # #"""" """m #
# "mm"# "mm"# "mm mm#mm "mmm" # # # mm#mm # # "mm "#mm" # # "mmm" mm#mm # mm#mm "#mm" "mmm" #
"" ""
EOF
for choice in $browch
do
case $choice in
1)
blue Now installing qutebrowser...
pacman --noconfirm --needed -S qutebrowser gst-libav gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
;;
2)
blue Now installing Firefox...
pacman --noconfirm --needed -S firefox
;;
esac
done
cat << "EOF"
________________________
< >tfw too hot to handle >
------------------------
\ . . .
\ . . . ` ,
\ .; . : .' : : : .
\ i..`: i` i.i.,i i .
\ `,--.|i |i|ii|ii|i:
UooU\.'@@@@@@`.||'
\__/(@@@@@@@@@@)'
(@@@@@@@@)
`YY~~~~YY'
|| ||
EOF
curl https://raw.githubusercontent.com/LukeSmithxyz/larbs/master/src/sudoers_tmp > /etc/sudoers
cd /tmp
blue Changing working directory to /tmp/...
blue Downloading next portion of the script \(larbs_userp.sh\)...
curl https://raw.githubusercontent.com/LukeSmithxyz/larbs/master/src/larbs_userp.sh > /tmp/larbs_userp.sh && blue Running larbs_userp.sh script as $NAME...
sudo -u $NAME bash /tmp/larbs_userp.sh || red Error when running larbs_userp.sh...
rm -f /tmp/larbs_userp.sh
#Prints gay "ALMOST THERE!"
cat << "EOF"
mm m m m mmmm mmmm mmmmmmm mmmmmmm m m mmmmmm mmmmm mmmmmm m
## # ## ## m" "m #" " # # # # # # "# # #
# # # # ## # # # "#mmm # # #mmmm# #mmmmm #mmmm" #mmmmm #
#mm# # # "" # # # "# # # # # # # "m # "
# # #mmmmm # # #mm# "mmm#" # # # # #mmmmm # " #mmmmm #
EOF
blue Enabling Network Manager...
systemctl enable NetworkManager
systemctl start NetworkManager
blue Getting rid of that retarded error beep sound...
rmmod pcspkr
echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
blue Implementing temporary sudoers file...
curl https://raw.githubusercontent.com/LukeSmithxyz/larbs/master/src/sudoers > /etc/sudoers
dialog --title "All done!" --msgbox "Congrats! Provided there were no hidden errors, the script completed successfully and all the programs and configuration files should be in place.\n\nTo run the new graphical environment, log out and log back in as your new user, then run the command \"startx\" to start the graphical environment.\n\n-Luke" 12 80
clear

View File

@ -1,69 +0,0 @@
#!/bin/bash
#This is a lazy script I have for auto-installing Parabola.
#It's not officially part of LARBS, but I use it for testing.
#DO NOT RUN THIS YOURSELF because Step 1 is it reformatting /dev/sda WITHOUT confirmation,
#which means RIP in peace qq your data unless you've already backed up all of your drive.
pacman -S --noconfirm dialog || (echo "Error at script start: Are you sure you're running this as the root user? Are you sure you have an internet connection?" && exit)
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m'
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "This is an Parabola install script that is very rough around the edges.\n\nOnly run this script if you're a big-brane who doesn't mind deleting your entire /dev/sda drive.\n\nThis script is only really for me so I can autoinstall Parabola.\n\nt. Luke" 15 60 || exit
dialog --defaultno --title "DON'T BE A BRAINLET!" --yesno "Do you think I'm meming? Only select yes to DELET your entire /dev/sda and reinstall Parabola.\n\nTo stop this script, press no." 10 60 || exit
dialog --no-cancel --inputbox "Enter a name for your computer." 10 60 2> comp
timedatectl set-ntp true
cat <<EOF | fdisk /dev/sda
o
n
p
+200M
n
p
+12G
n
p
+25G
n
p
w
EOF
partprobe
mkfs.ext4 /dev/sda4
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda1
mkswap /dev/sda2
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir /mnt/home
mount /dev/sda4 /mnt/home
pacstrap /mnt base base-devel
genfstab -U /mnt >> /mnt/etc/fstab
curl http://lukesmith.xyz/larbs/chrootp.sh > /mnt/chroot.sh && arch-chroot /mnt bash chroot.sh && rm /mnt/chroot.sh
cat comp > /mnt/etc/hostname && rm comp
dialog --defaultno --title "Final Qs" --yesno "Eject CD/ROM (if any)?" 5 30 && eject
dialog --defaultno --title "Final Qs" --yesno "Reboot computer?" 5 30 && reboot
dialog --defaultno --title "Final Qs" --yesno "Return to chroot environment?" 6 30 && arch-chroot /mnt
clear

View File

@ -1,10 +0,0 @@
# LARBS WELCOME:
exec_always $term -n welcome -e welcome
for_window [instance="welcome"] floating enable
for_window [instance="welcome"] resize set 625 400
for_window [instance="welcome"] border pixel 0
# WARNING! While the above welcome message is there, do not place commands below it!
# They will be deleted by the "hello" bash command.
exec --no-startup-id notify-send -i ~/.scripts/larbs.png "Welcome to LARBS!"

View File

@ -1,77 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' type='text/css' href='style.css'>
<link rel="icon" type="image/png" href="pix/faveicon.ico">
<title>LARBS&mdash;Luke's Auto-Rice Bootstrapping Scripts</title>
</head>
<h1>LARBS</h1>
<h2><a target="_blank" href="https://lukesmith.xyz">Luke's</a> Auto-Rice Bootstrapping Scripts</h2>
<table class="image">
<caption align="bottom">(Not actually Luke)</caption>
<tr><td><a href="pix/arch.jpg"><img src="pix/larbs.png" width="300"></a></td></tr>
</table>
<p>The LARBS are a series of shell scripts that will automatically install a fully-featured i3-gaps Desktop Environment, providing a perfect composite of both functionality and customizability.</p>
<p><a target="_blank" href="https://github.com/lukesmithxyz/larbs">Github link</a>.</p>
<p><b>Want to know what LARBS installs and configures? Check out <a href="programs.html">What's Inside of LARBS?</a></b></p>
<p><b>Want to see some screenshots of LARBS? <a href="previews.html">Previews of LARBS</a>.</b></p>
<p><b>If you have questions, <a href="mailto:luke@lukesmith.xyz">email me</a> or ask on <a target="_blank" href="https://forum.lukesmith.xyz">the forum</a>.</b></p>
<h3>Installation</h3>
<p>LARBS can be installed on any derivative of Arch Linux that uses the Arch repositories (including Manjaro, Antergos and Parabola, etc.). I recommend you to install it on a fresh installation to avoid conflict with other desktop environments, although you can run it on an already existing install. <b>Note:</b> LARBS will install config files in the home directory of the user you give it. It will not wipe your Documents or anything, but it will overwrite your <code>~/.bashrc</code>, etc. If you have config files you want to hold on to, either back them up or you can select to install LARBS to another user.</p>
<p>To install, simply log in as the root user and run the following in the terminal:</p>
<code>
curl -LO lukesmith.xyz/larbs.sh</br>
bash larbs.sh
</code>
<p>This will begin a prompt and the installation after some setup. Installation time will vary depending on your internet connection. Don't be worried if it takes even a little more than an hour: it's setting <em>everything</em> up.</p>
<h3>Learning the system is fun and easy!</h3>
<p>You can figure out about the system in a lot of different ways:</p>
<ul>
<li>The documentation on the <a href="https://github.com/lukesmithxyz/voidrice">Github</a> page.</li>
<li>By pressing Super+F1 while in the system itself at any time. (Also <a target="_blank" href="https://github.com/LukeSmithxyz/voidrice/blob/master/.config/i3/i3_guide.rmd">here</a>.)</li>
<li>The many illustrative videos on <a target="_blank" href="https://youtube.com/lukesmithxyz">my YouTube channel</a>.</li>
<li>By just installing it and diving in!</li>
</ul>
<h3>Contact!</h3>
<p>You can also ask me questions via email at <a href="mailto:luke@lukesmith.xyz">luke@lukesmith.xyz</a>.</p>
<p>I'll be posting updates about LARBS either on <a target="_blank" href="https://lukesmith.xyz/rss.xml">my RSS feed</a> or on <a target="_blank" href="https://twitter.com/lukesfiat">Twitter</a>.</p>
<h3>You do the math!</h3>
<footer>
<a href="https://gnu.org"><img src="pix/gnu-linux.jpg"></a> +
<a href="https://i3wm.org"><img src="pix/i3.jpg"></a> +
<a href="http://www.vim.org"><img src="pix/vim.jpg"></a> +
<a href="https://en.wikipedia.org/wiki/Autism"><img src="pix/autism.jpg"></a> =
<a href="http://larbs.xyz"><img src="pix/larbs.jpg"></a>
<hr>
<img src="pix/brainlet.jpg"> +
<a href="http://larbs.xyz"><img src="pix/larbs.jpg"></a> =
<img src="pix/big_brane.jpg">
</footer>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -1,33 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' type='text/css' href='style.css'>
<link rel="icon" type="image/png" href="pix/faveicon.ico">
<title>LARBS Previews</title>
</head>
<body>
<h1>Previews of LARBS</h1>
<p>Here are a couple of screenshots of what LARBS can look like. It's easily customizable, so these all holistically should give you an idea.</p>
<p>Feel free to send in your own pix of gettin' stuff done in the system (or at least pretending to look that way).</p>
<div id="prev">
<a href="previews/pic.jpg"><img width="650px" src="previews/pic.jpg"></a>
<a href="previews/bow.png"><img width="650px" src="previews/bow.png.jpg"></a>
<a href="previews/larbs.png"><img width="650px" src="previews/larbs.png"></a>
<a href="previews/asian.png.jpg"><img width="650px" src="previews/asian.png"></a>
<a href="previews/varg.png.jpg"><img width="650px" src="previews/varg.png"></a>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 416 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 KiB

View File

@ -1,77 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' type='text/css' href='style.css'>
<link rel="icon" type="image/png" href="pix/faveicon.ico">
<title>Programs Installed in LARBS</title>
</head>
<h1>What's Inside of LARBS?</h1>
<a href="index.html">Back to main page</a>
<p>LARBS has everything you need to have a /comfy/ Linux ricing configuration without any of the work.</p>
<h2>Installed by Default</h2>
<ul>
<li>i3-gaps (window manager)</li>
<li>polybar &ndash; status bar (the thing at the top)</li>
<li>qutebrowser &ndash; a vim-based and extensible browser</li>
<li>st (<a target="_blank" href="https://github.com/lukesmithxyz/st">my own personal build</a>) &ndash; terminal emulator (Mod+Enter)</li>
<li>rofi &ndash; run prompt (Mod+d)</li>
<li>ranger &ndash; file browser (Mod+r; also numerous tools for getting previews)</li>
<li>sc-im &ndash; a vim-centered terminal spreadsheet manager</li>
<li>neomutt &ndash; email (Mod+e; requires some setup)</li>
<li>w3m &ndash; terminal browser and tool for viewing images in the terminal</li>
<li>newsbeuter &ndash; RSS reader (Mod+n)</li>
<li>ncmpcpp &ndash; Music player (Mod+m)</li>
<li>mpv &ndash; video player (also views gifs)</li>
<li>calcurse &ndash; calendar and schedule application (Mod+y)</li>
<li>htop &ndash; system moniter (Mod+i)</li>
<li>youtube-dl &ndash; terminal tool for downloading online videos/audio/playlists from various sites</li>
<li>feh (image viewer and used for wallpapers)</li>
<li>mupdf &ndash; .pdf viewer</li>
<li>scrot &ndash; for taking screenshots</li>
<li>tmux &ndash; terminal multiplexer</li>
<li>R &ndash; used as a calculator (Mod+a), but can be used generally as well</li>
<li>pavucontrol &ndash; audio manager (Mod+A)</li>
</ul>
<h3>Tools</h3>
<p>Programs here you won't necessarily use directly, but are important tools for other programs.</p>
<ul>
<li>Pulseaudio &ndash; audio system</li>
<li>Network Manager &ndash; exactly what it sound like</li>
<li>mediainfo, poppler, highlight, w3m, atool, libcaca &ndash; programs for getting previews of various things in ranger; each has additional uses</li>
<li>notmuch, notmuch-mutt, offlineimap, msmtp &ndash; backend email tools</li>
<li>unzip, unrar &ndash; for archive extraction</li>
<li>ntfs-3g, dosfstools &ndash; for handling Windows-formatted USBs</li>
<li>mpd &ndash; backend for music/audio</li>
<li>compton &ndash; composite manager</li>
</ul>
<h2>Optional installation</h2>
<h3>LaTeX Packages</h3>
<p>If you choose this option, you'll get all LaTeX packages (texlive-most, texlive-lang), biber for references and the vim-live-latex-preview for automatic compiling.</p>
<h3>Decoration</h3>
<p>If this option is chosen, you get Project M (a visualizer; Mod+V), cmatrix, asciiquarium, bash-pipes (terminal screensavers), screenfetch and neofetch (for posting on 4chan, duh), cli-visualizer and speedometer (for network speeds).</p>
<h3>Other programs you can individually select</h3>
<p>GIMP (image creator, editing program), Blender (video editor), the Libreoffice Suite (fully-featured equivalents of Word/Excel/Powerpoint, etc.), Emacs.</p>
<p>You can also get transmission, a torrent client, which by default, I have the terminal interface installed (Mod+F6).</p>
<p>There is also an option to install more complete fonts, giving you fonts for emojis, Chinese, Japanese, Korean and ancient languages.</p>
<a href="index.html">Back to main page</a>
</html>

View File

@ -1,30 +0,0 @@
html{padding-bottom: 450px;}
body{margin:40px auto;max-width:650px;line-height:1.6;font-size:18px;color:#333;padding:0
10px}
caption {
font-size: small;
}
table {
margin: 0px auto;
}
h1,h2,h3,h4{text-align:center;line-height:1.2}
footer img {
max-height: 75px;
vertical-align: middle;
padding: 10px;
}
#prev {
max-width: 650px;
}
footer {
font-size: xx-large;
font-weight: bold;
text-align: center;
}