update jan 6

This commit is contained in:
minish 2025-01-06 14:50:04 -05:00
parent 39124a02de
commit f976b8a3ff
Signed by: min
SSH Key Fingerprint: SHA256:PDf6DSaU0lWsQ57NzQGdm8HUKftULYFYzxPJolepY58
20 changed files with 892 additions and 24 deletions

View File

@ -1,5 +1,74 @@
{
"nodes": {
"catppuccin": {
"inputs": {
"catppuccin-v1_1": "catppuccin-v1_1",
"catppuccin-v1_2": "catppuccin-v1_2",
"home-manager": "home-manager",
"home-manager-stable": "home-manager-stable",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable",
"nuscht-search": "nuscht-search"
},
"locked": {
"lastModified": 1736069220,
"narHash": "sha256-76MaB3COao55nlhWmSmq9PKgu2iGIs54C1cAE0E5J6Y=",
"owner": "catppuccin",
"repo": "nix",
"rev": "8eada392fd6571a747e1c5fc358dd61c14c8704e",
"type": "github"
},
"original": {
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"catppuccin-v1_1": {
"locked": {
"lastModified": 1734055249,
"narHash": "sha256-pCWJgwo77KD7EJpwynwKrWPZ//dwypHq2TfdzZWqK68=",
"rev": "7221d6ca17ac36ed20588e1c3a80177ac5843fa7",
"revCount": 326,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.1.1/0193bdc0-b045-7eed-bbec-95611a8ecdf5/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/catppuccin/nix/1.1.%2A.tar.gz"
}
},
"catppuccin-v1_2": {
"locked": {
"lastModified": 1734728407,
"narHash": "sha256-Let3uJo4YDyfqbqaw66dpZxhJB2TrDyZWSFd5rpPLJA=",
"rev": "23ee86dbf4ed347878115a78971d43025362fab1",
"revCount": 341,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/catppuccin/nix/1.2.0/0193e5e0-33b7-7149-a362-bfe56b20f64e/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/catppuccin/nix/1.2.%2A.tar.gz"
}
},
"crane": {
"locked": {
"lastModified": 1731098351,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"disko": {
"inputs": {
"nixpkgs": [
@ -20,6 +89,22 @@
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
@ -38,7 +123,111 @@
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"pre-commit-hooks-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"catppuccin",
"nixpkgs"
]
},
"locked": {
"lastModified": 1734622215,
"narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager-stable": {
"inputs": {
"nixpkgs": [
"catppuccin",
"nixpkgs-stable"
]
},
"locked": {
"lastModified": 1734366194,
"narHash": "sha256-vykpJ1xsdkv0j8WOVXrRFHUAdp9NXHpxdnn1F4pYgSw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "80b0fdf483c5d1cb75aaad909bd390d48673857f",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
@ -74,6 +263,59 @@
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"catppuccin",
"nuscht-search",
"flake-utils"
],
"nixpkgs": [
"catppuccin",
"nuscht-search",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1734994463,
"narHash": "sha256-S9MgfQjNt4J3I7obdLOVY23h+Yl/hnyibwGfOl+1uOE=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "93e6f0d77548be8757c11ebda5c4235ef4f3bc67",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "lanzaboote",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1734954597,
@ -117,17 +359,122 @@
"url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1734600368,
"narHash": "sha256-nbG9TijTMcfr+au7ZVbKpAhMJzzE2nQBYmRvSdXUD8g=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b47fd6fa00c6afca88b8ee46cfdb00e104f50bca",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nuscht-search": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"catppuccin",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733773348,
"narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=",
"owner": "NuschtOS",
"repo": "search",
"rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
"lanzaboote",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"lanzaboote",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"catppuccin": "catppuccin",
"disko": "disko",
"flake-parts": "flake-parts",
"home-manager": "home-manager",
"home-manager": "home-manager_2",
"impermanence": "impermanence",
"lanzaboote": "lanzaboote",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"sops-nix": "sops-nix"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731897198,
"narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
@ -147,6 +494,21 @@
"repo": "sops-nix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View File

@ -18,6 +18,12 @@
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
lanzaboote.url = "github:nix-community/lanzaboote";
lanzaboote.inputs.nixpkgs.follows = "nixpkgs";
catppuccin.url = "github:catppuccin/nix";
catppuccin.inputs.nixpkgs.follows = "nixpkgs";
};
nixConfig = {

View File

@ -1,13 +1,17 @@
{pkgs, ...}: {
{inputs, ...}: {
imports = [
inputs.catppuccin.homeManagerModules.catppuccin
./firefox.nix
./git.nix
./helix.nix
./hyprland.nix
./mpris.nix
./nh.nix
./shell.nix
./ssh.nix
./social.nix
];
home.packages = [pkgs.fastfetch];
home.stateVersion = "24.11";
}

12
homes/min/firefox.nix Normal file
View File

@ -0,0 +1,12 @@
_: {
programs.librewolf = {
enable = true;
settings = {
"webgl.disabled" = false;
"privacy.resistFingerprinting" = false;
"places.history.enabled" = false;
"middlemouse.paste" = false;
"general.autoScroll" = true;
};
};
}

View File

@ -10,6 +10,7 @@ _: {
extraConfig = {
gpg.format = "ssh";
user.signingkey = "~/.ssh/id_ecdsa.pub";
init.defaultBranch = "main";
core.pager = "";
};

View File

@ -4,7 +4,7 @@ _: {
defaultEditor = true;
settings = {
theme = "autumn";
# theme = "autumn";
editor = {
cursor-shape.insert = "bar";
file-picker.hidden = false;

View File

@ -1,23 +1,194 @@
{pkgs, ...}: {
{
lib,
pkgs,
...
}: let
borderRadius = 8;
borderSize = 2;
# TODO: font
# TODO: status bar
in {
imports = [
./waybar.nix
];
catppuccin = {
flavor = "mocha";
accent = "lavender";
hyprland.enable = true;
rofi.enable = true;
kitty.enable = true;
mako.enable = true;
waybar.enable = true;
helix.enable = true;
zsh-syntax-highlighting.enable = true;
cursors.enable = true;
};
programs.kitty = {
enable = true;
shellIntegration.enableZshIntegration = true;
settings = {
window_padding_width = 2;
};
};
# electron app hint
home.sessionVariables.NIXOS_OZONE_WL = "1";
xdg.portal = {
enable = true;
extraPortals = [pkgs.xdg-desktop-portal-hyprland];
configPackages = [pkgs.hyprland];
config = {};
};
home.packages = with pkgs; [
brightnessctl
playerctl
pavucontrol
hyprsunset
hyprpolkitagent
grimblast
];
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
};
# prefer dark mode for GTK
dconf.settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
gtk = {
enable = true;
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = true;
};
};
services.mako = {
enable = true;
inherit borderRadius borderSize;
padding = "10";
};
services.hyprpaper = {
enable = true;
settings = {
preload = [];
wallpaper = [];
};
};
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
settings = {
"$mod" = "SUPER";
"$term" = "kitty";
"$menu" = "rofi -show drun";
"$scshot" = "grimblast copy area";
bind = [
"$mod, Return, exec, ${pkgs.kitty}/bin/kitty"
"$mod, M, exit,"
monitor = [
"eDP-1, 2880x1920@120, 0x0, 1.875"
];
exec-once = [
"systemctl start --user hyprpolkitagent.service"
];
bind =
[
"$mod SHIFT, Y, exit,"
"$mod SHIFT, Return, exec, $term"
"$mod, P, exec, $menu"
", Print, exec, $scshot"
"$mod, W, killactive,"
"$mod, Return, togglefloating,"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
]
++ (lib.concatLists (lib.genList (i: let
ws = i + 1;
in [
"$mod, code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
])
9));
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
bindel = [
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
bindl = [
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
];
windowrulev2 = [
"suppressevent maximize, class:.*"
"float, title:.*"
"float, initialTitle:.*(Open Files).*"
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
general = {
layout = "dwindle";
border_size = borderSize;
"col.active_border" = "$lavender";
"col.inactive_border" = "$surface0";
};
decoration = {
rounding = borderRadius;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
};
};
}

4
homes/min/mpris.nix Normal file
View File

@ -0,0 +1,4 @@
_: {
# Enable MPRIS proxy for Bluetooth media control
services.mpris-proxy.enable = true;
}

View File

@ -2,4 +2,4 @@ _: {
programs.nh = {
enable = true;
};
}
}

View File

@ -14,12 +14,20 @@ _: {
autocd = true;
shellAliases = {
l = "eza";
cl = "clear";
md = "mkdir -p";
ip = "ip --color";
};
initExtra = ''
unsetopt HIST_SAVE_BY_COPY
'';
oh-my-zsh = {
# enable = true;
theme = "eastwood";
};
};
direnv = enableZsh;
@ -27,11 +35,13 @@ _: {
fzf = enableZsh;
eza = enableZsh;
zoxide = enableZsh;
ripgrep.enable = true;
fastfetch.enable = true;
tmux.enable = true;
btop = {
enable = true;
settings.color_theme = "ayu";
# settings.color_theme = "ayu";
};
};
}

3
homes/min/social.nix Normal file
View File

@ -0,0 +1,3 @@
{pkgs, ...}: {
home.packages = [pkgs.vesktop];
}

40
homes/min/ssh.nix Normal file
View File

@ -0,0 +1,40 @@
{pkgs, ...}: {
home.packages = [pkgs.ssh-tpm-agent];
programs.zsh.profileExtra = ''
export SSH_AUTH_SOCK=$(ssh-tpm-agent --print-socket)
'';
# reworked from `ssh-tpm-agent --install-user-units`
systemd.user = {
services.ssh-tpm-agent = {
Unit = {
ConditionEnvironment = "!SSH_AGENT_PID";
Description = "ssh-tpm-agent service";
Documentation = "man:ssh-agent(1) man:ssh-add(1) man:ssh(1)";
Requires = "ssh-tpm-agent.socket";
};
Service = {
Environment = "SSH_AUTH_SOCK=%t/ssh-tpm-agent.sock";
ExecStart = "${pkgs.ssh-tpm-agent}/bin/ssh-tpm-agent";
PassEnvironment = "SSH_AGENT_PID";
SuccessExitStatus = 2;
Type = "simple";
};
Install.Also = "ssh-agent.socket";
};
sockets.ssh-tpm-agent = {
Unit = {
Description = "SSH TPM agent socket";
Documentation = "man:ssh-agent(1) man:ssh-add(1) man:ssh(1)";
};
Socket = {
ListenStream = "%t/ssh-tpm-agent.sock";
SocketMode = "0600";
Service = "ssh-tpm-agent.service";
};
Install.WantedBy = ["sockets.target"];
};
};
}

191
homes/min/waybar.nix Normal file
View File

@ -0,0 +1,191 @@
_: {
programs.waybar = {
enable = true;
systemd.enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
# Choose the order of the modules
modules-left = ["hyprland/workspaces"];
modules-center = ["custom/music"];
modules-right = ["wireplumber" "backlight" "battery" "clock" "tray" "custom/lock" "custom/power"];
"hyprland/workspaces" = {
"format" = " {icon} ";
"format-icons" = {
"default" = " ";
};
};
tray = {
"icon-size" = 21;
"spacing" = 10;
};
"custom/music" = {
format = " {}";
escape = true;
interval = 5;
tooltip = false;
exec = "playerctl metadata --format='{{ title }}'";
on-click = "playerctl play-pause";
max-length = 50;
};
clock = {
timezone = "America/New_York";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = " {:%B %d, %Y}";
format = " {:%I:%M %p}";
};
backlight = {
device = "amdgpu_bl1";
format = "{icon} {percent}%";
format-icons = [" " " " " " " " " " " " " " " " " "];
};
battery = {
states = {
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
};
wireplumber = {
format = "{icon} {volume}%";
format-muted = " ";
format-icons = {
default = ["" " " " "];
};
on-click = "pavucontrol";
};
"custom/lock" = {
"tooltip" = false;
"on-click" = "echo lock";
"format" = " ";
};
"custom/power" = {
"tooltip" = false;
"on-click" = "echo power";
"format" = " ";
};
};
};
style = ''
* {
font-family: "FantasqueSansM Nerd Font";
font-size: 17px;
min-height: 0;
}
#waybar {
background: transparent;
color: @text;
margin: 5px 5px;
}
#workspaces {
border: 2px solid @lavender;
border-radius: 8px;
margin: 5px;
background-color: @base;
margin-left: 20px;
}
#workspaces button {
color: @lavender;
border-radius: 8px;
padding: 0.4rem;
}
#workspaces button.active {
color: @mauve;
border-radius: 8px;
}
#workspaces button:hover {
color: @pink;
border-radius: 8px;
}
#custom-music,
#tray,
#backlight,
#clock,
#battery,
#wireplumber,
#custom-lock,
#custom-power {
border-top: 2px solid @lavender;
border-bottom: 2px solid @lavender;
background-color: @base;
padding: 0.5rem 1rem;
margin: 5px 0;
}
#clock {
color: @blue;
border-radius: 0px 8px 8px 0px;
margin-right: 1rem;
border-right: 2px solid @lavender;
}
#battery {
color: @green;
}
#battery.charging {
color: @green;
}
#battery.warning:not(.charging) {
color: @red;
}
#backlight {
color: @yellow;
}
#backlight, #battery {
border-radius: 0;
}
#wireplumber {
color: @maroon;
border-radius: 8px 0px 0px 8px;
border-left: 2px solid @lavender;
margin-left: 1rem;
}
#custom-music {
color: @text;
border-radius: 8px;
border-left: 2px solid @lavender;
border-right: 2px solid @lavender;
}
#custom-lock {
border-radius: 8px 0px 0px 8px;
border-top: 2px solid @lavender;
border-bottom: 2px solid @lavender;
border-left: 2px solid @lavender;
color: @lavender;
}
#custom-power {
margin-right: 20px;
border-radius: 0px 8px 8px 0px;
border-top: 2px solid @lavender;
border-bottom: 2px solid @lavender;
border-right: 2px solid @lavender;
color: @lavender;
}
#tray {
margin-right: 1rem;
border-radius: 8px;
border-left: 2px solid @lavender;
border-right: 2px solid @lavender;
}
'';
};
}

