monakhos/README.md

182 lines
3 KiB
Markdown
Raw Normal View History

2024-05-26 20:17:13 +00:00
# MonakhOS: My general workstation environment
Code name given on 2024-05-16 : "MonakhOS"
Architecture:
- Sway
- A single `venv` in dots containing all utilities and libs
## Ansible
https://github.com/id101010/ansible-archlinux
## Getting started with a VM (qemu)
Cd in `sandbox_vms/vm1`
Create the QCow base image.
../../ansible/run_ansible_playbook.sh base.img
Run the image, use remmina to install with archinstall.
With Archinstall add:
- desktop profile
- sway
- ly greeter
- networkmanager
Create snapshot to be able to quickly restart the ansible script with a clean image
qemu-img create -f qcow2 -b base.img -F qcow2 after_arch_install.img
qemu-img create -f qcow2 -b after_arch_install.img -F qcow2 after_ssh_init.img
qemu-img create -f qcow2 -b after_ssh_init.img -F qcow2 ready_for_ansible.img
## Steps to install
- find a new name for the device eg. blackjack
- connect to wifi
- enable ssh server to access it from the exterior
- generate ssh key
- add sshkey to forge.lefuturiste.fr
### Generate a unprotected default ssh key
```
ssh-keygen -t ed25519 -C "mbess@blackjack"
```
no passphrase
> ECDSA-SK, Ed25519 and Ed25519-SK keys have a fixed length and the -b flag will be ignored.
### Configure ~/.ssh/config
```
# set as default
IdentityFile ~/.ssh/unprotected_ed25519
Host *
ServerAliveInterval 40
Host forge.lefuturiste.fr
user git
IdentitiesOnly yes
IdentityFile ~/.ssh/unprotected_ed25519
Host aur.archlinux.org
IdentityFile ~/.ssh/id_aur
User aur
```
### Clone dots
```
cd ~
git clone git@forge.lefuturiste.fr:mbess/dots .dots
```
```
cd ~/.dots
python3 -m venv venv
pip install -r requirements.txt
# create symbolic link to access dots
ln -s ~/.dots ~/dots
```
### install yay
```
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
```
### configure Zsh
https://wiki.archlinux.org/title/Zsh
### configure xremap
sudo systemctl daemon-reload
sudo systemctl enable --now xremap
### Import and configure GPG keys
### Configure unix password manager
using `extra/gopass`
### Setup symbolic links to configs files
run the script `setup_dot.sh`
## Shell
### Fish
#### install fisher
https://github.com/jorgebucaran/fisher
use `fisher package`
#### fzf fish
https://github.com/PatrickF1/fzf.fish
require fd and bat
#### lfcd
https://github.com/gokcehan/lf/blob/master/etc/lfcd.fish
### Zsh
https://yewtu.be/watch?v=ud7YxC33Z3w
https://github.com/jeffreytse/zsh-vi-mode
How to handle different profiles
## Pacman packages
defined in dots file
arch_packages.yaml
## Sway
### swayidle
https://stackoverflow.com/questions/68694093/how-to-prevent-swayidle-from-execution-while-watching-a-film
## Greeter
Ly is a TUI greeter, it will show a terminal based login prompt
https://github.com/fairyglade/ly
## ansible
### auto run archinstall with ansible
- question: how to overwrite the drive config and set it to auto ?
https://archinstall.archlinux.page/
## Pistes
https://github.com/kewlfft/ansible-aur