Changed nvim config

This commit is contained in:
KoenDR06 2024-09-09 12:31:13 +02:00
parent 71c2381c08
commit cb28a1d6dd
12 changed files with 453 additions and 162 deletions

18
flake.lock generated
View file

@ -7,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1725628988, "lastModified": 1725694918,
"narHash": "sha256-Y6TBMTGu4bddUwszGjlcOuN0soVc1Gv43hp+1sT/GNI=", "narHash": "sha256-+HsjshXpqNiJHLaJaK0JnIicJ/a1NquKcfn4YZ3ILgg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "127ccc3eb7e36fa75e8c3fbd8a343154f66cc1c6", "rev": "aaebdea769a5c10f1c6e50ebdf5924c1a13f0cda",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -22,11 +22,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1725432240, "lastModified": 1725634671,
"narHash": "sha256-+yj+xgsfZaErbfYM3T+QvEE2hU7UuE+Jf0fJCJ8uPS0=", "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ad416d066ca1222956472ab7d0555a6946746a80", "rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -62,11 +62,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1725575977, "lastModified": 1725727445,
"narHash": "sha256-1e9zB0dMRwdAbhxVATlL25rExMDh4gZ/3AXdkpU8408=", "narHash": "sha256-f5TrY73wfL4kvRmEtZXpzgCuxVFlNqMUNY6QSX16IPA=",
"owner": "pjones", "owner": "pjones",
"repo": "plasma-manager", "repo": "plasma-manager",
"rev": "b82b9ba85c156a5e7f865cc94ed2a4df20cbbf39", "rev": "1b9c8200d6438c98c427536abbc5b6fd6a5250c8",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -17,6 +17,11 @@
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixvim = {
url = "github:nix-community/nixvim/nixos-24.05";
inputs.nixpkgs.follows = "nixos";
};
}; };
outputs = { outputs = {

View file

@ -44,11 +44,13 @@
jetbrains.clion jetbrains.clion
jetbrains.idea-ultimate jetbrains.idea-ultimate
jetbrains.pycharm-professional jetbrains.pycharm-professional
jetbrains.rider
inkscape inkscape
inotify-tools inotify-tools
libreoffice libreoffice
mullvad-vpn mullvad-vpn
neofetch neofetch
obsidian
parsec-bin parsec-bin
platformio-core platformio-core
python3 python3
@ -67,6 +69,7 @@
tmux tmux
unzip unzip
vlc vlc
wakeonlan
whatsapp-for-linux whatsapp-for-linux
zsh zsh
]; ];

View file

