🔧 home-manager for jobrad adjustments

This commit is contained in:
Your Name 2025-06-06 10:53:47 +02:00
commit 24309ae774
8 changed files with 265 additions and 68 deletions

116
flake.lock generated
View file

@ -192,7 +192,7 @@
},
"devshell_3": {
"inputs": {
"nixpkgs": "nixpkgs_9"
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1735644329,
@ -502,6 +502,21 @@
}
},
"flake-utils_3": {
"locked": {
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_4": {
"locked": {
"lastModified": 1631561581,
"narHash": "sha256-3VQMV5zvxaVLvqqUrNz3iJelLw30mIVSfZmAaauM3dA=",
@ -516,7 +531,7 @@
"type": "github"
}
},
"flake-utils_4": {
"flake-utils_5": {
"inputs": {
"systems": "systems_4"
},
@ -796,6 +811,25 @@
"type": "github"
}
},
"nixgl": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1713543440,
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
"owner": "nix-community",
"repo": "nixGL",
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixGL",
"type": "github"
}
},
"nixos-anywhere": {
"inputs": {
"disko": "disko_2",
@ -803,7 +837,7 @@
"nix-vm-test": "nix-vm-test",
"nixos-images": "nixos-images",
"nixos-stable": "nixos-stable",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_5",
"treefmt-nix": "treefmt-nix_3"
},
"locked": {
@ -1001,6 +1035,22 @@
"type": "github"
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1722073938,
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1722073938,
@ -1033,6 +1083,21 @@
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1660551188,
"narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1748719291,
"narHash": "sha256-lD4C9HmTBrSZjjAd9o/PlVF4tchH2LKDHPG/qc89wHY=",
@ -1048,7 +1113,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1748856973,
"narHash": "sha256-RlTsJUvvr8ErjPBsiwrGbbHYW8XbB/oek0Gi78XdWKg=",
@ -1064,7 +1129,7 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1632855891,
"narHash": "sha256-crW76mt9/kbUBiKy/KiSnsQ9JEYgD3StDuYAMVkTbM0=",
@ -1078,7 +1143,7 @@
"type": "indirect"
}
},
"nixpkgs_7": {
"nixpkgs_8": {
"locked": {
"lastModified": 1749032651,
"narHash": "sha256-1RLgqmQnvTD1F1BCxu70F2z3LtyHfi+JDy97eklH2E0=",
@ -1094,7 +1159,7 @@
"type": "github"
}
},
"nixpkgs_8": {
"nixpkgs_9": {
"locked": {
"lastModified": 1748460289,
"narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=",
@ -1110,22 +1175,6 @@
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1722073938,
"narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
@ -1174,8 +1223,8 @@
},
"polygon-art": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_6"
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1688766095,
@ -1233,12 +1282,12 @@
"rev": "0a4e7e258e95b844a9f0a4271b5fe2fc53d4b34d",
"revCount": 107,
"type": "git",
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
"url": "https://git.ingolf-wagner.de/palo/nixos-private-parts.git"
},
"original": {
"ref": "main",
"type": "git",
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git"
"url": "https://git.ingolf-wagner.de/palo/nixos-private-parts.git"
}
},
"root": {
@ -1252,9 +1301,10 @@
"home-manager-utils": "home-manager-utils",
"landingpage": "landingpage",
"nix-topology": "nix-topology",
"nixgl": "nixgl",
"nixos-anywhere": "nixos-anywhere",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_6",
"nixpkgs-unstable-small": "nixpkgs-unstable-small",
"permown": "permown",
"polygon-art": "polygon-art",
@ -1282,12 +1332,12 @@
"rev": "053268c75d347c4d7322a6a7753f635ec47bd008",
"revCount": 7,
"type": "git",
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git"
"url": "https://git.ingolf-wagner.de/palo/share-host.git"
},
"original": {
"ref": "main",
"type": "git",
"url": "ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git"
"url": "https://git.ingolf-wagner.de/palo/share-host.git"
}
},
"sops-nix": {
@ -1313,7 +1363,7 @@
},
"srvos": {
"inputs": {
"nixpkgs": "nixpkgs_7"
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1749085476,
@ -1430,7 +1480,7 @@
},
"taskshell": {
"inputs": {
"flake-utils": "flake-utils_4",
"flake-utils": "flake-utils_5",
"nixpkgs": [
"taskwarrior",
"nixpkgs"
@ -1453,7 +1503,7 @@
"taskwarrior": {
"inputs": {
"flake-parts": "flake-parts_8",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs_9",
"taskshell": "taskshell",
"treefmt-nix": "treefmt-nix_7"
},

View file

@ -20,6 +20,7 @@
landingpage.url = "github:mrVanDalo/landingpage";
nix-topology.inputs.nixpkgs.follows = "nixpkgs";
nix-topology.url = "github:oddlama/nix-topology";
nixgl.url = "github:nix-community/nixGL";
nixos-anywhere.url = "github:nix-community/nixos-anywhere";
nixos-hardware.url = "github:nixos/nixos-hardware";
nixpkgs-unstable-small.url = "github:nixos/nixpkgs/nixos-unstable-small";
@ -28,10 +29,11 @@
permown.url = "github:mrVanDalo/module.permown";
polygon-art.url = "git+https://git.ingolf-wagner.de/palo/polygon-art.git";
private-parts.inputs.nixpkgs.follows = "nixpkgs"; # only private input
private-parts.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git?ref=main";
private-parts.url = "git+https://git.ingolf-wagner.de/palo/nixos-private-parts.git?ref=main";
#private-parts.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/nixos-private-parts.git?ref=main";
#private-parts.url = "git+file:///home/palo/dev/nixos/nixos-private-parts";
share-http.inputs.nixpkgs.follows = "nixpkgs"; # only private input
share-http.url = "git+ssh://forgejo@git.ingolf-wagner.de:2222/palo/share-host.git?ref=main";
share-http.url = "git+https://git.ingolf-wagner.de/palo/share-host.git?ref=main";
srvos.url = "github:nix-community/srvos";
stylix.inputs.home-manager.follows = "home-manager";
stylix.inputs.nixpkgs.follows = "nixpkgs";
@ -64,6 +66,7 @@
home-manager-utils,
landingpage,
nix-topology,
nixgl,
nixos-anywhere,
nixos-hardware,
nixpkgs,
@ -107,6 +110,7 @@
inherit allowUnfree permittedInsecurePackages;
};
overlays = [
nixgl.overlay
(_self: _super: {
unstable-small = import nixpkgs-unstable-small {
inherit system;
@ -396,8 +400,55 @@
./nix/devshells.nix
./nix/packages
./nix/topology
home-manager.flakeModules.home-manager
];
flake = {
# Define home-manager configurations
homeConfigurations.ingolf-wagner = home-manager.lib.homeManagerConfiguration {
pkgs = meta.pkgs;
extraSpecialArgs = {
osConfig = {
networking.hostName = "jobrad-laptop";
};
};
modules = [
./homes/ingolf-wagner
stylix.homeModules.stylix
taskwarrior.hmModules.bugwarrior
(
{ pkgs, lib, ... }:
{
home.packages = [ pkgs.nixgl.nixGLIntel ];
#home-manager-utils.hmModule
# { home-manager.users.mainUser.gui.enable = true; }
stylix.enable = true;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
stylix.image = ./assets/wallpaper.png;
# no need for hyperland
# https://github.com/danth/stylix/issues/543
stylix.targets.hyprpaper.enable = lib.mkForce false;
stylix.targets.hyprland.enable = lib.mkForce false;
stylix.targets.swaylock.enable = lib.mkForce false;
stylix.targets.qt.platform = "qtct";
# running into strange problems
# fixme: remove if possible
stylix.targets.vim.enable = lib.mkForce false;
stylix.targets.mako.enable = lib.mkForce false;
}
)
];
};
};
# Define your clan
clan = {
# Clan wide settings.

View file

@ -0,0 +1,35 @@
{ pkgs, lib, ... }:
{
imports = [
../palo
./keymapper.nix
./taskwarrior.nix
];
gui.enable = true;
gui.bugwarrior.enable = false;
home.username = "ingolf-wagner";
home.homeDirectory = "/home/ingolf-wagner";
home.packages = [
pkgs.home-manager
pkgs.silver-searcher
pkgs.arandr
pkgs.xterm # just in case
];
home.shellAliases = {
ll = "ls -lah";
};
# todo check home-manager nixGL options
# we need nixGL to run kitty, because it depends on GL it's not nice, but not to bad either
xsession.windowManager.i3.config.terminal = lib.mkForce "nixGLIntel kitty";
programs.git = {
signing.signByDefault = lib.mkForce false;
userEmail = lib.mkForce "ingolf-wagner@jobrad.org";
};
}

View file

@ -0,0 +1,23 @@
# [keymapper](https://github.com/houmain/keymapper)
# - install system-wide by the provided releases
# - don't install pkgs.keymapper to avoid version incompatibilities
{ pkgs, ... }:
{
xdg.configFile."keymapper.conf".text = ''
CapsLock >> Escape
AltLeft{I} >> ArrowUp
AltLeft{K} >> ArrowDown
AltLeft{J} >> ArrowLeft
AltLeft{L} >> ArrowRight
'';
xsession.windowManager.i3.config.startup = [
{
command = "keymapper";
always = true;
}
];
}

View file

@ -0,0 +1,13 @@
{ pkgs, ... }:
{
programs.taskwarrior = {
enable = true;
package = pkgs.taskwarrior3;
config = {
uda.taskwarrior-tui = {
keyconfig.delete = "X";
keyconfig.done = "D";
};
};
};
}

View file

@ -8,4 +8,8 @@
./packages.nix
./social.nix
];
# todo update all stuff
programs.hwatch.enable = true; # instead of `watch`
programs.numbat.enable = true; # instead of `units`
}

View file

@ -1,6 +1,8 @@
{ pkgs, config, ... }:
{
stylix.enable = true;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-light-medium.yaml";
stylix.fonts = {

View file

@ -15,40 +15,59 @@ in
{
config = mkIf config.gui.enable {
bugwarrior.enable = true;
home.packages = [
pkgs.timewarrior
pkgs.bugwarrior
taskwarrior
pkgs.tasksh
pkgs.taskwarrior-hooks
(pkgs.writeShellScriptBin "tsak" ''${taskwarrior}/bin/task "$@"'')
pkgs.vit
taskwarrior-tui
(pkgs.writers.writeBashBin "active" "${taskwarrior-tui}/bin/taskwarrior-tui -r active")
(pkgs.writers.writeBashBin "todo" "${taskwarrior-tui}/bin/taskwarrior-tui -r todo")
(pkgs.writers.writeBashBin "calendar" ''
${taskwarrior}/bin/task calendar
${taskwarrior}/bin/task calendar_report
'')
# todo : belongs to calendar.nix
pkgs.vdirsyncer
pkgs.khal
(pkgs.writers.writeBashBin "kalendar" ''
${pkgs.vdirsyncer}/bin/vdirsyncer sync
${pkgs.khal}/bin/ikhal
'')
];
options.gui = {
taskwarrior.enable = mkOption {
type = lib.types.bool;
default = config.gui.enable;
};
bugwarrior.enable = mkOption {
type = lib.types.bool;
default = config.gui.taskwarrior.enable;
};
};
config = lib.mkMerge [
(lib.mkIf config.gui.bugwarrior.enable {
bugwarrior.enable = true;
home.packages = [
pkgs.bugwarrior
];
})
(lib.mkIf config.gui.taskwarrior.enable {
home.packages = [
pkgs.timewarrior
taskwarrior
pkgs.tasksh
pkgs.taskwarrior-hooks
(pkgs.writeShellScriptBin "tsak" ''${taskwarrior}/bin/task "$@"'')
pkgs.vit
taskwarrior-tui
(pkgs.writers.writeBashBin "active" "${taskwarrior-tui}/bin/taskwarrior-tui -r active")
(pkgs.writers.writeBashBin "todo" "${taskwarrior-tui}/bin/taskwarrior-tui -r todo")
(pkgs.writers.writeBashBin "calendar" ''
${taskwarrior}/bin/task calendar
${taskwarrior}/bin/task calendar_report
'')
# todo : belongs to calendar.nix
pkgs.vdirsyncer
pkgs.khal
(pkgs.writers.writeBashBin "kalendar" ''
${pkgs.vdirsyncer}/bin/vdirsyncer sync
${pkgs.khal}/bin/ikhal
'')
];
})
];
}