From 6026661a77d361b2998b5381d387f02d7851f9fb Mon Sep 17 00:00:00 2001 From: asnev Date: Mon, 12 Oct 2026 15:03:18 +0700 Subject: [PATCH] nvf for realsies... (also flake.lock update) --- flake.lock | 74 +++++++++++++--- flake.nix | 4 + home/coyote/default.nix | 30 +++---- home/coyote/nvf.nix | 181 ++++++++++++++++++++++++++++++++++++++++ home/coyote/vim.nix | 69 --------------- modules/common.nix | 5 ++ 6 files changed, 270 insertions(+), 93 deletions(-) create mode 100644 home/coyote/nvf.nix delete mode 100644 home/coyote/vim.nix diff --git a/flake.lock b/flake.lock index baa0e20..dc60a28 100644 --- a/flake.lock +++ b/flake.lock @@ -1,15 +1,31 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1777699697, + "narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=", + "ref": "refs/heads/main", + "rev": "382052b74656a369c5408822af3f2501e9b1af81", + "revCount": 94, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, "flake-utils": { "inputs": { "systems": "systems" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "lastModified": 1791914995, + "narHash": "sha256-Zf/xfQEAasnwnmEfHqW/4hjDE/s44yn2hD4RuVIZRjA=", "owner": "numtide", "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "rev": "b7a79d3fea1e214f6d668d521cecec0c01e26544", "type": "github" }, "original": { @@ -25,11 +41,11 @@ ] }, "locked": { - "lastModified": 1790996401, - "narHash": "sha256-f+kOxEmOUnQazVAmGg0i8hzwgd1kX/geY+k/Dpheye8=", + "lastModified": 1792274446, + "narHash": "sha256-AM1HmBeDnB2B3dSiXuCYeu7Me+lHNpz/P39lVxGJBuQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "db7d5e2332710f5abb088f6b5de927d7f9511b35", + "rev": "ab3823b4b24c0c3ca984c1f3ee577fd6d667424c", "type": "github" }, "original": { @@ -39,13 +55,28 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1784154424, + "narHash": "sha256-HRn4O1X2ShYtbq5Egji72/aemyc2cIQicjRZD9hBqM8=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "0151d9fa87992cbeb67c86616fb9170dcec830b6", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1791426274, - "narHash": "sha256-MWhktfFtFE8Jl7bf9Pkp7TR5MSdYCjCswSo0Gkb4ywc=", + "lastModified": 1792295010, + "narHash": "sha256-F7meJtbqGttmUoMmYjRRgkVs42sn7bh7vvRvLPlUN98=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7c8764b7c7b09b34f632464276218ef9090eaa11", + "rev": "8ce73368d1efd4d657e9064d29b144a52046b4e8", "type": "github" }, "original": { @@ -71,12 +102,35 @@ "type": "github" } }, + "nvf": { + "inputs": { + "flake-compat": "flake-compat", + "mnw": "mnw", + "nixpkgs": [ + "nixpkgs-unstable" + ] + }, + "locked": { + "lastModified": 1792175215, + "narHash": "sha256-XD64JVLV8iE4lR+W5gkTweEaT+SBwOrSy0+le2WgITI=", + "owner": "NotAShelf", + "repo": "nvf", + "rev": "a736b60b1e2019931168979951c94dc46e342957", + "type": "github" + }, + "original": { + "owner": "NotAShelf", + "repo": "nvf", + "type": "github" + } + }, "root": { "inputs": { "flake-utils": "flake-utils", "home-manager": "home-manager", "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable" + "nixpkgs-unstable": "nixpkgs-unstable", + "nvf": "nvf" } }, "systems": { diff --git a/flake.nix b/flake.nix index 0897f85..6d11062 100644 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,10 @@ url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + nvf = { + url = "github:NotAShelf/nvf"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; flake-utils = { url = "github:numtide/flake-utils"; }; diff --git a/home/coyote/default.nix b/home/coyote/default.nix index 930328e..7cffc59 100644 --- a/home/coyote/default.nix +++ b/home/coyote/default.nix @@ -1,6 +1,11 @@ -{pkgs, ...}: { +{ + inputs, + pkgs, + ... +}: { imports = [ - ./vim.nix + inputs.nvf.homeManagerModules.default + ./nvf.nix ]; home.stateVersion = "26.05"; # Nope, didn't read the comment either. @@ -15,6 +20,8 @@ karp keepassxc pdfarranger + # emacs + emacs # multimedia furnace corrscope @@ -27,15 +34,14 @@ # games osu-lazer-bin pcsx2 + ppsspp # emulation (unstable.bottles.override {removeWarningPopup = true;}) # devel - unstable.ocaml unstable.racket unstable.lazygit unstable.opencode - unstable.nodejs - unstable.python315 + treesitter-cli ]; programs = { @@ -60,12 +66,10 @@ git = { enable = true; - userName = "asnev"; - userEmail = "notasnev@proton.me"; - signing = { - key = "/home/coyote/.ssh/id_ed25519.pub"; - format = "ssh"; - }; + settings.user.name = "asnev"; + settings.user.email = "notasnev@proton.me"; + signing.key = "/home/coyote/.ssh/id_ed25519.pub"; + signing.format = "ssh"; includes = [ { condition = "gitdir:/home/coyote/NixOS/"; @@ -87,7 +91,7 @@ enable = true; clock24 = true; baseIndex = 1; - shortcut = "a"; + shortcut = "b"; keyMode = "vi"; terminal = "tmux-256color"; escapeTime = 10; @@ -118,8 +122,6 @@ renamed = "r"; deleted = "d"; }; - character.success_symbol = "[λ](bold green)"; - character.error_symbol = "[λ](bold red)"; }; }; diff --git a/home/coyote/nvf.nix b/home/coyote/nvf.nix new file mode 100644 index 0000000..3cdbf2e --- /dev/null +++ b/home/coyote/nvf.nix @@ -0,0 +1,181 @@ +{...}: { + programs.nvf = { + enable = true; + defaultEditor = true; + enableManpages = true; + + settings.vim = { + viAlias = true; + vimAlias = true; + + syntaxHighlighting = true; + lineNumberMode = "relNumber"; + searchCase = "smart"; + hideSearchHighlight = false; + + clipboard = { + enable = true; + registers = "unnamedplus"; + providers.wl-copy.enable = true; + }; + + options = { + encoding = "utf-8"; + backspace = "indent,eol,start"; + history = 1000; + mouse = "a"; + updatetime = 300; + + ruler = true; + cursorline = true; + showcmd = true; + showmode = true; + laststatus = 1; + wildmenu = true; + wildmode = ["longest" "list" "full"]; + ttyfast = true; + lazyredraw = true; + signcolumn = "no"; + + autoindent = true; + expandtab = true; + smarttab = true; + tabstop = 4; + shiftwidth = 4; + softtabstop = 4; + + hlsearch = true; + incsearch = true; + + termguicolors = true; + background = "dark"; + showmatch = true; + }; + + theme = { + enable = true; + name = "gruvbox"; + style = "dark"; + }; + + globals.terminal_ansi_colors = [ + "#282828" + "#cc241d" + "#98971a" + "#d79921" + "#458588" + "#b16286" + "#689d6a" + "#a89984" + "#928374" + "#fb4934" + "#b8bb26" + "#fabd2f" + "#83a598" + "#d3869b" + "#8ec07c" + "#ebdbb2" + ]; + + keymaps = [ + { + mode = "i"; + key = ""; + action = "λ"; + desc = "inserts lambda"; + } + ]; + + languages.nix = { + enable = true; + treesitter.enable = true; + lsp.enable = false; + format.enable = false; + extraDiagnostics.enable = false; + }; + + utility.undotree.enable = true; + + augroups = [ + { + name = "my_filetype_settings"; + clear = true; + } + ]; + + autocmds = [ + { + event = ["FileType"]; + pattern = [ + "javascript" + "javascriptreact" + "typescript" + "typescriptreact" + "html" + "css" + "scss" + "json" + "jsonc" + "vue" + "svelte" + "yaml" + "toml" + "markdown" + "nix" + "vim" + "ruby" + "eruby" + "dart" + "haskell" + "elm" + ]; + group = "my_filetype_settings"; + desc = "2-space indent"; + command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2"; + } + { + event = ["FileType"]; + pattern = [ + "python" + "rust" + "java" + "lua" + "c" + "cpp" + "cs" + "php" + "kotlin" + "swift" + "scala" + "perl" + ]; + group = "my_filetype_settings"; + desc = "4-space indent"; + command = "setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4"; + } + { + event = ["FileType"]; + pattern = ["go" "gomod" "make"]; + group = "my_filetype_settings"; + desc = "hard tabs"; + command = "setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0"; + } + { + event = ["FileType"]; + pattern = ["lisp" "scheme" "clojure" "racket" "fennel"]; + group = "my_filetype_settings"; + desc = "Lisp-style indent"; + command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 lisp autoindent"; + } + ]; + + luaConfigRC.my_lispwords = '' + vim.opt.lispwords:append({ + "defun", "defmacro", "defvar", "defparameter", "defmethod", + "define-syntax", "lambda", "let", "let*", "letrec", "flet", + "labels", "progn", "when", "unless", "if", "cond", + }) + ''; + }; + }; +} diff --git a/home/coyote/vim.nix b/home/coyote/vim.nix deleted file mode 100644 index ab03bd3..0000000 --- a/home/coyote/vim.nix +++ /dev/null @@ -1,69 +0,0 @@ -{pkgs, ...}: { - programs.vim = { - enable = true; - packageConfigurable = pkgs.unstable.vim-full; - defaultEditor = true; - - plugins = with pkgs.unstable.vimPlugins; [gruvbox vim-nix undotree]; - - extraConfig = '' - set nocompatible - set encoding=utf-8 - set backspace=indent,eol,start - set clipboard=unnamedplus - set mouse=a - set history=1000 - set updatetime=300 - - syntax on - set ruler - set number - set relativenumber - set cursorline - set showcmd - set showmode - set laststatus=1 - set wildmenu - set wildmode=longest,list,full - set ttyfast - set lazyredraw - - filetype plugin indent on - set autoindent - set expandtab - set smarttab - set tabstop=4 - set shiftwidth=4 - set softtabstop=4 - - set hlsearch - set incsearch - set ignorecase - set smartcase - - inoremap λ - - set termguicolors - set background=dark - colorscheme gruvbox - let g:terminal_ansi_colors = ['#282828', '#cc241d', '#98971a', '#d79921', '#458588', '#b16286', '#689d6a', '#a89984', '#928374', '#fb4934', '#b8bb26', '#fabd2f', '#83a598', '#d3869b', '#8ec07c', '#ebdbb2'] - - set showmatch - - set lispwords+=defun,defmacro,defvar,defparameter,defmethod,define-syntax,lambda,let,let*,letrec,flet,labels,progn,when,unless,if,cond - - augroup coyote_filetype_settings - autocmd! - autocmd FileType javascript,javascriptreact,typescript,typescriptreact,html,css,scss,json,jsonc,vue,svelte,yaml,toml,markdown,nix,vim,ruby,eruby,dart,haskell,elm - \ setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 - autocmd FileType python,rust,java,lua,c,cpp,cs,php,kotlin,swift,scala,perl - \ setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 - autocmd FileType go,gomod,make - \ setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0 - autocmd FileType lisp,scheme,clojure,racket,fennel - \ setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 - \ lisp autoindent - augroup END - ''; - }; -} diff --git a/modules/common.nix b/modules/common.nix index c93b9d0..bce463f 100644 --- a/modules/common.nix +++ b/modules/common.nix @@ -48,6 +48,7 @@ }; security.rtkit.enable = true; + security.sudo.enable = false; security.doas.enable = true; @@ -63,7 +64,9 @@ nh alejandra git + unstable.python315 # system utils + file firmware-updater mtr gnupg @@ -151,7 +154,9 @@ fonts.fontconfig.subpixel.rgba = "rgb"; fonts.fontconfig.hinting.enable = true; fonts.fontconfig.defaultFonts = { + serif = ["Noto Serif"]; sansSerif = ["Inter"]; monospace = ["Iosevka Nerd Font"]; + emoji = ["Noto Color Emoji"]; }; }