aboutsummaryrefslogtreecommitdiff
path: root/home-manager/home.nix
blob: d4bd6247629718be81ca0f93bd6b08c30db4230e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
{ config, lib, pkgs, symlinkRoot, inputs, username, ... }:
let
  inherit (config.lib.file) mkOutOfStoreSymlink;
  inherit (lib) flatten flip map mergeAttrsList;

  pipe = flip lib.pipe;
  flatMerge = pipe [flatten mergeAttrsList];

  toSrcFile = name: "${symlinkRoot}/${name}";
  link = pipe [toSrcFile mkOutOfStoreSymlink];

  linkFile = name: {${name}.source = link name;};
  linkDir = name: {
    ${name} = {
      source = link name;
      recursive = true;
    };
  };

  linkConfFiles = map linkFile;
  linkConfDirs = map linkDir;

  confFiles = linkConfFiles [
    "starship.toml"
    ".xinitrc"
  ];

  confDirs = linkConfDirs [
    "fortune"
    "lxqt"
    "i3"
    "rofi"
    "nvim"
    "kitty"
    "tmux"
    "vnc"
    "yazi"
  ];

  links = flatMerge [confFiles confDirs];
in {
  # imports = [ inputs.pi-flake.homeManagerModules.default ];
  xdg.configFile = links;

  home.username = username;
  home.homeDirectory = "/home/${username}";
  home.stateVersion = "25.05";
  home.packages = with pkgs; [
    devenv
  ];

  home.file = {
    ".bashrc".text = ''
      # exiting on non interactive shell
      [[ $- != *i* ]] && return

      bash_starship_init_code=$(starship init bash)
      STARSHIP_DEV_MODE=1
      eval "$bash_starship_init_code"
    '';
  };
  home.sessionVariables = {
    EDITOR = "nvim";
  };
  programs.home-manager.enable = true;
  # programs.pi-coding-agent = {
  #   enable = true;
  #   package = inputs.pi-flake.packages.${pkgs.stdenv.hostPlatform.system}.default;
  #   mutableDir = true;
  #   models = {
  #     providers = {
  #       # my-provider = {
  #       #   baseUrl = "https://api.openai.com/v1";
  #       #   api = "openai-completions";
  #       #   apiKey = "sk-...";
  #       #   models = [{ id = "gpt-4o"; }];
  #       # };
  #     };
  #   };
  #
  #   extensions = [
  #     "npm:pi-subagents"
  #   ];
  # };
}