|
1 | 1 | # shell |
2 | 2 |
|
3 | | -My dotfiles and install script. |
| 3 | +> **⚠️ This repository is archived and no longer maintained.** |
| 4 | +> I've moved my dotfiles to a private repository using [GNU Stow](https://www.gnu.org/software/stow/) for simpler symlink management. |
4 | 5 |
|
5 | | -## Install 🚀 |
| 6 | +A Go-based dotfiles management tool featuring an interactive TUI for installing dotfiles and packages across Unix-like systems. |
6 | 7 |
|
7 | | -Install is easy, just run this one-liner for a nice TUI that shows your options. |
| 8 | +## What This Was |
8 | 9 |
|
9 | | -```bash |
10 | | -sh <(curl https://marx.sh) |
11 | | -``` |
| 10 | +This project was a learning exercise to: |
| 11 | +- Get familiar with Go conventions and patterns |
| 12 | +- Build a CLI with [Cobra](https://github.com/spf13/cobra) and an interactive TUI with [Bubble Tea](https://github.com/charmbracelet/bubbletea) |
| 13 | +- Solve the cross-platform dotfiles management problem I had at the time |
12 | 14 |
|
13 | | -> See [INSTALL.md](INSTALL.md) for more options |
| 15 | +### Features |
14 | 16 |
|
15 | | -## Dotfiles 🧩 |
| 17 | +- Interactive terminal UI for selecting what to install |
| 18 | +- Non-interactive mode with flags (`--vim`, `--tmux`, `--zsh`, `--full`) |
| 19 | +- Cross-platform package manager support (apt, brew, dnf, pacman) |
| 20 | +- TOML-based configuration for dotfile mappings and package definitions |
16 | 21 |
|
17 | | -### Git |
| 22 | +## Dotfiles |
18 | 23 |
|
19 | | -- [.gitconfig](git/gitconfig) — Git configuration |
| 24 | +The dotfiles remain in this repo for reference: |
20 | 25 |
|
21 | | -### GnuPG |
| 26 | +- **Git**: [gitconfig](git/gitconfig) |
| 27 | +- **GnuPG**: [gpg.conf](gnupg/gpg.conf), [gpg-agent.conf](gnupg/gpg-agent.conf) |
| 28 | +- **tmux**: [tmux.conf](tmux/tmux.conf) |
| 29 | +- **Vim**: [vimrc](vim/vimrc) |
| 30 | +- **Zsh**: [zshrc](zsh/zshrc), [aliases](zsh/aliases), [functions](zsh/functions), [t3.zsh-theme](zsh/t3.zsh-theme) |
| 31 | +- **yabai/skhd**: [yabairc](yabai/yabairc), [skhdrc](skhd/skhdrc) |
22 | 32 |
|
23 | | -- [gpg-agent.conf](gnupg/gpg-agent.conf) — GnuPG agent configuration |
24 | | -- [gpg.conf](gnupg/gpg.conf) — GnuPG configuration |
| 33 | +## License |
25 | 34 |
|
26 | | -### Raycast |
27 | | - |
28 | | -- [clear-format.sh](raycast/clear-format.sh) — Strip formatting (while preserving whitespace) from clipboard |
29 | | - |
30 | | -### skhd |
31 | | - |
32 | | -- [.skhdrc](skhd/skhdrc) — Configure the hotkey daemon I use (mainly to manage Yabai) |
33 | | - |
34 | | -### tmux |
35 | | - |
36 | | -- [.tmux.conf](tmux/tmux.conf) — Clean UI, useful info only, Vim-like keybindings |
37 | | - |
38 | | -### Vim |
39 | | - |
40 | | -- [.vimrc](vim/vimrc) — Vim configuration |
41 | | - |
42 | | -### yabai |
43 | | - |
44 | | -- [.yabairc](yabai/yabairc) — Manage yabai, the tiling window manager I use |
45 | | - |
46 | | -### Zsh |
47 | | - |
48 | | -- [.aliases](zsh/aliases) — Useful aliases, built to work across all UNIX systems |
49 | | -- [.functions](zsh/functions) — Useful functions, built to work across all UNIX systems |
50 | | -- [.zshrc](zsh/zshrc) — My go-to shell setup, leveraging Oh My Zsh (if available) |
51 | | -- [t3.zsh-theme](zsh/t3.zsh-theme) — A nice, clean theme with everything you need, and nothing more |
52 | | - |
53 | | -## Packages 📦 |
54 | | - |
55 | | -The install command is not a package manager, it merely leverages your system’s package manager, |
56 | | -whether it be `apt`, `homebrew`, `dnf`, or `pacman`. It can also run install scripts for packages |
57 | | -not in the above indices. |
58 | | - |
59 | | -All packages available to install are located in the [packages.toml](packages.toml) file. Packages |
60 | | -are grouped into lists to be installed together. In the TOML file, packages and package groups are |
61 | | -initialized as tables (`[package_group.packages.package_name]`). Each package should have a `name` |
62 | | -key to display when installing the package, as well as `description` and `url` keys to assist in |
63 | | -building this README. Other possible keys for each package are `apt_name`, `brew_name`, |
64 | | -`brew_cask_name`, `dnf_name`, `pacman_name`, and `install_command`. |
65 | | - |
66 | | -### Core |
67 | | - |
68 | | -Core packages I use daily |
69 | | - |
70 | | -- [bat](https://github.com/sharkdp/bat) - A cat clone with wings. |
71 | | -- [cURL](https://curl.se/) - A command line tool for transferring data with URL syntax. |
72 | | -- [exa](https://the.exa.website/) - A modern replacement for ls. |
73 | | -- [fd](https://github.com/sharkdp/fd) - A simple, fast and user-friendly alternative to find. |
74 | | -- [fzf](https://github.com/junegunn/fzf) - A command-line fuzzy finder. |
75 | | -- [git](https://git-scm.com/) - A fast, scalable, distributed revision control system. |
76 | | -- [GnuPG](https://gnupg.org/) - A complete and free implementation of the OpenPGP standard. |
77 | | -- [Node](https://nodejs.org/) - A JavaScript runtime built on Chrome's V8 JavaScript engine. |
78 | | -- [Oh My Zsh](https://ohmyz.sh/) - A delightful community-driven framework for managing your zsh configuration. |
79 | | -- [OpenSSL](https://www.openssl.org/) - A robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. |
80 | | -- [ripgrep](https://github.com/BurntSushi/ripgrep) - A line-oriented search tool that recursively searches your current directory for a regex pattern. |
81 | | -- [tmux](https://github.com/tmux/tmux) - A terminal multiplexer. |
82 | | -- [Vim](https://www.vim.org/) - A highly configurable text editor built to enable efficient text editing. |
83 | | -- [Zsh](https://www.zsh.org/) - A shell designed for interactive use, although it is also a powerful scripting language. |
84 | | - |
85 | | -### Design |
86 | | - |
87 | | -Packages for visual and sound design. |
88 | | - |
89 | | -- [FFmpeg](https://ffmpeg.org/) - A complete, cross-platform solution to record, convert and stream audio and video. |
90 | | -- [ImageMagick](https://imagemagick.org/) - A software suite to create, edit, compose, or convert bitmap images. |
91 | | - |
92 | | -### GUI Core |
93 | | - |
94 | | -GUI apps I use daily. |
95 | | - |
96 | | -- [Clean My Mac](https://macpaw.com/cleanmymac) - A macOS app to clean up your Mac. |
97 | | -- [Docker Desktop](https://www.docker.com/products/docker-desktop) - A desktop app for MacOS and Windows machines for the building and sharing of containerized applications and microservices. |
98 | | -- [Dropbox](https://www.dropbox.com/) - A file hosting service that offers cloud storage, file synchronization, personal cloud. |
99 | | -- [IINA](https://iina.io/) - The modern video player for macOS. |
100 | | -- [iTerm2](https://iterm2.com/) - A terminal emulator for macOS that does amazing things. |
101 | | -- [Little Snitch](https://www.obdev.at/products/littlesnitch/index.html) - A firewall application for macOS that monitors outgoing network connections and allows or denies them. |
102 | | -- [Mullvad VPN](https://mullvad.net/en/) - A VPN service that helps keep your online activity, identity, and location private. |
103 | | -- [Parallels Desktop](https://www.parallels.com/products/desktop/) - A software for running Windows, Linux, or any other operating system on a Mac without rebooting. |
104 | | -- [Raycast](https://raycast.com/) - A smart command line productivity tool for macOS. |
105 | | -- [Zoom](https://zoom.us/) - A video conferencing, online chat, and web conferencing software. |
106 | | - |
107 | | -### GUI Design |
108 | | - |
109 | | -GUI apps for visual and sound design. |
110 | | - |
111 | | -- [Adobe Creative Cloud](https://www.adobe.com/creativecloud.html) - A collection of desktop and mobile apps and services for photography, design, video, web, UX and more. |
112 | | -- [Cycling ‘74 Max/MSP](https://cycling74.com/products/max/) - A visual programming language for music, audio, and multimedia. |
113 | | -- [Glyphs](https://glyphsapp.com/) - A powerful font editor for macOS. |
114 | | -- [Rhino 3D](https://www.rhino3d.com/) - A 3D modeling software for Windows, macOS, and Linux. |
| 35 | +Apache 2.0 |
0 commit comments