@ -1,124 +0,0 @@
{ config, lib, pkgs, ... }:
{
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
extraPackages = with pkgs; [
# LazyVim
lua-language-server
stylua
# Telescope
ripgrep
];
plugins = with pkgs.vimPlugins; [
lazy-nvim
];
extraLuaConfig =
let
plugins = with pkgs.vimPlugins; [
# LazyVim
LazyVim
bufferline-nvim
cmp-buffer
cmp-nvim-lsp
cmp-path
cmp_luasnip
conform-nvim
dashboard-nvim
dressing-nvim
flash-nvim
friendly-snippets
gitsigns-nvim
indent-blankline-nvim
lualine-nvim
neo-tree-nvim
neoconf-nvim
neodev-nvim
noice-nvim
nui-nvim
nvim-cmp
nvim-lint
nvim-lspconfig
nvim-notify
nvim-spectre
nvim-treesitter
nvim-treesitter-context
nvim-treesitter-textobjects
nvim-ts-autotag
nvim-ts-context-commentstring
nvim-web-devicons
persistence-nvim
plenary-nvim
telescope-fzf-native-nvim
telescope-nvim
todo-comments-nvim
tokyonight-nvim
trouble-nvim
vim-illuminate
vim-startuptime
which-key-nvim
{ name = "LuaSnip"; path = luasnip; }
{ name = "catppuccin"; path = catppuccin-nvim; }
{ name = "mini.ai"; path = mini-nvim; }
{ name = "mini.bufremove"; path = mini-nvim; }
{ name = "mini.comment"; path = mini-nvim; }
{ name = "mini.indentscope"; path = mini-nvim; }
{ name = "mini.pairs"; path = mini-nvim; }
{ name = "mini.surround"; path = mini-nvim; }
];
mkEntryFromDrv = drv:
if lib.isDerivation drv then
{ name = "${lib.getName drv}"; path = drv; }
else
drv;
lazyPath = pkgs.linkFarm "lazy-plugins" (builtins.map mkEntryFromDrv plugins);
in
''
require("lazy").setup({
defaults = {
lazy = true,
},
dev = {
-- reuse files from pkgs.vimPlugins.*
path = "${lazyPath}",
patterns = { "." },
-- fallback to download
fallback = true,
},
spec = {
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- The following configs are needed for fixing lazyvim on nix
-- force enable telescope-fzf-native.nvim
{ "nvim-telescope/telescope-fzf-native.nvim", enabled = true },
-- disable mason.nvim, use programs.neovim.extraPackages
{ "williamboman/mason-lspconfig.nvim", enabled = false },
{ "williamboman/mason.nvim", enabled = false },
-- import/override with your plugins
{ import = "plugins" },
-- treesitter handled by xdg.configFile."nvim/parser", put this line at the end of spec to clear ensure_installed
{ "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = {} } },
},
})
'';
};
# https://github.com/nvim-treesitter/nvim-treesitter#i-get-query-error-invalid-node-type-at-position
xdg.configFile."nvim/parser".source =
let
parsers = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths = (pkgs.vimPlugins.nvim-treesitter.withPlugins (plugins: with plugins; [
c
lua
])).dependencies;
};
in
"${parsers}/parser";
# Normal LazyVim config here, see https://github.com/LazyVim/starter/tree/main/lua
xdg.configFile."nvim/lua".source = ../config/lua;
}

View file

