This commit is contained in:
Carlos Outerelo 2022-04-20 04:07:37 +00:00 committed by GitHub
commit 1e3fef90ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
35 changed files with 846 additions and 437 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

538
PKG_Documentation.md Normal file
View File

@ -0,0 +1,538 @@
## Package Documentation
* [Pacman Packages](#pacman-packages)
* [AUR Packages](#aur-packages)
* [Budgie Desktop Environment](#budgie-desktop-environment)
* [Cinnamon Desktop Environment](#cinnamon-desktop-environment)
* [Deepin Desktop Environment](#deepin-desktop-environment)
* [GNOME Desktop Environment](#gnome-desktop-environment)
* [KDE Desktop Environment](#kde-desktop-environment)
* [LXDE Desktop Environment](#lxde-desktop-environment)
* [MATE Desktop Environment](#mate-desktop-environment)
* [Openbox](#openbox)
* [XFCE Desktop Environment](#xfce-desktop-environment)
### Pacman Packages
#### Essentials
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.
* **[dosfstools](https://archlinux.org/packages/core/x86_64/dosfstools/)**: DOS filesystem utilities.
* **[linux-headers](https://archlinux.org/packages/core/x86_64/linux-headers/)**: Headers and scripts for building modules for the Linux kernel.
* **[mesa](https://archlinux.org/packages/extra/x86_64/mesa/)**: An open-source implementation of the OpenGL specification.
* **[noto-fonts-emoji](https://archlinux.org/packages/extra/x86_64/noto-fonts-emoji/)**: Google Noto emoji fonts.
* **[usbutils](https://archlinux.org/packages/core/x86_64/usbutils/)**: A collection of USB tools to query connected USB devices.
* **[xdg-user-dirs](https://archlinux.org/packages/extra/x86_64/xdg-user-dirs/)**: Tool to manage user directories like the desktop folder and the music folder. It also handles localization (i.e. translation) of the filenames.
* **[xorg](https://archlinux.org/groups/x86_64/xorg/)**: The most popular display server among Linux users. Note that this is a package group, meaning that it contains and installs several packages.
* **[xorg-apps](https://archlinux.org/groups/x86_64/xorg-apps/)**: A collection (package group) of X.Org applications.
* **[xorg-drivers](https://archlinux.org/groups/x86_64/xorg-drivers/)**: A collection (package group) of X.Org drivers.
* **[xorg-xinit](https://archlinux.org/packages/extra/x86_64/xorg-xinit/)**: X.Org initialization program.
* **[xterm](https://archlinux.org/packages/extra/x86_64/xterm/)**: X Terminal Emulator.
#### Full package bundle
FULL installations also include the following packages:
* **[alsa-plugins](https://archlinux.org/packages/extra/x86_64/alsa-plugins/)**: Additional ALSA (Advanced Linux Sound Architecture) plugins.
* **[alsa-utils](https://archlinux.org/packages/extra/x86_64/alsa-utils/)**: ALSA (Advanced Linux Sound Architecture) utilities.
* **[autoconf](https://archlinux.org/packages/core/any/autoconf/)**: A GNU tool for automatically configuring source code.
* **[automake](https://archlinux.org/packages/core/any/automake/)**: A GNU tool for automatically creating Makefiles.
* **[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.
* **[bison](https://archlinux.org/packages/core/x86_64/bison/)**: The GNU general-purpose parser generator.
* **[bluez](https://archlinux.org/packages/extra/x86_64/bluez/)**: Daemons for the bluetooth protocol stack.
* **[bluez-libs](https://archlinux.org/packages/extra/x86_64/bluez-libs/)**: Deprecated libraries for the bluetooth protocol stack.
* **[bluez-utils](https://archlinux.org/packages/extra/x86_64/bluez-utils/)**: Development and debugging utilities for the bluetooth protocol stack.
* **[bridge-utils](https://archlinux.org/packages/extra/x86_64/bridge-utils/)**: Utilities for configuring the Linux ethernet bridge.
* **[btrfs-progs](https://archlinux.org/packages/core/x86_64/btrfs-progs/)**: [Btrfs](https://en.wikipedia.org/wiki/Btrfs) filesystem utilities.
* **[celluloid](https://archlinux.org/packages/community/x86_64/celluloid/)**: Simple GTK+ frontend for mpv.
* **[cmatrix](https://archlinux.org/packages/community/x86_64/cmatrix/)**: A command-line utility to display a Matrix-like text-raining effect (type `cmatrix` in the terminal)
* **[code](https://archlinux.org/packages/community/x86_64/code/)**: The open-source build of Visual Studio Code (vscode).
* **[cronie](https://archlinux.org/packages/core/x86_64/cronie/)**: Daemon that runs specified programs at scheduled times (and related tools).
* **[cups](https://archlinux.org/packages/extra/x86_64/cups/)**: Daemon install of a standards-based and open source printing system. CUPS uses IPP Everywhere to support printing to local and network printers.
* **[dialog](https://archlinux.org/packages/core/x86_64/dialog/)**: A tool to display dialog boxes from shell scripts.
* **[dmidecode](https://archlinux.org/packages/extra/x86_64/dmidecode/)**: Open-source tool which reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard.
* **[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.
* **[egl-wayland](https://archlinux.org/packages/extra/x86_64/egl-wayland/)**: WIP implementation of an [EGL](https://en.wikipedia.org/wiki/EGL_(API)) External Platform library to add client-side [Wayland]([Wayland](https://wiki.archlinux.org/title/Wayland)) support to [EGL](https://en.wikipedia.org/wiki/EGL_(API)).
* **[exfat-utils](https://archlinux.org/packages/community/x86_64/exfat-utils/)**: Utilities for the exFAT file system.
* **[firefox](https://archlinux.org/packages/extra/x86_64/firefox/)**: Standalone web browser from Mozilla.
* **[firefox-decentraleyes](https://archlinux.org/packages/community/any/firefox-decentraleyes/)**: A free and open-source browser extension used for local content delivery network emulation. Its primary task is to block connections to major CDNs such as Cloudflare and Google, and serve popular web libraries locally on the users machine.
* **[firefox-ublock-origin](https://archlinux.org/packages/community/any/firefox-ublock-origin/)**: Efficient ad-blocker add-on for various browsers.
* **[flex](https://archlinux.org/packages/core/x86_64/flex/)**: A tool for generating text-scanning programs (programs which recognize lexical patterns in text).
* **[fuse2](https://archlinux.org/packages/extra/x86_64/fuse2/)**: A library that makes it possible to implement a filesystem in a userspace program.
* **[fuse3](https://archlinux.org/packages/extra/x86_64/fuse3/)**: A library that makes it possible to implement a filesystem in a userspace program.
* **[fuseiso](https://archlinux.org/packages/community/x86_64/fuseiso/)**: [FUSE](https://wiki.archlinux.org/title/FUSE) module to mount ISO filesystem images.
* **[gamemode](https://archlinux.org/packages/community/x86_64/gamemode/)**: Allows games to request temporary optimizations for the host OS.
* **[gcc](https://archlinux.org/packages/core/x86_64/gcc/)**: The GNU Compiler Collection for C and C++ front-ends.
* **[gimp](https://archlinux.org/packages/extra/x86_64/gimp/)**: A powerful, free, and open-source image editor.
* **[gparted](https://archlinux.org/packages/extra/x86_64/gparted/)**: A disk partitioning utility, frontend to GNU's Parted.
* **[gptfdisk](https://archlinux.org/packages/extra/x86_64/gptfdisk/)**: A text-mode partitioning tool that works on GUID Partition Table (GPT) disks.
* **[grub-customizer](https://archlinux.org/packages/community/x86_64/grub-customizer/)**: A graphical grub2 settings manager.
* **[gst-libav](https://archlinux.org/packages/extra/x86_64/gst-libav/)**: Multimedia graph framework - libav plugin.
* **[gst-plugins-good](https://archlinux.org/packages/extra/x86_64/gst-plugins-good/)**: Multimedia graph framework - good plugins.
* **[gst-plugins-ugly](https://archlinux.org/packages/extra/x86_64/gst-plugins-ugly/)**: Multimedia graph framework - ugly plugins.
* **[haveged](https://archlinux.org/packages/extra/x86_64/haveged/)**: Entropy harvesting daemon using CPU timings.
* **[htop](https://archlinux.org/packages/extra/x86_64/htop/)**: Interactive process viewer.
* **[jdk-openjdk](https://archlinux.org/packages/extra/x86_64/jdk-openjdk/)**: OpenJDK Java 18 development kit.
* **[kitty](https://archlinux.org/packages/community/x86_64/kitty/)**: A modern, hackable and featureful OpenGL-based terminal emulator.
* **[libdvdcss](https://archlinux.org/packages/extra/x86_64/libdvdcss/)**: Portable abstraction library for DVD decryption.
* **[libtool](https://archlinux.org/packages/core/x86_64/libtool/)**: A generic library support script.
* **[lsof](https://archlinux.org/packages/extra/x86_64/lsof/)**: Lists open files for running Unix processes.
* **[lutris](https://archlinux.org/packages/community/any/lutris/)**: Open-source gaming platform. Allows users to directly access certain game libraries (Steam, Epic, GOG, Humble Bundle) and bundles several packages to emulate and run games as well as possible.
* **[lzop](https://archlinux.org/packages/extra/x86_64/lzop/)**: File compressor using lzo lib.
* **[m4](https://archlinux.org/packages/core/x86_64/m4/)**: The GNU macro processor.
* **[make](https://archlinux.org/packages/core/x86_64/make/)**: GNU Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files (specifically from the *makefile*).
* **[neofetch](https://archlinux.org/packages/community/any/neofetch/)**: A CLI system information tool written in BASH that supports displaying images.
* **[ntfs-3g](https://archlinux.org/packages/extra/x86_64/ntfs-3g/)**: Driver and utilities for the NTFS file system.
* **[ntp](https://archlinux.org/packages/extra/x86_64/ntp/)**: Network Time Protocol reference implementation.
* **[openbsd-netcat](https://archlinux.org/packages/community/x86_64/openbsd-netcat/)**: TCP/IP swiss army knife. OpenBSD variant.
* **[openssh](https://archlinux.org/packages/core/x86_64/openssh/)**: Premier connectivity tool for remote login with the SSH protocol.
* **[os-prober](https://archlinux.org/packages/community/x86_64/os-prober/)**: Utility to detect other OSes on a set of drives.
* **[p7zip](https://archlinux.org/packages/extra/x86_64/p7zip/)**: Command-line file archiver with high compression ratio.
* **[papirus-icon-theme](https://archlinux.org/packages/community/any/papirus-icon-theme/)**: Papirus icon theme.
* **[patch](https://archlinux.org/packages/core/x86_64/patch/)**: A utility to apply patch files to original sources.
* **[picom](https://archlinux.org/packages/community/x86_64/picom/)**: X compositor that may fix tearing issues.
* **[pkgconf](https://archlinux.org/packages/core/x86_64/pkgconf/)**: Package compiler and linker metadata toolkit.
* **[powerline-fonts](https://archlinux.org/packages/community/x86_64/powerline-fonts/)**: Patched fonts for powerline.
* **[pulseaudio](https://archlinux.org/packages/extra/x86_64/pulseaudio/)**: A featureful, general-purpose sound server.
* **[pulseaudio-alsa](https://archlinux.org/packages/extra/x86_64/pulseaudio-alsa/)**: ALSA (Advanced Linux Sound Architecture) configuration for PulseAudio.
* **[pulseaudio-bluetooth](https://archlinux.org/packages/extra/x86_64/pulseaudio-bluetooth/)**: Bluetooth support for PulseAudio.
* **[python-notify2](https://archlinux.org/packages/extra/x86_64/python-notify2/)**: Python interface to DBus notifications.
* **[python-psutil](https://archlinux.org/packages/community/x86_64/python-psutil/)**: A cross-platform process and system utilities module for Python.
* **[python-pyqt5](https://archlinux.org/packages/extra/x86_64/python-pyqt5/)**: A set of Python bindings for the Qt5 toolkit.
* **[python-pip](https://archlinux.org/packages/extra/x86_64/python-pip/)**: The PyPA recommended tool for installing Python packages.
* **[qemu](https://archlinux.org/packages/extra/x86_64/qemu/)**: A generic and open source machine emulator and virtualizer.
* **[snap-pac](https://archlinux.org/packages/community/any/snap-pac/)**: Pacman hooks that use snapper to create pre/post [Btrfs](https://en.wikipedia.org/wiki/Btrfs) snapshots like [openSUSE's YaST](https://yast.opensuse.org/).
* **[snapper](https://archlinux.org/packages/community/x86_64/snapper/)**: A tool for managing [Btrfs](https://en.wikipedia.org/wiki/Btrfs) and LVM snapshots. It can create, diff and restore snapshots and provides timelined auto-snapping.
* **[steam](https://archlinux.org/packages/multilib/x86_64/steam/)**: Valve's digital software delivery system.
* **[swtpm](https://archlinux.org/packages/community/x86_64/swtpm/)**: Libtpms-based TPM emulator with socket, character device, and Linux CUSE interface.
* **[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).
* **[traceroute](https://archlinux.org/packages/core/x86_64/traceroute/)**: Tracks the route taken by packets over an IP network.
* **[ttf-droid](https://archlinux.org/packages/community/any/ttf-droid/)**: General-purpose fonts released by Google as part of Android.
* **[ttf-hack](https://archlinux.org/packages/extra/any/ttf-hack/)**: A hand groomed and optically balanced typeface based on Bitstream Vera Mono.
* **[ttf-roboto](https://archlinux.org/packages/community/any/ttf-roboto/)**: Google's signature family of fonts.
* **[ufw](https://archlinux.org/packages/community/any/ufw/)**: Uncomplicated and easy to use CLI tool for managing a netfilter firewall.
* **[unrar](https://archlinux.org/packages/extra/x86_64/unrar/)**: Tool to view and/or extract the content of RAR archives.
* **[unzip](https://archlinux.org/packages/extra/x86_64/unzip/)**: Tool to view and/or extract the content of ZIP archives.
* **[vde2](https://archlinux.org/packages/extra/x86_64/vde2/)**: Virtual Distributed Ethernet (for emulators like [qemu](https://archlinux.org/packages/extra/x86_64/qemu/)).
* **[virt-manager](https://archlinux.org/packages/community/any/virt-manager/)**: Desktop user interface for managing virtual machines.
* **[virt-viewer](https://archlinux.org/packages/community/x86_64/virt-viewer/)**: A lightweight interface for interacting with the graphical display of virtualized guest OS.
* **[which](https://archlinux.org/packages/core/x86_64/which/)**: A utility to show the full path of commands.
* **[wine-gecko](https://archlinux.org/packages/community/x86_64/wine-gecko/)**: Wine's built-in replacement for Microsoft's Internet Explorer.
* **[wine-mono](https://archlinux.org/packages/community/any/wine-mono/)**: Wine's built-in replacement for Microsoft's .NET Framework.
* **[winetricks](https://archlinux.org/packages/multilib/x86_64/winetricks/)**: Script to install various redistributable runtime libraries in Wine.
* **[zip](https://archlinux.org/packages/extra/x86_64/zip/)**: Compressor/archiver for creating and modifying ZIP files.
* **[zsh](https://archlinux.org/packages/extra/x86_64/zsh/)**: A very advanced and programmable command interpreter (shell) for UNIX.
* **[zsh-autosuggestions](https://archlinux.org/packages/community/any/zsh-autosuggestions/)**: Autosuggestions for zsh.
* **[zsh-syntax-highlighting](https://archlinux.org/packages/community/any/zsh-syntax-highlighting/)**: Syntax highlighting for zsh.
### AUR Packages
Only for FULL installations (MINIMAL installs do not install AUR packages).
* **[autojump](https://aur.archlinux.org/packages/autojump)**: A faster way to navigate your filesystem from the command line.
* **[brave-bin](https://aur.archlinux.org/packages/brave-bin)**: A privacy-focused Chromium web browser. I recommend a Gecko-based browser instead (e.g. [Firefox]((https://archlinux.org/packages/extra/x86_64/firefox/))) as Google's monolopoly benefits nobody, but certain plugins are only available for Chromium-based web browsers.
* **[bridge-utils](https://aur.archlinux.org/packages/bridge-utils)**: Utilities for configuring the Linux ethernet bridge.
* **[dxvk-bin](https://aur.archlinux.org/packages/dxvk-bin)**: Vulkan-based compatibility layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine (Windows DLL binary files).
* **[github-desktop-bin](https://aur.archlinux.org/packages/github-desktop-bin)**: GUI for managing Git and GitHub.
* **[lightly-git](https://aur.archlinux.org/packages/lightly-git)**: Lightly is a fork of breeze theme style that aims to be visually modern and minimalistic.
* **[lightlyshaders-git](https://aur.archlinux.org/packages/lightlyshaders-git)**: Rounded corners and outline effects for KWin.
* **[mangohud](https://aur.archlinux.org/packages/mangohud)**: Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more.
* **[mangohud-common](https://aur.archlinux.org/packages/mangohud-common)**: Common files for mangohud.
* **[nerd-fonts-fira-code](https://aur.archlinux.org/packages/nerd-fonts-fira-code)**: Patched font Fira (Fura) Code from the nerd-fonts library.
* **[nordic-darker-standard-buttons-theme](https://aur.archlinux.org/packages/nordic-darker-standard-buttons-theme)**: Nord-derived themes for GTK and other platforms.
* **[nordic-darker-theme](https://aur.archlinux.org/packages/nordic-darker-theme)**: Nord-derived themes for GTK and other platforms.
* **[nordic-kde-git](https://aur.archlinux.org/packages/nordic-kde-git)**: Theme for KDE Plasma 5 using the Nord color pallete.
* **[nordic-theme](https://aur.archlinux.org/packages/nordic-theme)**: Nord-derived themes for GTK and other platforms.
* **[ocs-url](https://aur.archlinux.org/packages/ocs-url)**: An install helper program for items served via OpenCollaborationServices (ocs://).
* **[plymouth-git](https://aur.archlinux.org/packages/plymouth-git)**: A graphical boot splash screen with kernel mode-setting support (development version).
* **[sddm-nordic-theme-git](https://aur.archlinux.org/packages/sddm-nordic-theme-git)**: Nordic theme for SDDM (Simple Desktop Display Manager).
* **[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
The following packages are only installed if the user selects the [Budgie desktop environment](https://wiki.archlinux.org/title/Budgie) during the installation process.
* **[budgie-desktop](https://archlinux.org/packages/community/x86_64/budgie-desktop/)**: A modern desktop environment from the Solus Project.
* **[gnome](https://archlinux.org/groups/x86_64/gnome/)**: GNOME's package group complements the Budgie desktop environment to provide a more complete desktop experience.
### Cinnamon Desktop Environment
The following packages are only installed if the user selects the [Cinnamon desktop environment](https://wiki.archlinux.org/title/Cinnamon) during the installation process. This project installs Cinnamon alongside two window managers: GNOME Shell makes the desktop environment feel akin to GNOME 3 whereas Metacity follows more traditional desktop metaphor conventions, making Cinnamon feel like a modern version of GNOME 2.
* **[cinnamon](https://archlinux.org/packages/community/x86_64/cinnamon/)**: Cinnamon is a desktop environment from the Linux Mint team which combines a traditional desktop layout with modern graphical effects.
* **[gnome-shell](https://archlinux.org/packages/extra/x86_64/gnome-shell/)**: The most modern window manager for GNOME-based systems. Makes Cinnamon feel like GNOME 3.
* **[metacity](https://archlinux.org/packages/community/x86_64/metacity/)**: The window manager of GNOME Flashback. It provides a more classic feel, following traditional desktop metaphor conventions.
### Deepin Desktop Environment
The following packages are only installed if the user selects the [Deepin desktop environment](https://wiki.archlinux.org/title/Deepin_Desktop_Environment) during the installation process. Deepin is undoubtedly a well-rounded desktop environment, providing a beautiful (reminiscent of the MacOS UI), easy to use, safe and reliable system.
* **[deepin](https://archlinux.org/groups/x86_64/deepin/)**: Package group to install the Deepin desktop environment and its core packages.
* **[deepin-extra](https://archlinux.org/groups/x86_64/deepin-extra/)**: Package group with several extra components for the Deepin desktop environment.
### GNOME Desktop Environment
The following packages are only installed if the user selects the [GNOME desktop environment](https://wiki.archlinux.org/title/GNOME) during the installation process. GNOME is arguably of the most popular desktop environment for the Linux ecosystem based on the fact that is the one that comes preinstalled with Ubuntu, the most popular Linux distribution. Its desktop experience has changed quite significantly since GNOME 3, bringing some design choices from mobile systems and/or MacOS. Some users despite this, other love it, but despite it all GNOME remains a featureful and efficient desktop environment.
* **[gnome](https://archlinux.org/groups/x86_64/gnome/)**: Package group to install the GNOME desktop environment and its core packages.
FULL installations also include the following software:
* **[gnome-extras](https://archlinux.org/groups/x86_64/gnome-extra/)**: Package group with several extra components for the GNOME desktop environment.
### KDE Desktop Environment
The following packages are only installed if the user selects the [KDE Plasma desktop environment](https://wiki.archlinux.org/title/KDE) during the installation process. KDE Plasma is one of the most popular desktop environments for the Linux ecosystem, providing a familiar experience for Windows users as well as a highly customizable one for more advanced Linus users. It is also worth noting that KDE's software suite is also quite extensive and works well in tandem (as an ecosystem of sorts).
* **[plasma-desktop](https://archlinux.org/packages/extra/x86_64/plasma-desktop/)**: KDE's Plasma desktop environment.
* **[dolphin](https://archlinux.org/packages/extra/x86_64/dolphin/)**: A lightweight yet featureful file manager.
* **[sddm](https://archlinux.org/packages/extra/x86_64/sddm/)**: The Simple Desktop Display Manager (SSDM) is the recommended display manager for the KDE Plasma and LXQt desktop environments.
FULL installations also include the following software:
* **[ark](https://archlinux.org/packages/extra/x86_64/ark/)**: Ark is a graphical file compression/decompression utility with support for multiple formats.
* **[audiocd-kio](https://archlinux.org/packages/extra/x86_64/audiocd-kio/)**: KIO slave that enables KIO-aware applications (such as Dolphin or k3b) to access audio and CD text data on the audio compact disks.
* **[bluedevil](https://archlinux.org/packages/extra/x86_64/bluedevil/)**: Integrates Bluetooth technology/connectivity within KDE workspace and applications.
* **[breeze](https://archlinux.org/packages/extra/x86_64/breeze/)**: Artwork, styles and assets for the Breeze visual style for the Plasma Desktop.
* **[breeze-gtk](https://archlinux.org/packages/extra/any/breeze-gtk/)**: Breeze widget theme for GTK 2 and 3.
* **[discover](https://archlinux.org/packages/extra/x86_64/discover/)**: KDE's software discovery tool. Like an App Store of sorts.
* **[extra-cmake-modules](https://archlinux.org/packages/extra/any/extra-cmake-modules/)**: Extra modules and scripts for CMake.
* **[filelight](https://archlinux.org/packages/extra/x86_64/filelight/)**: A KDE application to visualize the system's disk usage in a visually appealing format.
* **[gwenview](https://archlinux.org/packages/extra/x86_64/gwenview/)**: A fast and easy to use image viewer.
* **[kate](https://archlinux.org/packages/extra/x86_64/kate/)**: A multi-document, multi-view and featureful text editor by KDE.
* **[kde-gtk-config](https://archlinux.org/packages/extra/x86_64/kde-gtk-config/)**: GTK2 and GTK3 Configurator for KDE.
* **[kcodecs](https://archlinux.org/packages/extra/x86_64/kcodecs/)**: This package provides a collection of methods to manipulate strings using various encodings.
* **[kcoreaddons](https://archlinux.org/packages/extra/x86_64/kcoreaddons/)**: Addons to QtCore.
* **[kdeplasma-addons](https://archlinux.org/packages/extra/x86_64/kdeplasma-addons/)**: All kind of addons to improve the KDE Plasma experience.
* **[kgamma5](https://archlinux.org/packages/extra/x86_64/kgamma5/)**: Handy package to adjust your monitor gamma settings.
* **[kgpg](https://archlinux.org/packages/extra/x86_64/kgpg/)**: A frontend for GnuPG (a powerful encryption utility). It can help you set up and manage your keys, view key signatures, trust status and expiry dates.
* **[kinfocenter](https://archlinux.org/packages/extra/x86_64/kinfocenter/)**: An utility that provides information about the system.
* **[konsole](https://archlinux.org/packages/extra/x86_64/konsole/)**: KDE terminal emulator.
* **[kscreen](https://archlinux.org/packages/extra/x86_64/kscreen/)**: KDE screen management software.
* **[kvantum-qt5](https://archlinux.org/packages/community/x86_64/kvantum/)**: SVG-based theme engine for Qt5/6 (including config tool and extra themes).
* **[kwalletmanager](https://archlinux.org/packages/kde-unstable/x86_64/kwalletmanager/)**: KDE's tool to manage the passwords on your system.
* **[layer-shell-qt](https://archlinux.org/packages/extra/x86_64/layer-shell-qt/)**: Qt component to allow applications to make use of the Wayland wl-layer-shell protocol.
* **[milou](https://archlinux.org/packages/extra/x86_64/milou/)**: A dedicated search application built on top of Baloo.
* **[okular](https://archlinux.org/packages/extra/x86_64/okular/)**: A multi-platform document viewer developed by KDE.
* **[oxygen](https://archlinux.org/packages/extra/x86_64/oxygen/)**: Oxygen theme for KDE Plasma.
* **[plasma-nm](https://archlinux.org/packages/extra/x86_64/plasma-nm/)**: Plasma applet written in QML for managing network connections.
* **[plasma-pa](https://archlinux.org/packages/extra/x86_64/plasma-pa/)**: Plasma applet for audio volume management using PulseAudio.
* **[plasma-wayland-session](https://archlinux.org/packages/extra/x86_64/plasma-wayland-session/)**: KDE Plasma [Wayland](https://wiki.archlinux.org/title/Wayland) session.
* **[powerdevil](https://archlinux.org/packages/extra/x86_64/powerdevil/)**: A tool for managing the power consumption settings of a KDE Plasma.
* **[print-manager](https://archlinux.org/packages/extra/x86_64/print-manager/)**: A tool for managing print jobs and printers.
* **[spectacle](https://archlinux.org/packages/extra/x86_64/spectacle/)**: KDE screenshot capture utility.
* **[systemsettings](https://archlinux.org/packages/extra/x86_64/systemsettings/)**: KDE system manager for hardware, software, and workspaces.
* **[xdg-desktop-portal-kde](https://archlinux.org/packages/extra/x86_64/xdg-desktop-portal-kde/)**: A backend implementation for xdg-desktop-portal using Qt/KF5.
* **[zeroconf-ioslave](https://archlinux.org/packages/extra/x86_64/zeroconf-ioslave/)**: Adds an entry to Dolphin's Network page to show local services such as printers which advertise themselves with [DNS-SD](http://www.dns-sd.org/).
### LXDE Desktop Environment
The following packages are only installed if the user selects the [LXDE desktop environment](https://wiki.archlinux.org/title/LXDE) during the installation process. LXDE (Lightweight X11 Desktop Environment) is an extremely fast-performing and energy-saving desktop environment, featuring a classic interface reminiscent of older Windows versions.
* **[lxde](https://archlinux.org/groups/x86_64/lxde/)**: Package group to install the LXDE desktop environment and its core packages.
### MATE Desktop Environment
The following packages are only installed if the user selects the [MATE desktop environment](https://wiki.archlinux.org/title/MATE) during the installation process. MATE is a fork and continuation of GNOME 2, providing an intuitive, classic and attractive desktop environment which follows traditional desktop metaphor conventions.
* **[mate](https://archlinux.org/groups/x86_64/mate/)**: Package group to install the MATE desktop environment and its core packages.
* **[mate-extra](https://archlinux.org/groups/x86_64/mate-extra/)**: Package group with several extra components for the MATE desktop environment.
### Openbox and Awesome
The following packages are only installed if the user selects either [Openbox](https://wiki.archlinux.org/title/Openbox) or [Awesome](https://wiki.archlinux.org/title/Awesome) from within the desktop environment prompt during the installation process. Neither is a desktop environment *per se* but rather lightweight, powerful, and highly configurable windows manager. Both can run independently or within other integrated desktop environments (such as KDE and Xfce) as an alternative to the window managers they provide, although running Awesome independently is not really a user-friendly experience (it is primarily targeted at power users, developers and enthusiasts who want to have fine-grained control of their graphical environment).
Openbox, however, provides a lightweight alternative to desktop environments while still offering a manageable user interface (as a matter of fact, the fast-performing LXDE desktop environment is built upon Openbox).
The package selection is almost identical for both window managers, with the exception of the package that installs the window manager itself:
* **[openbox](https://archlinux.org/packages/community/x86_64/openbox/)**: Installs the Openbox window manager.
* **[awesome](https://archlinux.org/packages/community/x86_64/awesome/)**: Installs the Awesome window manager.
The rest of the software goes as follows:
* **[lightdm](https://archlinux.org/packages/extra/x86_64/lightdm/)**: A lightweight display manager.
* **[lightdm-gtk-greeter](https://archlinux.org/packages/extra/x86_64/lightdm-gtk-greeter/)**: GTK+ greeter for LightDM.
* **[lxsession](https://archlinux.org/packages/community/x86_64/lxsession/)**: A lightweight X11 session manager
* **[rxvt-unicode](https://archlinux.org/packages/community/x86_64/rxvt-unicode/)**: Unicode-enabled Rxvt-clone terminal emulator.
* **[thunar](https://archlinux.org/packages/extra/x86_64/thunar/)**: Modern file manager for XFCE which works rather well with Openbox.
FULL installations also include the following software:
* **[alsa-utils](https://archlinux.org/packages/extra/x86_64/alsa-utils/)**: ALSA (Advanced Linux Sound Architecture) utilities.
* **[dunst](https://archlinux.org/packages/community/x86_64/dunst/)**: Customizable and lightweight notification-daemon.
* **[feh](https://archlinux.org/packages/extra/x86_64/feh/)**: Fast and light imlib2-based image viewer.
* **[geany](https://archlinux.org/packages/community/x86_64/geany/)**: Fast and lightweight IDE.
* **[gsimplecal](https://archlinux.org/packages/community/x86_64/gsimplecal/)**: Simple and lightweight GTK calendar.
* **[gtk2-perl](https://archlinux.org/packages/extra/x86_64/gtk2-perl/)**: Perl bindings for GTK+ 2.X
* **[htop](https://archlinux.org/packages/extra/x86_64/htop/)**: Interactive process viewer.
* **[imagemagick](https://archlinux.org/packages/extra/x86_64/imagemagick/)**: An image viewing/manipulation program.
* **[jq](https://archlinux.org/packages/community/x86_64/jq/)**: Command-line JSON processor.
* **[lightdm-webkit2-greeter](https://archlinux.org/packages/community/x86_64/lightdm-webkit2-greeter/)**: LightDM greeter that uses WebKit2 for theming via HTML/JavaScript.
* **[lightdm-webkit-theme-litarvan](https://archlinux.org/packages/community/any/lightdm-webkit-theme-litarvan/)**: Modern and full-featured LightDM theme.
* **[lxappearance](https://archlinux.org/packages/community/x86_64/lxappearance/)**: Feature-rich GTK+ theme switcher of the LXDE Desktop.
* **[nano](https://archlinux.org/packages/core/x86_64/nano/)**: Pico editor clone with enhancements.
* **[neofetch](https://archlinux.org/packages/community/any/neofetch/)**: A CLI system information tool written in BASH that supports displaying images.
* **[obconf](https://archlinux.org/packages/community/x86_64/obconf/)**: A GTK+ based configuration tool for the Openbox window manager.
* **[parcellite](https://archlinux.org/packages/community/x86_64/parcellite/)**: Lightweight GTK+ clipboard manager.
* **[pavucontrol](https://archlinux.org/packages/extra/x86_64/pavucontrol/)**: PulseAudio Volume Control.
* **[picom](https://archlinux.org/packages/community/x86_64/picom/)**: X compositor that may fix tearing issues.
* **[playerctl](https://archlinux.org/packages/community/x86_64/playerctl/)**: A command-line utility and library for controlling media players that implement the MPRIS D-Bus Interface Specification which simplifies binding player actions to media keys.
* **[pulseaudio](https://archlinux.org/packages/extra/x86_64/pulseaudio/)**: A featureful, general-purpose sound server.
* **[pulseaudio-alsa](https://archlinux.org/packages/extra/x86_64/pulseaudio-alsa/)**: ALSA (Advanced Linux Sound Architecture) configuration for PulseAudio.
* **[qt5ct](https://archlinux.org/packages/community/x86_64/qt5ct/)**: Qt5 Configuration Utility.
* **[rofi](https://archlinux.org/packages/community/x86_64/rofi/)**: A window switcher, application launcher and dmenu replacement.
* **[scrot](https://archlinux.org/packages/community/x86_64/scrot/)**: Simple command-line screenshot utility for X.
* **[thunar-archive-plugin](https://archlinux.org/packages/extra/x86_64/thunar-archive-plugin/)**: Allows to create and extract archives in the Thunar file manager.
* **[thunar-volman](https://archlinux.org/packages/extra/x86_64/thunar-volman/)**: Automatic management of removeable devices in the Thunar file manager.
* **[thunar-media-tags-plugin](https://archlinux.org/packages/extra/x86_64/thunar-media-tags-plugin/)**: Adds special features for media files to the Thunar file manager.
* **[tint2](https://archlinux.org/packages/community/x86_64/tint2/)**: Basic, good-looking task manager for WMs.
* **[tumbler](https://archlinux.org/packages/extra/x86_64/tumbler/)**: D-Bus service for applications to request thumbnails.
* **[viewnior](https://archlinux.org/packages/community/x86_64/viewnior/)**: A simple, fast and elegant image viewer.
* **[w3m](https://archlinux.org/packages/extra/x86_64/w3m/)**: A text-based web browser.
* **[wireless_tools](https://archlinux.org/packages/extra/x86_64/wireless_tools/)**: Tools allowing to manipulate the Wireless Extensions (`iwconfig`, `iwlist`, `iwspy`, `iwpriv` and `ifrename`).
* **[xautolock](https://archlinux.org/packages/community/x86_64/xautolock/)**: An automatic X screen-locker/screen-saver.
* **[xclip](https://archlinux.org/packages/extra/x86_64/xclip/)**: Command line interface to the X11 clipboard.
* **[xfce4-power-manager](https://archlinux.org/packages/extra/x86_64/xfce4-power-manager/)**: A handy package to manage the power sources of the system and connected devices, extremely useful for laptop devices.
* **[xsettingsd](https://archlinux.org/packages/community/x86_64/xsettingsd/)**: Provides settings to X11 applications via the XSETTINGS specification.
* **[zsh](https://archlinux.org/packages/extra/x86_64/zsh/)**: A very advanced and programmable command interpreter (shell) for UNIX.
### Xfce Desktop Environment
The following packages are only installed if the user selects the classic and lightweight [Xfce desktop environment](https://wiki.archlinux.org/title/Xfce) during the installation process.
* **[xfce4](https://archlinux.org/groups/x86_64/xfce4/)**: Package group to install the classic and lightweight Xfce desktop environment along with its core packages.
* **[xfce4-goodies](https://archlinux.org/groups/x86_64/xfce4-goodies/)**: Package group with several extra components for the Xfce desktop environment.

View File

@ -1,64 +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,48 +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,7 +16,9 @@ nordic-theme
ocs-url
plymouth-git
sddm-nordic-theme-git
sddm-sugar-candy-git
snapper-gui-git
teamviewer
ttf-meslo
vde2
whatsapp-nativefier
zoom

View File

@ -1,44 +1,44 @@
awesome
lightdm
lightdm-gtk-greeter
thunar
lxsession
rxvt-unicode
thunar
--END OF MINIMAL INSTALL--
alsa-utils
pulseaudio
pulseaudio-alsa
wireless_tools
zsh
dunst
rofi
feh
geany
gsimplecal
gtk2-perl
htop
imagemagick
jq
lightdm-webkit2-greeter
lightdm-webkit-theme-litarvan
lxappearance
nano
neofetch
obconf
parcellite
pavucontrol
picom
playerctl
pulseaudio
pulseaudio-alsa
qt5ct
gsimplecal
xautolock
xclip
rofi
scrot
tint2
thunar-archive-plugin
thunar-volman
thunar-media-tags-plugin
tumbler
jq
w3m
geany
nano
viewnior
pavucontrol
parcellite
neofetch
htop
picom
gtk2-perl
w3m
wireless_tools
xautolock
xclip
xfce4-power-manager
imagemagick
playerctl
xsettingsd
obconf
zsh

View File

@ -1,4 +1,4 @@
cinnamon
metacity
gnome-shell
metacity
--END OF MINIMAL INSTALL--

View File

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

View File

@ -1,6 +1,6 @@
dolphin
plasma-desktop
sddm
dolphin
--END OF MINIMAL INSTALL--
ark
audiocd-kio

View File

@ -1,45 +1,44 @@
openbox
lightdm
lightdm-gtk-greeter
thunar
lxsession
openbox
rxvt-unicode
thunar
--END OF MINIMAL INSTALL--
alsa-utils
pulseaudio
pulseaudio-alsa
wireless_tools
zsh
dunst
tint2
rofi
feh
geany
gsimplecal
gtk2-perl
htop
imagemagick
jq
lightdm-webkit2-greeter
lightdm-webkit-theme-litarvan
lxappearance
nano
neofetch
obconf
parcellite
pavucontrol
picom
playerctl
pulseaudio
pulseaudio-alsa
qt5ct
gsimplecal
xautolock
xclip
rofi
scrot
thunar-archive-plugin
thunar-volman
thunar-media-tags-plugin
tint2
tumbler
jq
w3m
geany
nano
viewnior
pavucontrol
parcellite
neofetch
htop
picom
gtk2-perl
w3m
wireless_tools
xautolock
xclip
xfce4-power-manager
imagemagick
playerctl
xsettingsd
obconf
zsh

View File

@ -1,23 +1,22 @@
mesa
xorg
xorg-server
xorg-apps
xorg-drivers
xorg-xkill
xorg-xinit
xterm
binutils
dosfstools
linux-headers
mesa
noto-fonts-emoji
usbutils
xdg-user-dirs
xorg
xorg-apps
xorg-drivers
xorg-xinit
xterm
--END OF MINIMAL INSTALL--
alsa-plugins
alsa-utils
autoconf
automake
awesome-terminal-fonts
barrier
bash-completion
bind
bison
@ -34,10 +33,14 @@ cups
dialog
dmidecode
dnsmasq
docker
dtc
efibootmgr
egl-wayland
exfat-utils
firefox
firefox-decentraleyes
firefox-ublock-origin
flex
fuse2
fuse3
@ -86,7 +89,7 @@ snap-pac
snapper
steam
swtpm
synergy
telegram-desktop
terminus-font
traceroute
ttf-droid
@ -95,6 +98,7 @@ ttf-roboto
ufw
unrar
unzip
vde2
virt-manager
virt-viewer
which
@ -103,5 +107,5 @@ wine-mono
winetricks
zip
zsh
zsh-syntax-highlighting
zsh-autosuggestions
zsh-syntax-highlighting

View File

@ -1,11 +1,13 @@
#!/usr/bin/env bash
#-------------------------------------------------------------------------
# █████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
# ██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
# ███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
# ██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
# ██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
# ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
#
# ██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
# ██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
# ██║ ███████║██████╔╝██║ ██║ ██║███████╗
# ██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
# ╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
# ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
#
#-------------------------------------------------------------------------
#github-action genshdoc
#
@ -13,14 +15,16 @@
# @brief Contains the steps necessary to configure and pacstrap the install to selected drive.
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
Automated Arch Linux Installer
-------------------------------------------------------------------------
Setting up mirrors for optimal download
@ -36,20 +40,20 @@ pacman -S --noconfirm --needed reflector rsync grub
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
echo -ne "
-------------------------------------------------------------------------
Setting up $iso mirrors for faster downloads
Setting up $iso mirrors for faster downloads
-------------------------------------------------------------------------
"
reflector -a 48 -c $iso -f 5 -l 20 --sort rate --save /etc/pacman.d/mirrorlist
mkdir /mnt &>/dev/null # Hiding error message if any
echo -ne "
-------------------------------------------------------------------------
Installing Prerequisites
Installing Prerequisites
-------------------------------------------------------------------------
"
pacman -S --noconfirm --needed gptfdisk btrfs-progs glibc
echo -ne "
-------------------------------------------------------------------------
Formating Disk
Formating Disk
-------------------------------------------------------------------------
"
umount -A --recursive /mnt # make sure everything is unmounted before we start
@ -69,7 +73,7 @@ partprobe ${DISK} # reread partition table to ensure it is correct
# make filesystems
echo -ne "
-------------------------------------------------------------------------
Creating Filesystems
Creating Filesystems
-------------------------------------------------------------------------
"
# @description Creates the btrfs subvolumes.
@ -148,12 +152,12 @@ if ! grep -qs '/mnt' /proc/mounts; then
fi
echo -ne "
-------------------------------------------------------------------------
Arch Install on Main Drive
Arch Install on Main Drive
-------------------------------------------------------------------------
"
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
@ -163,7 +167,7 @@ echo "
cat /mnt/etc/fstab
echo -ne "
-------------------------------------------------------------------------
GRUB BIOS Bootloader Install & Check
GRUB BIOS Bootloader Install & Check
-------------------------------------------------------------------------
"
if [[ ! -d "/sys/firmware/efi" ]]; then
@ -173,7 +177,7 @@ else
fi
echo -ne "
-------------------------------------------------------------------------
Checking for low memory systems <8G
Checking for low memory systems <8G
-------------------------------------------------------------------------
"
TOTAL_MEM=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*')
@ -191,6 +195,6 @@ if [[ $TOTAL_MEM -lt 8000000 ]]; then
fi
echo -ne "
-------------------------------------------------------------------------
SYSTEM READY FOR 1-setup.sh
SYSTEM READY FOR 1-setup.sh
-------------------------------------------------------------------------
"

View File

@ -5,28 +5,30 @@
# @brief Configures installed system, installs base packages, and creates user.
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: ArchTitus
Automated Arch Linux Installer
SCRIPTHOME: Carl_OS
-------------------------------------------------------------------------
"
source $HOME/ArchTitus/configs/setup.conf
source $HOME/Carl_OS/configs/setup.conf
echo -ne "
-------------------------------------------------------------------------
Network Setup
Network Setup
-------------------------------------------------------------------------
"
pacman -S --noconfirm --needed networkmanager dhclient
systemctl enable --now NetworkManager
echo -ne "
-------------------------------------------------------------------------
Setting up mirrors for optimal download
Setting up mirrors for optimal download
-------------------------------------------------------------------------
"
pacman -S --noconfirm --needed pacman-contrib curl
@ -36,9 +38,9 @@ cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
nc=$(grep -c ^processor /proc/cpuinfo)
echo -ne "
-------------------------------------------------------------------------
You have " $nc" cores. And
changing the makeflags for "$nc" cores. Aswell as
changing the compression settings.
CPU has "$nc" cores
Changing makeflags for "$nc" cores
Changing the compression settings accordingly
-------------------------------------------------------------------------
"
TOTAL_MEM=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*')
@ -48,7 +50,7 @@ sed -i "s/COMPRESSXZ=(xz -c -z -)/COMPRESSXZ=(xz -c -T $nc -z -)/g" /etc/makepkg
fi
echo -ne "
-------------------------------------------------------------------------
Setup Language to US and set locale
Setup Language to US and set locale
-------------------------------------------------------------------------
"
sed -i 's/^#en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
@ -58,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
@ -73,13 +75,13 @@ pacman -Sy --noconfirm --needed
echo -ne "
-------------------------------------------------------------------------
Installing Base System
Installing Base System
-------------------------------------------------------------------------
"
# 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
@ -91,7 +93,7 @@ if [[ ! $DESKTOP_ENV == server ]]; then
fi
echo -ne "
-------------------------------------------------------------------------
Installing Microcode
Installing Microcode
-------------------------------------------------------------------------
"
# determine processor type and install microcode
@ -108,7 +110,7 @@ fi
echo -ne "
-------------------------------------------------------------------------
Installing Graphics Drivers
Installing Graphics Drivers
-------------------------------------------------------------------------
"
# Graphics Drivers find and install
@ -124,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
@ -138,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
@ -161,11 +163,11 @@ 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 "
-------------------------------------------------------------------------
Adding User
Adding User
-------------------------------------------------------------------------
"
if [ $(whoami) = "root" ]; then
@ -177,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
@ -195,6 +197,6 @@ if [[ ${FS} == "luks" ]]; then
fi
echo -ne "
-------------------------------------------------------------------------
SYSTEM READY FOR 2-user.sh
SYSTEM READY FOR 2-user.sh
-------------------------------------------------------------------------
"

View File

@ -4,21 +4,22 @@
# @file User
# @brief User customizations and AUR package installation.
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: ArchTitus
-------------------------------------------------------------------------
Installing AUR Softwares
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: Carl_OS
-------------------------------------------------------------------------
AUR Packages Install
"
source $HOME/ArchTitus/configs/setup.conf
source $HOME/Carl_OS/configs/setup.conf
cd ~
mkdir "/home/$USERNAME/.cache"
@ -27,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
@ -46,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
@ -62,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

@ -4,22 +4,23 @@
# @file Post-Setup
# @brief Finalizing installation configurations and cleaning up after script.
echo -ne "
-------------------------------------------------------------------------
█████╗ ██████╗ ██████╗██╗ ██╗████████╗██╗████████╗██╗ ██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║ ██║╚══██╔══╝██║╚══██╔══╝██║ ██║██╔════╝
███████║██████╔╝██║ ███████║ ██║ ██║ ██║ ██║ ██║███████╗
██╔══██║██╔══██╗██║ ██╔══██║ ██║ ██║ ██║ ██║ ██║╚════██║
██║ ██║██║ ██║╚██████╗██║ ██║ ██║ ██║ ██║ ╚██████╔╝███████║
╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
SCRIPTHOME: ArchTitus
-------------------------------------------------------------------------
Final Setup and Configurations
GRUB EFI Bootloader Install & Check
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Automated Arch Linux Installer
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}
@ -27,7 +28,7 @@ fi
echo -ne "
-------------------------------------------------------------------------
Creating (and Theming) Grub Boot Menu
Creating (and Theming) Grub Boot Menu
-------------------------------------------------------------------------
"
# set kernel parameter for decrypting the drive
@ -43,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
@ -56,7 +57,7 @@ echo -e "All set!"
echo -ne "
-------------------------------------------------------------------------
Enabling (and Theming) Login Display Manager
Enabling (and Theming) Login Display Manager
-------------------------------------------------------------------------
"
if [[ ${DESKTOP_ENV} == "kde" ]]; then
@ -72,7 +73,7 @@ elif [[ "${DESKTOP_ENV}" == "gnome" ]]; then
elif [[ "${DESKTOP_ENV}" == "lxde" ]]; then
systemctl enable lxdm.service
elif [[ "${DESKTOP_ENV}" == "openbox" ]]; 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
@ -90,7 +91,7 @@ fi
echo -ne "
-------------------------------------------------------------------------
Enabling Essential Services
Enabling Essential Services
-------------------------------------------------------------------------
"
systemctl enable cups.service
@ -109,18 +110,30 @@ 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 "
-------------------------------------------------------------------------
Creating Snapper Config
Creating Snapper Config
-------------------------------------------------------------------------
"
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/
@ -131,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
@ -147,7 +160,7 @@ echo 'Plymouth theme installed'
echo -ne "
-------------------------------------------------------------------------
Cleaning
Cleaning
-------------------------------------------------------------------------
"
# Remove no password sudo rights
@ -157,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,20 +131,22 @@ 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
██████╗ █████╗ ██████╗ ██╗ ██████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██║ ██╔═══██╗██╔════╝
██║ ███████║██████╔╝██║ ██║ ██║███████╗
██║ ██╔══██║██╔══██╗██║ ██║ ██║╚════██║
╚██████╗██║ ██║██║ ██║███████╗███████╗╚██████╔╝███████║
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚══════╝
-------------------------------------------------------------------------
Please select presetup settings for your system
------------------------------------------------------------------------
"
}
@ -240,9 +242,9 @@ esac
diskpart () {
echo -ne "
------------------------------------------------------------------------
THIS WILL FORMAT AND DELETE ALL DATA ON THE DISK
Please make sure you know what you are doing because
after formating your disk there is no way to get data back
THIS WILL FORMAT AND DELETE ALL DATA ON THE DISK
Please make sure you know what you are doing because
after formating your disk there is no way to get data back
------------------------------------------------------------------------
"
@ -296,7 +298,7 @@ aurhelper () {
desktopenv () {
# Let the user choose Desktop Enviroment from predefined list
echo -ne "Please select your desired Desktop Enviroment:\n"
options=(gnome kde cinnamon xfce mate budgie lxde deepin openbox server)
options=(gnome kde cinnamon xfce mate budgie lxde deepin openbox awesome server)
select_option $? 4 "${options[@]}"
desktop_env=${options[$?]}
set_option DESKTOP_ENV $desktop_env

Binary file not shown.

Before

Width:  |  Height:  |  Size: 792 KiB