Skip to content

alvanrahimli/dots-cli

Repository files navigation

dots

dots is a CLI tool to build, version and publish config file bundles.

Have you ever saw a screenshot of beautiful desktop customization at r/unixporn and wanted to try it out? But author did not provide dotfiles (config files of apps)! This is because he/she needs to host those files at github/gitlab, and it is not as easy as using dots.
With dots you can build and publish your desktop rice (or any other dotfile) with only 2 commands! Installation? It also takes only 2 commands!

Getting Started

NO GIT REPOSITORY OR ELSE IS NEEDED
To get started, you only need dots-cli tool. App does not have any dependecies.
You can download by following Installation guide.
Install tool and run dots init myfirstpack, and you have just created your first package.

Installation

Copy and paste following command in your terminal emulator and you are ready to go!

curl https://raw.githubusercontent.com/alvanrahimli/dots-cli/master/install.sh | sh

You can also go to the release page and download executable (dots-cli-linux) yourself and use.

Usage

Creating Package

  • dots login Logs user in (essential to push package)
  • dots init <package_name> Initializes empty package in current directory
  • dots add <app1_name> <app2_name> Adds specified apps to package
  • dots add -w path/to/wallpaper.jpg Adds wallpaper to package
  • dots remove <app1_name> Removes specified apps from package
  • dots pack Saves current state & ready to push
  • dots push Pushes package to default registry
  • dots remote add <remote_name> <remote_address> Adds new remote address.
    • For now, remote addresses should not contain trailing slash. This will be fixed in later releases
  • dots push origin Pushes package to specified registry

Installing package

  • dots get package@author.dots.rahim.li Downloads specified package to current directory
  • dots install Installs dotfiles & wallpapers
    • When installing wallpapers, app copies them to $HOME/.local/share/backgrounds/. You can also use them from package's folder
  • dots uninstall Uninstalls dotfiles & restores previous dotfiles

TODO (client):

Functionality:

  • Commands:
    • cmd: config (tweak default registry and many more)
    • cmd: register (Registers new user from CLI)
    • cmd: init (initializes empty package)
    • cmd: add (adds app to package)
    • cmd: remove (removes app from package)
    • cmd: pack (saves package's current state)
    • cmd: login (signs user in and saves token)
    • cmd: push (pushes package to added registry)
    • cmd: remote (adds/removes registries)
      • add (adds remote registry)
      • remove (removes remote registry)
    • cmd: list(lists apps)
      • added (lists added apps in package)
      • all (use --installed flag to list only apps found on system) (lists all possible apps from config)
    • cmd: install (installs packages to appropriate directories)
      • Backup before installation
      • Revert if installation fails
    • cmd: uninstall (uninstalls package and returns bac .backup folder)
    • cmd: get (downloads package)
    • Find better place for logs.txt + better logging