Initial commit

This commit is contained in:
Asdam9
2026-04-14 22:48:18 +02:00
parent dea140ace7
commit 827124afdb
35 changed files with 3999 additions and 0 deletions

570
flake.lock generated Normal file
View File

@@ -0,0 +1,570 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1775176642,
"narHash": "sha256-2veEED0Fg7Fsh81tvVDNYR6SzjqQxa7hbi18Jv4LWpM=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "179704030c5286c729b5b0522037d1d51341022c",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
},
"original": {
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
}
},
"hjem": {
"inputs": {
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1775569958,
"narHash": "sha256-W+kpLQ5J/DDaY1nUmvN9aIAfh5ixdyqYM76ZUdcvMBU=",
"owner": "feel-co",
"repo": "hjem",
"rev": "32bd6d54d805a3eb41efa62a940eeceaf263c4a8",
"type": "github"
},
"original": {
"owner": "feel-co",
"repo": "hjem",
"type": "github"
}
},
"import-tree": {
"locked": {
"lastModified": 1773693634,
"narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=",
"owner": "vic",
"repo": "import-tree",
"rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"hjem",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775037210,
"narHash": "sha256-KM2WYj6EA7M/FVZVCl3rqWY+TFV5QzSyyGE2gQxeODU=",
"owner": "nix-darwin",
"repo": "nix-darwin",
"rev": "06648f4902343228ce2de79f291dd5a58ee12146",
"type": "github"
},
"original": {
"owner": "nix-darwin",
"repo": "nix-darwin",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1775490113,
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
"owner": "NixOs",
"repo": "nixos-hardware",
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
"type": "github"
},
"original": {
"owner": "NixOs",
"ref": "master",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1775423009,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1774701658,
"narHash": "sha256-CIS/4AMUSwUyC8X5g+5JsMRvIUL3YUfewe8K4VrbsSQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b63fe7f000adcfa269967eeff72c64cafecbbebe",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1775036866,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1775579569,
"narHash": "sha256-/m3yyS/EnXqoPGBJYVy4jTOsirdgsEZ3JdN2gGkBr14=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dfd9566f82a6e1d55c30f861879186440614696e",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1773734432,
"narHash": "sha256-IF5ppUWh6gHGHYDbtVUyhwy/i7D261P7fWD1bPefOsw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cda48547b432e8d3b18b4180ba07473762ec8558",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2",
"systems": "systems"
},
"locked": {
"lastModified": 1775837497,
"narHash": "sha256-L17VI03w/wVXvc1SK7EI1muLqHxD3+esYPPzgQvvdOE=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "a587a96a48c705609bfd2ad23f9ae5961eb0d373",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775228139,
"narHash": "sha256-ebbeHmg+V7w8050bwQOuhmQHoLOEOfqKzM1KgCTexK4=",
"owner": "nix-community",
"repo": "NUR",
"rev": "601971b9c89e0304561977f2c28fa25e73aa7132",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"hjem": "hjem",
"import-tree": "import-tree",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"stylix": "stylix",
"wrapper-modules": "wrapper-modules",
"wrappers": "wrappers"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_3",
"nur": "nur",
"systems": "systems_2",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1775429060,
"narHash": "sha256-wbFF5cRxQOCzL/wHOKYm21t5AHPH2Lfp0mVPCOAvEoc=",
"owner": "danth",
"repo": "stylix",
"rev": "d27951a6539951d87f75cf0a7cda8a3a24016019",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"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"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1772661346,
"narHash": "sha256-4eu3LqB9tPqe0Vaqxd4wkZiBbthLbpb7llcoE/p5HT0=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "13b5b0c299982bb361039601e2d72587d6846294",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1772934010,
"narHash": "sha256-x+6+4UvaG+RBRQ6UaX+o6DjEg28u4eqhVRM9kpgJGjQ=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "c3529673a5ab6e1b6830f618c45d9ce1bcdd829d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1772909925,
"narHash": "sha256-jx/5+pgYR0noHa3hk2esin18VMbnPSvWPL5bBjfTIAU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "b4d3a1b3bcbd090937ef609a0a3b37237af974df",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"wrapper-modules": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1775724285,
"narHash": "sha256-/ukfzDYzcuz7i+unH7XioPS3Acam6FC935XsOCaJDmY=",
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"rev": "d79d2f910dd0d8bffd11113865923199cb304f86",
"type": "github"
},
"original": {
"owner": "BirdeeHub",
"repo": "nix-wrapper-modules",
"type": "github"
}
},
"wrappers": {
"inputs": {
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1775600302,
"narHash": "sha256-2fgKImv78CXIcfo1RsY7EI4uMZ84x/MggA5rrusYc7c=",
"owner": "Lassulus",
"repo": "wrappers",
"rev": "9d8397d8ef1ac35763085f3338589f558128f7db",
"type": "github"
},
"original": {
"owner": "Lassulus",
"repo": "wrappers",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

25
flake.nix Normal file
View File

@@ -0,0 +1,25 @@
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
import-tree.url = "github:vic/import-tree";
nixos-hardware.url = "github:NixOs/nixos-hardware/master";
wrapper-modules.url = "github:BirdeeHub/nix-wrapper-modules";
nixvim.url = "github:nix-community/nixvim";
wrappers.url = "github:Lassulus/wrappers";
stylix.url = "github:danth/stylix";
hjem = {
url = "github:feel-co/hjem";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs: inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree [ ./modules ]);
#inputs.nvf.nixosModules.default
#inputs.nixos-hardware.nixosModules.framework-13-7040-amd
#nvf = {
# url = "github:notashelf/nvf";
# inputs.nixpkgs.follows = "nixpkgs";
#};
}

View File

@@ -0,0 +1,82 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.alacritty = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
selfpkgs.myAlacritty
];
};
perSystem = { pkgs, ... }: let
environment.systemPackages = [
pkgs.zsh
];
in {
packages.myAlacritty = inputs.wrapper-modules.wrappers.alacritty.wrap {
inherit pkgs;
settings = (builtins.fromTOML
''
[terminal.shell]
args = ['--login']
program = "zsh"
[cursor]
style = "Block"
[font]
size = 12
[font.normal]
family = "BitstromWeraNerdFont"
[window]
startup_mode = "Windowed"
dynamic_padding = true
opacity = 0.9
[window.padding]
x = 0
y = 0
[colors.normal]
black = '0x090618'
red = '0xc34043'
green = '0x76946a'
yellow = '0xc0a36e'
blue = '0x7e9cd8'
magenta = '0x957fb8'
cyan = '0x6a9589'
white = '0xc8c093'
[colors.primary]
background = '0x1f1f28'
foreground = '0xdcd7ba'
[colors.cursor]
cursor = '0x2d4f67'
text = '0xc8c093'
[[colors.indexed_colors]]
index = 16
color = '0xffa066'
[[colors.indexed_colors]]
index = 17
color = '0xff5d62'
[keyboard]
bindings = [
{key="j", mods="Alt", action="ScrollHalfPageDown"},
{key="k", mods="Alt", action="ScrollHalfPageUp"},
]
[terminal]
'' );
};
};
}

