Add some packages, format with nixpkgs-fmt
parent
52f410cb3e
commit
a695374977
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 = [ ];
|
||||
}
|
||||
|
|
|
@ -52,4 +52,4 @@
|
|||
TrackpadRightClick = true;
|
||||
TrackpadThreeFingerDrag = true;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
22
default.nix
22
default.nix
|
@ -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
308
flake.nix
|
@ -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 @@
|
|||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,4 +63,4 @@ let inherit (lib) mkDefault; in
|
|||
vagrant.symbol = mkDefault "𝗩 ";
|
||||
zig.symbol = mkDefault " ";
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 = "";
|
||||
# }}}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,4 +28,4 @@
|
|||
# Aliases config imported in flake.
|
||||
programs.gh.enable = true;
|
||||
programs.gh.settings.git_protocol = "ssh";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
'';
|
||||
# }}}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,4 +89,4 @@ in
|
|||
rnix-lsp
|
||||
] ++ optional (pkgs.stdenv.system != "x86_64-darwin") sumneko-lua-language-server;
|
||||
# }}}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -13,5 +13,5 @@
|
|||
''}
|
||||
end
|
||||
'';
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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}
|
||||
'';
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,4 +11,4 @@ in
|
|||
default = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
|||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
|||
}
|
||||
);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
11
nixpkgs.nix
11
nixpkgs.nix
|
@ -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
|
||||
|
|
|
@ -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: {
|
|||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue