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
This commit is contained in:
parent
59d469574b
commit
da9931c43c
7 changed files with 87 additions and 282 deletions
62
flake.lock
generated
62
flake.lock
generated
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
22
flake.nix
22
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;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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 = {
|
||||
|
|
|
|||
1
result
1
result
|
|
@ -1 +0,0 @@
|
|||
/nix/store/qy6mbm33y6vmn45j4gm884mn78xxhf1h-nixos-system-phostron-26.05.20260708.74cc63f
|
||||
|
|
@ -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,19 +52,18 @@
|
|||
set -g set-clipboard on
|
||||
'';
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
git.enable = true;
|
||||
git.settings = {
|
||||
init.defaultBranch = "main";
|
||||
advice.defaultBranchName = false;
|
||||
gpg.format = "ssh";
|
||||
commit.gpgSign = true;
|
||||
};
|
||||
};
|
||||
librewolf = {
|
||||
enable = true;
|
||||
languagePacks = ["en-GB"];
|
||||
settings = {
|
||||
|
||||
librewolf.enable = true;
|
||||
librewolf.languagePacks = ["en-GB"];
|
||||
librewolf.settings = {
|
||||
"privacy.resistFingerprinting" = false;
|
||||
"librewolf.webgl.prompt" = false;
|
||||
"identity.fxaccounts.enabled" = true;
|
||||
|
|
@ -83,21 +71,27 @@
|
|||
"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; [
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
})
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -6,11 +6,24 @@
|
|||
programs.vim = {
|
||||
enable = true;
|
||||
packageConfigurable = pkgs.unstable.vim-full;
|
||||
plugins = with pkgs.unstable.vimPlugins; [
|
||||
|
||||
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
|
||||
vim-indent-guides
|
||||
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"])
|
||||
];
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue