-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathrobert.nix
112 lines (103 loc) · 3.17 KB
/
robert.nix
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
{
pkgs,
perSystem,
system,
inputs,
lib,
config,
...
}:
let
steelWithLsp = perSystem.steel.default.overrideAttrs (oldAttrs: {
cargoBuildFlags = "-p cargo-steel-lib -p steel-interpreter -p steel-language-server";
});
in
{
imports = [
inputs.self.homeModules.my-config
inputs.self.homeModules.my-programs-fish
];
home.packages = [
perSystem.helix.helix
perSystem.helix.helix-cogs
perSystem.self.schemat
pkgs.curl
pkgs.direnv
pkgs.eza
pkgs.fd
pkgs.fish-lsp
pkgs.fzf
pkgs.git
pkgs.git-open
pkgs.gum
pkgs.home-manager
pkgs.jq
pkgs.jujutsu
pkgs.just
pkgs.lazygit
pkgs.neovim
pkgs.nix-direnv
pkgs.nix-output-monitor
pkgs.nixfmt-rfc-style
pkgs.nushell
pkgs.ripgrep
pkgs.tealdeer
pkgs.tmux
pkgs.vim
pkgs.wget
pkgs.zoxide
steelWithLsp
];
my.config.force = true;
my.config.source = {
".config/ghostty/config" = "ghostty/config";
".config/ghostty/macos-config" = lib.mkIf pkgs.stdenv.isDarwin "ghostty/macos-config";
".config/ghostty/linux-config" = lib.mkIf pkgs.stdenv.isLinux "ghostty/linux-config";
".config/kitty" = "kitty";
".config/helix" = "helix";
".config/tmux" = "tmux";
".config/git" = "git";
".config/zed" = "zed";
".config/fish" = "fish";
".config/direnv/direnv.toml" = "direnv/direnv.toml";
".zshenv" = "zsh/home_zshenv";
".config/zsh" = "zsh";
};
# This needs to be in a known location so it can be sourced regardless
# of whether we're in standalone HM or as a system module.
home.file.".local/share/zsh/hm-session-vars.sh".source =
"${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh";
# Since hm-session-vars is consistent and will be sourced, ZDOTDIR can
# be set declaratively and will be used by ZSH during init.
home.sessionVariables.ZDOTDIR = "$HOME/.config/zsh";
# Ordinarily, the direnv module would set this automatically.
home.file.".config/direnv/lib/nix-direnv.sh".source =
"${pkgs.nix-direnv}/share/nix-direnv/direnvrc";
# On macOS, this is intended to suppress the login welcome message.
home.file.".hushlogin".source = lib.mkIf pkgs.stdenv.isDarwin pkgs.emptyFile;
# My change to helix-cogs generates a 'steel-language-server' directory,
# and since steel doesn't care if the directories are nested, it's possible
# to use it directly. Using recursive in case I want to add any modules
# manually later on.
home.file.".local/share/steel" = {
source = perSystem.helix.helix-cogs;
recursive = true;
};
home.sessionVariables.STEEL_HOME = "$HOME/.local/share/steel";
home.sessionVariables.STEEL_LSP_HOME = "$HOME/.local/share/steel/steel-language-server";
my.programs.fish.plugins = [
(pkgs.fetchFromGitHub {
owner = "IlanCosman";
repo = "tide";
rev = "44c521ab292f0eb659a9e2e1b6f83f5f0595fcbd"; # as of 2025-01-01
hash = "sha256-85iU1QzcZmZYGhK30/ZaKwJNLTsx+j3w6St8bFiQWxc=";
})
];
nix.registry = {
nixpkgs.flake = inputs.nixpkgs;
blueprint.flake = inputs.blueprint;
home-manager.flake = inputs.home-manager;
nix-darwin.flake = inputs.nix-darwin;
helix.flake = inputs.helix;
};
}