121 lines
2.7 KiB
Nix
121 lines
2.7 KiB
Nix
{ config, pkgs, inputs, ... }:
|
|
|
|
{
|
|
home.username = "julian";
|
|
home.homeDirectory = "/home/julian";
|
|
|
|
# DO NOT CHANGE!!!
|
|
home.stateVersion = "23.11";
|
|
|
|
home.packages = with pkgs; [
|
|
# Code formatters for use with doom emacs
|
|
nixfmt # nix
|
|
dockfmt # docker
|
|
google-java-format # java
|
|
|
|
# Lsps for use with doom emacs
|
|
# neocmakelsp # cmake
|
|
|
|
# Rust setup
|
|
rustc
|
|
cargo
|
|
rust-analyzer
|
|
|
|
# Further tools
|
|
lazygit
|
|
|
|
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
|
|
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
|
# echo "Hello, ${config.home.username}!"
|
|
# '')
|
|
];
|
|
|
|
programs = {
|
|
neovim = let
|
|
toLua = str: ''
|
|
lua << EOF
|
|
${str}
|
|
EOF
|
|
'';
|
|
in {
|
|
# https://www.youtube.com/watch?v=YZAnJ0rwREA
|
|
enable = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
# vimdiffAlias = true;
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
{
|
|
plugin = dracula-nvim;
|
|
config = "colorscheme dracula";
|
|
}
|
|
{
|
|
plugin = comment-nvim;
|
|
config = toLua ''require("Comment").setup()'';
|
|
}
|
|
|
|
# nix file support
|
|
vim-nix
|
|
|
|
# Syntax highlighting
|
|
(nvim-treesitter.withPlugins (p: [
|
|
p.tree-sitter-nix
|
|
p.tree-sitter-vim
|
|
p.tree-sitter-bash
|
|
p.tree-sitter-lua
|
|
p.tree-sitter-python
|
|
p.tree-sitter-json
|
|
p.tree-sitter-cpp
|
|
p.tree-sitter-rust
|
|
]))
|
|
];
|
|
|
|
# extraLuaConfig = "\n";
|
|
|
|
extraLuaConfig = ''
|
|
vim.o.termguicolors = true
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
home.file = {
|
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
|
# # symlink to the Nix store copy.
|
|
# ".screenrc".source = dotfiles/screenrc;
|
|
|
|
# # You can also set the file content immediately.
|
|
# ".gradle/gradle.properties".text = ''
|
|
# org.gradle.console=verbose
|
|
# org.gradle.daemon.idletimeout=3600000
|
|
# '';
|
|
|
|
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
|
|
".config/alacritty" = {
|
|
source = ../alacritty;
|
|
recursive = true;
|
|
};
|
|
};
|
|
|
|
# Home Manager can also manage your environment variables through
|
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
|
# either
|
|
#
|
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
#
|
|
# or
|
|
#
|
|
# /etc/profiles/per-user/julian/etc/profile.d/hm-session-vars.sh
|
|
#
|
|
home.sessionVariables = {
|
|
# EDITOR = "emacs";
|
|
};
|
|
|
|
# Let Home Manager install and manage itself.
|
|
programs.home-manager.enable = true;
|
|
}
|