184 lines
5.0 KiB
Nix
184 lines
5.0 KiB
Nix
{ self, inputs, ... }:
|
|
let
|
|
username = "john";
|
|
in
|
|
{
|
|
flake.modules = {
|
|
nixos.zsh = { pkgs, ... }: {
|
|
users.users."${username}".shell = pkgs.zsh;
|
|
programs.zsh.enable = true;
|
|
# Already being imported by the john.nix module
|
|
# home-manager.sharedModules = [
|
|
# inputs.self.modules.homeManager.zsh
|
|
# ];
|
|
};
|
|
|
|
homeManager.zsh = { pkgs, config, ... }: {
|
|
programs.zsh = {
|
|
enable = true;
|
|
package = pkgs.zsh;
|
|
enableCompletion = true;
|
|
autosuggestion.enable = true;
|
|
# syntaxHighlighting.enable = true;
|
|
initContent = "HOST=$(hostname -s)";
|
|
dotDir = "${config.xdg.configHome}/zsh";
|
|
history = {
|
|
append = true;
|
|
ignoreAllDups = true;
|
|
ignorePatterns = [
|
|
"history"
|
|
"ls"
|
|
"eza"
|
|
"clear"
|
|
];
|
|
save = 1000;
|
|
size = 1000;
|
|
share = true;
|
|
};
|
|
oh-my-zsh = {
|
|
enable = true;
|
|
# theme = "risto";
|
|
theme = "agnoster";
|
|
plugins = [
|
|
"sudo"
|
|
"dotenv"
|
|
"git"
|
|
"ssh"
|
|
"ssh-agent"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
perSystem = { system, pkgs, ... }: {
|
|
packages.jsl-zsh = inputs.wrapper-modules.wrappers.zsh.wrap {
|
|
inherit pkgs;
|
|
extraPackages = with pkgs; [
|
|
inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.neovim-min
|
|
btop
|
|
coreutils
|
|
curl
|
|
wget
|
|
yazi
|
|
zsh
|
|
];
|
|
};
|
|
|
|
packages.neovim-min = ((inputs.nvf.lib.neovimConfiguration {
|
|
inherit pkgs;
|
|
modules = [
|
|
{
|
|
# https://nvf.notashelf.dev/search.html
|
|
config.vim = {
|
|
options = {
|
|
number = true;
|
|
relativenumber = true;
|
|
expandtab = true;
|
|
shiftwidth = 4;
|
|
tabstop = 4;
|
|
softtabstop = 4;
|
|
|
|
wrap = true;
|
|
linebreak = true;
|
|
};
|
|
|
|
syntaxHighlighting = true;
|
|
|
|
# Enable custom theming options
|
|
theme.enable = true;
|
|
theme.name = "catppuccin";
|
|
theme.style = "mocha";
|
|
|
|
git.enable = true;
|
|
# git.neogit.enable = true;
|
|
extraPlugins = with pkgs.vimPlugins; {
|
|
octo = {
|
|
package = octo-nvim;
|
|
after = ["telescope"];
|
|
};
|
|
};
|
|
|
|
# https://github.com/akinsho/toggleterm.nvim
|
|
terminal.toggleterm.enable = true;
|
|
terminal.toggleterm.lazygit.enable = true;
|
|
terminal.toggleterm.lazygit.direction = "float";
|
|
terminal.toggleterm.lazygit.mappings.open = "<C-g>";
|
|
|
|
utility.nix-develop.enable = true;
|
|
|
|
filetree.neo-tree.enable = true;
|
|
|
|
telescope = {
|
|
enable = true;
|
|
extensions = [
|
|
{
|
|
name = "fzf";
|
|
packages = [pkgs.vimPlugins.telescope-fzf-native-nvim];
|
|
setup = {fzf = {fuzzy = true;};};
|
|
}
|
|
];
|
|
};
|
|
|
|
languages = {
|
|
enableTreesitter = true;
|
|
enableFormat = true;
|
|
|
|
markdown = {
|
|
enable = true;
|
|
extensions = {
|
|
markview-nvim.enable = true;
|
|
};
|
|
};
|
|
|
|
bash.enable = true;
|
|
yaml.enable = true;
|
|
toml.enable = true;
|
|
nix.enable = true;
|
|
};
|
|
|
|
keymaps = [
|
|
{
|
|
desc = "Edit key mappings";
|
|
key = "<leader>ekm";
|
|
mode = [ "n" ];
|
|
silent = false;
|
|
action = "<cmd>:edit +/keymaps /home/john/.config/home-manager/jsl-dendritic/modules/programs/neovim.nix<CR>";
|
|
}
|
|
{
|
|
desc = "Home Manager Switch";
|
|
key = "<leader>nhms";
|
|
mode = [ "n" ];
|
|
silent = false;
|
|
action = "<cmd>:TermExec cmd='clear && nhms && exit' name='Nix Home Manager Switch' direction=float<CR>";
|
|
}
|
|
{
|
|
desc = "Key Maps [Telescope]";
|
|
key = "<leader>fkm";
|
|
mode = "n";
|
|
silent = false;
|
|
action = "<cmd>:Telescope keymaps<CR>";
|
|
}
|
|
{
|
|
desc = "Toggle Filesystem Tree [NeoTree]";
|
|
key = "<C-b>";
|
|
mode = [ "n" "v" "t" ];
|
|
silent = false;
|
|
action = "<cmd>:Neotree toggle filesystem left action=show<CR>";
|
|
}
|
|
{
|
|
key = "<C-`>";
|
|
mode = ["n" "v" "t"];
|
|
silent = false;
|
|
action = "<cmd>:ToggleTerm<CR>";
|
|
}
|
|
];
|
|
};
|
|
}
|
|
];
|
|
}).neovim).overrideAttrs (old: {
|
|
pname = "neovim-min";
|
|
version = "custom";
|
|
});
|
|
};
|
|
} |