Giter VIP home page Giter VIP logo

dashit's Introduction

DASHit

Dave's Arch System helper/install tool is a Bash script that automates the steps in the Arch Linux installation guide.

Usage

Download and run the latest version from GitHub Releases:

curl -L https://github.com/dshoreman/dashit/releases/latest/download/dashit -o dashit && chmod +x $_
./dashit --help

Alternatively, modify this example script to your needs for a more complete install:

#!/usr/bin/env bash

export DASHIT_ENVIRONMENTS="i3"
export DASHIT_TERMINALS="alacritty"
export DASHIT_BROWSERS="firefox,vivaldi"

export DASHIT_FF_LOCALE="en-gb"
export DASHIT_EXTRA_UTILS="yes"

curl -L https://github.com/dshoreman/dashit/releases/latest/download/dashit -o dashit

chmod +x "$_" && ./dashit -d /dev/nvme0n1 -v

Main Menu

When you run dashit, you'll be presented with a menu where you can:

  1. Partition and format disk

    Provisions a disk, creating a small ESP formatted as FAT32, with remaining space used for the main btrfs partition.

  2. Create btrfs subvolumes

    Mounts the main btrfs data partition and creates 5 subvolumes: @, @home, @varlog, @snapshots and @vbox.

    By default, the partition will be mounted to /mnt. If it's not empty, you'll be prompted for a different mountpoint.
    Once the subvolumes have been created, the partition is unmounted.

  3. Prepare host system

    Updates the host after enabling Pacman's parallel downloads feature, and installs arch-install-scripts.
    Once done, the latest mirrors are fetched from archlinux.org and written to /etc/pacman.d/mirrorlist.

  4. Install Arch Linux

    Enters the installation submenu.

    Configure microcode, hostname and username with the numbered options then press i or I to install.

    Interactive mode (i) assumes you have already ran steps 1-3 from the main menu; use unattended mode (I) to have them autorun. In both cases, your user is created without a password, so you need to set it on first login.

    Once install has completed and you're back at the menu, press r to unmount all the subvolumes and reboot.

Environment Variables

Several variables are available to predefine packages for install, where most accept a comma- or space-separated list:

DASHIT_ENVIRONMENTS

Installing i3 will also install needed xorg packages. Installing any of the KDEs will include plasma-wayland-session.

  • i3 will install i3 (Gaps variant) with Polybar (and its scripts), Picom, Redshift, Rofi and Dunst.
  • kde will install the Plasma metapackage.
  • kde-full will install the Plasma metapackage and all additional applications.
  • kde-minimal will install the Plasma desktop package only.
  • sway will install Sway with Waybar, Bemenu and Dunst.

DASHIT_EXTRA_UTILS

Setting this to any non-empty value will install bat, fd, fzf, lsof, mtr, pv, ripgrep, tree and rsync.

DASHIT_EXTRA_EXTRACTORS

Adds p7zip, unrar and unzip to the list of packages when set to a non-empty value.

DASHIT_BROWSERS

DASHit supports about 40 different browser packages. Most are set by lowercase name, with some exceptions:

  • Brave, Dot, Icecat, Librewolf and Waterfox (current, g3 or classic) should be set without the -bin suffix.
  • Firefox packages have -18n-$DASHIT_FF_LOCALE appended if it's set.
  • Firefox Developer Edition can be shortened to firefox-dev.
  • The torbrowser-launcher package is also aliased to tor and torbrowser.
  • Google Chrome packages should be installed with chrome, chrome-beta or chrome-dev.

DASHIT_DOTFILES_REPO and DASHIT_DOTFILES_BRANCH

If the dotfiles repo is set, DASHit will automatically clone it to the specified branch. If branch isn't set, master is used.

DASHIT_DOTFILES_DIR

This can be used to change the target path for your dotfiles repo.

The path is relative to your homedir. If it's not set, .files is the default (equivalent to $HOME/.files).

DASHIT_FF_LOCALE

Sets the locale (e.g. en-gb) to use for Firefox packages. See DASHIT_BROWSERS.

dashit's People

Contributors

dshoreman avatar

Watchers

Dave Shoreman 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.