├── HADRIAN.sh ├── README.md ├── Screenshots ├── configuration stage.png ├── default applications.png └── installation stage.png └── Stages ├── configuration ├── 1.sh ├── 2.sh ├── 3.sh ├── 4.sh ├── 5.sh └── CONFIGURATION.sh └── installation ├── 1.sh ├── 2.sh ├── 3.sh ├── 4.sh ├── 5.sh ├── 6.sh ├── 7.sh ├── 8.sh └── INSTALLATION.sh /HADRIAN.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | dialog \ 4 | --stdout \ 5 | --backtitle "HADRIAN: About" \ 6 | --title "About" \ 7 | --msgbox "HADRIAN is a collection of bash scripts that conveniently installs the Pantheon desktop environment in Arch Linux.\n\nThe Pantheon package group is currently experiencing continuous changes as it is transitioning to being distro-agnostic.\n\nIf something changed and broke the script, please open an issue at GitHub!" 14 60 8 | 9 | while true; do 10 | 11 | choice=$(\ 12 | dialog \ 13 | --clear \ 14 | --stdout \ 15 | --backtitle "HADRIAN: Main Menu" \ 16 | --title "Select Stage" \ 17 | --cancel-label "Exit" \ 18 | --menu "Use UP/DOWN arrows to navigate." 9 40 5 \ 19 | 1 "Installation" \ 20 | 2 "Configuration" \ 21 | ) 22 | 23 | case $choice in 24 | 1) 25 | sh Stages/installation/INSTALLATION.sh 26 | continue 27 | ;; 28 | 2) 29 | sh Stages/configuration/CONFIGURATION.sh 30 | continue 31 | ;; 32 | *) 33 | exit 34 | ;; 35 | esac 36 | done -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](https://github.com/furesuka/HADRIAN/blob/128e5e9e8103f40dea1b91c536f6b1f40c8df623/Screenshots/installation%20stage.png) 2 | 3 | **HADRIAN** is a collection of scripts that conveniently installs the *Pantheon desktop environment* in Arch Linux. 4 | 5 | When installing Pantheon, deciding which packages you want or do not want and troubleshooting the issues that come after it is a lot of work. This script provides easy installation of packages you only need, fixes for common problems, and optional tweaks to make it as close as the default setup found in *elementary OS*. 6 | 7 | It is recommended to use this script on a fresh installation of Arch Linux. Some packages and options in the configuration stage will mess up other desktop environments' configuration like GNOME. 8 | 9 | # Installation 10 | 11 | HADRIAN requires the `dialog` package to display the terminal user interface. 12 | 13 | ``` 14 | sudo pacman -Sy && sudo pacman -S dialog 15 | ``` 16 | 17 | Clone the HADRIAN repository and run the script: 18 | 19 | ``` 20 | git clone https://github.com/furesuka/HADRIAN.git 21 | cd HADRIAN && sh HADRIAN.sh 22 | ``` 23 | -------------------------------------------------------------------------------- /Screenshots/configuration stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shnflrsc/HADRIAN/314a1d4d3a45d73ed2f7e4071ad663c498a9fe87/Screenshots/configuration stage.png -------------------------------------------------------------------------------- /Screenshots/default applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shnflrsc/HADRIAN/314a1d4d3a45d73ed2f7e4071ad663c498a9fe87/Screenshots/default applications.png -------------------------------------------------------------------------------- /Screenshots/installation stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shnflrsc/HADRIAN/314a1d4d3a45d73ed2f7e4071ad663c498a9fe87/Screenshots/installation stage.png -------------------------------------------------------------------------------- /Stages/configuration/1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | clear 4 | sudo echo "[Desktop Entry] 5 | Name=Plank 6 | Comment=Stupidly simple. 7 | Exec=plank 8 | Icon=plank 9 | Terminal=false 10 | Type=Application 11 | Categories=Utility; 12 | NoDisplay=true 13 | X-GNOME-Autostart-Notify=false 14 | X-GNOME-AutoRestart=true 15 | X-GNOME-Autostart-enabled=true 16 | X-GNOME-Autostart-Phase=Panel 17 | OnlyShowIn=Pantheon; 18 | " > plank.desktop 19 | 20 | sudo mv plank.desktop /etc/xdg/autostart/ 21 | 22 | echo 23 | read -p "Autostart Plank - Done!" 24 | -------------------------------------------------------------------------------- /Stages/configuration/2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | clear 4 | sudo pacman -S inter-font ttf-opensans ttf-roboto-mono --noconfirm 5 | gsettings set org.gnome.desktop.interface font-name 'Inter 9' 6 | gsettings set org.gnome.desktop.interface document-font-name 'Open Sans 10' 7 | gsettings set org.gnome.desktop.interface monospace-font-name 'Roboto Mono 10' 8 | 9 | echo 10 | read -p "Fix Default Fonts - Done!" 11 | -------------------------------------------------------------------------------- /Stages/configuration/3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | clear 4 | gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/odin.jpg 5 | 6 | echo 7 | read -p "Set Default Background - Done!" -------------------------------------------------------------------------------- /Stages/configuration/4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | clear 4 | sudo sed -i -e '$aHidden=true' /usr/share/applications/bvnc.desktop 5 | sudo sed -i -e '$aHidden=true' /usr/share/applications/bssh.desktop 6 | sudo sed -i -e '$aHidden=true' /usr/share/applications/avahi-discover.desktop 7 | sudo sed -i -e '$aHidden=true' /usr/share/applications/qv4l2.desktop 8 | sudo sed -i -e '$aHidden=true' /usr/share/applications/qvidcap.desktop 9 | sudo sed -i -e '$aHidden=true' /usr/share/applications/gda-browser-5.0.desktop 10 | sudo sed -i -e '$aHidden=true' /usr/share/applications/gda-control-center-5.0.desktop 11 | sudo sed -i -e '$aHidden=true' /usr/share/applications/plank.desktop 12 | 13 | echo 14 | read -p "Hide Originally Hidden Applications - Done!" 15 | -------------------------------------------------------------------------------- /Stages/configuration/5.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | clear 4 | sudo sed -i '102i\greeter-session=io.elementary.greeter' /etc/lightdm/lightdm.conf 5 | sudo systemctl enable lightdm 6 | 7 | echo 8 | read -p "Set LightDM Greeter - Done!" -------------------------------------------------------------------------------- /Stages/configuration/CONFIGURATION.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Configuration" \ 10 | --title "Select Configuration" \ 11 | --cancel-label "Back" \ 12 | --menu "Use UP/DOWN keys to navigate." 13 60 6 \ 13 | 1 "Autostart Plank" \ 14 | 2 "Fix Default Fonts" \ 15 | 3 "Set Default Background" \ 16 | 4 "Hide Originally Hidden Applications" \ 17 | 5 "Enable LightDM Pantheon Greeter" 18 | ) 19 | 20 | case $choice in 21 | 1) 22 | sh Stages/configuration/1.sh 23 | ;; 24 | 2) 25 | sh Stages/configuration/2.sh 26 | ;; 27 | 3) 28 | sh Stages/configuration/3.sh 29 | ;; 30 | 4) 31 | sh Stages/configuration/4.sh 32 | ;; 33 | 5) 34 | sh Stages/configuration/5.sh 35 | ;; 36 | *) 37 | exit 38 | ;; 39 | esac 40 | 41 | done 42 | -------------------------------------------------------------------------------- /Stages/installation/1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 11 70 7 \ 12 | xorg-server "Xorg X server" off \ 13 | lightdm "A lightweight display manager" off \ 14 | lightdm-pantheon-greeter "Pantheon greeter for LightDM" off 15 | ) 16 | 17 | case $choice in 18 | "") 19 | break 20 | ;; 21 | esac 22 | 23 | clear 24 | sudo pacman -S $choice --noconfirm 25 | 26 | echo 27 | read -p "Essentials - Done!" 28 | break 29 | done 30 | -------------------------------------------------------------------------------- /Stages/installation/2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 14 70 7 \ 12 | gala "The Pantheon Window Manager" on \ 13 | plank "Elegant, simple, clean dock" on \ 14 | wingpanel "The Pantheon Top Panel" on \ 15 | pantheon-applications-menu "The Pantheon Application Menu" on \ 16 | pantheon-notifications "Gtk Notifications Server" on \ 17 | pantheon-terminal "The Pantheon Terminal Emulator" on \ 18 | switchboard "The Pantheon Control Center" on 19 | ) 20 | 21 | case $choice in 22 | "") 23 | break 24 | ;; 25 | esac 26 | 27 | clear 28 | sudo pacman -S $choice --noconfirm 29 | 30 | echo 31 | read -p "Pantheon Base - Done!" 32 | break 33 | done -------------------------------------------------------------------------------- /Stages/installation/3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 18 85 11 \ 12 | wingpanel-indicator-a11y "Wingpanel Universal Access Indicator" off \ 13 | wingpanel-indicator-bluetooth "Wingpanel Bluetooth Indicator" off \ 14 | wingpanel-indicator-datetime "Date & Time indicator for Wingpanel" off \ 15 | wingpanel-indicator-keyboard "Wingpanel Keyboard Indicator" off \ 16 | wingpanel-indicator-network "Wingpanel Network Indicator" off \ 17 | wingpanel-indicator-nightlight "Winganel Nightlight Indicator" off \ 18 | wingpanel-indicator-notifications "Notifications indicator for Wingpanel" off \ 19 | wingpanel-indicator-power "Wingpanel Power Indicator" off \ 20 | wingpanel-indicator-session "Session indicator for Wingpanel" off \ 21 | wingpanel-indicator-sound "Wingpanel Sound Indicator" off 22 | ) 23 | 24 | case $choice in 25 | "") 26 | break 27 | ;; 28 | esac 29 | 30 | clear 31 | sudo pacman -S $choice --noconfirm 32 | 33 | echo 34 | read -p "Wingpanel Indicators - Done!" 35 | break 36 | done -------------------------------------------------------------------------------- /Stages/installation/4.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 29 90 22 \ 12 | switchboard-plug-a11y "Switchboard Universal Access Plug" on \ 13 | switchboard-plug-about "Switchboard About Plug" off \ 14 | switchboard-plug-applications "Switchboard Applications Plug" off \ 15 | switchboard-plug-bluetooth "Switchboard Bluetooth Plug" off \ 16 | switchboard-plug-datetime "Switchboard Date & Time Plug" on \ 17 | switchboard-plug-desktop "Switchboard Desktop Plug" on \ 18 | switchboard-plug-display "Switchboard Display Plug" on \ 19 | switchboard-plug-keyboard "Switchboard Keyboard Plug" on \ 20 | switchboard-plug-locale "Switchboard Locale Plug" on \ 21 | switchboard-plug-mouse-touchpad "Switchboard Mouse & Touchpad Plug" on \ 22 | switchboard-plug-network "Switchboard Network Plug" on \ 23 | switchboard-plug-notifications "Switchboard Notifications Plug" on \ 24 | switchboard-plug-online-accounts "Switchboard Online Accounts Plug" off \ 25 | switchboard-plug-parental-controls "Switchboard Parental Controls Plug" off \ 26 | switchboard-plug-power "Switchboard Power Plug" on \ 27 | switchboard-plug-printers "Switchboard Printers Plug" off \ 28 | switchboard-plug-security-privacy "Switchboard Security & Privacy Plug" on \ 29 | switchboard-plug-sharing "Switchboard Sharing Plug" off \ 30 | switchboard-plug-sound "Switchboard Sound Plug" on \ 31 | switchboard-plug-user-accounts "Switchboard User Accounts Plug" on \ 32 | switchboard-plug-wacom "Switchboard wacom Plug" off 33 | ) 34 | 35 | case $choice in 36 | "") 37 | break 38 | ;; 39 | esac 40 | 41 | clear 42 | sudo pacman -S $choice --noconfirm 43 | 44 | echo 45 | read -p "Switchboard Plugs - Done!" 46 | break 47 | done -------------------------------------------------------------------------------- /Stages/installation/5.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 19 70 12 \ 12 | pantheon-calculator "The Pantheon Calculator" off \ 13 | pantheon-calendar "The Pantheon Calendar" off \ 14 | pantheon-camera "The Pantheon Camera Application" off \ 15 | pantheon-code "The Pantheon Text Editor" off \ 16 | pantheon-files "The Pantheon File Browser" off \ 17 | pantheon-mail "Mail app designed for elementary OS" off \ 18 | pantheon-music "The Pantheon Music Player" off \ 19 | pantheon-photos "The Pantheon Photos Manager" off \ 20 | pantheon-screenshot "The Pantheon Screenshot Tool" off \ 21 | pantheon-tasks "The Pantheon tasks" off \ 22 | pantheon-videos "The Pantheon Video Player" off 23 | ) 24 | 25 | case $choice in 26 | "") 27 | break 28 | ;; 29 | esac 30 | 31 | clear 32 | sudo pacman -S $choice --noconfirm 33 | 34 | echo 35 | read -p "Default Applications - Done!" 36 | break 37 | done 38 | -------------------------------------------------------------------------------- /Stages/installation/6.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 15 80 8 \ 12 | elementary-icon-theme "Named, vector icons for elementary OS" off \ 13 | elementary-wallpapers "Collection of wallpapers for elementary OS" off \ 14 | gtk-theme-elementary "elementary GTK theme" off \ 15 | pantheon-default-settings "Default settings for Pantheon" off \ 16 | pantheon-session "Session settings for Pantheon" off \ 17 | pantheon-settings-daemon "Default settings for Pantheon (daemon)" off \ 18 | sound-theme-elementary "A bespoke sound for your theme" off 19 | ) 20 | 21 | case $choice in 22 | "") 23 | break 24 | ;; 25 | esac 26 | 27 | clear 28 | sudo pacman -S $choice --noconfirm 29 | 30 | echo 31 | read -p "Themes & Settings - Done!" 32 | break 33 | done 34 | -------------------------------------------------------------------------------- /Stages/installation/7.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | dialog \ 6 | --clear \ 7 | --stdout \ 8 | --backtitle "HADRIAN: Installation" \ 9 | --title "Confirmation" \ 10 | --yesno "The base-devel package group is required to install switchboard-plug-pantheon-tweaks from the AUR.\n\nContinue?" 8 55 11 | 12 | choice=$? 13 | 14 | case $choice in 15 | 0) 16 | break 17 | ;; 18 | 1) 19 | exit 20 | ;; 21 | *) 22 | continue 23 | ;; 24 | esac 25 | done 26 | 27 | clear 28 | sudo pacman -S base-devel --noconfirm 29 | git clone https://aur.archlinux.org/switchboard-plug-pantheon-tweaks-git.git 30 | (cd switchboard-plug-pantheon-tweaks-git && makepkg -si) 31 | 32 | echo 33 | read -p "Pantheon Tweaks - Done!" -------------------------------------------------------------------------------- /Stages/installation/8.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Choose Packages" \ 11 | --checklist "Use SPACE to toggle on/off." 17 80 10 \ 12 | capnet-assist "Captive Portal Assistant" off \ 13 | cerbere "The Pantheon Watchdog" off \ 14 | contractor "A desktop-wide extension service" off \ 15 | granite "Library that extends Gtk+" off \ 16 | pantheon-geoclue2-agent "Pantheon Geoclue2 Agent" off \ 17 | pantheon-onboarding "Onboarding app for new users" off \ 18 | pantheon-polkit-agent "Pantheon Polkit Agent" off \ 19 | pantheon-shortcut-overlay "A native, OS-wide shortcut overlay" off \ 20 | pantheon-sideload "Sideload Flatpaks on elementary OS" off 21 | ) 22 | 23 | case $choice in 24 | "") 25 | break 26 | ;; 27 | esac 28 | 29 | clear 30 | sudo pacman -S $choice --noconfirm 31 | 32 | echo 33 | read -p "Miscellaneous - Done!" 34 | break 35 | done -------------------------------------------------------------------------------- /Stages/installation/INSTALLATION.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | while true; do 4 | 5 | choice=$(\ 6 | dialog \ 7 | --clear \ 8 | --stdout \ 9 | --backtitle "HADRIAN: Installation" \ 10 | --title "Installation" \ 11 | --cancel-label "Back" \ 12 | --menu "Use UP/DOWN arrows to navigate." 10 50 3 \ 13 | 1 "Sync & Update Pacman" \ 14 | 2 "Continue" \ 15 | ) 16 | 17 | case $choice in 18 | 1) 19 | clear 20 | sudo pacman -Syu --noconfirm 21 | 22 | echo 23 | read -p "Pacman Sync & Update - Done!" 24 | continue 25 | ;; 26 | 2) 27 | break 28 | ;; 29 | *) 30 | exit 31 | ;; 32 | esac 33 | done 34 | 35 | while true; do 36 | 37 | choice=$(\ 38 | dialog \ 39 | --clear \ 40 | --stdout \ 41 | --backtitle "HADRIAN: Installation" \ 42 | --title "Select Package Group to install" \ 43 | --cancel-label "Back" \ 44 | --menu "Use UP/DOWN arrows to navigate." 15 50 8 \ 45 | 1 "Essentials" \ 46 | 2 "Pantheon Base" \ 47 | 3 "Wingpanel Indicators" \ 48 | 4 "Switchboard Plugs" \ 49 | 5 "Default Applications" \ 50 | 6 "Themes & Settings" \ 51 | 7 "Pantheon Tweaks" \ 52 | 8 "Miscellaneous" 53 | ) 54 | 55 | case $choice in 56 | 1) 57 | sh Stages/installation/1.sh 58 | ;; 59 | 2) 60 | sh Stages/installation/2.sh 61 | ;; 62 | 3) 63 | sh Stages/installation/3.sh 64 | ;; 65 | 4) 66 | sh Stages/installation/4.sh 67 | ;; 68 | 5) 69 | sh Stages/installation/5.sh 70 | ;; 71 | 6) 72 | sh Stages/installation/6.sh 73 | ;; 74 | 7) 75 | sh Stages/installation/7.sh 76 | ;; 77 | 8) 78 | sh Stages/installation/8.sh 79 | ;; 80 | *) 81 | exit 82 | ;; 83 | esac 84 | done --------------------------------------------------------------------------------