View File

@@ -0,0 +1,57 @@
[terminal.shell]
args = ['--login']
program = "/usr/bin/zsh"
[cursor]
style = "Block"
[font]
size = 12
[font.normal]
family = "BitstromWeraNerdFontMono"
[window]
startup_mode = "Windowed"
dynamic_padding = true
opacity = 0.9
[window.padding]
x = 0
y = 0
[colors.normal]
black = '0x090618'
red = '0xc34043'
green = '0x76946a'
yellow = '0xc0a36e'
blue = '0x7e9cd8'
magenta = '0x957fb8'
cyan = '0x6a9589'
white = '0xc8c093'
[colors.primary]
background = '0x1f1f28'
foreground = '0xdcd7ba'
[colors.cursor]
cursor = '0x2d4f67'
text = '0xc8c093'
[[colors.indexed_colors]]
index = 16
color = '0xffa066'
[[colors.indexed_colors]]
index = 17
color = '0xff5d62'
[keyboard]
bindings = [
{key="j", mods="Alt", action="ScrollHalfPageDown"},
{key="k", mods="Alt", action="ScrollHalfPageUp"},
]
[terminal]

View File

@@ -0,0 +1,22 @@
{
flake.nixosModules.chromium = {pkgs, ...}: {
environment.systemPackages = [
#pkgs.chromium
pkgs.ungoogled-chromium
#pkgs.iridium
#pkgs.vivaldi
];
programs.chromium = {
enable = true;
defaultSearchProviderSearchURL = "https://duckduckgo.com/?q={searchTerms}";
extensions = [
"ddkjiahejlhfcafbddmgiahcphecmpfh"
"ojigagjjcmnbplgdkggkkleckaohppok"
"jfedfbgedapdagkghmgibemcoggfppbb"
"jfedfbgedapdagkghmgibemcoggfppbb"
];
};
};
}

