Git Product home page Git Product logo

larbs's Introduction

What is this?

This repo is basically a fork of Luke Smith's LARBS. It installs dwm along with some basic software. It requires an Arch-based install.

Screenshot

screenshot

Installation:

Pre-requisite: A minimal Arch-based Linux install with networking. Although it's best to start with a minimal Arch install, as long as you have an Arch-based distro, you can can run the larbs.sh script.

  1. You just rebooted after a minimal Arch install.
  2. As root, clone with git clone https://github.com/majamin/LARBS.git.
  3. cd LARBS, look over larbs.sh and make it executable: chmod +x larbs.sh.
  4. Run larbs.sh, and reboot.

tldr; larbs.sh

The script creates a wheel user and installs all of the programs in progs.csv. Unlabelled programs use pacman, yay for A (AUR), pip for P, and git clone and make for G.

Display manager

It's possible to set this up, but this script does not do it for you. See https://github.com/nbirnel/dwm-from-gdm as an example of how to do this.

Post-install

  1. Generate a GPG key pair or import yours.
  2. Use pass init [email protected] and pass add local/USERNAME@\hostname``
  3. Add auth optional pam_gnupg.so

By default, LARBS uses the programs here in progs.csv and installs my dotfiles repo (voidrice) here, 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 installed.

The second column is the name of the program in the repository, or the link to the git repository, and the third column 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 and 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.

If you include commas in your program descriptions, be sure to include double quotes around the whole description to ensure correct parsing.

The script itself

The script is extensively divided into functions for easier readability and trouble-shooting. Most everything should be self-explanatory.

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).

larbs's People

Contributors

lukesmithxyz avatar majamin avatar anntnzrb avatar upsetbit avatar i-c-u-p avatar kronikpillow avatar jlaw avatar tomjansen avatar vladdoster avatar j-merle avatar kiprasmel avatar mikejbc avatar nicholasasaurusrex avatar g-w1 avatar albinalbyl avatar mayrf avatar guidocella avatar jberczel avatar logandungeon avatar lukerb52 avatar prakash2033 avatar ryaeng avatar sahidvelji avatar yacinesahli avatar ispanos avatar spcbfr avatar zacbea01013 avatar aartoni avatar appeasementpolitik avatar jdedde avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.