aboutsummaryrefslogtreecommitdiffstats
path: root/modules/common
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/by-name/sw/swaybg/images/abstract-nord.png (renamed from modules/common/abstract-nord.png)bin140219 -> 140219 bytes
-rw-r--r--modules/common/default.nix110
-rw-r--r--modules/common/hooks/default.nix17
-rwxr-xr-xmodules/common/hooks/scripts/sync-git-repo.sh23
-rw-r--r--modules/common/projects.json69
-rw-r--r--modules/common/projects.json.license9
6 files changed, 198 insertions, 30 deletions
diff --git a/modules/common/abstract-nord.png b/modules/by-name/sw/swaybg/images/abstract-nord.png
index 5ef498bf..5ef498bf 100644
--- a/modules/common/abstract-nord.png
+++ b/modules/by-name/sw/swaybg/images/abstract-nord.png
Binary files differ
diff --git a/modules/common/default.nix b/modules/common/default.nix
index 232c329d..e5172921 100644
--- a/modules/common/default.nix
+++ b/modules/common/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
# This file contains common configuration applied to every host.
# It should only `enable` options defined in the `modules/by-name` directory.
{
@@ -6,7 +15,10 @@
lib,
...
}: {
+ # TODO(@bpeetz): Move this file to default options in their respective modules. <2025-05-31>
+
soispha = {
+ age.enable = true;
boot.enable = true;
cleanup.enable = true;
documentation.enable = true;
@@ -16,26 +28,39 @@
enableEmoji = true;
};
+ hardware = {
+ enable = lib.mkDefault true;
+ };
home-manager.enable = true;
impermanence = {
enable = true;
directories = [
"/etc/nixos"
- "/var/log"
"/var/lib/systemd"
- "/var/lib/nixos"
];
};
+
polkit.enable = true;
power.enable = true;
+ xdg.enable = true;
services = {
adb = {
enable = true;
user = "soispha";
};
+ backup = {
+ storagebox = {
+ enable = lib.mkDefault true;
+ user = "u459143-sub1";
+ };
+ local = {
+ enable = lib.mkDefault true;
+ };
+ };
fwupd.enable = true;
+ mako.enable = true;
mpd = {
enable = true;
directories = let
@@ -56,10 +81,10 @@
printing.enable = true;
scanning.enable = true;
snapper.enable = true;
- steam.enable = false;
+ water-reminder.enable = true;
systemDiff.enable = true;
unison = {
- enable = true;
+ enable = lib.mkDefault true;
foreign.userName = "soispha";
dataDir = "${config.home-manager.users.soispha.xdg.dataHome}/unison";
@@ -72,14 +97,27 @@
config.home-manager.users.soispha.home.file);
in
[
- # already synchronized by the taskserver
+ # TODO(@bpeetz): Move these to their respective modules <2025-05-09>
+ # Already synchronized by TaskChampion sync server
"~/.local/share/task"
+ # Already synchronized by atuin sync server
+ "~/.local/share/atuin"
+ # Already synchronized by mbsync
+ "~/.local/share/maildir"
+
+
+ # "Unknown filetype" (and there is no real reason to (try to) synchronize sockets)
+ "~/.local/share/gnupg/S.gpg-agent"
+ "~/.local/share/gnupg/S.gpg-agent.browser"
+ "~/.local/share/gnupg/S.gpg-agent.extra"
+ "~/.local/share/gnupg/S.gpg-agent.ssh"
+ "~/.local/share/gnupg/S.scdaemon"
# Should not be synchronized
"~/.local/share/unison"
- # Is just to big to be synchronized (# TODO: Work around that <2024-08-31> )
- "~/media/music"
+ # These are just to big to be synchronized (# TODO: Work around that <2024-08-31> )
+ "~/.local/share/Steam"
]
++ homeManagerSymlinks;
@@ -89,28 +127,38 @@
"~/.local/share"
"~/.local/.Trash-1000"
- "~/.mozilla/firefox"
-
"~/media"
- "~/school"
+ "~/documents"
"~/repos"
];
};
};
programs = {
+ i3bar-river.enable = true;
+ i3status-rust.enable = true;
+
+ qutebrowser = {
+ enable = true;
+ };
+
nvim = {
enable = true;
shell = pkgs.zsh;
};
- atuin.enable = true;
+ atuin = {
+ enable = true;
+ enableAge = lib.mkDefault true;
+ };
direnv.enable = true;
git.enable = true;
imv.enable = true;
less.enable = true;
lf.enable = true;
+ ly.enable = lib.mkDefault true;
+ gpg.enable = true;
river = {
- enable = true;
+ enable = lib.mkDefault true;
init = {
rules = [
{
@@ -144,12 +192,12 @@
title = "*";
action = "ssd";
}
- # This remove the focus border around Firefox (which is useful because the Firefox is nearly always in its own tag.)
- {
- app-id = "firefox";
- title = "*";
- action = "csd";
- }
+ # # This remove the focus border around Firefox (which is useful because the Firefox is nearly always in its own tag.)
+ # {
+ # app-id = "firefox";
+ # title = "*";
+ # action = "csd";
+ # }
];
generalSettings = {
# background
@@ -171,27 +219,29 @@
pointer-1133-49970-Logitech_Gaming_Mouse_G502 = [["pointer-accel" "0"] ["accel-profile" "none"]];
pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I = [["pointer-accel" "0"] ["accel-profile" "none"]];
};
- backgroundStart = [
- pkgs.gammastep
- pkgs.yambar
-
- pkgs.mako
- ["${lib.getExe pkgs.swaybg}" "--image" "${./abstract-nord.png}"]
- pkgs.swayidle
- pkgs.alacritty
- ];
};
};
mpv.enable = true;
+ steam.enable = true;
+ ssh.enable = true;
swaylock.enable = true;
- taskwarrior.enable = true;
- yambar.enable = true;
+ timewarrior.enable = true;
+ taskwarrior = {
+ enable = true;
+ enableAge = lib.mkDefault true;
+
+ hooks = import ./hooks {inherit pkgs lib config;};
+ };
+ tskm = {
+ enable = true;
+ projects = builtins.fromJSON (builtins.readFile ./projects.json);
+ };
+ nix-index.enable = true;
yt.enable = true;
zathura.enable = true;
zsh.enable = true;
};
- sound.enable = true;
version.enable = true;
};
}
diff --git a/modules/common/hooks/default.nix b/modules/common/hooks/default.nix
new file mode 100644
index 00000000..5b694039
--- /dev/null
+++ b/modules/common/hooks/default.nix
@@ -0,0 +1,17 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{
+ pkgs,
+ lib,
+ config,
+}: {
+ sync-git-repos = config.lib.taskwarrior.mkHook "on-add" [pkgs.git] ./scripts/sync-git-repo.sh;
+ sync-git-repos-mod = config.lib.taskwarrior.mkHook "on-modify" [pkgs.git] ./scripts/sync-git-repo.sh;
+}
diff --git a/modules/common/hooks/scripts/sync-git-repo.sh b/modules/common/hooks/scripts/sync-git-repo.sh
new file mode 100755
index 00000000..fe0d0085
--- /dev/null
+++ b/modules/common/hooks/scripts/sync-git-repo.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env sh
+
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
+task_data="$(task _get rc.data.location)"
+[ "$task_data" ] || die "Taskwarrior should have a location set"
+
+cd "$task_data" || die "(BUG?): Your data.location path is not accessable"
+
+[ -d ./.git/ ] || git init
+
+git add .
+git commit --message="chore: Update" --no-gpg-sign
+
+# vim: ft=sh
diff --git a/modules/common/projects.json b/modules/common/projects.json
new file mode 100644
index 00000000..e8e9bc39
--- /dev/null
+++ b/modules/common/projects.json
@@ -0,0 +1,69 @@
+{
+ "aoc": {
+ "prefix": "programming/advent_of_code"
+ },
+ "book": {
+ "prefix": "book"
+ },
+ "buy": {
+ "prefix": "buy",
+ "subprojects": {
+ "books": {},
+ "pc": {}
+ }
+ },
+ "esc": {},
+ "latex": {
+ "prefix": "programming/latex"
+ },
+ "me": {
+ "subprojects": {
+ "bank": {},
+ "google": {},
+ "health": {},
+ "job": {},
+ "sweden": {}
+ }
+ },
+ "server": {
+ "prefix": "config",
+ "subprojects": {
+ "b-peetz": {},
+ "blog": {},
+ "ci": {},
+ "email": {},
+ "nix-sync": {},
+ "sudo-less": {}
+ }
+ },
+ "smartphone": {
+ "prefix": "hardware"
+ },
+ "system": {
+ "prefix": "config",
+ "subprojects": {
+ "backup": {},
+ "bar": {},
+ "email": {},
+ "firefox": {},
+ "gpg": {},
+ "keyboard": {},
+ "laptop": {},
+ "music": {},
+ "nvim": {},
+ "rss": {},
+ "shell": {},
+ "task": {},
+ "wm": {},
+ "youtube": {}
+ }
+ },
+ "timesinks": {
+ "subprojects": {
+ "games": {},
+ "music": {},
+ "netflix": {},
+ "youtube": {}
+ }
+ }
+}
diff --git a/modules/common/projects.json.license b/modules/common/projects.json.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/modules/common/projects.json.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.