Compare commits

...

17 Commits

13 changed files with 60 additions and 27 deletions

View File

@ -15,8 +15,8 @@ in
{ {
imports = getModules ./.; imports = getModules ./.;
nixpkgs.config.allowUnfree = true; # nixpkgs.config.allowUnfree = true;
nixpkgs.overlays = [ self.overlays.default ]; # nixpkgs.overlays = [ self.overlays.default ];
snowhawk.user.enable = lib.mkDefault true; snowhawk.user.enable = lib.mkDefault true;
snowhawk.tmux.enable = lib.mkDefault true; snowhawk.tmux.enable = lib.mkDefault true;

17
home/modules/direnv.nix Normal file
View File

@ -0,0 +1,17 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.direnv;
in
{
options.snowhawk.direnv = {
enable = lib.mkEnableOption "direnv home-manager module";
};
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
};
}

View File

@ -3,6 +3,7 @@
let let
cfg = config.snowhawk.git; cfg = config.snowhawk.git;
macos = config.snowhawk.macos.enable; macos = config.snowhawk.macos.enable;
direnv = config.snowhawk.direnv.enable;
sshifyPushUrl = sshifyPushUrl =
let let
@ -35,6 +36,8 @@ in
ignores = [ ignores = [
"Session.vim" "Session.vim"
(lib.mkIf macos ".DS_Store") (lib.mkIf macos ".DS_Store")
(lib.mkIf direnv ".direnv/")
(lib.mkIf direnv ".envrc")
]; ];
aliases = { aliases = {

View File

@ -36,6 +36,7 @@ in
extraConfig = '' extraConfig = ''
set-option -g renumber-windows on set-option -g renumber-windows on
set-option -g focus-events on set-option -g focus-events on
set-option -g terminal-features 'alacritty:RGB'
bind '"' split-window -v -c "#{pane_current_path}" bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}"

View File

@ -19,6 +19,12 @@ in
(writeShellScriptBin "iinact" '' (writeShellScriptBin "iinact" ''
${pkgs.brave}/bin/brave --new-window "http://proxy.iinact.com/overlay/skyline/?OVERLAY_WS=ws://127.0.0.1:10501/ws" ${pkgs.brave}/bin/brave --new-window "http://proxy.iinact.com/overlay/skyline/?OVERLAY_WS=ws://127.0.0.1:10501/ws"
'') '')
# (lib.mkIf cfg.textools.enable pkgs.wrapWine {
# # https://gist.github.com/helpful-fox-senko-san/6238143f5c7352ab44e62c5a0f7f7642
# name = "textools";
# tricks = [ "dotnet48" "dxvk" ];
# })
] ++ map (name: (writeShellScriptBin name launchffxiv)) [ "ff14" "xivlauncher" ]; ] ++ map (name: (writeShellScriptBin name launchffxiv)) [ "ff14" "xivlauncher" ];
}; };
} }

View File

@ -128,7 +128,7 @@
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
RemainAfterExit = "true"; RemainAfterExit = "true";
ExecStart = "${pkgs.ethtool}/sbin/ethtool -s enp7s0 wol g"; ExecStart = "${lib.getExe pkgs.ethtool} -s enp7s0 wol g";
}; };
wantedBy = [ "default.target" ]; wantedBy = [ "default.target" ];
}; };

View File

@ -78,7 +78,7 @@
# Enable this if you have graphical corruption issues or application crashes after waking # Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials. # of just the bare essentials.
powerManagement.enable = false; powerManagement.enable = true;
# Fine-grained power management. Turns off GPU when not in use. # Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer). # Experimental and only works on modern Nvidia GPUs (Turing or newer).

View File

