INK_OS
## Inkletblots Xmonad install scripts
### Version
> 2.0.0 - WIP
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.
NOTE! This is a very basic set of scripts, it has been tested to work but I have no guarantees that it'll work for you so use with caution please.
NOTE2! I use getnf (by ronnidroid) to install nerd font glyphs and nerd font fira code. This works a charm and I'm updating everything I use to respect it.
# Usage
Usage is:
setup \ -- to start system setup from option
setup \ only -- to only setup the specified option
Options (in order of execution):
yay : Install yay AUR helper
deps : Install the dependencies for my scripts and window manager
defaults : Install my chosen default programs
misc : Install my collection of misc - nice to have - programs
scripts : Install my scirpts
dmenu : Install my customised version of dmenu
dotfiles : Install my dotfiles to the system
configure : configure certain system files - BETA
Note: it is expected that the initial run of this script lets each stage complete successfully.
# Steps
1. install minimal arch with no extra programs (use archinstall script that comes with ISO)
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 then...
1. does a general system check
1. makes sure that there is an internet connection (user may have installed git in chroot and not setup network yet)
2. makes sure sudo is installed and user is part of sudo or wheel group
3. makes sure the user is not root
2. update and upgrade system fully
3. install yay specifically
4. install all required dependencies/programs
1. install system dependencies and all required dependencies for my xmonad config and my scripts (NOT INCLUDING: myStartupHook, myManagedHook or bitwarden)
2. ask user if they want to install my default programs (browser, shell, term, etc)
1. warn user that they will need to install their own if they don't
3. ask user if they want to install my misc programs (all the rest of my defaults that I like having)
5. install my scripts
1. copy inks-scrips to /usr/local/bin as it should be in path by default
6. install my dmenu
7. install my config
8. attempt to configure the main system programs so after a reboot the sysetm is usable
1. set shell to fish
2. configure lightdm and greeter
3. enable bluetooth
4. enable NetworkManager
5. warn user that if they didn't install default programs, they'll need to edit xmonad.hs
6. warn user about multilib and steam
7. ... more.
# MISC
To list all installed programs for updating `default-programs` use `yay -Qe | awk '{print $1}' > all-packages`.
I am using playerctl to add media key control, to get this working with jellyfinmeadiaplayer you will need to install `mpv-mpris-git` and link the `mpris.so` to the jellyfin scripts folder. The following was my command:
```
ln -s /usr/share/mpv/scripts/mpris.so /home/solomon/.local/share/jellyfinmediaplayer/scripts
```
# TODO
review xmonad.sh for default programs / dependencies
Need to work out gnome-keyring setup with pam, related to this is getting nextcloud to login without a login manager, I think it's a pam thing, I have got it working in the past.
installing zsh breaks the script, I have noted that it's not suggested but need something better.
figure out icons/font stuff, it's very frustrating.