updated command structure and nixvim

This commit is contained in:
2025-05-05 01:00:46 -07:00
parent d979f7daec
commit 06cc1709f1
30 changed files with 1100 additions and 557 deletions

View File

@@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{ config, pkgs, pkgs-unstable, inputs, ... }:
{
imports =
@@ -190,7 +190,6 @@
environment.systemPackages = with pkgs; [
#apps
#cider-2
amneziawg-go
fprintd
guacamole-client
sddm-astronaut
@@ -231,7 +230,12 @@
];
home-manager = {
extraSpecialArgs = { inherit inputs; };
extraSpecialArgs = {
inherit
inputs
pkgs-unstable
;
};
users = {
"rogueking" = import ./../home-manager/home.nix;
};

View File

@@ -0,0 +1,276 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nix.settings.experimental-features = ["nix-command" "flakes"];
# Nix optimizations
nix.optimise.automatic = true;
nix.settings.auto-optimise-store = true;
nix.gc = {
automatic = true;
dates = "weekly";
persistent = true;
options = "--delete-older-than 30d";
};
# Dynamic power managment
# powerManagement = {
# enable = true;
# cpuFreqGovernor = "powersave";
# powertop.enable = true;
# };
services.thermald.enable = true;
services.power-profiles-daemon.enable = false;
services.auto-cpufreq.enable = true;
services.auto-cpufreq.settings = {
battery = {
governor = "balanced";
turbo = "auto";
};
charger = {
governor = "performance";
turbo = "auto";
};
};
services.system76-scheduler = {
enable = true;
useStockConfig = true;
};
networking.hostName = "EVA-01"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
virtualisation.docker.enable = true;
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
n };
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = false;
# Enable the KDE Plasma Desktop Environment.
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.desktopManager.plasma6.enable = true;
services.displayManager.sddm.theme = "sddm-astronaut-theme";
services.tailscale.enable = true;
#Enable Ollama daemon
services.ollama.enable = true;
services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
# Configure keymap in X11
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = false;
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
#hardware.pulseaudio = {
# enable = true;
# package = pkgs.pulseaudioFull;
#};
hardware.bluetooth.enable = true;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true;
users.users.rogueking = {
isNormalUser = true;
description = "rogueking";
extraGroups = [ "networkmanager" "wheel" "docker" ];
shell = pkgs.zsh;
#packages = [ inputs.home-manager.packages.${pkgs.system}.default ];
packages = with pkgs; [
#apps
#cli
# thunderbird
];
};
# Install firefox.
programs.firefox.enable = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
security.polkit.enable = true;
programs._1password.enable = true;
programs._1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = [ "rogueking" ];
};
#steam
programs.steam.enable = true;
# Enable OpenSSH daemon
services.openssh = {
enable = true;
ports = [ 22 ];
settings = {
PasswordAuthentication = false;
AllowUsers = [ "rogueking" ];
UseDns = true;
X11Forwarding = false;
PermitRootLogin = "no";
};
};
users.users."rogueking".openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINXqriPZVIuduc/J7GS1mD171LL0gIbgEjlImsxedWVX"
];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
#apps
#cider-2
amneziawg-go
fprintd
guacamole-client
sddm-astronaut
#cli tools
aircrack-ng
android-tools
btop
curl
docker
dust
file
findutils
git
hcxdumptool
hcxtools
kopia
lazydocker
metasploit
nettools
nix-prefetch-github
nmap
openssh
openssl
plocate
ptunnel
tailscale
tlp
unzip
vim
wirelesstools
wifite2
];
fonts.packages = with pkgs; [
nerdfonts
];
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"rogueking" = import ./../home-manager/home.nix;
};
backupFileExtension = "backup";
};
#home-manager = {
# extraSpecialArgs = { inherit inputs; };
# users = {
# "rogueking" = import ../home-manager/home.nix;
# };
# backupFileExtension = "backup";
#};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.11"; # Did you read the comment?
}

203
flake.lock generated
View File

