181 lines
7.7 KiB
Markdown
181 lines
7.7 KiB
Markdown
# Luke's Auto-Rice Bootstraping Scripts (LARBS)
|
|
|
|
[Official Website: larbs.xyz](http://larbs.xyz)
|
|
|
|
This is a set of scripts either can either (1) install Arch Linux automatically
|
|
with a typical Arch ISOed USB, and perhaps more prominently (2) automatically
|
|
install and configure all of the prerequisites for an advanced Linux desktop
|
|
environment, using my configs [here](https://github.com/LukeSmithxyz/voidrice)
|
|
as a base.
|
|
|
|
|
|
## About
|
|
|
|
Really, the goal of this script is to start a kind of Linux meta-distribution
|
|
which makes the more nuanced aspects of an advanced Linux setup available to
|
|
even Linux newbies. Of course, it's also a great tool for advanced users who
|
|
want to get into tiling window managers and just generally cool-looking and
|
|
efficient worksetups.
|
|
|
|
All the core stuff we be installed without prompt, but you'll have the option
|
|
to install some of the larger non-essential packages (LaTeX, LibreOffice,
|
|
emacs, etc.).
|
|
|
|
## 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
|
|
|
|
This is just as easy. Log in as the root user and run the following.
|
|
|
|
```sh
|
|
curl -LO lukesmith.xyz/larbs.sh #Downloads the script.
|
|
bash larbs.sh #Runs it.
|
|
```
|
|
|
|
After prompting you for some settings and some package choices, the system will
|
|
install my full i3-gaps tiling window manager Desktop Environment. If you don't
|
|
know what that means, don't worry, because I've gone to great lengths to write
|
|
readable instructions about how to go PRO super quick with this system.
|
|
|
|
Finally, it will use `git` to download my
|
|
[Voidrice](https://github.com/lukesmithxyz/voidrice)
|
|
dotfiles and will plop them in their proper location for instant use!
|
|
|
|
Then, finally, 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!
|
|
|
|
### 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.
|
|
|
|
## How to Use
|
|
|
|
Once you're in the environment, just type `Super` / `Mod` / `Windows` + `F1` to
|
|
pull up a document that will explain everything.
|
|
|
|
|
|
## Permission Details (sudoers file)
|
|
|
|
These script will give your new created user (and those others you put in the
|
|
`wheel` group) sudo access (with a password), but will also allow some commands
|
|
to be run without any password confirmation. Those include:
|
|
|
|
+ `shutdown`
|
|
+ `reboot`
|
|
+ `pacman -Syyu`/`pacman -Syu`
|
|
+ `packer -Syyu`/`packer -Syu`
|
|
+ `mount`
|
|
+ `umount`
|
|
+ `systemctl restart NetworkManager`
|
|
|
|
Additionally, if you've put your password in a terminal window already, you will
|
|
not need to repeat putting it in in other terminal windows.
|
|
|
|
|
|
## Version
|
|
|
|
We're close to what can be called LARBS 2.0, and here are some of the major
|
|
changes since the original version.
|
|
|
|
- Deployment of my new mutt-wizard for secure offline email configuration
|
|
instead of config files for the user to manually edit.
|
|
- System is more minimalist/suckless.
|
|
- 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.
|
|
- dmenu is used instead of rofi for simplicity's sake.
|
|
- Firefox instead of qutebrowser for default browser (qutebrowser configs
|
|
remain for qutebrowser afeccionados)
|
|
- 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
|
|
|
|
- A custom build of Firefox with privacy and efficiently settings and add-ons
|
|
for clean and flexible navigation without crap in your face.
|
|
- A little script that can stream tutorial videos directly about specific parts
|
|
of the system.
|
|
- A terminal command that shows important bindings for major programs.
|
|
|
|
|
|
## Why I made this
|
|
|
|
When you've installed Arch Linux 6 gorrillian times like me, you get pretty sick
|
|
of having to reproduce your favorite configuration on fresh installs over and
|
|
over. When you're a C-list YouTube celebrity, it gets even more difficult when
|
|
literally thousands of people ask you how to do X or get Y.
|
|
|
|
The LARBS are a final solution to all of that. These scripts are to be run on a
|
|
fresh install of Arch Linux, and they create a user, install all required
|
|
programs and set up dotfiles directly from Github to give normal people a fairly
|
|
sleek Linux configuration without hundreds of autistic hours. I did the work, so
|
|
why should you?
|
|
|
|
I've also documented the configuration fairly well, check out the documentation
|
|
on my **voidrice** repository for that.
|
|
|
|
## Customization
|
|
|
|
You can clone and edit the scripts to meet your own requirements, it's simple enough to use your own dotfiles by changing the relevant lines in `larbs_user.sh` and the desired programs in `progs.csv`. Be sure make sure to refer to your offline versions of these files in the scripts if you do so.
|
|
|
|
In the future, I'm planning even more customization, including the automatic generation of the programs menu, so that should make specialized deployments even easier.
|