Add some packages, format with nixpkgs-fmt

work
mat ess 2022-01-23 18:50:34 -05:00
parent 52f410cb3e
commit a695374977
19 changed files with 268 additions and 253 deletions

View File

@ -4,9 +4,13 @@
nix.binaryCaches = [
"https://cache.nixos.org/"
"https://hydra.iohk.io"
"https://nix-community.cachix.org"
];
nix.binaryCachePublicKeys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
nix.trustedUsers = [
"@admin"
@ -51,4 +55,4 @@
# $ darwin-rebuild changelog
system.stateVersion = 4;
}
}

View File

@ -1,4 +1,4 @@
{pkgs, lib, ... }:
{ pkgs, lib, ... }:
{
imports = [
@ -54,4 +54,4 @@
# Add ability to used TouchID for sudo authentication
security.pam.enableSudoTouchIdAuth = true;
}
}

View File

@ -37,17 +37,19 @@ in
"homebrew/core"
"homebrew/services"
"nrlquaker/createzap"
"unisonweb/unison"
];
# Prefer installing application from the Mac App Store
homebrew.masApps = {
Bitwarden = 1352778147;
Spark = 1176895641;
Spark = 1176895641;
};
# If an app isn't available in the Mac App Store, or the version in the App Store has
# limitiations, e.g., Transmit, install the Homebrew Cask.
homebrew.casks = [
"aerial"
"alfred"
"discord"
"element"
@ -59,14 +61,15 @@ in
"rectangle"
"signal"
"steam"
"unison-language"
"vscodium"
];
# Configuration related to casks
environment.variables.SSH_AUTH_SOCK = mkIfCaskPresent "secretive"
"/Users/${config.users.primaryUser}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
"/Users/${config.users.primaryUser}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
# For cli packages that aren't currently available for macOS in `nixpkgs`.Packages should be
# installed in `../home/default.nix` whenever possible.
homebrew.brews = [];
}
homebrew.brews = [ ];
}

View File

@ -52,4 +52,4 @@
TrackpadRightClick = true;
TrackpadThreeFingerDrag = true;
};
}
}

View File

@ -1,10 +1,14 @@
# See https://nixos.wiki/wiki/Flakes#Using_flakes_project_from_a_legacy_Nix
(import (
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
in fetchTarball {
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
sha256 = lock.nodes.flake-compat.locked.narHash; }
) {
src = ./.;
}).defaultNix
(import
(
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
in
fetchTarball {
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
sha256 = lock.nodes.flake-compat.locked.narHash;
}
)
{
src = ./.;
}).defaultNix

308
flake.nix
View File