@@ -1,40 +1,5 @@
{
"nodes": {
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741473158,
"narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=",
"owner": "numtide",
"repo": "devshell",
"rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"revCount": 69,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -74,54 +39,6 @@
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": [
"nixvim",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1742649964,
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -129,33 +46,11 @@
]
},
"locked": {
"lastModified": 1744743431,
"narHash": "sha256-iyn/WBYDc7OtjSawbegINDe/gIkok888kQxk3aVnkgg=",
"lastModified": 1746171682,
"narHash": "sha256-EyXUNSa+H+YvGVuQJP1nZskXAowxKYp79RNUsNdQTj4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c61bfe3ae692f42ce688b5865fac9e0de58e1387",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1744117652,
"narHash": "sha256-t7dFCDl4vIOOUMhEZnJF15aAzkpaup9x4ZRGToDFYWI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b4e98224ad1336751a2ac7493967a4c9f6d9cb3f",
"rev": "50eee705bbdbac942074a8c120e8194185633675",
"type": "github"
},
"original": {
@@ -179,49 +74,27 @@
]
},
"locked": {
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"lastModified": 1737371634,
"narHash": "sha256-fTVAWzT1UMm1lT+YxHuVPtH+DATrhYfea3B0MxG/cGw=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"rev": "a1176e2a10ce745ff8f63e4af124ece8fe0b1648",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.6",
"ref": "v0.0.7",
"repo": "ixx",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743127615,
"narHash": "sha256-+sMGqywrSr50BGMLMeY789mSrzjkoxZiu61eWjYS/8o=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "fc843893cecc1838a59713ee3e50e9e7edc6207c",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "nix-darwin-24.11",
"repo": "nix-darwin",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1744633460,
"narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
"lastModified": 1746427242,
"narHash": "sha256-KvZ6G5sdBdcrglsqcOx8BT6NpHVMVHc8wssMRhv/+1g=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
"rev": "a4bb30a9000cf0444ecc8fdca8096d072f77f9e8",
"type": "github"
},
"original": {
@@ -233,11 +106,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1744440957,
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
"lastModified": 1746301764,
"narHash": "sha256-5odz+NZszRya//Zd0P8h+sIwOnV35qJi+73f4I+iv1M=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
"rev": "537ee98218704e21ea465251de512ab6bbb9012e",
"type": "github"
},
"original": {
@@ -249,11 +122,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1744932701,
"narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
"lastModified": 1746328495,
"narHash": "sha256-uKCfuDs7ZM3QpCE/jnfubTg459CnKnJG/LwqEVEdEiw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
"rev": "979daf34c8cacebcd917d540070b52a3c2b9b16e",
"type": "github"
},
"original": {
@@ -265,29 +138,22 @@
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
"nixpkgs-unstable"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
"lastModified": 1744461753,
"narHash": "sha256-3oO3CwYmZE5P4Hp5XR5WCZbF/rj5+kF0m5sTNTMDYss=",
"lastModified": 1746387720,
"narHash": "sha256-x8k0DKiQYRNaf9Hg+di+WCKxb76zJVWSjKOlPiuc22o=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "a22fbed4c4784e6a9761f9a896d31da98c3117b2",
"rev": "7d18194a22325f212e17eb876d9c00afcc434113",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "nixos-24.11",
"repo": "nixvim",
"type": "github"
}
@@ -302,11 +168,11 @@
]
},
"locked": {
"lastModified": 1744375525,
"narHash": "sha256-/Wf5Ca0DmV+y+qVBDXX8HAfAvSQI6y5oE27dv6t1jXk=",
"lastModified": 1745046075,
"narHash": "sha256-8v4y6k16Ra/fiecb4DxhsoOGtzLKgKlS+9/XJ9z0T2I=",
"owner": "NuschtOS",
"repo": "search",
"rev": "c0e7d3bda11e2cfad692d205d82757078475957a",
"rev": "066afe8643274470f4a294442aadd988356a478f",
"type": "github"
},
"original": {
@@ -338,27 +204,6 @@
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743748085,
"narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",

View File

@@ -11,8 +11,8 @@
};
nixvim = {
url = "github:nix-community/nixvim/nixos-24.11";
inputs.nixpkgs.follows = "nixpkgs";
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixos-hardware = {

View File

@@ -0,0 +1,75 @@
{
pkgs,
...
}:
{
imports = [
./direnv.nix
./eza.nix
./fastfetch/fastfetch.nix
./git.nix
./ghostty.nix
./newsboat.nix
./nixvim/default.nix
./starship.nix
./tmux.nix
./zsh.nix
];
home.packages = with pkgs; [
bat
btop
cbonsai
curl
dig
dust
ffmpeg-full
fzf
fzf
git-filter-repo
kitty
lazygit
nmap
ocamlPackages.utop
ollama
openconnect
openssl
putty
ripgrep
tailscale
termusic
thc-hydra
timg
tldr
traceroute
trivy
wget
yazi
yazi
yt-dlp
];
programs = {
ssh = {
enable = true;
matchBlocks = {
global = {
host = "*";
setEnv = {
TERM = "xterm-256color";
};
};
};
extraConfig = ''
IdentityAgent ~/.1password/agent.sock
'';
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
};
}

View File

@@ -0,0 +1,12 @@
{
programs = {
eza = {
enable = true;
icons = "auto";
enableZshIntegration = true;
extraOptions = [
"--group-directories-first"
];
};
};
}

View File

@@ -0,0 +1,22 @@
{
programs = {
git = {
enable = true;
userName = "rogueking";
userEmail = "miguel@muniz.org";
lfs.enable = true;
signing = {
signByDefault = true;
gpgPath = "/opt/1Password/op-ssh-sign";
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHI7zcxrwwg4VqpGduhPX31aslzXwkRXiM32+8K+aIMu";
};
extraConfig = {
gpg = {
format = "ssh";
};
};
};
};
}

View File

@@ -0,0 +1,9 @@
{
programs.newsboat = {
enable = true;
urls = [
{ url = "https://dev.to/feed"; }
{ url = "https://stackoverflow.blog/feed/"; }
];
};
}

View File

@@ -0,0 +1,37 @@
{
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
colorschemes.everforest = {
enable = true;
settings = {
background = "soft"; #"hard"
transparent_background = 1;
};
};
opts = {
number = true;
relativenumber = true;
expandtab = true;
shiftwidth = 2;
tabstop = 2;
};
diagnostics = {
virtual_text = true;
update_in_insert = true;
severity_sort = true;
};
globals = {
mapleader = " ";
maplocalleader = " ";
};
clipboard.providers.wl-copy.enable = true;
};
}

View File

@@ -0,0 +1,7 @@
{
imports = [
./config.nix
./keymaps.nix
./plugins/default.nix
];
}

View File

@@ -0,0 +1,129 @@
{
programs.nixvim = {
keymaps = [
{
action = ":q<CR>";
key = "<leader>q";
options = {
silent = true;
noremap = true;
desc = "Quit";
};
}
{
action = ":w<CR>";
key = "<leader>w";
options = {
silent = true;
noremap = true;
desc = "Save";
};
}
{
action = ":wq<CR>";
key = "<leader>wq";
options = {
silent = true;
noremap = true;
desc = "Save and quit";
};
}
{
action = "<C-\\><C-n>:ToggleTerm direction=float<CR>";
key = "<leader>t";
mode = [
"n"
"v"
"t"
];
options = {
silent = true;
noremap = true;
desc = "Toggle floating terminal";
};
}
{
action = ":Telescope live_grep<CR>";
key = "<leader>lg";
options = {
silent = true;
noremap = true;
desc = "Live grep";
};
}
{
action = ":Telescope find_files<CR>";
key = "<leader>ff";
options = {
silent = true;
noremap = true;
desc = "Find file";
};
}
{
action = ":Telescope oldfiles<CR>";
key = "<leader>of";
options = {
silent = true;
noremap = true;
desc = "Browse recent files";
};
}
{
action = ":Telescope file_browser<CR>";
key = "<leader>fb";
options = {
silent = true;
noremap = true;
desc = "Directory-based file browser";
};
}
{
action = ":Neotree toggle reveal<CR>";
key = "<leader>nt";
options = {
silent = true;
noremap = true;
desc = "Toggle file tree";
};
}
{
action = ":Neotree focus<CR>";
key = "<leader>nf";
options = {
silent = true;
noremap = true;
desc = "Toggle file tree focus";
};
}
{
action = ":Glance definitions<CR>";
key = "<leader>gd";
options = {
silent = true;
noremap = true;
desc = "Glance definitions";
};
}
{
action = ":Glance references<CR>";
key = "<leader>gr";
options = {
silent = true;
noremap = true;
desc = "Glance references";
};
}
{
action = "\"+y<CR>";
key = "<leader>y";
mode = [ "v" ];
options = {
silent = true;
noremap = true;
desc = "Glance references";
};
}
];
};
}

View File

@@ -1,365 +0,0 @@
{
programs = {
nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
#colorschemes.onedark.enable = true;
colorschemes.everforest = {
enable = true;
settings = {
background = "hard";
transparent_background = 1;
};
};
opts = {
number = true;
relativenumber = true;
expandtab = true;
shiftwidth = 2;
tabstop = 2;
};
diagnostics = {
virtual_text = true;
update_in_insert = true;
severity_sort = true;
};
globals = {
mapleader = " ";
maplocalleader = " ";
};
keymaps = [
{
action = ":q<CR>";
key = "<leader>q";
options = {
silent = true;
noremap = true;
desc = "Quit";
};
}
{
action = ":w<CR>";
key = "<leader>w";
options = {
silent = true;
noremap = true;
desc = "Save";
};
}
{
action = ":wq<CR>";
key = "<leader>wq";
options = {
silent = true;
noremap = true;
desc = "Save and quit";
};
}
{
action = "<C-\\><C-n>:ToggleTerm direction=float<CR>";
key = "<leader>t";
mode = [ "n" "v" "t" ];
options = {
silent = true;
noremap = true;
desc = "Toggle floating terminal";
};
}
{
action = ":Telescope live_grep<CR>";
key = "<leader>lg";
options = {
silent = true;
noremap = true;
desc = "Live grep";
};
}
{
action = ":Telescope find_files<CR>";
key = "<leader>ff";
options = {
silent = true;
noremap = true;
desc = "Find file";
};
}
{
action = ":Telescope oldfiles<CR>";
key = "<leader>of";
options = {
silent = true;
noremap = true;
desc = "Browse recent files";
};
}
{
action = ":Telescope file_browser<CR>";
key = "<leader>fb";
options = {
silent = true;
noremap = true;
desc = "Directory-based file browser";
};
}
{
action = ":Neotree toggle reveal<CR>";
key = "<leader>nt";
options = {
silent = true;
noremap = true;
desc = "Toggle file tree";
};
}
];
plugins = {
comment.enable = true;
direnv.enable = true;
gitsigns.enable = true;
intellitab.enable = true;
lastplace.enable = true;
lsp-format.enable = true;
lspsaga.enable = true;
lualine.enable = true;
luasnip.enable = true;
multicursors.enable = true;
neo-tree.enable = true;
neoscroll.enable = true;
nix.enable = true;
nvim-autopairs.enable = true;
nvim-colorizer.enable = true;
refactoring.enable = true;
toggleterm.enable = true;
treesitter.enable = true;
web-devicons.enable = true;
telescope = {
enable = true;
extensions.file-browser.enable = true;
};
transparent = {
enable = true;
settings = {
groups = [
"Normal"
"NormalNC"
"Comment"
"Constant"
"Special"
"Identifier"
"Statement"
"PreProc"
"Type"
"Underlined"
"Todo"
"String"
"Function"
"Conditional"
"Repeat"
"Operator"
"Structure"
"LineNr"
"NonText"
"SignColumn"
"CursorLine"
"CursorLineNr"
"StatusLine"
"StatusLineNC"
"EndOfBuffer"
];
};
};
lint = {
enable = true;
autoCmd = {
event = [ "InsertLeave" "TextChanged" ];
};
};
illuminate = {
enable = true;
delay = 100;
minCountToHighlight = 1;
modesAllowlist = ["n" "i" "v"];
};
ollama = {
enable = true;
#url = ;
};
which-key = {
enable = true;
settings = {
preset = "modern";
delay = 500;
expand = 1;
notify = false;
win = {
border = "single";
padding = [1 1];
wo.winblend = 10;
};
replace = {
desc = [
[
"<space>"
"SPACE"
]
[
"<leader>"
"SPACE"
]
[
"<[cC][rR]>"
"RETURN"
]
[
"<[tT][aA][bB]>"
"TAB"
]
[
"<[bB][sS]>"
"BACKSPACE"
]
];
};
};
};
scrollview = {
enable = true;
settings = {
signs_on_startup = [
"all"
];
};
};
startup = {
enable = true;
parts = [ "header" "body" ];
sections = {
header = {
align = "center";
content = {
__raw = "require('startup.headers').hydra_header";
};
defaultColor = "";
foldSection = false;
highlight = "Statement";
margin = 5;
oldfilesAmount = 0;
title = "Header";
type = "text";
};
body = {
align = "center";
content = [
[
" Find File"
"Telescope find_files"
"<leader>ff"
]
[
"󰍉 Find Word"
"Telescope live_grep"
"<leader>lg"
]
[
" Recent Files"
"Telescope oldfiles"
"<leader>of"
]
[
" File Browser"
"Telescope file_browser"
"<leader>fb"
]
[
" New File"
"lua require'startup'.new_file()"
"<leader>nf"
]
];
defaultColor = "";
foldSection = false;
highlight = "String";
margin = 5;
oldfilesAmount = 0;
title = "Basic Commands";
type = "mapping";
};
};
};
indent-blankline = {
enable = true;
settings = {
scope = {
show_end = true;
show_exact_scope = true;
show_start = true;
};
};
};
cmp = {
enable = true;
autoEnableSources = true;
settings = {
sources = [
{name = "nvim_lsp";}
{name = "path";}
{name = "buffer";}
{name = "luasnip";}
];
mapping = {
"<C-Space>" = "cmp.mapping.complete()";
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
"<C-e>" = "cmp.mapping.close()";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
};
};
};
lsp = {
enable = true;
servers = {
nixd = {
enable = true;
extraOptions = {
offset_encoding = "utf-8";
};
};
ts_ls.enable = true;
gopls.enable = true;
golangci_lint_ls.enable = true;
rust_analyzer = {
enable = true;
installCargo = true;
installRustc = true;
};
};
};
};
};
};
}

View File

@@ -0,0 +1,68 @@
{
programs.nixvim.plugins = {
blink-cmp = {
enable = true;
settings = {
completion = {
accept = {
auto_brackets = {
enabled = true;
semantic_token_resolution = {
enabled = false;
};
};
};
documentation = {
auto_show = true;
};
};
keymap = {
"<C-e>" = [
"hide"
];
"<C-d>" = [
"scroll_documentation_up"
"fallback"
];
"<C-f>" = [
"scroll_documentation_down"
"fallback"
];
"<Tab>" = [
"select_next"
"fallback"
];
"<S-Tab>" = [
"select_prev"
"fallback"
];
"<C-space>" = [
"show"
"show_documentation"
"hide_documentation"
];
"<CR>" = [
"select_and_accept"
"fallback"
];
"<Down>" = [
"select_next"
"fallback"
];
"<Up>" = [
"select_prev"
"fallback"
];
"<S-s>" = [
"snippet_backward"
"fallback"
];
"<s>" = [
"snippet_forward"
"fallback"
];
};
};
};
};
}

View File

@@ -0,0 +1,47 @@
{
programs.nixvim.plugins = {
codecompanion = {
enable = true;
settings = {
adapters = {
ollama = {
__raw = ''
function()
return require('codecompanion.adapters').extend('ollama', {
env = {
url = "http://ena:11434",
},
schema = {
model = {
default = 'qwen2.5-coder:7b',
},
num_ctx = {
default = 32768,
},
},
})
end
'';
};
};
opts = {
log_level = "TRACE";
send_code = true;
use_default_actions = true;
use_default_prompts = true;
};
strategies = {
agent = {
adapter = "ollama";
};
chat = {
adapter = "ollama";
};
inline = {
adapter = "ollama";
};
};
};
};
};
}

View File

@@ -0,0 +1,44 @@
{
imports = [
./blink-cmp.nix
./codecompanion.nix
./glance.nix
./illuminate.nix
./indent-blankline.nix
./lint.nix
./lsp.nix
./scrollview.nix
./startup.nix
./telescope.nix
./which-key.nix
];
programs.nixvim.plugins = {
cmp-nvim-lsp.enable = true;
cmp.enable = true;
cmp_luasnip.enable = true;
colorizer.enable = true;
comment.enable = true;
diffview.enable = true;
direnv.enable = true;
gitblame.enable = true;
gitsigns.enable = true;
intellitab.enable = true;
lastplace.enable = true;
lsp-format.enable = true;
lsp-lines.enable = true;
lsp-signature.enable = true;
lualine.enable = true;
luasnip.enable = true;
markview.enable = true;
multicursors.enable = true;
neo-tree.enable = true;
neoscroll.enable = true;
nvim-autopairs.enable = true;
refactoring.enable = true;
toggleterm.enable = true;
treesitter.enable = true;
web-devicons.enable = true;
zig.enable = true;
};
}

View File

@@ -0,0 +1,11 @@
{
programs.nixvim.plugins = {
glance = {
enable = true;
settings = {
border.enable = true;
theme.mode = "darken";
};
};
};
}

View File

@@ -0,0 +1,14 @@
{
programs.nixvim.plugins = {
illuminate = {
enable = true;
delay = 100;
minCountToHighlight = 1;
modesAllowlist = [
"n"
"i"
"v"
];
};
};
}

View File

@@ -0,0 +1,14 @@
{
programs.nixvim.plugins = {
indent-blankline = {
enable = true;
settings = {
scope = {
show_end = true;
show_exact_scope = true;
show_start = true;
};
};
};
};
}

View File

@@ -0,0 +1,13 @@
{
programs.nixvim.plugins = {
lint = {
enable = true;
autoCmd = {
event = [
"InsertLeave"
"TextChanged"
];
};
};
};
}

View File

@@ -0,0 +1,35 @@
{ pkgs, ... }:
{
programs.nixvim.plugins = {
lsp = {
enable = true;
servers = {
nil_ls.enable = true;
nixd = {
enable = true;
extraOptions = {
offset_encoding = "utf-8";
};
};
html.enable = true;
ts_ls.enable = true;
tailwindcss.enable = true;
gopls.enable = true;
golangci_lint_ls.enable = true;
templ.enable = true;
pylsp.enable = true;
sqls.enable = true;
ocamllsp = {
enable = true;
package = pkgs.ocamlPackages.ocaml-lsp;
};
rust_analyzer = {
enable = true;
installCargo = true;
installRustc = true;
};
zls.enable = true;
};
};
};
}

View File

@@ -0,0 +1,12 @@
{
programs.nixvim.plugins = {
scrollview = {
enable = true;
settings = {
signs_on_startup = [
"all"
];
};
};
};
}

View File

@@ -0,0 +1,63 @@
{
programs.nixvim.plugins = {
startup = {
enable = true;
parts = [
"header"
"body"
];
sections = {
header = {
align = "center";
content = {
__raw = "require('startup.headers').hydra_header";
};
defaultColor = "";
foldSection = false;
highlight = "Statement";
margin = 5;
oldfilesAmount = 0;
title = "Header";
type = "text";
};
body = {
align = "center";
content = [
[
" Find File"
"Telescope find_files"
"<leader>ff"
]
[
"󰍉 Find Word"
"Telescope live_grep"
"<leader>lg"
]
[
" Recent Files"
"Telescope oldfiles"
"<leader>of"
]
[
" File Browser"
"Telescope file_browser"
"<leader>fb"
]
[
" New File"
"lua require'startup'.new_file()"
"<leader>nf"
]
];
defaultColor = "";
foldSection = false;
highlight = "String";
margin = 5;
oldfilesAmount = 0;
title = "Basic Commands";
type = "mapping";
};
};
};
};
}

View File

@@ -0,0 +1,16 @@
{
programs.nixvim.plugins = {
telescope = {
enable = true;
extensions.file-browser = {
enable = true;
settings = {
hidden = {
file_browser = true;
folder_browser = true;
};
};
};
};
};
}

View File

@@ -0,0 +1,45 @@
{
programs.nixvim.plugins = {
which-key = {
enable = true;
settings = {
preset = "modern";
delay = 500;
expand = 1;
notify = false;
win = {
border = "single";
padding = [
1
1
];
wo.winblend = 10;
};
replace = {
desc = [
[
"<space>"
"SPACE"
]
[
"<leader>"
"SPACE"
]
[
"<[cC][rR]>"
"RETURN"
]
[
"<[tT][aA][bB]>"
"TAB"
]
[
"<[bB][sS]>"
"BACKSPACE"
]
];
};
};
};
};
}

View File

@@ -3,6 +3,7 @@
{
programs = {
starship = {
enable = true;
settings = {
add_newline = true;
format = lib.concatStrings [

View File

@@ -0,0 +1,25 @@
{ pkgs, ... }:
{
programs = {
tmux = {
enable = true;
mouse = true;
baseIndex = 1;
keyMode = "vi";
historyLimit = 5000;
prefix = "C-a";
terminal = "xterm-ghostty";
disableConfirmationPrompt = true;
plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.tilish
tmuxPlugins.resurrect
tmuxPlugins.gruvbox
tmuxPlugins.continuum
tmuxPlugins.prefix-highlight
];
extraConfig = "bind C-l send-keys 'C-l'";
};
};
}

View File

@@ -0,0 +1,52 @@
{ config, configPath, ... }:
{
programs = {
zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
historySubstringSearch.enable = true;
shellAliases = {
cd = "z";
cat = "bat";
catp = "bat -p";
fk = "thefuck";
fu = "thefuck";
fuck = "thefuck";
grep = "grep --color=auto";
lg = "lazygit";
ll = "eza -la";
ls = "eza --color=auto";
lt = "eza --tree";
open = "xdg-open";
locate = "sudo plocate";
tulpn = "sudo netstat -tulpn";
rebuild = "sudo nixos-rebuild switch --flake /etc/nixos#$(uname -n)";
};
envExtra = ''
#eval $(thefuck --alias)
'';
profileExtra = ''
export SSH_AUTH_SOCK=~/.1password/agent.sock
'';
initExtra = ''
fastfetch
'';
history = {
size = 10000;
path = "${config.xdg.dataHome}/zsh/history";
};
oh-my-zsh = {
enable = true;
};
};
};
}

View File

@@ -2,12 +2,7 @@
{
imports = [
./commands/cli-tools.nix
./commands/direnv.nix
./commands/fastfetch/fastfetch.nix
./commands/ghostty.nix
./commands/nixvim/nixvim.nix
./commands/starship.nix
./commands/commands.nix
./programs/programs.nix
inputs.nixvim.homeManagerModules.nixvim
];

View File

@@ -0,0 +1,36 @@
{
programs.ghostty = {
enable = true;
enableZshIntegration = true;
settings = {
theme = "Adwaita Dark";
#custom-shader = "./shaders/tft.glsl";
font-family = "JetBrainsMono Nerd Font";
font-family-italic = "Maple Mono";
font-family-bold-italic = "Maple Mono";
font-size = 12;
bold-is-bright = true;
window-decoration = false;
background-opacity = 0.8;
#background-blur-radius = 120;
window-save-state = "always";
mouse-hide-while-typing = true;
cursor-invert-fg-bg = true;
keybind = [
"super+shift+k=new_split:down"
"super+shift+l=new_split:right"
"super+shift+x=close_window"
];
};
};
#home.file.".config/ghostty/shaders" = {
# enable = true;
# source = ./shaders;
# recursive = true;
#};
}

View File

@@ -2,8 +2,8 @@
{
imports = [
];
./ghostty.nix
];
home.packages = with pkgs; [
# # Adds the 'hello' command to your environment. It prints a friendly
@@ -19,6 +19,7 @@
kdePackages.oxygen-sounds
kdePackages.partitionmanager
libreoffice-still
librewolf
localsend
lutris-unwrapped
meld