Skip to content

slice-soft/ss-workstation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ss-workstation

SliceSoft's cross-OS workstation onboarding — dotfiles, configs and installers that set up a full development environment on CachyOS / Arch Linux or macOS with a single command.

Quick start

bash <(curl -fsSL https://raw.githubusercontent.com/slice-soft/ss-workstation/main/install.sh)

The dispatcher detects your OS, clones this public repo to ~/dev/slicesoft/ss-workstation, and runs the matching installer. No authentication required.

Already cloned? Just run bash ~/dev/slicesoft/ss-workstation/install.sh.

What it sets up

  • Shell — zsh + starship prompt, autosuggestions, syntax highlighting, atuin history
  • Terminal — kitty + zellij multiplexer with a dev layout (nvim + lazygit + Claude Code)
  • Editor — Neovim (lazy.nvim + LSP + Copilot + treesitter)
  • Runtimesmise: Node 22 (LTS), Go 1.24, Python 3.12
  • CLI — git, gh, lazygit, ripgrep, fd, fzf, bat, eza, btop, jq, …
  • npm globals — Claude Code, Codex
  • Linux desktop only — Hyprland (Wayland) + Waybar (with custom audio scripts)

OS support

OS Scope
CachyOS / Arch Full desktop: Wayland WM (Hyprland/Waybar) + terminal + editor + shell
macOS Terminal + editor + shell (no tiling WM)

Structure

install.sh              # dispatcher — detects OS, clones repo, runs installer
linux/
  install.sh            # CachyOS/Arch installer (pacman + yay)
  packages.txt          # single source of truth for packages
  configs/              # Linux-only: hyprland, waybar (+ audio scripts)
macos/
  install.sh            # macOS installer (Homebrew)
  Brewfile              # single source of truth for packages
shared/
  configs/              # cross-OS: nvim, kitty, zellij, zsh, starship
  makefiles/base.mk     # shared build commands, included by every repo's Makefile

How dotfiles work

Configs are symlinked from this repo into ~/.config (and ~/.zshrc), so a git pull here updates your live configs. Machine-specific bits are not versioned and stay local:

  • ~/.config/hypr/local.conf — monitors / GPU (seeded from local.conf.example)
  • ~/.zshrc.local — personal aliases / environment (sourced at the end of ~/.zshrc)

Shared build tooling (base.mk)

Every SliceSoft repo shares one set of make commands (setup, test, lint, clean, check-secrets) so any repo behaves the same. The installer symlinks that base to a fixed path in your home:

~/.config/slicesoft/base.mk  ->  shared/makefiles/base.mk

Each repo's Makefile includes it from there — a stable absolute path, so it works no matter where the repo is cloned:

SS_BASE ?= $(HOME)/.config/slicesoft/base.mk
ifeq ($(wildcard $(SS_BASE)),)
    $(error SliceSoft base.mk not found — run the ss-workstation setup)
endif
include $(SS_BASE)
# ...then repo-specific targets (build, run, ...)

A git pull here updates the base everywhere at once. External contributors who haven't run this setup just get a clear error and use the raw go/npm commands from the repo's CONTRIBUTING.md.

After setup — join the SliceSoft ecosystem

This repo sets up your machine. To get the org's repos and docs:

gh auth login
gh repo clone slice-soft/slice-soft ~/dev/slicesoft/slice-soft
bash ~/dev/slicesoft/slice-soft/setup.sh   # clones every repo you can access

About

Cross-OS workstation onboarding — dotfiles, configs and installers for CachyOS/Arch + macOS

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors