diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 583decf..0000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: 2 -updates: - # Maintain dependencies for GitHub Actions - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "daily" \ No newline at end of file diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index de40377..0000000 --- a/.github/labeler.yml +++ /dev/null @@ -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/**/* \ No newline at end of file diff --git a/.github/workflows/combine.yml b/.github/workflows/combine.yml deleted file mode 100644 index 435f74e..0000000 --- a/.github/workflows/combine.yml +++ /dev/null @@ -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 \ No newline at end of file diff --git a/.github/workflows/generate-documentation.yml b/.github/workflows/generate-documentation.yml deleted file mode 100644 index 658483c..0000000 --- a/.github/workflows/generate-documentation.yml +++ /dev/null @@ -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 }} \ No newline at end of file diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml deleted file mode 100644 index ef3d7d5..0000000 --- a/.github/workflows/label.yml +++ /dev/null @@ -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 }}" \ No newline at end of file diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index 5df60a8..0000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -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 }} \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index a20aba1..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -install.conf -installlog.txt -archnikus.code-workspace -setup.conf \ No newline at end of file diff --git a/CODEOWNERS b/CODEOWNERS deleted file mode 100644 index 0af880c..0000000 --- a/CODEOWNERS +++ /dev/null @@ -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 \ No newline at end of file diff --git a/Carl_OS.png b/Carl_OS.png new file mode 100644 index 0000000..f5840a6 Binary files /dev/null and b/Carl_OS.png differ diff --git a/Carl_OS.sh b/Carl_OS.sh new file mode 100644 index 0000000..fd7b01b --- /dev/null +++ b/Carl_OS.sh @@ -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 + +" diff --git a/LICENSE b/LICENSE index b78f314..f34ea01 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,7 @@ MIT License Copyright (c) 2021 Chris Titus +Copyright (c) 2022 Carlos Outerelo Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/PKG_Documentation.md b/PKG_Documentation.md new file mode 100644 index 0000000..3e1be41 --- /dev/null +++ b/PKG_Documentation.md @@ -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. \ No newline at end of file diff --git a/README.md b/README.md index afec16e..bd814fd 100644 --- a/README.md +++ b/README.md @@ -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 - +[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.) + + +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 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 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 @ - -## 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: +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. \ No newline at end of file diff --git a/REFERENCE-archtitus.md b/REFERENCE-Carl_OS.md similarity index 88% rename from REFERENCE-archtitus.md rename to REFERENCE-Carl_OS.md index ecd766e..786c804 100644 --- a/REFERENCE-archtitus.md +++ b/REFERENCE-Carl_OS.md @@ -1,4 +1,4 @@ -# ArchTitus +# Carl_OS Entrance script that launches children scripts for each phase of installation. diff --git a/REFERENCE-startup.md b/REFERENCE-startup.md index 221d4bf..11c5d3b 100644 --- a/REFERENCE-startup.md +++ b/REFERENCE-startup.md @@ -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._ diff --git a/REFERENCE.md b/REFERENCE.md index 8fa58c7..ccf6ba3 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -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) diff --git a/archtitus.sh b/archtitus.sh deleted file mode 100755 index afed5fa..0000000 --- a/archtitus.sh +++ /dev/null @@ -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 -" diff --git a/pkg-files/aur-pkgs.txt b/pkg-files/aur-pkgs.txt index d7d5f81..3c8ce10 100644 --- a/pkg-files/aur-pkgs.txt +++ b/pkg-files/aur-pkgs.txt @@ -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 -zoom +whatsapp-nativefier +zoom \ No newline at end of file diff --git a/pkg-files/awesome.text b/pkg-files/awesome.txt similarity index 98% rename from pkg-files/awesome.text rename to pkg-files/awesome.txt index 4d14242..9903b08 100644 --- a/pkg-files/awesome.text +++ b/pkg-files/awesome.txt @@ -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 \ No newline at end of file diff --git a/pkg-files/budgie.txt b/pkg-files/budgie.txt index ab7873d..86f94aa 100644 --- a/pkg-files/budgie.txt +++ b/pkg-files/budgie.txt @@ -1,3 +1,3 @@ budgie-desktop gnome ---END OF MINIMAL INSTALL-- +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/pkg-files/cinnamon.txt b/pkg-files/cinnamon.txt index 7fa604f..18e87df 100644 --- a/pkg-files/cinnamon.txt +++ b/pkg-files/cinnamon.txt @@ -1,4 +1,4 @@ cinnamon -metacity -gnome-shell ---END OF MINIMAL INSTALL-- +gnome-shell +metacity +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/pkg-files/deepin.txt b/pkg-files/deepin.txt index 9c01f73..33e0fca 100644 --- a/pkg-files/deepin.txt +++ b/pkg-files/deepin.txt @@ -1,3 +1,3 @@ deepin deepin-extra ---END OF MINIMAL INSTALL-- +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/pkg-files/gnome.txt b/pkg-files/gnome.txt index 24ca95a..f9ba78a 100644 --- a/pkg-files/gnome.txt +++ b/pkg-files/gnome.txt @@ -1,3 +1,3 @@ gnome ---END OF MINIMAL INSTALL-- gnome-extras +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/pkg-files/kde.txt b/pkg-files/kde.txt index 83cc75b..4c34716 100644 --- a/pkg-files/kde.txt +++ b/pkg-files/kde.txt @@ -1,6 +1,6 @@ +dolphin plasma-desktop sddm -dolphin --END OF MINIMAL INSTALL-- ark audiocd-kio @@ -36,4 +36,4 @@ print-manager spectacle systemsettings xdg-desktop-portal-kde -zeroconf-ioslave +zeroconf-ioslave \ No newline at end of file diff --git a/pkg-files/lxde.txt b/pkg-files/lxde.txt index c39843f..e85b1cf 100644 --- a/pkg-files/lxde.txt +++ b/pkg-files/lxde.txt @@ -1,2 +1,2 @@ lxde ---END OF MINIMAL INSTALL-- +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/pkg-files/mate.txt b/pkg-files/mate.txt index 736ee37..a28461b 100644 --- a/pkg-files/mate.txt +++ b/pkg-files/mate.txt @@ -1,3 +1,3 @@ mate mate-extra ---END OF MINIMAL INSTALL-- +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/pkg-files/openbox.txt b/pkg-files/openbox.txt index 34ea690..bdfbd77 100644 --- a/pkg-files/openbox.txt +++ b/pkg-files/openbox.txt @@ -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 \ No newline at end of file diff --git a/pkg-files/pacman-pkgs.txt b/pkg-files/pacman-pkgs.txt index dbacdd0..a6c05b2 100644 --- a/pkg-files/pacman-pkgs.txt +++ b/pkg-files/pacman-pkgs.txt @@ -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 \ No newline at end of file diff --git a/pkg-files/xfce.txt b/pkg-files/xfce.txt index 0d365c4..6d5bd9e 100644 --- a/pkg-files/xfce.txt +++ b/pkg-files/xfce.txt @@ -1,3 +1,3 @@ xfce4 xfce4-goodies ---END OF MINIMAL INSTALL-- +--END OF MINIMAL INSTALL-- \ No newline at end of file diff --git a/scripts/0-preinstall.sh b/scripts/0-preinstall.sh index 63af03a..7272062 100755 --- a/scripts/0-preinstall.sh +++ b/scripts/0-preinstall.sh @@ -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 ------------------------------------------------------------------------- " diff --git a/scripts/1-setup.sh b/scripts/1-setup.sh index 6ad2f93..6c2b402 100755 --- a/scripts/1-setup.sh +++ b/scripts/1-setup.sh @@ -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 ------------------------------------------------------------------------- " diff --git a/scripts/2-user.sh b/scripts/2-user.sh index 8e60e6f..fb5bd8e 100755 --- a/scripts/2-user.sh +++ b/scripts/2-user.sh @@ -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 diff --git a/scripts/3-post-setup.sh b/scripts/3-post-setup.sh index c31cdab..f56e634 100755 --- a/scripts/3-post-setup.sh +++ b/scripts/3-post-setup.sh @@ -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 @@ -67,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" ]]; 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 diff --git a/scripts/startup.sh b/scripts/startup.sh index 98bba69..58dd4e0 100755 --- a/scripts/startup.sh +++ b/scripts/startup.sh @@ -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 diff --git a/titusarch.png b/titusarch.png deleted file mode 100755 index 005c184..0000000 Binary files a/titusarch.png and /dev/null differ