View File

@@ -0,0 +1,13 @@
{
flake.nixosModules.discord = {pkgs, ...}: {
environment.systemPackages = [
pkgs.vesktop
];
/* persistance.cache.directories = [
".config/vesktop"
];*/
};
}

View File

@@ -0,0 +1,66 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.firefox = { pkgs, ... }: {
environment.systemPackages = [
];
programs.firefox = {
enable = true;
#package = pkgs.waterfox;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always";
DisplayMenuBar = "default-off";
SearchBar = "unified";
ExtensionSettings = {
"*".installation_mode = "blocked";
"jid1-NIfFY2CA8fy1tg@jetpack" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/adblock-for-firefox/addon-10996236-latest.xpi";
installation_mode = "force_installed";
};
"jid1-q4sG8pYhq8KGHs@jetpack" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/adblock-for-youtube/addon-11285580-latest.xpi";
installation_mode = "force_installed";
};
"xifangczy@gmail.com" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/cat-catch/addon-13478803-latest.xpi";
installation_mode = "force_installed";
};
};
Preferences = {
"widget.use-xdg-desktop-portal" = { Value = true; };
"widget.use-xdg-desktop-portal.file-picker" = { Value = 1; };
"browser.contentblocking.category" = { Value = "strict"; status = "locked"; };
"extensions.pocket.enabled" = { Value = false; status = "locked"; };
"extensions.screenshots.disabled" = { Value = true; status = "locked"; };
"browser.topsites.contile.enabled" = { Value = false; status = "locked"; };
"browser.formfill.enable" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.feeds.section.topstories" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.feeds.section.snippets" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includePocket" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.showSponsored" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.system.showSponsored" = { Value = false; status = "locked"; };
"browser.newtabpage.activity-stream.showSponsoredTopSites" = { Value = false; status = "locked"; };
};
};
};
};
}

22
modules/features/git.nix Normal file
View File

@@ -0,0 +1,22 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.git = { pkgs, ... }: {
imports = [
self.nixosModules.gnupg
];
programs.git = {
enable = true;
config.user = {
name = "Asdam9";
};
};
};
flake.nixosModules.gnupg = { pkgs, ... }: {
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-rofi;
};
};
}

21
modules/features/hjem.nix Normal file
View File

@@ -0,0 +1,21 @@
{inputs, ...}: {
flake.nixosModules.hjem = {config, ...}: let
user = config.preferences.user.name;
in {
imports = [
inputs.hjem.nixosModules.default
];
config = {
hjem = {
users."${user}" = {
enable = true;
directory = "/home/${user}";
user = "${user}";
};
clobberByDefault = true;
};
};
};
}

View File

@@ -0,0 +1,7 @@
{ pkgs, inputs, ... }: {
flake.nixosModules.keepmenu = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
keepmenu
];
};
}

79
modules/features/lf.nix Normal file
View File

