WIP move to template
This commit is contained in:
parent
3d62eaafd7
commit
4a2fd7718f
108 changed files with 578 additions and 432 deletions
71
flake.lock
71
flake.lock
|
@ -120,21 +120,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1644229661,
|
|
||||||
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"helix": {
|
"helix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"crane": "crane",
|
"crane": "crane",
|
||||||
|
@ -164,15 +149,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696145345,
|
"lastModified": 1695108154,
|
||||||
"narHash": "sha256-3dM7I/d4751SLPJah0to1WBlWiyzIiuCEUwJqwBdmr4=",
|
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "6f9b5b83ad1f470b3d11b8a9fe1d5ef68c7d0e30",
|
"rev": "07682fff75d41f18327a871088d20af2710d4744",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
|
"ref": "release-23.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -209,6 +195,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-unstable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696019113,
|
||||||
|
"narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696125185,
|
"lastModified": 1696125185,
|
||||||
|
@ -243,15 +245,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696275311,
|
"lastModified": 1696039360,
|
||||||
"narHash": "sha256-Z8aJvoUyMv/+0G7iqYIqecxRDFbz05RK2e3/irbWq9M=",
|
"narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=",
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "828ba8482b64704adad28786355ed8a45d59eb0a",
|
"rev": "32dcb45f66c0487e92db8303a798ebc548cadedc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-23.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -279,8 +282,8 @@
|
||||||
"helix": "helix",
|
"helix": "helix",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"sops-nix": "sops-nix",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"utils": "utils"
|
"sops-nix": "sops-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
|
@ -356,24 +359,6 @@
|
||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"utils": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696272629,
|
|
||||||
"narHash": "sha256-KprLE/cqg5PFNT1PKQRjE/bJpr4AlgedoUPO/4jee+8=",
|
|
||||||
"owner": "gytis-ivaskevicius",
|
|
||||||
"repo": "flake-utils-plus",
|
|
||||||
"rev": "2893fcad90dcc2ac2265c227b5444a7cd7ef21f0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "gytis-ivaskevicius",
|
|
||||||
"repo": "flake-utils-plus",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|
94
flake.nix
94
flake.nix
|
@ -1,26 +1,92 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
|
||||||
utils.url = "github:gytis-ivaskevicius/flake-utils-plus";
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
# nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-channels/nixos-unstable";
|
|
||||||
api-lyte-dev.url = "git+ssh://gitea@git.lyte.dev/lytedev/api.lyte.dev.git";
|
home-manager.url = "github:nix-community/home-manager/release-23.05";
|
||||||
home-manager = {
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:nix-community/home-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
helix.url = "github:helix-editor/helix/75c0a5ceb32d8a503915a93ccc1b64c8ad1cba8b";
|
||||||
# inputs.utils.follows = "utils";
|
|
||||||
};
|
|
||||||
|
|
||||||
disko.url = "github:nix-community/disko/master";
|
disko.url = "github:nix-community/disko/master";
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
helix.url = "github:helix-editor/helix/75c0a5ceb32d8a503915a93ccc1b64c8ad1cba8b";
|
|
||||||
|
# TODO: do I really need this in the root of my flake if _only_ beefcake uses it?
|
||||||
|
api-lyte-dev.url = "git+ssh://gitea@git.lyte.dev/lytedev/api.lyte.dev.git";
|
||||||
|
|
||||||
|
# TODO: hardware.url = "github:nixos/nixos-hardware"; # might be useful for laptops
|
||||||
# TODO: hyprland.url = "github:hyprwm/Hyprland";
|
# TODO: hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
# TODO: nix-colors.url = "github:misterio77/nix-colors";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
home-manager,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
|
inherit (self) outputs;
|
||||||
|
|
||||||
|
systems = [
|
||||||
|
"aarch64-linux"
|
||||||
|
# "i686-linux"
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
"x86_64-darwin"
|
||||||
|
];
|
||||||
|
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||||||
|
in {
|
||||||
|
# Your custom packages
|
||||||
|
# Acessible through 'nix build', 'nix shell', etc
|
||||||
|
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
|
||||||
|
|
||||||
|
# Formatter for your nix files, available through 'nix fmt'
|
||||||
|
# Other options beside 'alejandra' include 'nixpkgs-fmt'
|
||||||
|
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||||
|
|
||||||
|
# Your custom packages and modifications, exported as overlays
|
||||||
|
overlays = import ./overlays {inherit inputs;};
|
||||||
|
|
||||||
|
# Reusable nixos modules you might want to export
|
||||||
|
# These are usually stuff you would upstream into nixpkgs
|
||||||
|
nixosModules = import ./modules/nixos;
|
||||||
|
|
||||||
|
# Reusable home-manager modules you might want to export
|
||||||
|
# These are usually stuff you would upstream into home-manager
|
||||||
|
homeManagerModules = import ./modules/home-manager;
|
||||||
|
|
||||||
|
# NixOS configuration entrypoint
|
||||||
|
# Available through 'nixos-rebuild --flake .#your-hostname'
|
||||||
|
nixosConfigurations = {
|
||||||
|
dragon = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {inherit inputs outputs;};
|
||||||
|
modules = [
|
||||||
|
./nixos/dragon
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Standalone home-manager configuration entrypoint
|
||||||
|
# Available through 'home-manager --flake .#your-username@your-hostname'
|
||||||
|
homeConfigurations = {
|
||||||
|
"daniel@lyte.dev" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {inherit inputs outputs;};
|
||||||
|
modules = [./home-manager/home.nix];
|
||||||
|
};
|
||||||
|
|
||||||
|
"daniel.flanagan@hq.bill.com" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.aarch64-darwin;
|
||||||
|
extraSpecialArgs = {inherit inputs outputs;};
|
||||||
|
modules = [./home-manager/home.nix];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, ... }: {
|
|
||||||
diskoConfigurations = import ./disko.nix;
|
|
||||||
homeConfigurations = import ./home.nix inputs;
|
|
||||||
nixosConfigurations = import ./nixos.nix inputs;
|
|
||||||
# TODO: darwin for work?
|
# TODO: darwin for work?
|
||||||
# TODO: nixos ISO?
|
# TODO: nixos ISO?
|
||||||
|
|
||||||
|
# Disk partition schemes and functions
|
||||||
|
diskoConfigurations = import ./disko.nix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
25
home.nix
25
home.nix
|
@ -1,25 +0,0 @@
|
||||||
inputs:
|
|
||||||
let
|
|
||||||
mkHome = system: modules:
|
|
||||||
let
|
|
||||||
overlay = final: prev: {
|
|
||||||
helix = prev.helix // inputs.helix.packages.${system}.helix;
|
|
||||||
};
|
|
||||||
pkgs = import inputs.nixpkgs { inherit system; overlays = [ overlay ]; };
|
|
||||||
in
|
|
||||||
inputs.home-manager.lib.homeManagerConfiguration {
|
|
||||||
inherit pkgs;
|
|
||||||
modules = [ ] ++ modules;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
daniel = mkHome "x86_64-linux" [
|
|
||||||
./home/user.nix
|
|
||||||
./home/linux.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
daniel-work = mkHome "aarch64-darwin" [
|
|
||||||
./home/user.nix
|
|
||||||
./home/work.nix
|
|
||||||
];
|
|
||||||
}
|
|
25
home/default.nix
Normal file
25
home/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
inputs: let
|
||||||
|
mkHome = system: modules: let
|
||||||
|
overlay = final: prev: {
|
||||||
|
helix = prev.helix // inputs.helix.packages.${system}.helix;
|
||||||
|
};
|
||||||
|
pkgs = import inputs.nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = [overlay];
|
||||||
|
};
|
||||||
|
in
|
||||||
|
inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
|
inherit pkgs;
|
||||||
|
modules = [] ++ modules;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
daniel = mkHome "x86_64-linux" [
|
||||||
|
./home/user.nix
|
||||||
|
./home/linux.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
daniel-work = mkHome "aarch64-darwin" [
|
||||||
|
./home/user.nix
|
||||||
|
./home/work.nix
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
{ pkgs, lib, ... }:
|
{
|
||||||
let
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
email = "daniel@lyte.dev";
|
email = "daniel@lyte.dev";
|
||||||
name = "Daniel Flanagan";
|
name = "Daniel Flanagan";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
# TODO: email access?
|
# TODO: email access?
|
||||||
# accounts.email.accounts = {
|
# accounts.email.accounts = {
|
||||||
# google = {
|
# google = {
|
||||||
|
@ -36,7 +38,10 @@ in
|
||||||
pkgs.nixpkgs-fmt
|
pkgs.nixpkgs-fmt
|
||||||
|
|
||||||
# TODO: os-specific scripts? macOS versus Linux (arch or nixos? do I need to distinguish at that point?)
|
# TODO: os-specific scripts? macOS versus Linux (arch or nixos? do I need to distinguish at that point?)
|
||||||
(pkgs.buildEnv { name = "my-scripts-common"; paths = [ ../scripts/common ]; })
|
(pkgs.buildEnv {
|
||||||
|
name = "my-scripts-common";
|
||||||
|
paths = [../scripts/common];
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
file = {
|
file = {
|
||||||
|
@ -79,7 +84,7 @@ in
|
||||||
programs = {
|
programs = {
|
||||||
password-store = {
|
password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = (pkgs.pass.withExtensions (exts: [ exts.pass-otp ]));
|
package = pkgs.pass.withExtensions (exts: [exts.pass-otp]);
|
||||||
};
|
};
|
||||||
|
|
||||||
git = {
|
git = {
|
||||||
|
@ -172,7 +177,11 @@ in
|
||||||
deno = {
|
deno = {
|
||||||
command = "deno";
|
command = "deno";
|
||||||
args = ["lsp"];
|
args = ["lsp"];
|
||||||
config = { enable = true; lint = true; unstable = true; };
|
config = {
|
||||||
|
enable = true;
|
||||||
|
lint = true;
|
||||||
|
unstable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -256,7 +265,10 @@ in
|
||||||
roots = ["deno.jsonc" "deno.json"];
|
roots = ["deno.jsonc" "deno.json"];
|
||||||
file-types = ["jsonc"];
|
file-types = ["jsonc"];
|
||||||
language-servers = ["deno"];
|
language-servers = ["deno"];
|
||||||
indent = { tab-width = 2; unit = " "; };
|
indent = {
|
||||||
|
tab-width = 2;
|
||||||
|
unit = " ";
|
||||||
|
};
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,12 +347,15 @@ in
|
||||||
center = ["file-name"];
|
center = ["file-name"];
|
||||||
right = ["version-control" "total-line-numbers" "file-encoding"];
|
right = ["version-control" "total-line-numbers" "file-encoding"];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
keys = {
|
keys = {
|
||||||
|
|
||||||
insert = {
|
insert = {
|
||||||
j = { k = "normal_mode"; j = "normal_mode"; K = "normal_mode"; J = "normal_mode"; };
|
j = {
|
||||||
|
k = "normal_mode";
|
||||||
|
j = "normal_mode";
|
||||||
|
K = "normal_mode";
|
||||||
|
J = "normal_mode";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
normal = {
|
normal = {
|
||||||
|
@ -362,9 +377,11 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
select = {
|
select = {
|
||||||
space = { q = ":reflow 80"; Q = ":reflow 120"; };
|
space = {
|
||||||
|
q = ":reflow 80";
|
||||||
|
Q = ":reflow 120";
|
||||||
|
};
|
||||||
"L" = "repeat_last_motion";
|
"L" = "repeat_last_motion";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -406,7 +423,8 @@ in
|
||||||
repo = "bat";
|
repo = "bat";
|
||||||
rev = "477622171ec0529505b0ca3cada68fc9433648c6";
|
rev = "477622171ec0529505b0ca3cada68fc9433648c6";
|
||||||
sha256 = "6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
|
sha256 = "6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
|
||||||
} + "/Catppuccin-mocha.tmTheme");
|
}
|
||||||
|
+ "/Catppuccin-mocha.tmTheme");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -689,7 +707,11 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
verbs = [
|
verbs = [
|
||||||
{ invocation = "edit"; shortcut = "e"; execution = "$EDITOR {file}"; }
|
{
|
||||||
|
invocation = "edit";
|
||||||
|
shortcut = "e";
|
||||||
|
execution = "$EDITOR {file}";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
|
@ -1,4 +1,8 @@
|
||||||
{ config, pkgs, ... }: {
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
name = "Bibata-Modern-Classic";
|
name = "Bibata-Modern-Classic";
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
|
@ -16,16 +20,39 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
events = [
|
events = [
|
||||||
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock"; }
|
{
|
||||||
|
event = "before-sleep";
|
||||||
|
command = "${pkgs.swaylock}/bin/swaylock";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
timeouts = [
|
timeouts = [
|
||||||
{ timeout = 330; command = "notify-send \"Idling in 300 seconds\""; resumeCommand = "notify-send \"Idling cancelled.\""; }
|
{
|
||||||
{ timeout = 540; command = "notify-send \"Idling in 90 seconds\""; }
|
timeout = 330;
|
||||||
{ timeout = 570; command = "notify-send \"Idling in 60 seconds\""; }
|
command = "notify-send \"Idling in 300 seconds\"";
|
||||||
{ timeout = 600; command = "notify-send \"Idling in 30 seconds...\""; }
|
resumeCommand = "notify-send \"Idling cancelled.\"";
|
||||||
{ timeout = 630; command = "swaylock -f"; }
|
}
|
||||||
{ timeout = 660; command = "swaymsg \"output * dpms off\""; resumeCommand = "swaymsg \"output * dpms on\" & maybe-good-morning &"; }
|
{
|
||||||
|
timeout = 540;
|
||||||
|
command = "notify-send \"Idling in 90 seconds\"";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 570;
|
||||||
|
command = "notify-send \"Idling in 60 seconds\"";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 600;
|
||||||
|
command = "notify-send \"Idling in 30 seconds...\"";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 630;
|
||||||
|
command = "swaylock -f";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
timeout = 660;
|
||||||
|
command = "swaymsg \"output * dpms off\"";
|
||||||
|
resumeCommand = "swaymsg \"output * dpms on\" & maybe-good-morning &";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -88,8 +115,14 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
startup = [
|
startup = [
|
||||||
{ command = "systemctl --user restart waybar"; always = true; }
|
{
|
||||||
{ command = "systemctl --user restart swayidle"; always = true; }
|
command = "systemctl --user restart waybar";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "systemctl --user restart swayidle";
|
||||||
|
always = true;
|
||||||
|
}
|
||||||
{command = "firefox";}
|
{command = "firefox";}
|
||||||
{command = "kitty --single-instance";}
|
{command = "kitty --single-instance";}
|
||||||
];
|
];
|
||||||
|
@ -130,9 +163,10 @@
|
||||||
middle_emulation = "enabled";
|
middle_emulation = "enabled";
|
||||||
# pointer_accel
|
# pointer_accel
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
keybindings = let mod = config.wayland.windowManager.sway.config.modifier; in {
|
keybindings = let
|
||||||
|
mod = config.wayland.windowManager.sway.config.modifier;
|
||||||
|
in {
|
||||||
# bindsym $mod+shift+space exec wofi --show drun
|
# bindsym $mod+shift+space exec wofi --show drun
|
||||||
"${mod}+control+space" = "exec makoctl dismiss";
|
"${mod}+control+space" = "exec makoctl dismiss";
|
||||||
"${mod}+shift+space" = "exec makoctl invoke";
|
"${mod}+shift+space" = "exec makoctl invoke";
|
||||||
|
@ -257,7 +291,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(pkgs.buildEnv { name = "my-linux-scripts"; paths = [ ../scripts/linux ]; })
|
(pkgs.buildEnv {
|
||||||
|
name = "my-linux-scripts";
|
||||||
|
paths = [../scripts/linux];
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
@ -638,7 +675,6 @@
|
||||||
systemd = {
|
systemd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
firefox = {
|
firefox = {
|
||||||
|
@ -647,7 +683,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# TODO: uses nixpkgs.pass so pass otp doesn't work
|
# TODO: uses nixpkgs.pass so pass otp doesn't work
|
||||||
package = (pkgs.firefox.override { extraNativeMessagingHosts = [ pkgs.passff-host ]; });
|
package = pkgs.firefox.override {extraNativeMessagingHosts = [pkgs.passff-host];};
|
||||||
|
|
||||||
# extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
# extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||||
# ublock-origin
|
# ublock-origin
|
||||||
|
@ -726,5 +762,3 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{ lib, ... }:
|
{lib, ...}: let
|
||||||
let
|
|
||||||
username = "daniel.flanagan@divvypay.com";
|
username = "daniel.flanagan@divvypay.com";
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
home.username = username;
|
home.username = username;
|
||||||
home.homeDirectory = "/Users/${username}";
|
home.homeDirectory = "/Users/${username}";
|
||||||
}
|
}
|
||||||
|
|
6
modules/home-manager/default.nix
Normal file
6
modules/home-manager/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
|
||||||
|
# These should be stuff you would like to share with others, not your personal configurations.
|
||||||
|
{
|
||||||
|
# List your module files here
|
||||||
|
# my-module = import ./my-module.nix;
|
||||||
|
}
|
|
@ -1,3 +1,7 @@
|
||||||
{ config, lib, ... }: {
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
}
|
}
|
14
modules/nixos/default.nix
Normal file
14
modules/nixos/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
|
||||||
|
# These should be stuff you would like to share with others, not your personal configurations.
|
||||||
|
{
|
||||||
|
amd = import ./amd.nix;
|
||||||
|
default = import ./default.nix;
|
||||||
|
desktop-usage = import ./desktop-usage.nix;
|
||||||
|
intel = import ./intel.nix;
|
||||||
|
pipewire = import ./pipewire.nix;
|
||||||
|
podman = import ./podman.nix;
|
||||||
|
postgres = import ./postgres.nix;
|
||||||
|
sway = import ./sway.nix;
|
||||||
|
user-installed-applications = import ./user-installed-applications.nix;
|
||||||
|
wifi = import ./wifi.nix;
|
||||||
|
}
|
|
@ -147,4 +147,3 @@
|
||||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
{ lib, config, pkgs, ... }: {
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
nixpkgs.config = {
|
nixpkgs.config = {
|
||||||
packageOverrides = pkgs: {
|
packageOverrides = pkgs: {
|
||||||
vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;};
|
vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;};
|
|
@ -1,5 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{pkgs, ...}: let
|
||||||
let
|
|
||||||
# this is unused because it's referenced by my sway config
|
# this is unused because it's referenced by my sway config
|
||||||
dbus-sway-environment = pkgs.writeTextFile {
|
dbus-sway-environment = pkgs.writeTextFile {
|
||||||
name = "dbus-sway-environment";
|
name = "dbus-sway-environment";
|
||||||
|
@ -18,19 +17,16 @@ let
|
||||||
name = "configure-gtk";
|
name = "configure-gtk";
|
||||||
destination = "/bin/configure-gtk";
|
destination = "/bin/configure-gtk";
|
||||||
executable = true;
|
executable = true;
|
||||||
text =
|
text = let
|
||||||
let
|
|
||||||
schema = pkgs.gsettings-desktop-schemas;
|
schema = pkgs.gsettings-desktop-schemas;
|
||||||
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
|
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
|
||||||
in
|
in ''
|
||||||
''
|
|
||||||
export XDG_DATA_DIRS="${datadir}:$XDG_DATA_DIRS
|
export XDG_DATA_DIRS="${datadir}:$XDG_DATA_DIRS
|
||||||
gnome_schema = org.gnome.desktop.interface
|
gnome_schema = org.gnome.desktop.interface
|
||||||
gsettings set $gnome_schema gtk-theme 'Catppuccin-Mocha'
|
gsettings set $gnome_schema gtk-theme 'Catppuccin-Mocha'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
imports = [./pipewire.nix];
|
imports = [./pipewire.nix];
|
||||||
|
|
||||||
# services.xserver.libinput.enable = true;
|
# services.xserver.libinput.enable = true;
|
|
@ -1,8 +1,12 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running 'nixos-help').
|
# and in the NixOS manual (accessible by running 'nixos-help').
|
||||||
|
{
|
||||||
{ modulesPath, config, pkgs, ... }: {
|
modulesPath,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
../modules/intel.nix
|
../modules/intel.nix
|
||||||
|
@ -11,8 +15,7 @@
|
||||||
boot.initrd.availableKernelModules = ["ehci_pci" "megaraid_sas" "usbhid" "uas" "sd_mod"];
|
boot.initrd.availableKernelModules = ["ehci_pci" "megaraid_sas" "usbhid" "uas" "sd_mod"];
|
||||||
boot.kernelModules = ["kvm-intel"];
|
boot.kernelModules = ["kvm-intel"];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{
|
|
||||||
device = "/dev/disk/by-uuid/0747dcba-f590-42e6-89c8-6cb2f9114d64";
|
device = "/dev/disk/by-uuid/0747dcba-f590-42e6-89c8-6cb2f9114d64";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
options = [
|
options = [
|
||||||
|
@ -20,14 +23,12 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{
|
|
||||||
device = "/dev/disk/by-uuid/7E3C-9018";
|
device = "/dev/disk/by-uuid/7E3C-9018";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/storage" =
|
fileSystems."/storage" = {
|
||||||
{
|
|
||||||
device = "/dev/disk/by-uuid/ea8258d7-54d1-430e-93b3-e15d33231063";
|
device = "/dev/disk/by-uuid/ea8258d7-54d1-430e-93b3-e15d33231063";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [
|
options = [
|
||||||
|
@ -182,9 +183,11 @@
|
||||||
users.users.restic = {
|
users.users.restic = {
|
||||||
# used for other machines to backup to
|
# used for other machines to backup to
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys =
|
||||||
|
[
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJbPqzKB09U+i4Kqu136yOjflLZ/J7pYsNulTAd4x903 root@chromebox.h.lyte.dev"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJbPqzKB09U+i4Kqu136yOjflLZ/J7pYsNulTAd4x903 root@chromebox.h.lyte.dev"
|
||||||
] ++ config.users.users.daniel.openssh.authorizedKeys.keys;
|
]
|
||||||
|
++ config.users.users.daniel.openssh.authorizedKeys.keys;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.guest = {
|
users.users.guest = {
|
||||||
|
@ -452,8 +455,14 @@
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
listenAddresses = [
|
listenAddresses = [
|
||||||
{ addr = "0.0.0.0"; port = 64022; }
|
{
|
||||||
{ addr = "0.0.0.0"; port = 22; }
|
addr = "0.0.0.0";
|
||||||
|
port = 64022;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 22;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
{ config, lib, inputs, system, ... }:
|
|
||||||
let
|
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
pkgs = inputs.nixpkgs.legacyPackages.${system};
|
||||||
|
in {
|
||||||
services.journald.extraConfig = "SystemMaxUse=1G";
|
services.journald.extraConfig = "SystemMaxUse=1G";
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
inputs @ { self, ... }:
|
inputs @ {self, ...}: let
|
||||||
let
|
|
||||||
daniel = system: {
|
daniel = system: {
|
||||||
home-manager.users.daniel = {
|
home-manager.users.daniel = {
|
||||||
imports = [./home/user.nix ./home/linux.nix];
|
imports = [./home/user.nix ./home/linux.nix];
|
||||||
|
@ -16,13 +15,15 @@ let
|
||||||
];
|
];
|
||||||
nixosSystem = system: modules: (inputs.nixpkgs.lib.nixosSystem {
|
nixosSystem = system: modules: (inputs.nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {inherit inputs system;};
|
specialArgs = {inherit inputs system;};
|
||||||
modules = [
|
modules =
|
||||||
|
[
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
./nixos/common.nix
|
./nixos/common.nix
|
||||||
] ++ modules ++ hms system;
|
]
|
||||||
|
++ modules
|
||||||
|
++ hms system;
|
||||||
});
|
});
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
# TODO: disko-fy rascal and beefcake?
|
# TODO: disko-fy rascal and beefcake?
|
||||||
|
|
||||||
beefcake = nixosSystem "x86_64-linux" [
|
beefcake = nixosSystem "x86_64-linux" [
|
||||||
|
@ -36,17 +37,20 @@ in
|
||||||
{
|
{
|
||||||
scheme = "unencrypted";
|
scheme = "unencrypted";
|
||||||
disks = ["/dev/sda"];
|
disks = ["/dev/sda"];
|
||||||
} ++ [ ./nixos/musicbox.nix ]);
|
}
|
||||||
|
++ [./nixos/musicbox.nix]);
|
||||||
|
|
||||||
thinker = nixosSystem "x86_64-linux" (disko
|
thinker = nixosSystem "x86_64-linux" (disko
|
||||||
{
|
{
|
||||||
scheme = "thinker";
|
scheme = "thinker";
|
||||||
disks = ["/dev/nvme0n1"];
|
disks = ["/dev/nvme0n1"];
|
||||||
} ++ [ ./nixos/thinker.nix ]);
|
}
|
||||||
|
++ [./nixos/thinker.nix]);
|
||||||
|
|
||||||
dragon = nixosSystem "x86_64-linux" (disko
|
dragon = nixosSystem "x86_64-linux" (disko
|
||||||
{
|
{
|
||||||
scheme = "standard";
|
scheme = "standard";
|
||||||
disks = ["/dev/nvme0n1"];
|
disks = ["/dev/nvme0n1"];
|
||||||
} ++ [ ./nixos/dragon.nix ]);
|
}
|
||||||
|
++ [./nixos/dragon.nix]);
|
||||||
}
|
}
|
|
@ -1,43 +0,0 @@
|
||||||
{ modulesPath, lib, pkgs, ... }: {
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
../modules/amd.nix
|
|
||||||
../modules/desktop-usage.nix
|
|
||||||
../modules/podman.nix
|
|
||||||
../modules/wifi.nix
|
|
||||||
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
# TODO: fonts? right now, I'm just installing to ~/.local/share/fonts
|
|
||||||
|
|
||||||
# hardware
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
|
|
||||||
|
|
||||||
networking.hostName = "dragon";
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
|
||||||
services.printing.enable = true;
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
radeontop
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
allowPing = true;
|
|
||||||
allowedTCPPorts = [ 22 ];
|
|
||||||
allowedUDPPorts = [ ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
|
||||||
}
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue