This commit is contained in:
2025-11-19 21:06:46 +01:00
parent e6609fd6f4
commit a3b13c47ef
16 changed files with 267 additions and 837 deletions

View File

@@ -5,7 +5,22 @@
{
programs.floorp = {
enable = true;
profiles.${username} = { };
profiles.${username} = {
extensions.force = true;
settings = {
"browser.startup.homepage" = "https://www.cyperpunk.de";
"browser.search.region" = "DE";
"browser.search.isUS" = false;
"general.useragent.locale" = "de-DE";
"browser.bookmarks.showMobileBookmarks" = true;
"browser.newtabpage.pinned" = [
{
title = "Cyperpunk";
url = "https://www.cyperpunk.de/";
}
];
};
};
};
}

View File

@@ -69,7 +69,7 @@
style = "bold #a6e3a1";
truncation_length = 0;
truncation_symbol = "";
format = "[ ](bold #f38ba8)[$path]($style)";
format = "[ ](bold #f38ba8)[$path ]($style)";
};
git_branch = {

View File

@@ -47,16 +47,17 @@
})
# Add telescope.vim as a custom plugin
(pkgs.vimUtils.buildVimPlugin {
name = "telescope-nvim";
src = pkgs.fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope.nvim";
rev = "0.1.8";
sha256 = "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=";
};
})
/*
(pkgs.vimUtils.buildVimPlugin {
name = "telescope-nvim";
src = pkgs.fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope.nvim";
rev = "0.1.8";
sha256 = "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=";
};
})
*/
];
extraLuaConfig = builtins.readFile (./. + "/config.lua");

View File

