Compare commits

..
2 Commits
15 changed files with 109 additions and 322 deletions
Generated
+80 -20
View File
@@ -8,11 +8,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1782949081, "lastModified": 1775087534,
"narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -28,11 +28,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1784546264, "lastModified": 1777004352,
"narHash": "sha256-jxVr5EHMYAOkFvS2k0abIvt6NqyshyWmiHHzV17sT2g=", "narHash": "sha256-SV+9PgNwZ8jHVCjK6YaCBzaheLSW7cDnm5DpOYrD8Vw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e3dea8e4792b09a6c0eb5836b0284ad05b1acba0", "rev": "6012cf1fed3eba66115f3fd117b9be6bd2a15b2f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -43,11 +43,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1784497964, "lastModified": 1776548001,
"narHash": "sha256-vlHUuqAcbcH2RKmHbPiuQzbv1pnzzavXnI62RD0bqCU=", "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163", "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +66,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1784057377, "lastModified": 1777051818,
"narHash": "sha256-yycNej5//EsRbV10moBoh+/63vXEwZD1ZFEiRm6C9rQ=", "narHash": "sha256-2tuHuYmcg8HQSYamI1FoLLVFFOSYK2Alqr/cGiVIfG4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "07180a087e4a00720dc0731cbcd8dec796974381", "rev": "b684241888d9271ab5196383e24098ad4400a372",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -83,14 +83,15 @@
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ],
"noctalia-qs": "noctalia-qs"
}, },
"locked": { "locked": {
"lastModified": 1784556533, "lastModified": 1776888984,
"narHash": "sha256-tlcP2x7d+ldS3BypTcInqrsOhi6BPuSSTeubfBMmm8Y=", "narHash": "sha256-Up2F/eoMuPUsZnPVYdH5TMHe1TBP2Ue1QuWd0vWZoxY=",
"owner": "noctalia-dev", "owner": "noctalia-dev",
"repo": "noctalia-shell", "repo": "noctalia-shell",
"rev": "815635cf7dc810616c9e6ecf4b9b4f4c54e69905", "rev": "2c1808f9f8937fc0b82c54af513f7620fec56d71",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -99,6 +100,29 @@
"type": "github" "type": "github"
} }
}, },
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"noctalia",
"nixpkgs"
],
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1776585574,
"narHash": "sha256-j35EWhKoGhKrfcXcAOpoRVgXEPQt41Eukji/h59cnjk=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "75d180c28a9ab4470e980f3d6f706ad6c5213add",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
@@ -109,19 +133,55 @@
}, },
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1774449309, "lastModified": 1681028828,
"narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "c29398b59d2048c4ab79345812849c9bd15e9150", "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"ref": "future-26.11",
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"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"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"noctalia",
"noctalia-qs",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775636079,
"narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",
-3
View File
@@ -2,12 +2,10 @@
{ {
imports = [ imports = [
../../modules/nixos/astro.nix
../../modules/nixos/audio.nix ../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix ../../modules/nixos/bootloader.nix
../../modules/nixos/calibre.nix ../../modules/nixos/calibre.nix
../../modules/nixos/certificates.nix ../../modules/nixos/certificates.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/drives.nix ../../modules/nixos/drives.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/gnuradio.nix ../../modules/nixos/gnuradio.nix
@@ -23,7 +21,6 @@
../../modules/nixos/services.nix ../../modules/nixos/services.nix
../../modules/nixos/settings.nix ../../modules/nixos/settings.nix
../../modules/nixos/steam.nix ../../modules/nixos/steam.nix
../../modules/nixos/thunar.nix
../../modules/nixos/users.nix ../../modules/nixos/users.nix
]; ];
-3
View File
@@ -2,11 +2,9 @@
{ {
imports = [ imports = [
../../modules/nixos/astro.nix
../../modules/nixos/audio.nix ../../modules/nixos/audio.nix
../../modules/nixos/bootloader.nix ../../modules/nixos/bootloader.nix
../../modules/nixos/certificates.nix ../../modules/nixos/certificates.nix
../../modules/nixos/claudecode.nix
../../modules/nixos/docker.nix ../../modules/nixos/docker.nix
../../modules/nixos/gnupg.nix ../../modules/nixos/gnupg.nix
../../modules/nixos/locales.nix ../../modules/nixos/locales.nix
@@ -15,7 +13,6 @@
../../modules/nixos/noctalia.nix ../../modules/nixos/noctalia.nix
../../modules/nixos/openssh.nix ../../modules/nixos/openssh.nix
../../modules/nixos/packages.nix ../../modules/nixos/packages.nix
../../modules/nixos/protonvpn.nix
../../modules/nixos/sddm.nix ../../modules/nixos/sddm.nix
../../modules/nixos/services.nix ../../modules/nixos/services.nix
../../modules/nixos/settings.nix ../../modules/nixos/settings.nix
+14 -46
View File
@@ -3,18 +3,8 @@
{ {
programs.nixvim = { programs.nixvim = {
enable = true; enable = true;
# We keep `inputs.nixvim.inputs.nixpkgs.follows = "nixpkgs"` in flake.nix so
# the whole config shares a single nixpkgs. Setting `source` explicitly to
# that same nixpkgs acknowledges the override and silences nixvim's warning
# about its pinned nixpkgs being bypassed.
nixpkgs.source = inputs.nixpkgs;
# set aliases
viAlias = true; viAlias = true;
vimAlias = true; vimAlias = true;
# default vim options
opts = { opts = {
number = true; number = true;
relativenumber = true; relativenumber = true;
@@ -24,28 +14,17 @@
incsearch = true; incsearch = true;
}; };
# nvim mapleader for all command below # nvim mapleader
globals.mapleader = " "; globals.mapleader = " ";
# set colorscheme to nord # colorscheme
colorschemes.nord.enable = true; colorschemes.nord.enable = true;
# nvim plugins # nvim plugins
plugins.indent-blankline.enable = true; plugins.indent-blankline.enable = true;
plugins.lualine.enable = true; plugins.lualine.enable = true;
plugins.nix.enable = true;
plugins.nvim-tree.enable = true;
plugins.web-devicons.enable = true;
plugins.telescope = {
enable = true;
keymaps = {
"<leader>ff" = "find_files";
"<leader>fg" = "live_grep";
"<leader>fb" = "buffers";
"<leader>fh" = "help_tags";
};
};
plugins.lsp = { plugins.lsp = {
enable = true; enable = true;
# lsp for typst
servers.tinymist = { servers.tinymist = {
enable = true; enable = true;
settings = { settings = {
@@ -54,20 +33,22 @@
semanticTokens = "disable"; # treesitter handles highlighting better semanticTokens = "disable"; # treesitter handles highlighting better
}; };
}; };
servers.pyright.enable = true; # minimal lsp keymaps
servers.ruff.enable = true;
keymaps.lspBuf = { keymaps.lspBuf = {
"<leader>K" = "hover"; "K" = "hover";
"<leader>gd" = "definition"; "gd" = "definition";
"<leader>gr" = "references"; "gr" = "references";
"<leader>f" = "format"; "<leader>f" = "format";
"<leader>rn" = "rename"; "<leader>rn" = "rename";
"<leader>ca" = "code_action"; "<leader>ca" = "code_action";
}; };
}; };
plugins.nix.enable = true;
plugins.nvim-tree.enable = true;
plugins.telescope.enable = true;
plugins.treesitter = { plugins.treesitter = {
enable = true; enable = true;
settings.ensure_installed = [ "markdown" "markdown_inline" "typst" ]; settings.ensure_installed = [ "typst" ];
}; };
plugins.typst-preview = { plugins.typst-preview = {
enable = true; enable = true;
@@ -83,21 +64,8 @@
enable = true; enable = true;
settings.pdf_viewer = "zathura"; settings.pdf_viewer = "zathura";
}; };
plugins.render-markdown = { plugins.web-devicons.enable = true;
enable = true;
settings = {
# render in normal mode, raw source in insert
render_modes = [ "n" "c" "t"];
pipe_table.preset = "round";
heading.width = "block";
file_types = [ "markdown" ];
completions.lsp.enabled = true;
};
};
};
# install dependencies extraPlugins = [ pkgs.vimPlugins.plenary-nvim ];
home.packages = with pkgs; [ };
ripgrep
];
} }
-123
View File
@@ -1,123 +0,0 @@
{ config, pkgs, inputs, ... }:
{
# Noctalia v5 shell, managed via its upstream home-manager module.
# See https://docs.noctalia.dev/v5/getting-started/nixos/
imports = [ inputs.noctalia.homeModules.default ];
programs.noctalia = {
enable = true;
# The module's `package` option has no default, so it must be set explicitly.
package = inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default;
# settings is rendered to ~/.config/noctalia/config.toml
settings = {
# theme / colors
theme = {
source = "builtin";
builtin = "Nord";
mode = "dark";
templates.builtin_ids = [ "ghostty" ];
};
# general
shell = {
font_family = "0xProto Nerd Font Mono";
ui_scale = 1.2;
avatar_path = "/home/aaron/syncthing/pictures/Logo-Aaron-Totenkopf-rund-schwarz.png";
telemetry_enabled = false;
clipboard_enabled = true;
password_style = "random";
panel = {
launcher_compact = true;
open_near_click_control_center = true;
open_near_click_session = true;
open_near_click_wallpaper = true;
transparency_mode = "glass";
};
screen_corners = {
enabled = true;
size = 10;
};
};
# location / weather
location.address = "Bern";
weather = {
enabled = true;
unit = "metric";
};
# wallpaper
wallpaper = {
enabled = true;
directory = "/home/aaron/Pictures/Wallpapers";
fill_mode = "crop";
default.path = "/home/aaron/Pictures/Wallpapers/nord-theme-tower.png";
};
# bar layout
bar = {
order = [ "default" ];
default = {
position = "top";
background_opacity = 0.93;
font_weight = 400;
margin_edge = 0;
margin_ends = 0;
radius = 0;
scale = 1.2;
widget_spacing = 20;
start = [ "control-center" "cpu" "ram" "temp" "active_window" ];
center = [ "workspaces" ];
end = [ "tray" "bluetooth" "notifications" "volume" "network" "clock" ];
};
};
# per-widget styling
widget = {
bluetooth.capsule = true;
control-center = {
capsule_radius = 8;
custom_image = "/home/aaron/Pictures/nix_flake_logo.png";
scale = 1.4;
};
cpu.capsule = true;
network = {
capsule = true;
show_label = false;
};
notifications.capsule = true;
ram.capsule = true;
temp.capsule = true;
volume = {
capsule = true;
show_label = false;
};
};
# idle behavior
idle = {
behavior_order = [ "screen-off" "lock" "lock-and-suspend" ];
behavior = {
"screen-off" = {
enabled = true;
timeout = 600;
};
"lock" = {
enabled = true;
timeout = 660;
};
"lock-and-suspend" = {
enabled = true;
timeout = 1800;
};
};
};
};
};
}
+1 -4
View File
@@ -18,8 +18,5 @@
# browsers # browsers
programs.chromium.enable = true; programs.chromium.enable = true;
programs.firefox = { programs.firefox.enable = true;
enable = true;
configPath = "${config.xdg.configHome}/mozilla/firefox";
};
} }
+4 -7
View File
@@ -8,14 +8,12 @@
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
# add git and agents as plugins # theme will be set below
theme = "";
plugins = [ "git" "ssh-agent" "gpg-agent" ]; plugins = [ "git" "ssh-agent" "gpg-agent" ];
# everything here lands before `source $ZSH/oh-my-zsh.sh` };
extraConfig = ''
# make omz faster on large repositories
DISABLE_UNTRACKED_FILES_DIRTY=true
# only display a fancy theme when glyphs are rendered # only display a fancy theme when glyphs are rendered
initContent = lib.mkOrder 550 ''
if [[ "$TERM" == "linux" || "$TERM" == "screen" ]]; then if [[ "$TERM" == "linux" || "$TERM" == "screen" ]]; then
ZSH_THEME="gentoo" ZSH_THEME="gentoo"
else else
@@ -23,7 +21,6 @@
fi fi
''; '';
}; };
};
# set important env vars # set important env vars
home.sessionVariables = { home.sessionVariables = {
-78
View File
@@ -1,78 +0,0 @@
{ config, lib, pkgs, ... }:
let
# Siril's Python plugins (sirilpy) run in a venv that pip-installs foreign
# manylinux wheels (numpy, GraXpert deps, ...). Those .so files need
# libstdc++ at runtime. nix-ld does NOT cover this: it only handles the
# initial exec of a foreign binary, but here a *native* nixpkgs python
# dlopen()s the foreign wheel. So we put the libs on LD_LIBRARY_PATH, which
# the python subprocess inherits from the Siril process.
sirilWithPlugins = pkgs.symlinkJoin {
name = "siril-with-plugins";
paths = [ pkgs.siril ];
nativeBuildInputs = [ pkgs.makeWrapper ];
# Siril bootstraps its sirilpy venv at first run by locating a `python3`
# on PATH. nixpkgs only *propagates* python3 from the siril derivation (it
# isn't on the runtime PATH), so without the --prefix PATH below the GUI
# fails with "Python not found in system PATH" and never creates
# ~/.local/share/siril/venv. We add the same interpreter siril references.
#
# The VeraLux PyQt6 wheel ships only the built-in Windows/Fusion styles, so
# the global QT_STYLE_OVERRIDE=adwaita-dark (inherited from the session) is
# rejected ("invalid style override") and windows fall back to a light
# theme. We expose nixpkgs adwaita-qt6's style plugin on QT_PLUGIN_PATH so
# the override resolves. This works because nixpkgs qt6 and the bundled Qt
# share a major.minor (6.11); if they ever drift the plugin is simply
# ignored again (harmless warning + Fusion fallback, no loss of function).
postBuild = ''
wrapProgram $out/bin/siril \
--prefix PATH : ${lib.makeBinPath [ pkgs.python3 ]} \
--prefix QT_PLUGIN_PATH : ${pkgs.adwaita-qt6}/lib/qt-6/plugins \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath (with pkgs; [
stdenv.cc.cc.lib # libstdc++ / libgcc_s / libgomp (numpy etc.)
zlib
zstd # libzstd.so.1 (PyQt6)
libGL # libGL.so.1 (PyQt6)
# PyQt6 (VeraLux) — Qt bundles xcb support so it needs these even
# on Wayland; libxkbcommon is the keymap lib used by Wayland too.
glib
fontconfig
freetype
dbus
libxkbcommon
# Qt platform plugins: the wayland plugin (libqwayland.so) needs the
# wayland client libs; the xcb fallback needs libxcb-cursor.so.0.
wayland # libwayland-client/cursor/egl (wayland plugin)
libxcb-cursor # libxcb-cursor.so.0 (xcb plugin)
libx11
libxcb
libxcb-util
libxcb-wm
libxcb-image
libxcb-keysyms
libxcb-render-util
])}
'';
};
in
{
# install stellarium for target finding and siril for stacking
environment.systemPackages = with pkgs; [
stellarium
sirilWithPlugins
];
# StarNet++ has no nixpkgs package. Download the StarNet v2 ORT CLI build
# (starnet2_linux_*_ORT_x64_cli) from https://www.starnetastro.com/download/
# and unzip it to ~/.local/share/siril/starnet/. Then in Siril set
# Preferences -> Miscellaneous -> StarNet executable
# to the extracted ./starnet2 binary.
#
# The binary is a generic dynamically-linked ELF, so NixOS needs nix-ld to
# run it. Its own opencv/onnxruntime libs are found via the bundled ./lib.
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
stdenv.cc.cc.lib # libstdc++ / libgcc_s
zlib
];
}
+1 -1
View File
@@ -17,7 +17,7 @@
}; };
# kernel options # kernel options
boot.kernelParams = [ "quiet" "acpi.debug_level=0" ]; boot.kernelParams = [ "quiet" "acpi.debug_level=0"];
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.consoleLogLevel = 2; boot.consoleLogLevel = 2;
-7
View File
@@ -1,7 +0,0 @@
{ config, lib, pkgs, ... }:
{
environment.systemPackages = with pkgs; [
claude-code
];
}
-1
View File
@@ -7,7 +7,6 @@
adwaita-qt adwaita-qt
adwaita-qt6 adwaita-qt6
brightnessctl brightnessctl
ddcutil
playerctl playerctl
]; ];
} }
+1 -3
View File
@@ -4,7 +4,6 @@
# system packages # system packages
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
btop btop
cifs-utils
cowsay cowsay
dnsutils dnsutils
ethtool ethtool
@@ -21,7 +20,6 @@
ltrace ltrace
mtr mtr
neovim neovim
nfs-utils
nh nh
nix-output-monitor nix-output-monitor
nmap nmap
@@ -36,9 +34,9 @@
unzip unzip
usbutils usbutils
vim vim
wl-clipboard
wget wget
which which
wl-clipboard
xz xz
zip zip
zstd zstd
-3
View File
@@ -32,9 +32,6 @@
}; };
}; };
# add trusted users (able to modify the nix store)
nix.settings.trusted-users = [ "root" "@wheel" ];
# allow unfree packages (steam, protonvpn, discord, etc.) # allow unfree packages (steam, protonvpn, discord, etc.)
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
-14
View File
@@ -1,14 +0,0 @@
{ config, lib, pkgs, ... }:
{
# Enable Thunar
programs.thunar.enable = true;
# Install Tumbler thumbnailer service
environment.systemPackages = with pkgs; [
tumbler
];
# Ensure Thunar can locate the thumbnailer extensions
environment.pathsToLink = [ "share/thumbnailers" ];
}
-1
View File
@@ -6,7 +6,6 @@
../../modules/home-manager/git.nix ../../modules/home-manager/git.nix
../../modules/home-manager/ghostty.nix ../../modules/home-manager/ghostty.nix
../../modules/home-manager/nixvim.nix ../../modules/home-manager/nixvim.nix
../../modules/home-manager/noctalia.nix
../../modules/home-manager/programs.nix ../../modules/home-manager/programs.nix
../../modules/home-manager/shell.nix ../../modules/home-manager/shell.nix
../../modules/home-manager/styling.nix ../../modules/home-manager/styling.nix