Compare commits

..

3 commits

23 changed files with 323 additions and 968 deletions

View file

@ -1,15 +0,0 @@
on:
schedule:
- cron: 0 3 * * *
push:
jobs:
test:
runs-on: native
steps:
- uses: actions/checkout@v3
- run: nix build self#loptland

File diff suppressed because it is too large Load diff

View file

@ -30,7 +30,7 @@
### ###
# hyprland stuff # hyprland stuff
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
hyprlock.url = "github:hyprwm/hyprlock"; hyprlock.url = "github:hyprwm/hyprlock";
hyprland-plugins = { hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins"; url = "github:hyprwm/hyprland-plugins";
@ -56,6 +56,12 @@
inputs.nixpkgs.follows = "nixpkgs-unstable"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
# still not sure if I like helix or nvim more, for now helix does mostly everything I need it to
kickstartnvim = {
url = "github:Daholli/kickstart-nix-nvim";
inputs.nixpkgs.follows = "nixpkgs";
};
helix = { helix = {
url = "github:helix-editor/helix"; url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -70,18 +76,13 @@
sops-nix.url = "github:Mic92/sops-nix"; sops-nix.url = "github:Mic92/sops-nix";
## temporary ## temporary
zen-browser.url = "github:0xc000022070/zen-browser-flake"; zen-browser.url = "github:ch4og/zen-browser-flake";
raspberry-pi-nix = { raspberry-pi-nix = {
url = "github:nix-community/raspberry-pi-nix"; url = "github:nix-community/raspberry-pi-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.05";
catppuccin.url = "github:catppuccin/nix";
nix-gaming.url = "github:fufexan/nix-gaming";
################ ################
## inputs for dev shells ## inputs for dev shells
@ -118,20 +119,14 @@
overlays = with inputs; [ overlays = with inputs; [
snowfall-flake.overlays.default snowfall-flake.overlays.default
kickstartnvim.overlays.default
hyprpanel.overlay hyprpanel.overlay
]; ];
homes.modules = with inputs; [
sops-nix.homeManagerModules.sops
catppuccin.homeManagerModules.catppuccin
];
systems.modules.nixos = with inputs; [ systems.modules.nixos = with inputs; [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
nix-ld.nixosModules.nix-ld nix-ld.nixosModules.nix-ld
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
catppuccin.nixosModules.catppuccin
]; ];
systems.hosts.nixberry.modules = with inputs; [ systems.hosts.nixberry.modules = with inputs; [
@ -139,19 +134,9 @@
raspberry-pi-nix.nixosModules.sd-image raspberry-pi-nix.nixosModules.sd-image
]; ];
systems.hosts.loptland.modules = with inputs; [
simple-nixos-mailserver.nixosModules.default
];
systems.hosts.wsl.modules = with inputs; [ nixos-wsl.nixosModules.default ]; systems.hosts.wsl.modules = with inputs; [ nixos-wsl.nixosModules.default ];
} }
// rec { // {
self = inputs.self; self = inputs.self;
hydraJobs = {
hosts = lib.mapAttrs (_: cfg: cfg.config.system.build.toplevel) (
lib.filterAttrs (name: cfg: name != "nixberry") self.outputs.nixosConfigurations
);
};
}; };
} }

View file

@ -17,4 +17,6 @@ with lib.wyrdgard;
direnv = enabled; direnv = enabled;
}; };
}; };
home.stateVersion = "24.05";
} }

View file

