22 Commits

Author SHA1 Message Date
julian 948ac61d8b Fix deprecation warnings 2026-06-01 23:35:03 +02:00
julian c0d6d4483d Migrate more config to stylix 2026-06-01 23:14:06 +02:00
julian f6c123e3bf Use stylix instead of unmaintained nix-colors 2026-06-01 23:06:54 +02:00
julian 5ecb1594d1 Upgrade to nixos 26.04 2026-06-01 22:27:35 +02:00
julian 8ce210ad1f Install more fonts by default 2026-05-17 15:51:34 +02:00
julian 2526cc4d63 Update flake 2026-05-17 14:49:05 +02:00
julian 59ecf03ecf Add mise integration to direnv 2026-05-17 14:48:57 +02:00
julian 7f6910098d Add mise to development suite 2026-05-17 11:27:28 +02:00
julian 1015048fc5 Remove discord from open-messaging 2026-05-17 11:27:01 +02:00
julian 831f49e8bd Update flake 2026-04-24 11:53:22 +02:00
julian 8acb99770c Add devenv to v3ms 2026-04-24 11:52:20 +02:00
julian 7488da102e Add tmux to v3ms 2026-04-24 11:52:20 +02:00
julian be5e9cce07 Fix screenshots on hyprland
Update Nix Flake / update-flake (push) Failing after 12s
2026-04-13 08:25:30 +02:00
julian 0eddfbef58 Install .desktop file for smath-studio
Update Nix Flake / update-flake (push) Failing after 19s
2026-03-26 09:02:32 +01:00
julian bdb85b6161 Add smath-studio packet 2026-03-26 08:50:33 +01:00
julian 64392b695e Fix recursion on self
Update Nix Flake / update-flake (push) Failing after 22s
2026-03-23 21:57:18 +01:00
julian 8896788bfd Delete unneeded standalone hm configs 2026-03-23 20:58:19 +01:00
julian eec600d1d0 Move common host features to features-nixos folder 2026-03-23 20:57:12 +01:00
julian b31791b9ef Rename pkgs to packages 2026-03-23 20:43:11 +01:00
julian 8de280d7e5 Remove my own trys for pob wrapper 2026-03-23 20:39:47 +01:00
julian 8c8a6121bc Remove unused users 2026-03-23 20:38:38 +01:00
julian f1296e7675 Remove unused pianonix config 2026-03-23 20:37:54 +01:00
134 changed files with 1727 additions and 2571 deletions
+1 -9
View File
@@ -1,17 +1,15 @@
keys: keys:
- &primary age1ee5udznhadk6m7jtglu4709rep080yjyd2ukzdl8jma4mm92y3psv0slpg - &primary age1ee5udznhadk6m7jtglu4709rep080yjyd2ukzdl8jma4mm92y3psv0slpg
- &aspi-ssh age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4 - &aspi-ssh age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
- &pianonix-ssh age1tguyu2yd5xv8rgjjl50cq6dq5rr7umqgv098dgre4u9wyj30ea7sexw62c
- &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja - &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja
- &kardorf-ssh age15lxw97z03q40xrdscnxqqugh5ky5aqrerg2t2rphkcqm6rnllurq8v98q5 - &kardorf-ssh age15lxw97z03q40xrdscnxqqugh5ky5aqrerg2t2rphkcqm6rnllurq8v98q5
creation_rules: creation_rules:
- path_regex: hosts/common/secrets.yaml$ - path_regex: hosts/secrets-common.yaml$
key_groups: key_groups:
- age: - age:
- *primary - *primary
- *aspi-ssh - *aspi-ssh
- *pianonix-ssh
- *kardorf-ssh - *kardorf-ssh
- path_regex: hosts/builder/secrets.yaml$ - path_regex: hosts/builder/secrets.yaml$
@@ -19,9 +17,3 @@ creation_rules:
- age: - age:
- *primary - *primary
- *builder-ssh - *builder-ssh
- path_regex: hosts/pianonix/secrets*
key_groups:
- age:
- *primary
- *pianonix-ssh
-33
View File
@@ -1,33 +0,0 @@
{
config,
pkgs,
inputs,
...
}: let
inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme;
in {
# Do not make conditional, just toggle things on and off
imports = [inputs.nix-colors.homeManagerModules.default]; # TODO: what does this do
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
gtk = {
enable = true;
theme = {
name = inputs.nix-colors.colorschemes.${config.colorscheme.name}.slug;
package = gtkThemeFromScheme {
scheme = inputs.nix-colors.colorschemes.${config.colorscheme.name};
};
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
cursorTheme = {
package = pkgs.apple-cursor;
name = "macOS";
size = 24;
};
};
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
}
@@ -1,46 +0,0 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}: let
inherit
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
palette
;
in {
programs.hyprlock.enable = true;
programs.hyprlock.settings = {
general = {
disable_loading_bar = true;
hide_cursor = true;
ignore_empty_input = true;
};
background = [
{
color = "#${palette.base00}";
# path = "screenshot";
# blur_passes = 3;
# blur_size = 8;
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "#${palette.base0B}";
inner_color = "#${palette.base01}";
outer_color = "#${palette.base05}";
outline_thickness = 5;
placeholder_text = "Password...";
}
];
};
}
@@ -1,30 +0,0 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}: let
inherit
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
palette
;
in {
home.packages = with pkgs; [libnotify];
services.mako = {
enable = true;
settings = {
defaultTimeout = "5000"; # milliseconds, can be overwritten by notification sender
backgroundColor = "#${palette.base00}";
textColor = "#${palette.base05}";
borderColor = "#${palette.base0D}";
progressColor = "over #${palette.base02}";
extraConfig = ''
[urgency=high]
border-color=#${palette.base09}
# '';
};
};
}
@@ -1,36 +0,0 @@
{
options,
config,
pkgs,
lib,
inputs,
...
}: let
palette = (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name}).palette;
in {
programs.waybar = {
enable = true;
# systemd.enable = true;
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
};
xdg.configFile."waybar/style.css".source = ./style.css;
xdg.configFile."waybar/theme.css".text = ''
/*
bg - background
fg - foreground
*/
/* Main Colors */
@define-color background #${palette.base00};
@define-color foreground #${palette.base05};
/* Workspace Button Colors */
@define-color hover-bg #${palette.base01};
@define-color hover-fg #${palette.base05};
@define-color active-bg #${palette.base02};
@define-color active-fg #${palette.base0A};
@define-color urgent-bg #${palette.base08};
@define-color urgent-fg #${palette.base00};
'';
}
@@ -1,39 +0,0 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}: let
inherit
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
palette
;
in {
home.packages = with pkgs; [wlogout];
# xdg.configFile."wlogout/style.css".text = ''
# * {
# all: unset;
# font-family: JetBrains Mono Nerd Font;
# }
# window {
# background-color: #${palette.base00};
# }
# button {
# color: #${palette.base01};
# font-size: 64px;
# background-color: rgba(0,0,0,0);
# outline-style: none;
# margin: 5px;
# }
# button:focus, button:active, button:hover {
# color: #${palette.base0D};
# transition: ease 0.4s;
# }
# '';
}
@@ -1,86 +0,0 @@
{
options,
config,
lib,
pkgs,
inputs,
...
}: let
inherit
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
palette
;
in {
home.packages = with pkgs; [wofi];
xdg.configFile."wofi/config".source = ./config;
xdg.configFile."wofi/style.css".text = ''
window {
margin: 5px;
border: 5px solid #181926;
background-color: #${palette.base00};
border-radius: 15px;
font-family: "JetBrainsMono";
font-size: 14px;
}
#input {
all: unset;
min-height: 36px;
padding: 4px 10px;
margin: 4px;
border: none;
color: #${palette.base05};
font-weight: bold;
background-color: #${palette.base01};
outline: none;
border-radius: 15px;
margin: 10px;
margin-bottom: 2px;
}
#inner-box {
margin: 4px;
padding: 10px;
font-weight: bold;
border-radius: 15px;
}
#outer-box {
margin: 0px;
padding: 3px;
border: none;
border-radius: 15px;
border: 5px solid #${palette.base01};
}
#scroll {
margin-top: 5px;
border: none;
border-radius: 15px;
margin-bottom: 5px;
}
#text:selected {
color: #${palette.base01};
margin: 0px 0px;
border: none;
border-radius: 15px;
}
#entry {
margin: 0px 0px;
border: none;
border-radius: 15px;
background-color: transparent;
}
#entry:selected {
margin: 0px 0px;
border: none;
border-radius: 15px;
background: #${palette.base0D};
background-size: 400% 400%;
}
'';
}
-18
View File
@@ -1,18 +0,0 @@
{
flake.nixosModules.base = {
inputs,
config,
...
}: {
system.hydraAutoUpgrade = {
# Only enable if not dirty
enable = inputs.self ? rev;
dates = "*:0/10"; # Every 10 minutes
instance = "http://hydra.julian-mutter.de";
project = "dotfiles";
jobset = "main";
job = "hosts.${config.networking.hostName}";
oldFlakeRef = "self";
};
};
}
-40
View File
@@ -1,40 +0,0 @@
# Common config for all hosts
{
flake.nixosModules.base = {
inputs,
outputs,
pkgs,
lib,
...
}: {
imports = [
inputs.home-manager.nixosModules.home-manager
];
# Replaces the (modulesPath + "/installer/scan/not-detected.nix") from default hardware-configuration.nix
# Enables non-free firmware
hardware.enableRedistributableFirmware = true;
# Networking
networking.networkmanager = {
enable = true;
plugins = with pkgs; [
networkmanager-openconnect
];
};
services.resolved.enable = false;
# MDNS Taken by avahi
# networking.networkmanager.dns = "none";
networking.nameservers = lib.mkDefault [
"1.1.1.1"
"8.8.8.8"
];
# HM module
home-manager.useGlobalPkgs = true; # hm module uses the pkgs of the nixos config
home-manager.backupFileExtension = "hm-backup"; # backup conflicting files. So hm activation never fails
home-manager.extraSpecialArgs = {
inherit inputs outputs;
};
};
}
-12
View File
@@ -1,12 +0,0 @@
{
flake.nixosModules.base = {
programs.fish = {
enable = true;
vendor = {
completions.enable = true;
config.enable = true;
functions.enable = true;
};
};
};
}
-28
View File
@@ -1,28 +0,0 @@
{
flake.nixosModules.base = {
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
# Keymap
services.xserver.xkb = {
layout = "de";
variant = "";
};
console.keyMap = "de";
time.timeZone = "Europe/Berlin";
};
}
-48
View File
@@ -1,48 +0,0 @@
{
flake.nixosModules.base = {outputs, ...}: {
# Apply overlays
nixpkgs = {
# TODO: apply this to hm and nixos without duplicate code
overlays = builtins.attrValues outputs.overlays;
config = {
nvidia.acceptLicense = true;
allowUnfree = true;
allowUnfreePredicate = _: true; # TODO: what is this
warn-dirty = false;
permittedInsecurePackages = [
"olm-3.2.16"
];
};
};
# optimize at every build, slows down builds
# better to do optimise.automatic for regular optimising
# nix.settings.auto-optimise-store = lib.mkDefault true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
# warn-dirty = false;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
persistent = true;
};
nix.optimise = {
automatic = true;
dates = ["weekly"]; # Optional; allows customizing optimisation schedule
persistent = true;
};
programs.nix-ld.enable = true;
# TODO: is this useful?, what does it do?
# nix.settings.flake-registry = ""; # Disable global flake registry
# Add each flake input as a registry and nix_path
# registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
# nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
};
}
-11
View File
@@ -1,11 +0,0 @@
{
flake.nixosModules.base = {pkgs, ...}: {
# Packages needed as root
environment.systemPackages = with pkgs; [
vim
htop
mc
gparted-xhost # needs to be installed as system package so it can be actually opened
];
};
}
-24
View File
@@ -1,24 +0,0 @@
{
flake.nixosModules.base = {
inputs,
config,
...
}: let
isEd25519 = k: k.type == "ed25519";
getKeyPath = k: k.path;
keys = builtins.filter isEd25519 config.services.openssh.hostKeys;
in {
imports = [inputs.sops-nix.nixosModules.sops];
sops.age = {
sshKeyPaths = map getKeyPath keys;
# TODO: remove? only rely on ssh or pgp keys (e.g. ubikey like misterio is using!!!)
# keyFile = "/home/julian/.config/sops/age/keys.txt";
# Generate key if none of the above worked. With this, building will still work, just without secrets
generateKey = false; # TODO: building should not work without secrets!?
};
sops.defaultSopsFile = ./secrets.yaml;
};
}
+16
View File
@@ -0,0 +1,16 @@
{
inputs,
config,
...
}: {
system.hydraAutoUpgrade = {
# Only enable if not dirty
enable = inputs.self ? rev;
dates = "*:0/10"; # Every 10 minutes
instance = "http://hydra.julian-mutter.de";
project = "dotfiles";
jobset = "main";
job = "hosts.${config.networking.hostName}";
oldFlakeRef = "self";
};
}
+47
View File
@@ -0,0 +1,47 @@
# Common config for all hosts
{
inputs,
outputs,
pkgs,
lib,
...
}: {
imports =
[
./fish.nix # fish for admin
./locale.nix
./nix.nix
./sops.nix
./root.nix
]
++ [
inputs.home-manager.nixosModules.home-manager
]
++ (builtins.attrValues outputs.nixosModules);
# Replaces the (modulesPath + "/installer/scan/not-detected.nix") from default hardware-configuration.nix
# Enables non-free firmware
hardware.enableRedistributableFirmware = true;
# Networking
networking.networkmanager = {
enable = true;
plugins = with pkgs; [
networkmanager-openconnect
];
};
services.resolved.enable = false;
# MDNS Taken by avahi
# networking.networkmanager.dns = "none";
networking.nameservers = lib.mkDefault [
"1.1.1.1"
"8.8.8.8"
];
# HM module
home-manager.useGlobalPkgs = true; # hm module uses the pkgs of the nixos config
home-manager.backupFileExtension = "hm-backup"; # backup conflicting files. So hm activation never fails
home-manager.extraSpecialArgs = {
inherit inputs outputs;
};
}
+10
View File
@@ -0,0 +1,10 @@
{
programs.fish = {
enable = true;
vendor = {
completions.enable = true;
config.enable = true;
functions.enable = true;
};
};
}
+26
View File
@@ -0,0 +1,26 @@
{
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
# Keymap
services.xserver.xkb = {
layout = "de";
variant = "";
};
console.keyMap = "de";
time.timeZone = "Europe/Berlin";
}
+46
View File
@@ -0,0 +1,46 @@
{outputs, ...}: {
# Apply overlays
nixpkgs = {
# TODO: apply this to hm and nixos without duplicate code
overlays = builtins.attrValues outputs.overlays;
config = {
nvidia.acceptLicense = true;
allowUnfree = true;
allowUnfreePredicate = _: true; # TODO: what is this
warn-dirty = false;
permittedInsecurePackages = [
"olm-3.2.16"
];
};
};
# optimize at every build, slows down builds
# better to do optimise.automatic for regular optimising
# nix.settings.auto-optimise-store = lib.mkDefault true;
nix.settings.experimental-features = [
"nix-command"
"flakes"
"ca-derivations"
];
# warn-dirty = false;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
persistent = true;
};
nix.optimise = {
automatic = true;
dates = ["weekly"]; # Optional; allows customizing optimisation schedule
persistent = true;
};
programs.nix-ld.enable = true;
# TODO: is this useful?, what does it do?
# nix.settings.flake-registry = ""; # Disable global flake registry
# Add each flake input as a registry and nix_path
# registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
# nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
}
+9
View File
@@ -0,0 +1,9 @@
{pkgs, ...}: {
# Packages needed as root
environment.systemPackages = with pkgs; [
vim
htop
mc
gparted-xhost # needs to be installed as system package so it can be actually opened
];
}
+23
View File
@@ -0,0 +1,23 @@
{
pwd,
inputs,
config,
...
}: let
isEd25519 = k: k.type == "ed25519";
getKeyPath = k: k.path;
keys = builtins.filter isEd25519 config.services.openssh.hostKeys;
in {
imports = [inputs.sops-nix.nixosModules.sops];
sops.age = {
sshKeyPaths = map getKeyPath keys;
# TODO: remove? only rely on ssh or pgp keys (e.g. ubikey like misterio is using!!!)
# keyFile = "/home/julian/.config/sops/age/keys.txt";
# Generate key if none of the above worked. With this, building will still work, just without secrets
generateKey = false; # TODO: building should not work without secrets!?
};
sops.defaultSopsFile = "${pwd}/hosts/secrets-common.yaml";
}
+22 -24
View File
@@ -1,30 +1,28 @@
{ {
flake.nixosModules.authentication = { pkgs,
pkgs, lib,
lib, ...
... }: {
}: { # Make programs like nextcloud client access saved passwords
# Make programs like nextcloud client access saved passwords services.gnome.gnome-keyring.enable = true;
services.gnome.gnome-keyring.enable = true;
programs.seahorse.enable = true; programs.seahorse.enable = true;
programs.ssh.askPassword = lib.mkForce "${pkgs.seahorse}/libexec/seahorse/ssh-askpass"; # Solve conflicting definition in seahorse and plasma6 programs.ssh.askPassword = lib.mkForce "${pkgs.seahorse}/libexec/seahorse/ssh-askpass"; # Solve conflicting definition in seahorse and plasma6
# Make authentication work for e.g. gparted # Make authentication work for e.g. gparted
security.polkit.enable = true; security.polkit.enable = true;
systemd = { systemd = {
user.services.polkit-gnome-authentication-agent-1 = { user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1"; description = "polkit-gnome-authentication-agent-1";
wantedBy = ["graphical-session.target"]; wantedBy = ["graphical-session.target"];
wants = ["graphical-session.target"]; wants = ["graphical-session.target"];
after = ["graphical-session.target"]; after = ["graphical-session.target"];
serviceConfig = { serviceConfig = {
Type = "simple"; Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure"; Restart = "on-failure";
RestartSec = 1; RestartSec = 1;
TimeoutStopSec = 10; TimeoutStopSec = 10;
};
}; };
}; };
}; };
+9 -11
View File
@@ -1,14 +1,12 @@
{ {
flake.nixosModules.avahi = { # MDNS on local network
# MDNS on local network services.avahi = {
services.avahi = { enable = true;
enable = true; nssmdns4 = true;
nssmdns4 = true; nssmdns6 = true;
nssmdns6 = true; publish.enable = true;
publish.enable = true; publish.addresses = true;
publish.addresses = true; ipv4 = true;
ipv4 = true; ipv6 = true;
ipv6 = true;
};
}; };
} }
+26 -28
View File
@@ -1,33 +1,31 @@
{ {
flake.nixosModules.binarycaches = { lib,
lib, outputs,
outputs, ...
... }: {
}: { # Setup binary caches
# Setup binary caches nix.settings = {
nix.settings = { substituters = [
substituters = [ "https://nix-community.cachix.org"
"https://nix-community.cachix.org" "https://cache.nixos.org/"
"https://cache.nixos.org/" "https://hyprland.cachix.org"
"https://hyprland.cachix.org" "http://binarycache.julian-mutter.de"
"http://binarycache.julian-mutter.de" "https://devenv.cachix.org"
"https://devenv.cachix.org" ];
]; trusted-public-keys = [
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" ];
];
trusted-users = [ trusted-users = [
"root" "root"
"@wheel" "@wheel"
]; # needed for devenv to add custom caches ]; # needed for devenv to add custom caches
# Ensure we can still build when missing-server is not accessible # Ensure we can still build when missing-server is not accessible
fallback = true; fallback = true;
};
}; };
} }
+13 -15
View File
@@ -1,19 +1,17 @@
{ {
flake.nixosModules.boot-efi = { # Bootloader
# Bootloader # Use this for simple nix boot menu, if no dual boot required
# Use this for simple nix boot menu, if no dual boot required boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.systemd-boot.configurationLimit = 10; boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.canTouchEfiVariables = true;
# https://github.com/NixOS/nixpkgs/blob/c32c39d6f3b1fe6514598fa40ad2cf9ce22c3fb7/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix#L66 # https://github.com/NixOS/nixpkgs/blob/c32c39d6f3b1fe6514598fa40ad2cf9ce22c3fb7/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix#L66
boot.loader.systemd-boot.editor = false; boot.loader.systemd-boot.editor = false;
boot.supportedFilesystems = [ boot.supportedFilesystems = [
"btrfs" "btrfs"
"ntfs" "ntfs"
"nfs" "nfs"
"cifs" "cifs"
]; ];
};
} }
+2 -4
View File
@@ -1,7 +1,5 @@
{ {
flake.nixosModules.docker = { virtualisation.docker = {
virtualisation.docker = { enable = true;
enable = true;
};
}; };
} }
+5 -7
View File
@@ -1,8 +1,6 @@
{ {pkgs, ...}: {
flake.nixosModules.flatpak = {pkgs, ...}: { services.flatpak.enable = true;
services.flatpak.enable = true; xdg.portal.enable = true;
xdg.portal.enable = true; xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk]; xdg.portal.config.common.default = "*"; # Use first portal implementation found
xdg.portal.config.common.default = "*"; # Use first portal implementation found
};
} }
+17 -19
View File
@@ -1,22 +1,20 @@
{ {pkgs, ...}: {
flake.nixosModules.gamemode = {pkgs, ...}: { programs.gamemode = {
programs.gamemode = { enable = true;
enable = true; settings = {
settings = { general = {
general = { softrealtime = "auto";
softrealtime = "auto"; inhibit_screensaver = 1;
inhibit_screensaver = 1; renice = 5;
renice = 5; };
}; # gpu = {
# gpu = { # apply_gpu_optimisations = "accept-responsibility";
# apply_gpu_optimisations = "accept-responsibility"; # gpu_device = 1;
# gpu_device = 1; # amd_performance_level = "high";
# amd_performance_level = "high"; # };
# }; custom = {
custom = { start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
};
}; };
}; };
}; };
+10 -12
View File
@@ -1,15 +1,13 @@
{ {
flake.nixosModules.gdm = { config,
config, lib,
lib, pkgs,
pkgs, ...
... }: {
}: { services.xserver.displayManager.gdm = {
services.xserver.displayManager.gdm = { enable = true;
enable = true;
};
# unlock GPG keyring on login
security.pam.services.gdm.enableGnomeKeyring = true;
}; };
# unlock GPG keyring on login
security.pam.services.gdm.enableGnomeKeyring = true;
} }
+29 -34
View File
@@ -1,39 +1,34 @@
{ {
flake.nixosModules.greetd = {config, ...}: let users.extraUsers.greeter = {
homeCfgs = config.home-manager.users; # For caching
julianCfg = homeCfgs.julian; home = "/tmp/greeter-home";
in { createHome = true;
users.extraUsers.greeter = { };
# For caching
home = "/tmp/greeter-home";
createHome = true;
};
programs.regreet = { programs.regreet = {
enable = true; enable = true;
iconTheme = julianCfg.gtk.iconTheme; # iconTheme = julianCfg.gtk.iconTheme;
theme = julianCfg.gtk.theme; # theme = julianCfg.gtk.theme;
# font = julianCfg.fontProfiles.regular; # TODO: do # # font = julianCfg.fontProfiles.regular; # TODO: do
cursorTheme = { # cursorTheme = {
inherit (julianCfg.gtk.cursorTheme) name package; # inherit (julianCfg.gtk.cursorTheme) name package;
}; # };
cageArgs = [ cageArgs = [
"-s" "-s"
"-m" "-m"
"last" "last"
]; # multimonitor use last monitor ]; # multimonitor use last monitor
# settings.background = { # settings.background = {
# path = julianCfg.wallpaper; # path = julianCfg.wallpaper;
# fit = "Cover"; # fit = "Cover";
# }; # TODO: fix # }; # TODO: fix
# TODO: setting keyboard language does not work # TODO: setting keyboard language does not work
# settings = { # settings = {
# env = { # env = {
# XKB_DEFAULT_LAYOUT = "de"; # XKB_DEFAULT_LAYOUT = "de";
# # XKB_DEFAULT_VARIANT = "altgr-intl"; # # XKB_DEFAULT_VARIANT = "altgr-intl";
# }; # };
# }; # };
};
}; };
} }
+12 -14
View File
@@ -1,18 +1,16 @@
{ {
flake.nixosModules.i3 = { config,
config, lib,
lib, pkgs,
pkgs, ...
... }: {
}: { services.xserver.windowManager.i3.enable = true;
services.xserver.windowManager.i3.enable = true; services.xserver.windowManager.i3.package = pkgs.i3-gaps;
services.xserver.windowManager.i3.package = pkgs.i3-gaps; services.displayManager.defaultSession = "none+i3";
services.displayManager.defaultSession = "none+i3";
programs.xss-lock = { programs.xss-lock = {
# responds to "loginctl lock-session" via dbus # responds to "loginctl lock-session" via dbus
enable = true; enable = true;
lockerCommand = "${pkgs.i3lock}/bin/i3lock --ignore-empty-password --color=000000"; lockerCommand = "${pkgs.i3lock}/bin/i3lock --ignore-empty-password --color=000000";
};
}; };
} }
+18 -20
View File
@@ -1,24 +1,22 @@
{ {
flake.nixosModules.kerberos = { security.krb5.enable = true;
security.krb5.enable = true; security.krb5.settings = {
security.krb5.settings = { # domain_realm = {
# domain_realm = { # ".julian-mutter.de" = "julian-mutter.de";
# ".julian-mutter.de" = "julian-mutter.de"; # "julian-mutter.de" = "julian-mutter.de";
# "julian-mutter.de" = "julian-mutter.de"; # };
# }; libdefaults = {
libdefaults = { default_realm = "julian-mutter.de";
default_realm = "julian-mutter.de"; # dns_lookup_realm = true;
# dns_lookup_realm = true; # dns_lookup_kdc = true;
# dns_lookup_kdc = true; # ticket_lifetime = "24h";
# ticket_lifetime = "24h"; # renew_lifetime = "7d";
# renew_lifetime = "7d"; };
}; realms = {
realms = { "julian-mutter.de" = {
"julian-mutter.de" = { kdc = ["kerberos.julian-mutter.de"];
kdc = ["kerberos.julian-mutter.de"]; admin_server = "kerberos-admin.julian-mutter.de";
admin_server = "kerberos-admin.julian-mutter.de"; default_domain = "julian-mutter.de";
default_domain = "julian-mutter.de";
};
}; };
}; };
}; };
+43 -45
View File
@@ -1,51 +1,49 @@
{ {
flake.nixosModules.openssh = { outputs,
outputs, lib,
lib, config,
config, ...
... }: let
}: let hosts = lib.attrNames outputs.nixosConfigurations;
hosts = lib.attrNames outputs.nixosConfigurations; in {
in { services.openssh = {
services.openssh = { enable = true;
enable = true; settings = {
settings = { # Harden
# Harden PasswordAuthentication = false;
PasswordAuthentication = false; PermitRootLogin = "no";
PermitRootLogin = "no";
# TODO: what does this do # TODO: what does this do
# Let WAYLAND_DISPLAY be forwarded # Let WAYLAND_DISPLAY be forwarded
AcceptEnv = "WAYLAND_DISPLAY"; # AcceptEnv = "WAYLAND_DISPLAY";
X11Forwarding = true; X11Forwarding = true;
};
hostKeys = [
{
path = "/etc/ssh/ssh_host_ed25519_key";
type = "ed25519";
}
];
}; };
# TODO: is automatic known hosts file even necessary? hostKeys = [
# programs.ssh = { {
# # Each hosts public key path = "/etc/ssh/ssh_host_ed25519_key";
# knownHosts = lib.genAttrs hosts (hostname: { type = "ed25519";
# publicKeyFile = ../../${hostname}/ssh_host_ed25519_key.pub; }
# extraHostNames = ];
# [
# # "${hostname}.m7.rs"
# ]
# ++
# # Alias for localhost if it's the same host
# (lib.optional (hostname == config.networking.hostName) "localhost")
# # Alias to m7.rs and git.m7.rs if it's alcyone
# ++ (lib.optionals (hostname == "alcyone") [
# "m7.rs"
# "git.m7.rs"
# ]);
# });
# };
}; };
# TODO: is automatic known hosts file even necessary?
# programs.ssh = {
# # Each hosts public key
# knownHosts = lib.genAttrs hosts (hostname: {
# publicKeyFile = ../../${hostname}/ssh_host_ed25519_key.pub;
# extraHostNames =
# [
# # "${hostname}.m7.rs"
# ]
# ++
# # Alias for localhost if it's the same host
# (lib.optional (hostname == config.networking.hostName) "localhost")
# # Alias to m7.rs and git.m7.rs if it's alcyone
# ++ (lib.optionals (hostname == "alcyone") [
# "m7.rs"
# "git.m7.rs"
# ]);
# });
# };
} }
+7 -9
View File
@@ -1,11 +1,9 @@
{ {pkgs, ...}: {
flake.nixosModules.pcmanfm = {pkgs, ...}: { environment.systemPackages = with pkgs; [
environment.systemPackages = with pkgs; [ shared-mime-info # extended mimetype support
shared-mime-info # extended mimetype support lxmenu-data # open with "Installed Applications"
lxmenu-data # open with "Installed Applications" pcmanfm
pcmanfm ];
];
services.gvfs.enable = true; # Mount, trash, and other functionalities services.gvfs.enable = true; # Mount, trash, and other functionalities
};
} }
+21 -23
View File
@@ -1,28 +1,26 @@
{ {
flake.nixosModules.pipewire = { security.rtkit.enable = true;
security.rtkit.enable = true; services.pulseaudio.enable = false;
services.pulseaudio.enable = false; services.pipewire = {
services.pipewire = { enable = true;
enable = true; wireplumber.enable = true;
wireplumber.enable = true; alsa.enable = true;
alsa.enable = true; alsa.support32Bit = true;
alsa.support32Bit = true; pulse.enable = true;
pulse.enable = true; jack.enable = true;
jack.enable = true; extraConfig.pipewire = {
extraConfig.pipewire = { "99-no-bell" = {
"99-no-bell" = { # Disable bell sound
# Disable bell sound "context.properties" = {
"context.properties" = { "module.x11.bell" = false;
"module.x11.bell" = false;
};
}; };
"10-increase-buffer" = { };
"context.properties" = { "10-increase-buffer" = {
"default.clock.rate" = 48000; "context.properties" = {
"default.clock.quantum" = 1024; "default.clock.rate" = 48000;
"default.clock.min-quantum" = 1024; "default.clock.quantum" = 1024;
"default.clock.max-quantum" = 2048; "default.clock.min-quantum" = 1024;
}; "default.clock.max-quantum" = 2048;
}; };
}; };
}; };
+8 -10
View File
@@ -1,12 +1,10 @@
{ {config, ...}: let
flake.nixosModules.podman = {config, ...}: let dockerEnabled = config.virtualisation.docker.enable;
dockerEnabled = config.virtualisation.docker.enable; in {
in { virtualisation.podman = {
virtualisation.podman = { enable = true;
enable = true; dockerCompat = !dockerEnabled;
dockerCompat = !dockerEnabled; dockerSocket.enable = !dockerEnabled;
dockerSocket.enable = !dockerEnabled; defaultNetwork.settings.dns_enabled = true;
defaultNetwork.settings.dns_enabled = true;
};
}; };
} }
+10 -12
View File
@@ -1,14 +1,12 @@
{ {
flake.nixosModules.redshift = { config,
config, lib,
lib, pkgs,
pkgs, ...
... }: {
}: { # Set location used by redshift
# Set location used by redshift location.provider = "manual";
location.provider = "manual"; location.latitude = 47.92;
location.latitude = 47.92; location.longitude = 10.12;
location.longitude = 10.12; services.redshift.enable = true;
services.redshift.enable = true;
};
} }
+31 -33
View File
@@ -1,36 +1,34 @@
{ {
flake.nixosModules.remote-builder = { nix.distributedBuilds = true;
nix.distributedBuilds = true; nix.settings.builders-use-substitutes = true;
nix.settings.builders-use-substitutes = true;
nix.buildMachines = [ nix.buildMachines = [
{ {
hostName = "builder.julian-mutter.de"; hostName = "builder.julian-mutter.de";
protocol = "ssh"; protocol = "ssh";
sshUser = "nix"; sshUser = "nix";
systems = [ systems = [
"x86_64-linux" "x86_64-linux"
"aarch64-linux" "aarch64-linux"
]; ];
maxJobs = 4; maxJobs = 4;
speedFactor = 3; speedFactor = 3;
supportedFeatures = [ supportedFeatures = [
"nixos-test" "nixos-test"
"benchmark" "benchmark"
"big-parallel" "big-parallel"
"kvm" "kvm"
]; ];
mandatoryFeatures = []; mandatoryFeatures = [];
} }
# { # {
# hostName = "localhost"; # hostName = "localhost";
# protocol = null; # protocol = null;
# systems = [ # systems = [
# "x86_64-linux" # "x86_64-linux"
# ]; # ];
# maxJobs = 4; # maxJobs = 4;
# speedFactor = 1; # speedFactor = 1;
# } # }
]; ];
};
} }
+14 -16
View File
@@ -1,18 +1,16 @@
{ {
flake.nixosModules.thunar = { config,
config, lib,
lib, pkgs,
pkgs, ...
... }: {
}: { programs.thunar.enable = true;
programs.thunar.enable = true; programs.xfconf.enable = true; # Persist saved preferences
programs.xfconf.enable = true; # Persist saved preferences programs.thunar.plugins = with pkgs.xfce; [
programs.thunar.plugins = with pkgs.xfce; [ thunar-archive-plugin
thunar-archive-plugin thunar-volman
thunar-volman thunar-media-tags-plugin
thunar-media-tags-plugin ];
]; services.gvfs.enable = true; # Mount, trash, and other functionalities
services.gvfs.enable = true; # Mount, trash, and other functionalities services.tumbler.enable = true; # Thumbnail support for images
services.tumbler.enable = true; # Thumbnail support for images
};
} }
+10 -12
View File
@@ -1,14 +1,12 @@
{ {
flake.nixosModules.virtualbox = { config,
config, lib,
lib, pkgs,
pkgs, ...
... }: {
}: { virtualisation.virtualbox.host.enable = true;
virtualisation.virtualbox.host.enable = true; # virtualisation.virtualbox.host.enableExtensionPack = true;
# virtualisation.virtualbox.host.enableExtensionPack = true; # virtualisation.virtualbox.guest.enable = true;
# virtualisation.virtualbox.guest.enable = true; # virtualisation.virtualbox.guest.x11 = true;
# virtualisation.virtualbox.guest.x11 = true; users.extraGroups.vboxusers.members = ["julian"];
users.extraGroups.vboxusers.members = ["julian"];
};
} }
+8 -10
View File
@@ -1,14 +1,12 @@
{ {
flake.nixosModules.wireguard = { networking.wg-quick.interfaces = {
networking.wg-quick.interfaces = { julian = {
julian = { configFile = "/etc/wireguard/julian.conf";
configFile = "/etc/wireguard/julian.conf"; autostart = true; # This interface is started on boot
autostart = true; # This interface is started on boot };
}; comu = {
comu = { configFile = "/etc/wireguard/comu.conf";
configFile = "/etc/wireguard/comu.conf"; autostart = false;
autostart = false;
};
}; };
}; };
} }
+6 -8
View File
@@ -1,11 +1,9 @@
{ {
flake.nixosModules.wireshark = { programs.wireshark = {
programs.wireshark = { enable = true;
enable = true; dumpcap.enable = true;
dumpcap.enable = true; usbmon.enable = true;
usbmon.enable = true;
};
users.users.julian.extraGroups = ["wireshark"];
}; };
users.users.julian.extraGroups = ["wireshark"];
} }
+3 -5
View File
@@ -1,8 +1,6 @@
{ {
flake.nixosModules.xserver = { services.xserver = {
services.xserver = { enable = true;
enable = true; wacom.enable = true;
wacom.enable = true;
};
}; };
} }
+47 -48
View File
@@ -1,52 +1,51 @@
{ {
flake.nixosModules.users.julian = { pwd,
pkgs, pkgs,
config, config,
lib, lib,
... ...
}: let }: let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in { in {
users.mutableUsers = false; users.mutableUsers = false;
users.users.julian = { users.users.julian = {
description = "Julian"; description = "Julian";
group = "julian"; group = "julian";
isNormalUser = true; isNormalUser = true;
uid = 1000; uid = 1000;
shell = pkgs.fish; shell = pkgs.fish;
extraGroups = ifTheyExist [ extraGroups = ifTheyExist [
"networkmanager" "networkmanager"
"wheel" "wheel"
"audio" "audio"
"realtime" "realtime"
"rtkit" "rtkit"
"network" "network"
"video" "video"
"podman" "podman"
"docker" "docker"
"git" "git"
"gamemode" "gamemode"
"dialout" "dialout"
]; ];
openssh.authorizedKeys.keys = lib.splitString "\n" ( openssh.authorizedKeys.keys = lib.splitString "\n" (
builtins.readFile ../../../../homes/julian/ssh.pub builtins.readFile ./ssh.pub
); );
# hashedPasswordFile = config.sops.secrets.julian-password.path; # hashedPasswordFile = config.sops.secrets.julian-password.path;
hashedPassword = "$y$j9T$N33kLJQbV8soUoCbDkpwA1$r/yahJDgOPo4GGOrAi6BUG5zLTzmaBrA5NQ4nno561A"; hashedPassword = "$y$j9T$N33kLJQbV8soUoCbDkpwA1$r/yahJDgOPo4GGOrAi6BUG5zLTzmaBrA5NQ4nno561A";
packages = [pkgs.home-manager]; packages = [pkgs.home-manager];
};
users.groups.julian = {
gid = 1000;
};
sops.secrets.julian-password = {
sopsFile = ../../secrets.yaml;
neededForUsers = true;
};
home-manager.users.julian = import ../../../../homes/julian/${config.networking.hostName}.nix;
security.pam.services.swaylock = {}; # Make swaylock unlocking work
}; };
users.groups.julian = {
gid = 1000;
};
sops.secrets.julian-password = {
sopsFile = "${pwd}/hosts/secrets-common.yaml";
neededForUsers = true;
};
home-manager.users.julian = import "${pwd}/homes/julian/${config.networking.hostName}.nix";
security.pam.services.swaylock = {}; # Make swaylock unlocking work
} }
-30
View File
@@ -1,30 +0,0 @@
{
flake.nixosModules.users.pob = {
pkgs,
config,
...
}: let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in {
users.mutableUsers = false;
users.users.pob = {
description = "A helper user to use another profile for some applications";
group = "pob";
isNormalUser = true;
shell = pkgs.fish;
extraGroups = ifTheyExist [
"networkmanager"
];
packages = with pkgs; [
firefox
wineWowPackages.stable # 32-bit and 64-bit wine
winetricks
];
};
users.groups.pob = {};
security.sudo.extraConfig = ''
julian ALL=(pob) NOPASSWD: ALL
'';
};
}
+26 -28
View File
@@ -1,32 +1,30 @@
{ {
flake.nixosModules.users.wolfi = { pkgs,
pkgs, config,
config, ...
... }: let
}: let ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; in {
in { users.mutableUsers = false;
users.mutableUsers = false; users.users.wolfi = {
users.users.wolfi = { description = "Wolfi";
description = "Wolfi"; group = "wolfi";
group = "wolfi"; isNormalUser = true;
isNormalUser = true; shell = pkgs.fish;
shell = pkgs.fish; extraGroups = ifTheyExist [
extraGroups = ifTheyExist [ "networkmanager"
"networkmanager" "wheel"
"wheel" "audio"
"audio" "network"
"network" "video"
"video" "podman"
"podman" "docker"
"docker" "git"
"git" "gamemode"
"gamemode" ];
];
hashedPassword = "$y$j9T$ifzWjoZaRtPUOOfMYnbJ20$uFOO1EyDApL52vRUicZYgupaTA/a6sGNUj3imZ/lcb6"; hashedPassword = "$y$j9T$ifzWjoZaRtPUOOfMYnbJ20$uFOO1EyDApL52vRUicZYgupaTA/a6sGNUj3imZ/lcb6";
packages = [pkgs.home-manager]; packages = [pkgs.home-manager];
};
users.groups.wolfi = {};
}; };
users.groups.wolfi = {};
} }
-99
View File
@@ -1,99 +0,0 @@
{
flake.nixosModules.users.yukari = {
pkgs,
config,
lib,
outputs,
...
}: let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in {
users.mutableUsers = false;
users.users.yukari = {
description = "Yukari";
group = "yukari";
isNormalUser = true;
shell = pkgs.fish;
extraGroups = ifTheyExist [
"networkmanager"
"audio"
"network"
"video"
"podman"
"docker"
"git"
"gamemode"
];
createHome = true;
hashedPassword = "$y$j9T$rGuTL0rfiy7ht8L58BGCw0$fN.KwHjYlIitFEPHndKvV06ezgeWzP3/58o1kkviZwB";
packages = [pkgs.home-manager];
};
users.groups.yukari = {};
home-manager.users.yukari = {
imports =
[
../../../../homes/julian/features/fonts
../../../../homes/julian/features/suites/cli
]
++ (builtins.attrValues outputs.homeManagerModules);
home = {
username = lib.mkDefault "yukari";
homeDirectory = lib.mkDefault "/home/${config.home.username}";
stateVersion = lib.mkDefault "23.11";
sessionPath = ["$HOME/.local/bin"];
packages = with pkgs; [
arandr
calibre # ebook manager and viewer
# digikam
discord
discord-ptb # in case discord updates take their time
# dvdisaster
# element-desktop
# rocketchat-desktop
thunderbird
telegram-desktop # telegram
# schildichat-desktop # not updated regularly
nheko
evince # Simple pdf reader, good for focusing on document content
firefox
vivaldi
# geogebra
cheese
handbrake
# kitty # Terminal, already available as feature
libnotify
libreoffice
mate.engrampa
nomacs # Image viewer
kdePackages.okular # Pdf reader with many features, good for commenting documents
pavucontrol
qalculate-gtk # Nice gui calculator
qpdfview
# qutebrowser
# realvnc-vnc-viewer
# rustdesk
tor-browser
# frajul.pob-dev-version # Path of Building
vlc
wineWowPackages.stable # 32-bit and 64-bit wine
winetricks
xclip # x11 clipboard access from terminal
xfce.mousepad # simple text editor
xournalpp # Edit pdf files
zoom-us # Video conferencing
zotero # Manage papers and other sources
pdfpc # Present slides in pdf form
];
};
programs = {
home-manager.enable = true;
git.enable = true;
};
};
};
}
Generated
+285 -129
View File
@@ -1,18 +1,70 @@
{ {
"nodes": { "nodes": {
"base16-schemes": { "base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696158499, "lastModified": 1765809053,
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1776754714,
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-schemes", "repo": "base16-helix",
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", "rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-schemes", "repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github" "type": "github"
} }
}, },
@@ -58,11 +110,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769524058, "lastModified": 1780290312,
"narHash": "sha256-zygdD6X1PcVNR2PsyK4ptzrVEiAdbMqLos7utrMDEWE=", "narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "71a3fc97d80881e91710fe721f1158d3b96ae14d", "rev": "115e5211780054d8a890b41f0b7734cafad54dfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -71,6 +123,22 @@
"type": "github" "type": "github"
} }
}, },
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1779670703,
"narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -111,11 +179,32 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1768135262, "lastModified": 1778716662,
"narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -162,7 +251,7 @@
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -178,21 +267,36 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_4": { "fromYaml": {
"inputs": { "flake": false,
"systems": "systems_6"
},
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731966426,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "numtide", "owner": "SenchoPens",
"repo": "flake-utils", "repo": "fromYaml",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "SenchoPens",
"repo": "flake-utils", "repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
},
"original": {
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github" "type": "github"
} }
}, },
@@ -203,16 +307,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770260404, "lastModified": 1780341248,
"narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=", "narHash": "sha256-PPWavrpeQFqE3bEShp9xcWeh2xyVbUucjBbG64MLRl0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b", "rev": "4baa8ac595f6122d2899093f575347af9c4e66d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.11", "ref": "release-26.05",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
@@ -257,34 +361,6 @@
"type": "github" "type": "github"
} }
}, },
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"music-reader": { "music-reader": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
@@ -326,25 +402,6 @@
"type": "github" "type": "github"
} }
}, },
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1707825078,
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
"owner": "misterio77",
"repo": "nix-colors",
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
"type": "github"
},
"original": {
"owner": "misterio77",
"repo": "nix-colors",
"type": "github"
}
},
"nix-gl": { "nix-gl": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
@@ -373,11 +430,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772945408, "lastModified": 1780210899,
"narHash": "sha256-PMt48sEQ8cgCeljQ9I/32uoBq/8t8y+7W/nAZhf72TQ=", "narHash": "sha256-4axz3OBPTKa6LIkXV8n0lc63MQU+et2CB5DGobEAi6k=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "1c1d8ea87b047788fd7567adf531418c5da321ec", "rev": "97df9dc0b7c924344b793a15c1e8e4522ebb854e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -444,12 +501,15 @@
} }
}, },
"nixos-hardware": { "nixos-hardware": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": { "locked": {
"lastModified": 1770882871, "lastModified": 1780310866,
"narHash": "sha256-nw5g+xl3veea+maxJ2/81tMEA/rPq9aF1H5XF35X+OE=", "narHash": "sha256-fPBRVf6A5xlACYcOI59shGrjURuvwu0lRsDoSCEXt/I=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "af04cb78aa85b2a4d1c15fc7270347e0d0eda97b", "rev": "4ed851c979641e28597a05086332d75cdc9e395f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -474,28 +534,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": {
"locked": {
"lastModified": 1697935651,
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1770841267, "lastModified": 1780243769,
"narHash": "sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44=", "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ec7c70d12ce2fc37cb92aff673dcdca89d187bae", "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -535,16 +580,29 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1770770419, "lastModified": 1767892417,
"narHash": "sha256-iKZMkr6Cm9JzWlRYW/VPoL0A9jVKtZYiU4zSrVeetIs=", "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1780203844,
"narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c5e707c6b5339359a9a9e215c5e66d6d802fd7a", "rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-25.11", "ref": "nixos-26.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@@ -555,44 +613,45 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nuschtosSearch": "nuschtosSearch", "systems": "systems_4"
"systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1769049374, "lastModified": 1780214453,
"narHash": "sha256-h0Os2qqNyycDY1FyZgtbn28VF1ySP74/n0f+LDd8j+w=", "narHash": "sha256-Bfq9y0X6Vs4UPb67u7hN3jt7fJKHtl3+g0lBSDebRNg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "b8f76bf5751835647538ef8784e4e6ee8deb8f95", "rev": "167da56c3ab1e51751a6ae4a997ed66587f9edae",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "nixos-25.11", "ref": "nixos-26.05",
"repo": "nixvim", "repo": "nixvim",
"type": "github" "type": "github"
} }
}, },
"nuschtosSearch": { "nur": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_3", "flake-parts": [
"ixx": "ixx", "stylix",
"flake-parts"
],
"nixpkgs": [ "nixpkgs": [
"nixvim", "stylix",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1768249818, "lastModified": 1779766384,
"narHash": "sha256-ANfn5OqIxq3HONPIXZ6zuI5sLzX1sS+2qcf/Pa0kQEc=", "narHash": "sha256-P7Ohnlq8b8b2fU+Sgkrej7LBTM60LBTkHleLuYzmLmU=",
"owner": "NuschtOS", "owner": "nix-community",
"repo": "search", "repo": "NUR",
"rev": "b6f77b88e9009bfde28e2130e218e5123dc66796", "rev": "57800b7ab648725ccd33551d01484ee14952ad3f",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NuschtOS", "owner": "nix-community",
"repo": "search", "repo": "NUR",
"type": "github" "type": "github"
} }
}, },
@@ -603,17 +662,17 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"music-reader": "music-reader", "music-reader": "music-reader",
"nix-colors": "nix-colors",
"nix-gl": "nix-gl", "nix-gl": "nix-gl",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nix-matlab": "nix-matlab", "nix-matlab": "nix-matlab",
"nixos-generators": "nixos-generators", "nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim", "nixvim": "nixvim",
"sheet-organizer": "sheet-organizer", "sheet-organizer": "sheet-organizer",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix",
"systems": "systems_7", "systems": "systems_7",
"yazi-flavors": "yazi-flavors" "yazi-flavors": "yazi-flavors"
} }
@@ -621,7 +680,7 @@
"sheet-organizer": { "sheet-organizer": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_3",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
@@ -647,11 +706,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1770683991, "lastModified": 1777944972,
"narHash": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=", "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033", "rev": "c591bf665727040c6cc5cb409079acb22dcce33c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -660,6 +719,39 @@
"type": "github" "type": "github"
} }
}, },
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
"systems": "systems_6",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1780256506,
"narHash": "sha256-wEXN/OoZt9HfsKBL6694p2Y9xRlwfUbdn/M107U8fVU=",
"owner": "nix-community",
"repo": "stylix",
"rev": "8ed48a41087feeb66372ff718021a9512fc552b3",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "stylix",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@@ -765,6 +857,70 @@
"type": "github" "type": "github"
} }
}, },
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1777806186,
"narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1778379944,
"narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1778378178,
"narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "9cd816033ff969415b190722cddf134e78a5665f",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
},
"utils": { "utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems"
@@ -786,11 +942,11 @@
"yazi-flavors": { "yazi-flavors": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1770522883, "lastModified": 1780204176,
"narHash": "sha256-tCAJXPV7s1akc+zHGdWjmdMPG4NpBE92vcO7LAvI5TI=", "narHash": "sha256-qWNArjWuxWL+rOjLzyIniW5hJgWiAWTCgXmMXJpaWZE=",
"owner": "yazi-rs", "owner": "yazi-rs",
"repo": "flavors", "repo": "flavors",
"rev": "4c5753789ea535540e868e2764127be9230cef23", "rev": "0f9204bc948c8313963f5c9d571a82edc201f8aa",
"type": "github" "type": "github"
}, },
"original": { "original": {
+97 -160
View File
@@ -3,20 +3,24 @@
inputs = { inputs = {
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
systems.url = "github:nix-systems/default-linux"; systems.url = "github:nix-systems/default-linux";
nixos-hardware.url = "github:nixos/nixos-hardware"; nixos-hardware.url = "github:nixos/nixos-hardware";
impermanence.url = "github:nix-community/impermanence"; impermanence.url = "github:nix-community/impermanence";
nix-colors.url = "github:misterio77/nix-colors";
deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.url = "github:serokell/deploy-rs";
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-generators = { nixos-generators = {
url = "github:nix-community/nixos-generators"; url = "github:nix-community/nixos-generators";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.11"; url = "github:nix-community/home-manager/release-26.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-index-database = { nix-index-database = {
@@ -36,16 +40,13 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
flake-parts.url = "github:hercules-ci/flake-parts";
import-tree.url = "github:vic/import-tree";
# Various flakes # Various flakes
yazi-flavors = { yazi-flavors = {
url = "github:yazi-rs/flavors"; url = "github:yazi-rs/flavors";
flake = false; flake = false;
}; };
nixvim = { nixvim = {
url = "github:nix-community/nixvim/nixos-25.11"; url = "github:nix-community/nixvim/nixos-26.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-matlab = { nix-matlab = {
@@ -64,163 +65,99 @@
}; };
}; };
outputs = inputs: outputs = {
inputs.flake-parts.lib.mkFlake {inherit inputs;} (inputs.import-tree self,
[ nixpkgs,
./hosts home-manager,
./features-nixos systems,
./homes ...
./features-home-manager } @ inputs: let
# ./modules inherit (self) outputs;
# ./overlays lib = nixpkgs.lib // home-manager.lib;
# ./packages forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
]); pkgsFor = lib.genAttrs (import systems) (
# let system:
# inherit (self) outputs; import nixpkgs {
# lib = nixpkgs.lib // home-manager.lib; inherit system;
# forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system}); config.allowUnfree = true;
# pkgsFor = lib.genAttrs (import systems) ( }
# system: );
# import nixpkgs { in {
# inherit system; inherit lib;
# config.allowUnfree = true;
# config.permittedInsecurePackages = [
# "olm-3.2.16"
# ];
# warn-dirty = false;
# }
# );
# in {
# inherit lib;
# nixosModules = import ./modules/nixos; nixosModules = import ./modules/nixos;
# homeManagerModules = import ./modules/home-manager; homeManagerModules = import ./modules/home-manager;
# overlays = import ./overlays {inherit inputs outputs;}; overlays = import ./overlays {inherit inputs outputs;};
# # hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
# packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;}); packages = forEachSystem (pkgs: import ./packages {inherit pkgs;});
# devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;}); devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
# formatter = forEachSystem (pkgs: pkgs.alejandra); # nix fmt * formatter = forEachSystem (pkgs: pkgs.alejandra); # nix fmt *
# nixosConfigurations = { nixosConfigurations = {
# # Main laptop # Main laptop
# aspi = lib.nixosSystem { aspi = lib.nixosSystem {
# modules = [ modules = [
# ./hosts/aspi ./hosts/aspi
# ]; ];
# specialArgs = { specialArgs = {
# inherit inputs outputs; inherit inputs outputs;
# }; pwd = "${self}";
# }; };
# # Piano raspberry pi };
# # pianonix = lib.nixosSystem { kardorf = lib.nixosSystem {
# # modules = [./hosts/pianonix]; modules = [./hosts/kardorf];
# # specialArgs = { specialArgs = {
# # inherit inputs outputs; inherit inputs outputs;
# # }; pwd = "${self}";
# # }; };
# kardorf = lib.nixosSystem { };
# modules = [./hosts/kardorf]; builder = lib.nixosSystem {
# specialArgs = { modules = [./hosts/builder];
# inherit inputs outputs; specialArgs = {
# }; inherit inputs outputs;
# }; pwd = "${self}";
# builder = lib.nixosSystem { };
# modules = [./hosts/builder]; };
# specialArgs = { };
# inherit inputs outputs;
# };
# };
# };
# # Standalone HM # Standalone HM
# homeConfigurations = { homeConfigurations = {
# # Main laptop "julian@v3ms" = lib.homeManagerConfiguration {
# "julian@aspi" = lib.homeManagerConfiguration { modules = [
# modules = [ ./homes/julian/v3ms
# ./homes/julian/aspi.nix ./homes/julian/hm-standalone-config.nix
# ./homes/julian/hm-standalone-config.nix ];
# ]; pkgs = pkgsFor.x86_64-linux;
# pkgs = pkgsFor.x86_64-linux; extraSpecialArgs = {
# extraSpecialArgs = { inherit inputs outputs;
# inherit inputs outputs; pwd = "${self}";
# }; };
# }; };
# # Media server (RPi) "julian@quickstart" = lib.homeManagerConfiguration {
# # "julian@pianonix" = lib.homeManagerConfiguration { modules = [
# # modules = [ ./homes/julian/quickstart.nix
# # ./homes/julian/pianonix.nix ./homes/julian/hm-standalone-config.nix
# # ./homes/julian/hm-standalone-config.nix ];
# # ]; pkgs = pkgsFor.x86_64-linux;
# # pkgs = pkgsFor.aarch64-linux; extraSpecialArgs = {
# # extraSpecialArgs = { inherit inputs outputs;
# # inherit inputs outputs; pwd = "${self}";
# # }; };
# # }; };
# "julian@kardorf" = lib.homeManagerConfiguration { };
# modules = [
# ./homes/julian/kardorf.nix
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# "julian@v3ms" = lib.homeManagerConfiguration {
# modules = [
# ./homes/julian/v3ms
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# "julian@quickstart" = lib.homeManagerConfiguration {
# modules = [
# ./homes/julian/quickstart.nix
# ./homes/julian/hm-standalone-config.nix
# ];
# pkgs = pkgsFor.x86_64-linux;
# extraSpecialArgs = {
# inherit inputs outputs;
# };
# };
# };
# # deploy-rs node configuration # deploy-rs node configuration
# deploy.nodes = { deploy.nodes = {
# # pianonix = { builder = {
# # hostname = "pianonix.local"; hostname = "builder.julian-mutter.de";
# # profiles.system = { profiles.system = {
# # sshUser = "root"; sshUser = "root";
# # user = "root"; user = "root";
# # path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
# # confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services remoteBuild = true;
# # }; };
# # }; };
};
# builder = { };
# hostname = "builder.julian-mutter.de";
# profiles.system = {
# sshUser = "root";
# user = "root";
# path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
# remoteBuild = true;
# };
# };
# };
# # substitutes: nixos-generate --flake .#pianonix -f sd-aarch64 --system aarch64-linux
# pianonix-image = inputs.nixos-generators.nixosGenerate {
# system = "aarch64-linux";
# format = "sd-aarch64";
# modules = [./hosts/pianonix];
# specialArgs = {
# inherit inputs outputs;
# };
# };
# };
} }
@@ -2,5 +2,6 @@
programs.direnv = { programs.direnv = {
enable = true; enable = true;
nix-direnv.enable = true; nix-direnv.enable = true;
mise.enable = true;
}; };
} }
@@ -41,7 +41,7 @@ in {
sqlite sqlite
# Code formatters for use with doom emacs # Code formatters for use with doom emacs
nixfmt-rfc-style # nix nixfmt # nix
alejandra # nix alejandra # nix
nixd # nix lsp nixd # nix lsp
@@ -5,7 +5,7 @@
}: }:
with lib; { with lib; {
home.file = { home.file = {
".config/starship.toml".source = ./starship.toml; # ".config/starship.toml".source = ./starship.toml;
".config/fish/conf.d/last-working-dir.fish".source = ./last-working-dir.fish; ".config/fish/conf.d/last-working-dir.fish".source = ./last-working-dir.fish;
}; };
@@ -7,6 +7,8 @@ with lib; {
fonts.fontconfig.enable = true; # required to autoload fonts from packages fonts.fontconfig.enable = true; # required to autoload fonts from packages
home.packages = with pkgs; [ home.packages = with pkgs; [
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
font-awesome font-awesome
dejavu_fonts dejavu_fonts
noto-fonts noto-fonts
@@ -16,5 +18,7 @@ with lib; {
fira-code fira-code
fira-code-symbols fira-code-symbols
source-code-pro source-code-pro
source-sans
roboto
]; ];
} }
@@ -4,12 +4,7 @@
config, config,
lib, lib,
... ...
}: let }: {
inherit
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
palette
;
in {
imports = [ imports = [
# inputs.hyprland.homeManagerModules.default # inputs.hyprland.homeManagerModules.default
./waybar ./waybar
@@ -119,6 +114,8 @@ in {
# } # }
# ); # );
configType = "lua";
systemd = { systemd = {
enable = true; enable = true;
# Same as default, but stop graphical-session too # Same as default, but stop graphical-session too
@@ -183,6 +180,16 @@ in {
}; };
}; };
# Disable animations for selection, fixes screenshots
extraConfig = ''
# layerrule {
# name = no_anim_for_selection
# no_anim = on
# match:namespace = selection
# }
layerrule = noanim, selection
'';
settings = { settings = {
"$mod" = "SUPER"; "$mod" = "SUPER";
@@ -204,9 +211,6 @@ in {
gaps_out = 5; gaps_out = 5;
layout = "dwindle"; layout = "dwindle";
# "col.active_border" = "0xff${palette.base0C} 0xff${palette.base0D} 270deg";
# "col.inactive_border" = "0xff${palette.base00}";
}; };
decoration = { decoration = {
@@ -246,7 +250,7 @@ in {
}; };
exec = [ exec = [
"hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}" # "hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
"correct-workspace-locations" "correct-workspace-locations"
]; ];
@@ -435,18 +439,6 @@ in {
"$mod SHIFT,W,exec,${makoctl} restore" "$mod SHIFT,W,exec,${makoctl} restore"
] ]
); );
# plugin = {
# hyprbars = {
# bar_text_size = 10;
# bar_height = 16;
# bar_text_font = "Ubuntu Nerd Font";
# bar_precedence_over_border = true;
# bar_color = "rgb(${palette.base01})";
# hyprbars-button = [ "rgb(${palette.base03}), 14, 󰖭, hyprctl dispatch killactive" ];
# };
# };
}; };
}; };
} }
@@ -0,0 +1,22 @@
{
programs.hyprlock.enable = true;
programs.hyprlock.settings = {
general = {
disable_loading_bar = true;
hide_cursor = true;
ignore_empty_input = true;
};
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
outline_thickness = 5;
placeholder_text = "Password...";
}
];
};
}
@@ -0,0 +1,10 @@
{pkgs, ...}: {
home.packages = with pkgs; [libnotify];
services.mako = {
enable = true;
settings = {
defaultTimeout = "5000"; # milliseconds, can be overwritten by notification sender
};
};
}
@@ -31,7 +31,7 @@
in { in {
services.swayidle = { services.swayidle = {
enable = true; enable = true;
systemdTarget = "graphical-session.target"; systemdTargets = ["graphical-session.target"];
timeouts = timeouts =
# Lock screen # Lock screen
[ [
@@ -1,14 +1,7 @@
{ {
config,
pkgs,
...
}: let
inherit (config.colorscheme) colors;
in {
programs.swaylock = { programs.swaylock = {
enable = true; enable = true;
settings = { settings = {
color = "000000";
ignore-empty-password = true; ignore-empty-password = true;
indicator-idle-visible = false; indicator-idle-visible = false;
}; };
@@ -0,0 +1,29 @@
{config, ...}: let
palette = config.lib.stylix.colors;
in {
programs.waybar = {
enable = true;
# systemd.enable = true;
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
};
# xdg.configFile."waybar/style.css".source = ./style.css;
# xdg.configFile."waybar/theme.css".text = ''
# /*
# bg - background
# fg - foreground
# */
# /* Main Colors */
# @define-color background #${palette.base00};
# @define-color foreground #${palette.base05};
# /* Workspace Button Colors */
# @define-color hover-bg #${palette.base01};
# @define-color hover-fg #${palette.base05};
# @define-color active-bg #${palette.base02};
# @define-color active-fg #${palette.base0A};
# @define-color urgent-bg #${palette.base08};
# @define-color urgent-fg #${palette.base00};
# '';
}
@@ -0,0 +1,3 @@
{pkgs, ...}: {
home.packages = with pkgs; [wlogout];
}
@@ -0,0 +1,5 @@
{pkgs, ...}: {
home.packages = with pkgs; [wofi];
xdg.configFile."wofi/config".source = ./config;
}
@@ -22,9 +22,9 @@
# Prevent screen from going blank (check these settings with `xset q`) # Prevent screen from going blank (check these settings with `xset q`)
# And disable bell sound (b) # And disable bell sound (b)
xsession.initExtra = '' xsession.initExtra = ''
${pkgs.xorg.xset}/bin/xset s off ${pkgs.xset}/bin/xset s off
${pkgs.xorg.xset}/bin/xset -dpms ${pkgs.xset}/bin/xset -dpms
${pkgs.xorg.xset}/bin/xset b off ${pkgs.xset}/bin/xset b off
''; '';
xsession.windowManager.i3 = { xsession.windowManager.i3 = {
enable = true; enable = true;
@@ -18,7 +18,7 @@
fd fd
stylua stylua
black black
nixfmt-rfc-style # nixfmt nixfmt # nixfmt
]; ];
programs.nixvim = { programs.nixvim = {
@@ -37,7 +37,7 @@
usbutils # lsusb usbutils # lsusb
wget wget
wireguard-tools # wg-quick wireguard-tools # wg-quick
xorg.xkill xkill
zip zip
dig dig
@@ -1,5 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
imports = [../../gtk]; imports = [./stylix.nix];
services.blueman-applet.enable = true; services.blueman-applet.enable = true;
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
@@ -39,7 +39,7 @@
# kitty # Terminal, already available as feature # kitty # Terminal, already available as feature
libnotify libnotify
libreoffice libreoffice
mate.engrampa engrampa
nomacs # Image viewer nomacs # Image viewer
kdePackages.okular # Pdf reader with many features, good for commenting documents kdePackages.okular # Pdf reader with many features, good for commenting documents
pavucontrol pavucontrol
@@ -52,12 +52,11 @@
# rustdesk # rustdesk
tor-browser tor-browser
rusty-path-of-building # Path of Building for poe1 and poe2 rusty-path-of-building # Path of Building for poe1 and poe2
# frajul.pob-dev-version # Path of Building
vlc vlc
wineWowPackages.stable # 32-bit and 64-bit wine wineWow64Packages.stable # 32-bit and 64-bit wine
winetricks winetricks
xclip # x11 clipboard access from terminal xclip # x11 clipboard access from terminal
xfce.mousepad # simple text editor mousepad # simple text editor
xournalpp # Edit pdf files xournalpp # Edit pdf files
zoom-us # Video conferencing zoom-us # Video conferencing
zotero # Manage papers and other sources zotero # Manage papers and other sources
@@ -69,6 +68,5 @@
## My scripts ## My scripts
frajul.open-messaging frajul.open-messaging
frajul.xwacomcalibrate frajul.xwacomcalibrate
frajul.pob2-frajul
]; ];
} }
@@ -0,0 +1,10 @@
{
pkgs,
inputs,
...
}: {
imports = [inputs.stylix.homeModules.stylix];
stylix.enable = true;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
}
@@ -66,8 +66,11 @@
pandoc # markdown preview pandoc # markdown preview
docker-compose docker-compose
mise
## My scripts ## My scripts
frajul.deploy-to-pianopi frajul.deploy-to-pianopi
frajul.smath-studio
# frajul.rtklib # frajul.rtklib
(pkgs.writeShellScriptBin "matlab-rsp" '' (pkgs.writeShellScriptBin "matlab-rsp" ''

Some files were not shown because too many files have changed in this diff Show More