@ -18,170 +18,170 @@
};
outputs = { self, darwin, nixpkgs, home-manager, flake-utils, ... }@inputs:
let
let
inherit (darwin.lib) darwinSystem;
inherit (inputs.nixpkgs-unstable.lib) attrValues makeOverridable optionalAttrs singleton;
inherit (darwin.lib) darwinSystem;
inherit (inputs.nixpkgs-unstable.lib) attrValues makeOverridable optionalAttrs singleton;
# Configuration for `nixpkgs`
nixpkgsConfig = {
config = { allowUnfree = true; };
# overlays = attrValues self.overlays;
overlays = attrValues self.overlays ++ singleton (
# Sub in x86 version of packages that don't build on Apple Silicon yet
final: prev: (optionalAttrs (prev.stdenv.system == "aarch64-darwin") {
inherit (final.pkgs-x86)
# idris2
# nix-index
# purescript;
niv;
})
);
};
# Shared home-manager configs
homeManagerStateVersion = "22.05";
homeManagerCommonConfig = {
imports = attrValues self.homeManagerModules ++ [
./home
{ home.stateVersion = homeManagerStateVersion; }
];
};
# Modules shared by most `nix-darwin` personal configurations.
nixDarwinCommonModules = attrValues self.darwinModules ++ [
# Main `nix-darwin` config
./darwin
# `home-manager` module
home-manager.darwinModules.home-manager
(
{ config, lib, pkgs, ... }:
let
inherit (config.users) primaryUser;
in
{
nixpkgs = nixpkgsConfig;
# Hack to support legacy worklows that use `<nixpkgs>` etc.
nix.nixPath = { nixpkgs = "$HOME/dotfiles.nix/nixpkgs.nix"; };
# `home-manager` config
users.users.${primaryUser}.home = "/Users/${primaryUser}";
home-manager.useGlobalPkgs = true;
home-manager.users.${primaryUser} = homeManagerCommonConfig;
# Add a registry entry for this flake
nix.registry.my.flake = self;
}
)
];
in
{
# `nix-darwin` configs
darwinConfigurations = rec {
# Mininal configurations to bootstrap systems
bootstrap-x86 = makeOverridable darwinSystem {
system = "x86_64-darwin";
modules = [ ./darwin/bootstrap.nix { nixpkgs = nixpkgsConfig; } ];
};
bootstrap-arm = bootstrap-x86.override { system = "aarch64-darwin"; };
# M1 MBP
matbook = darwinSystem {
system = "aarch64-darwin";
modules = nixDarwinCommonModules ++ [
{
users.primaryUser = "mat";
networking.computerName = "matbook pro m1";
networking.hostName = "matbook";
networking.knownNetworkServices = [
"Wi-Fi"
];
}
];
};
# Config with small modifications needed/desired for CI with GitHub workflow
githubCI = darwinSystem {
system = "x86_64-darwin";
modules = nixDarwinCommonModules ++ [
({ lib, ... }: {
users.primaryUser = "runner";
homebrew.enable = lib.mkForce false;
# Configuration for `nixpkgs`
nixpkgsConfig = {
config = { allowUnfree = true; };
# overlays = attrValues self.overlays;
overlays = attrValues self.overlays ++ singleton (
# Sub in x86 version of packages that don't build on Apple Silicon yet
final: prev: (optionalAttrs (prev.stdenv.system == "aarch64-darwin") {
inherit (final.pkgs-x86)
# idris2
# nix-index
# purescript;
niv;
})
);
};
# Shared home-manager configs
homeManagerStateVersion = "22.05";
homeManagerCommonConfig = {
imports = attrValues self.homeManagerModules ++ [
./home
{ home.stateVersion = homeManagerStateVersion; }
];
};
# Build and activate with `nix build .#cloudVM.activationPackage; ./result/activate`
cloudVM = home-manager.lib.homeManagerConfiguration {
system = "x86_64-linux";
stateVersion = homeManagerStateVersion;
homeDirectory = "/home/mat";
username = "mat";
configuration = {
imports = [ homeManagerCommonConfig ];
nixpkgs = nixpkgsConfig;
};
};
# attrValues self.darwinModules ++ [
# # Main `nix-darwin` config
# ./configuration.nix
# # `home-manager` module
# home-manager.darwinModules.home-manager
# {
# nixpkgs = nixpkgsConfig;
# # `home-manager` config
# home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true;
# home-manager.users.mat = import ./home.nix;
# }
# ];
# };
};
# Overlays --------------------------------------------------------------- {{{
overlays = {
# nixpkgs overlays
pkgs-stable = final: prev: {
pkgs-stable = import inputs.nixpkgs {
inherit (prev.stdenv) system;
inherit (nixpkgsConfig) config;
};
};
pkgs-unstable = final: prev: {
pkgs-unstable = import inputs.nixpkgs-unstable {
inherit (prev.stdenv) system;
inherit (nixpkgsConfig) config;
};
};
colors = import ./overlays/colors.nix;
# Overlay useful on Macs with Apple Silicon
apple-silicon = final: prev: optionalAttrs (prev.stdenv.system == "aarch64-darwin") {
# Add access to x86 packages system is running Apple Silicon
pkgs-x86 = import inputs.nixpkgs-unstable {
# Modules shared by most `nix-darwin` personal configurations.
nixDarwinCommonModules = attrValues self.darwinModules ++ [
# Main `nix-darwin` config
./darwin
# `home-manager` module
home-manager.darwinModules.home-manager
(
{ config, lib, pkgs, ... }:
let
inherit (config.users) primaryUser;
in
{
nixpkgs = nixpkgsConfig;
# Hack to support legacy worklows that use `<nixpkgs>` etc.
nix.nixPath = { nixpkgs = "$HOME/dotfiles.nix/nixpkgs.nix"; };
# `home-manager` config
users.users.${primaryUser}.home = "/Users/${primaryUser}";
home-manager.useGlobalPkgs = true;
home-manager.users.${primaryUser} = homeManagerCommonConfig;
# Add a registry entry for this flake
nix.registry.my.flake = self;
}
)
];
in
{
# `nix-darwin` configs
darwinConfigurations = rec {
# Mininal configurations to bootstrap systems
bootstrap-x86 = makeOverridable darwinSystem {
system = "x86_64-darwin";
inherit (nixpkgsConfig) config;
modules = [ ./darwin/bootstrap.nix { nixpkgs = nixpkgsConfig; } ];
};
bootstrap-arm = bootstrap-x86.override { system = "aarch64-darwin"; };
# M1 MBP
matbook = darwinSystem {
system = "aarch64-darwin";
modules = nixDarwinCommonModules ++ [
{
users.primaryUser = "mat";
networking.computerName = "matbook pro m1";
networking.hostName = "matbook";
networking.knownNetworkServices = [
"Wi-Fi"
];
}
];
};
# Config with small modifications needed/desired for CI with GitHub workflow
githubCI = darwinSystem {
system = "x86_64-darwin";
modules = nixDarwinCommonModules ++ [
({ lib, ... }: {
users.primaryUser = "runner";
homebrew.enable = lib.mkForce false;
})
];
};
# Build and activate with `nix build .#cloudVM.activationPackage; ./result/activate`
cloudVM = home-manager.lib.homeManagerConfiguration {
system = "x86_64-linux";
stateVersion = homeManagerStateVersion;
homeDirectory = "/home/mat";
username = "mat";
configuration = {
imports = [ homeManagerCommonConfig ];
nixpkgs = nixpkgsConfig;
};
};
# attrValues self.darwinModules ++ [
# # Main `nix-darwin` config
# ./configuration.nix
# # `home-manager` module
# home-manager.darwinModules.home-manager
# {
# nixpkgs = nixpkgsConfig;
# # `home-manager` config
# home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true;
# home-manager.users.mat = import ./home.nix;
# }
# ];
# };
};
# Overlays --------------------------------------------------------------- {{{
overlays = {
# nixpkgs overlays
pkgs-stable = final: prev: {
pkgs-stable = import inputs.nixpkgs {
inherit (prev.stdenv) system;
inherit (nixpkgsConfig) config;
};
};
pkgs-unstable = final: prev: {
pkgs-unstable = import inputs.nixpkgs-unstable {
inherit (prev.stdenv) system;
inherit (nixpkgsConfig) config;
};
};
colors = import ./overlays/colors.nix;
# Overlay useful on Macs with Apple Silicon
apple-silicon = final: prev: optionalAttrs (prev.stdenv.system == "aarch64-darwin") {
# Add access to x86 packages system is running Apple Silicon
pkgs-x86 = import inputs.nixpkgs-unstable {
system = "x86_64-darwin";
inherit (nixpkgsConfig) config;
};
};
};
};
# `nix-darwin` modules (some are pending upstream acceptance)
darwinModules = {
programs-nix-index = import ./modules/darwin/programs/nix-index.nix;
security-pam = import ./modules/darwin/security/pam.nix;
users = import ./modules/darwin/users.nix;
};
# `nix-darwin` modules (some are pending upstream acceptance)
darwinModules = {
programs-nix-index = import ./modules/darwin/programs/nix-index.nix;
security-pam = import ./modules/darwin/security/pam.nix;
users = import ./modules/darwin/users.nix;
};
# home manager configurations
homeManagerModules = {
# configs-git-aliases = import ./home/configs/git-aliases.nix;
# configs-gh-aliases = import ./home/configs/gh-aliases.nix;
configs-starship-symbols = import ./home/configs/starship-symbols.nix;
programs-neovim-extras = import ./modules/home/programs/neovim/extras.nix;
programs-kitty-extras = import ./modules/home/programs/kitty/extras.nix;
};
# home manager configurations
homeManagerModules = {
# configs-git-aliases = import ./home/configs/git-aliases.nix;
# configs-gh-aliases = import ./home/configs/gh-aliases.nix;
configs-starship-symbols = import ./home/configs/starship-symbols.nix;
programs-neovim-extras = import ./modules/home/programs/neovim/extras.nix;
programs-kitty-extras = import ./modules/home/programs/kitty/extras.nix;
};
} // flake-utils.lib.eachDefaultSystem (system: {
legacyPackages = import inputs.nixpkgs-unstable {
@ -195,4 +195,4 @@
];
};
});
}
}

View File

@ -63,4 +63,4 @@ let inherit (lib) mkDefault; in
vagrant.symbol = mkDefault "𝗩 ";
zig.symbol = mkDefault " ";
};
}
}