View File

@ -12,4 +12,16 @@ _: {
security.rtkit.enable = true;
hardware.framework.laptop13.audioEnhancement.enable = true;
# Enable bluetooth.
hardware.bluetooth = {
enable = true;
settings = {
General = {
Experimental = true;
Enable = "Source,Sink,Media,Socket";
};
};
};
}

View File

@ -1,14 +1,30 @@
_: {
# TODO: lanzaboote
{
pkgs,
lib,
...
}: {
environment.systemPackages = [pkgs.sbctl];
boot = {
initrd.systemd = {
enable = true;
tpm2.enable = true;
};
loader = {
efi.canTouchEfiVariables = true;
timeout = 2;
systemd-boot = {
enable = true;
configurationLimit = 3;
};
timeout = 1;
# disable systemd-boot in favor of lanzaboote
systemd-boot.enable = lib.mkForce false;
};
};
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
configurationLimit = 3;
};
}

View File

@ -30,6 +30,20 @@
keyMap = "us";
};
# Install fonts.
fonts = {
packages = with pkgs; [nerdfonts source-sans];
fontconfig = {
enable = true;
antialias = true; # >200dpi
defaultFonts = {
monospace = ["FantasqueSansMono Nerd Font"];
};
};
};
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
@ -39,7 +53,7 @@
min = {
isNormalUser = true;
extraGroups = ["wheel"]; # Enable sudo for the user.
extraGroups = ["wheel" "networkmanager" "tss"];
hashedPasswordFile = config.sops.secrets."user-pw".path;
};
};
@ -55,11 +69,19 @@
# started in user sessions.
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
# TODO: pinentryPackage - rofi/bemenu maybe
};
services.pcscd.enable = true;
# Enable TPM2
security.tpm2 = {
enable = true;
pkcs11.enable = true;
};
# SSH askpass
programs.ssh.enableAskPassword = true;
# Home-manager
home-manager = {
extraSpecialArgs = {inherit inputs;};

View File

@ -6,6 +6,8 @@
inputs.disko.nixosModules.disko
inputs.impermanence.nixosModules.impermanence
inputs.home-manager.nixosModules.home-manager
inputs.lanzaboote.nixosModules.lanzaboote
inputs.catppuccin.nixosModules.catppuccin
./configuration.nix
];
homes = [

View File

@ -27,6 +27,13 @@
mode = "0700";
}
".local/share/direnv"
".local/share/zoxide"
".local/share/nix" # trusted settings
".local/state/wireplumber" # volumes, etc
# apps
".config/vesktop"
".librewolf"
# languages
".cargo"
@ -39,6 +46,9 @@
# TODO: "Music" should probably be mounted via NFS
"p"
];
files = [
".zsh_history"
];
};
};
environment.systemPackages = [pkgs.ncdu];

View File

@ -1,3 +1,5 @@
_: {
# prevent networkmanager from taking dns servers from dhcp (we have provided our own)
networking.networkmanager.dns = "none";
networking.nameservers = ["1.1.1.1" "1.0.0.1"];
}

View File

@ -4,4 +4,4 @@
tmux
helix
];
}
}