Released on: 01-Jan-2017
-
The
homectl
command has been completely rewritten in Python, and the command name has been shortened tohc
. You should switch to using the newhc
command instead. The oldhomectl
shell script still exists to aid in upgrading, but it will be removed in homectl 0.4. -
The
~/.homectl
directory is now a Homebrew-style tree of symlinks to individual files in enabled packages. Enabled packages are now tracked in anenabled-pkgs
file, rather than as a directory of symlinks. To upgrade your existing deployment and setup, run:
$ homectl refresh $ rehash # if needed by your shell $ hc upgrade $ hc init ~/your-home-setup # this is not destructive, don't worry :)
-
The new Python implementation is much faster.
-
Homectl now understands different machine and OS types, via the notion of systems. See doc/customization.asciidoc for more details.
-
hc upgrade
performs most of the manual labor required to convert a homectl 0.2 setup and deployment to a homectl 0.3 setup and deployment. -
hc path
discovers where homectl files live, and computes updated environment variables such as$PATH
. -
hc tree
searches for files and directories within hook dirs in your packages, similar to howfind $hook_dirs -path ...
works. -
loader-emacs.hcpkg
loads Emacs packages directly from the newemacs-startup
hook. It uses(require)
to ensure package dependencies are respected. -
More documentation, especially on how to create your own packages.
-
As mentioned above,
homectl
has been renamed tohc
. The originalhomectl
command, and its companionhomectl-resolve-path
tool, will be removed in homectl 0.4. -
loader-emacs.hcpkg
: The previous method of runningemacs.el
files during startup is now deprecated. Place startup packages in theemacs-startup
hookdir instead. The old behavior will be removed in homectl 0.4. -
homectl find
(orhc find
, as it’s now called) has been deprecated in favor ofhc tree
.hc find
will be removed in homectl 0.4. -
loader-bash
andloader-zsh
: The previous mechanism of sourcingshell.*
andenv.*
files during shell startup is deprecated and will be removed in homectl 0.4. Instead, place your*.sh
,*.bash
, or*.zsh
files in theshell-env
andshell-rc
hook directories, respectively.
-
loader-emacs.hcpkg
now unconditionally refreshes thepackage.el
package list if it needs to install a missing package. This ensures the package list is always available.
-
Probably a few, since this is a rewrite. Hopefully the new unit tests caught most of them. :)
Released on: 22-Jul-2013
-
homectl enable
andhomectl disable
now take package paths instead of just the basename. This allows you to have multiple packages in different directories with the same name, and it makes enabling/disabling packages more convenient since you can use Tab-completion. -
homectl list
now shows the full path to each enabled package, so you know exactly what is enabled and where it lives.
-
Homectl now understands Emacs.
-
Add
emacs.el
files to your homectl packages to load and configure your Emacs packages. -
Automatically install packages from ELPA and other
package
archives withhomectl-require
.
-
-
The new
homectl find
command locates files with a particular name in enabled packages, and echoes their paths.
-
The
deploy.sh
script generated byhomectl init
now properly initializes git submodules in freshly-cloned setups.-
Existing homectl setups need to have their
deploy.sh
scripts corrected by hand. Change yourdeploy.sh
to callgit submodule update --init --recursive
instead of justgit submodule update
.
-