Added configs for new packages, removed old ones and updated README

This commit is contained in:
Gu://em_ 2026-04-27 19:18:06 +02:00
parent 5bb231dcee
commit 3470ffdfd7
17 changed files with 897 additions and 278 deletions

View file

@ -4,7 +4,7 @@ This project is an automated installer for the Atlas Desktop.
## Disclaimer
### ⚠ This is still a WIP project. Use at your own risk.
### ⚠ Use at your own risk.
Some platforms may not yet be supported such as Nvidia graphic cards for which you'll have to install all the drivers yourself. Sadly I don't have any equipment to test that out.
@ -26,18 +26,19 @@ Very simple, clone the project (or download it directly from the web interface)
```sh=
git clone https://forge.oblic-parallels.fr/guillm/atlas-install
```
Make `setup.sh` executable
```sh=
chmod u+x setup.sh
```
And run it
And run `setup.sh`
```sh=
./setup.sh
```
That said I suggest you to give a look to the packages that will be installed on your system as it's important to know how things will work or to disable some things you wouldn't necessarely want.
I particularly think of helix which is used as the default text editor but may not suit some people needs.
### Defaults
I'm working on a system to easily change the default programs. I don't know yet if it will result into anything but it's worth trying.
## Future improvements
- Nvidia cards handling
- Cleaner way to enable/disable some packages / configuratuions
- Cleaner way to enable/disable some packages / configuratuions

View file

@ -1,72 +0,0 @@
[General]
hotkey=Alt+Space
prioritizePerfectMatch=true
showTray=false
telemetry=false
[albert]
global_handler_enabled=false
trigger=albert
[applications]
enabled=true
fuzzy=true
terminal=kitty
use_generic_name=false
use_keywords=true
[caffeine]
enabled=false
[calculator_qalculate]
enabled=true
[clipboard]
enabled=true
persistent=true
[files]
enabled=false
paths=@Invalid()
[hash]
enabled=true
trigger=#
[mpris]
enabled=true
trigger=mp
[path]
enabled=true
[snippets]
enabled=false
[ssh]
enabled=true
[system]
command_lock=hyprlock
command_poweroff=poweroff
command_reboot=reboot
enabled=true
trigger=sys
[triggers]
trigger=?
[widgetsboxmodel]
alwaysOnTop=true
clearOnHide=false
clientShadow=false
darkTheme=Seventy Eight
displayScrollbar=false
followCursor=true
hideOnFocusLoss=true
historySearch=true
itemCount=5
lightTheme=Seventy Eight
quitOnClose=false
showCentered=true
systemShadow=true

View file

@ -1,108 +0,0 @@
/*
* original author: Manuel Schneider <https://github.com/ManuelSchneid3r>
* modified by : Gu://em_
*
* Check http://doc.qt.io/qt-5/stylesheet-syntax.html especially the subtopics:
* The Style Sheet Syntax (http://doc.qt.io/qt-5/stylesheet-syntax.html)
* Qt Style Sheets Reference (http://doc.qt.io/qt-5/stylesheet-reference.html)
*/
* {
border: none;
color: #98C1D9;
background-color: #293241;
}
#frame {
background-color: none;
border: none;
max-width:640px;
min-width:640px;
padding: 10px; /* to have a drag handle */
}
#inputLine {
border-radius: 8px;
border: 1px solid #4C566A;
color: #EE6C4D;
font-size: 26px;
padding: 8px;
selection-background-color: #EE6C4D;
selection-color: #E0FBFC;
}
#settingsButton {
background-color: none;
color: #4C566A;
max-height: 13px;
max-width: 13px;
min-height: 13px;
min-width: 13px;
padding: 16px;
}
QListView {
border-radius: 8px;
border: 1px solid #4C566A;
color: #E0FBFC;
margin-top: 4px;
selection-background-color: #3D5A80;
selection-color: #E0FBFC;
}
QListView::item {
border-radius: 6px;
padding: 4px;
}
QListView::item:selected {
background-color: #3D5A80;
}
QListView#resultsList {
font-size: 20px;
icon-size: 34px;
padding: 4px 8px 4px 8px;
}
QListView#resultsList::item {
margin: 4px 0px 4px 0px;
height: 44px;
}
QListView#actionList {
font-size: 16px;
padding: 6px 8px 6px 8px;
}
QListView#actionList::item {
margin: 2px 0px 2px 0px;
}
QListView QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical,
QListView QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical,
QListView QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background: transparent;
border: 0px;
height: 0px;
width: 0px;
}
QListView QScrollBar:vertical {
background: transparent;
margin: 8px 0px 8px 0px;
width: 2px;
}
QListView QScrollBar::handle:vertical {
background: #4C566A;
min-height: 24px;
}

