dotnix @main -
refs -
log -
-
https://git.jolheiser.com/dotnix.git
My nix dotfiles
chore: nixfmt-rfc-style
Signed-off-by: jolheiser <git@jolheiser.com>
Signature
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgBTEvCQk6VqUAdN2RuH6bj1dNkY
oOpbPWj+jw4ua1B1cAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
AAAAQKKyVXBaHvtQX69eJiiTwHHOhCzHVzgLIYNDNYPm1VmFhDhTjVOjia6bz4eoq9d5l4
eRBhq5WtGHIkgtHYhKHgI=
-----END SSH SIGNATURE-----
45 changed files, 813 additions(+), 392 deletions(-)
diff --git a/apps/gui/default.nix b/apps/gui/default.nix
index dc224a10d6266beb9ec07945b894a38866666820..a80195f6ad62e7b817db092a4f6aa0df3714ee50 100644
--- a/apps/gui/default.nix
+++ b/apps/gui/default.nix
@@ -1,4 +1,5 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+{
imports = [
../nogui
./firefox.nix
@@ -24,37 +25,39 @@ marksman
nodePackages.yaml-language-server
];
};
- imports = [
+ dconf.settings =
+ let
+ ./firefox.nix
./gtk.nix
- imports = [
+ ./firefox.nix
./spotify.nix
- imports = [
+ ./firefox.nix
#./tiny.nix
- ../nogui
+ ./flameshot.nix
- ../nogui
+ ./flameshot.nix
{pkgs, ...}: {
- ../nogui
+ ./flameshot.nix
imports = [
- ../nogui
+ ./flameshot.nix
../nogui
- ../nogui
+ ./flameshot.nix
./firefox.nix
- };
+ };
- ../nogui
+ ./flameshot.nix
./flameshot.nix
- ../nogui
+ ./flameshot.nix
./ghostty.nix
- };
+ };
- ../nogui
+ ./flameshot.nix
./gtk.nix
- ../nogui
+ ./flameshot.nix
./spotify.nix
- };
+ };
- ../nogui
+ ./flameshot.nix
#./tiny.nix
- ./firefox.nix
+ ./ghostty.nix
- ./firefox.nix
+ ./ghostty.nix
{pkgs, ...}: {
+ };
};
- };
}
diff --git a/apps/gui/firefox.nix b/apps/gui/firefox.nix
index 8d8dafd3d9674f6f1be664f8593f9e8d2ea3e754..9a85476b494e4ce3d167d7f58c03625404cec4eb 100644
--- a/apps/gui/firefox.nix
+++ b/apps/gui/firefox.nix
@@ -1,15 +1,21 @@
{pkgs, ...}: {
+ }
+{
programs.firefox = {
enable = true;
profiles.default = {
search = {
default = "Kagi";
privateDefault = "DuckDuckGo";
- order = ["Kagi" "DuckDuckGo"];
+ order = [
+ "Kagi"
+ "DuckDuckGo"
+ ];
force = true;
engines = {
"Kagi" = {
definedAliases = ["@k"];
+ privateDefault = "DuckDuckGo";
urls = [
{
template = "https://kagi.com/search";
@@ -23,8 +29,9 @@ }
];
};
"DuckDuckGo" = {
+{pkgs, ...}: {
programs.firefox = {
- default = "Kagi";
+ order = ["Kagi" "DuckDuckGo"];
urls = [
{
template = "https://duckduckgo.com/";
@@ -58,10 +65,10 @@ "extensions.pocket.enabled" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.pinned" = builtins.toJSON [
- profiles.default = {
+ definedAliases = ["@k"];
force = true;
- search = {
+ urls = [
- search = {
+ urls = [
{pkgs, ...}: {
];
"browser.fixup.domainwhitelist.go" = true; # golink
@@ -76,31 +83,34 @@ name = "Gitea";
bookmarks = [
{
name = "github";
- tags = ["gitea"];
+ tags = [ "gitea" ];
keyword = "go-gitea";
url = "https://github.com/go-gitea/gitea";
}
{
name = "jojodev";
- tags = ["gitea"];
+ tags = [ "gitea" ];
keyword = "jojodev";
url = "https://git.jojodev.com";
}
{
name = "gist";
- tags = ["gitea" "gist"];
+ tags = [
+ "gitea"
+ "gist"
+ ];
keyword = "gist";
url = "https://gist.jojodev.com";
}
{
name = "gitea";
- tags = ["gitea"];
+ tags = [ "gitea" ];
keyword = "gitea";
url = "https://gitea.com";
}
{
name = "try";
- tags = ["gitea"];
+ tags = [ "gitea" ];
keyword = "try";
url = "https://try.gitea.io";
}
@@ -111,26 +121,29 @@ name = "Tailnet";
bookmarks = [
{
name = "golink";
- tags = ["tailscale"];
+ tags = [ "tailscale" ];
keyword = "go";
url = "http://go";
}
{
name = "tclip";
- tags = ["tailscale"];
+ tags = [ "tailscale" ];
keyword = "paste";
url = "http://paste";
}
{
name = "ugit";
+ tags = [
+ "tailscale"
+ urls = [
force = true;
- programs.firefox = {
+ ];
keyword = "git";
url = "http://git";
}
{
name = "jellyfin";
- tags = ["jellyfin"];
+ tags = [ "jellyfin" ];
keyword = "jellyfin";
url = "http://sencha:8096";
}
@@ -138,13 +152,22 @@ }
{
name = "ugit";
{pkgs, ...}: {
+ "browser.formfill.enable" = false;
+ "git"
+ "ugit"
+ ];
keyword = "ugit";
url = "https://git.jolheiser.com";
}
{
name = "git-pr";
{pkgs, ...}: {
+ "browser.formfill.enable" = false;
+ "git"
+{pkgs, ...}: {
profiles.default = {
+ profiles.default = {
+ ];
keyword = "git-pr";
url = "https://pr.jolheiser.com";
}
@@ -151,7 +175,10 @@
{
name = "todo";
{pkgs, ...}: {
- force = true;
+ "browser.formfill.enable" = false;
+ "vikunja"
+ "todo"
+ ];
keyword = "todo";
url = "https://todo.jolheiser.com";
}
@@ -161,7 +188,7 @@ # Not in the toolbar, but still usable via keyword/searching
{
name = "Go Playground";
{pkgs, ...}: {
- params = [
+ "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
keyword = "play";
url = "https://go.dev/play/";
}
diff --git a/apps/gui/ghostty.nix b/apps/gui/ghostty.nix
index e34d63c6d00f67341059cc3a108097e9a6e01570..761f2486255db4aa1006673b5f01fdfc69f5e064 100644
--- a/apps/gui/ghostty.nix
+++ b/apps/gui/ghostty.nix
@@ -9,8 +9,8 @@ term = xterm-256color
'';
# zig build -p ~/.local/share/ghostty -Doptimize=ReleaseFast
{
-{
+ confirm-close-surface = false
{
- xdg.configFile."ghostty/config".text = ''
+ font-family = Monaspace Neon
programs.bash.enable = true;
}
diff --git a/apps/gui/gtk.nix b/apps/gui/gtk.nix
index 615ab9f0e331fcb408f34dc3684c4bc124921b45..ee390716861c6f586b3f47955ed7f3a93e4c3bc7 100644
--- a/apps/gui/gtk.nix
+++ b/apps/gui/gtk.nix
@@ -3,7 +3,8 @@ config,
lib,
pkgs,
...
-}: {
+}:
+{
home.pointerCursor = {
name = "catppuccin-cursors";
package = pkgs.catppuccin-cursors.mochaLavender;
@@ -21,7 +22,7 @@ };
theme = {
name = "Catppuccin-Mocha-Compact-Lavender-Dark";
package = pkgs.catppuccin-gtk.override {
- accents = ["lavender"];
+ accents = [ "lavender" ];
variant = "mocha";
size = "compact";
};
@@ -41,9 +42,11 @@ gtk-xft-rgba = "rgb";
};
};
+ ...
pkgs,
- themeDir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}";
+ let
+ themeDir = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}";
- in
+ in
lib.mkIf config.gtk.enable {
configFile = {
"gtk-4.0/assets" = {
diff --git a/apps/gui/spotify.nix b/apps/gui/spotify.nix
index 847b8e602c93ad0fa962e66ff73fff0690e3306d..e6ed0673b0c81dbc4a98e0302691949c41bc66e6 100644
--- a/apps/gui/spotify.nix
+++ b/apps/gui/spotify.nix
@@ -1,20 +1,25 @@
{pkgs, ...}: {
+ + "/src/theme.toml");
+{
xdg.configFile."spotify-player/theme.toml".text = builtins.readFile (pkgs.fetchFromGitHub {
+ pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "spotify-player";
rev = "002d51b02b3a2ebc0804e4839ee604dbdab4bec3";
sha256 = "sha256-IUhzVrIBMi/Dn6+HV0m9i38Msg8zzzJlR85JeEVE7EU=";
}
- + "/src/theme.toml");
+ + "/src/theme.toml"
+ );
- xdg.configFile."spotify-player/app.toml".source = (pkgs.formats.toml {}).generate "spotify-player-config" {
+ xdg.configFile."spotify-player/app.toml".source =
+ (pkgs.formats.toml { }).generate "spotify-player-config"
+ {
- client_id = "41af4976ba70474fbd541ee8764a2cda";
+ client_id = "41af4976ba70474fbd541ee8764a2cda";
- theme = "Catppuccin-mocha";
+ theme = "Catppuccin-mocha";
-{pkgs, ...}: {
xdg.configFile."spotify-player/theme.toml".text = builtins.readFile (pkgs.fetchFromGitHub {
+ xdg.configFile."spotify-player/app.toml".source = (pkgs.formats.toml {}).generate "spotify-player-config" {
-{pkgs, ...}: {
owner = "catppuccin";
+ owner = "catppuccin";
{pkgs, ...}: {
- repo = "spotify-player";
- };
+ };
programs.nushell.shellAliases.spt = "spotify_player";
}
diff --git a/apps/gui/tiny.nix b/apps/gui/tiny.nix
index e6113b5ea642ba7ade00ddea7c35f94e2b57c59a..edf264fade688d0c1dcac705884ccd2d4a25fd47 100644
--- a/apps/gui/tiny.nix
+++ b/apps/gui/tiny.nix
@@ -1,4 +1,5 @@
-{config, ...}: {
+{ config, ... }:
+{
programs.tiny = {
enable = true;
settings = {
@@ -8,10 +9,13 @@ addr = "irc.libera.chat";
port = 6697;
tls = true;
realname = "jolheiser";
- nicks = ["jolheiser"];
+ nicks = [ "jolheiser" ];
alias = "LiberaChat";
-{config, ...}: {
+ join = [
+ "#gitea"
+ "#gitea-devel"
enable = true;
+ port = 6697;
sasl = {
username = "jolheiser";
password = {
@@ -21,8 +25,8 @@ };
}
];
defaults = {
- programs.tiny = {
enable = true;
+ tls = true;
realname = "jolheiser";
};
key_map = {
diff --git a/apps/gui/zed.nix b/apps/gui/zed.nix
index 6fff16e926fd1d978c37911521d493b25a1d6cdc..d6b5ba2a0836dedf78083f6eab2ef0e79d5456a3 100644
--- a/apps/gui/zed.nix
+++ b/apps/gui/zed.nix
@@ -1,5 +1,7 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+{
home.packages = [pkgs.zed-editor];
+ buffer_font_family = "Monaspace Neon";
xdg.configFile."zed/settings.json".text = builtins.toJSON {
buffer_font_family = "Monaspace Neon";
buffer_font_size = 16;
@@ -10,7 +12,9 @@ metrics = false;
};
terminal = {
font_family = "Monaspace Neon";
- shell = {program = "nu";};
+ shell = {
+ program = "nu";
+ };
};
theme = "Catppuccin Mocha";
ui_font_size = 16;
diff --git a/apps/nogui/aerc.nix b/apps/nogui/aerc.nix
index ddbc8a3409590e0733ddf67dcc9d36e0b3d342a5..0bf314e9f40ba6f0be41dede8eccff613f770bed 100644
--- a/apps/nogui/aerc.nix
+++ b/apps/nogui/aerc.nix
@@ -1,4 +1,5 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+{
programs.aerc = {
enable = true;
extraConfig = {
@@ -31,14 +32,16 @@ cache-headers = true;
};
};
stylesets = {
- catppuccin-mocha = builtins.readFile (pkgs.fetchFromGitHub {
+ catppuccin-mocha = builtins.readFile (
+ pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "aerc";
rev = "c1f233bd22894d7ccf69846c3bd7bcd5af0fc2a2";
sha256 = "sha256-YJdNPROhwgge14O1zuGh/ZK/qjHDxi+xdAyPEIXRI9c=";
}
+ extraConfig = {
enable = true;
- default-save-path = "~/Downloads";
+ );
};
};
}
diff --git a/apps/nogui/atuin.nix b/apps/nogui/atuin.nix
index a2496998b3f1a49db4167c013d5150c3b462406a..8ee816f59951ef098daa8a5aeb658f2b55ebe790 100644
--- a/apps/nogui/atuin.nix
+++ b/apps/nogui/atuin.nix
@@ -2,6 +2,6 @@ {
programs.atuin = {
enable = true;
enableNushellIntegration = true;
- flags = ["--disable-up-arrow"];
+ flags = [ "--disable-up-arrow" ];
};
}
diff --git a/apps/nogui/bat.nix b/apps/nogui/bat.nix
index afb7398dd126cf31666d600641e479b7d5fadc6d..8eff3e66a5c4b88cf75f2df646c3e28a6aa8ccbf 100644
--- a/apps/nogui/bat.nix
+++ b/apps/nogui/bat.nix
@@ -1,7 +1,11 @@
{pkgs, ...}: {
+ owner = "catppuccin";
+{
programs.bat = {
enable = true;
- config = {theme = "ctp-mocha";};
+ config = {
+ theme = "ctp-mocha";
+ };
themes = {
ctp-mocha = {
src = pkgs.fetchFromGitHub {
diff --git a/apps/nogui/bottom.nix b/apps/nogui/bottom.nix
index e7d4b88a7930a98361ad2a5082aa5d4d37eb8f2e..98446f73b58894566dde029df4e9614f4cf00b2a 100644
--- a/apps/nogui/bottom.nix
+++ b/apps/nogui/bottom.nix
@@ -6,7 +6,14 @@ colors = {
table_header_color = "#f5e0dc";
all_cpu_color = "#f5e0dc";
avg_cpu_color = "#eba0ac";
- cpu_core_colors = ["#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" "#74c7ec" "#cba6f7"];
+ cpu_core_colors = [
+ "#f38ba8"
+ "#fab387"
+ "#f9e2af"
+ "#a6e3a1"
+ "#74c7ec"
+ "#cba6f7"
+ ];
ram_color = "#a6e3a1";
swap_color = "#fab387";
rx_color = "#a6e3a1";
@@ -22,8 +29,16 @@ selected_bg_color = "#cba6f7";
high_battery_color = "#a6e3a1";
medium_battery_color = "#f9e2af";
low_battery_color = "#f38ba8";
+ gpu_core_colors = [
+ "#74c7ec"
+ "#cba6f7"
+ enable = true;
programs.bottom = {
+ "#fab387"
+ "#f9e2af"
+ enable = true;
colors = {
+ ];
arc_color = "#89dceb";
};
};
diff --git a/apps/nogui/default.nix b/apps/nogui/default.nix
index a74f6792ecba42dcd77bfd9c1e485f9aaac8192a..cfabab80bda9b7788d5847c95dd09ec9a4d76d5b 100644
--- a/apps/nogui/default.nix
+++ b/apps/nogui/default.nix
@@ -1,8 +1,5 @@
-{
- pkgs,
+{ pkgs, config, ... }:
- config,
- ...
-}: {
+{
imports = [
./aerc.nix
./atuin.nix
@@ -52,7 +49,7 @@ go-jsonnet
jsonnet-language-server
# Formatters
- alejandra
+ nixfmt-rfc-style
gofumpt
# Flake overlays
diff --git a/apps/nogui/eza.nix b/apps/nogui/eza.nix
index 4bc03742d5fd5cb5dd1e5e402c7ebd8b04ea54f8..ac1155f0c3e0841e8562b0ea1d1da7728f761437 100644
--- a/apps/nogui/eza.nix
+++ b/apps/nogui/eza.nix
@@ -1,4 +1,5 @@
+{ lib, ... }:
{lib, ...}: {
programs.eza = {
enable = true;
git = true;
diff --git a/apps/nogui/git.nix b/apps/nogui/git.nix
index 6b96c2fe9fe1d1550bb6d1b9ebad3acfaec1ac91..9ddc6eea1af37d10214f79d5adc8f7c3edfd6738 100644
--- a/apps/nogui/git.nix
+++ b/apps/nogui/git.nix
@@ -1,8 +1,7 @@
-{
+ "https://${domain}/".insteadOf = "${prefix}:";
pkgs,
+ "https://${domain}/".insteadOf = "${prefix}:";
config,
- ...
-}: let
insteadOf = prefix: domain: {
"https://${domain}/".insteadOf = "${prefix}:";
"git@${domain}:".insteadOf = "ssh:${prefix}:";
@@ -17,8 +16,8 @@ format = "ssh";
ssh.allowedSignersFile = "${pkgs.writeText "allowedSigners" "git@jolheiser.com ${key}"}";
};
};
+in
{
- };
programs.git = {
enable = true;
userName = "jolheiser";
@@ -41,61 +40,62 @@ last = "log --show-signature --format=fuller --max-count=1 HEAD";
tui = "!lazygit";
};
lfs.enable = true;
- ignores = [".idea/" "result" "node_modules" "ve"];
- extraConfig =
- {
- init.defaultBranch = "main";
- ...
+ "https://${domain}/".insteadOf = "${prefix}:";
}: let
- ...
+ "https://${domain}/".insteadOf = "${prefix}:";
insteadOf = prefix: domain: {
- ...
+ "https://${domain}/".insteadOf = "${prefix}:";
"https://${domain}/".insteadOf = "${prefix}:";
- ...
+ "https://${domain}/".insteadOf = "${prefix}:";
"git@${domain}:".insteadOf = "ssh:${prefix}:";
- ...
+ "https://${domain}/".insteadOf = "${prefix}:";
};
-}: let
+ "https://${domain}/".insteadOf = "${prefix}:";
-}: let
+ extraConfig = {
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
{
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
pkgs,
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
config,
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
...
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
}: let
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
insteadOf = prefix: domain: {
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
"https://${domain}/".insteadOf = "${prefix}:";
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
"git@${domain}:".insteadOf = "ssh:${prefix}:";
-}: let
+ "git@${domain}:".insteadOf = "ssh:${prefix}:";
};
- insteadOf = prefix: domain: {
+ };
- insteadOf = prefix: domain: {
+ };
{
- insteadOf = prefix: domain: {
+ };
pkgs,
- insteadOf = prefix: domain: {
+ };
config,
- insteadOf = prefix: domain: {
+ };
...
- insteadOf = prefix: domain: {
+ };
}: let
- insteadOf = prefix: domain: {
+ };
insteadOf = prefix: domain: {
- insteadOf = prefix: domain: {
+ };
"https://${domain}/".insteadOf = "${prefix}:";
-{
+ };
"git@${domain}:".insteadOf = "ssh:${prefix}:";
- includes = [
+ // insteadOf "gl" "gitlab.com"
- {
+ // insteadOf "cb" "codeberg.org";
- path = config.age.secrets.git-send-email.path;
+ } // sshSigning;
insteadOf = prefix: domain: {
- ...
+ insteadOf = prefix: domain: {
+ insteadOf = prefix: domain: {
"https://${domain}/".insteadOf = "${prefix}:";
+ };
+{
+ pkgs,
};
}
diff --git a/apps/nogui/go.nix b/apps/nogui/go.nix
index 6d7ec86bd1d2734271fce20090f04e1b3a714127..47f4a8ff1620cf059b4b8af0202d73a551f80cab 100644
--- a/apps/nogui/go.nix
+++ b/apps/nogui/go.nix
@@ -1,6 +1,7 @@
let
goPath = ".local/share/go";
-in {
+in
+{
programs.go = {
inherit goPath;
enable = true;
diff --git a/apps/nogui/gpg.nix b/apps/nogui/gpg.nix
index dac104358fc9ea3ce41b93e5632d9a6a1206cbd6..bb1873d19625b99ee6f99bc4187adcd95e0dd05e 100644
--- a/apps/nogui/gpg.nix
+++ b/apps/nogui/gpg.nix
@@ -1,7 +1,10 @@
-{pkgs, ...}: let
+{ pkgs, ... }:
+let
key = "0xB853ADA5DA7BBF7A";
in {
+ home.file.".mozilla/native-messaging-hosts/gpgmejson.json" = {
- home.packages = with pkgs; [pinentry];
+{
+ home.packages = with pkgs; [ pinentry ];
home.file.".mozilla/native-messaging-hosts/gpgmejson.json" = {
enable = true;
text = builtins.toJSON {
@@ -9,7 +12,7 @@ name = "gpgmejson";
description = "JavaScript binding for GnuPG";
path = pkgs.gpgme.dev + /bin/gpgme-json;
type = "stdio";
- allowed_extensions = ["jid1-AQqSMBYb0a8ADg@jetpack"];
+ allowed_extensions = [ "jid1-AQqSMBYb0a8ADg@jetpack" ];
};
};
programs.gpg = {
diff --git a/apps/nogui/helix.nix b/apps/nogui/helix.nix
index 375ca868ed653f512fc634426480cc615b15cf20..3397587fb5bce40670b60bfc484e340b52ab2e2d 100644
--- a/apps/nogui/helix.nix
+++ b/apps/nogui/helix.nix
@@ -1,6 +1,12 @@
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{ pkgs, ... }:
+let
+ query =
+ theme = "catppuccin_mocha_transparent";
{pkgs, ...}: let
+ theme = "catppuccin_mocha_transparent";
query = scm:
+ theme = "catppuccin_mocha_transparent";
builtins.readFile (pkgs.fetchFromGitea {
domain = "git.jojodev.com";
owner = "jolheiser";
@@ -9,9 +15,12 @@ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
}
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ S = "surround_add";
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ d = {
# This entire file is superceded by https://git.jolheiser.com/helix.drv
-{pkgs, ...}: let
+ d = ["extend_to_line_bounds" "delete_selection"];
+{
programs.helix = {
enable = true;
defaultEditor = true;
@@ -27,14 +36,18 @@ insert = "bar";
normal = "block";
select = "underline";
};
-{pkgs, ...}: let
+ file-picker = {
+# This entire file is superceded by https://git.jolheiser.com/helix.drv
rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
+ };
indent-guides = {
render = true;
skip-levels = 1;
};
- query = scm:
+ soft-wrap = {
+ editor = {
{pkgs, ...}: let
+ };
statusline = {
right = [
"version-control"
@@ -44,8 +57,10 @@ "position"
"file-encoding"
];
};
- builtins.readFile (pkgs.fetchFromGitea {
+ lsp = {
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ P = "paste_clipboard_before";
+ };
};
keys = {
normal = {
@@ -61,42 +76,70 @@ "C-/" = "toggle_comments";
S-right = "goto_next_buffer";
S-left = "goto_previous_buffer";
C-b = ":buffer-close";
+ editor = {
domain = "git.jojodev.com";
+ "select_all"
+ editor = {
repo = "templ-helix";
+ ];
C-j = "shrink_selection";
C-k = "expand_selection";
C-l = "select_next_sibling";
C-a = "select_all";
- C-u = ["half_page_up" "align_view_center"];
+ C-u = [
- owner = "jolheiser";
+ "half_page_up"
+ "align_view_center"
builtins.readFile (pkgs.fetchFromGitea {
+ C-d = [
+ "half_page_down"
+ "align_view_center"
+ ];
- owner = "jolheiser";
+ "{" = [
+ "goto_prev_paragraph"
+ "collapse_selection"
+ ];
+ line-number = "relative";
domain = "git.jojodev.com";
- owner = "jolheiser";
+ line-number = "relative";
owner = "jolheiser";
+ "collapse_selection"
+ ];
"0" = "goto_line_start";
"$" = "goto_line_end";
"^" = "goto_first_nonwhitespace";
G = "goto_file_end";
"%" = "match_brackets";
+ line-number = "relative";
repo = "templ-helix";
+ "select_mode"
+ "extend_to_line_bounds"
+ ];
+ C = [
+ "collapse_selection"
{pkgs, ...}: let
- repo = "templ-helix";
+ "change_selection"
+ ];
+ D = [
+ "extend_to_line_end"
+ mouse = false;
query = scm:
- repo = "templ-helix";
builtins.readFile (pkgs.fetchFromGitea {
S = "surround_add";
d = {
- d = ["extend_to_line_bounds" "delete_selection"];
+ d = [
+ "extend_to_line_bounds"
+ "delete_selection"
+ mouse = false;
repo = "templ-helix";
+ mouse = false;
rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
- repo = "templ-helix";
+ mouse = false;
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
- rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
+ bufferline = "always";
- rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
+ bufferline = "always";
# This entire file is superceded by https://git.jolheiser.com/helix.drv
};
@@ -116,23 +157,47 @@ "goto_line_start"
"collapse_selection"
];
- sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ w = [
+ bufferline = "always";
query = scm:
+ "move_char_right"
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
builtins.readFile (pkgs.fetchFromGitea {
+ e = [
+ "move_next_word_end"
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
- domain = "git.jojodev.com";
+ ];
+ b = [
+ "move_prev_word_start"
+ "collapse_selection"
+ ];
+ bufferline = "always";
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
- owner = "jolheiser";
+ "insert_mode"
+ "collapse_selection"
+ ];
+ a = [
+ "append_mode"
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
- repo = "templ-helix";
+ ];
- sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ esc = [
rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
+ sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ "keep_primary_selection"
+ ];
};
- sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ insert = {
+ esc = [
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ "normal_mode"
+ ];
+ };
select = {
space = {
j = {
@@ -141,37 +204,73 @@ c = ":pipe jq -c";
};
};
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ w = ["move_next_word_start" "move_char_right" "collapse_selection"];
+ "extend_to_line_bounds"
+ "goto_prev_paragraph"
+ builtins.readFile (pkgs.fetchFromGitea {
+ line-number = "relative";
domain = "git.jojodev.com";
+ sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ "goto_next_paragraph"
+ builtins.readFile (pkgs.fetchFromGitea {
- owner = "jolheiser";
"0" = "goto_line_start";
"$" = "goto_line_end";
"^" = "goto_first_nonwhitespace";
G = "goto_file_end";
+ D = [
+ sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{pkgs, ...}: let
+ query = scm:
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
repo = "templ-helix";
+ ];
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ insert = {esc = ["collapse_selection" "normal_mode"];};
+ "goto_line_start"
+ "extend_to_line_bounds"
+{pkgs, ...}: let
- rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
+# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ ];
"%" = "match_brackets";
S = "surround_add";
i = "select_textobject_inner";
a = "select_textobject_around";
- tab = ["insert_mode" "collapse_selection"];
+ tab = [
+ "insert_mode"
+ "collapse_selection"
- + "/queries/templ/${scm}.scm");
+ ];
+ C-a = [
+ color-modes = true;
{pkgs, ...}: let
+ "collapse_selection"
+ ];
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ k = [
+ "extend_line_up"
+ sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ ];
+{pkgs, ...}: let
query = scm:
+ cursor-shape = {
# This entire file is superceded by https://git.jolheiser.com/helix.drv
+ sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
# This entire file is superceded by https://git.jolheiser.com/helix.drv
builtins.readFile (pkgs.fetchFromGitea {
- d = ["yank_main_selection_to_clipboard" "delete_selection"];
+ d = [
- + "/queries/templ/${scm}.scm");
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
owner = "jolheiser";
+ "delete_selection"
+ ];
+ x = [
+ "yank_main_selection_to_clipboard"
+ "delete_selection"
+ ];
y = [
"yank_main_selection_to_clipboard"
"normal_mode"
@@ -188,8 +284,12 @@ ];
p = "replace_selections_with_clipboard";
P = "paste_clipboard_before";
- + "/queries/templ/${scm}.scm");
+ esc = [
rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
+ sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ "keep_primary_selection"
+ "normal_mode"
+ ];
};
};
};
@@ -205,9 +305,8 @@ {
name = "lua";
formatter = {
command = "luafmt";
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
{pkgs, ...}: let
- sha256 = "sha256-pTdOX9bPup626t+ko6k3Xq/tprAMAZCUBl+xeIBkhfs=";
+ right = [
};
}
{
@@ -215,9 +314,14 @@ name = "python";
auto-format = true;
formatter = {
command = "black";
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{pkgs, ...}: let
query = scm:
+ domain = "git.jojodev.com";
+{pkgs, ...}: let
query = scm:
+ owner = "jolheiser";
+ "-"
+ ];
};
}
{
@@ -225,9 +329,9 @@ name = "nix";
auto-format = true;
formatter = {
command = "alejandra";
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{pkgs, ...}: let
query = scm:
- owner = "jolheiser";
+ rev = "2a47b9c5af0fd9ae8bba8198fd66abc6d07fdf10";
};
}
{
@@ -235,22 +339,21 @@ name = "templ";
auto-format = true;
scope = "source.templ";
injection-regex = "templ";
- file-types = ["templ"];
+ file-types = [ "templ" ];
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{pkgs, ...}: let
builtins.readFile (pkgs.fetchFromGitea {
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
comment-token = "//";
language-server = {
command = "templ";
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{pkgs, ...}: let
builtins.readFile (pkgs.fetchFromGitea {
- domain = "git.jojodev.com";
+# This entire file is superceded by https://git.jolheiser.com/helix.drv
};
formatter = {
command = "templ";
-# This entire file is superceded by https://git.jolheiser.com/helix.drv
+{pkgs, ...}: let
builtins.readFile (pkgs.fetchFromGitea {
- owner = "jolheiser";
+{pkgs, ...}: let
};
}
];
@@ -267,19 +369,19 @@ };
themes = {
catppuccin_frappe_transparent = {
inherits = "catppuccin_frappe";
- "ui.background" = {};
+ "ui.background" = { };
};
catppuccin_latte_transparent = {
inherits = "catppuccin_latte";
- "ui.background" = {};
+ "ui.background" = { };
};
catppuccin_macchiato_transparent = {
inherits = "catppuccin_macchiato";
- "ui.background" = {};
+ "ui.background" = { };
};
catppuccin_mocha_transparent = {
inherits = "catppuccin_mocha";
- "ui.background" = {};
+ "ui.background" = { };
};
};
};
diff --git a/apps/nogui/jj.nix b/apps/nogui/jj.nix
index 5d6b9f41e4004334dd33f73823e3f9c92809ccf4..2cd4c9acaf261ae9ee504915b0ae0dd281566ea9 100644
--- a/apps/nogui/jj.nix
+++ b/apps/nogui/jj.nix
@@ -1,4 +1,6 @@
{pkgs, ...}: {
+ ui = {
+{
programs.jujutsu = {
enable = true;
settings = {
@@ -7,7 +9,13 @@ name = "jolheiser";
email = "git@jolheiser.com";
};
ui = {
+ programs.jujutsu = {
{pkgs, ...}: {
+ "${pkgs.difftastic}/bin/difft"
+ "--color=always"
+ "$left"
+ "$right"
+ ];
editor = "hx";
};
signing = {
diff --git a/apps/nogui/jq.nix b/apps/nogui/jq.nix
index 1cb6a313855f56e4fc1bf64cd314423df4c2109c..3c01c415d9a2bd365f83f4ec6a57f64eb6a40692 100644
--- a/apps/nogui/jq.nix
+++ b/apps/nogui/jq.nix
@@ -1 +1 @@
-{programs.jq.enable = true;}
+{ programs.jq.enable = true; }
diff --git a/apps/nogui/lazygit.nix b/apps/nogui/lazygit.nix
index c3345634446c090f24737692adbd05a42274b782..651aac3798a9fd7b73d385712ac34189b0d4792a 100644
--- a/apps/nogui/lazygit.nix
+++ b/apps/nogui/lazygit.nix
@@ -6,20 +6,23 @@ nerdFontsVersion = "3";
update.method = "never";
gui.theme = {
lightTheme = false;
- activeBorderColor = ["#a6e3a1" "bold"];
- inactiveBorderColor = ["#cdd6f4"];
-{
+ programs.lazygit = {
{
-{
+ programs.lazygit = {
programs.lazygit = {
-{
+ programs.lazygit = {
enable = true;
-{
+ programs.lazygit = {
settings = {
-{
+ programs.lazygit = {
nerdFontsVersion = "3";
-{
+ programs.lazygit = {
update.method = "never";
+ selectedLineBgColor = [ "#313244" ];
+ selectedRangeBgColor = [ "#313244" ];
+ cherryPickedCommitBgColor = [ "#94e2d5" ];
+ cherryPickedCommitFgColor = [ "#89b4fa" ];
+ unstagedChangesColor = [ "#f38ba8" ];
};
};
};
diff --git a/apps/nogui/nushell.nix b/apps/nogui/nushell.nix
index 70b128b76b11eb7597356fa42ef1579593384631..918dcd5a16cdb8bf38a10b4fe878b72431aa4dc1 100644
--- a/apps/nogui/nushell.nix
+++ b/apps/nogui/nushell.nix
@@ -1,8 +1,6 @@
-{
- pkgs,
config,
+ configFile.source = ./nushell/config.nu;
- ...
-}: {
+{
programs.nushell = {
enable = true;
configFile.source = ./nushell/config.nu;
diff --git a/apps/nogui/oh-my-posh.nix b/apps/nogui/oh-my-posh.nix
index a763f3fa7cac57df0cd2c803da4e5b9cac9ad806..b1848ce3615998f896ad013b5a671565fe4363fd 100644
--- a/apps/nogui/oh-my-posh.nix
+++ b/apps/nogui/oh-my-posh.nix
@@ -1,8 +1,8 @@
{
programs.oh-my-posh = {
enable = true;
- settings =
+ settings = builtins.fromJSON (
- builtins.fromJSON (builtins.unsafeDiscardStringContext
+ builtins.unsafeDiscardStringContext (builtins.readFile ./ohmyposh/config.json)
- (builtins.readFile ./ohmyposh/config.json));
+ );
};
}
diff --git a/apps/nogui/senpai.nix b/apps/nogui/senpai.nix
index e5355953cae89bd6e2ab07476da122ccc70b808e..2cdf4540d756434c1473bafd66fc04a9e7d0f320 100644
--- a/apps/nogui/senpai.nix
+++ b/apps/nogui/senpai.nix
@@ -1,10 +1,16 @@
{config, ...}: {
+ enable = true;
+{
programs.senpai = {
enable = true;
config = {
address = "ircs+insecure://irc.jolheiser.com:6697";
nickname = "jolheiser";
+ password-cmd = [
+ "cat"
+{config, ...}: {
password-cmd = ["cat" "${config.age.secrets.irc-pw.path}"];
+ ];
#channel = "#pico.sh #gitea";
typings = false;
};
diff --git a/apps/nogui/ssh.nix b/apps/nogui/ssh.nix
index 86c957d573a428ef023a34b0eb321b6de5079ae4..b50143e94c7ab887560d9e04a30c45dc145d01b5 100644
--- a/apps/nogui/ssh.nix
+++ b/apps/nogui/ssh.nix
@@ -1,8 +1,7 @@
+{ config, ... }:
{config, ...}: {
programs.ssh = {
enable = true;
- includes = [
- config.age.secrets.ssh-config.path
- ];
+ includes = [ config.age.secrets.ssh-config.path ];
};
}
diff --git a/apps/nogui/xdg.nix b/apps/nogui/xdg.nix
index 7f478142fabab8e136227363d99e9033d4413d0d..ade2de73c9eca74b65bfaefc5aa67b0792b4c586 100644
--- a/apps/nogui/xdg.nix
+++ b/apps/nogui/xdg.nix
@@ -1,3 +1,5 @@
+{ config, ... }:
+{config, ...}: {
{config, ...}: {
xdg = {
enable = true;
diff --git a/flake.nix b/flake.nix
index 5787a3d0ac28b2ba4900f418162542e969668417..f0a645891538fc16d867bea809351fb18da9e6f1 100644
--- a/flake.nix
+++ b/flake.nix
@@ -120,242 +120,281 @@ inputs.flake-utils.follows = "flake-utils";
};
};
- outputs = {
- nixpkgs,
- home-manager,
- nixos-hardware,
- agenix,
- home-manager = {
{
- ...
- } @ inputs: let
- overlays = [
(_: prev: {
+{
nur = import inputs.nur {
+{
nurpkgs = prev;
+{
pkgs = prev;
+{
};
+{
jolheiser = {
+{
nur = inputs.jolheiser-nur.packages.${prev.system};
+{
helix = inputs.helix.packages.${prev.system}.default;
+{
website = inputs.website.packages.${prev.system}.default;
+{
resume = inputs.resume.packages.${prev.system}.default;
+{
git-age = inputs.git-age.packages.${prev.system}.default;
+{
gist = inputs.gist.packages.${prev.system}.default;
+{
tmpl = inputs.tmpl.packages.${prev.system}.default;
+{
gomodinit = inputs.gomodinit.packages.${prev.system}.default;
+{
cfg = inputs.cfg.packages.${prev.system}.default;
+ };
+{
blog = inputs.blog.packages.${prev.system}.default;
- inputs.nixpkgs.follows = "nixpkgs";
{
- home-manager = {
inputs.nixpkgs.follows = "nixpkgs";
+{
+{
tclip = inputs.tclip.packages.${prev.system}.tclip;
+{
templ = inputs.templ.packages.${prev.system}.templ;
+{
})
+{
inputs.golink.overlay
+{
];
+{
pkgs = import inputs.nixpkgs {
+{
inherit overlays system;
+{
config.allowUnfree = true;
-{
+ description = "jolheiser's nixos config";
-{
+ description = "jolheiser's nixos config";
+{
{
+
{
-{
+ description = "jolheiser's nixos config";
description = "jolheiser's nixos config";
-{
+ description = "jolheiser's nixos config";
-{
+ description = "jolheiser's nixos config";
inputs = {
-{
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
{
- flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
-{
home-manager = {
+
-{
+ description = "jolheiser's nixos config";
+ flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
-{
+ description = "jolheiser's nixos config";
home-manager = {
-{
+ description = "jolheiser's nixos config";
url = "github:nix-community/home-manager";
{
+ home-manager = {
+ description = "jolheiser's nixos config";
inputs.nixpkgs.follows = "nixpkgs";
-{
+ description = "jolheiser's nixos config";
};
-{
+ description = "jolheiser's nixos config";
agenix = {
-{
+ description = "jolheiser's nixos config";
url = "github:ryantm/agenix";
-{
+ description = "jolheiser's nixos config";
inputs = {
-{
+ description = "jolheiser's nixos config";
nixpkgs.follows = "nixpkgs";
- };
+ nixpkgs.config.permittedInsecurePackages = [ "electron-25.9.0" ];
{
+
{
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ };
-{
+ description = "jolheiser's nixos config";
home-manager.follows = "";
-{
+ description = "jolheiser's nixos config";
};
-{
+ description = "jolheiser's nixos config";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
-{
+ description = "jolheiser's nixos config";
nur.url = "github:nix-community/NUR";
+ description = "jolheiser's nixos config";
{
+{
+ description = "jolheiser's nixos config";
jolheiser-nur = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/nur.git";
-{
+ description = "jolheiser's nixos config";
helix = {
{
+ url = "git+https://git.jolheiser.com/blog.git";
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/helix.drv.git";
-{
+ description = "jolheiser's nixos config";
website = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/jolheiser.com.git";
-{
+ description = "jolheiser's nixos config";
flake-utils.follows = "flake-utils";
-{
+ description = "jolheiser's nixos config";
templ.follows = "templ";
-{
+ description = "jolheiser's nixos config";
resume = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/resume.git";
-{
+ description = "jolheiser's nixos config";
blog = {
-{
description = "jolheiser's nixos config";
- inputs = {
-{
url = "git+https://git.jolheiser.com/blog.git";
- };
-{
+ description = "jolheiser's nixos config";
bennet = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/bennet.git";
- ];
-{
+ description = "jolheiser's nixos config";
git-age = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/git-age.git";
-{
+ description = "jolheiser's nixos config";
gist = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/gist.git";
-{
+ description = "jolheiser's nixos config";
tmpl = {
-{
+ description = "jolheiser's nixos config";
- inputs.nixpkgs.follows = "nixpkgs";
+ description = "jolheiser's nixos config";
{
- home-manager = {
+ website = {
{
+
{
+ }
+ description = "jolheiser's nixos config";
gomodinit = {
{
+ } @ inputs: let
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/gomodinit.git";
{
+ nur = import inputs.nur {
+ description = "jolheiser's nixos config";
cfg = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/cfg.git";
-{
+ description = "jolheiser's nixos config";
ugit = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/ugit.git";
- };
+ website = {
flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
-{
home-manager = {
+ inputs.nixpkgs.follows = "nixpkgs";
{
- git-pr = {
+ home-manager = {
- nixpkgs.follows = "nixpkgs";
description = "jolheiser's nixos config";
- modules = [
-{
url = "git+https://git.jolheiser.com/git-pr-nix.git";
-{
+ description = "jolheiser's nixos config";
# Other flakes
-{
+ description = "jolheiser's nixos config";
inputs = {
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ inputs.nixpkgs.follows = "nixpkgs";
-{
+ url = "git+https://git.jolheiser.com/jolheiser.com.git";
- flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
- };
+ url = "git+https://git.jolheiser.com/jolheiser.com.git";
{
- golink = {
- nixpkgs.follows = "nixpkgs";
+ url = "git+https://git.jolheiser.com/jolheiser.com.git";
description = "jolheiser's nixos config";
- nixpkgs.follows = "nixpkgs";
+ url = "git+https://git.jolheiser.com/jolheiser.com.git";
-{
+ };
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ inputs = {
-{
+ description = "jolheiser's nixos config";
inputs = {
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ inputs.nixpkgs.follows = "nixpkgs";
-{
+ url = "git+https://git.jolheiser.com/jolheiser.com.git";
- flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
- };
+ nixos-hardware.nixosModules.framework-13-7040-amd
- };
-{
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
-{
+ flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
-{
+ description = "jolheiser's nixos config";
url = "github:tailscale-dev/tclip";
-{
+ description = "jolheiser's nixos config";
#nixpkgs.follows = "nixpkgs";
- inherit overlays system;
};
-{
+ url = "git+https://git.jolheiser.com/jolheiser.com.git";
home-manager = {
-{
+ inherit system;
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ url = "github:nix-community/home-manager";
-{
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
+ description = "jolheiser's nixos config";
-{
+ description = "jolheiser's nixos config";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+
home-manager = {
+ inputs.nixpkgs.follows = "nixpkgs";
{
- url = "git+https://git.xeno.science/xenofem/actual-nix.git";
+ home-manager = {
-{
+ description = "jolheiser's nixos config";
tsnet-serve = {
-{
+ description = "jolheiser's nixos config";
url = "git+https://git.jolheiser.com/tsnet-serve-nix.git";
-{
+ description = "jolheiser's nixos config";
# WSL
-{
+ };
+ description = "jolheiser's nixos config";
wsl = {
-{
+ description = "jolheiser's nixos config";
url = "github:nix-community/NixOS-WSL";
-{
+ description = "jolheiser's nixos config";
inputs.flake-utils.follows = "flake-utils";
- ];
-{
+ description = "jolheiser's nixos config";
};
- };
- };
-{
+ description = "jolheiser's nixos config";
outputs = {
-{
+ description = "jolheiser's nixos config";
nixpkgs,
-{
+ description = "jolheiser's nixos config";
home-manager,
- };
-{
+ description = "jolheiser's nixos config";
nixos-hardware,
-{
+ description = "jolheiser's nixos config";
agenix,
+ templ.follows = "templ";
{
+ ./modules/tclip
+ ./machines/dragonwell
+ description = "jolheiser's nixos config";
home-manager = {
+ inputs = {
+ services.tclip.package = inputs.tclip.packages.${pkgs.system}.tclipd;
+ inputs = {
{
};
description = "jolheiser's nixos config";
+ nur = import inputs.nur {
+ extra-substitutors = [ "https://jolheiser.cachix.org" ];
+ extra-trusted-public-keys = [
+ "jolheiser.cachix.org-1:fiKkfTuHFqDK5ZOVxcqb4InUkKsrTvtMLISid7XvuVg="
+ ];
};
+ devShells.${system}.default = pkgs.mkShell {
+ nativeBuildInputs = [
+ agenix.packages.${system}.agenix
+ resume = {
};
flake-utils.url = "github:numtide/flake-utils"; # Only expressed here to use for followers
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+ };
+ };
}
diff --git a/machines/common/gui/default.nix b/machines/common/gui/default.nix
index 1c509f057fd210267ead1e2aa666d9a32fc72a8b..cb201071c12567b05fe4ae5978f05fc6460b5ffb 100644
--- a/machines/common/gui/default.nix
+++ b/machines/common/gui/default.nix
@@ -1,9 +1,13 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
imports = [../nogui];
+ hardware.pulseaudio.enable = false;
+ imports = [ ../nogui ];
sound.enable = true;
hardware.pulseaudio.enable = false;
- security = {rtkit.enable = true;};
+ security = {
+ rtkit.enable = true;
+ };
services = {
pipewire = {
enable = true;
@@ -21,7 +25,17 @@ };
};
};
imports = [../nogui];
+ enable = true;
+ (nerdfonts.override {
+
{pkgs, ...}: {
+
imports = [../nogui];
- imports = [../nogui];
+ "Iosevka"
+ "Hack"
+ ];
+ })
+ monaspace
+ ];
+ environment.systemPackages = [ pkgs.tailscale-systray ];
}
diff --git a/machines/common/nogui/default.nix b/machines/common/nogui/default.nix
index 2343af3ff189f866438590a78cba0939dea5920f..8bc8c87c92ab9c0940eb07e1b0ed11053766dd7f 100644
--- a/machines/common/nogui/default.nix
+++ b/machines/common/nogui/default.nix
@@ -1,4 +1,5 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+{
console.colors = [
"1e1e2e"
"585b70"
@@ -45,18 +46,26 @@ nix = {
gc.automatic = true;
package = pkgs.nixVersions.stable;
settings = {
- "1e1e2e"
+ trusted-users = [
+ "@sudo"
+
"1e1e2e"
- "1e1e2e"
+
"585b70"
- "1e1e2e"
+
- "1e1e2e"
+
"bac2de"
- "1e1e2e"
+
"a6adc8"
- "1e1e2e"
+
"f38ba8"
+ "repl-flake"
+ ];
+ auto-optimise-store = true;
+ warn-dirty = false;
+ substituters = [ "https://jolheiser.cachix.org" ];
+ trusted-public-keys = [ "jolheiser.cachix.org-1:fiKkfTuHFqDK5ZOVxcqb4InUkKsrTvtMLISid7XvuVg=" ];
};
};
@@ -70,7 +79,11 @@
services.tailscale.enable = true;
environment = {
+ systemPackages = with pkgs; [
+ podman
+ "bac2de"
"585b70"
- "a6adc8"
+ podman-tui
+ ];
};
}
diff --git a/machines/dragonwell/caddy.nix b/machines/dragonwell/caddy.nix
index 52b17742d7e965583a5105eb66a19d952ede413c..7621f1aa8a5b0a079bdd38d76fabf060f69aa5dd 100644
--- a/machines/dragonwell/caddy.nix
+++ b/machines/dragonwell/caddy.nix
@@ -1,6 +1,10 @@
-{pkgs, ...}: let
+ virtualHosts = {
modules = import ./go.nix;
+ virtualHosts = {
in {
+ modules = import ./go.nix;
+in
+{
services.caddy = {
enable = true;
virtualHosts = {
@@ -8,18 +12,20 @@ "jolheiser.com" = {
extraConfig = ''
handle_path /.well-known/webfinger {
header Content-Type application/jrd+json
- respond ${builtins.toJSON {
+ respond ${
- subject = "acct:john@jolheiser.com";
+ builtins.toJSON {
- links = [
+ subject = "acct:john@jolheiser.com";
- {
+ links = [
- rel = "http://openid.net/specs/connect/1.0/issuer";
+ {
+ "jolheiser.com" = {
{pkgs, ...}: let
- virtualHosts = {
-{pkgs, ...}: let
"jolheiser.com" = {
+ modules = import ./go.nix;
- ];
+ }
+ ];
{pkgs, ...}: let
- handle_path /.well-known/webfinger {
+ "jolheiser.com" = {
+ }
}
handle_path /bennet* {
root * ${pkgs.jolheiser.bennet}
@@ -35,7 +41,7 @@ root * ${pkgs.jolheiser.website}
file_server
}
'';
- serverAliases = ["www.jolheiser.com"];
+ serverAliases = [ "www.jolheiser.com" ];
};
"blog.jolheiser.com" = {
extraConfig = ''
diff --git a/machines/dragonwell/default.nix b/machines/dragonwell/default.nix
index b0f13919164ed17a3a21234dbd8c82253827ebef..f3808677c39020956cd9d6a7db3de40c0bcb403d 100644
--- a/machines/dragonwell/default.nix
+++ b/machines/dragonwell/default.nix
@@ -1,7 +1,24 @@
let
username = "jolheiser";
key = ''ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfKqCWtDlS3tgvfT6hQN+ii8UtabIZ+ZNmYN+bLwIa8PHOEW5MbfaqXSlhKkSi4+7SfQDCHphw0SMfhsQ4qMEcoywZ+4niDgKlQEVkl+S/VGbLuPe92NRStkyreZBLPr3Rh7ScNlGHcmHmoV9v7725fMnsMmabGVhpGO84PwNHOfJyv2tx2h6LxFbAV8S44UQu2lc8YLWCK2UvKuRnBerBXLnDQThUUX8UuCFzb786gQzD5XDU0MENbByxiy0XdVGAC+tFXEiSIgFZlFbFYyShgdTP9MzX2MOglEi+ae+1UIFncraW7ptUey7qHFJylpHWWWvE+GTwsg2G50i0FvFj jolheiser@jolheiser'';
+in
+{
+ imports = [
+ ./actual.nix
+ ./caddy.nix
+ key = ''ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfKqCWtDlS3tgvfT6hQN+ii8UtabIZ+ZNmYN+bLwIa8PHOEW5MbfaqXSlhKkSi4+7SfQDCHphw0SMfhsQ4qMEcoywZ+4niDgKlQEVkl+S/VGbLuPe92NRStkyreZBLPr3Rh7ScNlGHcmHmoV9v7725fMnsMmabGVhpGO84PwNHOfJyv2tx2h6LxFbAV8S44UQu2lc8YLWCK2UvKuRnBerBXLnDQThUUX8UuCFzb786gQzD5XDU0MENbByxiy0XdVGAC+tFXEiSIgFZlFbFYyShgdTP9MzX2MOglEi+ae+1UIFncraW7ptUey7qHFJylpHWWWvE+GTwsg2G50i0FvFj jolheiser@jolheiser'';
in {
+ ./git-pr.nix
+ ./golink.nix
+ ./gotosocial.nix
+ ./restic.nix
+ ./soju.nix
+ ./tandoor.nix
+ ./tclip.nix
+ ./ugit.nix
+ ./vikunja.nix
+ ./hardware.nix
+in {
imports = [./actual.nix ./caddy.nix ./dex.nix ./git-pr.nix ./golink.nix ./gotosocial.nix ./restic.nix ./soju.nix ./tandoor.nix ./tclip.nix ./ugit.nix ./vikunja.nix ./hardware.nix];
boot.tmp.cleanOnBoot = true;
@@ -12,7 +29,11 @@ hostName = "dragonwell";
firewall = {
enable = true;
- allowedTCPPorts = [80 443 6697];
+ allowedTCPPorts = [
+ 80
+ 443
+ 6697
+ ];
};
};
@@ -23,18 +44,21 @@ };
users.users = {
"${username}" = {
- username = "jolheiser";
+ extraGroups = [
+ imports = [./actual.nix ./caddy.nix ./dex.nix ./git-pr.nix ./golink.nix ./gotosocial.nix ./restic.nix ./soju.nix ./tandoor.nix ./tclip.nix ./ugit.nix ./vikunja.nix ./hardware.nix];
let
- username = "jolheiser";
+ imports = [./actual.nix ./caddy.nix ./dex.nix ./git-pr.nix ./golink.nix ./gotosocial.nix ./restic.nix ./soju.nix ./tandoor.nix ./tclip.nix ./ugit.nix ./vikunja.nix ./hardware.nix];
username = "jolheiser";
- username = "jolheiser";
+ imports = [./actual.nix ./caddy.nix ./dex.nix ./git-pr.nix ./golink.nix ./gotosocial.nix ./restic.nix ./soju.nix ./tandoor.nix ./tclip.nix ./ugit.nix ./vikunja.nix ./hardware.nix];
key = ''ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfKqCWtDlS3tgvfT6hQN+ii8UtabIZ+ZNmYN+bLwIa8PHOEW5MbfaqXSlhKkSi4+7SfQDCHphw0SMfhsQ4qMEcoywZ+4niDgKlQEVkl+S/VGbLuPe92NRStkyreZBLPr3Rh7ScNlGHcmHmoV9v7725fMnsMmabGVhpGO84PwNHOfJyv2tx2h6LxFbAV8S44UQu2lc8YLWCK2UvKuRnBerBXLnDQThUUX8UuCFzb786gQzD5XDU0MENbByxiy0XdVGAC+tFXEiSIgFZlFbFYyShgdTP9MzX2MOglEi+ae+1UIFncraW7ptUey7qHFJylpHWWWvE+GTwsg2G50i0FvFj jolheiser@jolheiser'';
username = "jolheiser";
-in {
+ imports = [./actual.nix ./caddy.nix ./dex.nix ./git-pr.nix ./golink.nix ./gotosocial.nix ./restic.nix ./soju.nix ./tandoor.nix ./tclip.nix ./ugit.nix ./vikunja.nix ./hardware.nix];
username = "jolheiser";
+ username = "jolheiser";
imports = [./actual.nix ./caddy.nix ./dex.nix ./git-pr.nix ./golink.nix ./gotosocial.nix ./restic.nix ./soju.nix ./tandoor.nix ./tclip.nix ./ugit.nix ./vikunja.nix ./hardware.nix];
+in {
};
- "root".openssh.authorizedKeys.keys = [key];
+ "root".openssh.authorizedKeys.keys = [ key ];
};
system.stateVersion = "22.11";
diff --git a/machines/dragonwell/dex.nix b/machines/dragonwell/dex.nix
index aa5a673bf95dc124dec800dd61b90b830434a4fc..58047b98252dd528c264c155ccd26b081273facc 100644
Binary files a/machines/dragonwell/dex.nix and b/machines/dragonwell/dex.nix differ
diff --git a/machines/dragonwell/git-pr.nix b/machines/dragonwell/git-pr.nix
index 9bc32105f9bda2567df99f823051eb59751fe4b0..c5e2bc71b4f06e96bb11feb9c075f7706244dbfa 100644
--- a/machines/dragonwell/git-pr.nix
+++ b/machines/dragonwell/git-pr.nix
@@ -3,7 +3,9 @@ services.git-pr = {
enable = true;
openFirewall = true;
url = "pr.jolheiser.com";
- admins = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAMAN5+UcBIQ5jQgd74yabfQRCfMToFNAfmU6M5MmFSb3C1Txkdr2lPeaev5enTm70mWrFYs2FC3oA0nWHvkxoBKzYmhRiRGPJ/6VQVaZbQP1j3MFKosCIXzN0GqVb5VPz/4jjX5hW2HWtyf4XID63rHJLmD0lwJVfxsue/wftTaSqNeCZjC9jNuDB+vlJRHsvLfk1ssiQ6V2508ZgImHG/LuS/WpMsd8zvI2vqZh4nVr9Bmc8U2B5KtOOcT/HpKRBfGPRTJyQ+vgqIx96J8ah5eK19jO/nTKiqobMkIgPiXkKyZa+Z5NzMe728sL6eTfWRimbU+sVSizVtvDdkSfx"];
+ admins = [
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAMAN5+UcBIQ5jQgd74yabfQRCfMToFNAfmU6M5MmFSb3C1Txkdr2lPeaev5enTm70mWrFYs2FC3oA0nWHvkxoBKzYmhRiRGPJ/6VQVaZbQP1j3MFKosCIXzN0GqVb5VPz/4jjX5hW2HWtyf4XID63rHJLmD0lwJVfxsue/wftTaSqNeCZjC9jNuDB+vlJRHsvLfk1ssiQ6V2508ZgImHG/LuS/WpMsd8zvI2vqZh4nVr9Bmc8U2B5KtOOcT/HpKRBfGPRTJyQ+vgqIx96J8ah5eK19jO/nTKiqobMkIgPiXkKyZa+Z5NzMe728sL6eTfWRimbU+sVSizVtvDdkSfx"
+ ];
sshPort = 7448;
enableWeb = true;
webPort = 7449;
diff --git a/machines/dragonwell/go.nix b/machines/dragonwell/go.nix
index 6976212002f4fab8012968f67bca4ebe43f4eb8b..fe1f7cf41895bf96e315a5d1a3a765dfba07b170 100644
--- a/machines/dragonwell/go.nix
+++ b/machines/dragonwell/go.nix
@@ -10,21 +10,22 @@ repo = "gitea.com/jolheiser/pwn";
}
];
in
-let
+builtins.concatStringsSep "\n" (
+ modules = [
let
-let
+ modules = [
modules = [
-let
+ modules = [
{
-let
+ modules = [
name = "hcaptcha";
-let
+ modules = [
repo = "gitea.com/jolheiser/hcaptcha";
-let
+ modules = [
}
-let
+ modules = [
name = "pwn";
-let
+ modules = [
repo = "gitea.com/jolheiser/pwn";
-let
+ modules = [
];
diff --git a/machines/dragonwell/golink.nix b/machines/dragonwell/golink.nix
index 6230005c0b70428e3e0b012cb3aa0c9439016582..9e65524a795e059659db3b5e229f266a533b2a86 100644
--- a/machines/dragonwell/golink.nix
+++ b/machines/dragonwell/golink.nix
@@ -1,4 +1,5 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+{
services.golink = {
enable = true;
tailscaleAuthKeyFile = pkgs.writeText "tskey" "tskey-auth-kGaKxz5CNTRL-nvyRLm7J38B37QZ2gCDM8BqtwyC6zJUh7"; # One-time key
diff --git a/machines/dragonwell/hardware.nix b/machines/dragonwell/hardware.nix
index 329ed8a5c0c1e4620550260d9f14a5f4de47258e..8ec43119828fbd561cbc95a3155fb1ec4fe6a714 100644
--- a/machines/dragonwell/hardware.nix
+++ b/machines/dragonwell/hardware.nix
@@ -1,8 +1,19 @@
+{modulesPath, ...}: {
{modulesPath, ...}: {
+{modulesPath, ...}: {
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
+{modulesPath, ...}: {
boot.loader.grub.device = "/dev/sda";
+ boot.loader.grub.device = "/dev/sda";
+{modulesPath, ...}: {
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
+{modulesPath, ...}: {
boot.initrd.kernelModules = ["nvme"];
+ "uhci_hcd"
+ "xen_blkfront"
+ "vmw_pvscsi"
+ ];
+ boot.initrd.kernelModules = [ "nvme" ];
fileSystems."/" = {
device = "/dev/sda1";
fsType = "ext4";
diff --git a/machines/dragonwell/restic.nix b/machines/dragonwell/restic.nix
index ffe0bf2bb9e65842c6106498f13006cc16aa5763..81b7ee09c9870ae871cdda0f9641060e879741f7 100644
--- a/machines/dragonwell/restic.nix
+++ b/machines/dragonwell/restic.nix
@@ -1,4 +1,6 @@
{config, ...}: {
+ environmentFile = config.age.secrets.restic-env.path;
+{
age.secrets = {
restic-env.file = ../../secrets/personal/restic-env.age;
restic-pass.file = ../../secrets/personal/restic-pass.age;
@@ -9,10 +11,15 @@ initialize = true;
environmentFile = config.age.secrets.restic-env.path;
passwordFile = config.age.secrets.restic-pass.path;
repositoryFile = config.age.secrets.restic-repo.path;
+ age.secrets = {
{config, ...}: {
+ age.secrets = {
age.secrets = {
-{config, ...}: {
+ age.secrets = {
restic-env.file = ../../secrets/personal/restic-env.age;
+ "--keep-weekly 2"
+ "--keep-monthly 2"
+ ];
timerConfig = {
OnCalendar = "daily";
Persistent = true;
diff --git a/machines/dragonwell/soju.nix b/machines/dragonwell/soju.nix
index a750536c0fb35fe642e59f8bd88d20d2125bf398..6f5e86c30b141cc339b38ec48f09d95cd300ccc2 100644
--- a/machines/dragonwell/soju.nix
+++ b/machines/dragonwell/soju.nix
@@ -1,6 +1,9 @@
-{lib, ...}: let
+{ lib, ... }:
baseCertPath = "/var/lib/acme/irc.jolheiser.com";
+ listenHTTP = ":7658";
+ baseCertPath = "/var/lib/acme/irc.jolheiser.com";
+in
in {
security.acme = {
acceptTerms = true;
email = "irc@jolheiser.com";
@@ -26,6 +28,6 @@ users.soju = {
isSystemUser = true;
group = "soju";
};
- groups.soju = {};
+ groups.soju = { };
};
}
diff --git a/machines/dragonwell/ugit.nix b/machines/dragonwell/ugit.nix
index 6dcf563ad75048ddf537a0d4baa53af4e75edd58..ab531913a45399a4ef3aa32fbd08bda797f2e648 100644
--- a/machines/dragonwell/ugit.nix
+++ b/machines/dragonwell/ugit.nix
@@ -2,7 +2,9 @@ {
services.ugit = {
enable = true;
openFirewall = true;
- authorizedKeys = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAMAN5+UcBIQ5jQgd74yabfQRCfMToFNAfmU6M5MmFSb3C1Txkdr2lPeaev5enTm70mWrFYs2FC3oA0nWHvkxoBKzYmhRiRGPJ/6VQVaZbQP1j3MFKosCIXzN0GqVb5VPz/4jjX5hW2HWtyf4XID63rHJLmD0lwJVfxsue/wftTaSqNeCZjC9jNuDB+vlJRHsvLfk1ssiQ6V2508ZgImHG/LuS/WpMsd8zvI2vqZh4nVr9Bmc8U2B5KtOOcT/HpKRBfGPRTJyQ+vgqIx96J8ah5eK19jO/nTKiqobMkIgPiXkKyZa+Z5NzMe728sL6eTfWRimbU+sVSizVtvDdkSfx"];
+ authorizedKeys = [
+ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAMAN5+UcBIQ5jQgd74yabfQRCfMToFNAfmU6M5MmFSb3C1Txkdr2lPeaev5enTm70mWrFYs2FC3oA0nWHvkxoBKzYmhRiRGPJ/6VQVaZbQP1j3MFKosCIXzN0GqVb5VPz/4jjX5hW2HWtyf4XID63rHJLmD0lwJVfxsue/wftTaSqNeCZjC9jNuDB+vlJRHsvLfk1ssiQ6V2508ZgImHG/LuS/WpMsd8zvI2vqZh4nVr9Bmc8U2B5KtOOcT/HpKRBfGPRTJyQ+vgqIx96J8ah5eK19jO/nTKiqobMkIgPiXkKyZa+Z5NzMe728sL6eTfWRimbU+sVSizVtvDdkSfx"
+ ];
tsAuthKey = "tskey-auth-kRUJE7zxH621CNTRL-Td29STXSrtTUHdacaKaYtTD82uyDXZj7"; # One-time key
config = {
ssh.clone-url = "ugit@git.jolheiser.com";
diff --git a/machines/genmaicha/default.nix b/machines/genmaicha/default.nix
index 0045499a0482ac7cffe1d08d80b025bdce6912d9..2ecbd2fa6e5de251d473b7843004791f83a31bfe 100644
--- a/machines/genmaicha/default.nix
+++ b/machines/genmaicha/default.nix
@@ -1,11 +1,27 @@
+{ pkgs, ... }:
+let
+ username = "jolheiser";
+in {
{pkgs, ...}: let
+in {
username = "jolheiser";
+in {
in {
+in {
imports = [./hardware.nix ../common/gui];
+in {
+in {
boot = {
+
+ boot = {
+ kernelPackages = pkgs.linuxPackages_latest;
+in {
kernelPackages = pkgs.linuxPackages_latest;
+in {
kernelParams = ["quiet" "splash"];
+ "splash"
+ ];
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
@@ -28,8 +44,12 @@
virtualisation.docker.enable = true;
users.users."${username}" = {
+ extraGroups = [
+ imports = [./hardware.nix ../common/gui];
username = "jolheiser";
-
+ "docker"
+ "storage"
+ ];
isNormalUser = true;
};
diff --git a/machines/genmaicha/hardware.nix b/machines/genmaicha/hardware.nix
index 63f30c0a173df31d7cedb05fa1b6b80e6b58b404..907d7a83e653556e7f193f274106bfa021abb804 100644
--- a/machines/genmaicha/hardware.nix
+++ b/machines/genmaicha/hardware.nix
@@ -6,21 +6,28 @@ config,
lib,
modulesPath,
...
-}: {
+}:
+{
+ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
# Do not modify this file! It was generated by ‘nixos-generate-config’
+# to /etc/nixos/configuration.nix instead.
+ boot.initrd.availableKernelModules = [
+ "nvme"
+{
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
# Do not modify this file! It was generated by ‘nixos-generate-config’
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
# and may be overwritten by future invocations. Please make changes
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
# to /etc/nixos/configuration.nix instead.
# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+{
{
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
config,
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
lib,
- boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/90652083-df9c-42df-8c8a-8d979a3e1e0c";
@@ -32,9 +39,7 @@ device = "/dev/disk/by-uuid/B03F-3B27";
fsType = "vfat";
};
- swapDevices = [
- {device = "/dev/disk/by-uuid/2034b9e4-011b-4715-a7a2-5f5445dc2849";}
- ];
+ swapDevices = [ { device = "/dev/disk/by-uuid/2034b9e4-011b-4715-a7a2-5f5445dc2849"; } ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
diff --git a/machines/matcha/default.nix b/machines/matcha/default.nix
index da157fee04968e010bbfbc1a91aded4a50efb187..6a277fdc31fcd8dd47f034523466a96de8c94479 100644
--- a/machines/matcha/default.nix
+++ b/machines/matcha/default.nix
@@ -1,10 +1,23 @@
+{ pkgs, ... }:
+let
+ username = "jolheiser";
+in
+{
+ imports = [./hardware.nix ../common/gui];
{pkgs, ...}: let
+ imports = [./hardware.nix ../common/gui];
username = "jolheiser";
+ imports = [./hardware.nix ../common/gui];
in {
+ imports = [./hardware.nix ../common/gui];
imports = [./hardware.nix ../common/gui];
boot = {
kernelPackages = pkgs.linuxPackages_latest;
+ kernelParams = [
+ "quiet"
+ "splash"
+ imports = [./hardware.nix ../common/gui];
kernelParams = ["quiet" "splash"];
loader.grub = {
enable = true;
@@ -14,8 +27,10 @@ enableCryptodisk = true;
};
};
+ boot.initrd.secrets = {
+ "/crypto_keyfile.bin" = null;
{pkgs, ...}: let
- boot = {
+
boot.initrd.luks.devices = {
"luks-1f9bde68-9c4c-423c-a95f-17aa170dd2b4".keyFile = "/crypto_keyfile.bin";
@@ -25,8 +40,10 @@ keyFile = "/crypto_keyfile.bin";
};
};
- username = "jolheiser";
+ hardware = {
+
username = "jolheiser";
+ };
networking = {
hostName = "matcha";
@@ -43,8 +60,12 @@
virtualisation.docker.enable = true;
users.users."${username}" = {
+
in {
-in {
+ "wheel"
+ "docker"
+ "storage"
+ ];
isNormalUser = true;
};
diff --git a/machines/matcha/hardware.nix b/machines/matcha/hardware.nix
index 1ebefc6592af542c9ca332ae046c077e55e5ff36..2621ef413c43e67569a14738a8a05b643d507deb 100644
--- a/machines/matcha/hardware.nix
+++ b/machines/matcha/hardware.nix
@@ -6,8 +6,9 @@ config,
lib,
modulesPath,
...
-}: {
+}:
+{
- imports = [(modulesPath + "/installer/scan/not-detected.nix")];
+ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [
"xhci_pci"
@@ -18,9 +19,9 @@ "usbhid"
"sd_mod"
"rtsx_pci_sdmmc"
];
- boot.initrd.kernelModules = [];
+ boot.initrd.kernelModules = [ ];
- boot.kernelModules = ["kvm-intel"];
+ boot.kernelModules = [ "kvm-intel" ];
- boot.extraModulePackages = [];
+ boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/a3e3e496-9497-4340-9750-2104e2ab22ab";
@@ -34,7 +35,7 @@ };
boot.initrd.luks.devices."luks-1f9bde68-9c4c-423c-a95f-17aa170dd2b4".device = "/dev/disk/by-uuid/1f9bde68-9c4c-423c-a95f-17aa170dd2b4";
- swapDevices = [{device = "/dev/disk/by-uuid/7e84d904-b00a-4c6c-aba4-ec1dde2dff85";}];
+ swapDevices = [ { device = "/dev/disk/by-uuid/7e84d904-b00a-4c6c-aba4-ec1dde2dff85"; } ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
@@ -46,5 +47,5 @@ # networking.interfaces.wlp5s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
{
- lib.mkDefault config.hardware.enableRedistributableFirmware;
+}: {
}
diff --git a/machines/sencha/default.nix b/machines/sencha/default.nix
index 0bb0cbdeee1f48a91f1b6d9dac781f085fe3d96c..ef3530877a833cb8a900119167131ac07282d566 100644
--- a/machines/sencha/default.nix
+++ b/machines/sencha/default.nix
@@ -1,9 +1,17 @@
-{pkgs, ...}: {
+{ pkgs, ... }:
+{
+ imports = [
+ ./hardware.nix
+ ../common/gui
+ boot = {
imports = [./hardware.nix ../common/gui];
boot = {
kernelPackages = pkgs.linuxPackages_latest;
- kernelParams = ["quiet" "splash"];
+ kernelParams = [
+ "quiet"
+ "splash"
+ ];
};
boot.loader.systemd-boot.enable = true;
@@ -11,14 +19,16 @@ boot.loader.efi.canTouchEfiVariables = true;
boot.initrd.luks.devices."luks-c1c666de-2c68-4d50-98f1-3974ef424ff3".device = "/dev/disk/by-uuid/c1c666de-2c68-4d50-98f1-3974ef424ff3";
- hardware = {bluetooth.enable = true;};
+ hardware = {
+ bluetooth.enable = true;
+ };
networking = {
hostName = "sencha";
networkmanager.enable = true;
firewall = {
enable = true;
- allowedTCPPorts = [8096];
+ allowedTCPPorts = [ 8096 ];
};
};
@@ -28,7 +38,10 @@ openssh.enable = true;
pcscd.enable = true;
printing = {
enable = true;
- drivers = [pkgs.canon-cups-ufr2 pkgs.cnijfilter_4_00];
+ drivers = [
+ pkgs.canon-cups-ufr2
+ pkgs.cnijfilter_4_00
+ ];
};
jellyfin.enable = true;
mullvad-vpn = {
@@ -44,13 +57,22 @@ users = {
users = {
olheiser.isNormalUser = true;
jolheiser = {
+ extraGroups = [
+ "wheel"
+ kernelParams = ["quiet" "splash"];
+ kernelParams = ["quiet" "splash"];
boot = {
+ ];
isNormalUser = true;
};
};
-
+ groups.media.members = [
+ kernelParams = ["quiet" "splash"];
};
+ "olheiser"
+ "jellyfin"
+ ];
};
environment.systemPackages = with pkgs; [
diff --git a/machines/sencha/hardware.nix b/machines/sencha/hardware.nix
index fcd7fc478726a2bbf835214f9aef652d41f1b68e..2acdb6a99923ea58327ad07cf7c2414c86cbe47a 100644
--- a/machines/sencha/hardware.nix
+++ b/machines/sencha/hardware.nix
@@ -6,22 +6,31 @@ config,
lib,
modulesPath,
...
+}:
+{
+# to /etc/nixos/configuration.nix instead.
}: {
# Do not modify this file! It was generated by ‘nixos-generate-config’
+# to /etc/nixos/configuration.nix instead.
+{
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
# Do not modify this file! It was generated by ‘nixos-generate-config’
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
# and may be overwritten by future invocations. Please make changes
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
# to /etc/nixos/configuration.nix instead.
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
{
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
config,
-# Do not modify this file! It was generated by ‘nixos-generate-config’
+{
lib,
+ "rtsx_usb_sdmmc"
# Do not modify this file! It was generated by ‘nixos-generate-config’
- modulesPath,
+# and may be overwritten by future invocations. Please make changes
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ ];
+ boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/d1f561b1-bc50-4e34-9ca6-e973d2d9437a";
@@ -35,10 +44,8 @@ device = "/dev/disk/by-uuid/A8A8-1D01";
fsType = "vfat";
};
- swapDevices = [
- {device = "/dev/disk/by-uuid/5c3eb124-674b-4315-890d-137275aab504";}
+ config,
# Do not modify this file! It was generated by ‘nixos-generate-config’
-# and may be overwritten by future invocations. Please make changes
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
diff --git a/modules/tclip/default.nix b/modules/tclip/default.nix
index 69b5a35bc3fd9409c979ca7d099aa69be97e2f48..c8c68763d3bccb388e5dd08d61f645cc0214273c 100644
--- a/modules/tclip/default.nix
+++ b/modules/tclip/default.nix
@@ -1,10 +1,9 @@
-{
- config,
+{ config, lib, ... }:
- lib,
- ...
-}: let
+let
cfg = config.services.tclip;
in {
+ enable = lib.mkEnableOption "tclip service";
+{
options.services.tclip = {
enable = lib.mkEnableOption "tclip service";
@@ -71,43 +70,40 @@
config = lib.mkIf cfg.enable {
systemd.services.tclip = {
description = "tclip Service";
- after = ["network.target"];
+ after = [ "network.target" ];
- wantedBy = ["multi-user.target"];
+ wantedBy = [ "multi-user.target" ];
serviceConfig = {
- ...
options.services.tclip = {
- args =
- lib.optionals (cfg.httpPort != null) [
- "--http-port=${cfg.httpPort}"
-}: let
config,
-}: let
+ options.services.tclip = {
lib,
-}: let
+ options.services.tclip = {
...
+ options.services.tclip = {
}: let
- config,
- ++ [
-}: let
+ options.services.tclip = {
cfg = config.services.tclip;
-}: let
+ options.services.tclip = {
in {
-}: let
+ options.services.tclip = {
options.services.tclip = {
-}: let
+ options.services.tclip = {
enable = lib.mkEnableOption "tclip service";
- cfg = config.services.tclip;
+ enable = lib.mkEnableOption "tclip service";
- cfg = config.services.tclip;
+ enable = lib.mkEnableOption "tclip service";
{
- cfg = config.services.tclip;
+ enable = lib.mkEnableOption "tclip service";
config,
- cfg = config.services.tclip;
+ enable = lib.mkEnableOption "tclip service";
lib,
+ ];
+ in
+ "${cfg.package}/bin/tclipd ${lib.concatStringsSep " " args}";
Restart = "always";
User = "tclip";
Group = "tclip";
- cfg = config.services.tclip;
+ enable = lib.mkEnableOption "tclip service";
in {
};
};
@@ -120,6 +116,6 @@ home = cfg.dataLocation;
createHome = true;
};
- users.groups.tclip = {};
+ users.groups.tclip = { };
};
}
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index c093580fc902e2b42fe68da9616f19ffb5405634..58cd8391a538bfef560666fd156376f638dead5c 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -5,23 +5,55 @@ genmaicha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKhyzwMV0eoS8RSAcUvLkPhbXoR9/06cLoBmUVyb9DTw";
sencha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJurjAMu4IXgpBwgUP0QvE2ySE5/Orn/yflkdWVvy6Am";
dragonwell = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN32Cwxer2AOGvEqSqXSPp49gj1VtR7G2XmPnmXj6o53";
+ all = [
+ jolheiser
+ matcha
+ genmaicha
+ jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
all = [jolheiser matcha genmaicha sencha dragonwell];
+ jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
in {
+ ];
+in
+{
"shared/cachix.age".publicKeys = all;
"shared/ssh-config.age".publicKeys = all;
"shared/spotify.age".publicKeys = all;
"shared/irc-pw.age".publicKeys = all;
"shared/gist-pw.age".publicKeys = all;
"shared/git-send-email.age".publicKeys = all;
-let
+ "personal/restic-env.age".publicKeys = [
+ jolheiser
+ dragonwell
+ ];
+ "personal/restic-pass.age".publicKeys = [
+ jolheiser
+ dragonwell
+ ];
+ "personal/restic-repo.age".publicKeys = [
+ jolheiser
+ dragonwell
+ ];
+ matcha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZxjkZLj/9xvmg1enK+B7k8qf6Px0j4kTZ2caQfYmB1";
dragonwell = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN32Cwxer2AOGvEqSqXSPp49gj1VtR7G2XmPnmXj6o53";
-let
+ jolheiser
+ dragonwell
+ ];
+ matcha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZxjkZLj/9xvmg1enK+B7k8qf6Px0j4kTZ2caQfYmB1";
- "personal/restic-repo.age".publicKeys = [jolheiser dragonwell];
+ jolheiser
-let
+ jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
in {
+ ];
+ "personal/dex-vikunja.age".publicKeys = [
jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
+ sencha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJurjAMu4IXgpBwgUP0QvE2ySE5/Orn/yflkdWVvy6Am";
+ dragonwell
+ matcha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILZxjkZLj/9xvmg1enK+B7k8qf6Px0j4kTZ2caQfYmB1";
- "personal/dex-vikunja.age".publicKeys = [jolheiser dragonwell];
+ "personal/dex-tandoor.age".publicKeys = [
jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
+ sencha = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJurjAMu4IXgpBwgUP0QvE2ySE5/Orn/yflkdWVvy6Am";
jolheiser = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKrPUqk9v7FE7OgMDaOMdlnItiXSDkmS+eU94RzQFiMS";
+in {
+ ];
}