@ -18,8 +18,6 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
catppuccin.fish.enable = true;
programs = { programs = {
fish = { fish = {
enable = true; enable = true;
@ -39,7 +37,7 @@ in
''; '';
shellAliases = { shellAliases = {
vim = "hx"; vim = "hx";
ls = "eza -lah --icons --git"; ls = "eza -lh --icons --git";
lss = "ls --total-size"; lss = "ls --total-size";
}; };
plugins = with pkgs.fishPlugins; [ plugins = with pkgs.fishPlugins; [

View file

@ -16,7 +16,6 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
catppuccin.starship.enable = true;
programs = { programs = {
fish.shellInit = " fish.shellInit = "
starship init fish | source starship init fish | source

View file

@ -19,8 +19,6 @@ in
home.sessionVariables.TERMINAL = "kitty"; home.sessionVariables.TERMINAL = "kitty";
catppuccin.kitty.enable = true;
# TODO: move this to a thunar specific module # TODO: move this to a thunar specific module
home.file.".config/Thunar/uca.xml".text = '' home.file.".config/Thunar/uca.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@ -42,7 +40,7 @@ in
programs.kitty = { programs.kitty = {
enable = true; enable = true;
# themeFile = "tokyo_night_night"; themeFile = "tokyo_night_night";
font = { font = {
name = "Code New Roman"; name = "Code New Roman";
size = 15; size = 15;

View file

@ -52,7 +52,6 @@ in
]; ];
strategy = "incremental"; strategy = "incremental";
}; };
lfs."https://git.christophhollizeck.dev/Daholli/nixos-config.git/info/lfs".locksverify = true;
}; };
}; };
}; };

View file

@ -41,13 +41,12 @@ in
!**/appsettings.json !**/appsettings.json
''; '';
catppuccin.helix.enable = true;
programs.helix = { programs.helix = {
enable = true; enable = true;
package = helix-pkg; package = helix-pkg;
defaultEditor = true; defaultEditor = true;
settings = { settings = {
theme = "tokyonight";
editor = { editor = {
auto-format = true; auto-format = true;
line-number = "relative"; line-number = "relative";
@ -153,21 +152,11 @@ in
config.provideFormatter = true; config.provideFormatter = true;
config.json.validate.enable = true; config.json.validate.enable = true;
}; };
vscode-html-language-server = {
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-html-language-server";
args = [ "--stdio" ];
config.provideFormatter = true;
};
vscode-css-language-server = { vscode-css-language-server = {
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server"; command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
args = [ "--stdio" ]; args = [ "--stdio" ];
config.provideFormatter = true; config.provideFormatter = true;
}; };
vscode-eslint-language-server = {
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-eslint-language-server";
args = [ "--stdio" ];
config.provideFormatter = true;
};
}; };
}; };
}; };

View file

@ -610,9 +610,5 @@ in
text = builtins.toJSON settings; text = builtins.toJSON settings;
}; };
}; };
environment.systemPackages = with pkgs.nerd-fonts; [
jetbrains-mono
];
}; };
} }

View file

@ -17,15 +17,11 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
catppuccin.flavor = "mocha";
catppuccin.enable = true;
${namespace}.home.extraOptions = { ${namespace}.home.extraOptions = {
catppuccin.flavor = "mocha"; dconf.settings = {
catppuccin.enable = true; "org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
dconf = { };
settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
}; };
gtk = { gtk = {
@ -44,5 +40,6 @@ in
platformTheme = "gnome"; platformTheme = "gnome";
style = "adwaita-dark"; style = "adwaita-dark";
}; };
}; };
} }

View file

@ -56,7 +56,7 @@ in
users = [ users = [
"root" "root"
config.${namespace}.user.name config.${namespace}.user.name
] ++ optional config.services.hydra.enable "hydra hydra-evaluator hydra-queue-runner"; ];
in in
{ {
package = cfg.package; package = cfg.package;
@ -71,7 +71,6 @@ in
auto-optimise-store = true; auto-optimise-store = true;
trusted-users = users; trusted-users = users;
allowed-users = users; allowed-users = users;
allowed-uris = "github: https://github.com/ git+https://github.com/ gitlab: https://gitlab.com/ git+https://gitlab.com/";
substituters = [ substituters = [
cfg.default-substituter.url cfg.default-substituter.url
] ++ (mapAttrsToList (name: value: name) cfg.extra-substituters); ] ++ (mapAttrsToList (name: value: name) cfg.extra-substituters);

View file

@ -28,11 +28,15 @@ in
fonts.packages = fonts.packages =
with pkgs; with pkgs;
[ [
(nerdfonts.override {
fonts = [
"CodeNewRoman"
"NerdFontsSymbolsOnly"
];
})
font-awesome font-awesome
powerline-fonts powerline-fonts
powerline-symbols powerline-symbols
nerd-fonts.code-new-roman
nerd-fonts.symbols-only
] ]
++ cfg.fonts; ++ cfg.fonts;
}; };

View file