@ -13,10 +13,10 @@ in
package = neovim-package; package = neovim-package;
}; };
snowhawk = { snowhawk = {
direnv.enable = true;
alacritty.enable = true; alacritty.enable = true;
theme.enable = true; theme.enable = true;
projects.enable = true; projects.enable = true;
lazygit.enable = true;
dunst.enable = true; dunst.enable = true;
sops.enable = true; sops.enable = true;
defaultPrograms.enable = true; defaultPrograms.enable = true;

View File

@ -1,12 +1,21 @@
{ nixpkgs, self, ... }@inputs: { nixpkgs, self, ... }@inputs:
let let
lib = nixpkgs.lib.extend (import ../lib); makePkgs = system: (import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [ self.overlays.default ];
});
lib = nixpkgs.lib;
# libExt = import ./. lib;
inherit (inputs.home-manager.lib) homeManagerConfiguration; inherit (inputs.home-manager.lib) homeManagerConfiguration;
inherit (nixpkgs.lib) nixosSystem; inherit (lib) nixosSystem;
inherit (lib.strings) optionalString; inherit (lib.strings) optionalString;
inherit (lib.attrsets) nameValuePair; inherit (lib.attrsets) nameValuePair;
# inherit (libExt) right;
in in
rec { rec {
toPartialNixosConfig = toPartialNixosConfig =
@ -14,8 +23,9 @@ rec {
nameValuePair nameValuePair
hostname hostname
(nixosSystem { (nixosSystem {
inherit system; pkgs = makePkgs system;
specialArgs = { inherit inputs lib self; }; specialArgs = { inherit inputs self; };
modules = [ modules = [
../hosts/${hostname}/hardware-configuration.nix ../hosts/${hostname}/hardware-configuration.nix
../hosts/${hostname}/configuration.nix ../hosts/${hostname}/configuration.nix
@ -24,10 +34,8 @@ rec {
}); });
compileSystems = compileSystems =
systems: systems:
lib.right (builtins.listToAttrs
builtins.listToAttrs (map toPartialNixosConfig systems));
(map toPartialNixosConfig)
systems;
toPartialHomeManagerConfig = toPartialHomeManagerConfig =
{ user, system, hostname ? "", configHostname ? "" }: { user, system, hostname ? "", configHostname ? "" }:
@ -39,11 +47,8 @@ rec {
nameValuePair nameValuePair
"${user}${hostStr}" "${user}${hostStr}"
(homeManagerConfiguration { (homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system}; pkgs = makePkgs system;
extraSpecialArgs = { extraSpecialArgs = { inherit inputs self; };
inherit inputs self;
lib = lib.extend (_: _: inputs.home-manager.lib);
};
modules = [ modules = [
../hosts/${configHost}/home.nix ../hosts/${configHost}/home.nix
@ -51,8 +56,6 @@ rec {
}); });
compileHomes = compileHomes =
systems: systems:
lib.right (builtins.listToAttrs
builtins.listToAttrs (map toPartialHomeManagerConfig systems));
(map toPartialHomeManagerConfig)
systems;
} }

View File

@ -1,5 +1,4 @@
final: prev: lib:
with prev;
rec { rec {
# Ternary operator # Ternary operator
# Exaample: # Exaample:
@ -10,7 +9,7 @@ rec {
# Right-associate and chain following single-operand functions # Right-associate and chain following single-operand functions
# Example: # Example:
# right f g h 1 => f(g(h(1))) # right f g h 1 => f(g(h(1)))
right = f: g: tern (isFunction g) right = f: g: tern (lib.isFunction g)
(right (x: f (g (x)))) (right (x: f (g (x))))
(f (g)); (f (g));
} }

2
lib/overlay.nix Normal file
View File

@ -0,0 +1,2 @@
final: prev:
(import ./. prev)

View File

@ -14,5 +14,5 @@ in
snowhawk.audio.enable = lib.mkDefault true; snowhawk.audio.enable = lib.mkDefault true;
snowhawk.env.enable = lib.mkDefault true; snowhawk.env.enable = lib.mkDefault true;
snowhawk.sops.enable = lib.mkDefault true; snowhawk.sops.enable = lib.mkDefault true;
snowhawk.nixpkgs.enable = lib.mkDefault true; snowhawk.nixpkgs.enable = lib.mkDefault false;
} }

View File

@ -3,7 +3,9 @@ let
callDefaultPackage = path: prev.callPackage path { }; callDefaultPackage = path: prev.callPackage path { };
in in
{ {
# lib = prev.lib.extend import ../lib/overlay.nix;
wrapWine = callDefaultPackage ./wrapWine; wrapWine = callDefaultPackage ./wrapWine;
writeXrandrScriptBin = callDefaultPackage ./writeXrandrScriptBin; writeXrandrScriptBin = callDefaultPackage ./writeXrandrScriptBin;
borderlessBrowser = callDefaultPackage ./writeXrandrScriptBin; borderlessBrowser = callDefaultPackage ./borderlessBrowser;
} }