feat(home): Add initial home-manager configuration for ChromeOS
Adds a home-manager configuration that can be used in a Crostini container running Nix. There isn't any truly ChromeOS-specific stuff in this yet, as I've set up the interoperability with garcon etc. manually for now.
This commit is contained in:
parent
a1751798f1
commit
f661e4e6eb
1 changed files with 75 additions and 0 deletions
75
home.nix
Normal file
75
home.nix
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
# home-manager configuration used on ChromeOS systems
|
||||||
|
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Allow non-free software (fonts, IDEA, etc.):
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Install various useful packages:
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
bat
|
||||||
|
exa
|
||||||
|
gnupg
|
||||||
|
google-cloud-sdk
|
||||||
|
htop
|
||||||
|
pass
|
||||||
|
ripgrep
|
||||||
|
tdesktop
|
||||||
|
transmission
|
||||||
|
tree
|
||||||
|
|
||||||
|
# Fonts to make available in X11 applications:
|
||||||
|
input-fonts
|
||||||
|
|
||||||
|
# Emacs configuration stays in the normal ~/.emacs.d location (for
|
||||||
|
# now), hence this package is not installed via `programs.emacs`.
|
||||||
|
(import ./emacs.nix { inherit pkgs; })
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userEmail = "mail@tazj.in";
|
||||||
|
userName = "Vincent Ambo";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
pinentry-program ${pkgs.pinentry}/bin/pinentry-gtk-2
|
||||||
|
allow-emacs-pinentry
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
manual.html.enable = true;
|
||||||
|
|
||||||
|
# Shell configuration
|
||||||
|
#
|
||||||
|
# There are some differences between the ChromeOS / NixOS
|
||||||
|
# configurations, so instead of fixing up the dotfile to support
|
||||||
|
# both I opted for keeping the configuration here.
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
# Configure classic prompt
|
||||||
|
set fish_color_user --bold blue
|
||||||
|
set fish_color_cwd --bold white
|
||||||
|
|
||||||
|
# Enable colour hints in VCS prompt:
|
||||||
|
set __fish_git_prompt_showcolorhints yes
|
||||||
|
set __fish_git_prompt_color_prefix purple
|
||||||
|
set __fish_git_prompt_color_suffix purple
|
||||||
|
|
||||||
|
# Fish configuration
|
||||||
|
set fish_greeting ""
|
||||||
|
|
||||||
|
# Fix up nix-env & friends for Nix 2.0
|
||||||
|
export NIX_REMOTE=daemon
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Ensure fonts installed via Nix are picked up.
|
||||||
|
fonts.fontconfig.enableProfileFonts = true;
|
||||||
|
}
|
Loading…
Reference in a new issue