@ -24,7 +24,7 @@ in
programs.noisetorch.enable = true; programs.noisetorch.enable = true;
services.pulseaudio = disabled; hardware.pulseaudio = disabled;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {

View file

@ -1,23 +0,0 @@
{
config,
lib,
namespace,
pkgs,
...
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.${namespace}.tools.devenv;
in
{
options.${namespace}.tools.devenv = {
enable = mkEnableOption "Whether or not to enable direnv.";
};
config = mkIf cfg.enable {
environment.systemPackages = [
pkgs.devenv
];
};
}

View file

@ -49,7 +49,6 @@ in
safe = { safe = {
directory = "${config.users.users.${user.name}.home}/projects/config"; directory = "${config.users.users.${user.name}.home}/projects/config";
}; };
lfs."https://git.christophhollizeck.dev/Daholli/nixos-config.git/info/lfs".locksverify = true;
}; };
}; };
}; };

View file

@ -1,3 +0,0 @@
{ channels, ... }:
final: prev: { inherit (channels.nixpkgs-pyfa) pyfa; }

View file

@ -5,11 +5,6 @@ factorio:
forgejo: forgejo:
db: db:
password: ENC[AES256_GCM,data:CicLsCG2WCtiKMcz3DF5eVVaT8A=,iv:SPO1H4AZwo5FjJWkf1OS7aPOrpTGxqsAj4q3cuuWAbA=,tag:0snK8RyAd8heNvui2sbSNw==,type:str] password: ENC[AES256_GCM,data:CicLsCG2WCtiKMcz3DF5eVVaT8A=,iv:SPO1H4AZwo5FjJWkf1OS7aPOrpTGxqsAj4q3cuuWAbA=,tag:0snK8RyAd8heNvui2sbSNw==,type:str]
mail:
password: ENC[AES256_GCM,data:XgQZM0MBUEELyhH7UvyyMEiUABs=,iv:m3Wzs2SAPQ2w6UC02lpTvwd83Dt0LEzqdIj65HeOrbU=,tag:3cr5dnjeyoJ4ze9RFd9K5g==,type:str]
passwordHash: ENC[AES256_GCM,data:hHGJBUEtCi/gErZ5vm0gsEFqyIDNkED4scR4NAOSzbiiZAYTMg++yqf3hfjjwWV3wTPswNpzzw+gYKEH,iv:wDM5IOOamopFpMEkUit4y7LBZi8CJff3+Tc08lK4IXI=,tag:FaaaohtA+vBFwjDugoemQw==,type:str]
runner:
token: ENC[AES256_GCM,data:PyJvFNtq18h3zDwBT/jDYdh7noQ1Si1gpTnVAPEbKGQFydIMk0CQWQDCjiK6xA==,iv:ceGpyyMnLrdJTPEw6ViDeZVy83dRWi6tViks6K7p1UE=,tag:zEFP/8fI9nxJdf4BmJH7Uw==,type:str]
netcup: netcup:
customer_number: ENC[AES256_GCM,data:9+QboNg1,iv:Tg9ylJUM8L/kzqFmk2uIsD9noqnp5wIxr5GVXMsZwB8=,tag:2qRggSIkPHuCQYDWCfka5Q==,type:str] customer_number: ENC[AES256_GCM,data:9+QboNg1,iv:Tg9ylJUM8L/kzqFmk2uIsD9noqnp5wIxr5GVXMsZwB8=,tag:2qRggSIkPHuCQYDWCfka5Q==,type:str]
api: api:
@ -39,8 +34,8 @@ sops:
UllqSDR1YWl6aU1jSnY2WE9oczg5Q28KfN15tFxXHrJmOHySK+cyLi2bFqArg244 UllqSDR1YWl6aU1jSnY2WE9oczg5Q28KfN15tFxXHrJmOHySK+cyLi2bFqArg244
bNTYyuBUtBW1Y/EuNpbyLjSNQpKZWFz7grE64uxrNQHP865N3wv0gg== bNTYyuBUtBW1Y/EuNpbyLjSNQpKZWFz7grE64uxrNQHP865N3wv0gg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-12-28T08:37:33Z" lastmodified: "2024-11-12T14:29:12Z"
mac: ENC[AES256_GCM,data:S2UcgNVmk+BSHaUVodsDHjwCIB5cAIfv+tb8mhTh9hktZBFxfQsRgrH+dFlpe7FmbWRBF8XnOIlsf74ytamfmGVEqBfyLA8gzdiAt9oFmOVdCFGf29IaSQjk8nehaYBPM5CJ35ihhzw8yC6S3JmgGuGuzmtDtJq61Zp68WQ5tow=,iv:KKo65bjuNuvzclAFALEGdKn134TxBhDjyjbX3ULEuV8=,tag:odGFLbfijulc9/hmjrPRxQ==,type:str] mac: ENC[AES256_GCM,data:lKx1qAe689wkWkrMRvqHpE0zmv+ShLwpApBw2C4+JEuuHnoN1W7aoB/GQRkWzmImCCy9odzM2yoUa0mJogl0i+bddblrl+ZS0uPmPQrm3pM0sl876pelogxKuNpQWS8PRNDe24z3m06f0TozhfPF9D2ywH30tFH8naZONfWTTUU=,iv:tDhJVlWnTHnjZak32pgnUZ8XtM6TK9o2gZ0X3tcQD4Q=,tag:PcMS/5DpEkDkk+U0GG918w==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.2 version: 3.9.1

View file

@ -1,13 +0,0 @@
{
pkgs,
mkShell,
...
}:
mkShell {
# Create your shell
nativeBuildInputs = with pkgs; [
jdt-language-server
zulu8
zulu21
];
}

View file

@ -19,11 +19,6 @@ in
raspberry-pi-5 raspberry-pi-5
]; ];
services.tailscale = {
enable = true;
useRoutingFeatures = "server";
};
networking = { networking = {
interfaces.end0 = { interfaces.end0 = {
ipv4.addresses = [ ipv4.addresses = [

View file

@ -11,7 +11,6 @@ let
domainName = "christophhollizeck.dev"; domainName = "christophhollizeck.dev";
forgejoPort = 3000; forgejoPort = 3000;
hydraPort = 2000;
cfg.enableAcme = true; cfg.enableAcme = true;
@ -27,15 +26,6 @@ in
"forgejo/db/password" = { "forgejo/db/password" = {
inherit sopsFile; inherit sopsFile;
}; };
"forgejo/mail/password" = {
inherit sopsFile;
};
"forgejo/mail/passwordHash" = {
inherit sopsFile;
};
"forgejo/runner/token" = {
inherit sopsFile;
};
}; };
}; };
@ -53,31 +43,12 @@ in
}; };
}; };
"hydra.${domainName}" = {
forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = {
proxyPass = "http://localhost:${toString hydraPort}/";
};
};
"${domainName}" = { "${domainName}" = {
forceSSL = cfg.enableAcme; forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName; useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = { locations."/" = {
root = /var/www/website; return = "404";
index = "index.html";
};
};
"_" = {
forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = {
proxyPass = "https://${domainName}";
}; };
}; };
}; };
@ -98,78 +69,9 @@ in
HTTP_PORT = forgejoPort; HTTP_PORT = forgejoPort;
}; };
mailer = {
ENABLED = true;
PROTOCOL = "smtps";
FROM = "no-reply@${domainName}";
SMTP_ADDR = "mail.${domainName}";
USER = "forgejo@${domainName}";
};
service.DISABLE_REGISTRATION = true; service.DISABLE_REGISTRATION = true;
}; };
secrets = {
mailer.PASSWD = config.sops.secrets."forgejo/mail/password".path;
}; };
};
mailserver = {
enable = true;
fqdn = "mail.${domainName}";
domains = [ domainName ];
loginAccounts = {
"forgejo@${domainName}" = {
hashedPasswordFile = config.sops.secrets."forgejo/mail/passwordHash".path;
aliases = [ "no-reply@${domainName}" ];
};
};
certificateScheme = "acme-nginx";
};
services.hydra = {
enable = true;
hydraURL = "http://localhost:${toString hydraPort}";
port = hydraPort;
notificationSender = "hydra@localhost";
buildMachinesFiles = [ ];
useSubstitutes = true;
};
# services.gitea-actions-runner = {
# package = pkgs.forgejo-actions-runner;
# instances.default = {
# enable = true;
# name = "monolith";
# url = "https://git.${domainName}";
# tokenFile = config.sops.secrets."forgejo/runner/token".path;
# labels = [
# "native:host"
# ];
# hostPackages = with pkgs; [
# bash
# coreutils
# curl
# gawk
# gitMinimal
# gnused
# nodejs
# wget
# ];
# settings = {
# log.level = "info";
# runner = {
# capacity = 1;
# timeout = "3h";
# shutdown_timeout = "3s";
# fetch_timeout = "5s";
# fetch_inteval = "2s";
# };
# };
# };
# };
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
forgejoPort forgejoPort