@@ -0,0 +1,79 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.lf = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
selfpkgs.mylf
];
};
perSystem = { pkgs, ... }: let
conf =
pkgs.writeText "config"
''
set reverse true
set preview true
set hidden true
#set drawbox true
#set icons true
set ignorecase true
cmd stripspace %stripscpase "$f"
map "\""
map o
map d
map e
map f
map . set hidden!
map D delete
map p paste
map dd cut
map y copy
map ` mark-load
map \' mark-load
map <enter> open
map a rename
map r reload
map C clear
map U unselect
map do drag-out
map g~ cd
map gh cd
map g/ /
map gd cd ~/Downloads
map gt cd /tmp
map gv cd ~/Videos
map go cd ~/Documents
map gc cd ~/.config
map gn cd ~/Documents/MyNixOs
map gp cd ~/Documents/Projects
map gs cd ~/.local/share
map gm cd /run/media
map gH cd /persist/users/$HOME
map eE $ $EDITOR "$f"
map ee $ ${lib.getExe pkgs.direnv} exec . $EDITOR "$f"
map e. $ ${lib.getExe pkgs.direnv} exec . $EDITOR .
# map V $ ${lib.getExe pkgs.bat} --paging-always --theme=gruvbox "$f"
map do $ ${lib.getExe pkgs.ripdrag} -a -x "$fx"
map <C-d> 5j
map <C-u> 5k
setlocal ~/Documents/Projects sortby time
setlocal ~/Documents/Projects/* sortby time
setlocal ~/Downloads/ sortby time
'';
in {
packages.mylf = inputs.wrappers.lib.wrapPackage {
inherit pkgs;
package = pkgs.lf;
flags = {
"-config" = "${conf}";
};
};
};
}

View File

@@ -0,0 +1,2 @@
require("navi")
require('lz.n').load('plugins')

View File

@@ -0,0 +1,10 @@
function ColorMyPencils(color)
require('kanagawa').setup({
transparent = true,
})
color = color or "kanagawa"
vim.cmd.colorscheme(color)
end
ColorMyPencils()

View File

@@ -0,0 +1,7 @@
require("navi.remap")
require("navi.set")
require("navi.colors")
--require("navi.lazy")

View File

@@ -0,0 +1,62 @@
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
return require('lazy').setup({
{
'nvim-telescope/telescope.nvim', tag = '0.1.8',
-- or , branch = '0.1.x',
dependencies = { {'nvim-lua/plenary.nvim'} }
},
"rebelot/kanagawa.nvim",
{
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate'
},
'nvim-treesitter/playground',
'theprimeagen/harpoon',
'mbbill/undotree',
'tpope/vim-fugitive',
--'github/copilot.vim',
--'vimwiki/vimwiki',
{
"supermaven-inc/supermaven-nvim",
config = function()
require("supermaven-nvim").setup({})
end,
},
{
'VonHeikemen/lsp-zero.nvim',
branch = 'v3.x',
dependencies = {
{'neovim/nvim-lspconfig'},
{'williamboman/mason.nvim'},
{'williamboman/mason-lspconfig.nvim'},
{'hrsh7th/nvim-cmp'},
{'hrsh7th/cmp-buffer'},
{'hrsh7th/cmp-path'},
{'saadparwaiz1/cmp_luasnip'},
{'hrsh7th/cmp-nvim-lsp'},
{'hrsh7th/cmp-nvim-lua'},
{'L3MON4D3/LuaSnip'},
}
},
{
'serenevoid/kiwi.nvim',
dependencies = { {'nvim-lua/plenary.nvim'} }
},
})

View File

@@ -0,0 +1,27 @@
vim.g.mapleader = " "
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
vim.keymap.set("n", "<F5>", ":w! | !compiler %<CR>")
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("n", "J", "mzJ`z")
vim.keymap.set("n", "<C-d>", "<C-d>zz")
vim.keymap.set("n", "<C-u>", "<C-u>zz")
vim.keymap.set("n", "n", "nzzzv")
vim.keymap.set("n", "N", "Nzzzv")
--vim.keymap.set("x", "<leader>p", "\"_dP")
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
vim.keymap.set("n", "<leader>Y", "\"+Y")
vim.keymap.set("n", "Q", "<nop>")
vim.keymap.set("n", "<leader>s", ":%s/\\<<C-r><C-w>\\>/<C-r><C-w>/gI<Left><Left><Left>")

View File

@@ -0,0 +1,33 @@
vim.opt.nu = true
vim.opt.relativenumber = true
vim.cmd("autocmd BufEnter * setlocal formatoptions-=cro") -- No good way of doing this with lua
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.smartcase = true
vim.opt.ignorecase = true
vim.opt.wrap = false
vim.opt.updatetime = 300
vim.opt.termguicolors = true
vim.opt.mouse = "a"
vim.opt.cursorline = true
vim.opt.pumheight = 16
vim.opt.winborder = "single"
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.scroll = 6
vim.opt.signcolumn = "yes"
vim.opt.isfname:append("@-@")
vim.opt.updatetime = 50
vim.opt.colorcolumn = "80"
vim.g.mapleader = " "

View File

@@ -0,0 +1,6 @@
return {
"vim-fugitive",
after = function()
vim.keymap.set("n", "<leader>gs", vim.cmd.Git)
end
}

View File

@@ -0,0 +1,7 @@
return {
"undotree",
after = function ()
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
vim.g.undotree_UndoDir = ".local/share/nvim/"
end
}

View File

