From da9931c43c3e50fb91cce67ba6a227b84b99fcf9 Mon Sep 17 00:00:00 2001 From: asnev Date: Sun, 12 Jul 2026 17:58:42 +0700 Subject: [PATCH] uhh maybe no nvf lowkey i don't think i need LSP or IDE-adjacent features as a gosh darn beginner to anything programming really --- flake.lock | 62 +-------------- flake.nix | 22 +++--- nixos/configuration.nix | 6 +- result | 1 - users/coyote/home.nix | 94 +++++++++++----------- users/coyote/programs/nvf.nix | 145 ---------------------------------- users/coyote/programs/vim.nix | 39 +++++---- 7 files changed, 87 insertions(+), 282 deletions(-) delete mode 120000 result delete mode 100644 users/coyote/programs/nvf.nix diff --git a/flake.lock b/flake.lock index 3e67160..a461690 100644 --- a/flake.lock +++ b/flake.lock @@ -1,21 +1,5 @@ { "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" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -37,21 +21,6 @@ "type": "github" } }, - "mnw": { - "locked": { - "lastModified": 1780772958, - "narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=", - "owner": "Gerg-L", - "repo": "mnw", - "rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160", - "type": "github" - }, - "original": { - "owner": "Gerg-L", - "repo": "mnw", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1783703440, @@ -70,11 +39,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1783522502, - "narHash": "sha256-iffAls3iaNTyJC2faYcUXSI+Gp02cDjYl+MygxKl2GI=", + "lastModified": 1783776592, + "narHash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0bb7ec54c8483066ec9d7720e780a5caa71f8612", + "rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3", "type": "github" }, "original": { @@ -84,34 +53,11 @@ "type": "github" } }, - "nvf": { - "inputs": { - "flake-compat": "flake-compat", - "mnw": "mnw", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1783767627, - "narHash": "sha256-UgQuKee2d5VhXaqectc23i2rarIufUpAVSTA6R8XloY=", - "owner": "notashelf", - "repo": "nvf", - "rev": "c55a3a783e6e1ecbbaad607b15a9b7b23d42236f", - "type": "github" - }, - "original": { - "owner": "notashelf", - "repo": "nvf", - "type": "github" - } - }, "root": { "inputs": { "home-manager": "home-manager", "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable", - "nvf": "nvf" + "nixpkgs-unstable": "nixpkgs-unstable" } } }, diff --git a/flake.nix b/flake.nix index 57850ba..d02a674 100644 --- a/flake.nix +++ b/flake.nix @@ -2,12 +2,16 @@ description = "asnev's NixOS configuration"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; - nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - home-manager.url = "github:nix-community/home-manager/release-26.05"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - nvf.url = "github:notashelf/nvf"; - nvf.inputs.nixpkgs.follows = "nixpkgs"; + nixpkgs = { + url = "github:nixos/nixpkgs/nixos-26.05"; + }; + nixpkgs-unstable = { + url = "github:nixos/nixpkgs/nixos-unstable"; + }; + home-manager = { + url = "github:nix-community/home-manager/release-26.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = inputs @ { @@ -15,7 +19,6 @@ nixpkgs, nixpkgs-unstable, home-manager, - nvf, ... }: { nixosConfigurations.phostron = nixpkgs.lib.nixosSystem { @@ -30,10 +33,7 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.extraSpecialArgs = {inherit inputs;}; - home-manager.users.coyote.imports = [ - ./users/coyote/home.nix - nvf.homeManagerModules.default - ]; + home-manager.users.coyote = import ./users/coyote/home.nix; } ]; }; diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 827b4c8..662017f 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -50,9 +50,9 @@ ]; environment.systemPackages = with pkgs; [ - # Nix nh alejandra + literate # system utils firmware-updater mtr @@ -62,7 +62,6 @@ tree wget btop - dysk plocate traceroute rlwrap @@ -75,6 +74,7 @@ bat xh tlrc + dysk dust hyperfine ripgrep @@ -85,6 +85,8 @@ l = "eza --long --all"; ll = "eza --long"; ls = "eza --long"; + ".." = "cd .."; + "..." = "cd ../.."; }; programs = { diff --git a/result b/result deleted file mode 120000 index 8aff17f..0000000 --- a/result +++ /dev/null @@ -1 +0,0 @@ -/nix/store/qy6mbm33y6vmn45j4gm884mn78xxhf1h-nixos-system-phostron-26.05.20260708.74cc63f \ No newline at end of file diff --git a/users/coyote/home.nix b/users/coyote/home.nix index 97d9407..c761c10 100644 --- a/users/coyote/home.nix +++ b/users/coyote/home.nix @@ -1,21 +1,13 @@ {pkgs, ...}: { - imports = let - programsDir = ./programs; - programsImports = map (name: programsDir + "/${name}") ( - builtins.filter - (name: builtins.match ".*\\.nix" name != null) - (builtins.attrNames (builtins.readDir programsDir)) - ); - in - programsImports; - home.stateVersion = "26.05"; # I hope you know what you're doing. :) + home.username = "coyote"; home.homeDirectory = "/home/coyote"; home.shell.enableShellIntegration = true; home.packages = with pkgs; [ - # programs + # TUI tdf + neocities # productivity libreoffice-fresh karp @@ -35,12 +27,9 @@ osu-lazer-bin # emulation # (unstable.bottles.override {removeWarningPopup = true;}) - # lisps - chicken - guile - sbcl - unstable.racket # devel + unstable.racket + guile unstable.lazygit ]; @@ -63,41 +52,46 @@ set -g set-clipboard on ''; }; - git = { - enable = true; - settings = { - init.defaultBranch = "main"; - advice.defaultBranchName = false; - gpg.format = "ssh"; - commit.gpgSign = true; - }; + + git.enable = true; + git.settings = { + init.defaultBranch = "main"; + advice.defaultBranchName = false; + gpg.format = "ssh"; + commit.gpgSign = true; }; - librewolf = { - enable = true; - languagePacks = ["en-GB"]; - settings = { - "privacy.resistFingerprinting" = false; - "librewolf.webgl.prompt" = false; - "identity.fxaccounts.enabled" = true; - "middlemouse.paste" = false; - "general.autoScroll" = true; - "browser.discovery.containers.enabled" = false; - }; - }; - yt-dlp = { - enable = true; - package = pkgs.unstable.yt-dlp; - }; - starship = { - package = pkgs.unstable.starship; - }; - obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ - input-overlay - droidcam-obs - wlrobs - ]; + + librewolf.enable = true; + librewolf.languagePacks = ["en-GB"]; + librewolf.settings = { + "privacy.resistFingerprinting" = false; + "librewolf.webgl.prompt" = false; + "identity.fxaccounts.enabled" = true; + "middlemouse.paste" = false; + "general.autoScroll" = true; + "browser.discovery.containers.enabled" = false; }; + + yt-dlp.enable = true; + yt-dlp.package = pkgs.unstable.yt-dlp; + + starship.package = pkgs.unstable.starship; + + obs-studio.enable = true; + obs-studio.plugins = with pkgs.obs-studio-plugins; [ + input-overlay + droidcam-obs + wlrobs + ]; }; + + imports = let + programsDir = ./programs; + programsImports = map (name: programsDir + "/${name}") ( + builtins.filter + (name: builtins.match ".*\\.nix" name != null) + (builtins.attrNames (builtins.readDir programsDir)) + ); + in + programsImports; } diff --git a/users/coyote/programs/nvf.nix b/users/coyote/programs/nvf.nix deleted file mode 100644 index 6fbcaba..0000000 --- a/users/coyote/programs/nvf.nix +++ /dev/null @@ -1,145 +0,0 @@ -{ - pkgs, - ... -}: { - programs.nvf.enable = true; - programs.nvf.settings.vim = { - enableMan = true; - viAlias = true; - vimAlias = true; - - options = { - mouse = "a"; - clipboard = "unnamedplus"; - showmode = false; - breakindent = true; - undofile = true; - ignorecase = true; - smartcase = true; - updatetime = 250; - timeoutlen = 300; - splitright = true; - splitbelow = true; - signcolumn = "yes"; - scrolloff = 8; - completeopt = "menuone,noselect"; - termguicolors = true; - - expandtab = true; - shiftwidth = 4; - tabstop = 4; - softtabstop = 4; - }; - - colorschemes.gruvbox = { - enable = true; - settings.contrast = "hard"; - }; - - treesitter = { - enable = true; - ensureInstalled = [ - "org" - "python" - "rust" - "c" - "cpp" - "lua" - "html" - "css" - "javascript" - "typescript" - "json" - "yaml" - "nix" - "bash" - "go" - "make" - "clojure" - "scheme" - "commonlisp" - ]; - }; - - rainbow-delimiters.enable = true; - - orgmode.enable = true; - - extraPlugins = with pkgs.vimPlugins; { - orgmode-babel = orgmode-babel-nvim; - }; - - luaConfigRC = { - org-babel = ''require("orgmode-babel").setup()''; - - indent = '' - local two_space_ft = { - "html", "htmldjango", "css", "scss", "less", - "nix", "javascript", "typescript", - "javascriptreact", "typescriptreact", - "json", "jsonc", "yaml", "lua" - } - local four_space_ft = { - "python", "rust", "c", "cpp", - "java", "scala", "kotlin", "swift" - } - local tab_ft = { - "make", "go", "odin" - } - - local indent_augroup = vim.api.nvim_create_augroup("IndentSettings", { clear = true }) - - vim.api.nvim_create_autocmd("FileType", { - group = indent_augroup, - pattern = two_space_ft, - callback = function() - vim.opt_local.expandtab = true - vim.opt_local.shiftwidth = 2 - vim.opt_local.tabstop = 2 - vim.opt_local.softtabstop = 2 - end, - }) - - vim.api.nvim_create_autocmd("FileType", { - group = indent_augroup, - pattern = four_space_ft, - callback = function() - vim.opt_local.expandtab = true - vim.opt_local.shiftwidth = 4 - vim.opt_local.tabstop = 4 - vim.opt_local.softtabstop = 4 - end, - }) - - vim.api.nvim_create_autocmd("FileType", { - group = indent_augroup, - pattern = tab_ft, - callback = function() - vim.opt_local.expandtab = false - vim.opt_local.shiftwidth = 0 - vim.opt_local.tabstop = 8 - vim.opt_local.softtabstop = 0 - end, - }) - ''; - - lisp-indent = '' - local lisp_ft = { "lisp", "scheme", "racket", "clojure" } - local lisp_augroup = vim.api.nvim_create_augroup("LispIndent", { clear = true }) - - vim.api.nvim_create_autocmd("FileType", { - group = lisp_augroup, - pattern = lisp_ft, - callback = function() - vim.opt_local.lisp = true - vim.opt_local.lispwords:append({ - "defun", "defmacro", "defvar", "defparameter", - "lambda", "let", "let*", "flet", "labels", - "progn", "when", "unless", "if", "cond" - }) - end, - }) - ''; - }; - }; -} diff --git a/users/coyote/programs/vim.nix b/users/coyote/programs/vim.nix index 60b1e5a..bdca55b 100644 --- a/users/coyote/programs/vim.nix +++ b/users/coyote/programs/vim.nix @@ -6,11 +6,24 @@ programs.vim = { enable = true; packageConfigurable = pkgs.unstable.vim-full; - plugins = with pkgs.unstable.vimPlugins; [ - gruvbox - rainbow - vim-indent-guides - ]; + + plugins = let + literate-vim = pkgs.vimUtils.buildVimPlugin { + name = "literate.vim"; + src = pkgs.fetchFromGitHub { + owner = "zyedidia"; + repo = "literate.vim"; + rev = "4ffd45cb1657b67f4ed0eb639478a69209ec1f94"; + sha256 = "sha256-X5iJyjeLBkKh4tUoDG8VDO6DwYVOI9DpRqpic8NinwA="; + }; + }; + in + with pkgs.unstable.vimPlugins; [ + gruvbox + rainbow + literate-vim + ]; + defaultEditor = true; extraConfig = '' let g:terminal_ansi_colors = ['#282828', '#cc241d', '#98971a', '#d79921', '#458588', '#b16286', '#689d6a', '#a89984', '#928374', '#fb4934', '#b8bb26', '#fabd2f', '#83a598', '#d3869b', '#8ec07c', '#ebdbb2'] @@ -57,15 +70,11 @@ " rainbow let g:rainbow_active = 1 - - " vim-indent-guides - let g:indent_guides_enable_on_vim_startup = 0 - let g:indent_guides_start_level = 3 ''; }; home.file = let - mkVim = content: langs: + mkVimAfterFtplugin = content: langs: builtins.listToAttrs (map (lang: { name = ".vim/after/ftplugin/${lang}.vim"; value = {text = content;}; @@ -100,13 +109,13 @@ setlocal autoindent setlocal showmatch - setlocal lispwords+=defmacro,defmethod,define-syntax,let,let*,letre,cond + setlocal lispwords+=defun,defmacro,defvar,defparameter,defmethod,define-syntax,lambda,let,let*,letre,flet,labels,progn,when,unless,if,cond ''; in lib.mkMerge [ - (mkVim tab2Vim ["javascript" "typescript" "html" "css" "json" "nix" "vim"]) - (mkVim tab4Vim ["python" "rust" "java" "lua" "c" "cpp" "h" "hpp"]) - (mkVim tabsVim ["go" "make"]) - (mkVim lispVim ["lisp" "scheme" "clojure" "racket"]) + (mkVimAfterFtplugin tab2Vim ["javascript" "typescript" "html" "css" "json" "nix" "vim"]) + (mkVimAfterFtplugin tab4Vim ["python" "rust" "java" "lua" "c" "cpp" "h" "hpp"]) + (mkVimAfterFtplugin tabsVim ["go" "make"]) + (mkVimAfterFtplugin lispVim ["lisp" "scheme" "clojure" "racket"]) ]; }