GithubHelp home page GithubHelp logo

senz / dotfiles Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 74 KB

My set of cross-platform configs managed by chezmoi ๐Ÿก

License: MIT License

Ruby 1.12% GLSL 98.72% Shell 0.16%
dotfiles chezmoi

dotfiles's Introduction

dotfiles

Installation

Preferrable way:

sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply senz

Devcontainer entrypoint:

./install

See manual checklist below.

Usage

Manage config

chezmoi add <file>

--encrypt to encrypt file

Edit managed file

chezmoi edit <file> --watch

List managed files

chezmoi managed

Update managed files

chezmoi update --apply

Remove

Removes state, cache and config. Leaves the target files.

Useful for testing install.

chezmoi purge

Manual checklist

Sync settings.yml
hostname: "<hostname>"
profile: <chosen profile>

repository:
  type: git
  url: https://github.com/senz/vscode-settings.git
  branch: main

Declarative package management

I have 'invented' several package spec files in order to manage packages in a declarative way. I only support 'additive' package management, meaning that I only add packages, never remove them. This is generally non error-prone, and I can always remove packages manually. There is certain risk of having packages installed and not added to the spec file. This is a tradeoff I am willing to take.

Files suffixed with .pers.asc are encrypted protions of main files. They are decrypted and merged into the main file during chezmoi apply.

Package spec files

  • Pakfile โ€“ flatpak packages
  • Rpmfile โ€“ rpm packages used in Fedora, and specifically in ostree package layering
  • Appfile โ€“ appimage packages

TODO

Package specs:

  • comparing installed packages with spec files, reporting differences
  • formal specifications and JSON schemas for spec files, plus autogenerated docs
  • support comments in spec files - useful for notes and grouping

AppImage auto update handling. topgrade?

References and inspiration

  • zero-sh โ€“ I started with this, liked its simplicity, but quickly hit its limitations.
    • it's unmaintained
    • no encryption support
    • multiple workspaces and inheritance creates confusion
    • MacOS specific
  • Unofficial guide to dotfiles on GitHub. Look into utilities section as well as inspirations
  • chezmoi โ€“ Im currently using this. It's more complex, because of heavy reliance on templating (like helm for configs), but have everything I need. Its well maintened, and you dont have to use templates if you dont want to.

dotfiles inspirations

dotfiles's People

Contributors

senz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.