@@ -0,0 +1,111 @@
{ inputs, self, ... }: {
flake.nixosModules.neovim = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
programs.neovim.defaultEditor = true;
environment.systemPackages = [
selfpkgs.neovim
];
};
flake.modules.neovim.main = { config, wlib, lib, pkgs, ... }: {
options = {
dynamicMode = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
If true, use impure config instead for fast edits
Both versions of the package may be installed simultaneously
'';
};
initLua = lib.mkOption {
type = wlib.types.stringable;
default = ./.;
};
dynamicInitLua = lib.mkOption {
type = lib.types.either wlib.types.stringable lib.types.luaInline;
default = lib.generators.mkLuaInline "vim.uv.os_homedir() .. '/Documents/MyNixOs/modules/features/neovim'";
};
};
config = {
settings.config_directory =
if config.dynamicMode
then config.dynamicInitLua
else config.initLua;
extraPackages = [
pkgs.ffmpeg-full
pkgs.wl-clipboard
];
specs.init = {
data = null;
before = ["MAIN_INIT"];
config = "require('init')";
};
specs.plugins = {
data = [
pkgs.vimPlugins.lz-n
pkgs.vimPlugins.plenary-nvim
pkgs.vimPlugins.nvim-lspconfig
pkgs.vimPlugins.nvim-treesitter.withAllGrammars
pkgs.vimPlugins.nvim-web-devicons
pkgs.vimPlugins.lspkind-nvim
pkgs.vimPlugins.colorful-menu-nvim
pkgs.vimPlugins.blink-cmp
pkgs.vimPlugins.snacks-nvim
pkgs.vimPlugins.oil-nvim
pkgs.vimPlugins.lualine-nvim
pkgs.vimPlugins.luasnip
pkgs.vimPlugins.kanagawa-nvim
#pkgs.vimPlugins.telescope-nvim
#pkgs.vimPlugins.kiwi-nvim
];
};
specs.lazyPlugins = {
lazy = true;
data = [
pkgs.vimPlugins.lazydev-nvim
pkgs.vimPlugins.gitsigns-nvim
pkgs.vimPlugins.nvim-autopairs
pkgs.vimPlugins.fastaction-nvim
pkgs.vimPlugins.mini-files
pkgs.vimPlugins.codecompanion-nvim
pkgs.vimPlugins.harpoon
pkgs.vimPlugins.undotree
pkgs.vimPlugins.vim-fugitive
];
};
};
};
perSystem = {pkgs, self', ... }: {
packages.neovim = inputs.wrapper-modules.wrappers.neovim.wrap {
inherit pkgs;
imports = [
self.modules.neovim.main
#self.modules.neovim.lua
#self.modules.neovim.nix
];
};
packages.neovimFull = inputs.wrapper-modules.wrappers.neovim.wrap {
inherit pkgs;
dynamicMode = true;
imports = [
self.modules.neovim.main
#self.modules.neovim.allServers
];
};
};
}

15
modules/features/nh.nix Normal file
View File

@@ -0,0 +1,15 @@
{
flake.nixosModules.nh = {pkgs, config, ...}: let
user = config.preferences.user.name;
in {
programs.nh = {
enable = true;
clean = {
enable = true;
extraArgs = "--keep-since 30d --keep 15";
};
flake = "/home/${user}/Documents/MyNixOS/#laptop";
};
};
}

189
modules/features/niri.nix Normal file
View File

