add nixvim config

This commit is contained in:
Sean Kovacs 2025-11-07 15:44:57 -05:00
commit 95ffc61f3e
Signed by: sckova
GPG key ID: 00F325187C68651A
6 changed files with 421 additions and 12 deletions

144
flake.lock generated
View file

@ -56,6 +56,45 @@
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1762440070,
"narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -76,6 +115,34 @@
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1754860581,
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.1.1",
"repo": "ixx",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1762111121,
@ -92,6 +159,52 @@
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"systems": "systems_2"
},
"locked": {
"lastModified": 1762523528,
"narHash": "sha256-VH4+fAB85irWuzxfWPfEEwDOE+eQsB/pljNApM0onuU=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "3031d4ab616323f6d41704dfb46f2b801f29973d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1761730856,
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
"owner": "NuschtOS",
"repo": "search",
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
"plasma-manager": {
"inputs": {
"home-manager": [
@ -121,8 +234,39 @@
"catppuccin": "catppuccin",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"plasma-manager": "plasma-manager"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View file

@ -20,6 +20,11 @@
inputs.home-manager.follows = "home-manager";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
apple-silicon = {
url = "github:nix-community/nixos-apple-silicon";
inputs.nixpkgs.follows = "nixpkgs";
@ -32,6 +37,7 @@
catppuccin,
home-manager,
plasma-manager,
nixvim,
apple-silicon,
...
}:
@ -52,7 +58,10 @@
catppuccin.nixosModules.catppuccin
home-manager.nixosModules.home-manager
{
home-manager.sharedModules = [ plasma-manager.homeModules.plasma-manager ];
home-manager.sharedModules = [
plasma-manager.homeModules.plasma-manager
nixvim.homeModules.nixvim
];
}
]
++ extraModules;
@ -74,6 +83,7 @@
catppuccin.homeModules.catppuccin
home-manager.homeModules.home-manager
plasma-manager.homeModules.plasma-manager
nixvim.homeModules.nixvim
];
};
in

View file

@ -8,7 +8,6 @@
programs.plasma = {
workspace = {
# lookAndFeel = "Catppuccin-Mocha-Blue";
colorScheme = "CatppuccinMochaBlue";
cursor.theme = "catppuccin-mocha-blue-cursors";
splashScreen.theme = "Catpppuccin-Mocha-Blue";

View file

@ -3,18 +3,16 @@
{
home.packages = with pkgs; [
vesktop
fish
gh
adwsteamgtk
prismlauncher
tmux
fastfetch
btop
neovim
# neovim
killall
wget
ripgrep
kitty
ncdu
fzf
wl-clipboard
@ -48,6 +46,172 @@
};
};
programs.kitty = {
enable = true;
enableGitIntegration = true;
themeFile = "Catppuccin-Mocha";
font = {
name = "Noto Sans Mono";
size = 10;
};
shellIntegration.enableFishIntegration = true;
extraConfig = "\nwheel_scroll_multiplier 5.0";
};
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting # Disable greeting
'';
};
programs.nixvim = {
enable = true;
defaultEditor = true;
waylandSupport = true;
viAlias = true;
vimAlias = true;
clipboard = {
register = "unnamedplus";
providers.wl-copy.enable = true;
};
opts = {
tabstop = 2;
softtabstop = 2;
shiftwidth = 2;
expandtab = true;
number = true;
};
colorschemes.catppuccin = {
enable = true;
settings = {
flavour = "mocha";
};
};
keymaps = [
# --- Normal mode mappings ---
{
mode = "n";
key = "<C-c>";
action = "\"+y";
options = {
noremap = true;
silent = true;
};
}
{
mode = "n";
key = "<C-p>";
action = "\"+p";
options = {
noremap = true;
silent = true;
};
}
# --- Visual mode mappings ---
{
mode = "v";
key = "<C-c>";
action = "\"+y";
options = {
noremap = true;
silent = true;
};
}
{
mode = "v";
key = "<C-p>";
action = "\"+p";
options = {
noremap = true;
silent = true;
};
}
];
plugins = {
nvim-autopairs = {
enable = true;
# autoLoad = true;
};
cmp = {
autoEnableSources = true;
enable = true;
# autoLoad = true;
};
copilot-lua = {
enable = true;
# autoLoad = true;
};
conform-nvim = {
enable = true;
# autoLoad = true;
settings = {
formatters_by_ft = {
lua = [ "stylua" ];
python = [
"isort"
"black"
];
nix = [ "nixfmt" ];
javascript = [
"deno fmt"
"prettier"
];
css = [
"deno fmt"
"prettier"
];
json = [
"deno fmt"
"prettier"
];
jsonc = [
"deno fmt"
"prettier"
];
};
# Default formatting options
default_format_opts = {
lsp_format = "fallback";
};
# Format-on-save behavior
format_on_save = {
timeout_ms = 500;
};
# Custom formatter settings
formatters = {
shfmt = {
append_args = [
"-i"
"2"
];
};
};
};
};
fzf-lua = {
enable = true;
# autoLoad = true;
};
kitty-scrollback = {
enable = true;
# autoLoad = true;
};
lsp = {
enable = true;
# autoLoad = true;
};
lualine = {
enable = true;
# autoLoad = true;
};
};
};
programs.plasma = {
enable = true;
overrideConfig = true;
@ -65,6 +229,22 @@
cursor.size = 24;
};
kwin = {
titlebarButtons = {
left = [
"application-menu"
"on-all-desktops"
"keep-below-windows"
"keep-above-windows"
];
right = [
"minimize"
"maximize"
"close"
];
};
};
configFile = {
kwinrc.Desktops.Number = 3;
# kdeglobals.KDE.AutomaticLookAndFeel = true;
@ -109,7 +289,8 @@
launchers = [
"applications:firefox.desktop"
"applications:org.kde.dolphin.desktop"
"applications:org.kde.konsole.desktop"
"applications:vesktop.desktop"
"applications:kitty.desktop"
];
};
}
@ -131,12 +312,14 @@
shown = [
"org.kde.plasma.battery"
"org.kde.plasma.bluetooth"
];
# And explicitly hide networkmanagement and volume
hidden = [
"org.kde.plasma.networkmanagement"
"org.kde.plasma.volume"
];
# And explicitly hide networkmanagement and volume
# hidden = [
# "org.kde.plasma.networkmanagement"
# "org.kde.plasma.volume"
# ];
};
}
{

View file

@ -7,8 +7,21 @@
};
programs.plasma = {
input.touchpads = [
{
name = "Apple MTP multi-touch";
vendorId = "05ac";
productId = "0352";
disableWhileTyping = false;
enable = true;
tapToClick = false;
naturalScroll = true;
accelerationProfile = "default";
}
];
workspace = {
# lookAndFeel = "Catppuccin-Mocha-Peach";
colorScheme = "CatppuccinMochaPeach";
cursor.theme = "catppuccin-mocha-peach-cursors";
splashScreen.theme = "Catpppuccin-Mocha-Peach";

View file

@ -115,6 +115,68 @@
security.sudo.wheelNeedsPassword = false;
programs.firefox = {
enable = true;
preferences = {
"widget.use-xdg-desktop-portal.file-picker" = 1;
"widget.gtk.global-menu.enabled" = true;
"widget.gtk.global-menu.wayland.enabled" = true;
"browser.tabs.inTitlebar" = 0;
"extensions.pocket.enabled" = false;
"extensions.screenshots.disabled" = true;
"browser.topsites.contile.enabled" = false;
"browser.formfill.enable" = false;
"browser.search.suggest.enabled" = false;
"browser.search.suggest.enabled.private" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.showSearchSuggestionsFirst" = false;
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
"browser.newtabpage.activity-stream.feeds.snippets" = false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.system.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
};
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
DisablePocket = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "";
OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate"
# ---- EXTENSIONS ----
# Check about:support for extension/add-on ID strings.
# Valid strings for installation_mode are "allowed", "blocked",
# "force_installed" and "normal_installed".
# ExtensionSettings = {
# # blocks all addons except the ones specified below
# "*".installation_mode = "blocked";
# "uBlock0@raymondhill.net" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
# installation_mode = "force_installed";
# };
# "plasma-browser-integration@kde.org" = {
# install_url = "https://addons.mozilla.org/firefox/downloads/latest/plasma-integration/latest.xpi";
# installation_mode = "force_installed";
# };
# };
};
};
programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
@ -125,8 +187,6 @@
'';
};
programs.firefox.enable = true;
nixpkgs.config.allowUnfree = true;
environment = {