Coder Social home page Coder Social logo

void-init's Introduction

Void-init

Warning

This is a WIP.

This is my personal set of system & dotfile init scripts for my specific desktop and laptop, in my preferred install location(s). This script is intended to be run once only after a system reinstall.

Caution

I highly recommend not using this for your own system but feel free to browse.

Desktop:

  • AMD CPU
  • NVidia GPU
  • Multi-monitor

Laptop:

  • Intel CPU & integrated GPU
  • No multi-monitor

Usage

mkdir -p $HOME/.local
cd $HOME/.local
git pull https://github.com/rwnmk/void-init.git
cd void-init
bash start_install.bash

You will be asked for sudo privileges in order to allow the script to install packages. See the script for how this is handled and whether you are comfortable with the security implications.

Other actions requiring root (i.e. runit services, xorg graphics config, etc) are not performed. These manual actions are described in user-tasks.md. The script does not include these as the risk of borking your system is simply not worthwhile the couple of minutes it takes to do these tasks. I might develop this later with very conservative setopts & error-handling.

How it works

  • start_install.bash
    • install_pkgs.bash
      • package installer updates the system then installs all packages from void-init/packages
      • xbps-reconfigure called in case of kernel-relevant package installations
    • install_void-pkgs.bash
      • installs void-packages from github repo so nonfree repo packages can be installed
      • any desired packages are then built & installed from void-init/nonfree-packages
    • install_dev.bash
      • tells asdf to add and install plugins from VINIT_ASDF_PLUGINS variable in start_install.bash
      • any other development-specific packages are installed here (i.e. containers)
    • configure_dots.bash
      • git pull rwnmk/dotfiles (not yet public)
        • this repo includes a link-dots.bash script for tracking and updating linked files
      • creates any required folders, then symlinks various user config files into $HOME and $XDG_CONFIG_HOME
      • note that $XDG_USER_HOME itself is not linked, in order to skip including files which may contain private/transient information

System setup

  • i3 as wm
  • programs like chromium, obsidian, spotify etc installed
  • flatpak available

Usage notes

Run startx from tty to launch i3

~/.xinitrc :: contains programs to run before the window manager session launches

~/.config/i3/config.d/startup :: contains programs to run after the wm session launches

CLI & Development environment

  • login & interactive shell is the void default, dash
  • kitty terminal is configured to launch fish as the interactive shell, however
    • this means we get nice interactivity and prevent fish from messing up $PATH, as it is wont to do when set as the login shell
  • shell scripts are written in bash as I prefer it
  • fzf (with neovim integration installed)
  • neovim with a couple of plugins for editing in the terminal
  • vscode as default GUI editor
  • podman for containers
  • asdf for toolchain management
  • direnv for CLI environment management

Miscellany

VLC + VA-API

Override VLCs default video acceleration by going to Tools > Preferences > Input & Codecs and choosing the suitable option under Hardware-accelerated decoding, e.g. Video Acceleration (VA) API for VA-API.

void-init's People

Contributors

rwnmk avatar

Watchers

 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.