I did some more stuff

This commit is contained in:
Tyler Beckman 2024-12-21 11:15:14 -07:00
parent dacc41068b
commit c6a0a4f631
Signed by: Ty
GPG key ID: 2813440C772555A4
24 changed files with 488 additions and 58 deletions

219
flake.lock generated
View file

@ -47,11 +47,11 @@
}, },
"locked": { "locked": {
"dir": "/pkgs/firefox-addons", "dir": "/pkgs/firefox-addons",
"lastModified": 1734235408, "lastModified": 1734648163,
"narHash": "sha256-0yHVZ2+VaW36/RTGHm1x3p+KS1oAWIj+TWObLDUzHfQ=", "narHash": "sha256-AK7nqONfzyxUzqVVeRoniO6NRv4SaxPrXwuyY8jtCXs=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "02261a5dd442b8c6eb778c31e7967e734bc2ff76", "rev": "2b5a7eb2719b146f6308dfa51c9a1c4b03d965a3",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -72,11 +72,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734312000, "lastModified": 1734743419,
"narHash": "sha256-cBvZ26RH0rFT6i2Vtv//nUrWqjJ9+0JstMiVE3KJFbQ=", "narHash": "sha256-MAl+QDhPVXypYKjLZ6WU5JLY8VjGt4lecdmwCkBwMN8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "flake-firefox-nightly", "repo": "flake-firefox-nightly",
"rev": "af7b83dc9687ca992bcad8c9b74485964e25c5a9", "rev": "dfb2631ee449ba3df206cb8f1d9558f242851e0b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -182,7 +182,7 @@
}, },
"flake-utils_4": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
@ -200,7 +200,7 @@
}, },
"flake-utils_5": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1681202837, "lastModified": 1681202837,
@ -216,6 +216,30 @@
"type": "github" "type": "github"
} }
}, },
"flatpaks": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1733581530,
"narHash": "sha256-W+orHmF+XpZosrBFAFRs7sS1iVKYveg9SutkzSXMVsI=",
"owner": "GermanBread",
"repo": "declarative-flatpak",
"rev": "b88bd5b65f8e7c35eec0a90cfd6e096b2e7f79c0",
"type": "github"
},
"original": {
"owner": "GermanBread",
"repo": "declarative-flatpak",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -223,11 +247,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734093295, "lastModified": 1734622215,
"narHash": "sha256-hSwgGpcZtdDsk1dnzA0xj5cNaHgN9A99hRF/mxMtwS4=", "narHash": "sha256-OOfI0XhSJGHblfdNDhfnn8QnZxng63rWk9eeJ2tCbiI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "66c5d8b62818ec4c1edb3e941f55ef78df8141a8", "rev": "1395379a7a36e40f2a76e7b9936cc52950baa1be",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -272,6 +296,32 @@
"type": "github" "type": "github"
} }
}, },
"nix-formatter-pack": {
"inputs": {
"nixpkgs": [
"nix-on-droid",
"nixpkgs"
],
"nmd": [
"nix-on-droid",
"nmd"
],
"nmt": "nmt"
},
"locked": {
"lastModified": 1705252799,
"narHash": "sha256-HgSTREh7VoXjGgNDwKQUYcYo13rPkltW7IitHrTPA5c=",
"owner": "Gerschtli",
"repo": "nix-formatter-pack",
"rev": "2de39dedd79aab14c01b9e2934842051a160ffa5",
"type": "github"
},
"original": {
"owner": "Gerschtli",
"repo": "nix-formatter-pack",
"type": "github"
}
},
"nix-github-actions": { "nix-github-actions": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -313,6 +363,33 @@
"type": "github" "type": "github"
} }
}, },
"nix-on-droid": {
"inputs": {
"home-manager": [
"home-manager"
],
"nix-formatter-pack": "nix-formatter-pack",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-docs": "nixpkgs-docs",
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap",
"nmd": "nmd"
},
"locked": {
"lastModified": 1725658585,
"narHash": "sha256-P29z4Gt89n5ps1U7+qmIrj0BuRXGZQSIaOe2+tsPgfw=",
"owner": "nix-community",
"repo": "nix-on-droid",
"rev": "5d88ff2519e4952f8d22472b52c531bb5f1635fc",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-on-droid",
"type": "github"
}
},
"nixos-grub-themes": { "nixos-grub-themes": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -349,22 +426,38 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-24-11": { "nixpkgs-docs": {
"locked": { "locked": {
"lastModified": 1734083684, "lastModified": 1705957679,
"narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=", "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84", "rev": "9a333eaa80901efe01df07eade2c16d183761fa3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-24.11", "ref": "release-23.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-for-bootstrap": {
"locked": {
"lastModified": 1720244366,
"narHash": "sha256-WrDV0FPMVd2Sq9hkR5LNHudS3OSMmUrs90JUTN+MXpA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "49ee0e94463abada1de470c9c07bfc12b36dcf40",
"type": "github"
}
},
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1734224914, "lastModified": 1734224914,
@ -382,11 +475,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1734119587, "lastModified": 1734424634,
"narHash": "sha256-AKU6qqskl0yf2+JdRdD0cfxX4b9x3KKV5RqA6wijmPM=", "narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3566ab7246670a43abd2ffa913cc62dad9cdf7d5", "rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -396,18 +489,42 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nmd": {
"inputs": {
"nixpkgs": [
"nix-on-droid",
"nixpkgs-docs"
],
"scss-reset": "scss-reset"
},
"locked": { "locked": {
"lastModified": 1682134069, "lastModified": 1705050560,
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=",
"owner": "NixOS", "owner": "~rycee",
"repo": "nixpkgs", "repo": "nmd",
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833", "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3",
"type": "github" "type": "sourcehut"
}, },
"original": { "original": {
"id": "nixpkgs", "owner": "~rycee",
"type": "indirect" "repo": "nmd",
"type": "sourcehut"
}
},
"nmt": {
"flake": false,
"locked": {
"lastModified": 1648075362,
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
"owner": "rycee",
"repo": "nmt",
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
"type": "gitlab"
},
"original": {
"owner": "rycee",
"repo": "nmt",
"type": "gitlab"
} }
}, },
"plasma-manager": { "plasma-manager": {
@ -438,17 +555,34 @@
"colmena": "colmena", "colmena": "colmena",
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"firefox-nightly": "firefox-nightly", "firefox-nightly": "firefox-nightly",
"flatpaks": "flatpaks",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nix-on-droid": "nix-on-droid",
"nixos-grub-themes": "nixos-grub-themes", "nixos-grub-themes": "nixos-grub-themes",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"nixpkgs-24-11": "nixpkgs-24-11",
"plasma-manager": "plasma-manager", "plasma-manager": "plasma-manager",
"sddm-sugar-candy-nix": "sddm-sugar-candy-nix", "sddm-sugar-candy-nix": "sddm-sugar-candy-nix",
"vscode-extensions": "vscode-extensions", "vscode-extensions": "vscode-extensions",
"vscode-server": "vscode-server" "vscode-server": "vscode-server"
} }
}, },
"scss-reset": {
"flake": false,
"locked": {
"lastModified": 1631450058,
"narHash": "sha256-muDlZJPtXDIGevSEWkicPP0HQ6VtucbkMNygpGlBEUM=",
"owner": "andreymatin",
"repo": "scss-reset",
"rev": "0cf50e27a4e95e9bb5b1715eedf9c54dee1a5a91",
"type": "github"
},
"original": {
"owner": "andreymatin",
"repo": "scss-reset",
"type": "github"
}
},
"sddm-sugar-candy-nix": { "sddm-sugar-candy-nix": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -501,6 +635,21 @@
} }
}, },
"systems_2": { "systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -515,7 +664,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_3": { "systems_4": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -539,11 +688,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1734314392, "lastModified": 1734659394,
"narHash": "sha256-EydUadS7omV3SO/4TLeMkLT2JUugvPEtvBoAF43ggWU=", "narHash": "sha256-rI7fcI4+J+iAiCvQ0J3hECJJGD9cAVTAFRTj1xrX6Qo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-vscode-extensions", "repo": "nix-vscode-extensions",
"rev": "4ef033412f0732794077fcc25af4f79f097ad1e1", "rev": "1792f1bbfccbd5ebcb745250e4fc57067c6dfd9c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -555,7 +704,9 @@
"vscode-server": { "vscode-server": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_5", "flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_3" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1729422940, "lastModified": 1729422940,

View file

@ -4,7 +4,6 @@
inputs = { inputs = {
# General NixOS config # General NixOS config
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-24-11.url = "github:NixOS/nixpkgs/nixos-24.11";
# Colmena unstable # Colmena unstable
colmena = { colmena = {
url = "github:zhaofengli/colmena"; url = "github:zhaofengli/colmena";
@ -45,7 +44,7 @@
owner = "rycee"; owner = "rycee";
repo = "nur-expressions"; repo = "nur-expressions";
dir = "/pkgs/firefox-addons"; dir = "/pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# VSCode extensions # VSCode extensions
@ -54,10 +53,27 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# VSCode server support # VSCode server support
vscode-server.url = "github:nix-community/nixos-vscode-server"; vscode-server = {
url = "github:nix-community/nixos-vscode-server";
inputs.nixpkgs.follows = "nixpkgs";
};
# Flatpak support
flatpaks = {
url = "github:GermanBread/declarative-flatpak";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
# Nix-on-droid support
nix-on-droid = {
url = "github:nix-community/nix-on-droid";
inputs = {
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
};
};
}; };
outputs = inputs@{ self, colmena, ... }: let outputs = inputs@{ self, nixpkgs, colmena, nix-on-droid, ... }: let
utils = import ./utils { utils = import ./utils {
inherit inputs; inherit inputs;
secrets = import ./secrets.nix; secrets = import ./secrets.nix;
@ -85,6 +101,12 @@
]; ];
}; };
# Setup nix-on-droid configurations
nixOnDroidConfigurations.default = nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs { system = "aarch64-linux"; };
modules = [ ./nix-on-droid/ty-pixel ];
};
# Enable direct flake support for colmena # Enable direct flake support for colmena
colmenaHive = colmena.lib.makeHive self.outputs.colmena; colmenaHive = colmena.lib.makeHive self.outputs.colmena;
}; };

View file

@ -1,7 +1,7 @@
{ lib, config, ... }: { ... }:
{ {
imports = [ imports = [
./email.nix ./email.nix
./ssh.nix ./ssh.nix
]; ];
} }

View file

@ -8,13 +8,16 @@
# Individual files # Individual files
./beets.nix ./beets.nix
./desktop.nix ./desktop.nix
./flatpak.nix
./firefox.nix ./firefox.nix
./gpg.nix ./gpg.nix
./gtk.nix ./gtk.nix
./packages.nix ./packages.nix
./plasma.nix ./plasma.nix
./prismlauncher.nix
./rescrobbled.nix ./rescrobbled.nix
./thunderbird.nix ./thunderbird.nix
./vscode.nix ./vscode.nix
./zed.nix
]; ];
} }

