fully migrates dnsc-machine

This commit is contained in:
Dennis Schoepf 2026-03-03 23:26:16 +01:00
parent 8363764798
commit 7d7f81d9ce
14 changed files with 390 additions and 1 deletions

23
Justfile Normal file
View file

@ -0,0 +1,23 @@
deploy host:
nixos-rebuild switch --flake .#{{host}}
debug host:
nixos-rebuild switch --flake .#{{host}} --show-trace --verbose
dry host:
nix build .#nixosConfigurations.{{host}}.config.system.build.toplevel --dry-run --no-link
update:
nix flake update
history:
nix profile history --profile /nix/var/nix/profiles/system
repl:
nix repl -f flake:nixpkgs
clean:
nix profile wipe-history --profile /nix/var/nix/profiles/system --older-than 7d
gc:
sudo nix-collect-garbage --delete-old

57
flake.lock generated
View file

@ -41,6 +41,27 @@
"type": "github" "type": "github"
} }
}, },
"helium": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"utils": "utils"
},
"locked": {
"lastModified": 1772003810,
"narHash": "sha256-FfaHvYDfcWZ+0ZPkWDVywkglmQjBq0DoIqzl7TH2hXc=",
"owner": "schembriaiden",
"repo": "helium-browser-nix-flake",
"rev": "9001c8ec8bb3a4b9103eca2f2fc707bda1401977",
"type": "github"
},
"original": {
"owner": "schembriaiden",
"repo": "helium-browser-nix-flake",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -130,7 +151,7 @@
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_2",
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1772402258, "lastModified": 1772402258,
@ -149,6 +170,7 @@
"root": { "root": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"helium": "helium",
"home-manager": "home-manager", "home-manager": "home-manager",
"import-tree": "import-tree", "import-tree": "import-tree",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
@ -173,6 +195,39 @@
"repo": "default", "repo": "default",
"type": "github" "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"
}
},
"utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -13,6 +13,10 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
url = "github:LnL7/nix-darwin/master"; url = "github:LnL7/nix-darwin/master";
}; };
helium = {
url = "github:schembriaiden/helium-browser-nix-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
nixpkgs-lib.follows = "nixpkgs"; nixpkgs-lib.follows = "nixpkgs";
nixvim.url = "github:nix-community/nixvim"; nixvim.url = "github:nix-community/nixvim";

View file

@ -0,0 +1,18 @@
{ inputs, ... }:
{
flake.modules.nixos.browser =
{ pkgs, system, ... }:
{
environment.systemPackages = [
inputs.helium.packages.${system}.default
];
};
flake.modules.darwin.browser =
{ pkgs, system, ... }:
{
environment.systemPackages = [
inputs.helium.packages.${system}.default
];
};
}

View file

@ -10,6 +10,19 @@
environment.cosmic.excludePackages = with pkgs; [ environment.cosmic.excludePackages = with pkgs; [
cosmic-term cosmic-term
]; ];
environment.systemPackages = with pkgs; [
bibata-cursors
nerd-fonts.victor-mono
gimp
darktable
];
fonts.fontconfig = {
enable = true;
antialiasing = true;
defaultFonts.monospace = [ "VictorMono Nerd Font" ];
};
}; };
# TODO: Persist ~/.config/cosmic after setup # TODO: Persist ~/.config/cosmic after setup

View file

@ -6,5 +6,9 @@
hardware.opentabletdriver.enable = true; hardware.opentabletdriver.enable = true;
hardware.uinput.enable = true; hardware.uinput.enable = true;
boot.kernelModules = [ "uinput" ]; boot.kernelModules = [ "uinput" ];
environment.systemPackages = with pkgs; [
krita
];
}; };
} }

View file

@ -9,12 +9,14 @@ in
home-manager home-manager
base base
shell shell
ssh
cli-tools cli-tools
nix nix
nvidia-graphics nvidia-graphics
drawing-tablet drawing-tablet
printing printing
desktop desktop
terminal
gaming gaming
{ {

67
modules/ssh/default.nix Normal file
View file

@ -0,0 +1,67 @@
{ inputs, ... }:
{
flake.modules.nixos.ssh =
{ pkgs, ... }:
{
services.openssh.enable = true;
home-manager.sharedModules = [
inputs.self.modules.homeManager.ssh
];
};
flake.modules.darwin.ssh =
{ pkgs, ... }:
{
services.openssh.enable = true;
home-manager.sharedModules = [
inputs.self.modules.homeManager.ssh
];
};
flake.modules.homeManager.ssh =
{ pkgs, config, ... }:
{
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"*" = {
addKeysToAgent = "yes";
};
"dnsc-machine" = {
hostname = "192.168.178.250";
user = "dennis";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
identitiesOnly = true;
};
"dnsc-server" = {
hostname = "192.168.178.69";
user = "dennis";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
identitiesOnly = true;
};
"dnsc-vps-sm" = {
hostname = "91.99.21.186";
user = "dennis";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
identitiesOnly = true;
};
"dnsc-storage" = {
hostname = "u295965.your-storagebox.de";
user = "u295965";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
identitiesOnly = true;
port = 23;
};
"dnsc-storage-sftp" = {
hostname = "u295965.your-storagebox.de";
user = "u295965";
identityFile = "${config.home.homeDirectory}/.ssh/id_ed25519";
port = 22;
};
};
};
};
}