View File

@ -18,7 +18,7 @@
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.atuin.enable
atuin = {
enable = true;
settings = {};
settings = { };
};
# a nicer cat
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.bat.enable
@ -100,7 +100,7 @@
cachix # adding/managing alternative binary caches hosted by Cachix
comma # run software from without installing it
niv # easy dependency management for nix projects
nixfmt
nixpkgs-fmt
nix-prefetch-git
# nodePackages.node2nix
@ -129,4 +129,4 @@
# Stop `parallel` from displaying citation warning
# home.file.".parallel/will-cite".text = "";
# }}}
}
}

View File

@ -28,4 +28,4 @@
# Aliases config imported in flake.
programs.gh.enable = true;
programs.gh.settings.git_protocol = "ssh";
}
}

View File

@ -19,7 +19,7 @@ let
inactive_tab_background = "#${strong}";
};
in
# }}}
# }}}
{
# Kitty terminal
# https://sw.kovidgoyal.net/kitty/conf.html
@ -119,4 +119,4 @@ in
end
'';
# }}}
}
}

View File

@ -89,4 +89,4 @@ in
rnix-lsp
] ++ optional (pkgs.stdenv.system != "x86_64-darwin") sumneko-lua-language-server;
# }}}
}
}

View File

@ -127,36 +127,37 @@
# Fish configuration ------------------------------------------------------------------------- {{{
# Aliases
programs.fish.shellAliases =
let
nixConfigDir = "${config.home.homeDirectory}/dotfiles.nix";
in with pkgs; {
# My additions
code = "codium";
# OG
# Nix related
drb = "darwin-rebuild build --flake ${nixConfigDir}/";
drs = "darwin-rebuild switch --flake ${nixConfigDir}/";
drc = "codium ${nixConfigDir}";
flakeup = "nix flake update --recreate-lock-file ${nixConfigDir}/";
nb = "nix build";
nd = "nix develop";
nf = "nix flake";
nr = "nix run";
ns = "nix search";
programs.fish.shellAliases =
let
nixConfigDir = "${config.home.homeDirectory}/dotfiles.nix";
in
with pkgs; {
# My additions
code = "codium";
# OG
# Nix related
drb = "darwin-rebuild build --flake ${nixConfigDir}/";
drs = "darwin-rebuild switch --flake ${nixConfigDir}/";
drc = "codium ${nixConfigDir}";
flakeup = "nix flake update --recreate-lock-file ${nixConfigDir}/";
nb = "nix build";
nd = "nix develop";
nf = "nix flake";
nr = "nix run";
ns = "nix search";
# Other
".." = "cd ..";
":q" = "exit";
cat = "${bat}/bin/bat";
du = "${du-dust}/bin/dust";
g = "${gitAndTools.git}/bin/git";
la = "ll -a";
ll = "ls -l --time-style long-iso --icons";
ls = "${exa}/bin/exa";
ps = "${procs}/bin/procs";
tb = "toggle-background";
};
# Other
".." = "cd ..";
":q" = "exit";
cat = "${bat}/bin/bat";
du = "${du-dust}/bin/dust";
g = "${gitAndTools.git}/bin/git";
la = "ll -a";
ll = "ls -l --time-style long-iso --icons";
ls = "${exa}/bin/exa";
ps = "${procs}/bin/procs";
tb = "toggle-background";
};
# Configuration that should be above `loginShellInit` and `interactiveShellInit`.
programs.fish.shellInit = ''

