GithubHelp home page GithubHelp logo

armoredgoat / artixinstall Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 32.63 MB

Installation script to install Artix Linux with or without a custom configuration.

License: GNU General Public License v3.0

Vim Script 5.63% Shell 94.37%
artix artix-linux bash installation-script linux shell shell-script

artixinstall's Introduction

PLEASE NOTE

This project is currently on hold.

In the coming months, I will completely revamp this project. Instead of providing both a basic and a custom installation of Artix, this installer will only provide the former. This way, I can focus on a solid base installation process. The custom installation will move into another separate repository in which I will put an installation script for the packages and all my configuration files. This way, I can edit my config files without interfering with this repository.

Eventually, this installer should provide

  • Encryption
  • BTRFS as root file system and subvolumes
  • Timeshift compatibility
  • Network connectivity
  • Base configuration
    • Base packages for everyday use/development
    • Senseful directory structure in home directory

All in all, I aim to a solid but modern base installation from which someone can build in any desired direction.

But first, I have to finish other task in life and research on stuff. Happy new year btw :)

ArtixInstall - an interactive Artix installation script

(Work in progress)

About this project

What does this script do?

This script is written to provide an automated yet interactive process to install Artix Linux on any modern machine. It is written in bash and do not rely on any other ressources other then these already installed in the live iso. Of course, an internet connection is also required.

In the process, the user can choose between two installation types

  1. Base installation

    • Only necessary packages and configuration
    • In the end, you have a working but basic Artix install
    • Additional packages: nano, manuals and tools for file system management
  2. Custom installation (not implemented yet)

    • Take over all my configuration, packages and user settings
    • (will talk more about that when it's finished...)

Either installation will wipe and use an entire disk. Please be aware of that so that you don't delete any data by accident.

The installation process is be pretty straight forward. Just follow the instructions and enter your information and within minutes, you have your Artix up and running.

Why did I write this script?

First of all, this is my first more complex bash script and GitHub project. I started this project to learn bash scripting and working with git as I plan to become a DevOps after my training as an IT specialist for system integration. Furthermore, I wanted to have an ever ongoing project which keeps getting better and more versatile the more I learn about bash scripting, linux and system administration. Therefore, I am grateful for any tips and tricks provided.

The second reason for this script is that I want to do some tinkering with my Artix installation and want to reinstall it easily if I happen to crash it beyond repair.

Maybe this script will inspire other users who are also new to Arch/Artix to write their own scripts or help to improve this one.

What features and improvements do I plan to implement later on?

Higher priority

  • Add customized installation process
    • Add customization (duh!): qtile, neovim for coding and LaTeX, mouseless workflows, ricing, ...
  • Find a better way to control cursor/delete temporary output while going through the configuration process

Lower priority

  • Add support for other init systems (only for base installation; might implement in distant future if not to complicated)
  • Add option to not use a full disk and rather add partitions
  • Add possibility to select which kernel will be installed
  • Add possibility to select which packages will be installed for the base installation

Permanently ongoing

  • Refactor and improve code according to my learning process
  • Improve documentation and comments of code
  • Improve README

How to use the script?

  1. Boot up your PC from an Artix live iso (ArtixLinux' download page)
    • Currently, only the base version with OpenRC is supported
  2. Login with the given credentials on the screen
  3. Switch to root by entering sudo su
  4. Connect to the internet by following the instructions given on the Artix or Arch wiki
  5. Run the folliwng commands to run the script and follow the instructions
# Download the installation script and save it as install.sh in current directory
curl https://raw.githubusercontent.com/ArmoredGoat/artixinstall/main/install.sh -o install.sh
# Make install.sh executable
chmod +x install.sh
# Execute install.sh
./install.sh
  1. After getting through with the installation, you should have a running Artix installation. Enjoy :]

How to contribute to this project?

Please let me know if you run into errors or problems that shouldn't be there by opening an issue or reaching out to me on Social Media (Will create accounts later...).

Also, at it is my first more complex scripts, please tell me if there are better ways to implement the features I had in mind. I don't know all the possibilities of bash that are available on the iso and there might be just the right command to substitute my clanky workarounds but I wasn't aware :)