View file

@ -160,8 +160,8 @@
}; };
# NixOS Wiki Search # NixOS Wiki Search
"NixOS Wiki" = { "NixOS Wiki" = {
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; urls = [{ template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; }];
iconUpdateURL = "https://nixos.wiki/favicon.png"; iconUpdateURL = "https://wiki.nixos.org/nixos.png";
updateInterval = 24 * 60 * 60 * 1000; # every day updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@nw" ]; definedAliases = [ "@nw" ];
}; };

View file

@ -0,0 +1,15 @@
{ lib, config, ... }:
{
xdg.systemDirs.data = lib.optionals
config.meta.home-manager.desktop.enable
[ "/var/lib/flatpak/exports/share" "${config.xdg.dataHome}/flatpak/exports/share" ];
services.flatpak = lib.mkIf config.meta.home-manager.desktop.enable {
enableModule = true;
packages = [
"sober:app/org.vinegarhq.Sober/x86_64/master"
];
remotes = {
sober = "https://sober.vinegarhq.org/sober.flatpakref";
};
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, config, ... }:
{ {
programs.gpg = { programs.gpg = {
enable = true; enable = true;
@ -56,9 +56,9 @@
enable = true; enable = true;
enableSshSupport = true; enableSshSupport = true;
enableZshIntegration = true; enableZshIntegration = true;
pinentryPackage = pkgs.pinentry-qt; pinentryPackage = if (config.meta.home-manager.desktop.enable) then pkgs.pinentry-qt else pkgs.pinentry-tty;
sshKeys = [ sshKeys = [
"817A829FB1FB95441156F93C7F4FD04ACDDE5E48 0" "817A829FB1FB95441156F93C7F4FD04ACDDE5E48 0"
]; ];
}; };
} }

View file

@ -1,6 +1,6 @@
{ pkgs, inputs, system, lib, config, ... }: { pkgs, inputs, system, lib, config, ... }:
{ {
home.packages = home.packages =
## Packages that are always installed, no matter what ## Packages that are always installed, no matter what
(with pkgs; [ (with pkgs; [
# :3 # :3
@ -19,9 +19,12 @@
pciutils # `lspci` pciutils # `lspci`
unzip # Extract zip files unzip # Extract zip files
# Editor
neovim # CLI-Based editor
# Process tools # Process tools
btop # Process monitor btop # Process monitor
nvtopPackages.full # GPU monitor hyperfine # CLI Benchmarker
]) ])
## Packages that are only installed when a desktop environment is desired ## Packages that are only installed when a desktop environment is desired
++ (lib.optionals config.meta.home-manager.desktop.enable (with pkgs; [ ++ (lib.optionals config.meta.home-manager.desktop.enable (with pkgs; [
@ -47,6 +50,7 @@
# Programming # Programming
jetbrains.idea-ultimate # Jetbrains IntelliJ Idea Ultimate IDE jetbrains.idea-ultimate # Jetbrains IntelliJ Idea Ultimate IDE
jetbrains.rust-rover # Jetbrains Rust IDE
nixd # LSP for .nix files nixd # LSP for .nix files
gcc # GNU C++ Compiler gcc # GNU C++ Compiler
(lib.meta.hiPrio clang) # LLVM C++ Compiler (better than g++) (lib.meta.hiPrio clang) # LLVM C++ Compiler (better than g++)
@ -54,9 +58,23 @@
cling # C++ REPL cling # C++ REPL
deno # Typescript & Javascript runtime deno # Typescript & Javascript runtime
gnumake # Makefile support gnumake # Makefile support
httptoolkit # HTTP Interception
android-tools # ADB and the such
beekeeper-studio # SQL Database viewer
# Games
(heroic.override {
extraPkgs = pkgs: [
pkgs.gamemode
pkgs.gamescope
];
}) # GOG & Epic Games Launcher
# UI Tools # UI Tools
qalculate-qt # Calculator qalculate-qt # Calculator
# Process tools cont.
nvtopPackages.full # GPU Monitor, only really necessary if we have a GPU to look at
])) ]))
## Packages that are only installed if plasma is used as the desktop environment ## Packages that are only installed if plasma is used as the desktop environment
++ (lib.optionals config.meta.home-manager.desktop.plasma.enable (with pkgs.kdePackages; [ ++ (lib.optionals config.meta.home-manager.desktop.plasma.enable (with pkgs.kdePackages; [

View file

@ -0,0 +1,6 @@
{ config, lib, ... }:
{
programs.custom.prism-launcher = lib.mkIf config.meta.home-manager.desktop.enable {
enable = true;
};
}

View file

@ -38,6 +38,7 @@
mkhl.direnv # nix-direnv autoloading mkhl.direnv # nix-direnv autoloading
cschlosser.doxdocgen # C++ Doxygen generator cschlosser.doxdocgen # C++ Doxygen generator
tomoki1207.pdf # PDF Viewing tomoki1207.pdf # PDF Viewing
exodiusstudios.comment-anchors # Comment anchors and highlighting
]) ])
++ (with vscode-marketplace; [ ++ (with vscode-marketplace; [
yy0931.save-as-root # Save as root over SSH yy0931.save-as-root # Save as root over SSH

View file

@ -0,0 +1,79 @@
{ lib, config, pkgs, ... }:
{
programs.zed-editor = lib.mkIf config.meta.home-manager.vscode.enable {
enable = true;
extensions = [
# Language support
"nix" "toml" "deno" "kotlin"
# Themes
"catppuccin"
];
userSettings = {
auto_update = false;
base_keymap = "VSCode";
load_direnv = "shell_hook";
show_whitespaces = "boundary";
tab_size = 4;
theme = "Catppuccin Mocha";
buffer_font_family = "FiraCode Nerd Font";
format_on_save = "off";
soft_wrap = "none";
terminal = {
dock = "bottom";
font_family = "FiraCode Nerd Font";
font_size = 14;
line_height = "standard"; # Comfortable breaks my powerline
working_directory = "current_project_directory";
env.TERM = "xterm-256color";
};
lsp = {
rust-analyzer = {
binary = {
path = lib.getExe pkgs.rust-analyzer;
};
};
nix = {
binary = {
path = lib.getExe pkgs.nixd;
};
};
vtsls = {
binary = {
path = lib.getExe pkgs.vtsls;
arguments = [ "--stdio" ];
};
};
kotlin-language-server = {
binary = {
path = lib.getExe' pkgs.kotlin-language-server "kotlin-language-server";
};
};
};
languages = {
Nix = {
language_servers = [ "nixd" "!nil" ];
};
};
# Disable the bullshit
assistant = {
enabled = false;
button = false;
version = "1";
};
features.inline_completion_provider = "none";
telemetry = {
diagnostics = false;
metrics = false;
};
};
};
}

View file

@ -9,6 +9,7 @@
home-manager.sharedModules = [ home-manager.sharedModules = [
# Import plasma manager and all of my custom modules for use # Import plasma manager and all of my custom modules for use
inputs.plasma-manager.homeManagerModules.plasma-manager inputs.plasma-manager.homeManagerModules.plasma-manager
inputs.flatpaks.homeManagerModules.declarative-flatpak
./modules ./modules
]; ];
# Inherit all of my nixos config custom arguments # Inherit all of my nixos config custom arguments

View file

@ -1,6 +1,7 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./prismlauncher.nix
./rescrobbled.nix ./rescrobbled.nix
]; ];
} }

View file

@ -0,0 +1,82 @@
{ lib, pkgs, config, ... }:
{
options = {
programs.custom.prism-launcher = {
enable = lib.mkEnableOption "prism launcher";
package = lib.mkPackageOption pkgs "Prism Launcher" {
default = "prismlauncher";
};
javaPackages = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [
# These three JREs cover most minecraft versions
pkgs.temurin-jre-bin-21
pkgs.temurin-jre-bin-17
pkgs.temurin-jre-bin-8
];
defaultText = lib.literalExpression "with pkgs; [ temurin-jre-bin-21 temurin-jre-bin-17 temurin-jre-bin-8 ]";
description = "The java packages to provide to Prism Launcher for running the game";
};
additionalPrograms = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
defaultText = lib.literalExpression "[]";
description = ''
Additional programs that will be added to Prism Launcher's PATH.
Use this for mods that require an extra binary to be present to function.
'';
};
additionalLibs = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
defaultText = lib.literalExpression "[]";
description = ''
Additional dynamic libraries that will be added to Prism Launcher's LD_LIBRARY_PATH.
Use this for mods that require an extra native library to be present to function.
'';
};
controllerSupport = lib.mkOption {
type = lib.types.bool;
default = true;
defaultText = lib.literalExpression "true";
description = "Whether to enable controller support for Prism Launcher";
};
gamemodeSupport = lib.mkOption {
type = lib.types.bool;
default = true;
defaultText = lib.literalExpression "true";
description = "Whether to enable Feral GameMode support for Prism Launcher";
};
textToSpeechSupport = lib.mkOption {
type = lib.types.bool;
default = true;
defaultText = lib.literalExpression "true";
description = "Whether to enable text-to-speech support for Prism Launcher";
};
msaClientID = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
defaultText = lib.literalExpression "null";
description = ''
A custom MSA Client ID to use for authentication with microsoft servers.
Do not override this unless truly necessary.
'';
};
};
};
config = let
cfg = config.programs.custom.prism-launcher;
in lib.mkIf cfg.enable {
home.packages = [ (cfg.package.override {
jdks = cfg.javaPackages;
inherit (cfg) additionalPrograms additionalLibs controllerSupport gamemodeSupport textToSpeechSupport msaClientID;
}) ];
};
}

View file

@ -7,6 +7,7 @@
./bootloader.nix ./bootloader.nix
./display.nix ./display.nix
./locale.nix ./locale.nix
./mounts.nix
./networking.nix ./networking.nix
./nixpkgs.nix ./nixpkgs.nix
./programs.nix ./programs.nix

View file

@ -0,0 +1,15 @@
{ ... }:
{
fileSystems."/mnt/hdd" = {
device = "/dev/mapper/hdd";
fsType = "btrfs";
options = [ "compression=zstd:3" "autodefrag" "nofail" ];
encrypted = {
enable = true;
label = "hdd";
blkDev = "/dev/disk/by-uuid/eab5e1d6-6956-46fd-b3ac-5fcf525e1df8";
keyFile = "/mnt-root/root/hdd.key";
};
};
}

View file

@ -1,12 +1,12 @@
{ ... }: { pkgs, ... }:
{ {
networking = { networking = {
hostName = "ty-laptop-server"; hostName = "ty-laptop-server";
# Enable firewall # TODO Firewall causes issues with containers, need to fix it
firewall = { firewall = {
enable = true; enable = true;
trustedInterfaces = [ "lo" "ve-jellyfin" ]; package = pkgs.iptables;
}; };
# Enable NetworkManager # Enable NetworkManager
@ -19,4 +19,5 @@
useRoutingFeatures = "both"; useRoutingFeatures = "both";
openFirewall = true; openFirewall = true;
}; };
networking.firewall.trustedInterfaces = [ "tailscale0" ];
} }

View file

@ -7,9 +7,7 @@
networking = { networking = {
nat = { nat = {
enable = true; enable = true;
internalInterfaces = ["ve-jellyfin"];
externalInterface = "wlp2s0"; externalInterface = "wlp2s0";
}; };
networkmanager.unmanaged = [ "interface-name:ve-jellyfin" ];
}; };
} }