@ -2,10 +2,10 @@
programs.plasma = { programs.plasma = {
enable = true; enable = true;
shortcuts = { shortcuts = {
"ActivityManager"."switch-to-activity-037b4336-809c-4a07-a148-9ef660a5cc9c" = "none"; "ActivityManager"."switch-to-activity-037b4336-809c-4a07-a148-9ef660a5cc9c" = [ ];
"ActivityManager"."switch-to-activity-c82192f5-3d2d-4f8d-9c58-364b4cca1b53" = "none"; "ActivityManager"."switch-to-activity-c82192f5-3d2d-4f8d-9c58-364b4cca1b53" = [ ];
"ActivityManager"."switch-to-activity-d15629d7-eac1-4856-990c-e88d4acd7c5d" = ",none,Switch to activity \"Stay Awake\""; "ActivityManager"."switch-to-activity-d15629d7-eac1-4856-990c-e88d4acd7c5d" = [ ];
"ActivityManager"."switch-to-activity-df5108d4-687b-4cd3-835e-318d72116b93" = ",none,Switch to activity \"Default\""; "ActivityManager"."switch-to-activity-df5108d4-687b-4cd3-835e-318d72116b93" = "\\, \\, ,none,Switch to activity \"Default\"";
"KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L"; "KDE Keyboard Layout Switcher"."Switch to Last-Used Keyboard Layout" = "Meta+Alt+L";
"KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K"; "KDE Keyboard Layout Switcher"."Switch to Next Keyboard Layout" = "Meta+Alt+K";
"kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S"; "kaccess"."Toggle Screen Reader On and Off" = "Meta+Alt+S";
@ -24,7 +24,7 @@
"ksmserver"."Lock Session" = ["Meta+L" "Screensaver,Meta+L" "Screensaver,Lock Session"]; "ksmserver"."Lock Session" = ["Meta+L" "Screensaver,Meta+L" "Screensaver,Lock Session"];
"ksmserver"."Log Out" = "Ctrl+Alt+Del"; "ksmserver"."Log Out" = "Ctrl+Alt+Del";
"ksmserver"."Log Out Without Confirmation" = "none,,Log Out Without Confirmation"; "ksmserver"."Log Out Without Confirmation" = "none,,Log Out Without Confirmation";
"ksmserver"."LogOut" = [ ]; "ksmserver"."LogOut" = "none,,Log Out";
"ksmserver"."Reboot" = "none,,Reboot"; "ksmserver"."Reboot" = "none,,Reboot";
"ksmserver"."Reboot Without Confirmation" = "none,,Reboot Without Confirmation"; "ksmserver"."Reboot Without Confirmation" = "none,,Reboot Without Confirmation";
"ksmserver"."Shut Down" = "none,,Shut Down"; "ksmserver"."Shut Down" = "none,,Shut Down";
@ -57,14 +57,14 @@
"kwin"."Show Desktop" = "Meta+D"; "kwin"."Show Desktop" = "Meta+D";
"kwin"."Suspend Compositing" = "Alt+Shift+F12,none"; "kwin"."Suspend Compositing" = "Alt+Shift+F12,none";
"kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down"; "kwin"."Switch One Desktop Down" = "Meta+Ctrl+Down";
"kwin"."Switch One Desktop Up" = "Meta+Ctrl+Up"; "kwin"."Switch One Desktop Up" = ["Meta+Ctrl+Left" "Meta+Ctrl+Up,Meta+Ctrl+Up,Switch One Desktop Up"];
"kwin"."Switch One Desktop to the Left" = "Meta+Ctrl+Left"; "kwin"."Switch One Desktop to the Left" = "none,Meta+Ctrl+Left,Switch One Desktop to the Left";
"kwin"."Switch One Desktop to the Right" = "Meta+Ctrl+Right"; "kwin"."Switch One Desktop to the Right" = "none,Meta+Ctrl+Right,Switch One Desktop to the Right";
"kwin"."Switch Window Down" = "Meta+Alt+Down"; "kwin"."Switch Window Down" = "Meta+Alt+Down";
"kwin"."Switch Window Left" = "Meta+Alt+Left"; "kwin"."Switch Window Left" = "Meta+Alt+Left";
"kwin"."Switch Window Right" = "Meta+Alt+Right"; "kwin"."Switch Window Right" = "Meta+Alt+Right";
"kwin"."Switch Window Up" = "Meta+Alt+Up"; "kwin"."Switch Window Up" = "Meta+Alt+Up";
"kwin"."Switch to Desktop 1" = "none,Ctrl+F1,Switch to Desktop 1"; "kwin"."Switch to Desktop 1" = "Ctrl+F1";
"kwin"."Switch to Desktop 10" = "none,,Switch to Desktop 10"; "kwin"."Switch to Desktop 10" = "none,,Switch to Desktop 10";
"kwin"."Switch to Desktop 11" = "none,,Switch to Desktop 11"; "kwin"."Switch to Desktop 11" = "none,,Switch to Desktop 11";
"kwin"."Switch to Desktop 12" = "none,,Switch to Desktop 12"; "kwin"."Switch to Desktop 12" = "none,,Switch to Desktop 12";
@ -75,10 +75,10 @@
"kwin"."Switch to Desktop 17" = "none,,Switch to Desktop 17"; "kwin"."Switch to Desktop 17" = "none,,Switch to Desktop 17";
"kwin"."Switch to Desktop 18" = "none,,Switch to Desktop 18"; "kwin"."Switch to Desktop 18" = "none,,Switch to Desktop 18";
"kwin"."Switch to Desktop 19" = "none,,Switch to Desktop 19"; "kwin"."Switch to Desktop 19" = "none,,Switch to Desktop 19";
"kwin"."Switch to Desktop 2" = "none,Ctrl+F2,Switch to Desktop 2"; "kwin"."Switch to Desktop 2" = "Ctrl+F2";
"kwin"."Switch to Desktop 20" = "none,,Switch to Desktop 20"; "kwin"."Switch to Desktop 20" = "none,,Switch to Desktop 20";
"kwin"."Switch to Desktop 3" = "none,Ctrl+F3,Switch to Desktop 3"; "kwin"."Switch to Desktop 3" = "Ctrl+F3";
"kwin"."Switch to Desktop 4" = "none,Ctrl+F4,Switch to Desktop 4"; "kwin"."Switch to Desktop 4" = "Ctrl+F4";
"kwin"."Switch to Desktop 5" = "none,,Switch to Desktop 5"; "kwin"."Switch to Desktop 5" = "none,,Switch to Desktop 5";
"kwin"."Switch to Desktop 6" = "none,,Switch to Desktop 6"; "kwin"."Switch to Desktop 6" = "none,,Switch to Desktop 6";
"kwin"."Switch to Desktop 7" = "none,,Switch to Desktop 7"; "kwin"."Switch to Desktop 7" = "none,,Switch to Desktop 7";
@ -208,7 +208,7 @@
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off"; "org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
"org_kde_powerdevil"."Turn Off Screen" = [ ]; "org_kde_powerdevil"."Turn Off Screen" = [ ];
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"]; "org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
"plasmashell"."activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"]; "plasmashell"."activate application launcher" = ["Meta" "" "Alt+F1\\, ,Meta" "Alt+F1,Activate Application Launcher"];
"plasmashell"."activate task manager entry 1" = "Meta+1"; "plasmashell"."activate task manager entry 1" = "Meta+1";
"plasmashell"."activate task manager entry 10" = "none,Meta+0,Activate Task Manager Entry 10"; "plasmashell"."activate task manager entry 10" = "none,Meta+0,Activate Task Manager Entry 10";
"plasmashell"."activate task manager entry 2" = "Meta+2"; "plasmashell"."activate task manager entry 2" = "Meta+2";
@ -273,7 +273,7 @@
"kcminputrc"."Libinput/1267/12432/ELAN1200:00 04F3:3090 Touchpad"."Enabled" = true; "kcminputrc"."Libinput/1267/12432/ELAN1200:00 04F3:3090 Touchpad"."Enabled" = true;
"kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat" = true; "kcminputrc"."Mouse"."X11LibInputXAccelProfileFlat" = true;
"kded5rc"."Module-browserintegrationreminder"."autoload" = false; "kded5rc"."Module-browserintegrationreminder"."autoload" = false;
"kded5rc"."Module-device_automounter"."autoload" = true; "kded5rc"."Module-device_automounter"."autoload" = false;
"kdeglobals"."DirSelect Dialog"."DirSelectDialog Size" = "820,584"; "kdeglobals"."DirSelect Dialog"."DirSelectDialog Size" = "820,584";
"kdeglobals"."General"."AllowKDEAppsToRememberWindowPositions" = true; "kdeglobals"."General"."AllowKDEAppsToRememberWindowPositions" = true;
"kdeglobals"."KDE"."SingleClick" = true; "kdeglobals"."KDE"."SingleClick" = true;
@ -317,17 +317,17 @@
"kwinrc"."Desktops"."Id_1" = "e1429fd3-ee1a-43d1-a96c-3e98155ffa70"; "kwinrc"."Desktops"."Id_1" = "e1429fd3-ee1a-43d1-a96c-3e98155ffa70";
"kwinrc"."Desktops"."Id_2" = "91da48f0-dcd0-40fa-937a-9f6a40f98a61"; "kwinrc"."Desktops"."Id_2" = "91da48f0-dcd0-40fa-937a-9f6a40f98a61";
"kwinrc"."Desktops"."Id_3" = "b421dd32-1365-49d6-97a0-e6a2850c864d"; "kwinrc"."Desktops"."Id_3" = "b421dd32-1365-49d6-97a0-e6a2850c864d";
"kwinrc"."Desktops"."Id_4" = "e34d7226-f09d-4e9e-9fcc-8145b4a5061d"; "kwinrc"."Desktops"."Id_4" = "083e63b2-d84c-4100-bd4a-fa4d286f6575";
"kwinrc"."Desktops"."Id_5" = "4b93dd07-f6e4-40f0-a377-c4a6d7fa32f2"; "kwinrc"."Desktops"."Id_5" = "2e7db0b3-0c21-41da-a9b1-df9e62d7dba3";
"kwinrc"."Desktops"."Id_6" = "d9733a69-faad-45a2-aa97-b93c591c7bf3"; "kwinrc"."Desktops"."Id_6" = "49fd9f05-4801-4829-bc01-dd8e78ee5ce7";
"kwinrc"."Desktops"."Name_1" = "Basic"; "kwinrc"."Desktops"."Name_1" = "UL";
"kwinrc"."Desktops"."Name_2" = "Communication"; "kwinrc"."Desktops"."Name_2" = "UM";
"kwinrc"."Desktops"."Name_3" = "Parsec"; "kwinrc"."Desktops"."Name_3" = "UR";
"kwinrc"."Desktops"."Name_4" = "Desktop BL"; "kwinrc"."Desktops"."Name_4" = "BL";
"kwinrc"."Desktops"."Name_5" = "Desktop BM"; "kwinrc"."Desktops"."Name_5" = "BM";
"kwinrc"."Desktops"."Name_6" = "Desktop BR"; "kwinrc"."Desktops"."Name_6" = "BR";
"kwinrc"."Desktops"."Number" = 3; "kwinrc"."Desktops"."Number" = 6;
"kwinrc"."Desktops"."Rows" = 3; "kwinrc"."Desktops"."Rows" = 2;
"kwinrc"."Effect-diminactive"."Strength" = 50; "kwinrc"."Effect-diminactive"."Strength" = 50;
"kwinrc"."Effect-magiclamp"."AnimationDuration" = 4096; "kwinrc"."Effect-magiclamp"."AnimationDuration" = 4096;
"kwinrc"."Effect-slide"."HorizontalGap" = 0; "kwinrc"."Effect-slide"."HorizontalGap" = 0;
@ -343,7 +343,11 @@
"kwinrc"."Plugins"."minimizeallEnabled" = true; "kwinrc"."Plugins"."minimizeallEnabled" = true;
"kwinrc"."Plugins"."shakecursorEnabled" = true; "kwinrc"."Plugins"."shakecursorEnabled" = true;
"kwinrc"."Plugins"."translucencyEnabled" = true; "kwinrc"."Plugins"."translucencyEnabled" = true;
"kwinrc"."Script-desktopchangeosd"."PopupHideDelay" = 200; "kwinrc"."Script-desktopchangeosd"."PopupHideDelay" = 600;
"kwinrc"."SubSession: 037b4336-809c-4a07-a148-9ef660a5cc9c"."active" = "-1";
"kwinrc"."SubSession: 037b4336-809c-4a07-a148-9ef660a5cc9c"."count" = 0;
"kwinrc"."SubSession: c82192f5-3d2d-4f8d-9c58-364b4cca1b53"."active" = "-1";
"kwinrc"."SubSession: c82192f5-3d2d-4f8d-9c58-364b4cca1b53"."count" = 0;
"kwinrc"."Tiling"."padding" = 4; "kwinrc"."Tiling"."padding" = 4;
"kwinrc"."Tiling/17eb1f34-04ff-505f-99d3-b39b78e9af59"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/17eb1f34-04ff-505f-99d3-b39b78e9af59"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
"kwinrc"."Tiling/5e0aab53-ff8f-58db-aaca-df0f46f273c6"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/5e0aab53-ff8f-58db-aaca-df0f46f273c6"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
@ -356,6 +360,7 @@
"kwinrc"."Tiling/d02c035d-eef0-5c68-aa2f-2e83d0ba08b1"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/d02c035d-eef0-5c68-aa2f-2e83d0ba08b1"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
"kwinrc"."Tiling/d9f463ae-41ec-5300-8544-c0ee67dc8c63"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/d9f463ae-41ec-5300-8544-c0ee67dc8c63"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
"kwinrc"."Tiling/df6fc5c4-c5b3-553f-b6b9-51ca75717f6e"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/df6fc5c4-c5b3-553f-b6b9-51ca75717f6e"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
"kwinrc"."Tiling/e25cd7d6-e0d8-55e7-92de-7a085da94915"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":[{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}]}";
"kwinrc"."Tiling/ece7370d-6d13-5618-ad29-14697e609bd2"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/ece7370d-6d13-5618-ad29-14697e609bd2"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
"kwinrc"."Tiling/f60e4345-d01f-58c0-a5d7-07b5e48a0bdd"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}"; "kwinrc"."Tiling/f60e4345-d01f-58c0-a5d7-07b5e48a0bdd"."tiles" = "{\"layoutDirection\":\"horizontal\",\"tiles\":x5b{\"width\":0.25},{\"width\":0.5},{\"width\":0.25}x5d}";
"kwinrc"."Windows"."HideUtilityWindowsForInactive" = false; "kwinrc"."Windows"."HideUtilityWindowsForInactive" = false;

View file

@ -23,6 +23,11 @@
nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs);
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
dotnetCorePackages.sdk_9_0
];
nix.nixPath = ["/etc/nix/path"]; nix.nixPath = ["/etc/nix/path"];
environment.etc = environment.etc =
lib.mapAttrs' lib.mapAttrs'

View file

@ -31,9 +31,9 @@
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.kernelModules = [ "snd-seq" "snd-rawmidi" ]; boot.kernelModules = [ "snd-seq" "snd-rawmidi" ];
hardware.pulseaudio.enable = true; hardware.pulseaudio.enable = false;
services.jack = { services.jack = {
jackd.enable = true; jackd.enable = false;
alsa.enable = true; alsa.enable = true;
loopback.enable = false; loopback.enable = false;
}; };

89
pkgs/neovim/default.nix Normal file
View file

@ -0,0 +1,89 @@
{ inputs, pkgs, ... }:
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
./language.nix
./running.nix
./shortcuts.nix
];
home.packages = [
# used by telescope find_files and file_browser
pkgs.fd
];
# adds and configures neovim using
# https://github.com/nix-community/nixvim
# todo: git, zooming in and out,
# better indentation,
# latex, competative programming, ...
# These are some misc thingies
programs.nixvim = {
enable = true;
withRuby = false;
colorschemes.onedark = {
enable = true;
settings.style = "darker";
};
clipboard = {
providers.wl-copy.enable = true;
};
opts = {
relativenumber = true;
number = true; # Display the absolute line number of the current line
expandtab = true;
autoindent = true;
shiftwidth = 4;
tabstop = 4;
};
# TODO Should be removed when upgrading from 24.05,
# see ./language.nix, plugins.lsp.inlayHints
package = (import inputs.nixos-unstable { inherit (pkgs) system; }).neovim-unwrapped;
# TODO enable performance stuff once upgrading 24.05
plugins = {
lualine.enable = true;
comment.enable = true;
nvim-autopairs.enable = true;
diffview.enable = true;
neoscroll.enable = true;
gitsigns.enable = true;
hop.enable = true;
# Does not exist yet?
# guess-indent.enable = true;
toggleterm = {
enable = true;
settings = {
direction = "horizontal";
size = 15;
};
};
telescope = {
enable = true;
extensions = {
# better selection ui, used for code actions
ui-select.enable = true;
fzf-native.enable = true;
file-browser = {
enable = true;
settings.hijack_netrw = true;
};
};
};
};
};
}

