Blehg
This commit is contained in:
parent
0301f7dc24
commit
8e44992e00
3
.envrc
Normal file
3
.envrc
Normal file
|
@ -0,0 +1,3 @@
|
|||
watch_file flake.in.nix
|
||||
nix run .#genflake flake.nix
|
||||
use_flake
|
74
flake.in.nix
Normal file
74
flake.in.nix
Normal file
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
inputs = let
|
||||
mkInput = url: {
|
||||
url = "github:${url}";
|
||||
};
|
||||
|
||||
mkFollowingNixpkgs = url: {
|
||||
url = "github:${url}";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
in {
|
||||
agenix = mkInput "ryantm/agenix";
|
||||
chaotic = mkInput "chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
flakegen = mkInput "jorsn/flakegen";
|
||||
impermanence = mkInput "nix-community/impermanence";
|
||||
nixpkgs = mkInput "nixos/nixpkgs/nixos-unstable";
|
||||
nixvim = mkInput "pupbrained/nixvim";
|
||||
sops-nix = mkInput "Mic92/sops-nix";
|
||||
treefmt-nix = mkInput "numtide/treefmt-nix";
|
||||
|
||||
home-manager = mkFollowingNixpkgs "nix-community/home-manager";
|
||||
kwin-effects-forceblur = mkFollowingNixpkgs "taj-ny/kwin-effects-forceblur";
|
||||
nix-index-database = mkFollowingNixpkgs "nix-community/nix-index-database";
|
||||
snowfall-lib = mkFollowingNixpkgs "snowfallorg/lib/dev";
|
||||
};
|
||||
|
||||
outputs = inputs: let
|
||||
pkgs = import inputs.nixpkgs {inherit system;};
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
with inputs;
|
||||
inputs.snowfall-lib.mkFlake {
|
||||
inherit inputs;
|
||||
src = ./.;
|
||||
|
||||
formatter.${system} = treefmt-nix.lib.mkWrapper pkgs {
|
||||
projectRootFile = "flake.nix";
|
||||
programs = {
|
||||
alejandra.enable = true;
|
||||
deadnix.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
channels-config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
homes.modules = [
|
||||
chaotic.homeManagerModules.default
|
||||
nix-index-database.hmModules.nix-index
|
||||
];
|
||||
|
||||
systems.modules.nixos = [
|
||||
agenix.nixosModules.default
|
||||
chaotic.nixosModules.default
|
||||
impermanence.nixosModules.impermanence
|
||||
];
|
||||
|
||||
devShells.${system}.default = with pkgs;
|
||||
mkShellNoCC {
|
||||
packages = [
|
||||
alejandra
|
||||
git
|
||||
statix
|
||||
(writeScriptBin "build" ''
|
||||
nix fmt
|
||||
nh os switch
|
||||
nh home switch
|
||||
'')
|
||||
(writeScriptBin "up" "nix flake update")
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
1589
flake.lock
Normal file
1589
flake.lock
Normal file
File diff suppressed because it is too large
Load diff
31
flake.nix
Normal file
31
flake.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Do not modify! This file is generated.
|
||||
|
||||
{
|
||||
inputs = {
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||
flakegen.url = "github:jorsn/flakegen";
|
||||
home-manager = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:nix-community/home-manager";
|
||||
};
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
kwin-effects-forceblur = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:taj-ny/kwin-effects-forceblur";
|
||||
};
|
||||
nix-index-database = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:nix-community/nix-index-database";
|
||||
};
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixvim.url = "github:pupbrained/nixvim";
|
||||
snowfall-lib = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:snowfallorg/lib/dev";
|
||||
};
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||
};
|
||||
outputs = inputs: inputs.flakegen ./flake.in.nix inputs;
|
||||
}
|
36
homes/x86_64-linux/marshall@navis/default.nix
Normal file
36
homes/x86_64-linux/marshall@navis/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
packages = with pkgs;
|
||||
[
|
||||
grc
|
||||
jamesdsp
|
||||
vesktop
|
||||
]
|
||||
++ (with inputs; [
|
||||
nixvim.packages.${pkgs.system}.default
|
||||
])
|
||||
++ (with inputs.chaotic.packages.${pkgs.system}; [
|
||||
distrobox_git
|
||||
]);
|
||||
|
||||
stateVersion = "24.05";
|
||||
};
|
||||
|
||||
programs = {
|
||||
nheko.enable = true;
|
||||
nix-index-database.comma.enable = true;
|
||||
nix-index.enable = true;
|
||||
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix.package = lib.mkForce pkgs.nixVersions.git;
|
||||
}
|
62
modules/home/macchina/default.nix
Normal file
62
modules/home/macchina/default.nix
Normal file
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.programs.macchina;
|
||||
tomlFormat = pkgs.formats.toml {};
|
||||
in {
|
||||
options.programs.macchina = {
|
||||
enable = mkEnableOption "macchina";
|
||||
package = mkPackageOption pkgs "macchina" {};
|
||||
|
||||
config = mkOption {
|
||||
inherit (tomlFormat) type;
|
||||
default = {};
|
||||
|
||||
example = {
|
||||
theme = "Mezora";
|
||||
show = [
|
||||
"Kernel"
|
||||
"Machine"
|
||||
"OperatingSystem"
|
||||
"Resolution"
|
||||
"Uptime"
|
||||
"LocalIP"
|
||||
"Packages"
|
||||
"ProcessorLoad"
|
||||
"Memory"
|
||||
"Battery"
|
||||
];
|
||||
};
|
||||
|
||||
description = ''
|
||||
Macchina configuration.
|
||||
'';
|
||||
};
|
||||
|
||||
themes = with types;
|
||||
mkOption {
|
||||
inherit (tomlFormat) type;
|
||||
default = {};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = [cfg.package];
|
||||
xdg.configFile =
|
||||
{
|
||||
"macchina/macchina.toml".source =
|
||||
tomlFormat.generate "macchina.toml" cfg.config;
|
||||
}
|
||||
// (
|
||||
attrsets.concatMapAttrs (name: value: {
|
||||
"macchina/themes/${name}.toml".source =
|
||||
tomlFormat.generate "${name}.toml" value;
|
||||
})
|
||||
cfg.themes
|
||||
);
|
||||
};
|
||||
}
|
5
modules/home/plasma/default.nix.bak
Normal file
5
modules/home/plasma/default.nix.bak
Normal file
|
@ -0,0 +1,5 @@
|
|||
{...}: {
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
32
modules/home/shell/default.nix
Normal file
32
modules/home/shell/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{pkgs, ...}:
|
||||
with pkgs; {
|
||||
imports = [
|
||||
./fish.nix
|
||||
./git.nix
|
||||
./wezterm.nix
|
||||
./macchina.nix
|
||||
];
|
||||
|
||||
programs = {
|
||||
bat = {
|
||||
enable = true;
|
||||
config.theme = "catppuccin";
|
||||
|
||||
themes.catppuccin = {
|
||||
src = fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "bat";
|
||||
rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
|
||||
hash = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
|
||||
};
|
||||
|
||||
file = "/Catppuccin-mocha.tmTheme";
|
||||
};
|
||||
};
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
options = ["--cmd" "cd"];
|
||||
};
|
||||
};
|
||||
}
|
135
modules/home/shell/fish.nix
Normal file
135
modules/home/shell/fish.nix
Normal file
|
@ -0,0 +1,135 @@
|
|||
{pkgs, ...}:
|
||||
with pkgs; {
|
||||
programs = {
|
||||
fish = let
|
||||
mkFishPlugins = names:
|
||||
map (name: {
|
||||
inherit name;
|
||||
src = pkgs.fishPlugins.${name}.src;
|
||||
})
|
||||
names;
|
||||
in {
|
||||
enable = true;
|
||||
|
||||
plugins =
|
||||
[
|
||||
{
|
||||
name = "replay.fish";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jorgebucaran";
|
||||
repo = "replay.fish";
|
||||
rev = "bd8e5b89ec78313538e747f0292fcaf631e87bd2";
|
||||
hash = "sha256-bM6+oAd/HXaVgpJMut8bwqO54Le33hwO9qet9paK1kY=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "license";
|
||||
src = fetchFromGitHub {
|
||||
owner = "oh-my-fish";
|
||||
repo = "plugin-license";
|
||||
rev = "0155b16f102957ec0c734a90979245dc1073f979";
|
||||
hash = "sha256-Bi9Q5rekZoyXYbRV+U4SmwCdqCl0pFupzm5si7SxFns=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "wttr";
|
||||
src = fetchFromGitHub {
|
||||
owner = "oh-my-fish";
|
||||
repo = "plugin-wttr";
|
||||
rev = "7500e382e6b29a463edc57598217ce0cfaf8c90c";
|
||||
hash = "sha256-k3FrRPxKCiObO6HgtDx8ORbcLmfSYQsQeq5SAoNfZbE=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "gityaw";
|
||||
src = fetchFromGitHub {
|
||||
owner = "oh-my-fish";
|
||||
repo = "plugin-gityaw";
|
||||
rev = "59196560e0f4520db63fb8cab645510377bb8b13";
|
||||
hash = "sha256-STXNxSsjSopB+lbB4hEYdhJifRfsImRwbZ1SxwEhkuM=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "bang-bang";
|
||||
src = fetchFromGitHub {
|
||||
owner = "oh-my-fish";
|
||||
repo = "plugin-bang-bang";
|
||||
rev = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
||||
hash = "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "autopair";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jorgebucaran";
|
||||
repo = "autopair.fish";
|
||||
rev = "4d1752ff5b39819ab58d7337c69220342e9de0e2";
|
||||
hash = "sha256-qt3t1iKRRNuiLWiVoiAYOu+9E7jsyECyIqZJ/oRIT1A=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "done";
|
||||
src = fetchFromGitHub {
|
||||
owner = "franciscolourenco";
|
||||
repo = "done";
|
||||
rev = "d47f4d6551cccb0e46edfb14213ca0097ee22f9a";
|
||||
hash = "sha256-VSCYsGjNPSFIZSdLrkc7TU7qyPVm8UupOoav5UqXPMk=";
|
||||
};
|
||||
}
|
||||
]
|
||||
++ (mkFishPlugins ["grc" "plugin-git"]);
|
||||
|
||||
shellAliases = {
|
||||
cat = "${bat}/bin/bat";
|
||||
df = "${duf}/bin/duf";
|
||||
rm = "${rm-improved}/bin/rip";
|
||||
cp = "${xcp}/bin/xcp";
|
||||
};
|
||||
|
||||
interactiveShellInit = ''
|
||||
function fish_greeting
|
||||
macchina
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
||||
starship = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
jobs.disabled = true;
|
||||
palette = "catppuccin_mocha";
|
||||
nix_shell.symbol = "❄️ ";
|
||||
|
||||
palettes.catppuccin_mocha = {
|
||||
rosewater = "#f5e0dc";
|
||||
flamingo = "#f2cdcd";
|
||||
pink = "#f5c2e7";
|
||||
mauve = "#cba6f7";
|
||||
red = "#f38ba8";
|
||||
maroon = "#eba0ac";
|
||||
peach = "#fab387";
|
||||
yellow = "#f9e2af";
|
||||
green = "#a6e3a1";
|
||||
teal = "#94e2d5";
|
||||
sky = "#89dceb";
|
||||
sapphire = "#74c7ec";
|
||||
blue = "#89b4fa";
|
||||
lavender = "#b4befe";
|
||||
text = "#cdd6f4";
|
||||
subtext1 = "#bac2de";
|
||||
subtext0 = "#a6adc8";
|
||||
overlay2 = "#9399b2";
|
||||
overlay1 = "#7f849c";
|
||||
overlay0 = "#6c7086";
|
||||
surface2 = "#585b70";
|
||||
surface1 = "#45475a";
|
||||
surface0 = "#313244";
|
||||
base = "#1e1e2e";
|
||||
mantle = "#181825";
|
||||
crust = "#11111b";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
28
modules/home/shell/git.nix
Normal file
28
modules/home/shell/git.nix
Normal file
|
@ -0,0 +1,28 @@
|
|||
{pkgs, ...}:
|
||||
with pkgs; {
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
package = gitAndTools.gitFull;
|
||||
userName = "pupbrained";
|
||||
userEmail = "mars@pupbrained.xyz";
|
||||
aliases.pushall = "!git remote | xargs -L1 git push";
|
||||
difftastic.enable = true;
|
||||
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
push.autoSetupRemote = true;
|
||||
};
|
||||
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
key = "0FF5B8826803F895";
|
||||
};
|
||||
};
|
||||
|
||||
gh = {
|
||||
enable = true;
|
||||
extensions = [gh-copilot gh-dash gh-markdown-preview];
|
||||
};
|
||||
};
|
||||
}
|
95
modules/home/shell/macchina.nix
Normal file
95
modules/home/shell/macchina.nix
Normal file
|
@ -0,0 +1,95 @@
|
|||
{pkgs, ...}:
|
||||
with pkgs; {
|
||||
programs.macchina = {
|
||||
enable = true;
|
||||
|
||||
config = {
|
||||
theme = "Mezora";
|
||||
interface = "wlp4s0";
|
||||
|
||||
show = [
|
||||
"DesktopEnvironment"
|
||||
"Distribution"
|
||||
"Kernel"
|
||||
"LocalIP"
|
||||
"Machine"
|
||||
"Memory"
|
||||
"Packages"
|
||||
"ProcessorLoad"
|
||||
"Resolution"
|
||||
"Shell"
|
||||
"Terminal"
|
||||
"Uptime"
|
||||
"WindowManager"
|
||||
];
|
||||
};
|
||||
|
||||
themes = {
|
||||
Mezora = {
|
||||
custom_ascii = {
|
||||
path = writeText "nix_logo" ''
|
||||
[38;2;69;71;90m▗▄▄▄ ▗▄▄▄▄ ▄▄▄▖[0m
|
||||
[38;2;69;71;90m▜███▙ ▜███▙ ▟███▛[0m
|
||||
[38;2;127;132;156m▜███▙ ▜███▙▟███▛[0m
|
||||
[38;2;127;132;156m▜███▙ ▜██████▛[0m
|
||||
[38;2;127;132;156m▟█████████████████▙ ▜████▛ ▟▙[0m
|
||||
▟███████████████████▙ ▜███▙ ▟██▙
|
||||
▄▄▄▄▖ ▜███▙ ▟███▛
|
||||
▟███▛ ▜██▛ ▟███▛
|
||||
[32m▟███▛ ▜▛ ▟███▛[0m
|
||||
[32m▟███████████▛ ▟██████████▙[0m
|
||||
[32m▜██████████▛ ▟███████████▛[0m
|
||||
[32m▟███▛ ▟▙ ▟███▛[0m
|
||||
▟███▛ ▟██▙ ▟███▛
|
||||
▟███▛ ▜███▙ ▝▀▀▀▀
|
||||
▜██▛ ▜███▙ ▜██████████████████▛
|
||||
[38;2;127;132;156m▜▛ ▟████▙ ▜████████████████▛[0m
|
||||
[38;2;127;132;156m▟██████▙ ▜███▙[0m
|
||||
[38;2;127;132;156m▟███▛▜███▙ ▜███▙[0m
|
||||
[38;2;69;71;90m▟███▛ ▜███▙ ▜███▙[0m
|
||||
[38;2;69;71;90m▝▀▀▀ ▀▀▀▀▘ ▀▀▀▘[0m
|
||||
'';
|
||||
};
|
||||
separator = "";
|
||||
separator_color = "blue";
|
||||
key_color = "blue";
|
||||
|
||||
palette = {
|
||||
type = "Dark";
|
||||
visible = true;
|
||||
glyph = " ⬤ ";
|
||||
};
|
||||
|
||||
box = {
|
||||
border = "rounded";
|
||||
visible = true;
|
||||
inner_margin = {
|
||||
x = 0;
|
||||
y = 1;
|
||||
};
|
||||
};
|
||||
|
||||
bar = {
|
||||
glyph = "○";
|
||||
hide_delimiters = true;
|
||||
visible = true;
|
||||
};
|
||||
|
||||
keys = {
|
||||
kernel = " Kernel";
|
||||
packages = " Packages";
|
||||
cpu_load = " CPU";
|
||||
memory = " Memory";
|
||||
resolution = " Res";
|
||||
uptime = " Uptime";
|
||||
distro = " Distro";
|
||||
machine = " Machine";
|
||||
de = " DE";
|
||||
local_ip = " Local IP";
|
||||
terminal = " Terminal";
|
||||
shell = " Shell";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
107
modules/home/shell/wezterm.nix
Normal file
107
modules/home/shell/wezterm.nix
Normal file
|
@ -0,0 +1,107 @@
|
|||
{...}: {
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
local wezterm = require('wezterm')
|
||||
local c = wezterm.config_builder()
|
||||
|
||||
local resize_amount = 3;
|
||||
|
||||
local wezmodeConfig = {
|
||||
theme = {
|
||||
textColor = "white",
|
||||
hintColor = "#a6e3a1",
|
||||
normalModeColor = "#cba6f7",
|
||||
modeTextColor = "#11111b",
|
||||
}
|
||||
}
|
||||
|
||||
wezterm.plugin.require('https://github.com/nekowinston/wezterm-bar').apply_to_config(c, {
|
||||
position = 'bottom',
|
||||
max_width = 32,
|
||||
dividers = 'slant_right',
|
||||
indicator = {
|
||||
leader = {
|
||||
enabled = true,
|
||||
off = ' ',
|
||||
on = ' ',
|
||||
},
|
||||
mode = {
|
||||
enabled = true,
|
||||
names = {
|
||||
resize_mode = 'RESIZE',
|
||||
copy_mode = 'VISUAL',
|
||||
search_mode = 'SEARCH',
|
||||
},
|
||||
},
|
||||
},
|
||||
tabs = {
|
||||
numerals = 'arabic',
|
||||
pane_count = 'subscript',
|
||||
brackets = {
|
||||
active = { "", ':' },
|
||||
inactive = { "", ':' },
|
||||
},
|
||||
},
|
||||
clock = {
|
||||
enabled = true,
|
||||
format = '%l:%M %p',
|
||||
},
|
||||
})
|
||||
|
||||
local act = wezterm.action
|
||||
|
||||
local keybinds = {
|
||||
{
|
||||
key = 'Enter',
|
||||
mods = 'CTRL|SHIFT',
|
||||
action = act.SplitHorizontal({ domain = 'CurrentPaneDomain' }),
|
||||
},
|
||||
{
|
||||
key = 'h',
|
||||
mods = 'ALT',
|
||||
action = act.ActivatePaneDirection('Left'),
|
||||
},
|
||||
{
|
||||
key = 'l',
|
||||
mods = 'ALT',
|
||||
action = act.ActivatePaneDirection 'Right',
|
||||
},
|
||||
{
|
||||
key = 'k',
|
||||
mods = 'ALT',
|
||||
action = act.ActivatePaneDirection 'Up',
|
||||
},
|
||||
{
|
||||
key = 'j',
|
||||
mods = 'ALT',
|
||||
action = act.ActivatePaneDirection 'Down',
|
||||
},
|
||||
}
|
||||
|
||||
local config = {
|
||||
adjust_window_size_when_changing_font_size = false,
|
||||
color_scheme = 'Catppuccin Mocha',
|
||||
cursor_blink_ease_in = 'Constant',
|
||||
cursor_blink_ease_out = 'Constant',
|
||||
cursor_blink_rate = 500,
|
||||
default_cursor_style = 'BlinkingBar',
|
||||
enable_scroll_bar = false,
|
||||
font_size = 12,
|
||||
font = wezterm.font('Maple Mono NF'),
|
||||
front_end = 'WebGpu',
|
||||
underline_position = -4,
|
||||
use_fancy_tab_bar = false,
|
||||
webgpu_power_preference = 'HighPerformance',
|
||||
window_background_opacity = 0.8,
|
||||
window_padding = { left = 0, right = 0, top = 0, bottom = 0 },
|
||||
}
|
||||
|
||||
for k, v in pairs(config) do
|
||||
c[k] = v
|
||||
end
|
||||
|
||||
return c
|
||||
'';
|
||||
};
|
||||
}
|
193
systems/x86_64-linux/navis/default.nix
Normal file
193
systems/x86_64-linux/navis/default.nix
Normal file
|
@ -0,0 +1,193 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
with pkgs; {
|
||||
imports = [./hardware.nix];
|
||||
|
||||
age = {
|
||||
secrets.passwd.file = /etc/secrets/passwd.age;
|
||||
identityPaths = [
|
||||
"/persist/root/.ssh/id_ed25519"
|
||||
];
|
||||
};
|
||||
|
||||
chaotic = {
|
||||
scx = {
|
||||
enable = true;
|
||||
scheduler = "scx_rusty";
|
||||
};
|
||||
|
||||
steam.extraCompatPackages = [
|
||||
luxtorpeda
|
||||
proton-ge-custom
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation.podman.enable = true;
|
||||
virtualisation.podman.enableNvidia = true;
|
||||
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
NIXOS_OZONE_WL = "1";
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
systemPackages =
|
||||
[
|
||||
kde-rounded-corners
|
||||
]
|
||||
++ (with inputs; [
|
||||
agenix.packages.${system}.default
|
||||
kwin-effects-forceblur.packages.${system}.default
|
||||
]);
|
||||
|
||||
persistence."/persist" = {
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/root/.ssh"
|
||||
"/etc/secrets"
|
||||
"/etc/ssh"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/systemd/coredump"
|
||||
"/etc/NetworkManager/system-connections"
|
||||
{
|
||||
directory = "/var/lib/colord";
|
||||
user = "colord";
|
||||
group = "colord";
|
||||
mode = "u=rwx,g=rx,o=";
|
||||
}
|
||||
];
|
||||
files = [
|
||||
"/etc/machine-id"
|
||||
{
|
||||
file = "/var/keys/secret_file";
|
||||
parentDirectory = {mode = "u=rwx,g=,o=";};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
boot = {
|
||||
#initrd.systemd.enable = true;
|
||||
#plymouth.enable = true;
|
||||
|
||||
blacklistedKernelModules = ["i915"];
|
||||
kernelPackages = linuxPackages_cachyos;
|
||||
kernelParams = ["module_blacklist=i915" "quiet"];
|
||||
supportedFilesystems = ["btrfs" "ntfs"];
|
||||
|
||||
loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
package = nixVersions.git;
|
||||
|
||||
settings = {
|
||||
trusted-users = ["marshall"];
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.iog.io"
|
||||
"https://nyx.chaotic.cx/"
|
||||
];
|
||||
|
||||
trusted-substituters = [
|
||||
"cache.nixos.org"
|
||||
"nix-community.cachix.org"
|
||||
"cache.iog.io"
|
||||
"nyx.chaotic.cx"
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
|
||||
"nyx.chaotic.cx-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
||||
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
fish.enable = true;
|
||||
gamemode.enable = true;
|
||||
steam.enable = true;
|
||||
gnupg.agent.enable = true;
|
||||
|
||||
nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 4d --keep 3";
|
||||
flake = "/home/marshall/nix-config";
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "navis";
|
||||
networkmanager.enable = true;
|
||||
firewall.enable = false;
|
||||
};
|
||||
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
services = {
|
||||
btrfs.autoScrub.enable = true;
|
||||
desktopManager.plasma6.enable = true;
|
||||
displayManager.sddm.enable = true;
|
||||
flatpak.enable = true;
|
||||
libinput.enable = true;
|
||||
libinput.touchpad.naturalScrolling = true;
|
||||
openssh.enable = true;
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
videoDrivers = ["nvidia"];
|
||||
xkb.layout = "us";
|
||||
};
|
||||
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
mutableUsers = false;
|
||||
|
||||
users.marshall = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "gamemode"];
|
||||
shell = fish;
|
||||
hashedPasswordFile = config.age.secrets.passwd.path;
|
||||
packages = [
|
||||
firefox
|
||||
neovim
|
||||
telegram-desktop
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
hardware = {
|
||||
opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
nvidia = {
|
||||
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||
modesetting.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
90
systems/x86_64-linux/navis/hardware.nix
Normal file
90
systems/x86_64-linux/navis/hardware.nix
Normal file
|
@ -0,0 +1,90 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=root"];
|
||||
};
|
||||
|
||||
boot.initrd.postDeviceCommands = lib.mkAfter ''
|
||||
mkdir /btrfs_tmp
|
||||
mount /dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b /btrfs_tmp
|
||||
if [[ -e /btrfs_tmp/root ]]; then
|
||||
mkdir -p /btrfs_tmp/old_roots
|
||||
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
||||
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
||||
fi
|
||||
|
||||
delete_subvolume_recursively() {
|
||||
IFS=$'\n'
|
||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||
delete_subvolume_recursively "/btrfs_tmp/$i"
|
||||
done
|
||||
btrfs subvolume delete "$1"
|
||||
}
|
||||
|
||||
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
||||
delete_subvolume_recursively "$i"
|
||||
done
|
||||
|
||||
btrfs subvolume create /btrfs_tmp/root
|
||||
umount /btrfs_tmp
|
||||
'';
|
||||
|
||||
boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/9952fcd1-46eb-4c9c-ab7d-361d31fdb9a2";
|
||||
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=home" "compress=zstd"];
|
||||
};
|
||||
|
||||
fileSystems."/nix" = {
|
||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=nix" "compress=zstd" "noatime"];
|
||||
};
|
||||
|
||||
fileSystems."/persist" = {
|
||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||
neededForBoot = true;
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=persist" "compress=zstd"];
|
||||
};
|
||||
|
||||
fileSystems."/var/log" = {
|
||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||
fsType = "btrfs";
|
||||
options = ["subvol=log" "compress=zstd" "noatime"];
|
||||
neededForBoot = true;
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/12CE-A600";
|
||||
fsType = "vfat";
|
||||
options = ["fmask=0022" "dmask=0022"];
|
||||
};
|
||||
|
||||
swapDevices = [];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
Loading…
Reference in a new issue