View file

@ -0,0 +1,18 @@
/* Swaync */
@define-color active #e64e4e;
@define-color background_dark #1c2128;
@define-color background_light #22272e;
@define-color background_transparent alpha(#18191c, 0.7);
@define-color foreground #e4e8ed;
@define-color border #333940;
@define-color alert #ea4545;
/* Waybar */
@define-color foreground #e4e8ed;
@define-color background #18191c;
/* @define-color accentColor #b6c8d3; */
@define-color accentColor #ec775c;
@define-color charging #6bc46d;

View file

@ -0,0 +1,3 @@
#$active_color = rgba(f55c20ff)
$active_color = rgba(de3c3cff)
$inactive_color = rgba(595959aa)

View file

@ -0,0 +1,62 @@
# vim:ft=kitty
## name: 78
## author: Gu://em_ (forked from Github Dark Dimmed)
## license: MIT
#: The basic colors
foreground #adbac7
background #14171F
#background #111317
selection_foreground #EE6C4D
selection_background #3D5A80
#: Cursor colors
cursor #adbac7
#: Tab bar colors
tab_bar_background #22272e
active_tab_foreground #adbac7
active_tab_background #ec775c
inactive_tab_foreground #adbac7
inactive_tab_background #1C2128
#: The basic 16 colors
#: black
color0 #545d68
color8 #636e7b
#: red
color1 #f47067
color9 #ff938a
#: green
color2 #57ab5a
color10 #6bc46d
#: yellow
color3 #c69026
color11 #daaa3f
#: blue
color4 #539bf5
color12 #6cb6ff
#: magenta
color5 #b083f0
color13 #dcbdfb
#: cyan
color6 #39c5cf
color14 #56d4dd
#: white
color7 #909dab
color15 #cdd9e5

View file

@ -1,66 +0,0 @@
# -*- conf -*-
# For documentation on these options, see `man fnott.ini`
# Global values
# output=<undefined>#
min-width=200
# max-width=0
# max-height=0
# stacking-order=bottom-up
anchor=top-right
edge-margin-vertical=10
edge-margin-horizontal=10
notification-margin=10
icon-theme=Papirus
# max-icon-size=32
# selection-helper=dmenu
# selection-helper-uses-null-separator=no
# play-sound=aplay ${filename}
# Default values, may be overridden in 'urgency' specific sections
layer=top
background=293241FF
border-color=EE6C4DFF
border-radius=0
border-size=2
padding-vertical=20
padding-horizontal=20
dpi-aware=yes
title-font=monospace
title-color=ffffffff
title-format=<i>%a%A</i>
summary-font=monospace
summary-color=ffffffff
summary-format=<b>%s</b>\n
body-font=monospace
body-color=ffffffff
body-format=%b
progress-bar-height=20
progress-bar-color=ffffffff
# sound-file=
# icon=
# Timeout values are in seconds. 0 to disable
max-timeout=0
default-timeout=0
idle-timeout=0
# [low]
# background=2b2b2bff
# title-color=888888ff
# summary-color=888888ff
# body-color=888888ff
# [normal]
# [critical]
# background=6c3333ff

View file

@ -0,0 +1,8 @@
[main]
shell=zsh
font=JetBrains Mono Nerd Font:size=14:style=Light
include=~/.config/foot/github-dark.ini
[cursor]
style=beam
blink=true

View file

@ -0,0 +1,41 @@
# -*- conf -*-
# Github Dark
# By Gu://em_
[colors-dark]
# alpha = 0.9
background= 0d1117
foreground= c9d1d9
#: black
regular0= 484f58
bright0= 6e7681
#: red
regular1= ff7b72
bright1= ffa198
#: green
regular2= 3fb950
bright2= 56d364
#: yellow
regular3= d29922
bright3= e3b341
#: blue
regular4= 58a6ff
bright4= 79c0ff
#: magenta
regular5= bc8cff
bright5= d2a8ff
#: cyan
regular6= 39c5cf
bright6= 56d4dd
#: white
regular7= b1bac4
bright7= ffffff

View file

@ -0,0 +1,5 @@
theme = "github_dark"
# theme = "adwaita-light"
[editor]
line-number = "relative"

View file

@ -0,0 +1,17 @@
@theme "~/.local/share/rofi/themes/boussole.rasi"
configuration {
modi: "drun,run";
display-drun: "Applications";
display-run: "Run";
drun-display-format: "{icon} {name}";
sort: true;
sorting-method: "fzf";
/* Icons */
show-icons: true;
icon-theme: "Papirus";
}

View file

@ -0,0 +1,4 @@
@theme "~/.local/share/rofi/themes/boussole.rasi"
configuration {
terminal: "foot";
}

View file

@ -0,0 +1 @@
../colors/colors.css

View file

@ -0,0 +1,113 @@
{
"$schema": "/etc/xdg/swaync/configSchema.json",
"positionX": "right",
"positionY": "top",
"layer": "overlay",
"control-center-layer": "top",
"layer-shell": true,
"cssPriority": "application",
"control-center-width": 350,
"control-center-margin-top": 2,
"control-center-margin-bottom": 2,
"control-center-margin-right": 2,
"control-center-margin-left": 2,
"notification-2fa-action": true,
"notification-inline-replies": true,
"notification-window-width": 350,
"notification-icon-size": 60,
"notification-body-image-height": 180,
"notification-body-image-width": 180,
"timeout": 4,
"timeout-low": 2,
"timeout-critical": 0,
"fit-to-screen": true,
"keyboard-shortcuts": true,
"image-visibility": "when available",
"transition-time": 200,
"hide-on-clear": false,
"hide-on-action": true,
"script-fail-notify": true,
"widgets": [
"title",
"notifications",
"mpris",
"volume",
"backlight",
"buttons-grid"
],
"widget-config": {
"title": {
"text": "Notification Center",
"clear-all-button": true,
"button-text": "󰆴"
},
"label": {
"max-lines":1,
"text": "Notification Center!"
},
"mpris": {
"image-size": 80,
"image-radius": 0
},
"volume": {
"label": "󰕾 "
},
"backlight": {
"label": "󰃟 "
},
"buttons-grid": {
"actions": [
{
"label": "󰝟",
"command": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
"type": "toggle"
},
{
"label": "󰍭",
"command": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
"type": "toggle"
},
{
"label": "",
"command": "rofi-wifi"
},
{
"label": "",
"command": "rofi-bluetooth"
},
{
"label":"󰤄",
"command": "swaync-client -d",
"type":"toggle"
},
{
"label": "",
"command": "foot hx ~/.config/hypr"
},
{
"label": "",
"command": "foot btop"
},
{
"label": "",
"command": "hyprlock"
},
{
"label":"",
"command": "reboot"
},
{
"label":"",
"command": "shutdown now"
}
]
}
}
}

View file

@ -0,0 +1,486 @@
@import url('colors.css');
@define-color control-background alpha(@background_dark, 0.8);
* {
all: unset;
font-family: JetBrainsMono Nerd Font Propo;
transition: 0.1s;
font-size: 1.3rem;
}
/*--------------- Notifications ---------------*/
.floating-notifications.background .notification-row {
padding: 0.5rem;
}
.floating-notifications.background .notification-row .notification-background {
border-radius: 0.3rem;
background-color: @background_light;
color: @foreground;
border: 1px solid @border;
}
.floating-notifications.background
.notification-row
.notification-background
.notification {
padding: 0.6rem;
border-radius: 0.2rem;
}
.floating-notifications.background
.notification-row
.notification-background
.notification.critical {
border: 1px solid @alert;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.summary {
margin: 0.2rem;
color: @foreground;
font-weight: bold;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
.notification-content
.body {
margin: 0.2rem;
color: @foreground;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3rem;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 0.2rem;
color: @foreground;
background-color: @background_dark;
border: 1px solid @border;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background-color: #26233a;
}
.floating-notifications.background
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: @border;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button {
margin: 0.2rem;
padding: 0.25rem;
border-radius: 0.2rem;
color: @foreground;
background-color: alpha(@alert, 0);
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:hover {
/* color: #191724; */
background-color: @alert;
}
.floating-notifications.background
.notification-row
.notification-background
.close-button:active {
background-color: @foreground;
}
/*--------------- Control center ---------------*/
.control-center {
border-radius: .4rem;
background-color: @background_transparent;
color: @foreground;
padding: 1.2rem;
border: 1px solid @border;
}
.control-center .widget-title {
color: @foreground;
font-weight: bold;
}
.control-center .widget-title button {
border-radius: 2rem;
color: @foreground;
background-color: @border;
border: 1px solid @border;
padding: .2rem 1.5rem;
}
.control-center .widget-title button:hover {
background-color: @alert;
}
.control-center .widget-title button:active {
background-color: @border;
}
.control-center .notification-row .notification-background {
border-radius: 0.5rem;
margin: 0.5rem;
background-color: @background_light;
color: @foreground;
border: 1px solid @border;
}
.control-center .notification-row .notification-background .notification {
padding: 0.7rem;
border-radius: 0.2rem;
}
.control-center
.notification-row
.notification-background
.notification.critical {
border: 1px solid @alert;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content {
color: @foreground;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.summary {
margin: 0.2rem;
color: @foreground;
font-weight: bold;
}
.control-center
.notification-row
.notification-background
.notification
.notification-content
.body {
margin: 0.2rem;
color: @foreground;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> * {
min-height: 3rem;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action {
border-radius: 0.2rem;
color: @foreground;
background-color: #1f1d2e;
border: 1px solid @border;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:hover {
background-color: @background_light;
}
.control-center
.notification-row
.notification-background
.notification
> *:last-child
> *
.notification-action:active {
background-color: @border;
}
.control-center .notification-row .notification-background .close-button {
margin: 0.5rem;
padding: 0.25rem;
border-radius: 0.2rem;
color: @foreground;
background-color: alpha(@alert, 0);
}
.control-center .notification-row .notification-background .close-button:hover {
background-color: @alert;
}
.control-center
.notification-row
.notification-background
.close-button:active {
background-color: @foreground;
}
progressbar,
progress,
trough {
border-radius: 0.2rem;
}
.notification.critical progress {
background-color: @alert;
}
.notification.low progress,
.notification.normal progress {
background-color: #9ccfd8;
}
trough {
background-color: #1f1d2e;
}
.control-center trough {
background-color: @border;
}
.control-center-dnd {
margin: 1rem 0;
border-radius: 0.2rem;
}
.control-center-dnd slider {
background: #26233a;
border-radius: 0.2rem;
}
.widget-dnd {
color: #908caa;
}
.widget-dnd > switch {
border-radius: 0.2rem;
background: #26233a;
border: 1px solid @border;
}
.widget-dnd > switch:checked slider {
background: #31748f;
}
.widget-dnd > switch slider {
background: @border;
border-radius: 0.2rem;
margin: 0.25rem;
}
/*--------------- Media player ---------------*/
.widget-mpris {
}
.widget-mpris .widget-mpris-player {
padding: 16px;
margin: 0.5rem;
background-color: @mpris-album-art-overlay;
border-radius: 0.7rem;
}
.widget-mpris .widget-mpris-player button:hover {
all: unset;
background: @bg-hover;
text-shadow: none;
border-radius: 0.5rem;
border: none;
padding: 5px;
margin: 5px;
transition: all 0.2s ease;
}
.widget-mpris .widget-mpris-player button {
color:@text;
text-shadow: none;
border-radius: 2rem;
border: none;
padding: 5px;
margin: 5px;
transition: all 0.2s ease;
}
.widget-mpris .widget-mpris-player button:not(.selected) {
background: transparent;
border: 2px solid transparent;
}
.widget-mpris .widget-mpris-player button:hover {
border: 2px solid transparent;
}
.widget-mpris .widget-mpris-player .widget-mpris-album-art {
border-radius: 0.5rem;
box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.5);
}
.widget-mpris .widget-mpris-player .widget-mpris-title {
font-weight: bold;
font-size: 1.25rem;
}
.widget-mpris .widget-mpris-player .widget-mpris-subtitle {
font-size: 1.1rem;
}
.widget-mpris .widget-mpris-player > box > button:hover {
background-color: @mpris-button-hover;
}
/*--------------- Sliders ---------------*/
.widget-volume {
background-color: transparent;
padding: 8px;
/* margin: 8px; */
margin-bottom: 0.5rem;
border-radius: 12px;
}
.widget-backlight {
background-color: transparent;
padding: 8px;
/* margin: 8px; */
margin-bottom: 1.5rem;
border-radius: 12px;
}
trough {
border-radius: 20px;
background: transparent;
}
trough highlight {
padding: 5px;
background: @active;
border-radius: 20px;
transition: all .2s ease;
}
trough highlight:hover {
padding: 5px;
background: @active;
border-radius: 20px;
transition: all .2s ease;
}
trough slider {
background: transparent;
}
trough slider:hover {
background: transparent;
}
/*--------------- Buttons grid ---------------*/
.widget-buttons-grid {
padding-left: 0.2rem;
padding-right: 0.2rem;
padding-bottom: 0.2rem;
/* margin: 1rem; */
border-radius: 0.2rem;
background:transparent;
}
.widget-buttons-grid>flowbox>flowboxchild>button label {
font-size: 20px;
color: @foreground;
transition: all .2s ease;
}
.widget-buttons-grid>flowbox>flowboxchild>button:hover label {
font-size: 20px;
color: @text;
transition: all .2s ease;
}
.widget-buttons-grid > flowbox > flowboxchild > button {
background: alpha(@border, 0.5);
border-radius: 0.2rem;
padding: 0.7rem 2rem;
margin: 0.2rem;
text-shadow:none;
transition: all .2s ease;
}
.widget-buttons-grid > flowbox > flowboxchild > button:hover {
background: @border;
box-shadow: 0px 0px 2px rgba(0, 0, 0, .2);
transition: all .2s ease;
}
.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked {
background: @active;
}
.widget-buttons-grid > flowbox > flowboxchild > button.toggle:checked label {
color: @background;
}

View file

@ -0,0 +1,101 @@
/* Boussole theme by Gu://em_*/
/* Based on work done by */
/* Newman Sanchez (https://github.com/newmanls) */
* {
font: "JetBrainsMono Nerd Font Propo Regular 12";
bg0: #0d1117;
bg1: #1a2330;
fg0: #eeffff;
accent-color: #e64e4e;
urgent-color: #ffcb6b;
background-color: transparent;
text-color: @fg0;
margin: 0;
padding: 0;
spacing: 0;
}
window {
location: center;
width: 600;
background-color: @bg0;
/*border-radius: 4px;*/
}
inputbar {
spacing: 8px;
padding: 8px;
background-color: @bg1;
children: [ prompt, entry ];
}
prompt, entry, element-icon, element-text {
vertical-align: 0.5;
}
prompt {
text-color: @accent-color;
}
textbox {
padding: 8px;
background-color: @bg1;
}
listview {
padding: 4px 0;
lines: 8;
columns: 1;
fixed-height: false;
}
element {
padding: 8px;
spacing: 8px;
}
element normal normal {
text-color: @fg0;
}
element normal urgent {
text-color: @urgent-color;
}
element normal active {
text-color: @accent-color;
}
element alternate active {
text-color: @accent-color;
}
element selected {
text-color: @bg0;
}
element selected normal, element selected active {
background-color: @accent-color;
}
element selected urgent {
background-color: @urgent-color;
}
element-icon {
size: 0.8em;
}
element-text {
text-color: inherit;
}

View file

@ -1,7 +1,8 @@
#!/bin/sh
version="Beta 25.04.04-2"
version="Beta 26.04.27-1"
echo -e "Atlas Desktop Installer - ${version}\n"
echo "Atlas Desktop Installer - ${version}"
echo
# Definitions
@ -10,27 +11,31 @@ script_path=$PWD
pkgs_path="${script_path}/packages"
config_path="${script_path}/config"
CPU_vendor=$(lscpu | grep Vendor | awk '{print $NF}')
dotfiles_path="~/.dotfiles"
dotfiles_path="$HOME/.dotfiles"
## Functions
function install() {
echo -e "\nDownloading $1 packages...\n"
sudo pacman -Syu --noconfirm --color auto $(cat $pkgs_path/$1.pkgs)
echo -e "\n\nDone\n"
install() {
echo
echo "Downloading $1 packages..."
echo
sudo pacman -Syu --noconfirm --color auto "$(cat "$pkgs_path"/"$1".pkgs)"
printf "\n\nDone\n\n"
}
function install_aur() {
echo -e "\nDownloading $1 packages...\n"
paru -Syu --noconfirm --color auto $(cat $pkgs_path/$1.pkgs)
echo -e "\nDone\n"
install_aur() {
echo
echo "Downloading $1 packages..."
echo
paru -Syu --noconfirm --color auto "$(cat "$pkgs_path"/"$1".pkgs)"
printf "\n\nDone\n\n"
}
# Checks
## Sudo installed
pacman -Q sudo > /dev/null
if [ $? != 0 ]; then
if ! pacman -Q sudo > /dev/null; then
echo "Please install 'sudo' first"
exit 1
fi
@ -59,7 +64,7 @@ install desktop
install theming
## Vendor specific packages
if [ $CPU_vendor == "Genuine Intel" ]; then
if [ "$CPU_vendor" = "Genuine Intel" ]; then
install intel
fi
@ -68,7 +73,7 @@ git clone https://aur.archlinux.org/paru.git /tmp/paru &&
echo "Installing paru" &&
cd /tmp/paru &&
makepkg -si
cd $script_path
cd "$script_path" || exit 1
## AUR packages
install_aur aur
@ -76,33 +81,33 @@ install_aur aur
# Configuration
echo -e "\n--- Configuration ---\n"
printf "\n--- Configuration ---\n\n"
## Dotfiles
echo "Copying configuration files"
cp -r $config_path $dotfiles_path &&
cd $dotfiles_path &&
cp -r "$config_path" "$dotfiles_path" &&
cd "$dotfiles_path" &&
stow .
cd $script_path
cd "$script_path" || exit 1
## Swap (Zram)
is_zram_active=$(sudo systemctl is-active systemd-zram-setup@zram0.service)
if [ is_zram_active != "active" ]; then
echo -e "\n========================================"
if [ "$is_zram_active" != "active" ]; then
printf "\n========================================\n"
echo "WARNING: you don't have Zram enabled"
echo "Since this script is not yet capable of activating zram, you'll have to do it yourself"
echo "Please refer to https://wiki.archlinux.org/title/Zram#Using_zram-generator"
echo -e "========================================\n"
printf "========================================\n\n"
fi
## Mandatory Access Control (Apparmor)
is_aa_active=$(sudo systemctl is-active apparmor.service)
if [ is_aa_active != "active" ]; then
echo -e "\n========================================"
if [ "$is_aa_active" != "active" ]; then
printf "\n========================================\n"
echo "WARNING: you don't have AppArmor enabled"
echo "Since this script is not yet capable of managing kernel parameters, you'll have to do it yourself"
echo "Please refer to https://wiki.archlinux.org/title/AppArmor"
echo -e "========================================\n"
printf "========================================\n\n"
fi
## Display manager (Ly)