89
pkgs/neovim/language.nix Normal file
View file

@ -0,0 +1,89 @@
{ inputs, pkgs, ... }:
{
imports = [
inputs.nixvim.homeManagerModules.nixvim
./language.nix
./running.nix
./shortcuts.nix
];
home.packages = [
# used by telescope find_files and file_browser
pkgs.fd
];
# adds and configures neovim using
# https://github.com/nix-community/nixvim
# todo: git, zooming in and out,
# better indentation,
# latex, competative programming, ...
# These are some misc thingies
programs.nixvim = {
enable = true;
withRuby = false;
colorschemes.onedark = {
enable = true;
settings.style = "darker";
};
clipboard = {
providers.wl-copy.enable = true;
};
opts = {
relativenumber = true;
number = true; # Display the absolute line number of the current line
expandtab = true;
autoindent = true;
shiftwidth = 4;
tabstop = 4;
};
# TODO Should be removed when upgrading from 24.05,
# see ./language.nix, plugins.lsp.inlayHints
package = (import inputs.nixos-unstable { inherit (pkgs) system; }).neovim-unwrapped;
# TODO enable performance stuff once upgrading 24.05
plugins = {
lualine.enable = true;
comment.enable = true;
nvim-autopairs.enable = true;
diffview.enable = true;
neoscroll.enable = true;
gitsigns.enable = true;
hop.enable = true;
# Does not exist yet?
# guess-indent.enable = true;
toggleterm = {
enable = true;
settings = {
direction = "horizontal";
size = 15;
};
};
telescope = {
enable = true;
extensions = {
# better selection ui, used for code actions
ui-select.enable = true;
fzf-native.enable = true;
file-browser = {
enable = true;
settings.hijack_netrw = true;
};
};
};
};
};
}

