update: home-manger config

This commit is contained in:
FabricSoul 2025-05-06 18:45:27 -04:00
parent 9f836545d6
commit 8ce9227801
15 changed files with 524 additions and 234 deletions

View file

@ -14,16 +14,19 @@
./programs/tmux.nix
./programs/zsh.nix
./programs/ssh.nix
./programs/yazi.nix
# Import desktop configurations
./desktop/hyprland.nix
./desktop/hyprpanel.nix
./desktop/hyprpaper.nix
./desktop/hypridle.nix
];
# Home Manager needs a bit of information about you and the paths it should manage
home.username = "fabric";
home.homeDirectory = "/home/fabric";
home.stateVersion = "24.11";
home.stateVersion = "25.05";
# Session variables
home.sessionVariables = {
@ -42,11 +45,80 @@
kitty
firefox
mpv
nerdfonts
nerd-fonts.dejavu-sans-mono
nerd-fonts.daddy-time-mono
nerd-fonts.d2coding
nerd-fonts.cousine
nerd-fonts.commit-mono
nerd-fonts.comic-shanns-mono
nerd-fonts.code-new-roman
nerd-fonts.caskaydia-mono
nerd-fonts.caskaydia-cove
nerd-fonts.blex-mono
nerd-fonts.bitstream-vera-sans-mono
nerd-fonts.bigblue-terminal
nerd-fonts.aurulent-sans-mono
nerd-fonts.arimo
nerd-fonts.anonymice
nerd-fonts.agave
nerd-fonts._3270
nerd-fonts._0xproto
nerd-fonts.zed-mono
nerd-fonts.victor-mono
nerd-fonts.ubuntu-sans
nerd-fonts.ubuntu-mono
nerd-fonts.ubuntu
nerd-fonts.tinos
nerd-fonts.terminess-ttf
nerd-fonts.symbols-only
nerd-fonts.space-mono
nerd-fonts.shure-tech-mono
nerd-fonts.sauce-code-pro
nerd-fonts.roboto-mono
nerd-fonts.recursive-mono
nerd-fonts.proggy-clean-tt
nerd-fonts.profont
nerd-fonts.overpass
nerd-fonts.open-dyslexic
nerd-fonts.noto
nerd-fonts.mononoki
nerd-fonts.monoid
nerd-fonts.monofur
nerd-fonts.monaspace
nerd-fonts.meslo-lg
nerd-fonts.martian-mono
nerd-fonts.lilex
nerd-fonts.liberation
nerd-fonts.lekton
nerd-fonts.jetbrains-mono
nerd-fonts.iosevka-term-slab
nerd-fonts.iosevka-term
nerd-fonts.iosevka
nerd-fonts.intone-mono
nerd-fonts.inconsolata-lgc
nerd-fonts.inconsolata-go
nerd-fonts.inconsolata
nerd-fonts.im-writing
nerd-fonts.hurmit
nerd-fonts.heavy-data
nerd-fonts.hasklug
nerd-fonts.hack
nerd-fonts.gohufont
nerd-fonts.go-mono
nerd-fonts.geist-mono
nerd-fonts.fira-mono
nerd-fonts.fira-code
nerd-fonts.fantasque-sans-mono
nerd-fonts.envy-code-r
nerd-fonts.droid-sans-mono
nerd-fonts.departure-mono
wl-clipboard
tmux
discord
fzf
yazi
zsh
pavucontrol
wofi
@ -74,6 +146,20 @@
btop
leetgo
gnumake
openapi-tui
sqlite
tree
openconnect
lynx
mdbook
zola
unzip
hugo
sass
sshfs
tree-sitter
heroic
gimp3
];
# Enable home-manager

View file