@@ -1,331 +0,0 @@
{ pkgs, ... }:
{
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
# ===================
# Basic Options
# ===================
options = {
number = true;
cursorline = true;
showmode = false;
syntax = "enable";
hlsearch = true;
incsearch = true;
tabstop = 4;
termguicolors = true;
};
globals.mapleader = " ";
keymaps = [
# Clipboard
{
mode = "n";
key = "y";
action = "\"+y";
options.desc = "Yank to clipboard";
}
{
mode = "v";
key = "y";
action = "\"+y";
options.desc = "Yank to clipboard";
}
{
mode = "n";
key = "Y";
action = "\"+Y";
options.desc = "Yank line to clipboard";
}
{
mode = "n";
key = "d";
action = "\"+d";
options.desc = "Delete to clipboard";
}
{
mode = "v";
key = "d";
action = "\"+d";
options.desc = "Delete to clipboard";
}
{
mode = "n";
key = "D";
action = "\"+D";
options.desc = "Delete line to clipboard";
}
{
mode = "n";
key = "p";
action = "\"+p";
options.desc = "Paste from clipboard";
}
{
mode = "v";
key = "p";
action = "\"+p";
options.desc = "Paste from clipboard";
}
];
# ===================
# Plugins
# ===================
plugins = {
# Treesitter
treesitter = {
enable = true;
ensureInstalled = [
"lua"
"nix"
"python"
"javascript"
"rust"
"rasi"
];
};
# Lint
lint.enable = true;
# Mason + LSP
mason.enable = true;
mason-lspconfig = {
enable = true;
ensureInstalled = [
"lua_ls"
"nil_ls"
"rust_analyzer"
"pylsp"
"stylelint_lsp"
];
};
lsp = {
enable = true;
servers = {
lua_ls.settings.Lua = {
runtime.version = "LuaJIT";
diagnostics.globals = [ "vim" ];
telemetry.enable = false;
};
nil_ls.enable = true;
rust_analyzer.enable = true;
pylsp.enable = true;
stylelint_lsp = {
enable = true;
filetypes = [
"css"
"scss"
"rasi"
];
cmd = [
"stylelint-lsp"
"--stdio"
];
};
};
keymaps.lspBuf = {
gd = "definition";
K = "hover";
"<leader>rn" = "rename";
"<leader>ca" = "code_action";
};
};
# Completion
cmp = {
enable = true;
sources = [
{ name = "nvim_lsp"; }
{ name = "luasnip"; }
{ name = "avante_commands"; }
{ name = "avante_mentions"; }
{ name = "buffer"; }
{ name = "path"; }
];
};
luasnip.enable = true;
# Conform
conform-nvim = {
enable = true;
formattersByFt = {
lua = [ "stylua" ];
nix = [ "nixfmt" ];
python = [ "black" ];
rust = [ "rustfmt" ];
rasi = [ "prettierd" ];
};
formatOnSave = {
timeoutMs = 500;
lspFallback = true;
};
};
# Telescope
telescope = {
enable = true;
keymaps = {
"<leader>ff" = "find_files";
"<leader>fg" = "live_grep";
"<leader>fb" = "buffers";
"<leader>fh" = "help_tags";
};
};
# Toggleterm
toggleterm = {
enable = true;
settings = {
size = 20;
direction = "float";
float_opts = {
border = "single";
width = 200;
height = 40;
};
};
};
# Statusline
lualine = {
enable = true;
settings.options = {
theme = "catppuccin";
component_separators = {
left = "|";
right = "|";
};
section_separators = {
left = "";
right = "";
};
};
};
# Dashboard (alpha)
alpha = {
enable = true;
theme = "dashboard";
layout.dashboard = {
section.header.val = [
"⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣯⣿⠿⣟⣷⣯⣛⢿⣿⣿⣾⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿"
"⣿⣿⣿⣿⣿⣿⣿⡿⣵⣿⡿⣴⣽⡟⣳⢿⢽⣽⣕⣽⢿⡿⣿⣟⣿⣿⣿⣿⣿⣿⣿"
"⣿⣿⣿⣷⣿⣿⢟⣫⣿⢟⢟⣾⣾⣿⣿⣞⢳⣻⢞⣎⠿⢞⣊⣿⣞⣿⣿⣿⣿⣿⢽"
"⣿⣿⣿⣿⣿⣏⢯⣿⣏⣏⠔⢇⣿⢢⢆⢀⢆⣧⣼⢻⢰⡧⢻⣝⣏⡸⣧⣾⣿⣿⣿"
"⣿⣿⣿⣿⡟⣻⣿⣿⡾⡿⡼⢸⡝⣝⡳⢢⣧⢳⣳⢷⡇⣗⢺⡺⣿⡧⣿⣿⣿⢿⢿"
"⣿⡿⣿⣼⡼⣿⣿⡗⡧⣧⠁⡝⣧⣳⠅⡾⠈⣎⢮⣧⣿⣿⣗⣷⣻⢷⣏⣼⢏⣺⣿"
"⣿⣿⣿⣻⣿⣿⣿⢧⣿⢹⠉⢷⢿⣧⣲⡏⡀⡈⢆⠳⣿⡿⢿⣿⣱⢿⢫⣷⣝⣿⣿"
"⣿⣿⣿⡯⡟⣿⣿⢽⣡⠟⢿⣮⠁⠙⠛⠈⡴⢿⣿⡷⣬⣽⢽⠧⣷⡏⣿⡇⣧⣽⣿"
"⣿⠟⢻⡧⡇⣿⡇⣇⣆⢄⡜⢃⡀⡀⡀⡀⡀⢎⣁⠁⣸⣗⣸⣿⣧⣼⡿⢹⢿⢾⣿"
"⣿⣷⣾⣿⢻⣿⢧⢻⣽⡀⡀⡀⡀⢄⡀⡀⡀⡀⡀⢀⣷⡸⡟⣿⣶⣻⣧⡛⡱⢝⣿"
"⣿⣿⣿⣿⢸⡿⢚⡜⣿⣇⡀⡀⡀⡀⡀⡀⡀⡀⠚⢁⢣⣜⡿⣿⡇⢼⣿⠨⣸⣿⣿"
"⣿⣄⣿⣗⢾⢻⣧⢿⣾⣿⣦⡀⡀⠑⠚⠉⡀⡀⣤⣿⢨⣿⠗⣻⢣⣿⢹⢈⣽⣿⣿"
"⣿⣿⣿⣿⢎⡄⢿⣞⡇⣿⠹⣿⣶⣀⡀⣀⡴⡩⢸⢏⣿⣿⣶⢻⣾⢏⡞⠡⢽⣇⣾"
"⣿⣿⣿⣮⣼⢬⣦⢿⣳⣌⠧⡉⠈⣇⣛⣁⣈⣼⣿⡸⠫⠛⠐⠛⠕⣙⣻⣬⣼⣿⣿"
"⢟⢿⣿⣿⣿⡢⣃⣪⣭⣡⣤⣶⠟⡿⠿⠿⠿⠛⢁⣿⣿⢩⠉⡀⠈⠓⡝⣿⣿⣿⣿"
"⣾⣿⣿⣿⣿⠞⢔⡣⡴⣾⣿⠓⣤⢧⡼⣉⠠⢤⣿⣿⠇⠃⡀⡀⡀⡀⡸⢿⣾⣿⣿"
"⣿⣿⣿⡿⣺⡸⢗⢠⣇⣿⣿⠊⠃⡀⠉⡀⢠⣿⣿⠟⡸⡀⡀⡀⡀⡀⣃⣬⠽⠿⣿"
"⣿⣿⣿⣿⡇⡏⢸⣿⠟⣽⡇⡀⡀⡀⡀⣴⣟⢭⣾⣿⡇⠎⣠⠒⠉⠈⢀⡀⢨⡋⣿"
"⠛⠛⠛⠋⠃⠓⠚⠛⠘⠛⠃⡀⠊⡀⠛⠛⠛⠂⠛⠛⠓⠁⠚⡀⠂⠒⠒⠐⠒⠋⠛"
];
section.buttons.val = [
{
shortcut = "e";
text = "[+] New file";
command = ":ene <BAR> startinsert <CR>";
}
{
shortcut = "f";
text = "[?] Find file";
command = ":Telescope find_files <CR>";
}
{
shortcut = "r";
text = "[~] Recent files";
command = ":Telescope oldfiles <CR>";
}
{
shortcut = "y";
text = "[Y] Yazi";
command = ":Yazi<CR>";
}
{
shortcut = "m";
text = "[M] Mason";
command = ":Mason<CR>";
}
{
shortcut = "q";
text = "[X] Quit";
command = ":qa<CR>";
}
];
section.footer.val = "Circuits hum in anticipation of your will.";
};
};
# Colorscheme
catppuccin = {
enable = true;
flavour = "mocha";
transparentBackground = true;
integrations = {
treesitter = true;
mason = true;
cmp = true;
telescope = true;
toggleterm = true;
};
};
};
# ===================
# Plugins not in nixvim
# ===================
extraPlugins = with pkgs.vimPlugins; [
yazi-nvim
cheatsheet-nvim
avante-nvim
plenary-nvim
nui-nvim
dressing-nvim
nvim-web-devicons
img-clip-nvim
render-markdown-nvim
(pkgs.vimUtils.buildVimPlugin {
name = "conform-nvim";
src = pkgs.fetchFromGitHub {
owner = "stevearc";
repo = "conform.nvim";
rev = "stable";
sha256 = "sha256-pUF9F5QoDzCZuVRcJEF91M8Qjkh/xosMkf9tRavkmJs=";
};
})
];
};
home.packages = with pkgs; [
nixfmt-rfc-style
stylua
black
nodePackages.prettier
rustfmt
nodejs
prettierd
stylelint-lsp
lua-language-server
nil
rust-analyzer
python3Packages.python-lsp-server
curl
cargo
];
}

View File

@@ -2,18 +2,11 @@
{
services.mako = {
enable = true;
font = "FiraCodeNerdFontPropo 12";
borderSize = 4;
borderRadius = 8;
defaultTimeout = 5000;
extraConfig = ''
[app-name=Spotify]
border-color=#a6e3a1
[app-name=Thunderbird]
border-color=#94e2d5
'';
settings = {
font = "FiraCodeNerdFontPropo 12";
borderSize = 4;
borderRadius = 8;
defaultTimeout = 5000;
};
};
}

View File

@@ -12,7 +12,7 @@
programs.rofi = {
enable = true;
cycle = false;
package = pkgs.rofi-wayland;
package = pkgs.rofi;
font = "FiraCode Nerd Font Mono 12";
location = "center";

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{ pkgs, lib, ... }:
{
gtk = {
enable = true;
@@ -9,8 +9,8 @@
};
iconTheme = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
package = lib.mkForce pkgs.adwaita-icon-theme;
name = lib.mkForce "Adwaita";
};
font = {