130
pkgs/neovim/running.nix Normal file
View file

@ -0,0 +1,130 @@
{ pkgs, ... }:
{
programs.nixvim = {
# Automaticly open and close dap-ui
extraConfigLuaPost = ''
local dap, dapui = require("dap"), require("dapui")
dap.listeners.before.attach.dapui_config = dapui.open
dap.listeners.before.launch.dapui_config = dapui.open
dap.listeners.before.event_terminated.dapui_config = dapui.close
dap.listeners.before.event_exited.dapui_config = dapui.close
'';
plugins = {
competitest = {
enable = true;
settings = {
template_file.cpp = "${./cp-template.cpp}";
evaluate_template_modifiers = true;
date_format = "%Y-%m-%d %H:%M:%S";
testcases_use_single_file = true;
testcases_single_file_format = "./tests/$(FNOEXT).testcases";
compile_command.cpp = {
exec = "g++";
args = [ "-Wall" "$(FNAME)" "-o" "./bin/$(FNOEXT)" ];
};
run_command.cpp = {
exec = "./bin/$(FNOEXT)";
};
};
};
dap = {
enable = true;
extensions.dap-ui ={
enable = true;
layouts = [
{
elements = [
{ id = "breakpoints"; size = 0.25; }
{ id = "stacks"; size = 0.25; }
{ id = "watches"; size = 0.25; }
{ id = "scopes"; size = 0.25; }
];
position = "left";
size = 40;
}
{
elements = [
{ id = "repl"; size = 0.7; }
{ id = "console"; size = 0.3; }
];
position = "bottom";
size = 10;
}
];
};
signs = {
dapBreakpoint.text = " ";
dapBreakpointCondition.text = " ";
dapBreakpointRejected.text = " ";
dapLogPoint.text = " ";
dapStopped.text = " ";
};
adapters.servers = {
# Used for c++ and rust
codelldb = {
port = "\${port}";
executable = {
command = "${pkgs.vscode-extensions.vadimcn.vscode-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb";
args = [ "--port" "\${port}" ];
};
};
};
configurations = let
# For all supported subsitutions see :h dap-configuration
workspace = "\${workspaceFolder}";
in {
cpp = [
{
name = "Debug cpp file";
type = "codelldb";
request = "launch";
cwd = workspace;
expressions = "native";
program = { __raw = ''
function()
local sourceFile = vim.fn.expand("%");
local resFolder = vim.fn.expand("%:h") .. "/bin/"
local exeFile = resFolder .. vim.fn.expand("%:t:r") .. ".dap";
-- The -g flag compiles with debug info
vim.system({"mkdir", resFolder}):wait();
vim.system({"g++", "-g", sourceFile, "-o", exeFile}):wait();
return exeFile;
end
''; };
}
];
rust = [
{
# Did not get this working: https://github.com/vadimcn/codelldb/blob/master/MANUAL.md#cargo-support
# So instead this follows: https://alighorab.github.io/neovim/nvim-dap/
name = "Debug cargo project";
type = "codelldb";
request = "launch";
expressions = "native";
program = { __raw = ''
function ()
os.execute("cargo build &> /dev/null")
return "target/debug/''${workspaceFolderBasename}"
end
''; };
}
];
};
};
};
};
}

