updates to the content

This commit is contained in:
2026-10-31 08:34:17 -06:00
parent 70f41725a8
commit a27cc6ff5e
13 changed files with 158 additions and 33 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
---
title: "Software"
description: "What Federated CoreDesktop installs: pacman packages, AUR packages, 48 Flatpaks, Ruby and Rails with mise, and a full set of development tools."
description: "What Federated CoreDesktop installs: pacman packages, AUR packages, 43 Flatpaks, a full set of development tools, and mise for any other language."
sections:
- type: hero
compact: true
@@ -25,8 +25,8 @@ sections:
rows:
- ["pacman", "[Arch's own packages](https://archlinux.org/packages/): neovim, tmux, Go, Rust, Docker, Tailscale, Element, LibreOffice and more, plus Federated Computer's own packages, such as [Federated Calendar](/software/federated-calendar/), from its `[federated]` repository", "[packages.conf](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/packages.conf)"]
- ["AUR", "Community packages, built and kept up to date with yay: Helium Browser, Winboat and more", "[packages.conf](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/packages.conf)"]
- ["Flathub", "48 desktop apps in their own sandboxes", "[install-flatpaks.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/install-flatpaks.sh)"]
- ["mise", "Ruby and Rails", "[install-mise-ruby-rails.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/install-mise-ruby-rails.sh)"]
- ["Flathub", "43 desktop apps in their own sandboxes", "[install-flatpaks.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/install-flatpaks.sh)"]
- ["mise", "Only the languages you choose with `configure languages`, such as Ruby on Rails, Java or Deno", "[40-languages.sh](https://gitea.federated.computer/Federated_Computer/coredesktop/src/branch/main/configure.d/40-languages.sh)"]
- type: catalog
id: catalog
+1 -1
View File
@@ -27,6 +27,6 @@ The desktop app can also store SSH keys and act as an SSH agent, so `ssh` and `g
## On CoreDesktop
CoreDesktop installs the Bitwarden desktop app from pacman. Open it from the app menu, or run `bitwarden-desktop`. Install and every `update` make sure your `~/.bashrc` has a line that points `SSH_AUTH_SOCK` at `~/.bitwarden-ssh-agent.sock`, so once you turn on the SSH agent in Bitwarden's settings, your terminal uses the keys in your vault.
CoreDesktop installs the Bitwarden desktop app from pacman. Open it from the app menu, or run `bitwarden-desktop`. Install and every `update` make sure your `~/.bashrc` has a line that points `SSH_AUTH_SOCK` at `~/.bitwarden-ssh-agent.sock` while Bitwarden is running its SSH agent, and leaves it on GNOME's agent otherwise. So once you turn on the SSH agent in Bitwarden's settings, terminals opened after Bitwarden starts use the keys in your vault; a terminal opened before then uses GNOME's agent, so open a new one.
When you set up [backups](/utilities/#configure), save the passphrase in Bitwarden. The [AI sandbox](/ai-sandbox/) keeps agents out of `~/.config/Bitwarden`. `update` keeps Bitwarden current with the rest of the Arch packages.
+16 -6
View File
@@ -1,8 +1,9 @@
---
title: "mise"
category: "Languages and runtimes"
tagline: "Installs and switches versions of Ruby, Node, Python and other tools, per project."
source: "installer"
tagline: "Installs the languages CoreDesktop doesn't, and the version each project needs."
source: "pacman"
package: "mise"
command: "mise"
website: "https://mise.jdx.dev/"
code: "https://github.com/jdx/mise"
@@ -10,18 +11,27 @@ code: "https://github.com/jdx/mise"
## What it is
mise is a version manager for programming languages and developer tools. It installs as many versions of Ruby, Node.js, Python, Go and hundreds of other tools as you need, and switches between them automatically as you move between projects, based on a `mise.toml` (or an asdf `.tool-versions` file) in each project. It can also set environment variables and run tasks for a project.
mise is a version manager for programming languages and developer tools. It installs as many versions of Ruby, Java, Deno, Node.js, Python and hundreds of other tools as you need, and switches between them automatically as you move between projects, based on a `mise.toml` (or an asdf `.tool-versions` file) in each project. It can also set environment variables and run tasks for a project.
## Why it's here
- **The languages you choose.** Go, Rust, Node.js, Python, Bun and Zig come from pacman; mise installs anything else.
- **The right version per project.** Change directory and the versions change with you.
- **One tool for every language.** No separate rbenv, nvm and pyenv.
- **Fast.** It changes your PATH directly instead of running every command through a wrapper.
## On CoreDesktop
CoreDesktop installs mise with its official installer from mise.run, which puts it in `~/.local/bin` and turns it on in `~/.bashrc`. CoreDesktop uses it to install [Ruby and Rails](/software/ruby-on-rails/), and `update` runs `mise self-update` and upgrades Ruby. Commands run over SSH can find tools installed with mise, and the `ga` function, which creates a Git worktree, trusts the new worktree's mise config.
mise is installed from pacman, and CoreDesktop's shell setup turns it on. To add languages, run `configure languages`: it asks whether you want [Ruby on Rails](/software/ruby-on-rails/), then lets you name anything else mise can install, with a version, such as `java@21 deno@latest`. `mise registry` lists what it can install.
`update` keeps what you install up to date within the version you chose: `latest` moves to each new release, and `21` stays on version 21. To remove a language, run `mise unuse -g <tool>`, for example `mise unuse -g java`.
If a project needs a version other than the one installed, tell mise in the project's folder:
```
mise use node@22
cd ~/Projects/my-app
mise use node@20
```
This writes a `mise.toml` in the project. Inside that folder `node` is version 20, and everywhere else it's the version from pacman. Commit `mise.toml` with your project, and anyone else using mise gets the same version.
Commands run over SSH can find tools installed with mise, and the `ga` function, which creates a Git worktree, trusts the new worktree's mise config. Machines that had mise from its own installer switch to the pacman package on their next `update`.
+10 -2
View File
@@ -25,6 +25,14 @@ ssh you@machine.local
## On CoreDesktop
OpenSSH is installed from pacman and `sshd.service` is enabled, so you can SSH into this computer. The firewall allows SSH on port 22, and Avahi advertises it on your LAN, so other machines can reach this one as `<hostname>.local`. Commands run with `ssh machine command` can find tools in `~/.local/bin` and mise.
OpenSSH is installed from pacman and `sshd.service` is enabled, so you can SSH into this computer. It accepts keys only, not passwords, so nobody on the same Wi-Fi can try to guess yours. Copy your public key to this computer once, from the computer you connect from:
For the client, CoreDesktop sets keepalives so a dropped connection is noticed within a minute (your `~/.ssh/config` still wins per host) and points `SSH_AUTH_SOCK` at Bitwarden's SSH agent. It also adds shell functions for port forwarding: `fip <host> <port>...` forwards local ports to the same ports on a host, `dip <port>...` stops them, and `lip` lists them. `update` keeps OpenSSH current with the pacman packages.
```
ssh-copy-id you@machine.local
```
To allow passwords again, delete `/etc/ssh/sshd_config.d/10-coredesktop-keys-only.conf` and run `sudo systemctl reload sshd`. On machines installed earlier, where someone has logged in over SSH with a password, `update` leaves passwords on so nobody is locked out; add your key, then run `bash ~/.local/share/coredesktop/system/sshd.sh` to switch.
The firewall allows SSH on port 22, and Avahi advertises it on your LAN, so other machines can reach this one as `<hostname>.local`. Commands run with `ssh machine command` can find tools in `~/.local/bin` and mise.
For the client, CoreDesktop sets keepalives so a dropped connection is noticed within a minute (your `~/.ssh/config` still wins per host) and uses [Bitwarden](/software/bitwarden/)'s SSH agent while Bitwarden is running it, and GNOME's otherwise. It also adds shell functions for port forwarding: `fip <host> <port>...` forwards local ports to the same ports on a host, `dip <port>...` stops them, and `lip` lists them. `update` keeps OpenSSH current with the pacman packages.
+4 -2
View File
@@ -1,7 +1,7 @@
---
title: "Ruby and Rails"
category: "Languages and runtimes"
tagline: "The Ruby language and the Rails web framework, installed with mise and kept up to date."
tagline: "The Ruby language and the Rails web framework, installed with mise if you choose them."
source: "mise"
command: "rails"
website: "https://rubyonrails.org/"
@@ -27,7 +27,9 @@ Ruby libraries are called gems; Bundler installs the ones a project needs from i
## On CoreDesktop
CoreDesktop installs Ruby with [mise](/software/mise/) rather than pacman: it installs the latest Ruby and makes it your default (`mise use -g ruby@latest`), then installs the Bundler and Rails gems. Each `update` updates mise, moves you to the newest Ruby, and runs `gem update` to update your gems, Rails included.
Ruby and Rails aren't installed for everyone. To add them, run `configure languages` and answer yes to Ruby on Rails. It installs the latest Ruby with [mise](/software/mise/) (`mise use -g ruby@latest`), then the Bundler and Rails gems. Each new version of Ruby gets Rails and Bundler automatically, and `update` moves you to the newest Ruby and updates Rails and Bundler, leaving your other gems as they are.
Machines that had Ruby from an earlier CoreDesktop keep it, and `update` reinstalls Rails if an earlier move to a new Ruby lost it. If you don't use Ruby, remove it with `mise unuse -g ruby`.
Start a new app with:
+1 -1
View File
@@ -22,6 +22,6 @@ Extensions come from Open VSX, an open registry, rather than Microsoft's marketp
## On CoreDesktop
VSCodium is installed from Flathub. Open it from the app menu. Some of its extensions run local servers; `audit` lists their ports and shows that only this computer can reach them.
VSCodium is installed from Flathub, instead of VS Code. Open it from the app menu. For an extension only Microsoft's marketplace has, such as Remote-SSH, install VS Code yourself with `flatpak install flathub com.visualstudio.code`, and `update` leaves it alone. Machines that had VS Code from an earlier CoreDesktop have it removed once; its settings stay in `~/.var/app/com.visualstudio.code`. Some of its extensions run local servers; `audit` lists their ports and shows that only this computer can reach them.
`update` keeps VSCodium current with the rest of the Flatpaks.
+32
View File
@@ -0,0 +1,32 @@
---
title: "Zig"
category: "Languages and runtimes"
tagline: "A small systems language, and a C and C++ compiler that cross-compiles out of the box."
source: "pacman"
package: "zig"
command: "zig"
website: "https://ziglang.org/"
code: "https://codeberg.org/ziglang/zig"
links:
- name: "Zig documentation"
url: "https://ziglang.org/documentation/master/"
---
## What it is
Zig is a general-purpose systems programming language, meant as a simpler alternative to C. It has no hidden control flow or hidden memory allocations, runs code at compile time with `comptime`, and comes with its own build system. The `zig` command can also compile C and C++, and cross-compile for other operating systems and processors without extra toolchains.
## Why it's here
- **Low-level without the surprises.** Manual memory management, with checks that catch many mistakes in debug builds.
- **A better C toolchain.** `zig cc` builds C code for other targets with nothing else to install.
- **Builds the tools you use.** Some terminal apps and libraries are written in Zig and build with it.
## On CoreDesktop
Zig is installed from pacman, alongside Go, Rust, Node.js, Python and Bun. `update` keeps it current with the rest of the pacman packages. For another version in one project, use [mise](/software/mise/).
```
zig init
zig build run
```