Carl_OS Conception

Forked and customized ArchTitus to better fit my needs and preferences.
This commit is contained in:
outerelocarlos 2022-04-20 06:07:30 +02:00
parent 7a3e86f890
commit d2b304f325
26 changed files with 205 additions and 342 deletions

View File

@ -1,7 +0,0 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

23
.github/labeler.yml vendored
View File

@ -1,23 +0,0 @@
repo:
- '*'
GitHub-Action:
- .github/workflows/*
Configs:
- configs/**/*
Package-Files:
- pkg-files/**/*
scripts:
- scripts/**/*
debug:
- scripts/debug/**/*
helpers:
- scripts/helpers/**/*
installers:
- scripts/installers/**/*

View File

@ -1,18 +0,0 @@
name: "Combine Dependabot PRs"
on:
workflow_dispatch:
jobs:
combine-prs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.0.0
- uses: maadhattah/combine-dependabot-prs@main
with:
branchPrefix: "dependabot"
mustBeGreen: true
combineBranchName: "combined-prs"
ignoreLabel: "nocombine"
baseBranch: "main"
openPR: true
allowSkipped: false

View File

@ -1,27 +0,0 @@
name: Generate Documentation
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.0.0
- name: Github Action genshdoc
id: action-genshdoc
uses: vargiuscuola/genshdoc@master
- name: genshdoc result
run: echo "The result of genshdoc Action was ${{ steps.action-genshdoc.outputs.result }}"
- name: Commit files
run: |
echo ${{ github.ref }}
git add .
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git commit -m "CI: Automated build push" -a | exit 0
- name: Push changes
if: github.ref == 'refs/heads/main'
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,22 +0,0 @@
# This workflow will triage pull requests and apply a label based on the
# paths that are modified in the pull request.
#
# To use this workflow, you will need to set up a .github/labeler.yml
# file with configuration. For more information, see:
# https://github.com/actions/labeler
name: Labeler
on: [pull_request]
jobs:
label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

View File

@ -1,55 +0,0 @@
---
#################################
#################################
## Super Linter GitHub Actions ##
#################################
#################################
name: Lint Code Base
#
# Documentation:
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions
#
#############################
# Start the job on all push #
#############################
on:
push:
branches-ignore: [master, main]
# Remove the line above to run when pushing to master
pull_request:
branches: [master, main]
###############
# Set the Job #
###############
jobs:
build:
# Name the Job
name: Lint Code Base
# Set the agent to run on
runs-on: ubuntu-latest
##################
# Load all steps #
##################
steps:
##########################
# Checkout the code base #
##########################
- name: Checkout Code
uses: actions/checkout@v3.0.0
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
################################
# Run Linter against code base #
################################
- name: Lint Code Base
uses: github/super-linter@v4
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

4
.gitignore vendored
View File

@ -1,4 +0,0 @@
install.conf
installlog.txt
archnikus.code-workspace
setup.conf

View File

@ -1,6 +0,0 @@
# Lines starting with '#' are comments.
# Each line is a file pattern followed by one or more owners.
# Order is important. The last matching pattern has the most precedence.
# These owners will be the default owners for everything in the repo.
* @ChrisTitusTech

BIN
Carl_OS.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

55
Carl_OS.sh Normal file
View File

