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.url = "github:hyprwm/Hyprland";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
hyprlock.url = "github:hyprwm/hyprlock";
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
@ -56,6 +56,12 @@
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 = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs";
@ -70,18 +76,13 @@
sops-nix.url = "github:Mic92/sops-nix";
## temporary
zen-browser.url = "github:0xc000022070/zen-browser-flake";
zen-browser.url = "github:ch4og/zen-browser-flake";
raspberry-pi-nix = {
url = "github:nix-community/raspberry-pi-nix";
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
@ -118,20 +119,14 @@
overlays = with inputs; [
snowfall-flake.overlays.default
kickstartnvim.overlays.default
hyprpanel.overlay
];
homes.modules = with inputs; [
sops-nix.homeManagerModules.sops
catppuccin.homeManagerModules.catppuccin
];
systems.modules.nixos = with inputs; [
home-manager.nixosModules.home-manager
nix-ld.nixosModules.nix-ld
sops-nix.nixosModules.sops
catppuccin.nixosModules.catppuccin
];
systems.hosts.nixberry.modules = with inputs; [
@ -139,19 +134,9 @@
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 ];
}
// rec {
// {
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;
};
};
home.stateVersion = "24.05";
}

View file

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

View file

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

View file

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

View file

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

View file

@ -41,13 +41,12 @@ in
!**/appsettings.json
'';
catppuccin.helix.enable = true;
programs.helix = {
enable = true;
package = helix-pkg;
defaultEditor = true;
settings = {
theme = "tokyonight";
editor = {
auto-format = true;
line-number = "relative";
@ -153,21 +152,11 @@ in
config.provideFormatter = 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 = {
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
args = [ "--stdio" ];
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;
};
};
environment.systemPackages = with pkgs.nerd-fonts; [
jetbrains-mono
];
};
}

View file

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

View file

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

View file

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

View file

@ -24,7 +24,7 @@ in
programs.noisetorch.enable = true;
services.pulseaudio = disabled;
hardware.pulseaudio = disabled;
security.rtkit.enable = true;
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 = {
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:
db:
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:
customer_number: ENC[AES256_GCM,data:9+QboNg1,iv:Tg9ylJUM8L/kzqFmk2uIsD9noqnp5wIxr5GVXMsZwB8=,tag:2qRggSIkPHuCQYDWCfka5Q==,type:str]
api:
@ -39,8 +34,8 @@ sops:
UllqSDR1YWl6aU1jSnY2WE9oczg5Q28KfN15tFxXHrJmOHySK+cyLi2bFqArg244
bNTYyuBUtBW1Y/EuNpbyLjSNQpKZWFz7grE64uxrNQHP865N3wv0gg==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-12-28T08:37:33Z"
mac: ENC[AES256_GCM,data:S2UcgNVmk+BSHaUVodsDHjwCIB5cAIfv+tb8mhTh9hktZBFxfQsRgrH+dFlpe7FmbWRBF8XnOIlsf74ytamfmGVEqBfyLA8gzdiAt9oFmOVdCFGf29IaSQjk8nehaYBPM5CJ35ihhzw8yC6S3JmgGuGuzmtDtJq61Zp68WQ5tow=,iv:KKo65bjuNuvzclAFALEGdKn134TxBhDjyjbX3ULEuV8=,tag:odGFLbfijulc9/hmjrPRxQ==,type:str]
lastmodified: "2024-11-12T14:29:12Z"
mac: ENC[AES256_GCM,data:lKx1qAe689wkWkrMRvqHpE0zmv+ShLwpApBw2C4+JEuuHnoN1W7aoB/GQRkWzmImCCy9odzM2yoUa0mJogl0i+bddblrl+ZS0uPmPQrm3pM0sl876pelogxKuNpQWS8PRNDe24z3m06f0TozhfPF9D2ywH30tFH8naZONfWTTUU=,iv:tDhJVlWnTHnjZak32pgnUZ8XtM6TK9o2gZ0X3tcQD4Q=,tag:PcMS/5DpEkDkk+U0GG918w==,type:str]
pgp: []
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
];
services.tailscale = {
enable = true;
useRoutingFeatures = "server";
};
networking = {
interfaces.end0 = {
ipv4.addresses = [
@ -114,7 +109,7 @@ in
};
};
# Pi specific stuff
# Pi specific stuff
raspberry-pi-nix.board = "bcm2712";
hardware = {
raspberry-pi = {

View file

@ -11,7 +11,6 @@ let
domainName = "christophhollizeck.dev";
forgejoPort = 3000;
hydraPort = 2000;
cfg.enableAcme = true;
@ -27,15 +26,6 @@ in
"forgejo/db/password" = {
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}" = {
forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = {
root = /var/www/website;
index = "index.html";
};
};
"_" = {
forceSSL = cfg.enableAcme;
useACMEHost = mkIf cfg.enableAcme domainName;
locations."/" = {
proxyPass = "https://${domainName}";
return = "404";
};
};
};
@ -98,79 +69,10 @@ in
HTTP_PORT = forgejoPort;
};
mailer = {
ENABLED = true;
PROTOCOL = "smtps";
FROM = "no-reply@${domainName}";
SMTP_ADDR = "mail.${domainName}";
USER = "forgejo@${domainName}";
};
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 = [
forgejoPort
80

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,
namespace,
pkgs,
@ -19,9 +18,7 @@ in
# eve
bottles
pyfa
unzip
];
environment.pathsToLink = [ "/libexec" ];
@ -35,11 +32,6 @@ in
backupFileExtension = ".bak";
};
services.tailscale = {
enable = true;
useRoutingFeatures = "server";
};
nix = {
distributedBuilds = true;
settings.builders-use-substitutes = true;
@ -108,7 +100,7 @@ in
windowrulev2 = [
"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)$"
];
};
@ -118,8 +110,6 @@ in
factorio-server = disabled;
};
tools.devenv = enabled;
system = {
hardware = {
bluetooth = enabled;