Migrated desktop environment from XFCE to KDE Plasma with simplified profiles.
- Replaced XFCE with KDE Plasma and SDDM display manager. - Reduced profiles from seven to four (minimal, server, basic, office). - Split home skeleton files into home-skel and home-skel-desktop directories. - Added display name prompt during user setup. - Added 7zip and fwupd to base packages.
This commit is contained in:
@@ -28,7 +28,8 @@ MIRROR_URL='https://mirrors.logal.dev/archlinux/$repo/os/$arch'
|
||||
# Paths
|
||||
CA_CERTS_DIR="${SCRIPT_DIR}/files/certs"
|
||||
CONFIG_SRC_DIR="${SCRIPT_DIR}/files/etc"
|
||||
HOME_CONFIG_DIR="${SCRIPT_DIR}/files/home"
|
||||
HOME_SKEL_DIR="${SCRIPT_DIR}/files/home-skel"
|
||||
HOME_SKEL_DESKTOP_DIR="${SCRIPT_DIR}/files/home-skel-desktop"
|
||||
MOUNT_POINT="/mnt"
|
||||
|
||||
# Base packages to install with pacstrap
|
||||
@@ -51,4 +52,6 @@ BASE_PACKAGES=(
|
||||
iptables-nft
|
||||
openssh
|
||||
usbguard
|
||||
7zip
|
||||
fwupd
|
||||
)
|
||||
|
||||
@@ -16,52 +16,95 @@
|
||||
|
||||
# profiles.conf - Profile and desktop environment package definitions
|
||||
#
|
||||
# Defines XFCE packages and installation profiles. Adding a new profile
|
||||
# Defines KDE packages and installation profiles. Adding a new profile
|
||||
# requires only adding entries here - no code changes needed.
|
||||
|
||||
#===============================================================================
|
||||
# DESKTOP ENVIRONMENT PACKAGES
|
||||
#===============================================================================
|
||||
|
||||
# XFCE base packages
|
||||
XFCE_PACKAGES=(
|
||||
lightdm
|
||||
lightdm-gtk-greeter
|
||||
lightdm-gtk-greeter-settings
|
||||
thunar
|
||||
thunar-archive-plugin
|
||||
gvfs
|
||||
xfce4-panel
|
||||
xfce4-power-manager
|
||||
xfce4-session
|
||||
xfce4-settings
|
||||
xfce4-terminal
|
||||
xfdesktop
|
||||
xfwm4
|
||||
papirus-icon-theme
|
||||
xfce4-battery-plugin
|
||||
xfce4-notifyd
|
||||
xfce4-whiskermenu-plugin
|
||||
xfce4-screensaver
|
||||
xfce4-screenshooter
|
||||
mousepad
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
# KDE Plasma base packages
|
||||
KDE_PACKAGES=(
|
||||
# Display manager
|
||||
sddm
|
||||
|
||||
# Core Plasma
|
||||
plasma-desktop
|
||||
plasma-workspace
|
||||
plasma-pa
|
||||
powerdevil
|
||||
kscreen
|
||||
|
||||
# Multimedia backend
|
||||
phonon-qt6-vlc
|
||||
vlc-plugin-ffmpeg
|
||||
ffmpeg
|
||||
|
||||
# System settings
|
||||
systemsettings
|
||||
kinfocenter
|
||||
sddm-kcm
|
||||
kde-gtk-config
|
||||
breeze-gtk
|
||||
|
||||
# Essential applications
|
||||
konsole
|
||||
dolphin
|
||||
kate
|
||||
ark
|
||||
spectacle
|
||||
gwenview
|
||||
kcalc
|
||||
|
||||
# Browser and media
|
||||
chromium
|
||||
haruna
|
||||
elisa
|
||||
okular
|
||||
|
||||
# File management
|
||||
filelight
|
||||
kfind
|
||||
|
||||
# Text and diff tools
|
||||
kompare
|
||||
|
||||
# Security
|
||||
plasma-vault
|
||||
kleopatra
|
||||
kwalletmanager
|
||||
|
||||
# Accessibility
|
||||
kmousetool
|
||||
|
||||
# Network analysis
|
||||
wireshark-qt
|
||||
|
||||
# Utilities
|
||||
kcolorchooser
|
||||
kcharselect
|
||||
kalarm
|
||||
sweeper
|
||||
kdialog
|
||||
|
||||
# Thumbnails and previews
|
||||
kdegraphics-thumbnailers
|
||||
ffmpegthumbs
|
||||
markdownpart
|
||||
svgpart
|
||||
|
||||
# Audio
|
||||
pipewire
|
||||
pipewire-alsa
|
||||
pipewire-pulse
|
||||
pipewire-jack
|
||||
wireplumber
|
||||
pavucontrol
|
||||
xfce4-pulseaudio-plugin
|
||||
ristretto
|
||||
webp-pixbuf-loader
|
||||
libopenraw
|
||||
xarchiver
|
||||
7zip
|
||||
xreader
|
||||
|
||||
# Fonts
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
noto-fonts-extra
|
||||
)
|
||||
|
||||
#===============================================================================
|
||||
@@ -69,12 +112,12 @@ XFCE_PACKAGES=(
|
||||
#===============================================================================
|
||||
|
||||
# Profile registry - order determines menu numbering
|
||||
PROFILES=(minimal server minimal_desktop htpc htpc_gaming office dev)
|
||||
PROFILES=(minimal server basic office)
|
||||
|
||||
# Each profile defines:
|
||||
# PROFILE_<key>_NAME - Display name
|
||||
# PROFILE_<key>_DESC - Description shown in menu
|
||||
# PROFILE_<key>_XFCE - Whether to install XFCE (true/false)
|
||||
# PROFILE_<key>_KDE - Whether to install KDE (true/false)
|
||||
# PROFILE_<key>_PACKAGES - Package array
|
||||
# PROFILE_<key>_SERVICES - Services to enable array
|
||||
|
||||
@@ -83,7 +126,7 @@ PROFILES=(minimal server minimal_desktop htpc htpc_gaming office dev)
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_minimal_NAME="Minimal"
|
||||
PROFILE_minimal_DESC="Base Arch Linux system, no additional packages."
|
||||
PROFILE_minimal_XFCE=false
|
||||
PROFILE_minimal_KDE=false
|
||||
PROFILE_minimal_PACKAGES=()
|
||||
PROFILE_minimal_SERVICES=()
|
||||
|
||||
@@ -92,7 +135,7 @@ PROFILE_minimal_SERVICES=()
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_server_NAME="Server"
|
||||
PROFILE_server_DESC="Adds Restic, Docker, and Docker Compose."
|
||||
PROFILE_server_XFCE=false
|
||||
PROFILE_server_KDE=false
|
||||
PROFILE_server_PACKAGES=(
|
||||
restic
|
||||
docker
|
||||
@@ -101,92 +144,42 @@ PROFILE_server_PACKAGES=(
|
||||
PROFILE_server_SERVICES=(docker.service)
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Profile: Minimal Desktop
|
||||
# Profile: Basic Desktop
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_minimal_desktop_NAME="Minimal Desktop"
|
||||
PROFILE_minimal_desktop_DESC="XFCE 4 with no additional applications."
|
||||
PROFILE_minimal_desktop_XFCE=true
|
||||
PROFILE_minimal_desktop_PACKAGES=()
|
||||
PROFILE_minimal_desktop_SERVICES=()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Profile: Home Theater PC
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_htpc_NAME="Home Theater PC"
|
||||
PROFILE_htpc_DESC="XFCE 4 with Chromium and VLC media player."
|
||||
PROFILE_htpc_XFCE=true
|
||||
PROFILE_htpc_PACKAGES=(
|
||||
chromium
|
||||
vlc
|
||||
vlc-plugin-ffmpeg
|
||||
)
|
||||
PROFILE_htpc_SERVICES=()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Profile: Home Theater PC with Gaming
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_htpc_gaming_NAME="Home Theater PC with Gaming"
|
||||
PROFILE_htpc_gaming_DESC="XFCE 4 with Chromium, VLC media player, and Dolphin."
|
||||
PROFILE_htpc_gaming_XFCE=true
|
||||
PROFILE_htpc_gaming_PACKAGES=(
|
||||
dolphin-emu
|
||||
chromium
|
||||
vlc
|
||||
vlc-plugin-ffmpeg
|
||||
)
|
||||
PROFILE_htpc_gaming_SERVICES=()
|
||||
PROFILE_basic_NAME="Basic Desktop"
|
||||
PROFILE_basic_DESC="KDE Plasma with Chromium and multimedia applications."
|
||||
PROFILE_basic_KDE=true
|
||||
PROFILE_basic_PACKAGES=()
|
||||
PROFILE_basic_SERVICES=()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Profile: Office Workstation
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_office_NAME="Office Workstation"
|
||||
PROFILE_office_DESC="XFCE 4 with a full suite of desktop applications aimed at general office work."
|
||||
PROFILE_office_XFCE=true
|
||||
PROFILE_office_DESC="KDE Plasma with office and productivity applications."
|
||||
PROFILE_office_KDE=true
|
||||
PROFILE_office_PACKAGES=(
|
||||
chromium
|
||||
vlc
|
||||
vlc-plugin-ffmpeg
|
||||
hunspell-en_us
|
||||
# Office and documents
|
||||
libreoffice-fresh
|
||||
keepassxc
|
||||
qalculate-gtk
|
||||
ffmpeg
|
||||
hunspell-en_us
|
||||
ghostwriter
|
||||
marknote
|
||||
|
||||
# Graphics and multimedia
|
||||
gimp
|
||||
syncthing
|
||||
kdenlive
|
||||
kid3
|
||||
tenacity
|
||||
git
|
||||
|
||||
# Communication
|
||||
neochat
|
||||
tokodon
|
||||
akregator
|
||||
|
||||
# Utilities
|
||||
keepassxc
|
||||
syncthing
|
||||
gnucash
|
||||
git
|
||||
)
|
||||
PROFILE_office_SERVICES=()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Profile: Software Development Workstation
|
||||
#---------------------------------------------------------------------------
|
||||
PROFILE_dev_NAME="Software Development Workstation"
|
||||
PROFILE_dev_DESC="XFCE 4 with a suite of software development applications."
|
||||
PROFILE_dev_XFCE=true
|
||||
PROFILE_dev_PACKAGES=(
|
||||
chromium
|
||||
vlc
|
||||
vlc-plugin-ffmpeg
|
||||
hunspell-en_us
|
||||
libreoffice-fresh
|
||||
keepassxc
|
||||
qalculate-gtk
|
||||
ffmpeg
|
||||
gimp
|
||||
syncthing
|
||||
tenacity
|
||||
git
|
||||
docker
|
||||
docker-compose
|
||||
python
|
||||
python-virtualenv
|
||||
pycharm-community-edition
|
||||
jdk-openjdk
|
||||
intellij-idea-community-edition
|
||||
go
|
||||
code
|
||||
wireshark-qt
|
||||
)
|
||||
PROFILE_dev_SERVICES=(docker.service)
|
||||
|
||||
2
files/home-skel-desktop/.config/dolphinrc
Normal file
2
files/home-skel-desktop/.config/dolphinrc
Normal file
@@ -0,0 +1,2 @@
|
||||
[ContextMenu]
|
||||
ShowShareActions=false
|
||||
0
files/home-skel-desktop/.gitkeep
Normal file
0
files/home-skel-desktop/.gitkeep
Normal file
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
@@ -0,0 +1,2 @@
|
||||
[Desktop Entry]
|
||||
NoDisplay=true
|
||||
0
files/home-skel/.gitkeep
Normal file
0
files/home-skel/.gitkeep
Normal file
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="thunar" version="1.0">
|
||||
<property name="last-view" type="string" value="ThunarDetailsView"/>
|
||||
<property name="misc-single-click" type="bool" value="false"/>
|
||||
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
|
||||
<property name="misc-change-window-icon" type="bool" value="false"/>
|
||||
<property name="default-view" type="string" value="ThunarDetailsView"/>
|
||||
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
|
||||
<property name="last-separator-position" type="int" value="170"/>
|
||||
<property name="last-details-view-column-widths" type="string" value="50,50,141,360,141,219,50,50,710,50,111,69,50,78"/>
|
||||
<property name="misc-file-size-binary" type="bool" value="true"/>
|
||||
<property name="misc-thumbnail-mode" type="string" value="THUNAR_THUMBNAIL_MODE_NEVER"/>
|
||||
<property name="misc-thumbnail-max-file-size" type="uint64" value="524288"/>
|
||||
<property name="misc-date-style" type="string" value="THUNAR_DATE_STYLE_SHORT"/>
|
||||
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
|
||||
<property name="tree-icon-emblems" type="bool" value="true"/>
|
||||
<property name="misc-image-preview-mode" type="string" value="THUNAR_IMAGE_PREVIEW_MODE_STANDALONE"/>
|
||||
<property name="misc-full-path-in-tab-title" type="bool" value="false"/>
|
||||
<property name="misc-exec-shell-scripts-by-default" type="string" value="THUNAR_EXECUTE_SHELL_SCRIPT_NEVER"/>
|
||||
<property name="misc-volume-management" type="bool" value="false"/>
|
||||
<property name="last-window-maximized" type="bool" value="true"/>
|
||||
<property name="hidden-bookmarks" type="array">
|
||||
<value type="string" value="network:///"/>
|
||||
<value type="string" value="computer:///"/>
|
||||
</property>
|
||||
<property name="last-details-view-visible-columns" type="string" value="THUNAR_COLUMN_DATE_MODIFIED,THUNAR_COLUMN_NAME,THUNAR_COLUMN_PERMISSIONS,THUNAR_COLUMN_SIZE,THUNAR_COLUMN_TYPE"/>
|
||||
<property name="last-window-width" type="int" value="640"/>
|
||||
<property name="last-window-height" type="int" value="480"/>
|
||||
<property name="last-sort-column" type="string" value="THUNAR_COLUMN_DATE_MODIFIED"/>
|
||||
<property name="last-sort-order" type="string" value="GTK_SORT_DESCENDING"/>
|
||||
</channel>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-desktop" version="1.0">
|
||||
<property name="last-settings-migration-version" type="uint" value="1"/>
|
||||
<property name="windowlist-menu" type="empty">
|
||||
<property name="show" type="bool" value="false"/>
|
||||
</property>
|
||||
<property name="desktop-menu" type="empty">
|
||||
<property name="show" type="bool" value="false"/>
|
||||
<property name="show-delete" type="bool" value="false"/>
|
||||
</property>
|
||||
<property name="desktop-icons" type="empty">
|
||||
<property name="show-thumbnails" type="bool" value="false"/>
|
||||
<property name="file-icons" type="empty">
|
||||
<property name="show-filesystem" type="bool" value="false"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="last" type="empty">
|
||||
<property name="window-width" type="int" value="640"/>
|
||||
<property name="window-height" type="int" value="559"/>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,196 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-keyboard-shortcuts" version="1.0">
|
||||
<property name="commands" type="empty">
|
||||
<property name="default" type="empty">
|
||||
<property name="<Alt>F1" type="empty"/>
|
||||
<property name="<Alt>F2" type="empty">
|
||||
<property name="startup-notify" type="empty"/>
|
||||
</property>
|
||||
<property name="<Alt>F3" type="empty">
|
||||
<property name="startup-notify" type="empty"/>
|
||||
</property>
|
||||
<property name="<Primary><Alt>Delete" type="empty"/>
|
||||
<property name="<Primary><Alt>l" type="empty"/>
|
||||
<property name="<Primary><Alt>t" type="empty"/>
|
||||
<property name="XF86Display" type="empty"/>
|
||||
<property name="<Super>p" type="empty"/>
|
||||
<property name="<Primary>Escape" type="empty"/>
|
||||
<property name="XF86WWW" type="empty"/>
|
||||
<property name="HomePage" type="empty"/>
|
||||
<property name="XF86Mail" type="empty"/>
|
||||
<property name="Print" type="empty"/>
|
||||
<property name="<Alt>Print" type="empty"/>
|
||||
<property name="<Shift>Print" type="empty"/>
|
||||
<property name="<Super>e" type="empty"/>
|
||||
<property name="<Primary><Alt>f" type="empty"/>
|
||||
<property name="<Primary><Alt>Escape" type="empty"/>
|
||||
<property name="<Primary><Shift>Escape" type="empty"/>
|
||||
<property name="<Super>r" type="empty">
|
||||
<property name="startup-notify" type="empty"/>
|
||||
</property>
|
||||
<property name="<Alt><Super>s" type="empty"/>
|
||||
</property>
|
||||
<property name="custom" type="empty">
|
||||
<property name="<Alt>F2" type="string" value="xfce4-appfinder --collapsed">
|
||||
<property name="startup-notify" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="<Alt>Print" type="string" value="xfce4-screenshooter -w"/>
|
||||
<property name="<Super>r" type="string" value="xfce4-appfinder -c">
|
||||
<property name="startup-notify" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
|
||||
<property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
|
||||
<property name="<Alt>F3" type="string" value="xfce4-appfinder">
|
||||
<property name="startup-notify" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="Print" type="string" value="xfce4-screenshooter"/>
|
||||
<property name="<Primary>Escape" type="string" value="xfdesktop --menu"/>
|
||||
<property name="<Shift>Print" type="string" value="xfce4-screenshooter -r"/>
|
||||
<property name="<Primary><Alt>Delete" type="string" value="xfce4-session-logout"/>
|
||||
<property name="<Alt><Super>s" type="string" value="orca"/>
|
||||
<property name="<Primary><Alt>t" type="string" value="exo-open --launch TerminalEmulator"/>
|
||||
<property name="<Primary><Alt>f" type="string" value="thunar"/>
|
||||
<property name="<Primary><Alt>l" type="string" value="xflock4"/>
|
||||
<property name="<Alt>F1" type="string" value="xfce4-popup-applicationsmenu"/>
|
||||
<property name="<Super>p" type="string" value="xfce4-display-settings --minimal"/>
|
||||
<property name="<Primary><Shift>Escape" type="string" value="xfce4-taskmanager"/>
|
||||
<property name="<Super>e" type="string" value="thunar"/>
|
||||
<property name="<Primary><Alt>Escape" type="string" value="xkill"/>
|
||||
<property name="HomePage" type="string" value="exo-open --launch WebBrowser"/>
|
||||
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
|
||||
<property name="override" type="bool" value="true"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="xfwm4" type="empty">
|
||||
<property name="default" type="empty">
|
||||
<property name="<Alt>Insert" type="empty"/>
|
||||
<property name="Escape" type="empty"/>
|
||||
<property name="Left" type="empty"/>
|
||||
<property name="Right" type="empty"/>
|
||||
<property name="Up" type="empty"/>
|
||||
<property name="Down" type="empty"/>
|
||||
<property name="<Alt>Tab" type="empty"/>
|
||||
<property name="<Alt><Shift>Tab" type="empty"/>
|
||||
<property name="<Alt>Delete" type="empty"/>
|
||||
<property name="<Primary><Alt>Down" type="empty"/>
|
||||
<property name="<Primary><Alt>Left" type="empty"/>
|
||||
<property name="<Shift><Alt>Page_Down" type="empty"/>
|
||||
<property name="<Alt>F4" type="empty"/>
|
||||
<property name="<Alt>F6" type="empty"/>
|
||||
<property name="<Alt>F7" type="empty"/>
|
||||
<property name="<Alt>F8" type="empty"/>
|
||||
<property name="<Alt>F9" type="empty"/>
|
||||
<property name="<Alt>F10" type="empty"/>
|
||||
<property name="<Alt>F11" type="empty"/>
|
||||
<property name="<Alt>F12" type="empty"/>
|
||||
<property name="<Primary><Shift><Alt>Left" type="empty"/>
|
||||
<property name="<Primary><Alt>End" type="empty"/>
|
||||
<property name="<Primary><Alt>Home" type="empty"/>
|
||||
<property name="<Primary><Shift><Alt>Right" type="empty"/>
|
||||
<property name="<Primary><Shift><Alt>Up" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_1" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_2" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_3" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_4" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_5" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_6" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_7" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_8" type="empty"/>
|
||||
<property name="<Primary><Alt>KP_9" type="empty"/>
|
||||
<property name="<Alt>space" type="empty"/>
|
||||
<property name="<Shift><Alt>Page_Up" type="empty"/>
|
||||
<property name="<Primary><Alt>Right" type="empty"/>
|
||||
<property name="<Primary><Alt>d" type="empty"/>
|
||||
<property name="<Primary><Alt>Up" type="empty"/>
|
||||
<property name="<Super>Tab" type="empty"/>
|
||||
<property name="<Primary>F1" type="empty"/>
|
||||
<property name="<Primary>F2" type="empty"/>
|
||||
<property name="<Primary>F3" type="empty"/>
|
||||
<property name="<Primary>F4" type="empty"/>
|
||||
<property name="<Primary>F5" type="empty"/>
|
||||
<property name="<Primary>F6" type="empty"/>
|
||||
<property name="<Primary>F7" type="empty"/>
|
||||
<property name="<Primary>F8" type="empty"/>
|
||||
<property name="<Primary>F9" type="empty"/>
|
||||
<property name="<Primary>F10" type="empty"/>
|
||||
<property name="<Primary>F11" type="empty"/>
|
||||
<property name="<Primary>F12" type="empty"/>
|
||||
<property name="<Super>KP_Left" type="empty"/>
|
||||
<property name="<Super>KP_Right" type="empty"/>
|
||||
<property name="<Super>KP_Down" type="empty"/>
|
||||
<property name="<Super>KP_Up" type="empty"/>
|
||||
<property name="<Super>KP_Page_Up" type="empty"/>
|
||||
<property name="<Super>KP_Home" type="empty"/>
|
||||
<property name="<Super>KP_End" type="empty"/>
|
||||
<property name="<Super>KP_Next" type="empty"/>
|
||||
</property>
|
||||
<property name="custom" type="empty">
|
||||
<property name="<Primary>F12" type="string" value="workspace_12_key"/>
|
||||
<property name="<Super>KP_Down" type="string" value="tile_down_key"/>
|
||||
<property name="<Alt>F4" type="string" value="close_window_key"/>
|
||||
<property name="<Primary><Alt>KP_3" type="string" value="move_window_workspace_3_key"/>
|
||||
<property name="<Primary>F2" type="string" value="workspace_2_key"/>
|
||||
<property name="<Primary>F6" type="string" value="workspace_6_key"/>
|
||||
<property name="<Primary><Alt>Down" type="string" value="down_workspace_key"/>
|
||||
<property name="<Primary><Alt>KP_9" type="string" value="move_window_workspace_9_key"/>
|
||||
<property name="<Super>KP_Up" type="string" value="tile_up_key"/>
|
||||
<property name="<Primary><Alt>End" type="string" value="move_window_next_workspace_key"/>
|
||||
<property name="<Primary>F8" type="string" value="workspace_8_key"/>
|
||||
<property name="<Primary><Shift><Alt>Left" type="string" value="move_window_left_key"/>
|
||||
<property name="<Super>KP_Right" type="string" value="tile_right_key"/>
|
||||
<property name="<Primary><Alt>KP_4" type="string" value="move_window_workspace_4_key"/>
|
||||
<property name="Right" type="string" value="right_key"/>
|
||||
<property name="Down" type="string" value="down_key"/>
|
||||
<property name="<Primary>F3" type="string" value="workspace_3_key"/>
|
||||
<property name="<Shift><Alt>Page_Down" type="string" value="lower_window_key"/>
|
||||
<property name="<Primary>F9" type="string" value="workspace_9_key"/>
|
||||
<property name="<Alt>Tab" type="string" value="cycle_windows_key"/>
|
||||
<property name="<Primary><Shift><Alt>Right" type="string" value="move_window_right_key"/>
|
||||
<property name="<Primary><Alt>Right" type="string" value="right_workspace_key"/>
|
||||
<property name="<Alt>F6" type="string" value="stick_window_key"/>
|
||||
<property name="<Primary><Alt>KP_5" type="string" value="move_window_workspace_5_key"/>
|
||||
<property name="<Primary>F11" type="string" value="workspace_11_key"/>
|
||||
<property name="<Alt>F10" type="string" value="maximize_window_key"/>
|
||||
<property name="<Alt>Delete" type="string" value="del_workspace_key"/>
|
||||
<property name="<Super>Tab" type="string" value="switch_window_key"/>
|
||||
<property name="<Primary><Alt>d" type="string" value="show_desktop_key"/>
|
||||
<property name="<Primary>F4" type="string" value="workspace_4_key"/>
|
||||
<property name="<Super>KP_Page_Up" type="string" value="tile_up_right_key"/>
|
||||
<property name="<Alt>F7" type="string" value="move_window_key"/>
|
||||
<property name="Up" type="string" value="up_key"/>
|
||||
<property name="<Primary><Alt>KP_6" type="string" value="move_window_workspace_6_key"/>
|
||||
<property name="<Alt>F11" type="string" value="fullscreen_key"/>
|
||||
<property name="<Alt>space" type="string" value="popup_menu_key"/>
|
||||
<property name="<Super>KP_Home" type="string" value="tile_up_left_key"/>
|
||||
<property name="Escape" type="string" value="cancel_key"/>
|
||||
<property name="<Primary><Alt>KP_1" type="string" value="move_window_workspace_1_key"/>
|
||||
<property name="<Super>KP_Next" type="string" value="tile_down_right_key"/>
|
||||
<property name="<Super>KP_Left" type="string" value="tile_left_key"/>
|
||||
<property name="<Shift><Alt>Page_Up" type="string" value="raise_window_key"/>
|
||||
<property name="<Primary><Alt>Home" type="string" value="move_window_prev_workspace_key"/>
|
||||
<property name="<Alt><Shift>Tab" type="string" value="cycle_reverse_windows_key"/>
|
||||
<property name="<Primary><Alt>Left" type="string" value="left_workspace_key"/>
|
||||
<property name="<Alt>F12" type="string" value="above_key"/>
|
||||
<property name="<Primary><Shift><Alt>Up" type="string" value="move_window_up_key"/>
|
||||
<property name="<Primary>F5" type="string" value="workspace_5_key"/>
|
||||
<property name="<Alt>F8" type="string" value="resize_window_key"/>
|
||||
<property name="<Primary><Alt>KP_7" type="string" value="move_window_workspace_7_key"/>
|
||||
<property name="<Primary><Alt>KP_2" type="string" value="move_window_workspace_2_key"/>
|
||||
<property name="<Super>KP_End" type="string" value="tile_down_left_key"/>
|
||||
<property name="<Primary><Alt>Up" type="string" value="up_workspace_key"/>
|
||||
<property name="<Alt>F9" type="string" value="hide_window_key"/>
|
||||
<property name="<Primary>F7" type="string" value="workspace_7_key"/>
|
||||
<property name="<Primary>F10" type="string" value="workspace_10_key"/>
|
||||
<property name="Left" type="string" value="left_key"/>
|
||||
<property name="<Primary><Alt>KP_8" type="string" value="move_window_workspace_8_key"/>
|
||||
<property name="<Alt>Insert" type="string" value="add_workspace_key"/>
|
||||
<property name="<Primary>F1" type="string" value="workspace_1_key"/>
|
||||
<property name="override" type="bool" value="true"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="providers" type="array">
|
||||
<value type="string" value="xfwm4"/>
|
||||
<value type="string" value="commands"/>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-notifyd" version="1.0">
|
||||
<property name="log-max-size-enabled" type="bool" value="true"/>
|
||||
<property name="date-time-custom-format" type="string" value="%a %H:%M:%S"/>
|
||||
<property name="show-text-with-gauge" type="bool" value="true"/>
|
||||
</channel>
|
||||
@@ -1,82 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-panel" version="1.0">
|
||||
<property name="configver" type="int" value="2"/>
|
||||
<property name="panels" type="array">
|
||||
<value type="int" value="1"/>
|
||||
<property name="dark-mode" type="bool" value="true"/>
|
||||
<property name="panel-1" type="empty">
|
||||
<property name="position" type="string" value="p=8;x=640;y=786"/>
|
||||
<property name="length" type="uint" value="100"/>
|
||||
<property name="position-locked" type="bool" value="true"/>
|
||||
<property name="icon-size" type="uint" value="16"/>
|
||||
<property name="size" type="uint" value="26"/>
|
||||
<property name="plugin-ids" type="array">
|
||||
<value type="int" value="1"/>
|
||||
<value type="int" value="2"/>
|
||||
<value type="int" value="3"/>
|
||||
<value type="int" value="4"/>
|
||||
<value type="int" value="5"/>
|
||||
<value type="int" value="6"/>
|
||||
<value type="int" value="10"/>
|
||||
<value type="int" value="7"/>
|
||||
<value type="int" value="11"/>
|
||||
</property>
|
||||
</property>
|
||||
</property>
|
||||
<property name="plugins" type="empty">
|
||||
<property name="plugin-1" type="string" value="whiskermenu">
|
||||
<property name="show-button-title" type="bool" value="true"/>
|
||||
<property name="profile-shape" type="int" value="0"/>
|
||||
<property name="show-command-profile" type="bool" value="false"/>
|
||||
<property name="show-command-menueditor" type="bool" value="false"/>
|
||||
<property name="show-command-settings" type="bool" value="true"/>
|
||||
<property name="search-actions" type="int" value="0"/>
|
||||
<property name="favorites" type="array">
|
||||
</property>
|
||||
<property name="recent" type="array">
|
||||
<value type="string" value="xfce4-terminal.desktop"/>
|
||||
<value type="string" value="xfce4-terminal-emulator.desktop"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="plugin-2" type="string" value="tasklist">
|
||||
<property name="flat-buttons" type="bool" value="true"/>
|
||||
<property name="show-handle" type="bool" value="true"/>
|
||||
<property name="grouping" type="bool" value="true"/>
|
||||
<property name="include-all-workspaces" type="bool" value="false"/>
|
||||
</property>
|
||||
<property name="plugin-3" type="string" value="separator">
|
||||
<property name="expand" type="bool" value="true"/>
|
||||
<property name="style" type="uint" value="0"/>
|
||||
</property>
|
||||
<property name="plugin-4" type="string" value="pager">
|
||||
<property name="rows" type="uint" value="1"/>
|
||||
<property name="workspace-scrolling" type="bool" value="false"/>
|
||||
<property name="miniature-view" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="plugin-6" type="string" value="systray">
|
||||
<property name="single-row" type="bool" value="true"/>
|
||||
<property name="square-icons" type="bool" value="true"/>
|
||||
<property name="known-legacy-items" type="array">
|
||||
<value type="string" value="xfce4-power-manager"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="plugin-10" type="string" value="pulseaudio">
|
||||
<property name="enable-keyboard-shortcuts" type="bool" value="true"/>
|
||||
<property name="play-sound" type="bool" value="true"/>
|
||||
<property name="rec-indicator-persistent" type="bool" value="false"/>
|
||||
</property>
|
||||
<property name="plugin-11" type="string" value="clock">
|
||||
<property name="show-week-numbers" type="bool" value="false"/>
|
||||
<property name="digital-date-font" type="string" value="Noto Sans 8"/>
|
||||
<property name="digital-time-font" type="string" value="Noto Sans 8"/>
|
||||
<property name="digital-time-format" type="string" value="%l:%M:%S %P"/>
|
||||
<property name="digital-date-format" type="string" value="%a, %b %d, %Y"/>
|
||||
</property>
|
||||
<property name="plugin-5" type="string" value="separator">
|
||||
<property name="style" type="uint" value="0"/>
|
||||
<property name="expand" type="bool" value="false"/>
|
||||
</property>
|
||||
<property name="plugin-7" type="string" value="power-manager-plugin"/>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-power-manager" version="1.0">
|
||||
<property name="xfce4-power-manager" type="empty">
|
||||
<property name="lock-screen-suspend-hibernate" type="bool" value="true"/>
|
||||
<property name="power-button-action" type="uint" value="4"/>
|
||||
<property name="hibernate-button-action" type="uint" value="3"/>
|
||||
<property name="sleep-button-action" type="uint" value="3"/>
|
||||
<property name="battery-button-action" type="uint" value="3"/>
|
||||
<property name="show-tray-icon" type="bool" value="false"/>
|
||||
<property name="inactivity-on-ac" type="uint" value="0"/>
|
||||
<property name="dpms-on-ac-off" type="uint" value="60"/>
|
||||
<property name="dpms-on-ac-sleep" type="uint" value="15"/>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-screensaver" version="1.0">
|
||||
<property name="saver" type="empty">
|
||||
<property name="mode" type="int" value="2"/>
|
||||
<property name="themes" type="empty">
|
||||
<property name="list" type="array">
|
||||
<value type="string" value="screensavers-xfce-floaters"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="enabled" type="bool" value="true"/>
|
||||
<property name="fullscreen-inhibit" type="bool" value="true"/>
|
||||
<property name="idle-activation" type="empty">
|
||||
<property name="delay" type="int" value="1"/>
|
||||
</property>
|
||||
</property>
|
||||
<property name="lock" type="empty">
|
||||
<property name="enabled" type="bool" value="true"/>
|
||||
<property name="saver-activation" type="empty">
|
||||
<property name="delay" type="int" value="2"/>
|
||||
<property name="enabled" type="bool" value="true"/>
|
||||
</property>
|
||||
<property name="sleep-activation" type="bool" value="true"/>
|
||||
<property name="status-messages" type="empty">
|
||||
<property name="enabled" type="bool" value="false"/>
|
||||
</property>
|
||||
<property name="user-switching" type="empty">
|
||||
<property name="enabled" type="bool" value="false"/>
|
||||
</property>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfce4-terminal" version="1.0">
|
||||
<property name="scrolling-lines" type="uint" value="10000"/>
|
||||
<property name="misc-cursor-blinks" type="bool" value="true"/>
|
||||
<property name="color-use-theme" type="bool" value="false"/>
|
||||
<property name="color-background-vary" type="bool" value="false"/>
|
||||
<property name="misc-tab-close-middle-click" type="bool" value="false"/>
|
||||
<property name="misc-middle-click-opens-uri" type="bool" value="false"/>
|
||||
<property name="misc-bell" type="bool" value="false"/>
|
||||
<property name="misc-bell-urgent" type="bool" value="false"/>
|
||||
</channel>
|
||||
@@ -1,91 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xfwm4" version="1.0">
|
||||
<property name="general" type="empty">
|
||||
<property name="activate_action" type="string" value="bring"/>
|
||||
<property name="borderless_maximize" type="bool" value="true"/>
|
||||
<property name="box_move" type="bool" value="false"/>
|
||||
<property name="box_resize" type="bool" value="false"/>
|
||||
<property name="button_layout" type="string" value="O|SHMC"/>
|
||||
<property name="button_offset" type="int" value="0"/>
|
||||
<property name="button_spacing" type="int" value="0"/>
|
||||
<property name="click_to_focus" type="bool" value="true"/>
|
||||
<property name="cycle_apps_only" type="bool" value="false"/>
|
||||
<property name="cycle_draw_frame" type="bool" value="true"/>
|
||||
<property name="cycle_raise" type="bool" value="false"/>
|
||||
<property name="cycle_hidden" type="bool" value="true"/>
|
||||
<property name="cycle_minimum" type="bool" value="true"/>
|
||||
<property name="cycle_minimized" type="bool" value="false"/>
|
||||
<property name="cycle_preview" type="bool" value="true"/>
|
||||
<property name="cycle_tabwin_mode" type="int" value="0"/>
|
||||
<property name="cycle_workspaces" type="bool" value="false"/>
|
||||
<property name="double_click_action" type="string" value="maximize"/>
|
||||
<property name="double_click_distance" type="int" value="5"/>
|
||||
<property name="double_click_time" type="int" value="250"/>
|
||||
<property name="easy_click" type="string" value="Alt"/>
|
||||
<property name="focus_delay" type="int" value="250"/>
|
||||
<property name="focus_hint" type="bool" value="true"/>
|
||||
<property name="focus_new" type="bool" value="true"/>
|
||||
<property name="frame_opacity" type="int" value="100"/>
|
||||
<property name="frame_border_top" type="int" value="0"/>
|
||||
<property name="full_width_title" type="bool" value="true"/>
|
||||
<property name="horiz_scroll_opacity" type="bool" value="false"/>
|
||||
<property name="inactive_opacity" type="int" value="100"/>
|
||||
<property name="maximized_offset" type="int" value="0"/>
|
||||
<property name="mousewheel_rollup" type="bool" value="false"/>
|
||||
<property name="move_opacity" type="int" value="100"/>
|
||||
<property name="placement_mode" type="string" value="center"/>
|
||||
<property name="placement_ratio" type="int" value="20"/>
|
||||
<property name="popup_opacity" type="int" value="100"/>
|
||||
<property name="prevent_focus_stealing" type="bool" value="false"/>
|
||||
<property name="raise_delay" type="int" value="250"/>
|
||||
<property name="raise_on_click" type="bool" value="true"/>
|
||||
<property name="raise_on_focus" type="bool" value="false"/>
|
||||
<property name="raise_with_any_button" type="bool" value="true"/>
|
||||
<property name="repeat_urgent_blink" type="bool" value="false"/>
|
||||
<property name="resize_opacity" type="int" value="100"/>
|
||||
<property name="scroll_workspaces" type="bool" value="false"/>
|
||||
<property name="shadow_delta_height" type="int" value="0"/>
|
||||
<property name="shadow_delta_width" type="int" value="0"/>
|
||||
<property name="shadow_delta_x" type="int" value="0"/>
|
||||
<property name="shadow_delta_y" type="int" value="-3"/>
|
||||
<property name="shadow_opacity" type="int" value="50"/>
|
||||
<property name="show_app_icon" type="bool" value="false"/>
|
||||
<property name="show_dock_shadow" type="bool" value="true"/>
|
||||
<property name="show_frame_shadow" type="bool" value="true"/>
|
||||
<property name="show_popup_shadow" type="bool" value="false"/>
|
||||
<property name="snap_resist" type="bool" value="false"/>
|
||||
<property name="snap_to_border" type="bool" value="true"/>
|
||||
<property name="snap_to_windows" type="bool" value="false"/>
|
||||
<property name="snap_width" type="int" value="10"/>
|
||||
<property name="vblank_mode" type="string" value="auto"/>
|
||||
<property name="theme" type="string" value="Default"/>
|
||||
<property name="tile_on_move" type="bool" value="true"/>
|
||||
<property name="title_alignment" type="string" value="center"/>
|
||||
<property name="title_font" type="string" value="Noto Sans Bold 9"/>
|
||||
<property name="title_horizontal_offset" type="int" value="0"/>
|
||||
<property name="titleless_maximize" type="bool" value="false"/>
|
||||
<property name="title_shadow_active" type="string" value="false"/>
|
||||
<property name="title_shadow_inactive" type="string" value="false"/>
|
||||
<property name="title_vertical_offset_active" type="int" value="0"/>
|
||||
<property name="title_vertical_offset_inactive" type="int" value="0"/>
|
||||
<property name="toggle_workspaces" type="bool" value="false"/>
|
||||
<property name="unredirect_overlays" type="bool" value="true"/>
|
||||
<property name="urgent_blink" type="bool" value="false"/>
|
||||
<property name="use_compositing" type="bool" value="true"/>
|
||||
<property name="workspace_count" type="int" value="4"/>
|
||||
<property name="wrap_cycle" type="bool" value="true"/>
|
||||
<property name="wrap_layout" type="bool" value="true"/>
|
||||
<property name="wrap_resistance" type="int" value="10"/>
|
||||
<property name="wrap_windows" type="bool" value="false"/>
|
||||
<property name="wrap_workspaces" type="bool" value="false"/>
|
||||
<property name="zoom_desktop" type="bool" value="true"/>
|
||||
<property name="zoom_pointer" type="bool" value="true"/>
|
||||
<property name="workspace_names" type="array">
|
||||
<value type="string" value="Workspace 1"/>
|
||||
<value type="string" value="Workspace 2"/>
|
||||
<value type="string" value="Workspace 3"/>
|
||||
<value type="string" value="Workspace 4"/>
|
||||
</property>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -1,42 +0,0 @@
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="xsettings" version="1.0">
|
||||
<property name="Net" type="empty">
|
||||
<property name="ThemeName" type="string" value="Adwaita-dark"/>
|
||||
<property name="IconThemeName" type="string" value="Papirus-Dark"/>
|
||||
<property name="DoubleClickTime" type="empty"/>
|
||||
<property name="DoubleClickDistance" type="empty"/>
|
||||
<property name="DndDragThreshold" type="empty"/>
|
||||
<property name="CursorBlink" type="empty"/>
|
||||
<property name="CursorBlinkTime" type="empty"/>
|
||||
<property name="SoundThemeName" type="empty"/>
|
||||
<property name="EnableEventSounds" type="empty"/>
|
||||
<property name="EnableInputFeedbackSounds" type="empty"/>
|
||||
</property>
|
||||
<property name="Xft" type="empty">
|
||||
<property name="DPI" type="empty"/>
|
||||
<property name="Antialias" type="empty"/>
|
||||
<property name="Hinting" type="empty"/>
|
||||
<property name="HintStyle" type="empty"/>
|
||||
<property name="RGBA" type="empty"/>
|
||||
</property>
|
||||
<property name="Gtk" type="empty">
|
||||
<property name="CanChangeAccels" type="empty"/>
|
||||
<property name="ColorPalette" type="empty"/>
|
||||
<property name="FontName" type="string" value="Noto Sans 10"/>
|
||||
<property name="MonospaceFontName" type="string" value="Noto Sans Mono 10"/>
|
||||
<property name="IconSizes" type="empty"/>
|
||||
<property name="KeyThemeName" type="empty"/>
|
||||
<property name="MenuImages" type="empty"/>
|
||||
<property name="ButtonImages" type="empty"/>
|
||||
<property name="MenuBarAccel" type="empty"/>
|
||||
<property name="CursorThemeName" type="string" value="Adwaita"/>
|
||||
<property name="CursorThemeSize" type="empty"/>
|
||||
<property name="DecorationLayout" type="string" value="icon,menu:minimize,maximize,close"/>
|
||||
<property name="DialogsUseHeader" type="empty"/>
|
||||
<property name="TitlebarMiddleClick" type="empty"/>
|
||||
</property>
|
||||
<property name="Gdk" type="empty">
|
||||
<property name="WindowScalingFactor" type="empty"/>
|
||||
</property>
|
||||
</channel>
|
||||
@@ -39,7 +39,7 @@ source "${SCRIPT_DIR}/lib/system/security.sh"
|
||||
source "${SCRIPT_DIR}/lib/system/user.sh"
|
||||
|
||||
# Source desktop modules
|
||||
source "${SCRIPT_DIR}/lib/desktop/xfce.sh"
|
||||
source "${SCRIPT_DIR}/lib/desktop/kde.sh"
|
||||
source "${SCRIPT_DIR}/lib/desktop/drivers.sh"
|
||||
|
||||
# Source profile system
|
||||
|
||||
49
lib/desktop/kde.sh
Normal file
49
lib/desktop/kde.sh
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2026 Logan Fick
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# kde.sh - KDE Plasma desktop environment installation
|
||||
#
|
||||
# Installs KDE Plasma with SDDM display manager.
|
||||
# KDE_PACKAGES is defined in config/profiles.conf.
|
||||
|
||||
# Install KDE base packages
|
||||
install_kde_packages() {
|
||||
chroot_pacman_install "${KDE_PACKAGES[@]}"
|
||||
}
|
||||
|
||||
# Copy desktop skeleton files to user home
|
||||
# Arguments:
|
||||
# $1 - username
|
||||
copy_desktop_skel() {
|
||||
local username="$1"
|
||||
local home_dir="${MOUNT_POINT}/home/${username}"
|
||||
|
||||
cp -r "${HOME_SKEL_DESKTOP_DIR}/." "${home_dir}/"
|
||||
rm -f "${home_dir}/.gitkeep"
|
||||
chown -R 1000:1000 "${home_dir}"
|
||||
}
|
||||
|
||||
# Full KDE installation
|
||||
# Arguments:
|
||||
# $1 - username
|
||||
install_kde() {
|
||||
local username="$1"
|
||||
|
||||
install_kde_packages
|
||||
chroot_systemd_enable sddm.service
|
||||
copy_desktop_skel "$username"
|
||||
chroot_run usermod -aG wireshark "$username"
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2026 Logan Fick
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# xfce.sh - XFCE desktop environment installation
|
||||
#
|
||||
# Installs XFCE4 with LightDM and copies pre-configured user settings.
|
||||
# XFCE_PACKAGES is defined in config/profiles.conf.
|
||||
|
||||
# Install XFCE base packages
|
||||
install_xfce_packages() {
|
||||
chroot_pacman_install "${XFCE_PACKAGES[@]}"
|
||||
}
|
||||
|
||||
# Configure LightDM greeter
|
||||
configure_lightdm() {
|
||||
chroot_run sh -c "cat > /etc/lightdm/lightdm-gtk-greeter.conf" <<EOF
|
||||
[greeter]
|
||||
hide-user-image = true
|
||||
font-name = Noto Sans 10
|
||||
clock-format = %A, %B %d, %Y,%l:%M:%S %p
|
||||
theme-name = Adwaita-dark
|
||||
icon-theme-name = Papirus-Dark
|
||||
screensaver-timeout = 10
|
||||
user-background = false
|
||||
background = #77767b
|
||||
indicators = ~host;~spacer;~clock;~spacer;~power
|
||||
EOF
|
||||
}
|
||||
|
||||
# Copy default XFCE configuration to user home
|
||||
# Arguments:
|
||||
# $1 - username
|
||||
copy_xfce_config() {
|
||||
local username="$1"
|
||||
local home_dir="${MOUNT_POINT}/home/${username}"
|
||||
|
||||
cp -r "${HOME_CONFIG_DIR}" "${home_dir}/.config"
|
||||
|
||||
# Disable tumblerd (thumbnail service)
|
||||
mkdir -p "${home_dir}/.config/systemd/user"
|
||||
ln -s /dev/null "${home_dir}/.config/systemd/user/tumblerd.service"
|
||||
|
||||
# Set correct ownership (UID 1000 is typically first user)
|
||||
chown -R 1000:1000 "${home_dir}/.config"
|
||||
}
|
||||
|
||||
# Full XFCE installation
|
||||
# Arguments:
|
||||
# $1 - username
|
||||
install_xfce() {
|
||||
local username="$1"
|
||||
|
||||
install_xfce_packages
|
||||
chroot_systemd_enable lightdm.service
|
||||
configure_lightdm
|
||||
copy_xfce_config "$username"
|
||||
}
|
||||
@@ -33,13 +33,39 @@ prompt_username() {
|
||||
done
|
||||
}
|
||||
|
||||
# Prompt for display name
|
||||
# Sets:
|
||||
# DISPLAY_NAME - the entered display name (empty if skipped)
|
||||
prompt_display_name() {
|
||||
prompt "Please enter your display name, or press Enter to skip (e.g., John Smith):" DISPLAY_NAME
|
||||
}
|
||||
|
||||
# Copy base skeleton files to user home
|
||||
# Arguments:
|
||||
# $1 - username
|
||||
copy_home_skel() {
|
||||
local username="$1"
|
||||
local home_dir="${MOUNT_POINT}/home/${username}"
|
||||
|
||||
cp -r "${HOME_SKEL_DIR}/." "${home_dir}/"
|
||||
rm -f "${home_dir}/.gitkeep"
|
||||
chown -R 1000:1000 "${home_dir}"
|
||||
}
|
||||
|
||||
# Create a user account
|
||||
# Arguments:
|
||||
# $1 - username
|
||||
# $2 - display name (optional)
|
||||
create_user() {
|
||||
local username="$1"
|
||||
local display_name="${2:-}"
|
||||
|
||||
chroot_run useradd -m -G wheel "$username"
|
||||
if [[ -n "$display_name" ]]; then
|
||||
chroot_run useradd -m -G wheel -c "$display_name" "$username"
|
||||
else
|
||||
chroot_run useradd -m -G wheel "$username"
|
||||
fi
|
||||
copy_home_skel "$username"
|
||||
}
|
||||
|
||||
# Set password for a user
|
||||
@@ -55,8 +81,10 @@ set_user_password() {
|
||||
# Full user setup
|
||||
# Sets:
|
||||
# USERNAME - the created username
|
||||
# DISPLAY_NAME - the user's display name
|
||||
setup_user() {
|
||||
prompt_username
|
||||
create_user "$USERNAME"
|
||||
prompt_display_name
|
||||
create_user "$USERNAME" "$DISPLAY_NAME"
|
||||
set_user_password "$USERNAME"
|
||||
}
|
||||
|
||||
@@ -66,15 +66,15 @@ get_profile_services() {
|
||||
echo "${!svc_var}"
|
||||
}
|
||||
|
||||
# Check if profile requires XFCE
|
||||
# Check if profile requires KDE
|
||||
# Arguments:
|
||||
# $1 - profile key
|
||||
# Returns:
|
||||
# 0 if requires XFCE, 1 otherwise
|
||||
profile_requires_xfce() {
|
||||
# 0 if requires KDE, 1 otherwise
|
||||
profile_requires_kde() {
|
||||
local profile_key="$1"
|
||||
local xfce_var="PROFILE_${profile_key}_XFCE"
|
||||
[ "${!xfce_var}" = "true" ]
|
||||
local kde_var="PROFILE_${profile_key}_KDE"
|
||||
[ "${!kde_var}" = "true" ]
|
||||
}
|
||||
|
||||
# Validate profile selection
|
||||
@@ -98,9 +98,9 @@ install_profile() {
|
||||
local packages
|
||||
local services
|
||||
|
||||
# Install XFCE if required
|
||||
if profile_requires_xfce "$profile_key"; then
|
||||
install_xfce "$username"
|
||||
# Install KDE if required
|
||||
if profile_requires_kde "$profile_key"; then
|
||||
install_kde "$username"
|
||||
prompt_install_graphics
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user