@@ -0,0 +1,189 @@
{ self, inputs, ... }: {
flake.nixosModules.niri = { pkgs, lib, ... }: {
environment.systemPackages = [
pkgs.wl-clipboard
pkgs.clipman
];
programs.niri = {
enable = true;
package = self.packages.${pkgs.stdenv.hostPlatform.system}.myNiri;
};
};
flake.nixosModules.tuigreet = { pkgs, lib, ... }: {
environment.systemPackages = with pkgs; [
tuigreet
];
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri";
};
};
};
};
perSystem = { pkgs, lib, self', ... }: {
packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap {
inherit pkgs;
settings = {
spawn-at-startup = [
(lib.getExe self'.packages.myNoctalia)
];
prefer-no-csd = true;
xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite;
input = {
keyboard = {
xkb.layout = "us,dk";
xkb.options = "caps:escape,grp:win_space_toggle";
repeat-rate = 25;
repeat-delay = 300;
};
};
extraConfig = ''
gestures {
hot-corners {
off
}
}
'';
window-rules = [
{
matches = [ { is-focused = false; } ];
default-column-width = { proportion = 1.; };
opacity = 0.65;
}
{
matches = [
{ app-id = "firefox"; }
{ app-id = "discord"; }
];
default-column-width = { proportion = 1.; };
opacity = 1.;
}
{
matches = [ { app-id = "Alacritty"; } ];
excludes = [ { is-focused = false; } ];
opacity = .90;
}
];
screenshot-path = "~/Pictures/Screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png";
hotkey-overlay.skip-at-startup = true;
layout = {
gaps = 15;
border.off = {};
focus-ring.off = {};
preset-column-widths = [
{ proportion = 1.; }
{ proportion = 1. / 2.; }
{ proportion = 1. / 3.; }
{ proportion = 2. / 3.; }
];
default-column-width = { proportion = 1. / 2.; };
center-focused-column = "never"; #"on-overflow"; "always";
default-column-display = "normal"; #"tabbed";
};
binds = {
"Mod+Return".spawn-sh = lib.getExe self'.packages.myAlacritty;
"Mod+Shift+Slash".show-hotkey-overlay = {};
"Mod+Shift+C".close-window = {};
"Mod+Shift+Q".quit = {};
"Mod+O".toggle-overview = {};
"Mod+Left".focus-column-left = {};
"Mod+Down".focus-window-down = {};
"Mod+Up".focus-window-up = {};
"Mod+Right".focus-column-right = {};
"Mod+Ctrl+Left".move-column-left = {};
"Mod+Ctrl+Down".move-window-down = {};
"Mod+Ctrl+Up".move-window-up = {};
"Mod+Ctrl+Right".move-column-right = {};
"Mod+H".focus-column-left = {};
"Mod+J".focus-window-down = {};
"Mod+K".focus-window-up = {};
"Mod+L".focus-column-right = {};
"Mod+Ctrl+H".move-column-left = {};
"Mod+Ctrl+J".move-window-down = {};
"Mod+Ctrl+K".move-window-up = {};
"Mod+Ctrl+L".move-column-right = {};
"Mod+Ctrl+Shift+j".move-workspace-down = {};
"Mod+Ctrl+Shift+k".move-workspace-up = {};
"Mod+U".focus-workspace-down = {};
"Mod+I".focus-workspace-up = {};
"Mod+Ctrl+U".move-column-to-workspace-down = {};
"Mod+Ctrl+I".move-column-to-workspace-up = {};
"Mod+R".switch-preset-column-width = {};
"Mod+1".focus-workspace = 1;
"Mod+2".focus-workspace = 2;
"Mod+3".focus-workspace = 3;
"Mod+4".focus-workspace = 4;
"Mod+5".focus-workspace = 5;
"Mod+6".focus-workspace = 6;
"Mod+7".focus-workspace = 7;
"Mod+8".focus-workspace = 8;
"Mod+9".focus-workspace = 9;
"Mod+Ctrl+1".move-column-to-workspace = 1;
"Mod+Ctrl+2".move-column-to-workspace = 2;
"Mod+Ctrl+3".move-column-to-workspace = 3;
"Mod+Ctrl+4".move-column-to-workspace = 4;
"Mod+Ctrl+5".move-column-to-workspace = 5;
"Mod+Ctrl+6".move-column-to-workspace = 6;
"Mod+Ctrl+7".move-column-to-workspace = 7;
"Mod+Ctrl+8".move-column-to-workspace = 8;
"Mod+Ctrl+9".move-column-to-workspace = 9;
"XF86AudioRaiseVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume increase";
"XF86AudioLowerVolume".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume decrease";
"XF86AudioMute".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call volume muteOutput";
"XF86MonBrightnessUp".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness increase";
"XF86MonBrightnessDown".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call brightness decrease";
"XF86AudioPrev".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media previous";
"XF86AudioPlay".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media playPause";
"XF86AudioNext".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call media next";
"XF86AudioMedia".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call systemMonitor toggle";
"Mod+Comma".consume-window-into-column = {};
"Mod+Period".expel-window-from-column = {};
"Mod+BracketLeft".consume-or-expel-window-left = {};
"Mod+BracketRight".consume-or-expel-window-right = {};
"Mod+F".maximize-column = {};
"Mod+Shift+F".fullscreen-window = {};
"Mod+W".toggle-column-tabbed-display = {};
"Mod+V".toggle-window-floating = {};
"Mod+Shift+V".switch-focus-between-floating-and-tiling = {};
"Print".screenshot = {};
"Mod+Print".screenshot-window = {};
"Mod+Shift+Print".screenshot-screen = {};
"Mod+Shift+L".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu lockAndSuspend";
"Mod+Shift+E".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher emoji";
"Mod+Shift+Escape".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call sessionMenu toggle";
"Mod+P".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher toggle";
"Mod+Y".spawn-sh = "${lib.getExe self'.packages.myNoctalia} ipc call launcher clipboard";
};
};
};
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
{ self, inputs, ... }: {
perSystem = { pkgs, ... }: {
packages.myNoctalia = inputs.wrapper-modules.wrappers.noctalia-shell.wrap {
inherit pkgs;
settings =
(builtins.fromJSON
(builtins.readFile ./noctalia.json)).settings;
};
};
}

View File

@@ -0,0 +1,11 @@
{ self, inputs, ... }: {
flake.nixosModules.pipewire = { pkgs, lib, ... }: {
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
}

View File

@@ -0,0 +1,9 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.rofi = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
pkgs.rofi
];
};
}