View file

@ -1,4 +1,4 @@
{ config, ... }: { ... }:
{ {
containers.jellyfin = { containers.jellyfin = {
config = { pkgs, ...}: { config = { pkgs, ...}: {
@ -8,10 +8,19 @@
enable = true; enable = true;
package = pkgs.jellyfin; package = pkgs.jellyfin;
}; };
# Firewall on the host system is enough + this firewall seems to break networking
networking.firewall.enable = false;
}; };
autoStart = true; autoStart = true;
privateNetwork = true; privateNetwork = true;
hostAddress = "172.30.0.2"; # TODO define in config option hostAddress = "172.30.1.2"; # TODO define in config option
localAddress = "172.30.0.2"; localAddress = "172.30.0.2";
}; };
networking = {
firewall.trustedInterfaces = [ "ve-jellyfin" ];
nat.internalInterfaces = [ "ve-jellyfin" ];
networkmanager.unmanaged = [ "interface-name:ve-jellyfin" ];
};
} }

View file

@ -1,6 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
fonts = { fonts = {
fontDir.enable = true;
packages = with pkgs; [ packages = with pkgs; [
# Core fonts (Arial, Times new roman and the such) # Core fonts (Arial, Times new roman and the such)
corefonts corefonts

View file

@ -12,7 +12,7 @@
# Experimentally turn off Nvidia GPU when not in use # Experimentally turn off Nvidia GPU when not in use
powerManagement.finegrained = false; powerManagement.finegrained = false;
open = false; # Open source module is still very much beta open = true; # Open source module is still very much beta
nvidiaSettings = true; nvidiaSettings = true;

View file

@ -10,6 +10,7 @@
# Nix utilities # Nix utilities
home-manager home-manager
inputs.colmena.packages."${system}".colmena inputs.colmena.packages."${system}".colmena
nvd
# VCS # VCS
git git
jujutsu jujutsu
@ -20,12 +21,21 @@
# Enable waydroid # Enable waydroid
virtualisation.waydroid.enable = true; virtualisation.waydroid.enable = true;
# Enable flatpak
services.flatpak.enable = true;
# Enable steam # Enable steam
programs.steam = { programs.steam = {
enable = true; enable = true;
extest.enable = true; extest.enable = true;
extraPackages = [
pkgs.vimix-cursors # Necessary so cursor size and theme are correct while inside the steam window
];
}; };
programs.gamemode.enable = true;
programs.gamescope.enable = true;
# Install zsh # Install zsh
programs.zsh.enable = true; programs.zsh.enable = true;

View file

@ -2,7 +2,7 @@
{ {
imports = [ imports = [
## External modules ## External modules
# Better command-not-found # Better command-not-found
inputs.nix-index-database.nixosModules.nix-index inputs.nix-index-database.nixosModules.nix-index
{ programs.nix-index-database.comma.enable = true; } { programs.nix-index-database.comma.enable = true; }
@ -11,7 +11,7 @@
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
../../home-manager ../../home-manager
{ meta.home-manager.preset = "plasma-desktop"; } { meta.home-manager.preset = "plasma-desktop"; }
## Normal configuration ## Normal configuration
./hardware-configuration.nix ./hardware-configuration.nix
./config ./config
@ -33,4 +33,4 @@
auto-optimise-store = true; auto-optimise-store = true;
}; };
nix.gc.automatic = true; nix.gc.automatic = true;
} }

View file

@ -0,0 +1,15 @@
{ ... }: {
system.stateVersion = "24.05";
home-manager.config = {
imports = [ ../../home-manager ];
meta.home-manager.preset = "cli";
};
environment.etcBackupExtension = ".bak";
nix.extraOptions = ''
experimental-features = nix-command flakes
'';
}