View File

@ -13,5 +13,5 @@
''}
end
'';
};
}
};
}

View File

@ -17,24 +17,25 @@ let
# added line that includes the name of the option, to make it easier to identify the line that
# should be deleted when the option is disabled.
mkSudoTouchIdAuthScript = isEnabled:
let
file = "/etc/pam.d/sudo";
option = "security.pam.enableSudoTouchIdAuth";
in ''
${if isEnabled then ''
# Enable sudo Touch ID authentication, if not already enabled
if ! grep 'pam_tid.so' ${file} > /dev/null; then
sed -i "" '2i\
auth sufficient pam_tid.so # nix-darwin: ${option}
' ${file}
fi
'' else ''
# Disable sudo Touch ID authentication, if added by nix-darwin
if grep '${option}' ${file} > /dev/null; then
sed -i "" '/${option}/d' ${file}
fi
''}
'';
let
file = "/etc/pam.d/sudo";
option = "security.pam.enableSudoTouchIdAuth";
in
''
${if isEnabled then ''
# Enable sudo Touch ID authentication, if not already enabled
if ! grep 'pam_tid.so' ${file} > /dev/null; then
sed -i "" '2i\
auth sufficient pam_tid.so # nix-darwin: ${option}
' ${file}
fi
'' else ''
# Disable sudo Touch ID authentication, if added by nix-darwin
if grep '${option}' ${file} > /dev/null; then
sed -i "" '/${option}/d' ${file}
fi
''}
'';
in
{
@ -56,4 +57,4 @@ in
${mkSudoTouchIdAuthScript cfg.enableSudoTouchIdAuth}
'';
};
}
}

