readme rewrite
This commit is contained in:
parent
ecdfe24bd9
commit
2264938810
163
README.md
163
README.md
@ -1,92 +1,47 @@
|
|||||||
# Luke's Auto-Rice Bootstraping Scripts (LARBS)
|
# 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
|
## Installation:
|
||||||
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
|
On an Arch bash distribution as root, run the following:
|
||||||
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
|
curl -LO lukesmith.xyz/larbs.sh
|
||||||
press `super+shift+e` at any time to watch a growing list of tutorial videos on
|
bash larbs.sh
|
||||||
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
|
That's it.
|
||||||
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
|
## What is LARBS?
|
||||||
|
|
||||||
I also have a script here for installing Arch automatically. I *only* wrote this
|
LARBS is a script that autoinstalls and autoconfigures a fully-functioning
|
||||||
script so I could quickly install then test the other scripts on new computers,
|
and minimal terminal-and-vim-based Arch Linux environment.
|
||||||
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
|
LARBS was originally intended to be run on a fresh install of Arch Linux, and
|
||||||
curl -LO lukesmith.xyz/arch.sh #Downloads the script.
|
provides you with a fully configured diving-board for work or more
|
||||||
bash arch.sh #Runs it.
|
customization. But LARBS also works on already configured systems *and* other
|
||||||
```
|
Arch-based distros such as Manjaro, Antergos and Parabola (although Parabola,
|
||||||
|
which uses slightly different repositories might miss one or two minor
|
||||||
|
programs).
|
||||||
|
|
||||||
After the system installs, you'll have the option of bootstrapping automatically
|
Here are some of the things LARBS sets up:
|
||||||
into installing my configs as well.
|
|
||||||
|
|
||||||
Don't be worried if the installation of the first programs seems to take a
|
- Installs i3-gaps, a tiling window manager, with my fully featured
|
||||||
while. As general dependencies are installed, things will move very quickly.
|
configuration along with dozens of lightweight and vim-centric terminal
|
||||||
Still, since this is a total online install, it might take a little longer than
|
applications that replace the more over-encumbering
|
||||||
just installing a distro from an ISO.
|
programs on most machines.
|
||||||
|
- Massive documentation making use even for novices seamless. A help document
|
||||||
|
with all bindings for the window manager accessible with `Super+F1` at all
|
||||||
|
times, as well as commands such as `getkeys` which print the default bindings
|
||||||
|
of terminal applications. You can even stream instructional videos on topics
|
||||||
|
with `Super+Shift+E`.
|
||||||
|
- Installs [my dotfiles](https://github.com/lukesmithxyz/voidrice) giving as
|
||||||
|
popularized on [my YouTube channel](https://youtube.com/c/Lukesmithxyz).
|
||||||
|
- Sets up system requirements such as users, permissions, networking, audio and
|
||||||
|
an AUR manager.
|
||||||
|
- All done behind a `dialog` based user interface.
|
||||||
|
|
||||||
## Details
|
## Changes since first release
|
||||||
|
|
||||||
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`.
|
- More documentation in the `getkeys` program and `mod+shift-e`.
|
||||||
- Luke's build of st is now the default terminal, instead of urxvt. This
|
- Luke's build of st is now the default terminal, instead of urxvt. This
|
||||||
@ -131,3 +86,59 @@ changes since the original version.
|
|||||||
- And the repository is *significantly* smaller than it was before, meaning a
|
- And the repository is *significantly* smaller than it was before, meaning a
|
||||||
faster download.
|
faster download.
|
||||||
- A million and one other tweaks and bug fixes.
|
- A million and one other tweaks and bug fixes.
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
By default, LARBS uses the programs [here in progs.csv](progs.csv) and installs
|
||||||
|
[my dotfiles repo (voidrice) here](https://github.com/lukesmithxyz/voidrice),
|
||||||
|
but you can easily change this by either modifying the default variables at the
|
||||||
|
beginning of the script or giving the script one of these options:
|
||||||
|
|
||||||
|
- `-r`: custom dotfiles repository (URL)
|
||||||
|
- `-p`: custom programs list/dependencies (local file or URL)
|
||||||
|
- `-a`: a custom AUR helper (must be able to install with `-S` unless you
|
||||||
|
change the relevant line in the script
|
||||||
|
|
||||||
|
### The `progs.csv` list
|
||||||
|
|
||||||
|
LARBS will parse the given programs list and install all given programs. Note
|
||||||
|
that the programs file must be a three column `.csv`.
|
||||||
|
|
||||||
|
The first column is a "tag" that determines how the program is installed, ""
|
||||||
|
(blank) for the main repository, `A` for via the AUR or `G` if the program is a
|
||||||
|
git repository that is meant to be `make && sudo make install`ed.
|
||||||
|
|
||||||
|
The second column is the name of the program in the repository, or the link to
|
||||||
|
the git repository, and the third comment is a description (should be a verb
|
||||||
|
phrase) that describes the program. During installation, LARBS will print out
|
||||||
|
this information in a grammatical sentence. It also doubles as documentation
|
||||||
|
for people who read the csv or who want to install my dotfiles manually.
|
||||||
|
|
||||||
|
Depending on your own build, you may want to tactically order the programs in
|
||||||
|
your programs file. LARBS will install from the top to the bottom.
|
||||||
|
|
||||||
|
As it is now, don't include commas in your program descriptions since this is
|
||||||
|
a csv. LARBS will not parse it correctly (I think...). It won't crash, but the
|
||||||
|
dialog display will be truncated. You're welcome to pull a fix for this, but
|
||||||
|
please make the end result take csvs of consensus format, since I want my progs
|
||||||
|
file to be a true csv so it will display properly on Github (trust me it
|
||||||
|
counts!).
|
||||||
|
|
||||||
|
### The script itself
|
||||||
|
|
||||||
|
The script is broken up extensively into functions for easier readability and
|
||||||
|
trouble-shooting. Most everything should be self-explanitory.
|
||||||
|
|
||||||
|
The main work is done by the `installationloop` function, which iterates
|
||||||
|
through the programs file and determines based on the tag of each program,
|
||||||
|
which commands to run to install it. You can easily add new methods of
|
||||||
|
installations and tags as well.
|
||||||
|
|
||||||
|
Note that programs from the AUR can only be built by a non-root user. What
|
||||||
|
LARBS does to bypass this by default is to temporarily allow the newly created
|
||||||
|
user to use `sudo` without a password (so the user won't be prompted for a
|
||||||
|
password multiple times in installation). This is done ad-hocly, but
|
||||||
|
effectively with the `newperms` function. At the end of installation,
|
||||||
|
`newperms` removes those settings, giving the user the ability to run only
|
||||||
|
several basic sudo commands without a password (`shutdown`, `reboot`,
|
||||||
|
`pacman -Syu`).
|
||||||
|
Loading…
Reference in New Issue
Block a user