Files
coredesktop/README.md
2026-04-29 07:24:45 -06:00

121 lines
7.6 KiB
Markdown

# Federated CoreDesktop according to Duggins
## Introduction
This is simply some scripts to take an install of Arch Linux and the Gnome desktop environment and add some Gnome extensions so that you get a great tiling environment that can be 100% controlled from the keyboard. But, with Gnome, you get a nice mouse-capable desktop, too.
Additionally, we install a lot of useful software mostly for work at Federated Computer. You may want to suggest some missing titles or services. Please do! Or send in a PR.
These scripts are based on the work of Typecraft.
I dedicate this humble effort to Bero of Switzerland. I know he would want this to exist.
## Installing Arch
1) Download the ISO for Arch from [this link](https://archlinux.org/download/). You may need to scroll down to find the download links.
2) Write the ISO file to a USB stick.
3) Boot from the Arch ISO USB stick. When the ISO has booted, type `archinstall` to get to the simple installer.
4) You will go through the different options. Mostly choose the defaults.
5) Video cards: IF YOU HAVE AN NVIDIA GPU, CHOOSE THE PROPRIETARY NVIDIA OPTION. Choose the AMD option for AMD cards. Just works better.
6) For sound, "pipewire" is strongly recommended for the sound system choice during install. This is known to work really well with Jitsi, Element, and the other Federated Core SaaS applications. This may no longer be required in the newest installations of Arch Linux.
7) Reboot the system and log in. You should have a working Arch system at this point but without the Coredesktop configurations.
## (A Note About Networking in Arch)
You'll need a connection to the internet to successfully install Arch.
If you have a wired connection, then your network should "just work" and you can use that to configure your Arch network installation. But if you do not have a wired connection and you have a wifi chip installed in your computer, before installing Arch you'll want to set up the wifi network. You can do that using the too `iwctl`.
Type `iwctl` and that will put you into the utility `iwd`.
To list the wireless adapters type: `device list`. If your wireless device is "wlan0" (for example) you next type: `station wlan0 scan` to put the wireless chip into scan mode then `station wlan0 get-networks` to find the wireless networks available. The join your wireless network with the command `station wlan0 connect SSID` where SSID is the wireless network name. You can test your network with a ping to some server, etc.
When you have the wireless network working, then you can proceed to install Arch.
## Installing Federated CoreDesktop
1) Open the "Web" browser then navigate to https://gitea.federated.computer and click "Explore" and "CoreDesktop". Scroll down and you'll find the command to enter to kick off installation.
2) Open a terminal, then enter the following command (you copied it from Gitea in step #1):
```
wget -qO- https://gitea.federated.computer/david/coredesktop/raw/branch/main/install.sh | bash
```
3) You'll have to enter your password a couple times and click to install a gnome extension. Be patient. When the installation finishes, reboot (command: 'sudo reboot now') so that Element can find the encryption keychain.
4) If something fails, just run the script again. The typical fails are not entering the password in time, or failing to click on a Gnome extension dialog. Just re-run the script and tt will get through everything. :) You'll know you're done when the script asks you to reboot your machine.
## Notes about what is installed
You will end up with a Gnome system with a three-tile set up (great for widescreens). If you want to change the tiling, the icon in the top right of your screen allows you to change your tiling setup however you want. Using the super key (windows key or equivalent) plus the arrow keys, you can move windows around the screen.
The scripts are installed in ~/.local/share/coredesktop/
The scripts install lots of useful software. There are (4) main ways software is installed: pacman, AUR, Flathub, and mise.
### Pacman
Pacman installs software from the "packages.conf" file. It installs software such as nice versions of neovim, tmux, VS Codium (VS Code without the M$ surveillance), Go, etc. Tell me if you want other tools or submit a pull request.
### AUR
Yay is installed as is the way AUR packages are installed and maintained. Examples include the Helium Browser and Winboat.
### Flathub
The file "install-flatpaks.sh" file for Flatpaks.
Flatpaks installed: Chrome, Chromium, Firefox, Brave, Zen, Vivaldi, Warehouse (manage Flatpaks), Embellish (manage fonts), Revolt (Discord clone), Impression (burn ISOs to usb sticks), Logseq (note taking), Apostrophe (markdown writer), Signal (messaging), Thunderbird (email), Trayscale (tailnet), VS Code (IDE), Telegram (messaging), LibbreOffice, Extension Manager (for Gnome extensions), Nextcloud client, Kdenlive (video editing), OBS (video recording), Discord (messaging), Spotify (music), VLC (video watching), Obsidian (note taking), qBittorent, Bitwarden desktop, Inkscape (postscript editor), Zoom, Audacity (audio editing), Remmina (remote desktop), Postman, Alpaca (work with AI), DBeaver (database client), Jellyfin Media (client), Zen (interesting browser project), Localsend (send stuff to other devices easily), Boxes (virtual machines) and much else.
If you want to install more software from Flathub, simple visit https://flathub.org.
### Mise
Ruby and Rails are installed using Mise from the file "install-mise-ruby-rails.sh".
### Development Tools
Lots of development tools including neovim, tmux, go, hugo, python, rust, rails, ruby, docker and docker compose, etc. Three terminals: console, kitty, ghostty.
### Printing and Networking
The printing service (cups) is turned on. This may need more work to "just work" with other "coredesktop" machines.
mDNS is installed and enabled so the your can find and SSH to your machine on your LAN using {machinename}.local.
## Keep your System Up-to-date
From time-to-time, you'll want to update your system. Hopefully you'll do this more than once-a-month.
To update the system type into the terminal:
```
coreupdate
```
The script does three things. It runs 'flatpak update' to update your Flatpak apps, it runs 'gem update' to update your Rails environment, and it runs 'sudo pacman -Syu' to update your Arch and Gnome installation.
It is a good idea to reboot after an update especially if you see you have a new Linux kernel installed (and that happens frequently enough for Arch).
Note: sometimes, for whatever reason, the update barfs. Take a look at [https://archlinux.org](https://archlinux.org) in the "Latest News" section for fixes.
### Refresh your system
If you want to pull down "new" additions to Coredesktop, run in the terminal:
```
corerefresh
```
This will download the latest repo and run through the original installation script adding any "new" applications or services. You should run "coreupdate" after running "corerefresh".
## mDNS Networking
If you want to use mDNS networking on your LAN (the ability to log in to other local machines using the format "machine.local"), then you should replace /etc/nsswitch.conf with the one in this repository and add /etc/mdns.allow. These two files are formatted to avoid any conflicts with systemd-resolved that may cause nss-mdns not to work. See: https://wiki.archlinux.org/title/Avahi#Hostname_resolution (section 4.2) for more information.
## Bonus
Bonus: here's a [nice song to listen to while you're installing](https://music.youtube.com/watch?v=y-5o2f9wzmw&si=_z9kcKHRwj-KTs7w).