summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.sops.yaml11
-rw-r--r--flake.lock154
-rw-r--r--flake.nix88
-rw-r--r--hm/conf/conf.nix1
-rw-r--r--hm/conf/xdg-dirs.nix40
-rw-r--r--hm/conf/xdg-mime.nix49
-rw-r--r--hm/editors/nixvim.nix4
-rw-r--r--hm/shell/cli.nix41
-rw-r--r--hm/shell/fish.nix16
-rw-r--r--hm/soft/easyeffects.nix12
-rw-r--r--hm/soft/media.nix50
-rw-r--r--hm/soft/obs.nix9
-rw-r--r--hm/soft/soft.nix1
-rw-r--r--hosts/desktop/configuration.nix18
-rw-r--r--hosts/desktop/home.nix10
-rw-r--r--os/srv/gaming.nix2
-rw-r--r--os/srv/sops.nix28
-rw-r--r--os/srv/srv.nix2
-rw-r--r--os/srv/syncthing.nix54
-rw-r--r--secrets.yaml40
20 files changed, 430 insertions, 200 deletions
diff --git a/.sops.yaml b/.sops.yaml
new file mode 100644
index 0000000..3795cc2
--- /dev/null
+++ b/.sops.yaml
@@ -0,0 +1,11 @@
+keys:
+ - &admin_gpg EF69F2FB25C8B5A66918EA91A38ACEAB9656CD94
+ - &host_szpont age1s39d4mdrjhkf8cy8eea02p836r7s875fj8f7w3z4ld2stmaac49qd075ww
+
+creation_rules:
+ - path_regex: secrets.yaml$
+ key_groups:
+ - age:
+ - *host_szpont
+ pgp:
+ - *admin_gpg
diff --git a/flake.lock b/flake.lock
index 1f8dd44..ae5430d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -98,32 +98,11 @@
]
},
"locked": {
- "lastModified": 1768135262,
- "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_4": {
- "inputs": {
- "nixpkgs-lib": [
- "nur",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1733312601,
- "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
+ "lastModified": 1769996383,
+ "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
+ "rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
"type": "github"
},
"original": {
@@ -157,11 +136,11 @@
]
},
"locked": {
- "lastModified": 1769978395,
- "narHash": "sha256-gj1yP3spUb1vGtaF5qPhshd2j0cg4xf51pklDsIm19Q=",
+ "lastModified": 1770491427,
+ "narHash": "sha256-8b+0vixdqGnIIcgsPhjdX7EGPdzcVQqYxF+ujjex654=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "984708c34d3495a518e6ab6b8633469bbca2f77a",
+ "rev": "cbd8a72e5fe6af19d40e2741dc440d9227836860",
"type": "github"
},
"original": {
@@ -196,11 +175,11 @@
]
},
"locked": {
- "lastModified": 1770128147,
- "narHash": "sha256-R132VbY2fTbTBk96e7XX2Mis8jKhkpdDq8xHt5lUGTw=",
+ "lastModified": 1770509107,
+ "narHash": "sha256-YsfKRbd5fbcb2VTxywzAGpc4txXApMXfG0vtxEldt7Q=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
- "rev": "7c11c6be010c28eef42f564c383741f4a2678491",
+ "rev": "0bb52596f3ea543781d2c20b1c2ee495a174a7d5",
"type": "github"
},
"original": {
@@ -212,11 +191,11 @@
"neovim-src": {
"flake": false,
"locked": {
- "lastModified": 1770059021,
- "narHash": "sha256-VgKBxczgdh+MHdKCpaC4MjZgco9CDYfLdyADKFn6IHE=",
+ "lastModified": 1770505476,
+ "narHash": "sha256-HvlTxVEso/hl9lwweHerBRLtI/q05SQTxDr2l0Njfig=",
"owner": "neovim",
"repo": "neovim",
- "rev": "19eb75831b931b7cbe6a95323f941f2836592f02",
+ "rev": "ed8fbd2e2992cb264cb62585098a1c7acc5c4585",
"type": "github"
},
"original": {
@@ -237,11 +216,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
- "lastModified": 1770133761,
- "narHash": "sha256-3/2F3IfdyEz9ot0NytsVymt5Ma54EBBWcAc3CJKQFPE=",
+ "lastModified": 1770493836,
+ "narHash": "sha256-UPG9xFnVkqHF5e2GOucQO8BXXzwp8BwwON2g+WBXLMA=",
"owner": "sodiboo",
"repo": "niri-flake",
- "rev": "c44eff590edaff58ef9e34ecf38f6fbccb1be647",
+ "rev": "a17befde0c0ca25617fb3da505294deb45cef170",
"type": "github"
},
"original": {
@@ -270,11 +249,11 @@
"niri-unstable": {
"flake": false,
"locked": {
- "lastModified": 1770092965,
- "narHash": "sha256-++K1ftjwPqMJzIO8t2GsdkYQzC2LLA5A1w21Uo+SLz4=",
+ "lastModified": 1770394936,
+ "narHash": "sha256-Pa0fkyLYUR+pZh7phPENDUo4mJIweaAm0uV83iUUlX8=",
"owner": "YaLTeR",
"repo": "niri",
- "rev": "189917c93329c86ac2ddd89f459c26a028d590ba",
+ "rev": "549148d27779d024255a84535b42b947f1c2a113",
"type": "github"
},
"original": {
@@ -292,11 +271,11 @@
]
},
"locked": {
- "lastModified": 1770079495,
- "narHash": "sha256-QQIkfywgOnkfaMLT/rjxaS9XSPNvTRwOHN1o3+lJHHE=",
+ "lastModified": 1770425102,
+ "narHash": "sha256-36XIjxE4YA+dg/ylzC6IfdxTtRizkysXsAh433EaPns=",
"owner": "KaylorBen",
"repo": "nixcord",
- "rev": "ffe541f2ec948f55fd16a069040d505b810a814f",
+ "rev": "d1880604a496708083964693d4ddc3783f81645b",
"type": "github"
},
"original": {
@@ -307,11 +286,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1770115704,
- "narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
+ "lastModified": 1770197578,
+ "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
+ "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
"type": "github"
},
"original": {
@@ -338,11 +317,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1770056022,
- "narHash": "sha256-yvCz+Qmci1bVucXEyac3TdoSPMtjqVJmVy5wro6j/70=",
+ "lastModified": 1770464364,
+ "narHash": "sha256-z5NJPSBwsLf/OfD8WTmh79tlSU8XgIbwmk6qB1/TFzY=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "d04d8548aed39902419f14a8537006426dc1e4fa",
+ "rev": "23d72dabcb3b12469f57b37170fcbc1789bd7457",
"type": "github"
},
"original": {
@@ -377,11 +356,11 @@
"systems": "systems"
},
"locked": {
- "lastModified": 1770025103,
- "narHash": "sha256-Qlb19PP0n6s+v1MywVjROV5XwsCvA58XXiXHk0Govb4=",
+ "lastModified": 1770388595,
+ "narHash": "sha256-0NvpmDqFcJAtRFJE3RDZWnN7PDJBZutoDtN+Cl8a3DY=",
"owner": "nix-community",
"repo": "nixvim",
- "rev": "31c3b3687dc85e3fbbf5c44728a5ee231608f8a9",
+ "rev": "51abc532525e486176f9a7b24b17908c60017b54",
"type": "github"
},
"original": {
@@ -390,27 +369,6 @@
"type": "github"
}
},
- "nur": {
- "inputs": {
- "flake-parts": "flake-parts_4",
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1770143912,
- "narHash": "sha256-x+YAcvgybyeHMZcjNjKyHG8WBTNetusVO/PCEipPrA4=",
- "owner": "nix-community",
- "repo": "NUR",
- "rev": "5a34f005effc58a448900b9e16b9dd15373e85eb",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "NUR",
- "type": "github"
- }
- },
"root": {
"inputs": {
"disko": "disko",
@@ -421,8 +379,8 @@
"nixcord": "nixcord",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
- "nur": "nur",
"satty": "satty",
+ "sops-nix": "sops-nix",
"spicetify-nix": "spicetify-nix",
"waybar": "waybar",
"yazi": "yazi"
@@ -475,11 +433,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
- "lastModified": 1770046271,
- "narHash": "sha256-OE/d7E4g7BfPpL0PMG8B5AuGLA8/IPItG/h7+YZyBoU=",
+ "lastModified": 1770383675,
+ "narHash": "sha256-pR3Mc5Eue4YcIMcrzkyDhZPpovRFa8TW1PjL/ysH/7s=",
"owner": "gabm",
"repo": "Satty",
- "rev": "69305902cb5cfc55bc7d3e2de36ab2df26440bad",
+ "rev": "7ae73dfb2c0f96e6820287390c1b8196c11cc0e0",
"type": "github"
},
"original": {
@@ -488,6 +446,26 @@
"type": "github"
}
},
+ "sops-nix": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1770526836,
+ "narHash": "sha256-xbvX5Ik+0inJcLJtJ/AajAt7xCk6FOCrm5ogpwwvVDg=",
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "rev": "d6e0e666048a5395d6ea4283143b7c9ac704720d",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Mic92",
+ "repo": "sops-nix",
+ "type": "github"
+ }
+ },
"spicetify-nix": {
"inputs": {
"nixpkgs": [
@@ -496,11 +474,11 @@
"systems": "systems_2"
},
"locked": {
- "lastModified": 1769986820,
- "narHash": "sha256-O9OQ44dk9TJdtRIG828DUI54XdkfZET7AlN1RgTsPis=",
+ "lastModified": 1770528352,
+ "narHash": "sha256-KO51BALxgLUlhg1CqQgA3Rj8vgAcDvoLxzNLTxD65cc=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "68de6434cfaa8983f3775b858b8b76e7c5dbd29c",
+ "rev": "9f4ab243968118026f4ff82f7ce41d30319e2bf0",
"type": "github"
},
"original": {
@@ -562,11 +540,11 @@
]
},
"locked": {
- "lastModified": 1770141194,
- "narHash": "sha256-cgtKNt9t+LlaCKwkVtcVpNeJR8v0jcUDdSzbfmgW5S0=",
+ "lastModified": 1770495628,
+ "narHash": "sha256-hcPR/40oTUulZHxxyarOzPz7izbMu8IbEQ3/2dGaBQQ=",
"owner": "Alexays",
"repo": "Waybar",
- "rev": "0d27c093b1b07bbde86fe83a29b2b1d380ac54bd",
+ "rev": "2616785d187656646571f390978440ee2e13eb17",
"type": "github"
},
"original": {
@@ -595,11 +573,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
- "lastModified": 1770083504,
- "narHash": "sha256-1CB57EPNjZOAjMeFzkG5wbzjuLuKT317alEK6JUf9sc=",
+ "lastModified": 1770167989,
+ "narHash": "sha256-rE2WTxKHe3KMG/Zr5YUNeKHkZfWwSFl7yJXrOKnunHg=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
- "rev": "75c9f5e77573b36b8d341c28c0d32e9c9a0a2309",
+ "rev": "0947c4685f6237d4f8045482ce0c62feab40b6c4",
"type": "github"
},
"original": {
@@ -617,11 +595,11 @@
"rust-overlay": "rust-overlay_2"
},
"locked": {
- "lastModified": 1769971982,
- "narHash": "sha256-dc8lG9CxtrIk+tOsQx8TJKULQBG27Hoio4O4M/6CxFM=",
+ "lastModified": 1770518798,
+ "narHash": "sha256-5TnWJRYeXzgeG2jFsg+gee+jKLeHaPzQBhczgj9cPs8=",
"owner": "sxyazi",
"repo": "yazi",
- "rev": "6757fed5aa82bfdcd5ecd52e8f374dc286220cc0",
+ "rev": "0aeeb3b0f76ac2748cb6a40c01689b5c2f74a932",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index ee9cc2f..4d432a7 100644
--- a/flake.nix
+++ b/flake.nix
@@ -7,8 +7,8 @@
# Snapshot of nixpkgs with the 6.17.13 kernel for compatibility
kernelv.url = "github:NixOS/nixpkgs/52e64396e98aef211f4127416dbdae17a01b3d3f";
- nur = {
- url = "github:nix-community/NUR";
+ sops-nix = {
+ url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -63,47 +63,51 @@
};
};
- outputs = {
- self,
- nixpkgs,
- nur,
- ...
- } @ inputs: let
- mkHost = {
- hostname,
- path,
- user ? "adam",
- }:
- nixpkgs.lib.nixosSystem {
- specialArgs = {
- inherit inputs;
- username = user;
+ outputs =
+ {
+ self,
+ nixpkgs,
+ sops-nix,
+ ...
+ }@inputs:
+ let
+ mkHost =
+ {
+ hostname,
+ path,
+ user ? "adam",
+ }:
+ nixpkgs.lib.nixosSystem {
+ specialArgs = {
+ inherit inputs;
+ username = user;
+ };
+ modules = [
+ path
+ sops-nix.nixosModules.sops
+ { networking.hostName = hostname; }
+ ];
+ };
+ in
+ {
+ nixosConfigurations = {
+ szpont = mkHost {
+ hostname = "szpont";
+ path = ./hosts/desktop/configuration.nix;
+ };
+ laptop = mkHost {
+ hostname = "laptop";
+ path = ./hosts/laptop/configuration.nix;
+ };
+ thinkpad = mkHost {
+ hostname = "thinkpad";
+ path = ./hosts/thinkpad/configuration.nix;
+ };
+ pendrive = mkHost {
+ hostname = "pendrive";
+ path = ./hosts/pendrive/configuration.nix;
+ user = "user";
};
- modules = [
- path
- {networking.hostName = hostname;}
- {nixpkgs.overlays = [nur.overlays.default];}
- ];
- };
- in {
- nixosConfigurations = {
- szpont = mkHost {
- hostname = "szpont";
- path = ./hosts/desktop/configuration.nix;
- };
- laptop = mkHost {
- hostname = "laptop";
- path = ./hosts/laptop/configuration.nix;
- };
- thinkpad = mkHost {
- hostname = "thinkpad";
- path = ./hosts/thinkpad/configuration.nix;
- };
- pendrive = mkHost {
- hostname = "pendrive";
- path = ./hosts/pendrive/configuration.nix;
- user = "user";
};
};
- };
}
diff --git a/hm/conf/conf.nix b/hm/conf/conf.nix
index 6c54d8a..57f9ba1 100644
--- a/hm/conf/conf.nix
+++ b/hm/conf/conf.nix
@@ -4,5 +4,6 @@
./clip.nix
./git.nix
./xdg-dirs.nix
+ ./xdg-mime.nix
];
}
diff --git a/hm/conf/xdg-dirs.nix b/hm/conf/xdg-dirs.nix
index d779dba..ee34bd0 100644
--- a/hm/conf/xdg-dirs.nix
+++ b/hm/conf/xdg-dirs.nix
@@ -19,9 +19,9 @@ in
download = "${config.home.homeDirectory}/dl";
documents = "${config.home.homeDirectory}/docs";
-
+
pictures = "${toString cfg.mediaPath}/pics";
- videos = "${toString cfg.mediaPath}/vids";
+ videos = "${toString cfg.mediaPath}/vids";
desktop = null;
music = null;
@@ -29,25 +29,25 @@ in
templates = null;
extraConfig = {
- XDG_PROJECTS_DIR = "${config.home.homeDirectory}/proj";
- XDG_GAMES_DIR = "${config.home.homeDirectory}/games";
- XDG_MEDIA_DIR = "${toString cfg.mediaPath}";
- XDG_SS_DIR = "${toString cfg.mediaPath}/pics/ss";
- XDG_CLIPS_DIR = "${toString cfg.mediaPath}/vids/clips";
- XDG_MOVIES_DIR = "${toString cfg.mediaPath}/movies";
- XDG_ANIME_DIR = "${toString cfg.mediaPath}/anime";
- XDG_ARCHIVE_DIR = "${toString cfg.mediaPath}/archive";
+ PROJECTS = "${config.home.homeDirectory}/proj";
+ GAMES = "${config.home.homeDirectory}/games";
+ MEDIA = "${toString cfg.mediaPath}";
+ SS = "${toString cfg.mediaPath}/pics/ss";
+ CLIPS = "${toString cfg.mediaPath}/vids/clips";
+ MOVIES = "${toString cfg.mediaPath}/movies";
+ ANIME = "${toString cfg.mediaPath}/anime";
+ ARCHIVE = "${toString cfg.mediaPath}/archive";
};
};
- home.sessionVariables = {
- XDG_PROJECTS_DIR = "${config.home.homeDirectory}/proj";
- XDG_GAMES_DIR = "${config.home.homeDirectory}/games";
- XDG_MEDIA_DIR = "${toString cfg.mediaPath}";
- XDG_SS_DIR = "${toString cfg.mediaPath}/pics/ss";
- XDG_CLIPS_DIR = "${toString cfg.mediaPath}/vids/clips";
- XDG_MOVIES_DIR = "${toString cfg.mediaPath}/movies";
- XDG_ANIME_DIR = "${toString cfg.mediaPath}/anime";
- XDG_ARCHIVE_DIR = "${toString cfg.mediaPath}/archive";
- };
+ home.sessionVariables = {
+ PROJECTS = "${config.home.homeDirectory}/proj";
+ GAMES = "${config.home.homeDirectory}/games";
+ MEDIA = "${toString cfg.mediaPath}";
+ SS = "${toString cfg.mediaPath}/pics/ss";
+ CLIPS = "${toString cfg.mediaPath}/vids/clips";
+ MOVIES = "${toString cfg.mediaPath}/movies";
+ ANIME = "${toString cfg.mediaPath}/anime";
+ ARCHIVE = "${toString cfg.mediaPath}/archive";
+ };
};
}
diff --git a/hm/conf/xdg-mime.nix b/hm/conf/xdg-mime.nix
new file mode 100644
index 0000000..0f55c5d
--- /dev/null
+++ b/hm/conf/xdg-mime.nix
@@ -0,0 +1,49 @@
+{ config, lib, ... }:
+let
+ cfg = config.hm.conf.xdg-mime;
+in
+{
+ options.hm.conf.xdg-mime = {
+ enable = lib.mkEnableOption "sets the default applications";
+ };
+ config = lib.mkIf cfg.enable {
+ xdg.mimeApps = {
+ enable = true;
+ defaultApplications = {
+ "application/pdf" = [ "org.pwmt.zathura.desktop" ];
+ "application/x-bzpdf" = [ "org.pwmt.zathura.desktop" ];
+ "application/x-gzpdf" = [ "org.pwmt.zathura.desktop" ];
+ "application/epub+zip" = [ "org.pwmt.zathura.desktop" ];
+
+ "image/png" = [ "nsxiv.desktop" ];
+ "image/jpeg" = [ "nsxiv.desktop" ];
+ "image/gif" = [ "nsxiv.desktop" ];
+ "image/webp" = [ "nsxiv.desktop" ];
+ "image/bmp" = [ "nsxiv.desktop" ];
+
+ "video/mp4" = [ "mpv.desktop" ];
+ "video/x-matroska" = [ "mpv.desktop" ];
+ "video/webm" = [ "mpv.desktop" ];
+ "video/quicktime" = [ "mpv.desktop" ];
+
+ "audio/mpeg" = [ "mpv.desktop" ];
+ "audio/flac" = [ "mpv.desktop" ];
+ "audio/wav" = [ "mpv.desktop" ];
+ "audio/ogg" = [ "mpv.desktop" ];
+
+ "text/html" = [ "firefox.desktop" ];
+ "x-scheme-handler/http" = [ "firefox.desktop" ];
+ "x-scheme-handler/https" = [ "firefox.desktop" ];
+ "inode/directory" = [ "thunar.desktop" ];
+ };
+ };
+ home.sessionVariables = {
+ EDITOR = "nvim";
+ VISUAL = "nvim";
+ BROWSER = "librewolf";
+ TERMINAL = "foot";
+ GPG_TTY = "$(tty)";
+ COLORTERM = "truecolor";
+ };
+ };
+}
diff --git a/hm/editors/nixvim.nix b/hm/editors/nixvim.nix
index e46f6e2..9db6bff 100644
--- a/hm/editors/nixvim.nix
+++ b/hm/editors/nixvim.nix
@@ -33,6 +33,9 @@ in
};
opts = {
+ smartindent = true;
+ autoindent = true;
+ breakindent = true;
number = true;
relativenumber = true;
termguicolors = true;
@@ -188,6 +191,7 @@ in
treesitter-context = {
enable = true;
settings = {
+ indent.enable = true;
max_lines = 2;
trim_scope = "outer";
};
diff --git a/hm/shell/cli.nix b/hm/shell/cli.nix
index 142fda5..2716e00 100644
--- a/hm/shell/cli.nix
+++ b/hm/shell/cli.nix
@@ -3,21 +3,22 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.hm.shell.cli;
-in {
+in
+{
options.hm.shell.cli.enable = lib.mkEnableOption "modern cli tools";
config = lib.mkIf cfg.enable {
programs.zoxide = {
enable = true;
- options = ["--cmd cd"];
+ options = [ "--cmd cd" ];
};
programs.bat = {
enable = true;
config.theme = "gruvbox-dark";
};
- programs.eza.enable = true;
programs.fzf.enable = true;
programs.fd.enable = true;
programs.ripgrep.enable = true;
@@ -60,24 +61,44 @@ in {
];
};
};
- programs.direnv.enable = true;
- programs.jq.enable = true;
+ # programs.direnv = {
+ # enable = true;
+ # nix-direnv.enable = true;
+ # };
programs.nix-your-shell = {
enable = true;
enableFishIntegration = true;
nix-output-monitor.enable = true;
};
+ programs.bottom = {
+ enable = true;
+ };
+ programs.tealdeer = {
+ enable = true;
+ };
+ # programs.lazygit = {
+ # enable = true;
+ # enableFishIntegration = true;
+ # };
+ programs.riff.enable = true;
+ programs.pls.enable = true;
+ programs.nix-index.enable = true;
home.packages = with pkgs; [
+ sd
+ choose
+ doggo
+ gping
+ comma
+ dust
nix-search-cli
srm
file
- mediainfo
- chafa
hexyl
procs
- yq-go
- tldr
+
+ chafa
+ ffmpeg
];
};
}
diff --git a/hm/shell/fish.nix b/hm/shell/fish.nix
index 88a4493..6338cb1 100644
--- a/hm/shell/fish.nix
+++ b/hm/shell/fish.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
let
cfg = config.hm.shell.fish;
in
@@ -14,22 +19,19 @@ in
'';
shellAliases = {
- update = "git add . && git commit -m \"$1\" && nh os switch .";
+ update = "git add . && git commit -m \"$1\" && nix flake update && nh os switch .";
nos = "nh os switch .";
nob = "nh os boot .";
nfu = "nix flake update";
-
- ll = "ls -lah";
- la = "ls -A";
+
md = "mkdir -p";
rmf = "rm -rf";
untar = "tar -xzvf";
tarc = "tar -czvf";
-
+
ff = "fastfetch";
cat = "bat";
- ls = "eza";
yt = "yt-dlp";
};
diff --git a/hm/soft/easyeffects.nix b/hm/soft/easyeffects.nix
deleted file mode 100644
index ab16736..0000000
--- a/hm/soft/easyeffects.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ config, lib, ... }:
-let
- cfg = config.hm.soft.easyeffects;
-in
-{
- options.hm.soft.easyeffects.enable = lib.mkEnableOption "EasyEffects audio equalizer";
- config = lib.mkIf cfg.enable {
- services.easyeffects = {
- enable = true;
- };
- };
-}
diff --git a/hm/soft/media.nix b/hm/soft/media.nix
index 8dcd6de..b307904 100644
--- a/hm/soft/media.nix
+++ b/hm/soft/media.nix
@@ -3,15 +3,61 @@
lib,
pkgs,
...
-}: let
+}:
+let
cfg = config.hm.soft.media;
-in {
+in
+{
options.hm.soft.media.enable = lib.mkEnableOption "media cli tools";
config = lib.mkIf cfg.enable {
+ programs.zathura = {
+ enable = true;
+ package = pkgs.zathura.override {
+ plugins = with pkgs.zathuraPkgs; [
+ zathura_pdf_mupdf
+ zathura_cb
+ ];
+ };
+ options = {
+ selection-clipboard = "clipboard";
+
+ incremental-search = true;
+ highlight-active-color = "#fabd2f";
+ highlight-color = "#fe8019";
+
+ recolor = true;
+ recolor-keephue = true;
+
+ default-bg = "#282828";
+ default-fg = "#ebdbb2";
+ recolor-lightcolor = "#282828";
+ recolor-darkcolor = "#ebdbb2";
+
+ render-loading = false;
+ scroll-step = 50;
+ statusbar-h-padding = 10;
+ statusbar-v-padding = 10;
+ };
+
+ mappings = {
+ "u" = "scroll half-up";
+ "d" = "scroll half-down";
+ "D" = "toggle_page_mode";
+ "r" = "reload";
+ "R" = "rotate";
+ "K" = "zoom in";
+ "J" = "zoom out";
+ "i" = "recolor";
+ };
+ };
home.packages = with pkgs; [
+ nsxiv
pinta
ffmpeg
imagemagick
+ exiftool
+ mediainfo
+ sox
syncplay-nogui
];
};
diff --git a/hm/soft/obs.nix b/hm/soft/obs.nix
index 29c82a4..8d968e4 100644
--- a/hm/soft/obs.nix
+++ b/hm/soft/obs.nix
@@ -2,10 +2,13 @@
config,
lib,
pkgs,
+ osConfig,
...
}:
let
cfg = config.hm.soft.obs;
+
+ obsPass = osConfig.sops.placeholdder."obs/websocket_password" or null;
in
{
options.hm.soft.obs.enable = lib.mkEnableOption "enables obs video recording and clipping";
@@ -16,9 +19,11 @@ in
obs-pipewire-audio-capture
];
};
+
home.packages = [ pkgs.obs-cmd ];
- home.sessionVariables = {
- OBS_WEBSOCKET_URL = "obsws://localhost:4455/3uE66N4j0bTv2W1M";
+
+ home.sessionVariables = lib.mkIf (obsPass != null) {
+ OBS_WEBSOCKET_URL = obsPass;
};
};
}
diff --git a/hm/soft/soft.nix b/hm/soft/soft.nix
index 4372d3f..0d74669 100644
--- a/hm/soft/soft.nix
+++ b/hm/soft/soft.nix
@@ -2,7 +2,6 @@
{
imports = [
./browser.nix
- ./easyeffects.nix
./email.nix
./kdenlive.nix
./mangohud.nix
diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix
index 9ea9552..f825848 100644
--- a/hosts/desktop/configuration.nix
+++ b/hosts/desktop/configuration.nix
@@ -3,7 +3,8 @@
inputs,
username,
...
-}: {
+}:
+{
system.stateVersion = "25.05";
imports = [
@@ -56,6 +57,8 @@
users.enable = true;
};
srv = {
+ sops.enable = true;
+ syncthing.enable = true;
files = {
thunar.enable = true;
krusader.enable = true;
@@ -81,18 +84,9 @@
};
};
- services.zerotierone.enable = true;
-
- xdg.terminal-exec = {
- enable = true;
- settings = {
- default = ["foot.desktop"];
- };
- };
-
boot = {
- kernelParams = ["video=DP-1:2560x1440@240"];
- kernelModules = ["nct6687"];
+ kernelParams = [ "video=DP-1:2560x1440@240" ];
+ kernelModules = [ "nct6687" ];
extraModulePackages = [
config.boot.kernelPackages.nct6687d
];
diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix
index 5dfb31e..5eb1635 100644
--- a/hosts/desktop/home.nix
+++ b/hosts/desktop/home.nix
@@ -2,8 +2,9 @@
username,
pkgs,
...
-}: {
- imports = [../../hm/default.nix];
+}:
+{
+ imports = [ ../../hm/default.nix ];
home = {
username = "${username}";
@@ -22,6 +23,7 @@
enable = true;
mediaPath = /storage;
};
+ xdg-mime.enable = true;
};
editors.nixvim.enable = true;
env = {
@@ -71,8 +73,8 @@
xdg.mimeApps = {
enable = true;
defaultApplications = {
- "x-scheme-handler/terminal" = ["foot.desktop"];
- "inode/directory" = ["thunar.desktop"];
+ "x-scheme-handler/terminal" = [ "foot.desktop" ];
+ "inode/directory" = [ "thunar.desktop" ];
};
};
diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix
index 9ac8c88..f0ff771 100644
--- a/os/srv/gaming.nix
+++ b/os/srv/gaming.nix
@@ -27,6 +27,8 @@ in
};
environment.systemPackages = with pkgs; [
+ openttd-jgrpp
+ ludusavi
protonplus
openmw
heroic
diff --git a/os/srv/sops.nix b/os/srv/sops.nix
new file mode 100644
index 0000000..85a5123
--- /dev/null
+++ b/os/srv/sops.nix
@@ -0,0 +1,28 @@
+{
+ config,
+ lib,
+ username,
+ ...
+}:
+let
+ cfg = config.os.srv.sops;
+in
+{
+ options.os.srv.sops.enable = lib.mkEnableOption "enables sops-nix secret storing";
+ config = lib.mkIf cfg.enable {
+ sops = {
+ defaultSopsFile = ../../secrets.yaml;
+ defaultSopsFormat = "yaml";
+ age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+
+ secrets = {
+ "syncthing/gui_password" = {
+ owner = config.services.syncthing.user;
+ };
+ "obs/websocket_password" = {
+ owner = username;
+ };
+ };
+ };
+ };
+}
diff --git a/os/srv/srv.nix b/os/srv/srv.nix
index 6109361..0e2a4f7 100644
--- a/os/srv/srv.nix
+++ b/os/srv/srv.nix
@@ -1,6 +1,8 @@
{ ... }:
{
imports = [
+ ./syncthing.nix
+ ./sops.nix
./bluetooth.nix
./compat.nix
./docker.nix
diff --git a/os/srv/syncthing.nix b/os/srv/syncthing.nix
new file mode 100644
index 0000000..1531c04
--- /dev/null
+++ b/os/srv/syncthing.nix
@@ -0,0 +1,54 @@
+{
+ config,
+ lib,
+ username,
+ ...
+}:
+let
+ cfg = config.os.srv.syncthing;
+in
+{
+ options.os.srv.syncthing.enable = lib.mkEnableOption "enables syncthing syncing";
+ config = lib.mkIf cfg.enable {
+ services.syncthing = {
+ enable = true;
+ user = "${username}";
+ dataDir = "/home/${username}/.local/share/syncthing";
+ configDir = "/home/${username}/.config/syncthing";
+ guiPasswordFile = config.sops.secrets."syncthing/gui_password".path;
+
+ settings = {
+ devices = {
+ "desktop" = {
+ id = "YGMWGOB-LTJUDM7-CY25MAF-NPE7J4J-KYRNPB5-ZHD5DBI-VNRAXI6-LIP2DQP";
+ };
+ "laptop" = {
+ id = "";
+ };
+ "thinkpad" = {
+ id = "";
+ };
+ };
+ folders = {
+ "game-saves" = {
+ path = "/home/${username}/.saves";
+ id = "shared-saves-v1";
+ devices = [
+ "desktop"
+ "laptop"
+ "thinkpad"
+ ];
+
+ versioning = {
+ type = "staggered";
+ params = {
+ cleanInterval = "3600";
+ maxAge = "2592000";
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/secrets.yaml b/secrets.yaml
new file mode 100644
index 0000000..da1b6a6
--- /dev/null
+++ b/secrets.yaml
@@ -0,0 +1,40 @@
+syncthing:
+ gui_password: ENC[AES256_GCM,data:9sivtxELQRCD+q1OFMmL9OwMnem22VxFRN9twVdnMlTMmtxplO/KmezuLt+SUpfhDne0i9cTliiqCm16bQb3fFQWplJIyQDRgIGr1Y7r4boGtvJ95oSIW3bmwJW+IkYyYysKbcNrTGfdWVS6lJWYfenhonNfWESxqo1CW81BxBY=,iv:tYxoE/pxBBFrbiuc3ZVJe9rZfnVo9QSJOtl1NlPHyNg=,tag:eUwgow5ZkkuMoXrUAZughg==,type:str]
+obs:
+ websocket_password: ENC[AES256_GCM,data:eska/qJsOAiQpq3uHNIIHKobsdN2rnkfLznOMkVHWEmOiynBM5tl,iv:y6cwkZUPiBU671QFq/xEKQATWI9BYAvNRbgiGTF/550=,tag:b5G4PNFl1bmVmHjC7cwvHw==,type:str]
+sops:
+ age:
+ - recipient: age1s39d4mdrjhkf8cy8eea02p836r7s875fj8f7w3z4ld2stmaac49qd075ww
+ enc: |
+ -----BEGIN AGE ENCRYPTED FILE-----
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDU1dLa2I0TGxZU2tCbC84
+ enZKaU1JSEV6K0srZURUWU8wc2RiME1XcEVzCldYeDJ6dFg5b1R3SzlQa3M2ZkRT
+ azZZTjBNWW5wMzliQWVNMTFVbk1ZTTQKLS0tIEJFS1BSUTlHYWR1OVZ5TTZqT3pZ
+ SDlaeG9YRWw4UVRLeWh1ZzlnUlBVc3cKeXyBZ7UA+6iHiXElOdht0obhY8REdxc5
+ RX0HCXbn+wCEopmL9q/wRb4ClY2V1fExWGlwPz9teas1C5w6dQyYfQ==
+ -----END AGE ENCRYPTED FILE-----
+ lastmodified: "2026-02-08T16:52:28Z"
+ mac: ENC[AES256_GCM,data:g+wLh8XKiQkXQ+gv544j7avOduUpdtcGqxMPcHAFMKyoL/2T8NqZftzjuGkJ5b9kSmDCs/LsQDeFmbn/dbhxL3TSf/VhYB/oL6YkvtEglYuYp1h33OWnT25PUq1xch/7xmFHGdy8y0vQM6rrUxBKoHiCpZJmI1hi9QgS/2IMX5U=,iv:g50gGCHNgsIrkMH392ODYaDmvUBqtnxOlfrT0Ft6Vwo=,tag:1oW5vXAQkwYp70mtDtLuZA==,type:str]
+ pgp:
+ - created_at: "2026-02-08T16:13:33Z"
+ enc: |-
+ -----BEGIN PGP MESSAGE-----
+
+ hQIMA/mKtLqB941HAQ/7BuEq3LeupBN6bNHOOdKszlEj0q/UoZULvSDAABF7EwVL
+ WCqqPe4N61HMXsAk41KiRRxqs9dc9KFtdRq89QZ/zZrN+cdk5GAfQikQNNdrGnfz
+ yZV7Rs/gZjeD0E73PH/YEucDXvDypcIHtgfydb9zxOhx9LLIJYxOSRL+QrftvwER
+ ah6ZIAPQ/O9TpqWPUoQlsKNu31WcN0iJK9a8MwCfGAsIym6E8xjyydtKHoJm8sNi
+ aMjJIttwoqJPXKinezp2pdb5lnI3EfP9uHFnHrhRBfP5Ex8F06ZjQ1wg08PzzYms
+ 9SGlMNdbhJXIPwty9/z3xrovJXTTOczty5wbTOTGaP6gdA6vNgmGXxG6ko19wyQf
+ R3IzPcmLIvi/KU4kpxP3h1ImnSo2QTWsTXJbCx+A73HB+Q6ygGDceRazeO8lXlxt
+ bucbEd7mRNhnXiyxMFVhVVFRN/WYcBnx7O36aRdOvo33CiWaXEqaGgYFagNU4OBI
+ 1Pj0WwG32ZIPyV4X2SsUdxPo9fHowSDRX7LrvIF63WXyFWu3hp/xVU/ZMaDzFkMa
+ nXh+QrcUbxomQ8MSJbi1Te3QgAoIabX5Efswn+eWi/HxNhR75y7ztHrnGrBJTMu5
+ wunlhoGKp6/vVgWvxDjODZ/qZJ4P2xpnke3mf/3a8UUiR6gT+bXCXJ5LGd0D+VzS
+ XgEOQslT/HU2M+XMBJcJo47l/C1tIhaDnLfbhuKWUsxh1b3YlVKvHLd0nvVmXXL3
+ 8yDk6J1f7FRl4Orj+Z077975EpDzMtAgq2u/x0cA4IgfZ2qDh3eEjJzoHzGgjq4=
+ =mJgc
+ -----END PGP MESSAGE-----
+ fp: EF69F2FB25C8B5A66918EA91A38ACEAB9656CD94
+ unencrypted_suffix: _unencrypted
+ version: 3.11.0