@ -0,0 +1,14 @@
{...}: {
services.hypridle = {
enable = true;
settings = {
listener = [
{
timeout = 600;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
}

View file

@ -15,7 +15,7 @@
general = {
gaps_in = 0;
gaps_out = "0, 600, 0, 600";
gaps_out = "0, 440, 0, 440";
};
input = {
@ -28,9 +28,9 @@
];
windowrule = [
"workspace 6 silent,^(discord)$"
"workspace 4 silent,^(kitty)$"
"workspace 5 silent,^(firefox)$"
"workspace 6 silent,class:^(discord)$"
"workspace 4 silent,class:^(kitty)$"
"workspace 5 silent,class:^(firefox)$"
];
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
@ -75,9 +75,10 @@
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
];
# monitor = [
# "DP-3,preferred,auto,1,workspace=1,addreserved,200,200,0,0"
# ];
monitor = [
"DP-3, 3440x1440@144.00HZ, 0x0, 1"
];
};
};
home.sessionVariables.NIXOS_OZONE_WL = "1";

View file

@ -17,27 +17,23 @@
enable = true;
# Add to Hyprland config
hyprland.enable = true;
# hyprland.enable = true;
# Fix the overwrite issue
overwrite.enable = false;
# Import a theme
theme = "rose_pine_moon_split";
# Configure bar layouts for monitors
layout = {
"bar.layouts" = {
"0" = {
left = ["dashboard" "workspaces" "windowtitle"];
middle = ["clock"];
right = ["volume" "network" "bluetooth" "systray" "media" "notifications"];
};
};
};
# Configure and theme options
settings = {
# Configure bar layouts for monitors
layout = {
"bar.layouts" = {
"0" = {
left = ["dashboard" "workspaces" "windowtitle"];
middle = ["clock"];
right = ["volume" "network" "bluetooth" "systray" "media" "notifications"];
};
};
};
bar.launcher.autoDetectIcon = true;
bar.workspaces.show_icons = true;
@ -52,6 +48,8 @@
menus.dashboard.directories.enabled = false;
menus.dashboard.stats.enable_gpu = true;
# Import a theme
theme.name = "rose_pine_moon_split";
theme.bar.transparent = false;
theme.font = {

View file

@ -0,0 +1,14 @@
# home/fabric/desktop/wallpaper.nix
{...}: {
services.hyprpaper = {
enable = true;
settings = {
preload = [
"~/Pictures/wallpaper/wallpaper.jpg"
];
wallpaper = [
",~/Pictures/wallpaper/wallpaper.jpg"
];
};
};
}

View file

@ -2,7 +2,93 @@
{pkgs, ...}: {
programs.nixvim = {
enable = true;
diagnostic.settings = {
enable = true;
update_in_insert = true;
severity_sort = true;
# NOTE: Opt-in with 0.11
virtual_text = {
enable = true;
severity.min = "warn";
source = "if_many";
};
virtual_lines = {
current_line = true;
};
float = {
border = "rounded";
};
jump = {
severity.__raw = "vim.diagnostic.severity.WARN";
};
signs = {
text = {
"__rawKey__vim.diagnostic.severity.ERROR" = "";
"__rawKey__vim.diagnostic.severity.WARN" = "";
"__rawKey__vim.diagnostic.severity.HINT" = "󰌵";
"__rawKey__vim.diagnostic.severity.INFO" = "";
};
texthl = {
"__rawKey__vim.diagnostic.severity.ERROR" = "DiagnosticError";
"__rawKey__vim.diagnostic.severity.WARN" = "DiagnosticWarn";
"__rawKey__vim.diagnostic.severity.HINT" = "DiagnosticHint";
"__rawKey__vim.diagnostic.severity.INFO" = "DiagnosticInfo";
};
};
};
plugins = {
avante = {
enable = true;
settings = {
diff = {
autojump = true;
debug = false;
list_opener = "copen";
};
highlights = {
diff = {
current = "DiffText";
incoming = "DiffAdd";
};
};
hints = {
enabled = true;
};
mappings = {
diff = {
both = "cb";
next = "]x";
none = "c0";
ours = "co";
prev = "[x";
theirs = "ct";
};
jump = {
next = "]]";
prev = "[[";
};
};
# provider = "ollama";
# ollama = {
# endpoint = "http://127.0.0.1:11434";
# model = "gemma3:12b";
# };
windows = {
sidebar_header = {
align = "center";
rounded = true;
};
width = 30;
wrap = true;
};
};
};
nvim-ufo.enable = true;
render-markdown.enable = true;
nui.enable = true;
auto-session = {
enable = true;
@ -23,7 +109,7 @@
};
web-devicons.enable = true;
nix.enable = true;
bufferline.enable = true;
bufferline.enable = false;
lualine.enable = true;
luasnip.enable = true;
yanky = {
@ -34,11 +120,33 @@
};
ts-comments.enable = true;
telescope = {
settings = {
pickers = {
find_files = {
hidden = true;
};
};
};
enable = true;
keymaps = {
"<leader> " = {
action = "find_files";
};
"<leader>tl" = {
action = "live_grep";
};
"<leader>td" = {
action = "lsp_definitions";
};
"<leader>tr" = {
action = "lsp_references";
};
"<leader>ti" = {
action = "lsp_implementations";
};
"<leader>ts" = {
action = "lsp_document_symbols";
};
};
settings = {
defaults = {
@ -51,11 +159,6 @@
"%.ipynb"
"^node_modules/"
"^.next/"
"%.env"
"%.env.local"
"%.env.development.local"
"%.env.test.local"
"%.env.production.local"
"^npm-debug.log"
"^yarn-debug.log"
"^yarn-error.log"
@ -67,7 +170,9 @@
"^tailwind.config.js.backup"
"%.css.map"
"^styles/dist/"
".*_templ%.go$"
];
hidden = true;
};
};
};
@ -111,16 +216,16 @@
indent-blankline.enable = true;
harpoon = {
enable = true;
keymaps = {
addFile = "<leader>ha";
toggleQuickMenu = "<C-e>";
navFile = {
"1" = "<leader>h;";
"2" = "<leader>h,";
"3" = "<leader>h.";
"4" = "<leader>hp";
};
};
# keymaps = {
# addFile = "<leader>ha";
# toggleQuickMenu = "<C-e>";
# navFile = {
# "1" = "<leader>h;";
# "2" = "<leader>h,";
# "3" = "<leader>h.";
# "4" = "<leader>hp";
# };
# };
};
yazi.enable = true;
gitsigns = {
@ -259,9 +364,19 @@
lsp = {
enable = true;
inlayHints = true;
keymaps.lspBuf = {
K = "hover";
gD = "references";
gd = "definition";
gi = "implementation";
gt = "type_definition";
};
servers = {
ts_ls.enable = true;
eslint.enable = true;
templ.enable = true;
htmx.enable = true;
nil_ls = {
enable = true;
};
@ -284,6 +399,7 @@
enable = true;
settings = {
hints = {
enable = true;
assignVariableTypes = true;
compositeLiteralFields = true;
compositeLiteralTypes = true;
@ -339,16 +455,26 @@
vim-suda.enable = true;
};
extraPlugins = [
(pkgs.vimUtils.buildVimPlugin {
name = "plenary.nvim";
src = pkgs.fetchFromGitHub {
owner = "nvim-lua";
repo = "plenary.nvim";
rev = "v0.1.4";
hash = "sha256-zR44d9MowLG1lIbvrRaFTpO/HXKKrO6lbtZfvvTdx+o=";
};
})
];
extraConfigLua = ''
vim.lsp.inlay_hint.enable(true)
vim.filetype.add({
extension = {
cob = "cobweb",
cobweb = "cobweb",
},
})
local parser_config = require "nvim-treesitter.parsers".get_parser_configs()
parser_config.cobweb = {
install_info = {
url = "~/tree-sitter-cobweb", -- local path or git repo
files = {"src/parser.c"},
generate_requires_npm = false,
requires_generate_from_grammar = false,
},
filetype = "cobweb",
}
'';
globals.mapleader = " ";
opts = {
relativenumber = true;
@ -373,6 +499,42 @@
colorcolumn = "80";
};
keymaps = [
{
mode = "n";
key = "<leader>ha";
action.__raw = "function() require'harpoon':list():add() end";
options.desc = "Harpoon add file";
}
{
mode = "n";
key = "<C-e>";
action.__raw = "function() require'harpoon'.ui:toggle_quick_menu(require'harpoon':list()) end";
options.desc = "Harpoon quick menu";
}
{
mode = "n";
key = "<leader>h;";
action.__raw = "function() require'harpoon':list():select(1) end";
options.desc = "Harpoon file 1";
}
{
mode = "n";
key = "<leader>h,";
action.__raw = "function() require'harpoon':list():select(2) end";
options.desc = "Harpoon file 2";
}
{
mode = "n";
key = "<leader>h.";
action.__raw = "function() require'harpoon':list():select(3) end";
options.desc = "Harpoon file 3";
}
{
mode = "n";
key = "<leader>hp";
action.__raw = "function() require'harpoon':list():select(4) end";
options.desc = "Harpoon file 4";
}
{
mode = "n";
key = "<C-h>";
@ -480,13 +642,6 @@
key = "<leader>p";
action = "\"_dP";
}
# Toggleterm
# {
# mode = "n";
# key = "<leader>t";
# action = ":ToggleTerm direction=float<CR>";
# }
];
colorschemes.rose-pine.enable = true;
};

View file

@ -24,9 +24,9 @@
# Vi copy mode bindings
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"
bind-key P paste-buffer
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pbcopy"
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy"
'';
};
}

View file

@ -0,0 +1,17 @@
# home/fabric/programs/yazi.nix
{
config,
pkgs,
...
}: {
programs = {
yazi = {
enable = true;
settings = {
manager = {
show_hidden = true;
};
};
};
};
}

View file

@ -17,10 +17,19 @@
];
};
initExtra = ''
export PATH="/home/fabric/.deno/bin:$PATH"
export PATH=$PATH:(go env GOPATH)/bin
alias wails='$(go env GOPATH)/bin/wails'
export PATH="/home/fabric/.deno/bin:$PATH"
export PATH="/home/fabric/.local/lib/bin:$PATH"
export PATH=$PATH:(go env GOPATH)/bin
GOPATH=$HOME/go
PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
PATH="$HOME/.govm/shim:$PATH"
alias t="tmux"
alias ta="tmux attach"
alias n="nvim"
alias gmt="go mod tidy"
alias gmi="go mod init"
'';
prezto = {
tmux = {