View File

@@ -0,0 +1,11 @@
{ pkgs, inputs, ... }: {
flake.nixosModules.stylix = {pkgs, ...}: {
imports = [
inputs.stylix.nixosModules.stylix
];
stylix.enable = true;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/kanagawa.yaml";
};
}

View File

@@ -0,0 +1,15 @@
{
flake.nixosModules.thunar = {pkgs, ...}: {
programs.thunar.enable = true;
services.gvfs.enable = true;
services.tumbler.enable = true;
xdg.mime.defaultApplications = {
"inode/directory" = "thunar.desktop";
};
/* persistance.cache.directories = [
".config/vesktop"
];*/
};
}

183
modules/features/zsh.nix Normal file
View File

@@ -0,0 +1,183 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.zsh = { pkgs, config, ... }: {
imports = [ # Include the results of the hardware scan.
self.nixosModules.fastfetch
];
programs.zsh.enable = true;
programs.zsh.syntaxHighlighting.enable = true;
programs.zsh.histSize=1000;
programs.zsh.histFile="${config.users.users.adam.home}/.local/histfile";
programs.zsh.setOptions= [
"beep"
"prompt_subst"
];
programs.zsh.shellInit =
''
bindkey -v
bindkey "^H" backward-delete-char
bindkey "^?" backward-delete-char
'';
environment.sessionVariables = rec {
EDITOR = "nvim";
BROWSER = "firefox";
ZDOTDIR = "/etc/";
};
programs.zsh.shellAliases = {
fs = "lf";
ls = "ls --color=auto";
cp = "cp -v";
mkdir = "mkdir -v";
mv = "mv -v";
rm = "rm -v";
};
programs.zsh.promptInit =
''
autoload -Uz add-zsh-hook vcs_info
add-zsh-hook precmd vcs_info
sep=""
rsep=""
purple="#957fb8"
blue="#7e9cd8"
black="#090618"
green="#76946a"
zstyle ':vcs_info:*' formats "%F{$purple}%K{$blue}$sep%k%f%K{$blue}%F{$black} (%r:%b) %F{$blue}"
export PS1='%K{$purple}%F{$black} 󰣇 %1~ %F{$purple}''${vcs_info_msg_0_}%k$sep%k%f '
export RPROMPT="%F{$green}$rsep%f%K{$green}%F{$black} %n@%m %f%k"
tty > /dev/null && (clear ; fastfetch)
'';
system.userActivationScripts.zshrc = "touch .zshrc";
};
flake.nixosModules.fastfetch = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
environment.systemPackages = [
selfpkgs.myFastfetch
];
};
perSystem = { pkgs, ... }: let
conf =
pkgs.writeText "config.jsonc"
''
{
"''$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "auto",
"color": {
"1": "35",
},
},
"display": {
"separator": " ",
"constants": [
""
],
"key": {
"type": "icon",
"paddingLeft": 2
},
"color": {
"keys": "35",
},
},
"modules": [
{
"type": "custom", // HardwareStart
"format": "{''$1} {#1}Hardware Information{#} {''$1}"
},
//"host",
"cpu",
"gpu",
"disk",
"swap",
"display",
"brightness",
"battery",
"poweradapter",
"bluetooth",
//"sound",
"memory",
"gamepad",
{
"type": "custom", // SoftwareStart
"format": "{''$1} {#1}Software Information{#} {''$1}"
},
/*{
"type": "title",
"keyIcon": "",
"key": "Title", // Title module has no key by default, so that icon is not displayed
"format": "{user-name}@{host-name}"
},*/
"os",
//"kernel",
//"lm",
"de",
"wm",
"shell",
"terminal",
"terminalfont",
"theme",
"icons",
"wallpaper",
"packages",
"uptime",
//"media",
/*{
"type": "localip",
"compact": true
},
"publicip",
{
"type": "wifi",
"format": "{ssid}"
},
"locale",*/
{
"type": "custom", // InformationEnd
"format": "{''$1}{''$1}"
},
{
"type": "colors",
"paddingLeft": 2,
"symbol": "circle"
}
]
}
'';
logo =
pkgs.writeText "navi.txt"
''
/X\
XXX
\X/
/X/ /XXXXXXXXX\ \X\
/XXX/ /XXX/ \XXX\ \XXX\
/XX/ /XXX/ \XXX\ \XX\
/XX/ XXX /XXX\ XXX \XX\
XXX XXX /XXXXX\ XXX XXX
XXX\ XXX \XXXXX/ XXX /XXX
\XX\ \XX\ \XXX/ /XX/ /XX/
\XXX\ \XX\ /XX/ /XXX/
XX \XX\ \XXX\ /XXX/ /XX/ XX
XX \XX\ /XX/ XX
XXX XXX
XXX XXX
\XX\ /XX/ \XX\ /XX/
\XXXXXXX/ \XXXXXXX/
'';
in {
packages.myFastfetch = inputs.wrappers.lib.wrapPackage {
inherit pkgs;
package = pkgs.fastfetch;
flags = {
"--config" = "${conf}";
"--logo" = "${logo}";
};
};
};
}