@ -0,0 +1,55 @@
#!/bin/bash
#github-action genshdoc
#
# @file Carl_OS
# @brief Entrance script that launches children scripts for each phase of installation.
# Find the name of the folder the scripts are in
chmod +x ./scripts/*.sh
set -a
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
SCRIPTS_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"/scripts
CONFIGS_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"/configs
set +a
echo -ne "
-------------------------------------------------------------------------
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
-------------------------------------------------------------------------
Scripts are in directory named Carl_OS
"
( bash $SCRIPT_DIR/scripts/startup.sh )|& tee startup.log
source $CONFIGS_DIR/setup.conf
( bash $SCRIPT_DIR/scripts/0-preinstall.sh )|& tee 0-preinstall.log
( arch-chroot /mnt $HOME/Carl_OS/scripts/1-setup.sh )|& tee 1-setup.log
if [[ ! $DESKTOP_ENV == server ]]; then
( arch-chroot /mnt /usr/bin/runuser -u $USERNAME -- /home/$USERNAME/Carl_OS/scripts/2-user.sh )|& tee 2-user.log
fi
( arch-chroot /mnt $HOME/Carl_OS/scripts/3-post-setup.sh )|& tee 3-post-setup.log
cp -v *.log /mnt/home/$USERNAME
echo -ne "
-------------------------------------------------------------------------
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
-------------------------------------------------------------------------
Done - Please Eject Install Media and Reboot
"

View File

@ -1,6 +1,7 @@
MIT License
Copyright (c) 2021 Chris Titus
Copyright (c) 2022 Carlos Outerelo <outerelocarlos@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -18,7 +18,7 @@
* [MATE Desktop Environment](#mate-desktop-environment)
* [Openbox and Awesome](#openbox-and-awesome)
* [Openbox](#openbox)
* [XFCE Desktop Environment](#xfce-desktop-environment)
@ -26,7 +26,7 @@
#### Essentials
The following packages are included in all ArchTitus versions and flavours since they are essential pieces of the operating system:
The following packages are included in all Carl_OS versions and flavours since they are essential pieces of the operating system:
* **[binutils](https://archlinux.org/packages/core/x86_64/binutils/)**: A set of programs to assemble and manipulate binary and object files.
@ -66,6 +66,8 @@ FULL installations also include the following packages:
* **[awesome-terminal-fonts](https://archlinux.org/packages/community/any/awesome-terminal-fonts/)**: This package adds several symbols and icons to improve the look of monospace terminals.
* **[barrier](https://archlinux.org/packages/community/x86_64/barrier/)**: Open-source KVM software based on Synergy (GUI).
* **[bash-completion](https://archlinux.org/packages/extra/x86_64/bash-completion/)**: Programmable completion for the bash shell.
* **[bind](https://archlinux.org/packages/extra/x86_64/bind/)**: A complete, highly portable implementation of the DNS protocol.
@ -98,6 +100,8 @@ FULL installations also include the following packages:
* **[dnsmasq](https://archlinux.org/packages/extra/x86_64/dnsmasq/)**: Lightweight, easy to configure DNS forwarder and DHCP server.
* **[docker](https://archlinux.org/packages/community/x86_64/docker/)**: Pack, ship and run any application as a lightweight container.
* **[dtc](https://archlinux.org/packages/community/x86_64/dtc/)**: Device Tree Compiler, useful to reformat device-trees files (e.g. dts -> dtb) for booting kernels on embedded systems.
* **[efibootmgr](https://archlinux.org/packages/core/x86_64/efibootmgr/)**: Linux user-space application to modify the EFI Boot Manager.
@ -208,7 +212,7 @@ FULL installations also include the following packages:
* **[swtpm](https://archlinux.org/packages/community/x86_64/swtpm/)**: Libtpms-based TPM emulator with socket, character device, and Linux CUSE interface.
* **[synergy](https://archlinux.org/packages/community/x86_64/synergy/)**: A paid and close-source alternative to [barrier](https://archlinux.org/packages/community/x86_64/barrier/). Adds KVM functionalities so that you can use your mouse and keyboard across multiple devices.
* **[telegram-desktop](https://archlinux.org/packages/community/x86_64/telegram-desktop/)**: The official Telegram desktop client (messaging platform).
* **[terminus-font](https://archlinux.org/packages/community/any/terminus-font/)**: Monospace bitmap font (for X11 and console).
@ -288,8 +292,12 @@ Only for FULL installations (MINIMAL installs do not install AUR packages).
* **[snapper-gui-git](https://aur.archlinux.org/packages/snapper-gui-git)**: GUI for [snapper](https://archlinux.org/packages/community/x86_64/snapper/), a tool of managing snapshots of [Btrfs](https://en.wikipedia.org/wiki/Btrfs) subvolumes and LVM volumes.
* **[teamviewer](https://aur.archlinux.org/packages/teamviewer)**: All-in-one software for remote support/control and online meetings.
* **[ttf-meslo](https://aur.archlinux.org/packages/ttf-meslo)**: Meslo LG is a customized version of Apple's Menlo font with various line gap and dotted zero.
* **[whatsapp-nativefier](https://aur.archlinux.org/packages/whatsapp-nativefier)**: WhatsApp desktop built with nativefier (electron).
* **[zoom](https://aur.archlinux.org/packages/zoom)**: A video/web conferencing service.
### Budgie Desktop Environment

View File

@ -1,68 +1,60 @@
# ArchTitus Installer Script
[![GitHub Super-Linter](https://github.com/ChrisTitusTech/ArchTitus/workflows/Lint%20Code%20Base/badge.svg)](https://github.com/marketplace/actions/super-linter)
# Carl_OS
<img src="https://i.imgur.com/YiNMnan.png" />
[Arch Titus](https://github.com/ChrisTitusTech/ArchTitus) fork to build my own Arch Linux flavour. It features an automated Arch Linux install, streamlining said process quite significantly.
This README contains the steps I do to install and configure a fully-functional Arch Linux installation containing a desktop environment, all the support packages (network, bluetooth, audio, printers, etc.), along with all my preferred applications and utilities. The shell scripts in this repo allow the entire process to be automated.)
<img src="./Carl_OS.png" />
This README contains the steps I do to install and configure a fully-functional Arch Linux installation containing a desktop environment, all the support packages (network, bluetooth, audio, printers, etc.), along with all my preferred applications and utilities. The shell scripts in this repository allow the entire process to be automated.
---
## Create Arch ISO or Use Image
## Installation Process
Download ArchISO from <https://archlinux.org/download/> and put on a USB drive with [Etcher](https://www.balena.io/etcher/), [Ventoy](https://www.ventoy.net/en/index.html), or [Rufus](https://rufus.ie/en/)
Download the Arch Linux .iso file from <https://archlinux.org/download/> and mount it on a USB drive with [Etcher](https://www.balena.io/etcher/), [Ventoy](https://www.ventoy.net/en/index.html), [Rufus](https://rufus.ie/en/) or whichever tool you prefer.
If you don't want to build using this script I did create an image @ <https://www.christitus.com/arch-titus>
## Boot Arch ISO
From initial Prompt type the following commands:
Then, use the aforementioned USB to boot into Arch Linux. If you are using Wi-Fi instead of an Ethernet connection, refer to [Wi-Fi Installation](#wi-fi-installation). If not, type the following commands upon the initial prompt:
```
pacman -Sy git
git clone https://github.com/ChrisTitusTech/ArchTitus
cd ArchTitus
./archtitus.sh
git clone https://github.com/outerelocarlos/Carl_OS
cd Carl_OS
chmod +x ./Carl_OS.sh
./Carl_OS.sh
```
### System Description
This is completely automated arch install. It includes prompts to select your desired desktop environment, window manager, AUR helper, and whether to do a full or minimal install. The KDE desktop environment on arch includes all the packages I use on a daily basis, as well as some customizations.
This initiates an almost completely automated Arch Linux install. This process includes prompts to select your desired desktop environment, window manager, AUR helper, and whether to do a full or minimal install.
### Wi-Fi Installation
First of all, you should check if your Wi-Fi network is blocked. To do so, run `rfkill list`.
If the output says **Soft blocked: yes**, then run `rfkill unblock wifi`.
After unblocking the Wi-Fi, you can connect to it. To do so, go through these 5 steps:
1. Run `iwctl`
2. Run `device list` and find your device's name.
3. Run `station [device name] scan`.
4. Run `station [device name] get-networks`.
5. Find your network and run `station [device name] connect [network name]`, enter your password and run `exit`. You can test if you have internet connection by running `ping google.com`, and then press Ctrl and C (Ctrl+C) to stop the ping test.
After these 5 steps, you may now type the previously provided commands to install Carl_OS
---
## Documentation
The package selection and their purpose is detailed in the **[PKG_Documentation.md](PKG_Documentation.md)** file.
## Troubleshooting
__[Arch Linux RickEllis Installation Guide](https://github.com/rickellis/Arch-Linux-Install-Guide)__
**[Arch Linux RickEllis Installation Guide](https://github.com/rickellis/Arch-Linux-Install-Guide)**
__[Arch Linux Wiki Installation Guide](https://wiki.archlinux.org/title/Installation_guide)__
**[Arch Linux Wiki Installation Guide](https://wiki.archlinux.org/title/Installation_guide)**
The main script will generate .log files for every script that is run as part of the installation process. These log files contain the terminal output so you can review any warnings or errors that occurred during installation and aid in troubleshooting.
### No Wifi
The main script will generate .log files for every script that is run as part of the installation process. These log files contain the terminal output so you can review any warnings or errors that occurred during installation (helps with the troubleshooting).
You can check if the WiFi is blocked by running `rfkill list`.
If it says **Soft blocked: yes**, then run `rfkill unblock wifi`
## Acknowledgements
After unblocking the WiFi, you can connect to it. Go through these 5 steps:
#1: Run `iwctl`
#2: Run `device list`, and find your device name.
#3: Run `station [device name] scan`
#4: Run `station [device name] get-networks`
#5: Find your network, and run `station [device name] connect [network name]`, enter your password and run `exit`. You can test if you have internet connection by running `ping google.com`, and then Press Ctrl and C to stop the ping test.
## Reporting Issues
An issue is easier to resolve if it contains a few important pieces of information.
1. Chosen configuration from /configs/setup.conf (DONT INCLUDE PASSWORDS)
1. Errors seen in .log files
1. What commit/branch you used
1. Where you were installing (VMWare, Virtualbox, Virt-Manager, Baremetal, etc)
1. If a VM, what was the configuration used.
## Credits
- Original packages script was a post install cleanup script called ArchMatic located here: https://github.com/rickellis/ArchMatic
- Thank you to all the folks that helped during the creation from YouTube Chat! Here are all those Livestreams showing the creation: <https://www.youtube.com/watch?v=IkMCtkDIhe8&list=PLc7fktTRMBowNaBTsDHlL6X3P3ViX3tYg>
This is a forked project based on [Arch Titus](https://github.com/ChrisTitusTech/ArchTitus). As such, most of the credit should go to Chris Titus and all of the amazing devs and enthusiasts who have contributed to the project. I would like to highlight the work done by [Austin Horstman](https://github.com/khaneliman) since he has really improved upon the structure of the project and streamlined the installation process.

View File

@ -1,4 +1,4 @@
# ArchTitus
# Carl_OS
Entrance script that launches children scripts for each phase of installation.

View File

@ -54,7 +54,7 @@ user using up, down and enter keys and returns the chosen option.
## logo()
Displays ArchTitus logo
Displays Carl_OS logo
_Function has no arguments._

View File

@ -2,7 +2,7 @@
**Library Files**
* [scripts/startup.sh](REFERENCE-startup.md)
* [scripts/0-preinstall.sh](REFERENCE-0-preinstall.md)
* [archtitus.sh](REFERENCE-archtitus.md)
* [Carl_OS.sh](REFERENCE-Carl_OS.md)
* [scripts/1-setup.sh](REFERENCE-1-setup.md)
* [scripts/3-post-setup.sh](REFERENCE-3-post-setup.md)
* [scripts/2-user.sh](REFERENCE-2-user.md)

View File

@ -1,53 +0,0 @@
#!/bin/bash
#github-action genshdoc
#
# @file ArchTitus
# @brief Entrance script that launches children scripts for each phase of installation.
# Find the name of the folder the scripts are in
set -a
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
SCRIPTS_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"/scripts
CONFIGS_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"/configs
set +a
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
-------------------------------------------------------------------------
Scripts are in directory named ArchTitus
"
( bash $SCRIPT_DIR/scripts/startup.sh )|& tee startup.log
source $CONFIGS_DIR/setup.conf
( bash $SCRIPT_DIR/scripts/0-preinstall.sh )|& tee 0-preinstall.log
( arch-chroot /mnt $HOME/ArchTitus/scripts/1-setup.sh )|& tee 1-setup.log
if [[ ! $DESKTOP_ENV == server ]]; then
( arch-chroot /mnt /usr/bin/runuser -u $USERNAME -- /home/$USERNAME/ArchTitus/scripts/2-user.sh )|& tee 2-user.log
fi
( arch-chroot /mnt $HOME/ArchTitus/scripts/3-post-setup.sh )|& tee 3-post-setup.log
cp -v *.log /mnt/home/$USERNAME
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
-------------------------------------------------------------------------
Done - Please Eject Install Media and Reboot
"

View File

@ -16,6 +16,9 @@ nordic-theme
ocs-url
plymouth-git
sddm-nordic-theme-git
sddm-sugar-candy-git
snapper-gui-git
teamviewer
ttf-meslo
whatsapp-nativefier
zoom

View File

@ -1,3 +1,3 @@
gnome
--END OF MINIMAL INSTALL--
gnome-extras
gnome-extras
--END OF MINIMAL INSTALL--

View File

@ -16,6 +16,7 @@ alsa-utils
autoconf
automake
awesome-terminal-fonts
barrier
bash-completion
bind
bison
@ -32,10 +33,14 @@ cups
dialog
dmidecode
dnsmasq
docker
dtc
efibootmgr
egl-wayland
exfat-utils
firefox
firefox-decentraleyes
firefox-ublock-origin
flex
fuse2
fuse3
@ -84,7 +89,7 @@ snap-pac
snapper
steam
swtpm
synergy
telegram-desktop
terminus-font
traceroute
ttf-droid

View File

@ -1,13 +1,13 @@
#!/usr/bin/env bash
#-------------------------------------------------------------------------
#
# █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
# ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
# ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
# ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
# ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
# ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
#
# ██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
# ██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
# ██║ ███████║██████╔╝██║ ██║ ██║███████╗
# ██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
# ╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
# ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
#
#-------------------------------------------------------------------------
#github-action genshdoc
#
@ -16,12 +16,12 @@
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
@ -157,7 +157,7 @@ echo -ne "
"
pacstrap /mnt base base-devel linux linux-firmware vim nano sudo archlinux-keyring wget libnewt --noconfirm --needed
echo "keyserver hkp://keyserver.ubuntu.com" >> /mnt/etc/pacman.d/gnupg/gpg.conf
cp -R ${SCRIPT_DIR} /mnt/root/ArchTitus
cp -R ${SCRIPT_DIR} /mnt/root/Carl_OS
cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist
genfstab -L /mnt >> /mnt/etc/fstab

View File

@ -6,19 +6,19 @@
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: ArchTitus
SCRIPTHOME: Carl_OS
-------------------------------------------------------------------------
"
source $HOME/ArchTitus/configs/setup.conf
source $HOME/Carl_OS/configs/setup.conf
echo -ne "
-------------------------------------------------------------------------
Network Setup
@ -60,7 +60,7 @@ timedatectl --no-ask-password set-ntp 1
localectl --no-ask-password set-locale LANG="en_US.UTF-8" LC_TIME="en_US.UTF-8"
ln -s /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
# Set keymaps
localectl --no-ask-password set-keymap ${KEYMAP}
localectl --no-ask-password set-keymap --no-convert ${KEYMAP}
# Add sudo no password rights
sed -i 's/^# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/' /etc/sudoers
@ -81,7 +81,7 @@ echo -ne "
# sed $INSTALL_TYPE is using install type to check for MINIMAL installation, if it's true, stop
# stop the script and move on, not installing any more packages below that line
if [[ ! $DESKTOP_ENV == server ]]; then
sed -n '/'$INSTALL_TYPE'/q;p' $HOME/ArchTitus/pkg-files/pacman-pkgs.txt | while read line
sed -n '/'$INSTALL_TYPE'/q;p' $HOME/Carl_OS/pkg-files/pacman-pkgs.txt | while read line
do
if [[ ${line} == '--END OF MINIMAL INSTALL--' ]]; then
# If selected installation type is FULL, skip the --END OF THE MINIMAL INSTALLATION-- line
@ -126,7 +126,7 @@ elif grep -E "Intel Corporation UHD" <<< ${gpu_type}; then
pacman -S --needed --noconfirm libva-intel-driver libvdpau-va-gl lib32-vulkan-intel vulkan-intel libva-intel-driver libva-utils lib32-mesa
fi
#SETUP IS WRONG THIS IS RUN
if ! source $HOME/ArchTitus/configs/setup.conf; then
if ! source $HOME/Carl_OS/configs/setup.conf; then
# Loop through user input until the user gives a valid username
while true
do
@ -140,11 +140,11 @@ if ! source $HOME/ArchTitus/configs/setup.conf; then
echo "Incorrect username."
done
# convert name to lowercase before saving to setup.conf
echo "username=${username,,}" >> ${HOME}/ArchTitus/configs/setup.conf
echo "username=${username,,}" >> ${HOME}/Carl_OS/configs/setup.conf
#Set Password
read -p "Please enter password:" password
echo "password=${password,,}" >> ${HOME}/ArchTitus/configs/setup.conf
echo "password=${password,,}" >> ${HOME}/Carl_OS/configs/setup.conf
# Loop through user input until the user gives a valid hostname, but allow the user to force save
while true
@ -163,7 +163,7 @@ echo "password=${password,,}" >> ${HOME}/ArchTitus/configs/setup.conf
fi
done
echo "NAME_OF_MACHINE=${name_of_machine,,}" >> ${HOME}/ArchTitus/configs/setup.conf
echo "NAME_OF_MACHINE=${name_of_machine,,}" >> ${HOME}/Carl_OS/configs/setup.conf
fi
echo -ne "
-------------------------------------------------------------------------
@ -179,9 +179,9 @@ if [ $(whoami) = "root" ]; then
echo "$USERNAME:$PASSWORD" | chpasswd
echo "$USERNAME password set"
cp -R $HOME/ArchTitus /home/$USERNAME/
chown -R $USERNAME: /home/$USERNAME/ArchTitus
echo "ArchTitus copied to home directory"
cp -R $HOME/Carl_OS /home/$USERNAME/
chown -R $USERNAME: /home/$USERNAME/Carl_OS
echo "Carl_OS copied to home directory"
# enter $NAME_OF_MACHINE to /etc/hostname
echo $NAME_OF_MACHINE > /etc/hostname

View File

@ -6,20 +6,20 @@
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: ArchTitus
SCRIPTHOME: Carl_OS
-------------------------------------------------------------------------
AUR Packages Install
"
source $HOME/ArchTitus/configs/setup.conf
source $HOME/Carl_OS/configs/setup.conf
cd ~
mkdir "/home/$USERNAME/.cache"
@ -28,7 +28,7 @@ source $HOME/ArchTitus/configs/setup.conf
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
ln -s "~/zsh/.zshrc" ~/.zshrc
sed -n '/'$INSTALL_TYPE'/q;p' ~/ArchTitus/pkg-files/${DESKTOP_ENV}.txt | while read line
sed -n '/'$INSTALL_TYPE'/q;p' ~/Carl_OS/pkg-files/${DESKTOP_ENV}.txt | while read line
do
if [[ ${line} == '--END OF MINIMAL INSTALL--' ]]
then
@ -47,7 +47,7 @@ if [[ ! $AUR_HELPER == none ]]; then
makepkg -si --noconfirm
# sed $INSTALL_TYPE is using install type to check for MINIMAL installation, if it's true, stop
# stop the script and move on, not installing any more packages below that line
sed -n '/'$INSTALL_TYPE'/q;p' ~/ArchTitus/pkg-files/aur-pkgs.txt | while read line
sed -n '/'$INSTALL_TYPE'/q;p' ~/Carl_OS/pkg-files/aur-pkgs.txt | while read line
do
if [[ ${line} == '--END OF MINIMAL INSTALL--' ]]; then
# If selected installation type is FULL, skip the --END OF THE MINIMAL INSTALLATION-- line
@ -63,15 +63,17 @@ export PATH=$PATH:~/.local/bin
# Theming DE if user chose FULL installation
if [[ $INSTALL_TYPE == "FULL" ]]; then
if [[ $DESKTOP_ENV == "kde" ]]; then
cp -r ~/ArchTitus/configs/.config/* ~/.config/
cp -r ~/Carl_OS/configs/.config/* ~/.config/
pip install konsave
konsave -i ~/ArchTitus/configs/kde.knsv
konsave -i ~/Carl_OS/configs/kde.knsv
sleep 1
konsave -a kde
elif [[ $DESKTOP_ENV == "openbox" ]]; then
cd ~
git clone https://github.com/stojshic/dotfiles-openbox
./dotfiles-openbox/install-titus.sh
elif [[ [ $DESKTOP_ENV == "gnome" ] && [ ! $AUR_HELPER == none ] ]]; then
$AUR_HELPER -S --noconfirm --needed gnome-shell-extension-pop-shell
fi
fi

View File

@ -6,21 +6,21 @@
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: ArchTitus
SCRIPTHOME: Carl_OS
-------------------------------------------------------------------------
Final Setup and Configurations
GRUB EFI Bootloader: Install & Check
"
source ${HOME}/ArchTitus/configs/setup.conf
source ${HOME}/Carl_OS/configs/setup.conf
if [[ -d "/sys/firmware/efi" ]]; then
grub-install --efi-directory=/boot ${DISK}
@ -44,7 +44,7 @@ THEME_NAME=CyberRe
echo -e "Creating the theme directory..."
mkdir -p "${THEME_DIR}/${THEME_NAME}"
echo -e "Copying the theme..."
cd ${HOME}/ArchTitus
cd ${HOME}/Carl_OS
cp -a configs${THEME_DIR}/${THEME_NAME}/* ${THEME_DIR}/${THEME_NAME}
echo -e "Backing up Grub config..."
cp -an /etc/default/grub /etc/default/grub.bak
@ -68,12 +68,12 @@ if [[ ${DESKTOP_ENV} == "kde" ]]; then
fi
elif [[ "${DESKTOP_ENV}" == "gnome" ]]; then
systemctl enable gdm.service
systemctl enable gdm.service
elif [[ "${DESKTOP_ENV}" == "lxde" ]]; then
systemctl enable lxdm.service
elif [[ "${DESKTOP_ENV}" == "openbox"] || ["${DESKTOP_ENV}" == "awesome"] ]]; then
elif [[ ["${DESKTOP_ENV}" == "openbox"] || ["${DESKTOP_ENV}" == "awesome"] ]]; then
systemctl enable lightdm.service
if [[ "${INSTALL_TYPE}" == "FULL" ]]; then
# Set default lightdm-webkit2-greeter theme to Litarvan
@ -110,6 +110,18 @@ echo " Bluetooth enabled"
systemctl enable avahi-daemon.service
echo " Avahi enabled"
echo -ne "
-------------------------------------------------------------------------
Setting up my Docker environment
-------------------------------------------------------------------------
"
systemctl enable docker
echo " Docker enabled"
systemctl start docker
echo " Docker started"
docker pull gitea/gitea
if [[ "${FS}" == "luks" || "${FS}" == "btrfs" ]]; then
echo -ne "
-------------------------------------------------------------------------
@ -117,11 +129,11 @@ echo -ne "
-------------------------------------------------------------------------
"
SNAPPER_CONF="$HOME/ArchTitus/configs/etc/snapper/configs/root"
SNAPPER_CONF="$HOME/Carl_OS/configs/etc/snapper/configs/root"
mkdir -p /etc/snapper/configs/
cp -rfv ${SNAPPER_CONF} /etc/snapper/configs/
SNAPPER_CONF_D="$HOME/ArchTitus/configs/etc/conf.d/snapper"
SNAPPER_CONF_D="$HOME/Carl_OS/configs/etc/conf.d/snapper"
mkdir -p /etc/conf.d/
cp -rfv ${SNAPPER_CONF_D} /etc/conf.d/
@ -132,12 +144,12 @@ echo -ne "
Enabling (and Theming) Plymouth Boot Splash
-------------------------------------------------------------------------
"
PLYMOUTH_THEMES_DIR="$HOME/ArchTitus/configs/usr/share/plymouth/themes"
PLYMOUTH_THEMES_DIR="$HOME/Carl_OS/configs/usr/share/plymouth/themes"
PLYMOUTH_THEME="arch-glow" # can grab from config later if we allow selection
mkdir -p /usr/share/plymouth/themes
echo 'Installing Plymouth theme...'
cp -rf ${PLYMOUTH_THEMES_DIR}/${PLYMOUTH_THEME} /usr/share/plymouth/themes
if [[ {$FS} == "luks" ]]; then
if [[ "${FS}" == "luks" ]]; then
sed -i 's/HOOKS=(base udev*/& plymouth/' /etc/mkinitcpio.conf # add plymouth after base udev
sed -i 's/HOOKS=(base udev \(.*block\) /&plymouth-/' /etc/mkinitcpio.conf # create plymouth-encrypt after block hook
else
@ -158,8 +170,8 @@ sed -i 's/^%wheel ALL=(ALL:ALL) NOPASSWD: ALL/# %wheel ALL=(ALL:ALL) NOPASSWD: A
sed -i 's/^# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers
sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers
rm -r $HOME/ArchTitus
rm -r /home/$USERNAME/ArchTitus
rm -r $HOME/Carl_OS
rm -r /home/$USERNAME/Carl_OS
# Replace in the same state
cd $pwd

View File

@ -131,23 +131,23 @@ select_option() {
return $(( $active_col + $active_row * $colmax ))
}
# @description Displays ArchTitus logo
# @description Displays Carl_OS logo
# @noargs
logo () {
# This will be shown on every set as user is progressing
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Please select presetup settings for your system
-------------------------------------------------------------------------
------------------------------------------------------------------------
"
}
# @description This function will handle file systems. At this movement we are handling only

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 KiB