View File

@ -11,4 +11,4 @@ in
default = null;
};
};
}
}

View File

@ -7,7 +7,7 @@ let
cfg = config.programs.kitty.extras;
# Create a Kitty config string from a Nix set
setToKittyConfig = with generators; toKeyValue { mkKeyValue = mkKeyValueDefault {} " "; };
setToKittyConfig = with generators; toKeyValue { mkKeyValue = mkKeyValueDefault { } " "; };
# Write a Nix set representing a kitty config into the Nix store
writeKittyConfig = fileName: config: pkgs.writeTextDir "${fileName}" (setToKittyConfig config);
@ -36,7 +36,8 @@ let
${term-background}/bin/term-background dark
'';
in {
in
{
options.programs.kitty.extras = {
colors = {
@ -55,7 +56,7 @@ in {
dark = mkOption {
type = with types; attrsOf str;
default = {};
default = { };
description = ''
Kitty color settings for dark background colorscheme.
'';
@ -63,7 +64,7 @@ in {
light = mkOption {
type = with types; attrsOf str;
default = {};
default = { };
description = ''
Kitty color settings for light background colorscheme.
'';
@ -71,7 +72,7 @@ in {
common = mkOption {
type = with types; attrsOf str;
default = {};
default = { };
description = ''
Kitty color settings that the light and dark background colorschemes share.
'';
@ -109,14 +110,15 @@ in {
term-background
];
programs.kitty.settings = optionalAttrs cfg.colors.enable (
programs.kitty.settings = optionalAttrs cfg.colors.enable
(
cfg.colors.common // cfg.colors.${cfg.colors.default} // {
allow_remote_control = "yes";
listen_on = "unix:/tmp/mykitty";
}
cfg.colors.common // cfg.colors.${cfg.colors.default} // {
allow_remote_control = "yes";
listen_on = "unix:/tmp/mykitty";
}
) // optionalAttrs (cfg.useSymbolsFromNerdFont != "") {
) // optionalAttrs (cfg.useSymbolsFromNerdFont != "") {
# https://github.com/ryanoasis/nerd-fonts/wiki/Glyph-Sets-and-Code-Points
symbol_map = "U+E5FA-U+E62B,U+E700-U+E7C5,U+F000-U+F2E0,U+E200-U+E2A9,U+F500-U+FD46,U+E300-U+E3EB,U+F400-U+F4A8,U+2665,U+26a1,U+F27C,U+E0A3,U+E0B4-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+23FB-U+23FE,U+2B58,U+F300-U+F313,U+E000-U+E00D ${cfg.useSymbolsFromNerdFont}";
@ -128,4 +130,4 @@ in {
};
}
}

View File

@ -109,7 +109,7 @@ in
luaPackages = mkOption {
type = with types; listOf package;
default = [];
default = [ ];
example = [ pkgs.luajitPackages.busted pkgs.luajitPackages.luafilesystem ];
description = ''
Lua packages to make available in Neovim Lua environment.
@ -151,7 +151,8 @@ in
'';
programs.fish.interactiveShellInit = mkIf
(cfg.termBufferAutoChangeDir || cfg.nvrAliases.enable) shellConfig;
(cfg.termBufferAutoChangeDir || cfg.nvrAliases.enable)
shellConfig;
programs.neovim.plugins = lib.singleton (
pkgs.vimUtils.buildVimPluginFrom2Nix {
@ -164,4 +165,4 @@ in
}
);
};
}
}

View File

@ -1,7 +1,6 @@
{
system ? builtins.currentSystem,
config ? {},
overlays ? [],
...
{ system ? builtins.currentSystem
, config ? { }
, overlays ? [ ]
, ...
}@args:
import (import ./default.nix).inputs.nixpkgs-unstable args
import (import ./default.nix).inputs.nixpkgs-unstable args

View File

@ -28,7 +28,7 @@ final: prev: {
darkBase = "002b36"; # base03
darkBasehl = "073642"; # base02
darkestTone = "586e75"; # base01
darkTone = "657b83"; # base00
darkTone = "657b83"; # base00
lightTone = "839496"; # base0
lightestTone = "93a1a1"; # base1
lightBasehl = "eee8d5"; # base2
@ -69,4 +69,4 @@ final: prev: {
};
};
};
}
}