View File

@@ -0,0 +1,116 @@
{self, inputs, ... }: {
flake.nixosModules.laptopConfiguration = { config, pkgs, self', ... }: {
imports =
[ # Include the results of the hardware scan.
self.nixosModules.base
self.nixosModules.laptopHardware
self.nixosModules.visualProfile
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
fonts.packages = with pkgs; [
nerd-fonts.bitstream-vera-sans-mono
];
# BIOS
services.fwupd.enable = true;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
networking.hostName = "laptop"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
powerManagement.enable = true;
services.power-profiles-daemon.enable = true;
services.upower.enable = true;
#services.tlp.enable = true;
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Copenhagen";
# Select internationalisation properties.
i18n.defaultLocale = "en_DK.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "da_DK.UTF-8";
LC_IDENTIFICATION = "da_DK.UTF-8";
LC_MEASUREMENT = "da_DK.UTF-8";
LC_MONETARY = "da_DK.UTF-8";
LC_NAME = "da_DK.UTF-8";
LC_NUMERIC = "da_DK.UTF-8";
LC_PAPER = "da_DK.UTF-8";
LC_TELEPHONE = "da_DK.UTF-8";
LC_TIME = "da_DK.UTF-8";
};
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Define a user account. Don't forget to set a password with passwd.
users.users.${config.preferences.user.name} = {
isNormalUser = true;
description = "Adam";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [];
shell = pkgs.zsh;
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
programs.git.enable = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget
#self.packages.${pkgs.system}.lf
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.11"; # Did you read the comment?
};
}

View File

@@ -0,0 +1,9 @@
{ self, inputs, ... }: {
flake.nixosConfigurations.laptop = inputs.nixpkgs.lib.nixosSystem {
modules = [
self.nixosModules.laptopConfiguration
];
};
}

View File

@@ -0,0 +1,39 @@
{ self, inputs, ... }: {
flake.nixosModules.laptopHardware = { config, lib, pkgs, modulesPath, ... }: {
imports =
[
(modulesPath + "/installer/scan/not-detected.nix")
inputs.nixos-hardware.nixosModules.framework-13-7040-amd
];
boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"thunderbolt"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/e920679f-af38-4509-bb4a-98c12d8606a5";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3800-D0D0";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/f1657874-9bb9-4724-8ddb-05ddc5aca5d9"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
};
}

10
modules/parts.nix Normal file
View File

@@ -0,0 +1,10 @@
{
config = {
systems = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
];
};
}

View File

@@ -0,0 +1,31 @@
{ inputs, lib, self, ... }: {
flake.nixosModules.main = { pkgs, ... }: {
imports = [
self.nixosModules.git
self.nixosModules.lf
self.nixosModules.zsh
self.nixosModules.stylix
self.nixosModules.hjem
self.nixosModules.nh
];
};
flake.nixosModules.visualProfile = { pkgs, ... }: {
imports = [
self.nixosModules.main
self.nixosModules.niri
self.nixosModules.pipewire
self.nixosModules.discord
self.nixosModules.neovim
self.nixosModules.alacritty
self.nixosModules.firefox
self.nixosModules.chromium
self.nixosModules.keepmenu
self.nixosModules.rofi
self.nixosModules.tuigreet
];
};
#flake.nixosModules.INSERTNAMEHERE = { pkgs, ... }: {};
}

10
modules/profiles/user.nix Normal file
View File

@@ -0,0 +1,10 @@
{
flake.nixosModules.base = {lib, ...}: {
options.preferences = {
user.name = lib.mkOption {
type = lib.types.str;
default = "adam";
};
};
};
}