View file

@ -1,154 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Christoph Hollizeck</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
* {
box-sizing: border-box;
}
html {
height: 100%;
margin: 0 auto;
}
body {
height: inherit;
font-family: monospace;
background-color: #2e2c42;
}
.content-box {
margin: auto;
margin-top: 10%;
position: relative;
width: 50vw;
height: 50vw;
max-width: 828px;
max-height: 828px;
min-width: 541px;
min-height: 541px;
text-align: center;
border-radius: 15%;
color: #90A0C1;
background-color: #151823;
}
.content-box:after {
position: absolute;
content: "";
top: 5vw;
left: 0;
right: 0;
z-index: -1;
height: 100%;
width: 100%;
margin: auto;
transform: scale(0.75);
-webkit-filter: blur(5vw);
-moz-filter: blur(5vw);
-ms-filter: blur(5vw);
filter: blur(5vw);
background: linear-gradient(270deg, #0fffc1, #7e0fff);
background-size: 200% 200%;
animation: animateGlow 10s ease infinite;
}
.text-box {
display: flex;
flex-direction: column;
padding: 10%;
height: 100%;
}
p {
font-size: 13px;
text-align: left;
}
.hyperlinks {
margin-top: auto;
}
/* Style all font awesome icons */
.fa,
.fa-brands {
padding: 20px;
font-size: 30px;
width: 50px;
text-align: center;
text-decoration: none;
}
.fa:visited {
color: inherit;
}
/* Add a hover effect if you want */
.fa:hover {
opacity: 0.7;
}
@keyframes animateGlow {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
@keyframes textColor {
0% {
color: #7e0fff;
}
50% {
color: #0fffc1;
}
100% {
color: #7e0fff;
}
}
</style>
</head>
<body>
<div class="content-box">
<div class="text-box">
<h1> Christoph Hollizeck </h1>
<p> "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
</p>
<p> "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
</p>
<div class="hyperlinks">
<a href="https://git.christophhollizeck.dev" class="fa fa-git"></a>
<a href="https://https://www.linkedin.com/in/christoph-hollizeck-650007214/" class="fa fa-linkedin"></a>
</div>
</div>
</div>
</body>
</html>

View file

@ -1,5 +1,4 @@
{ {
inputs,
lib, lib,
namespace, namespace,
pkgs, pkgs,
@ -19,9 +18,7 @@ in
# eve # eve
bottles bottles
pyfa
unzip
]; ];
environment.pathsToLink = [ "/libexec" ]; environment.pathsToLink = [ "/libexec" ];
@ -35,11 +32,6 @@ in
backupFileExtension = ".bak"; backupFileExtension = ".bak";
}; };
services.tailscale = {
enable = true;
useRoutingFeatures = "server";
};
nix = { nix = {
distributedBuilds = true; distributedBuilds = true;
settings.builders-use-substitutes = true; settings.builders-use-substitutes = true;
@ -108,7 +100,7 @@ in
windowrulev2 = [ windowrulev2 = [
"workspace 8 silent, class:^(steam)$, title:^(Friends List)" "workspace 8 silent, class:^(steam)$, title:^(Friends List)"
"workspace 8 silent, class:^(discord)$, title:^(Discord)" "workspace 8 silent, class:^(vesktop)$, title:^(Discord)"
"workspace 7 silent, class:^(com.obsproject.Studio)$" "workspace 7 silent, class:^(com.obsproject.Studio)$"
]; ];
}; };
@ -118,8 +110,6 @@ in
factorio-server = disabled; factorio-server = disabled;
}; };
tools.devenv = enabled;
system = { system = {
hardware = { hardware = {
bluetooth = enabled; bluetooth = enabled;