Initial commit
This commit is contained in:
commit
0ea46c6a00
43
README.md
Normal file
43
README.md
Normal 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
104
default-programs
Normal 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
87
install-dependencies
Executable 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
37
install-yay
Executable 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
|
||||||
Loading…
Reference in New Issue
Block a user