about summary refs log tree commit diff
path: root/home.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home.nix')
-rw-r--r--home.nix83
1 files changed, 65 insertions, 18 deletions
diff --git a/home.nix b/home.nix
index 49dd79a..7cf5f66 100644
--- a/home.nix
+++ b/home.nix
@@ -1,12 +1,20 @@
-{ config, lib, pkgs, ... }:
-
+{ config, lib, pkgs, system, nix-darwin-emacs, ... }:
 let
-  emacsFlake = builtins.getFlake "github:nix-giant/nix-darwin-emacs/065050b9e06a30c01b41539b75464fff972fecd6";
+  isDarwin = builtins.match ".*-darwin" system != null;
+
+  emacsPackage =
+    if isDarwin
+    then nix-darwin-emacs.packages.${system}.emacs-30
+    else pkgs.emacs-pgtk;
+
+  homeDirectory =
+    if isDarwin
+    then "/Users/venomade"
+    else "/home/venomade";
 in
 {
   home.username = "venomade";
-  home.homeDirectory = "/Users/venomade";
-
+  home.homeDirectory = homeDirectory;
   home.packages = with pkgs; [
 
     # Neovim
@@ -14,9 +22,16 @@ in
     imagemagick
     fzf
     ripgrep
+    fd
 
     # Emacs
-    (emacsFlake.packages.${system}.emacs-30)
+    emacsPackage
+    emacs-lsp-booster
+
+    # Kakoune
+    kakoune
+    kakoune-lsp
+    expect
 
     # Nix
     nil
@@ -24,20 +39,42 @@ in
     # Lua
     lua-language-server
     lua5_4
-    lua5_4.pkgs.luarocks
 
-    # Personal
+    # Rust
+    rustc
+    cargo
+    rust-analyzer
+    clippy
+
+    # C
+    clang
+    clang-tools
+    bear
+    valgrind
+
+    # Lisp
+    luaPackages.fennel
+    fnlfmt
+    fennel-ls
+
+    # Shell
+    zsh
+    tmux
     bat
+    bat-extras.batman
+    bat-extras.batdiff
     eza
     jellyfin-tui
     lazygit
     starship
     yazi
     zk
-    lima
-
-    ];
+    harper
+    translate-shell
 
+  ] ++ lib.optionals isDarwin [
+    lima
+  ];
   programs.git = {
     enable = true;
     settings.user = {
@@ -47,20 +84,30 @@ in
   };
 
   home.stateVersion = "25.11";
-
   programs.home-manager.enable = true;
-
-  home.file =
+	home.file =
     let
-      dir = "${config.home.homeDirectory}/.dotfiles/config";
-    in
-      lib.mapAttrs
+      configDir = "${config.home.homeDirectory}/.dotfiles/config";
+      dotsDir = "${config.home.homeDirectory}/.dotfiles/dots";
+
+      configEntries = lib.mapAttrs
         (name: _: {
           target = ".config/${name}";
-          source = config.lib.file.mkOutOfStoreSymlink "${dir}/${name}";
+          source = config.lib.file.mkOutOfStoreSymlink "${configDir}/${name}";
           recursive = true;
         })
         (lib.filterAttrs
           (name: type: type == "directory")
           (builtins.readDir ./config));
+
+      dotsEntries = lib.mapAttrs
+        (name: _: {
+          target = ".${name}";
+          source = config.lib.file.mkOutOfStoreSymlink "${dotsDir}/${name}";
+        })
+        (lib.filterAttrs
+          (name: type: type == "regular")
+          (builtins.readDir ./dots));
+    in
+      configEntries // dotsEntries;
 }