Check What features and improvements do I plan to implement later on? to see what I am up to and where my prorities are. Maybe there is something you want to help with or you could give a hint for.

I am grateful for any advice that might improve this project and/or my skills in shell scripting.

Credits

The general process and some ways of doing things come from rwinkhart's Artix install script. I used it to get the general idea of an automated installation process, how and which information should be gathered by the script, and to finally install Artix via a script.

artixinstall's People

Contributors

armoredgoat avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

artixinstall's Issues

Automatic reboot after installation process is completed

After the installation process, it is required to enter "reboot" or "shutdown" manually. Instead of doing this, I will implement a function to automatically reboot the system by hitting the return key. If any other key get pressed the script will be exited without rebooting the system. This way, it is possible to make adjustments on their own before rebooting.

Brake up code into functions

I stumbled across this Stack Overflow post which points out several advantages that comes in breaking your bash script into functions.

Therefore, I will move every step in its own function or try to implement functions that are as generic and reusable as possible.

Installation of all wanted applications

Before I customize everything I want to install every application or package I need to daily drive this installation. This issue will be updated continuously to adapt to the current state or to note new or alternative packages.

List of wanted packages (WIP - will format it as a table later)

Internet

Category Application/Package Links Status
Cloud synchronization Nextcloud Package
Repository
Email client NeoMutt Package
Repository
Instant messaging WeeChat Package
Repository
Discord Package
Network manager connman Package
wpa_supplicant Package
Repository
VPN client WireGuard Package
Repository
Web browser Firefox Package
Repository
Arkenfox Repository

Multimedia

Category Application/Package Links Status
Audio control PipeWire Package
Repository
Audio player cmus Package
Repository
Audio tag editor Beets Package
Repository
Audio visualizer cli-visualizer Package
Repository
Image viewer imv Package
Repository
Optical Disk Ripping MakeMKV-Cli
Screenshots Flameshot Package
Repository
Video player mpv Package
Repository
Video editor LosslessCut
Webcam CameraCtrls Package
Repository

Utility

Category Application/Package Links Status
Archive managers p7zip Package
Repository
AUR helper yay Repository
Backup rsync Package
Repository
Bluetooth management bluez-utils Package
Repository
Boot management GRUB
Build automation CMake Package
Repository
GNU make Package
Repository
Command-line shell Bash Package
File Manager Ranger Package
Repository
Job Scheduler cronie Package
Repository
Manuals man-db
man-pages
Package management pacman Package
Repository
Pager less
Secure Shell OpenSSH Package
Repository
Synchronization rsync Package
Repository
System information viewer fastfetch Package
Repository
Task manager bottom Package
Repository
Terminal emulator kitty Package
Repository
Trash Management trash-cli Package
Repository
Version control system Git
Virtualization virt-manager Package
Repository

Documents

Category Application/Package Links Status
PDF Viewer Firefox
Text Editor NeoVim Package
Repository

Gaming

Category Application/Package Links Status
Game distribution platform Steam Package
Minecraft launcher PrismLauncher-Cracked Repository

Security

Category Application/Package Links Status
Firewall management
Network security
Screen locker light-locker Package
Repository

Science

Category Application/Package Links Status

Others

Category Application/Package Links Status
Application launcher rofi Package
Repository
Composite manager Picom Package
Repository
Display manager LightDM Package
Repository
Display server xorg Package
Repository
Wallpaper setter Nitrogen Package
Repository
Window manager Qtile Package
Repository

Installation for BIOS boot not working

If the script is used on a BIOS boot, the installation process is done without further errors. Sadly, the machine does not boot into the OS as it seems the installation is not persistent.

Possible reason: Messed up partitioning for BIOS boots.

Will look into this later as it does not have a personal priority for me.

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.