89
pkgs/neovim/shortcuts.nix Normal file
View file

@ -0,0 +1,89 @@
{ lib, ... }:
{
programs.nixvim = {
globals.mapleader = " ";
keymaps =
let
normalVisual =
lib.mapAttrsToList
(key: action: {
mode = [ "n" "v" ];
inherit action key;
})
{
# show terminal
"<C-\\>" = "<cmd>ToggleTerm<CR>";
# hop!
"f" = "<cmd>HopWord<CR>";
# Setup for custom keybinds
";" = "<NOP>";
"<space>" = "<NOP>";
# Telescope
"<space>f" = "<cmd>Telescope find_files<CR>";
"<space>b" = "<cmd>Telescope buffers<CR>";
"<space>d" = "<cmd>Telescope lsp_definitions<CR>";
"<space>R" = "<cmd>Telescope lsp_references<CR>";
"<space>e" = "<cmd>Telescope file_browser<CR>";
"<space>c" = "<cmd>Telescope git_bcommits<CR>";
"<space>g" = "<cmd>Telescope git_status<CR>";
# Lsp
"<space>a" = "<cmd>lua vim.lsp.buf.code_action()<CR>";
"<space>D" = "<cmd>lua vim.lsp.buf.declaration()<CR>";
"<space>h" = "<cmd>lua vim.lsp.buf.hover()<CR>";
"<space>r" = "<cmd>lua vim.lsp.buf.rename()<CR>";
"<space>o" = "<cmd>lua vim.diagnostic.open_float()<CR>";
"<space>l" = "<cmd>lua require('lsp_lines').toggle()<CR>";
# Debugger
"<F5>" = "<cmd>lua require('dap').continue()<CR>";
"<F8>" = "<cmd>lua require('dap').terminate()<CR>";
"<F10>" = "<cmd>lua require('dap').step_over()<CR>";
"<F11>" = "<cmd>lua require('dap').step_into()<CR>";
"<F12>" = "<cmd>lua require('dap').step_out()<CR>";
";d" = "<cmd>lua require('dap').toggle_breakpoint()<CR>";
";s" = "<cmd>lua require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>";
# Competitest
";r" = "<cmd>CompetiTest receive problem<CR>";
";t" = "<cmd>CompetiTest run<CR>";
";a" = "<cmd>CompetiTest add_testcase<CR>";
";e" = "<cmd>CompetiTest edit_testcase<CR>";
";l" = "<cmd>CompetiTest delete_testcase<CR>";
";c" = "<cmd>CompetiTest convert auto<CR>";
# resize windows with arrows
"<C-Up>" = "<cmd>resize -2<CR>";
"<C-Down>" = "<cmd>resize +2<CR>";
"<C-Left>" = "<cmd>vertical resize +2<CR>";
"<C-Right>" = "<cmd>vertical resize -2<CR>";
# TODO: make shortcuts for diffview
# or use telescope to view git stuff
};
vni =
lib.mapAttrsToList
(key: action: {
mode = [ "n" "v" "i" ];
inherit action key;
})
{
# copy, cut, paste
# TODO: why does pasting work but not copying in visual mode???
"<CS-c>" = "\\\"+y";
"<CS-x>" = "\\\"+c";
"<CS-v>" = "\\\"+p";
# saving
"<C-s>" = "<cmd>w<CR>";
};
in
normalVisual ++ vni;
};
}

View file

@ -15,7 +15,7 @@
rebuild = "sudo nixos-rebuild switch --flake"; rebuild = "sudo nixos-rebuild switch --flake";
update = "sudo nix flake update && rebuild"; update = "sudo nix flake update && rebuild";
compose = "sudo docker compose"; compose = "sudo docker compose";
wolpc = "wakeonlan D8::5E:D3:A8:B1:0A"; wolpc = "wakeonlan D8:5E:D3:A8:B1:0A";
capture-config = "nix run github:pjones/plasma-manager > ~/nix-config/home-manager/plasma.nix"; capture-config = "nix run github:pjones/plasma-manager > ~/nix-config/home-manager/plasma.nix";
reboot-to-windows = "sudo efibootmgr -n 0000"; reboot-to-windows = "sudo efibootmgr -n 0000";
mkdir = "mkdir -p"; mkdir = "mkdir -p";