Initial commit

This commit is contained in:
Solomon Laing 2021-08-25 14:15:01 +09:30
commit 0ea46c6a00
4 changed files with 271 additions and 0 deletions

43
README.md Normal file
View File

@ -0,0 +1,43 @@
# INK_OS
## Inkletblots Xmonad install scripts
### Version
> 1.0.0 - current
This project is an effort to create a easy to use system to install a fresh version of my desktop environment (Xmonad on Arch). The idea is that this system can be used on a fresh install of Arch and will get everything that I currently use setup and ready in a safe manner.
# TODO
I want this to be able to be used on a fresh arch install with 0 dependencies, so, I will need to make sure that the user has set up internet, or that an existing connection exists.
I also need to make sure that all required programs are then sucessfully installed, and that some configs are written.
Ill need to do this for lightdm and lightdm webkit3 greeter currently.
# Steps
I currently envision the following steps being used:
1. install minimal arch with no extra programs
2. access tty manually install git and clone https://gitlab.inkletblot.com/inkletblot/ink-os.git
3. cd into ink-os
4. run setup.sh
setup.sh will then...
1. do a general system check
1. make sure that there is an internet connection (user may have installed git in chroot and not setup network yet)
2. make sure sudo is installed and user is part of sudo or wheel group
3. request user for their password, put it in temp file (I can't think of a better way of doing this yet)
4. make sure multilib in enabled
5. update and upgrade system fully
2. install yay specifically
2. install all required dependencies/programs
3. install my scripts
4. install my config

104
default-programs Normal file
View File

@ -0,0 +1,104 @@
REQUIRED_START
yad
scrot
pulseaudio-bluetooth
bluez-utils
sshfs
REQUIRED_END
freetube
git-flow-completion-git
plexamp-appimage
shotwell
fish
evince
dunst-git
slock
notify-send
bitwarden-cli
jq
xmonad
xmonad-contrib
firefox
surf
xmobar
picom-jonaburg-git
nitrogen
xclip
numlockx
zenity
pavucontrol
pulseaudio
nfs-utils
newsboat
blueman
networkmanager
network-manager-applet
guake
xorg
xorg-xinit
mpv
youtube-dl
backlight-control
rofi
thunar
alacritty
wget
volumeicon
unzip
ttf-fira-code
trayer
python
nodejs
npm
nvm
openssh
numlockx
mosh
jre-openjdk
jre-openjdk-headless
htop
gnome-keyring
git-flow
evince
dosfstools
grub2
curl
colorpicker-ym1234-git
cmus
cifs-utils
bluez
ansible
android-sdk-platform-tools
lxappearance
qt5ct
visual-studio-code-bin
runelite
slack-desktop
nextcloud-client
barrier
todoist-elecrton
vlc
virtualbox
virt-manager
virsh
discord
kdeconnect
telegram-desktop
teams
qbittorrent
lxsession
xdotool
xterm
backlight-control
lightdm
lightdm-webkit-theme-litarvan
flameshot

87
install-dependencies Executable file
View File

@ -0,0 +1,87 @@
#!/bin/sh
# check user is happy to run this script
echo "This script is going to install all of the programs listed in /home/<user>/default-programs and their dependencies. As such it will ask for root privilages."
read -r -p "Are you sure you want to continue? [y/N] " input
case $input in
[yY][eE][sS] | [yY])
echo "The program will continue..."
;;
[nN][oO] | [nN])
exit 0
;;
*)
echo "Invalid input..."
exit 1
;;
esac
# if yay is not installed the run the install script
if ! command -v yay &> /dev/null; then
./install-yay
fi
# check with the user they are happy to update, exit if not though.
echo "The system needs to be updated before this installation can happen. The upgrades will be applied without any user oversight which may be dangerous for out of date systems."
read -r -p "Are you sure you want to continue? [y/N] " input
case $input in
[yY][eE][sS] | [yY])
# Make sure everything is up to date
echo "Making sure everything is up to date..."
yay -Syyu --noconfirm
;;
[nN][oO] | [nN])
exit 0
;;
*)
echo "Invalid input..."
exit 1
;;
esac
# run though each default program and install it if it's not already installed
# note that yay, git, steam, dmenu-inkletblot, ly and nvidia related programs are not included
default_programs="/default-programs"
dependencies=$(cat $HOME/$default_programs)
for dependency in $dependencies
do
if ! command -v $dependency &> /dev/null; then
echo "Installing $dependency and it's dependencies..."
yay -S --noconfirm $dependency
fi
done
# ask the user if they want to install nvidia dependencies, do it or skip
if ! command -v yay &> /dev/null && ! command -v yay &> /dev/null && ! command -v yay &> /dev/null; then
echo "My computer requires nvidia, as such I install the required drivers and programs"
read -r -p "Are you sure you want to install? [y/N] " input
case $input in
[yY][eE][sS] | [yY])
echo "Nvidia is being installed..."
yay -S nvidia nvidia-settings nvidia-prime --noconfirm
;;
[nN][oO] | [nN])
echo "Nvidia installation has been skipped. Programs: nvidia, nvidia-settings, nvidia-prime"
;;
*)
echo "Nvidia installation has been skipped. Programs: nvidia, nvidia-settings, nvidia-prime"
;;
esac
fi
# notify about steam issue (multilib)
echo "There are a few programs that can't be automatically installed. The main one of these is Steam which requires multilib to be enabled. Instructions for this can be found at: https://wiki.archlinux.org/index.php/Official_repositories#Enabling_multilib Once this is done steam can be installed."
read -r -p "Press [ENTER] to continue.."
# notify about ly and dmenu-inkletblot scripts
echo "I use two programs that are installed from git directly: ly and dmenu-inkletblot."
echo "I do not have install scripts for both of these. They have dependencies I can't guarantee are installed."
read -r -p "Press [ENTER] to continue.."
# notify user that there may be extra steps to finish install
echo "This script has installed all of my default programs however it may not have configure many things. My dotfiles may cover some of these but things such as gnome-keyring (using the pam method) will need to be implemented. As well as setting up nvidia and xorg. There are likely more that I have forgotton as well."
read -r -p "Press [ENTER] to complete.."
# need scripts for these
# dmenu-inkletblot
# ly

37
install-yay Executable file
View File

@ -0,0 +1,37 @@
#!/bin/sh
# if command -v yay &> /dev/null; then
# echo "yay is already installed."
# exit 0;
# fi
echo "This script is going to install yay and it's dependencies. As such it will ask for root privilages."
read -r -p "Are You Sure? [y/N] " input
case $input in
[yY][eE][sS] | [yY])
echo "The program will continue..."
;;
[nN][oO] | [nN])
exit 0
;;
*)
echo "Invalid input..."
exit 1
;;
esac
if ! command -v git &> /dev/null; then
sudo pacman -Sy --noconfirm git
fi
if ! command -v fakeroot &> /dev/null; then
sudo pacman -Sy --noconfirm base-devel
fi
cd /opt
sudo git clone https://aur.archlinux.org/yay.git
sudo chown -R $USER:users ./yay
cd yay
makepkg -si