View file

@ -0,0 +1,156 @@
{ inputs, ... }:
{
flake.modules.nixos.terminal =
{ pkgs, ... }:
{
home-manager.sharedModules = [
inputs.self.modules.homeManager.terminal
];
};
flake.modules.darwin.terminal =
{ pkgs, ... }:
{
home-manager.sharedModules = [
inputs.self.modules.homeManager.terminal
];
};
flake.modules.homeManager.terminal =
{ pkgs, config, ... }:
{
programs.ghostty = {
enable = true;
enableFishIntegration = true;
settings = {
font-size = 14;
font-family = "VictorMono Nerd Font";
font-style = "SemiBold";
background-opacity = 0.945;
window-padding-x = 0;
window-padding-y = 0;
window-padding-balance = true;
window-inherit-working-directory = true;
window-theme = "ghostty";
shell-integration-features = true;
scrollback-limit = 100000;
link-url = true;
link-previews = true;
title = " ";
background = "#0f0b15";
foreground = "#ffffff";
cursor-color = "#d369af";
selection-foreground = "#af85ea";
selection-background = "#572454";
palette = [
"0=#0f0b15"
"1=#f47359"
"2=#29a444"
"3=#b58a52"
"4=#3f95f6"
"5=#d369af"
"6=#4fbaef"
"7=#b8c6d5"
"8=#807c9f"
"9=#ff6a7a"
"10=#00a392"
"11=#df9080"
"12=#029fff"
"13=#af85ea"
"14=#35afbf"
"15=#ffffff"
];
keybind = [
"ctrl+plus=increase_font_size:2"
"ctrl+minus=decrease_font_size:2"
"ctrl+0=reset_font_size"
"ctrl+shift+a=select_all"
"ctrl+shift+c=copy_to_clipboard"
"ctrl+shift+v=paste_from_clipboard"
"cmd+c=copy_to_clipboard"
"cmd+v=paste_from_clipboard"
];
};
};
programs.tmux = {
enable = true;
package = pkgs.tmux;
baseIndex = 1;
clock24 = true;
disableConfirmationPrompt = true;
mouse = true;
newSession = true;
prefix = "C-b";
shell = "${pkgs.fish}/bin/fish";
terminal = "screen-256color";
keyMode = "vi";
escapeTime = 0;
plugins = with pkgs; [
{
plugin = tmuxPlugins.resurrect;
extraConfig = ''
set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-capture-pane-contents 'on'
'';
}
{
plugin = tmuxPlugins.continuum;
extraConfig = ''
set -g @continuum-restore 'on'
set -g @continuum-boot 'on'
set -g @continuum-save-interval '10'
'';
}
];
extraConfig = ''
set -g status-position top
set -g status-style bg=#1d202f,fg=white
set -g status-left ""
set -g status-right "#[bg=default,fg=magenta]>> #S << #[bg=default,fg=white]#H "
set-window-option -g window-status-style 'fg=magenta,bg=#1d202f'
set-window-option -g window-status-format ' #I #[fg=white]#W #[fg=cyan]#F '
set-window-option -g window-status-current-style "fg=black,bg=magenta"
set-window-option -g window-status-current-format " #I #W #F "
set -g pane-border-style fg=#807c9f
set -g pane-active-border-style fg=magenta
set -g message-style "fg=black,bg=red,bold"
unbind %
bind "|" split-window -h
unbind '"'
bind - split-window -l 15 -v
bind r source-file "~/.config/tmux/tmux.conf"
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
bind ? list-keys -a
unbind s
bind s display-popup -h 50% -w 80% -E sessionizer
unbind g
bind g display-popup -h 90% -w 95% -E lazygit
unbind C-x
bind C-x kill-session
unbind v
bind v choose-tree -Zw "join-pane -t '%%'"
'';
};
xdg.configFile."tmuxinator" = {
source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/dev/nix-config/modules/terminal/tmuxinator-layouts";
};
};
}

View file

@ -0,0 +1,11 @@
name: dnsc-io
root: ~/dev/dnsc-io
windows:
- dev:
layout: main-horizontal
panes:
- nvim +"lua Snacks.picker.files({ hidden = true })"
- run:
layout: main-vertical
panes:
- "pnpm dev"

View file

@ -0,0 +1,7 @@
name: main
root: ~/
windows:
- default:
layout: main-vertical
panes:
- clear

View file

@ -0,0 +1,7 @@
name: nix-config
root: ~/dev/nix-config/
windows:
- code:
layout: main-horizontal
panes:
- nvim +"lua Snacks.picker.files({ hidden = true })"

View file

@ -0,0 +1,11 @@
name: notes
root: ~/dev/notes
windows:
- code:
layout: main-horizontal
panes:
- nvim +"lua Snacks.picker.files({ hidden = true })"
- run:
layout: even-vertical
panes:
- clear

View file

@ -0,0 +1,11 @@
name: proglog
root: ~/dev/proglog
windows:
- dev:
layout: main-horizontal
panes:
- nvim +"lua Snacks.picker.files({ hidden = true })"
- run:
layout: main-vertical
panes:
- echo ">> Run proglog tasks here"