1
0
Fork 0
mirror of https://git.sr.ht/~azikx/wyswort synced 2024-10-30 05:36:19 +00:00

update 

This commit is contained in:
azikx 2024-10-14 21:29:27 +09:00
parent 4ac822706f
commit 3fa37ddc73
58 changed files with 82 additions and 2397 deletions

View file

@ -1,17 +1,21 @@
{
outputs = { nixpkgs, home-manager, ... }@inputs:
let system = "x86_64-linux"; in
let
nxsys = nixpkgs.lib.nixosSystem;
hmsys = home-manager.lib.homeManagerConfiguration;
system = "x86_64-linux";
in
{
nixosConfigurations = {
wysvort = nixpkgs.lib.nixosSystem {
wysvort = nxsys {
specialArgs = { inherit system inputs; };
modules = [ ./host ];
};
};
homeConfigurations = {
megamozg = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
megamozg = hmsys {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = { inherit inputs; };
modules = [ ./home ];
};

View file

@ -2,7 +2,6 @@
{
programs.fzf = {
enable = true;
enableFishIntegration = true;
# defaultOptions = [
# "--margin 1"
# ];

View file

@ -5,7 +5,7 @@
{
name = "nix";
language-servers = [ "nixd" "nil" ];
indent = { tab-width = 4; unit = " "; };
indent = { tab-width = 2; unit = " "; };
}
];
language-server = {

View file

@ -61,7 +61,7 @@
"diagnostic.error" = { underline = { style = "curl"; }; };
"ui.background" = { bg = BASE00; };
"ui.bufferline.active" = { fg = BASE00; bg = BASE03; modifiers = [ "bold" ]; };
"ui.bufferline.active" = { fg = BASE00; bg = BASE0E; modifiers = [ "bold" ]; };
"ui.bufferline" = { fg = BASE04; bg = BASE00; };
"ui.cursor" = { fg = BASE0A; modifiers = [ "reversed" ]; };
"ui.cursor.insert" = { fg = BASE0A; modifiers = [ "reversed" ]; };

View file

@ -1,150 +0,0 @@
{ ... }:
{
programs.joshuto.keymap = {
default_view = {
keymap = [
{ keys = ["escape"]; commands = ["escape"] };
{ keys = ["t"; "a"]; commands = ["new_tab"] };
{ keys = ["t"; "c"]; commands = ["new_tab --cursor"] };
{ keys = ["t"; "A"]; commands = ["new_tab --current"] };
{ keys = ["t"; "q"]; commands = ["close_tab"] };
{ keys = ["q"]; commands = ["close_tab"] };
{ keys = ["ctrl+c"]; commands = ["quit"] };
{ keys = ["Q"]; commands = ["quit --output-current-directory"] };
{ keys = ["R"]; commands = ["reload_dirlist"] };
{ keys = ["z"; "r"]; commands = ["reload_dirlist"] };
{ keys = ["z"; "z"]; commands = ["zi"] };
{ keys = ["z"; "h"]; commands = ["toggle_hidden"] };
{ keys = ["z"; "f"]; commands = ["flat 2"] };
{ keys = ["z"; "F"]; commands = ["flat 0"] };
{ keys = ["backspace"]; commands = ["toggle_hidden"] };
{ keys = ["t"; "s"]; commands = ["tab_switch 1"] };
{ keys = ["t"; "S"]; commands = ["tab_switch -1"] };
{ keys = ["\t"]; commands = ["tab_switch 1"] };
{ keys = ["backtab"]; commands = ["tab_switch -1"] };
{ keys = ["alt+1"]; commands = ["tab_switch_index 1"] };
{ keys = ["alt+2"]; commands = ["tab_switch_index 2"] };
{ keys = ["alt+3"]; commands = ["tab_switch_index 3"] };
{ keys = ["alt+4"]; commands = ["tab_switch_index 4"] };
{ keys = ["alt+5"]; commands = ["tab_switch_index 5"] };
{ keys = ["1"]; commands = ["numbered_command 1"] };
{ keys = ["2"]; commands = ["numbered_command 2"] };
{ keys = ["3"]; commands = ["numbered_command 3"] };
{ keys = ["4"]; commands = ["numbered_command 4"] };
{ keys = ["5"]; commands = ["numbered_command 5"] };
{ keys = ["6"]; commands = ["numbered_command 6"] };
{ keys = ["7"]; commands = ["numbered_command 7"] };
{ keys = ["8"]; commands = ["numbered_command 8"] };
{ keys = ["9"]; commands = ["numbered_command 9"] };
# arrow keys
{ keys = ["arrow_up"]; commands = ["cursor_move_up"] };
{ keys = ["arrow_down"]; commands = ["cursor_move_down"] };
{ keys = ["arrow_left"]; commands = ["cd .."] };
{ keys = ["arrow_right"]; commands = ["open"] };
{ keys = ["\n"]; commands = ["open"] };
{ keys = ["home"]; commands = ["cursor_move_home"] };
{ keys = ["end"]; commands = ["cursor_move_end"] };
{ keys = ["page_up"]; commands = ["cursor_move_page_up"] };
{ keys = ["page_down"]; commands = ["cursor_move_page_down"] };
{ keys = ["ctrl+u"]; commands = ["cursor_move_page_up 0.5"] };
{ keys = ["ctrl+d"]; commands = ["cursor_move_page_down 0.5"] };
{ keys = ["ctrl+b"]; commands = ["cursor_move_page_up"] };
{ keys = ["ctrl+f"]; commands = ["cursor_move_page_down"] };
# vim-like keybindings
{ keys = ["j"]; commands = ["cursor_move_down"] };
{ keys = ["k"]; commands = ["cursor_move_up"] };
{ keys = ["h"]; commands = ["z"] };
{ keys = ["l"]; commands = ["open"] };
{ keys = ["g"; "g"]; commands = ["cursor_move_home"] };
{ keys = ["G"]; commands = ["cursor_move_end"] };
{ keys = ["e"]; commands = ["open_with"] };
{ keys = ["H"]; commands = ["cursor_move_page_home"] };
{ keys = ["L"]; commands = ["cursor_move_page_middle"] };
{ keys = ["M"]; commands = ["cursor_move_page_end"] };
{ keys = ["["]; commands = ["parent_cursor_move_up"] };
{ keys = ["]"]; commands = ["parent_cursor_move_down"] };
{ keys = ["c"; "d"]; commands = [":cd "] };
{ keys = ["x"; "x"]; commands = ["cut_files"] };
{ keys = ["c"; "c"]; commands = ["copy_files"] };
{ keys = ["c"; "n"]; commands = ["copy_filename"] };
{ keys = ["c"; "e"]; commands = ["copy_filename_without_extension"] };
{ keys = ["c"; "f"]; commands = ["copy_filepath"] };
{ keys = ["c"; "F"]; commands = ["copy_filepath --all-selected=true"] };
{ keys = ["c"; "p"]; commands = ["copy_dirpath"] };
{ keys = ["p"; "l"]; commands = ["symlink_files --relative=false"] };
{ keys = ["p"; "L"]; commands = ["symlink_files --relative=true"] };
{ keys = ["delete"]; commands = ["delete_files"] };
{ keys = ["d"; "d"]; commands = ["delete_files --noconfirm"] };
{ keys = ["d"; "D"]; commands = ["delete_files --noconfirm --permanently"] };
{ keys = ["v"; "v"]; commands = ["paste_files"] };
{ keys = ["v"; "V"]; commands = ["paste_files --overwrite=true"] };
{ keys = ["r"; "r"]; commands = ["rename_append"] };
{ keys = ["r"; "R"]; commands = ["rename_prepend"] };
{ keys = ["r"; "c"]; commands = [":rename "] };
{ keys = ["m"; "f"]; commands = [":touch "] };
{ keys = ["m"; "d"]; commands = [":mkdir "] };
{ keys = [" "]; commands = ["select --toggle=true"] };
{ keys = ["v"; "a"]; commands = ["select --all=true --toggle=true"] };
{ keys = ["v"; "i"]; commands = ["toggle_visual"] };
{ keys = ["w"]; commands = ["show_tasks --exit-key=w"] };
{ keys = ["r"; "b"]; commands = ["bulk_rename"] };
{ keys = ["="]; commands = ["set_mode"] };
{ keys = [":"]; commands = [":"] };
{ keys = [";"]; commands = [":"] };
{ keys = ["'"]; commands = [":shell "] };
{ keys = ["/"]; commands = [":search "] };
{ keys = ["|"]; commands = [":search_inc "] };
{ keys = ["\\"]; commands = [":search_glob "] };
{ keys = ["f"; "s"]; commands = ["search_fzf"] };
{ keys = ["f"; "d"]; commands = ["subdir_fzf"] };
{ keys = ["n"]; commands = ["search_next"] };
{ keys = ["N"]; commands = ["search_prev"] };
{ keys = ["s"; "r"]; commands = ["sort reverse"] };
{ keys = ["s"; "l"]; commands = ["sort lexical"] };
{ keys = ["s"; "L"]; commands = ["sort lexical --reverse=true"] };
{ keys = ["s"; "m"]; commands = ["sort mtime"] };
{ keys = ["s"; "M"]; commands = ["sort mtime --reverse=true"] };
{ keys = ["s"; "n"]; commands = ["sort natural"] };
{ keys = ["s"; "N"]; commands = ["sort natural --reverse=true"] };
{ keys = ["s"; "s"]; commands = ["sort size"] };
{ keys = ["s"; "S"]; commands = ["sort size --reverse=true"] };
{ keys = ["s"; "e"]; commands = ["sort ext"] };
{ keys = ["s"; "E"]; commands = ["sort ext --reverse=true"] };
{ keys = ["m"; "s"]; commands = ["linemode size"] };
{ keys = ["m"; "m"]; commands = ["linemode mtime"] };
{ keys = ["m"; "M"]; commands = ["linemode size | mtime"] };
{ keys = ["m"; "u"]; commands = ["linemode user"] };
{ keys = ["m"; "U"]; commands = ["linemode user | group"] };
{ keys = ["m"; "p"]; commands = ["linemode perm"] };
{ keys = ["g"; "r"]; commands = ["cd /"] };
{ keys = ["g"; "c"]; commands = ["cd ~/.config"] };
{ keys = ["g"; "w"]; commands = ["cd ~/.walls"] };
{ keys = ["g"; "d"]; commands = ["cd ~/Загрузки"] };
{ keys = ["g"; "h"]; commands = ["cd ~/"] };
{ keys = ["?"]; commands = ["help"] };
];
};
};
}

View file

@ -1,43 +0,0 @@
{ pkgs, ... }:
{
imports = [ ./mime.nix ./theme.nix ./binds.nix ];
programs.joshuto = {
enable = true;
settings = {
numbered_command = false;
mouse_support = true;
focus_on_create = true;
use_trash = true;
watch_files = true;
xdg_open = true;
xdg_open_fork = true;
# case_insensitive_ext = false;
zoxide_update = true;
display = {
mode = "default";
automatically_count_files = true;
collapse_preview = true;
column_ratio = [1 4 4];
scroll_offset = 6;
show_borders = false;
show_hidden = false;
show_icons = true;
# line_number_style = "relative";
tilde_in_titlebar = false;
linemode = "size";
sort = {
sort_method = "natural";
case_sensitive = false;
directories_first = true;
reverse = false;
};
};
preview = {
max_preview_size = 100000000;
use_xdg_thumbs = true;
xdg_thumb_size = "xlarge";
};
tab.home_page = "inherit";
};
};
}

View file

@ -1,265 +0,0 @@
{ ... }:
{
programs.joshuto.mimetype = {
class = {
audio_default = [
{ command = "mpv"; args = [ "--" ]; }
{ command = "mediainfo"; confirm_exit = true; }
];
image_default = [
{ command = "swayimg"; args = [ "-f" ]; fork = true; silent = true; }
];
video_default = [
{ command = "mpv"; args = [ "--" ]; fork = true; silent = true; }
{ command = "mediainfo"; confirm_exit = true; }
];
text_default = [
{ command = "hx"; }
{ command = "bat"; args = [ "--paging=always" ]; }
];
blender_default = [
{ command = "blender"; fork = true; silent = true; }
];
reader_default = [
{ command = "libreoffice"; fork = true; silent = true; }
];
libreoffice_default = [
{ command = "libreoffice"; fork = true; silent = true; }
];
};
extension = {
## image formats
avif."inherit" = "image_default";
bmp."inherit" = "image_default";
gif."inherit" = "image_default";
heic."inherit" = "image_default";
jpeg."inherit" = "image_default";
jpe."inherit" = "image_default";
jpg."inherit" = "image_default";
jxl."inherit" = "image_default";
pgm."inherit" = "image_default";
png."inherit" = "image_default";
ppm."inherit" = "image_default";
webp."inherit" = "image_default";
eps.app_list = [
{ command = "inkview"; fork = true; silent = true; }
{ command = "inkscape"; fork = true; silent = true; }
];
svg.app_list = [
{ command = "inkview"; fork = true; silent = true; }
{ command = "inkscape"; fork = true; silent = true; }
];
tiff.app_list = [
{ command = "qimgv"; fork = true; silent = true; }
{ command = "krita"; fork = true; silent = true; }
];
## audio formats
aac."inherit" = "audio_default";
ac3."inherit" = "audio_default";
aiff."inherit" = "audio_default";
ape."inherit" = "audio_default";
dts."inherit" = "audio_default";
flac."inherit" = "audio_default";
m4a."inherit" = "audio_default";
mp3."inherit" = "audio_default";
oga."inherit" = "audio_default";
ogg."inherit" = "audio_default";
opus."inherit" = "audio_default";
wav."inherit" = "audio_default";
wv."inherit" = "audio_default";
## video formats
avi."inherit" = "video_default";
av1."inherit" = "video_default";
flv."inherit" = "video_default";
mkv."inherit" = "video_default";
m4v."inherit" = "video_default";
mov."inherit" = "video_default";
mp4."inherit" = "video_default";
ts."inherit" = "video_default";
webm."inherit" = "video_default";
wmv."inherit" = "video_default";
## text formats
bib."inherit" = "text_default";
build."inherit" = "text_default";
c."inherit" = "text_default";
cfg."inherit" = "text_default";
cmake."inherit" = "text_default";
conf."inherit" = "text_default";
cpp."inherit" = "text_default";
css."inherit" = "text_default";
csv."inherit" = "text_default";
cu."inherit" = "text_default";
desktop."inherit" = "text_default";
ebuild."inherit" = "text_default";
eex."inherit" = "text_default";
env."inherit" = "text_default";
ex."inherit" = "text_default";
exs."inherit" = "text_default";
go."inherit" = "text_default";
gpl."inherit" = "text_default";
h."inherit" = "text_default";
hpp."inherit" = "text_default";
hs."inherit" = "text_default";
ini."inherit" = "text_default";
ipynb."inherit" = "text_default";
java."inherit" = "text_default";
jl."inherit" = "text_default";
js."inherit" = "text_default";
json."inherit" = "text_default";
jsonc."inherit" = "text_default";
kdl."inherit" = "text_default";
kt."inherit" = "text_default";
kvconfig."inherit" = "text_default";
lock."inherit" = "text_default";
log."inherit" = "text_default";
lua."inherit" = "text_default";
md."inherit" = "text_default";
micro."inherit" = "text_default";
ninja."inherit" = "text_default";
nix."inherit" = "text_default";
norg."inherit" = "text_default";
org."inherit" = "text_default";
po."inherit" = "text_default";
pot."inherit" = "text_default";
py."inherit" = "text_default";
qmd."inherit" = "text_default";
rasi."inherit" = "text_default";
rkt."inherit" = "text_default";
rktd."inherit" = "text_default";
rproj."inherit" = "text_default";
rs."inherit" = "text_default";
rstheme."inherit" = "text_default";
scm."inherit" = "text_default";
scss."inherit" = "text_default";
service."inherit" = "text_default";
sh."inherit" = "text_default";
socket."inherit" = "text_default";
sql."inherit" = "text_default";
srt."inherit" = "text_default";
svelte."inherit" = "text_default";
toml."inherit" = "text_default";
tsx."inherit" = "text_default";
txt."inherit" = "text_default";
vim."inherit" = "text_default";
xml."inherit" = "text_default";
yaml."inherit" = "text_default";
yml."inherit" = "text_default";
## web formats
html.app_list = [
{ command = "qutebrowser"; fork = true; silent = true; }
{ command = "hx"; }
{ command = "bat"; args = [ "--paging=always" ]; }
];
## archive formats
"7z".app_list = [
{ command = "7z"; args = [ "x" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
bz2.app_list = [
{ command = "tar"; args = [ "-xvjf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
gz.app_list = [
{ command = "tar"; args = [ "-xvzf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
tar.app_list = [
{ command = "tar"; args = [ "-xvf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
tgz.app_list = [
{ command = "tar"; args = [ "-xvzf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
rar.app_list = [
{ command = "unrar"; args = [ "x" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
xz.app_list = [
{ command = "tar"; args = [ "-xvJf" ]; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
zip.app_list = [
{ command = "unzip"; confirm_exit = true; }
{ command = "file-roller"; fork = true; silent = true; }
];
## misc formats
aup.app_list = [
{ command = "audacity"; fork = true; silent = true; }
];
m3u.app_list = [
{ command = "hx"; }
{ command = "mpv"; silent = true; }
{ command = "bat"; confirm_exit = true; }
];
## document
odt."inherit" = "libreoffice_default";
odf."inherit" = "libreoffice_default";
ods."inherit" = "libreoffice_default";
odp."inherit" = "libreoffice_default";
doc."inherit" = "libreoffice_default";
docx."inherit" = "libreoffice_default";
xls."inherit" = "libreoffice_default";
xlsx."inherit" = "libreoffice_default";
ppt."inherit" = "libreoffice_default";
pptx."inherit" = "libreoffice_default";
epub."inherit" = "reader_default";
pdf."inherit" = "reader_default";
## 3d files
blend."inherit" = "blender_default";
fbx."inherit" = "blender_default";
glb."inherit" = "blender_default";
gltf."inherit" = "blender_default";
obj."inherit" = "blender_default";
stl."inherit" = "blender_default";
kra.app_list = [
{ command = "krita"; fork = true; silent = true; }
];
kdenlive.app_list = [
{ command = "kdenlive"; fork = true; silent = true; }
];
tex.app_list = [
{ command = "hx"; }
{ command = "bat"; confirm_exit = true; }
{ command = "pdflatex"; silent = true; }
];
torrent.app_list = [
{ command = "transmission-gtk"; fork = true; silent = true; }
];
};
## application/octet-stream
application.subtype.octet-stream = {
"inherit" = "video_default";
};
## text/*
text = {
"inherit" = "text_default";
};
video = {
"inherit" = "video_default";
};
};
}

View file

@ -1,76 +0,0 @@
{ ... }:
{
programs.joshuto.theme = {
tabs.styles = {
active = {
bg = "none";
fg = "blue";
bold = true;
};
inactive = {
bg = "none";
fg = "gray";
bold = true;
};
scroll_front = {
fg = "yellow";
bold = true;
};
scroll_back = {
fg = "yellow";
bold = true;
};
};
selection = {
fg = "yellow";
bold = true;
prefix = " ";
};
visual_mode_selection = {
fg = "light_red";
bold = true;
prefix = "v ";
};
regular = {
fg = "white";
};
directory = {
fg = "light_blue";
bold = true;
};
link = {
fg = "cyan";
bold = true;
};
socket = {
fg = "light_magenta";
bold = true;
};
executable = {
fg = "light_green";
bold = true;
};
link_invalid = {
fg = "red";
bold = true;
};
tabs.chars = {
active_prefix = "[";
active_postfix = "]";
inactive_prefix = " ";
inactive_postfix = "";
divider = " | ";
scroll_front_prefix = "";
scroll_front_postfix = "";
scroll_front_prestring = "« ";
scroll_front_poststring = " ";
scroll_back_prefix = "";
scroll_back_postfix = "";
scroll_back_prestring = " ";
scroll_back_poststring = " »";
padding_prefix = " ";
padding_postfix = " ";
padding_fill = " ";
};
};
}

View file

@ -1,43 +0,0 @@
{ nixvim, inputs, ... }:
{
imports = [ inputs.nixvim.homeManagerModules.nixvim ./plugins ];
programs.nixvim = {
enable = true;
defaultEditor = true;
vimdiffAlias = true;
globals = {
mapleader = " ";
maplocalleader = " ";
have_nerd_font = true;
};
opts = {
number = true;
relativenumber = true;
mouse = "a";
clipboard = {
providers.wl-copy.enable = true;
register = "unnamedplus";
};
breakindent = true;
smarttab = true;
tabstop = 4;
shiftwidth = 4;
softtabstop = 4;
autoindent = true;
undofile = true;
ignorecase = true;
smartcase = true;
signcolumn = "yes";
updatetime = 250;
timeoutlen = 300;
splitright = true;
splitbelow = true;
list = true;
listchars.__raw = "{ tab = '» ', trail = '·', nbsp = '' }";
inccommand = "split";
cursorline = true;
scrolloff = 10;
hlsearch = true;
};
};
}

View file

@ -1,15 +0,0 @@
{
# Inserts matching pairs of parens, brackets, etc.
# https://nix-community.github.io/nixvim/plugins/nvim-autopairs/index.html
programs.nixvim = {
plugins.nvim-autopairs = {
enable = true;
};
# If you want to automatically add `(` after selecting a function or method
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraconfiglua#extraconfiglua
extraConfigLua = ''
require('cmp').event:on('confirm_done', require('nvim-autopairs.completion.cmp').on_confirm_done())
'';
};
}

View file

@ -1,57 +0,0 @@
{pkgs, ...}: {
programs.nixvim = {
# Dependencies
#
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraplugins#extrapackages
extraPackages = with pkgs; [
# Used to format Lua code
stylua
];
# Autoformat
# https://nix-community.github.io/nixvim/plugins/conform-nvim.html
plugins.conform-nvim = {
enable = true;
settings= {
notify_on_error = false;
format_on_save = ''
function(bufnr)
-- Disable "format_on_save lsp_fallback" for lanuages that don't
-- have a well standardized coding style. You can add additional
-- lanuages here or re-enable it for the disabled ones.
local disable_filetypes = { c = true, cpp = true }
return {
timeout_ms = 500,
lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype]
}
end
'';
formatters_by_ft = {
lua = ["stylua"];
# Conform can also run multiple formatters sequentially
# python = [ "isort "black" ];
#
# You can use a sublist to tell conform to run *until* a formatter
# is found
# javascript = [ [ "prettierd" "prettier" ] ];
};
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
{
mode = "";
key = "<leader>f";
action.__raw = ''
function()
require('conform').format { async = true, lsp_fallback = true }
end
'';
options = {
desc = "[F]ormat buffer";
};
}
];
};
}

View file

@ -1,145 +0,0 @@
{
programs.nixvim = {
# Shows how to use the DAP plugin to debug your code.
#
# Primarily focused on configuring the debugger for Go, but can
# be extended to other languages as well. That's why it's called
# kickstart.nixvim and not ktichen-sink.nixvim ;)
# https://nix-community.github.io/nixvim/plugins/dap/index.html
plugins.dap = {
enable = true;
extensions = {
# Creates a beautiful debugger UI
dap-ui = {
enable = true;
# Set icons to characters that are more likely to work in every terminal.
# Feel free to remove or use ones that you like more! :)
# Don't feel like these are good choices.
icons = {
expanded = "";
collapsed = "";
current_frame = "*";
};
controls = {
icons = {
pause = "";
play = "";
step_into = "";
step_over = "";
step_out = "";
step_back = "b";
run_last = "";
terminate = "";
disconnect = "";
};
};
};
# Add your own debuggers here
dap-go = {
enable = true;
};
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
{
mode = "n";
key = "<F5>";
action.__raw = ''
function()
require('dap').continue()
end
'';
options = {
desc = "Debug: Start/Continue";
};
}
{
mode = "n";
key = "<F1>";
action.__raw = ''
function()
require('dap').step_into()
end
'';
options = {
desc = "Debug: Step Into";
};
}
{
mode = "n";
key = "<F2>";
action.__raw = ''
function()
require('dap').step_over()
end
'';
options = {
desc = "Debug: Step Over";
};
}
{
mode = "n";
key = "<F3>";
action.__raw = ''
function()
require('dap').step_out()
end
'';
options = {
desc = "Debug: Step Out";
};
}
{
mode = "n";
key = "<leader>b";
action.__raw = ''
function()
require('dap').toggle_breakpoint()
end
'';
options = {
desc = "Debug: Toggle Breakpoint";
};
}
{
mode = "n";
key = "<leader>B";
action.__raw = ''
function()
require('dap').set_breakpoint(vim.fn.input 'Breakpoint condition: ')
end
'';
options = {
desc = "Debug: Set Breakpoint";
};
}
# Toggle to see last session result. Without this, you can't see session output
# in case of unhandled exception.
{
mode = "n";
key = "<F7>";
action.__raw = ''
function()
require('dapui').toggle()
end
'';
options = {
desc = "Debug: See last session result.";
};
}
];
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraconfiglua#extraconfiglua
extraConfigLua = ''
require('dap').listeners.after.event_initialized['dapui_config'] = require('dapui').open
require('dap').listeners.before.event_terminated['dapui_config'] = require('dapui').close
require('dap').listeners.before.event_exited['dapui_config'] = require('dapui').close
'';
};
}

View file

@ -1,29 +0,0 @@
{ nixvim, ... }:
{
imports = [
./gitsigns.nix
./which-key.nix
./telescope.nix
./conform.nix
./lsp.nix
./nvim-cmp.nix
./mini.nix
./treesitter.nix
./indent-blankline.nix
./autopairs.nix
./neo-tree.nix
];
programs.nixvim = {
plugins = {
sleuth = {
enable = true;
};
todo-comments = {
enable = true;
settings = {
signs = true;
};
};
};
};
}

View file

@ -1,219 +0,0 @@
{
programs.nixvim = {
# Adds git related signs to the gutter, as well as utilities for managing changes
# See `:help gitsigns` to understand what the configuration keys do
# https://nix-community.github.io/nixvim/plugins/gitsigns/index.html
plugins.gitsigns = {
enable = true;
settings = {
signs = {
add = {text = "+";};
change = {text = "~";};
delete = {text = "_";};
topdelete = {text = "";};
changedelete = {text = "~";};
};
};
};
# NOTE: add gitsigns recommended keymaps if you are interested
/*
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
# Navigation
{
mode = "n";
key = "]c";
action.__raw = ''
function()
if vim.wo.diff then
vim.cmd.normal { ']c', bang = true }
else
require('gitsigns').nav_hunk 'next'
end
end
'';
options = {
desc = "Jump to next git [C]hange";
};
}
{
mode = "n";
key = "[c";
action.__raw = ''
function()
if vim.wo.diff then
vim.cmd.normal { '[c', bang = true }
else
require('gitsigns').nav_hunk 'prev'
end
end
'';
options = {
desc = "Jump to previous git [C]hange";
};
}
# Actions
# visual mode
{
mode = "v";
key = "<leader>hs";
action.__raw = ''
function()
require('gitsigns').stage_hunk { vim.fn.line '.', vim.fn.line 'v' }
end
'';
options = {
desc = "stage git hunk";
};
}
{
mode = "v";
key = "<leader>hr";
action.__raw = ''
function()
require('gitsigns').reset_hunk { vim.fn.line '.', vim.fn.line 'v' }
end
'';
options = {
desc = "reset git hunk";
};
}
# normal mode
{
mode = "n";
key = "<leader>hs";
action.__raw = ''
function()
require('gitsigns').stage_hunk()
end
'';
options = {
desc = "git [s]tage hunk";
};
}
{
mode = "n";
key = "<leader>hr";
action.__raw = ''
function()
require('gitsigns').reset_hunk()
end
'';
options = {
desc = "git [r]eset hunk";
};
}
{
mode = "n";
key = "<leader>hS";
action.__raw = ''
function()
require('gitsigns').stage_buffer()
end
'';
options = {
desc = "git [S]tage buffer";
};
}
{
mode = "n";
key = "<leader>hu";
action.__raw = ''
function()
require('gitsigns').undo_stage_hunk()
end
'';
options = {
desc = "git [u]ndo stage hunk";
};
}
{
mode = "n";
key = "<leader>hR";
action.__raw = ''
function()
require('gitsigns').reset_buffer()
end
'';
options = {
desc = "git [R]eset buffer";
};
}
{
mode = "n";
key = "<leader>hp";
action.__raw = ''
function()
require('gitsigns').preview_hunk()
end
'';
options = {
desc = "git [p]review hunk";
};
}
{
mode = "n";
key = "<leader>hb";
action.__raw = ''
function()
require('gitsigns').blame_line()
end
'';
options = {
desc = "git [b]lame line";
};
}
{
mode = "n";
key = "<leader>hd";
action.__raw = ''
function()
require('gitsigns').diffthis()
end
'';
options = {
desc = "git [d]iff against index";
};
}
{
mode = "n";
key = "<leader>hD";
action.__raw = ''
function()
require('gitsigns').diffthis '@'
end
'';
options = {
desc = "git [D]iff against last commit";
};
}
# Toggles
{
mode = "n";
key = "<leader>tb";
action.__raw = ''
function()
require('gitsigns').toggle_current_line_blame()
end
'';
options = {
desc = "[T]oggle git show [b]lame line";
};
}
{
mode = "n";
key = "<leader>tD";
action.__raw = ''
function()
require('gitsigns').toggle_deleted()
end
'';
options = {
desc = "[T]oggle git show [D]eleted";
};
}
];
*/
};
}

View file

@ -1,10 +0,0 @@
{
programs.nixvim = {
# Add indentation guides even on blank lines
# For configuration see `:help ibl`
# https://nix-community.github.io/nixvim/plugins/indent-blankline/index.html
plugins.indent-blankline = {
enable = true;
};
};
}

View file

@ -1,50 +0,0 @@
{
programs.nixvim = {
# Linting
# https://nix-community.github.io/nixvim/plugins/lint/index.html
plugins.lint = {
enable = true;
# NOTE: Enabling these will cause errors unless these tools are installed
lintersByFt = {
nix = ["nix"];
markdown = [
"markdownlint"
#vale
];
#clojure = ["clj-kondo"];
#dockerfile = ["hadolint"];
#inko = ["inko"];
#janet = ["janet"];
#json = ["jsonlint"];
#rst = ["vale"];
#ruby = ["ruby"];
#terraform = ["tflint"];
#text = ["vale"];
};
# Create autocommand which carries out the actual linting
# on the specified events.
autoCmd = {
callback.__raw = ''
function()
require('lint').try_lint()
end
'';
group = "lint";
event = [
"BufEnter"
"BufWritePost"
"InsertLeave"
];
};
};
# https://nix-community.github.io/nixvim/NeovimOptions/autoGroups/index.html
autoGroups = {
lint = {
clear = true;
};
};
};
}

View file

@ -1,274 +0,0 @@
{pkgs, ...}: {
programs.nixvim = {
# Dependencies
# { 'Bilal2453/luvit-meta', lazy = true },
#
#
# Allows extra capabilities providied by nvim-cmp
# https://nix-community.github.io/nixvim/plugins/cmp-nvim-lsp.html
plugins.cmp-nvim-lsp = {
enable = true;
};
# Useful status updates for LSP.
# https://nix-community.github.io/nixvim/plugins/fidget/index.html
plugins.fidget = {
enable = true;
};
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraplugi#extraplugins
extraPlugins = with pkgs.vimPlugins; [
# NOTE: This is where you would add a vim plugin that is not implemented in Nixvim, also see extraConfigLuaPre below
#
# TODO: Add luvit-meta when Nixos package is added
];
# https://nix-community.github.io/nixvim/NeovimOptions/autoGroups/index.html
autoGroups = {
"kickstart-lsp-attach" = {
clear = true;
};
};
# Brief aside: **What is LSP?**
#
# LSP is an initialism you've probably heard, but might not understand what it is.
#
# LSP stands for Language Server Protocol. It's a protocol that helps editors
# and language tooling communicate in a standardized fashion.
#
# In general, you have a "server" which is some tool built to understand a particular
# language (such as `gopls`, `lua_ls`, `rust_analyzer`, etc.). These Language Servers
# (sometimes called LSP servers, but that's kind of like ATM Machine) are standalone
# processes that communicate with some "client" - in this case, Neovim!
#
# LSP provides Neovim with features like:
# - Go to definition
# - Find references
# - Autocompletion
# - Symbol Search
# - and more!
#
# Thus, Language Servers are external tools that must be installed separately from
# Neovim which are configured below in the `server` section.
#
# If you're wondering about lsp vs treesitter, you can check out the wonderfully
# and elegantly composed help section, `:help lsp-vs-treesitter`
#
# https://nix-community.github.io/nixvim/plugins/lsp/index.html
plugins.lsp = {
enable = true;
# Enable the following language servers
# Feel free to add/remove any LSPs that you want here. They will automatically be installed.
#
# Add any additional override configuration in the following tables. Available keys are:
# - cmd: Override the default command used to start the server
# - filetypes: Override the default list of associated filetypes for the server
# - capabilities: Override fields in capabilities. Can be used to disable certain LSP features.
# - settings: Override the default settings passed when initializing the server.
# For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/
servers = {
# clangd = {
# enable = true;
#}
# gopls = {
# enable = true;
#}
# pyright = {
# enable = true;
#}
# rust_analyzer = {
# enable = true;
#}
# ...etc. See `https://nix-community.github.io/nixvim/plugins/lsp` for a list of pre-configured LSPs
#
# Some languages (like typscript) have entire language plugins that can be useful:
# `https://nix-community.github.io/nixvim/plugins/typescript-tools/index.html?highlight=typescript-tools#pluginstypescript-toolspackage`
#
# But for many setups the LSP (`tsserver`) will work just fine
# tsserver = {
# enable = true;
#}
lua-ls = {
enable = true;
# cmd = {
#};
# filetypes = {
#};
settings = {
completion = {
callSnippet = "Replace";
};
#diagnostics = {
# disable = {
# "missing-fields";
#};
};
};
};
keymaps = {
# Diagnostic keymaps
diagnostic = {
"<leader>q" = {
#mode = "n";
action = "setloclist";
desc = "Open diagnostic [Q]uickfix list";
};
};
extra = [
# Jump to the definition of the word under your cusor.
# This is where a variable was first declared, or where a function is defined, etc.
# To jump back, press <C-t>.
{
mode = "n";
key = "gd";
action.__raw = "require('telescope.builtin').lsp_definitions";
options = {
desc = "LSP: [G]oto [D]efinition";
};
}
# Find references for the word under your cursor.
{
mode = "n";
key = "gr";
action.__raw = "require('telescope.builtin').lsp_references";
options = {
desc = "LSP: [G]oto [R]eferences";
};
}
# Jump to the implementation of the word under your cursor.
# Useful when your language has ways of declaring types without an actual implementation.
{
mode = "n";
key = "gI";
action.__raw = "require('telescope.builtin').lsp_implementations";
options = {
desc = "LSP: [G]oto [I]mplementation";
};
}
# Jump to the type of the word under your cursor.
# Useful when you're not sure what type a variable is and you want to see
# the definition of its *type*, not where it was *defined*.
{
mode = "n";
key = "<leader>D";
action.__raw = "require('telescope.builtin').lsp_type_definitions";
options = {
desc = "LSP: Type [D]efinition";
};
}
# Fuzzy find all the symbols in your current document.
# Symbols are things like variables, functions, types, etc.
{
mode = "n";
key = "<leader>ds";
action.__raw = "require('telescope.builtin').lsp_document_symbols";
options = {
desc = "LSP: [D]ocument [S]ymbols";
};
}
# Fuzzy find all the symbols in your current workspace.
# Similar to document symbols, except searches over your entire project.
{
mode = "n";
key = "<leader>ws";
action.__raw = "require('telescope.builtin').lsp_dynamic_workspace_symbols";
options = {
desc = "LSP: [W]orkspace [S]ymbols";
};
}
];
lspBuf = {
# Rename the variable under your cursor.
# Most Language Servers support renaming across files, etc.
"<leader>rn" = {
action = "rename";
desc = "LSP: [R]e[n]ame";
};
# Execute a code action, usually your cursor needs to be on top of an error
# or a suggestion from your LSP for this to activate.
"<leader>ca" = {
#mode = "n";
action = "code_action";
desc = "LSP: [C]ode [A]ction";
};
# WARN: This is not Goto Definition, this is Goto Declaration.
# For example, in C this would take you to the header.
"gD" = {
action = "declaration";
desc = "LSP: [G]oto [D]eclaration";
};
};
};
# LSP servers and clients are able to communicate to each other what features they support.
# By default, Neovim doesn't support everything that is in the LSP specification.
# When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities.
# So, we create new capabilities with nvim cmp, and then broadcast that to the servers.
# NOTE: This is done automatically by Nixvim when enabling cmp-nvim-lsp below is an example if you did want to add new capabilities
#capabilities = ''
# capabilities = vim.tbl_deep_extend('force', capabilities, require('cmp_nvim_lsp').default_capabilities())
#'';
# This function gets run when an LSP attaches to a particular buffer.
# That is to say, every time a new file is opened that is associated with
# an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this
# function will be executred to configure the current buffer
# NOTE: This is an example of an attribute that takes raw lua
onAttach = ''
-- NOTE: Remember that Lua is a real programming language, and as such it is possible
-- to define small helper and utility functions so you don't have to repeat yourself.
--
-- In this case, we create a function that lets us more easily define mappings specific
-- for LSP related items. It sets the mode, buffer and description for us each time.
local map = function(keys, func, desc)
vim.keymap.set('n', keys, func, { buffer = bufnr, desc = 'LSP: ' .. desc })
end
-- The following two autocommands are used to highlight references of the
-- word under the cursor when your cursor rests there for a little while.
-- See `:help CursorHold` for information about when this is executed
--
-- When you move your cursor, the highlights will be cleared (the second autocommand).
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
buffer = bufnr,
group = highlight_augroup,
callback = vim.lsp.buf.document_highlight,
})
vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
buffer = bufnr,
group = highlight_augroup,
callback = vim.lsp.buf.clear_references,
})
vim.api.nvim_create_autocmd('LspDetach', {
group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
callback = function(event2)
vim.lsp.buf.clear_references()
vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
end,
})
end
-- The following autocommand is used to enable inlay hints in your
-- code, if the language server you are using supports them
--
-- This may be unwanted, since they displace some of your code
if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
map('<leader>th', function()
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
end, '[T]oggle Inlay [H]ints')
end
'';
};
};
}

View file

@ -1,50 +0,0 @@
{
programs.nixvim = {
# Collection of various small independent plugins/modules
# https://nix-community.github.io/nixvim/plugins/mini.html
plugins.mini = {
enable = true;
modules = {
# Better Around/Inside textobjects
#
# Examples:
# - va) - [V]isually select [A]round [)]paren
# - yinq - [Y]ank [I]nside [N]ext [Q]uote
# - ci' - [C]hange [I]nside [']quote
ai = {
n_lines = 500;
};
# Add/delete/replace surroundings (brackets, quotes, etc.)
#
# Examples:
# - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
# - sd' - [S]urround [D]elete [']quotes
# - sr)' - [S]urround [R]eplace [)] [']
surround = {
};
# Simple and easy statusline.
# You could remove this setup call if you don't like it,
# and try some other statusline plugin
statusline = {
use_icons.__raw = "vim.g.have_nerd_font";
};
# ... and there is more!
# Check out: https://github.com/echasnovski/mini.nvim
};
};
# You can configure sections in the statusline by overriding their
# default behavior. For example, here we set the section for
# cursor location to LINE:COLUMN
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extraconfiglu#extraconfiglua
extraConfigLua = ''
require('mini.statusline').section_location = function()
return '%2l:%-2v'
end
'';
};
}

View file

@ -1,28 +0,0 @@
{
programs.nixvim = {
# Neo-tree is a Neovim plugin to browse the file system
# https://nix-community.github.io/nixvim/plugins/neo-tree/index.html?highlight=neo-tree#pluginsneo-treepackage
plugins.neo-tree = {
enable = true;
filesystem = {
window = {
mappings = {
"\\" = "close_window";
};
};
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
{
key = "\\";
action = "<cmd>Neotree reveal<cr>";
options = {
desc = "NeoTree reveal";
};
}
];
};
}

View file

@ -1,130 +0,0 @@
{
programs.nixvim = {
# Dependencies
#
# Snippet Engine & its associated nvim-cmp source
# https://nix-community.github.io/nixvim/plugins/luasnip/index.html
plugins.luasnip = {
enable = true;
};
# https://nix-community.github.io/nixvim/plugins/cmp-nvim-lsp.html
plugins.cmp-nvim-lsp = {
enable = true;
};
# https://nix-community.github.io/nixvim/plugins/cmp-path.html
plugins.cmp-path = {
enable = true;
};
# `friendly-snippets` contains a variety of premade snippets
# See the README about individual language/framework/plugin snippets:
# https://github.com/rafamadriz/friendly-snippets
# https://nix-community.github.io/nixvim/plugins/friendly-snippets.html
# plugins.friendly-snippets = {
# enable = true;
# };
# TODO: Waiting on this bug to be fixed https://github.com/NixOS/nixpkgs/issues/306367
# https://nix-community.github.io/nixvim/NeovimOptions/index.html?highlight=extralua#extraluapackages
extraLuaPackages = ps: [
# Required by luasnip
ps.jsregexp
];
# Autocompletion
# See `:help cmp`
# https://nix-community.github.io/nixvim/plugins/cmp/index.html
plugins.cmp = {
enable = true;
settings = {
snippet = {
expand = ''
function(args)
require('luasnip').lsp_expand(args.body)
end
'';
};
completion = {
completeopt = "menu,menuone,noinsert";
};
# For an understanding of why these mappings were
# chosen, you will need to read `:help ins-completion`
#
# No, but seriously, Please read `:help ins-completion`, it is really good!
mapping = {
# Select the [n]ext item
"<C-n>" = "cmp.mapping.select_next_item()";
# Select the [p]revious item
"<C-p>" = "cmp.mapping.select_prev_item()";
# Scroll the documentation window [b]ack / [f]orward
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
# Accept ([y]es) the completion.
# This will auto-import if your LSP supports it.
# This will expand snippets if the LSP sent a snippet.
"<C-y>" = "cmp.mapping.confirm { select = true }";
# If you prefer more traditional completion keymaps,
# you can uncomment the following lines.
# "<CR>" = "cmp.mapping.confirm { select = true }";
# "<Tab>" = "cmp.mapping.select_next_item()";
# "<S-Tab>" = "cmp.mapping.select_prev_item()";
# Manually trigger a completion from nvim-cmp.
# Generally you don't need this, because nvim-cmp will display
# completions whenever it has completion options available.
"<C-Space>" = "cmp.mapping.complete {}";
# Think of <c-l> as moving to the right of your snippet expansion.
# So if you have a snippet that's like:
# function $name($args)
# $body
# end
#
# <c-l> will move you to the right of the expansion locations.
# <c-h> is similar, except moving you backwards.
"<C-l>" = ''
cmp.mapping(function()
if luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
end
end, { 'i', 's' })
'';
"<C-h>" = ''
cmp.mapping(function()
if luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
end
end, { 'i', 's' })
'';
# For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see:
# https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps
};
# WARNING: If plugins.cmp.autoEnableSources Nixivm will automatically enable the
# corresponding source plugins. This will work only when this option is set to a list.
# If you use a raw lua string, you will need to explicitly enable the relevant source
# plugins in your nixvim configuration.
sources = [
{
name = "luasnip";
}
# Adds other completion capabilites.
# nvim-cmp does not ship with all sources by default. They are split
# into multiple repos for maintenance purposes.
{
name = "nvim_lsp";
}
{
name = "path";
}
];
};
};
};
}

View file

@ -1,169 +0,0 @@
{
programs.nixvim = {
# Fuzzy Finder (files, lsp, etc)
# https://nix-community.github.io/nixvim/plugins/telescope/index.html
plugins.telescope = {
# Telescope is a fuzzy finder that comes with a lot of different things that
# it can fuzzy find! It's more than just a "file finder", it can search
# many different aspects of Neovim, your workspace, LSP, and more!
#
# The easiest way to use Telescope, is to start by doing something like:
# :Telescope help_tags
#
# After running this command, a window will open up and you're able to
# type in the prompt window. You'll see a list of `help_tags` options and
# a corresponding preview of the help.
#
# Two important keymaps to use while in Telescope are:
# - Insert mode: <c-/>
# - Normal mode: ?
#
# This opens a window that shows you all of the keymaps for the current
# Telescope picker. This is really useful to discover what Telescope can
# do as well as how to actually do it!
#
# [[ Configure Telescope ]]
# See `:help telescope` and `:help telescope.setup()`
enable = true;
# Enable Telescope extensions
extensions = {
fzf-native.enable = true;
ui-select.enable = true;
};
# You can put your default mappings / updates / etc. in here
# See `:help telescope.builtin`
keymaps = {
"<leader>sh" = {
mode = "n";
action = "help_tags";
options = {
desc = "[S]earch [H]elp";
};
};
"<leader>sk" = {
mode = "n";
action = "keymaps";
options = {
desc = "[S]earch [K]eymaps";
};
};
"<leader>sf" = {
mode = "n";
action = "find_files";
options = {
desc = "[S]earch [F]iles";
};
};
"<leader>ss" = {
mode = "n";
action = "builtin";
options = {
desc = "[S]earch [S]elect Telescope";
};
};
"<leader>sw" = {
mode = "n";
action = "grep_string";
options = {
desc = "[S]earch current [W]ord";
};
};
"<leader>sg" = {
mode = "n";
action = "live_grep";
options = {
desc = "[S]earch by [G]rep";
};
};
"<leader>sd" = {
mode = "n";
action = "diagnostics";
options = {
desc = "[S]earch [D]iagnostics";
};
};
"<leader>sr" = {
mode = "n";
action = "resume";
options = {
desc = "[S]earch [R]esume";
};
};
"<leader>s" = {
mode = "n";
action = "oldfiles";
options = {
desc = "[S]earch Recent Files ('.' for repeat)";
};
};
"<leader><leader>" = {
mode = "n";
action = "buffers";
options = {
desc = "[ ] Find existing buffers";
};
};
};
settings = {
extensions.__raw = "{ ['ui-select'] = { require('telescope.themes').get_dropdown() } }";
};
};
# https://nix-community.github.io/nixvim/keymaps/index.html
keymaps = [
# Slightly advanced example of overriding default behavior and theme
{
mode = "n";
key = "<leader>/";
# You can pass additional configuration to Telescope to change the theme, layout, etc.
action.__raw = ''
function()
require('telescope.builtin').current_buffer_fuzzy_find(
require('telescope.themes').get_dropdown {
winblend = 10,
previewer = false
}
)
end
'';
options = {
desc = "[/] Fuzzily search in current buffer";
};
}
{
mode = "n";
key = "<leader>s/";
# It's also possible to pass additional configuration options.
# See `:help telescope.builtin.live_grep()` for information about particular keys
action.__raw = ''
function()
require('telescope.builtin').live_grep {
grep_open_files = true,
prompt_title = 'Live Grep in Open Files'
}
end
'';
options = {
desc = "[S]earch [/] in Open Files";
};
}
# Shortcut for searching your Neovim configuration files
{
mode = "n";
key = "<leader>sn";
action.__raw = ''
function()
require('telescope.builtin').find_files {
cwd = vim.fn.stdpath 'config'
}
end
'';
options = {
desc = "[S]earch [N]eovim files";
};
}
];
};
}

View file

@ -1,47 +0,0 @@
{
programs.nixvim = {
# Highlight, edit, and navigate code
# https://nix-community.github.io/nixvim/plugins/treesitter/index.html
plugins.treesitter = {
enable = true;
# TODO: Don't think I need this as nixGrammars is true which should auto install these???
settings = {
ensureInstalled = [
"bash"
"c"
"diff"
"html"
"lua"
"luadoc"
"markdown"
"markdown_inline"
"query"
"vim"
"vimdoc"
];
highlight = {
enable = true;
# Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules.
additional_vim_regex_highlighting = true;
};
indent = {
enable = true;
disable = [
"ruby"
];
};
# There are additional nvim-treesitter modules that you can use to interact
# with nvim-treesitter. You should go explore a few and see what interests you:
#
# - Incremental selection: Included, see `:help nvim-treesitter-incremental-selection-mod`
# - Show your current context: https://nix-community.github.io/nixvim/plugins/treesitter-context/index.html
# - Treesitter + textobjects: https://nix-community.github.io/nixvim/plugins/treesitter-textobjects/index.html
};
};
};
}

View file

@ -1,47 +0,0 @@
{
programs.nixvim = {
# Useful plugin to show you pending keybinds.
# https://nix-community.github.io/nixvim/plugins/which-key/index.html
plugins.which-key = {
enable = true;
# Document existing key chains
settings = {
spec = [
{
__unkeyed-1 = "<leader>c";
group = "[C]ode";
}
{
__unkeyed-1 = "<leader>d";
group = "[D]ocument";
}
{
__unkeyed-1 = "<leader>r";
group = "[R]ename";
}
{
__unkeyed-1 = "<leader>s";
group = "[S]earch";
}
{
__unkeyed-1 = "<leader>w";
group = "[W]orkspace";
}
{
__unkeyed-1 = "<leader>t";
group = "[T]oggle";
}
{
__unkeyed-1 = "<leader>h";
group = "Git [H]unk";
mode = [
"n"
"v"
];
}
];
};
};
};
}

View file

@ -2,7 +2,6 @@
{
home.packages = with pkgs; [
fff
joshuto
bat
fzf
@ -11,7 +10,6 @@
lutgen
micro
helix
inxi
zoxide

View file

@ -3,9 +3,14 @@
programs.yazi.keymap = {
manager = {
prepend_keymap = [
# NAVIGATE
# MAIN
{ on = "q"; run = "close"; }
{ on = "l"; run = "plugin --sync smart-enter"; }
{ on = "Enter"; run = "plugin --sync smart-enter"; }
{ on = "!"; run = "shell '$SHELL' --block --confirm"; }
{ on = "<Esc>"; run = "close"; }
{ on = "<Right>"; run = "plugin --sync smart-enter"; }
{ on = "<Enter>"; run = "plugin --sync smart-enter"; }
# VISUAL
{ on = [ "v" "m" ]; run = "plugin --sync max-preview"; }
@ -41,8 +46,8 @@
};
completion = {
prepend_keymap = [
{ on = "C-j"; run = "arrow 1"; }
{ on = "C-k"; run = "arrow -1"; }
{ on = "<C-j>"; run = "arrow 1"; }
{ on = "<C-k>"; run = "arrow -1"; }
# { on = "C-l"; run = "lose --submit" "close_input --submit" ; }
];
};

View file

@ -1,4 +1,7 @@
{ pkgs, inputs, ... }:
let
ypkg = inputs.yazi.packages.${pkgs.system}.default;
in
{
imports = [
./binds.nix
@ -9,7 +12,7 @@
];
programs.yazi = {
enable = true;
package = inputs.yazi.packages.${pkgs.system}.default;
package = ypkg;
settings = {
manager = {
ratio = [ 1 4 4 ];

View file

@ -7,8 +7,8 @@
hovered = { fg = "#${base00}"; bg = "#${base0D}"; bold = true; };
preview_hovered = { underline = false; };
tab_active = { fg = "#${base01}"; bg = "#${base06}"; };
tab_inactive = { fg = "#${base00}"; bg = "#${base04}"; };
tab_active = { fg = "#${base01}"; bg = "#${base0E}"; };
tab_inactive = { fg = "#${base06}"; bg = "#${base00}"; };
tab_width = 1;
border_style = { fg = "#${base00}"; };

View file

@ -1,4 +1,4 @@
{ lib, fetchPypi, python3Packages }:
{ lib, pkgs, fetchPypi, python3Packages }:
python3Packages.buildPythonApplication rec{
pname = "eggella";

View file

@ -3,6 +3,5 @@
home.packages = with pkgs; [
(callPackage ./anicliru/anicli-ru.nix { })
(callPackage ./torrserver/default.nix { })
# (callPackage ./tgt/default.nix { })
];
}

View file

@ -1,22 +0,0 @@
{ lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec {
pname = "tgt";
version = "1.0.0";
src = fetchFromGitHub {
owner = "FedericoBruzzone";
repo = pname;
rev = version;
hash = "sha256-8Fcki7gkQNUMvMoi1amBf/am1p018keCWc9iNkDqYRA=";
};
cargoHash = lib.fakeHash;
meta = {
description = "A fast line-oriented regex search tool, similar to ag and ack";
homepage = "https://github.com/BurntSushi/ripgrep";
license = lib.licenses.unlicense;
maintainers = [ "azikx" ];
};
}

View file

@ -22,7 +22,7 @@ stdenv.mkDerivation {
meta = with lib; {
description = "Torrserver";
homepage = "https://github.com/yt-dlp/yt-dlp";
homepage = "https://github.com/YouROK/TorrServer";
license = licenses.unlicense;
meta.platforms = platforms.all;
mainProgram = "torrserver";

View file

@ -3,7 +3,7 @@
./spotify
./obs-studio
./ayugram
./firefox
# ./firefox
./floorp
./qbittorrent
./qutebrowser

View file

@ -4,8 +4,6 @@
#TabsToolbar { display: none !important; }
#nav-bar { width: 100vw !important; }
#browser { position: relative; }
#sidebar-box[sidebarcommand*="tabcenter"] #sidebar-header { display: none; }
@ -21,7 +19,7 @@
border-right: none;
transition: all 0.2s ease;
transition: all 0.8s ease;
overflow: hidden;

View file

@ -6,6 +6,9 @@
home.packages = with pkgs; [
home-manager
# (vivaldi.override {
# isSnapshot = true;
# })
vieb
qutebrowser
vesktop

View file

@ -1,20 +1,20 @@
{ pkgs, config, lib, ... }:
{
xdg.configFile = {
xdg.configFile = with config.lib.stylix.colors; {
"nwg-drawer/drawer.css".text = ''
window {
background-color: #${config.lib.stylix.colors.base00};
background-color: #${base00};
color: #eeeeee;
}
button {
color: #${config.lib.stylix.colors.base04};
background-color: #${config.lib.stylix.colors.base00};
color: #${base04};
background-color: #${base00};
}
button:hover {
color: #${config.lib.stylix.colors.base04};
background-color: #${config.lib.stylix.colors.base01};
color: #${base04};
background-color: #${base01};
}
'';
};

View file

@ -1,9 +1,11 @@
{ pkgs, config, ... }:
let
hmdir = config.home.homeDirectory;
in
{
xdg = {
portal = {
enable = true;
# xdgOpenUsePortal = true;
config.common.default = "gtk";
extraPortals = with pkgs; [
xdg-desktop-portal-hyprland
@ -13,20 +15,27 @@
mime = {
enable = true;
};
mimeApps = {
# defaultApplications = {
# "default-web-browser" = [ "floorp.desktop" ];
# "text/html" = [ "floorp.desktop" ];
# "x-scheme-handler/http" = [ "floorp.desktop" ];
# "x-scheme-handler/https" = [ "floorp.desktop" ];
# "x-scheme-handler/about" = [ "floorp.desktop" ];
# "x-scheme-handler/unknown" = [ "floorp.desktop" ];
# };
};
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/Desktop";
documents = "${config.home.homeDirectory}/Documents";
download = "${config.home.homeDirectory}/Downloads";
music = "${config.home.homeDirectory}/Music";
pictures = "${config.home.homeDirectory}/Pictures";
publicShare = "${config.home.homeDirectory}/";
templates = "${config.home.homeDirectory}/";
videos = "${config.home.homeDirectory}/Videos";
};
mimeApps = {
desktop = "${hmdir}/Desktop";
documents = "${hmdir}/Documents";
download = "${hmdir}/Downloads";
music = "${hmdir}/Music";
pictures = "${hmdir}/Pictures";
publicShare = "${hmdir}/";
templates = "${hmdir}/";
videos = "${hmdir}/Videos";
};
};
}

View file

@ -2,8 +2,6 @@
{
programs.starship = {
enable = true;
enableFishIntegration = true;
enableZshIntegration = true;
settings = {
add_newline = true;
format = lib.concatStrings [

View file

@ -1,26 +1,21 @@
{ pkgs, lib, ... }:
{
home.packages = with pkgs; [
adw-gtk3
google-cursor
(papirus-icon-theme.override {
color = "yaru";
withElementary = false;
})
noto-fonts
noto-fonts-cjk
openmoji-color
monaspace
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
(nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; })
];
gtk = {
enable = true;
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme.override { color = "yaru"; };
};
font = lib.mkForce {
name = "JetBrainsMono NerdFont";
package = pkgs.nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; };
size = 12;
};
};
}

View file

@ -2,8 +2,5 @@
qt = {
enable = true;
platformTheme.name = "qtct";
# style = {
# name = "kvantum";
# };
};
}

View file

@ -35,12 +35,9 @@
nushell.enable = true;
hyprland.enable = true;
sway.enable = true;
# waybar = { enable = true; enableCenterBackColors = true; enableLeftBackColors = true; enableRightBackColors = true; };
foot.enable = true;
kitty = { enable = true; variant256Colors = false; };
kitty.enable = true;
gtk.enable = true;
# kde.enable = true;
# helix.enable = true;
nixvim.enable = true;
yazi.enable = true;
fzf.enable = true;
@ -49,7 +46,7 @@
mangohud.enable = true;
vesktop.enable = true;
qutebrowser.enable = true;
firefox = { enable = true; };
firefox.enable = true;
};
};
}

View file

@ -8,23 +8,12 @@
];
home.packages = with pkgs; [
hyprcursor
kitty
swaybg
swaynotificationcenter
mako
nwg-drawer
inputs.anyrun.packages."x86_64-linux".anyrun
grimblast
# sway-contrib.grimshot
wf-recorder
light
# swaylock
fprintd
wl-clipboard
hyprpicker
];

View file

@ -10,6 +10,4 @@ in
xwayland.enable = true;
systemd.enable = true;
};
home.packages = with pkgs; [
];
}

View file

@ -1,6 +1,5 @@
{
imports = [
./swaylock
./mako
./waybar
./swaync

View file

@ -1,4 +1,4 @@
{ pkgs, config, lib, ...}:
{ config, lib, ...}:
{
services.mako = with config.lib.stylix.colors; {
enable = true;

View file

@ -1,10 +0,0 @@
{ pkgs, ... }:
{
programs.swaylock = {
enable = false;
package = pkgs.swaylock-effects;
settings = {
image = "~/.walls/wp.png";
};
};
}

View file

@ -1,107 +0,0 @@
{ config, ... }:
{
imports = [ ./style.nix ];
programs.waybar = with config.lib.stylix.colors; {
enable = true;
settings = {
mainBar = {
layer = "top";
position = "bottom";
height = 1;
modules-left = [
"custom/launcher"
"custom/separator"
"pulseaudio"
"backlight"
"hyprland/language"
];
modules-center = [
"hyprland/workspaces"
];
modules-right = [
"custom/date"
"clock#time"
"battery"
];
# LEFT MODULES
"custom/launcher" = {
format = "<span color='#${base0C}' font='17'></span> {}";
tooltip = false;
};
"custom/separator" = {
format = "/";
interval = 1;
tooltip = false;
};
"pulseaudio" = {
format = "{icon} {volume}%";
format-icons = {
default = [ "" " " " " ];
headphone = [ " " ];
};
format-muted = [ " " ];
scroll-step = 3;
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
tooltip = false;
};
"backlight" = {
device = "intel_backlight";
format = "{icon} {percent}%";
format-icons = [ "󱩎 " "󱩏 " "󱩐 " "󱩑 " "󱩒 " "󱩓 " "󱩔 " "󱩕 " "󱩖 " "󰛨 " ];
scroll-step = 1;
tooltip = false;
};
"hyprland/language" = {
format = "󰌌 {}";
format-en = "EN";
format-ru = "RU";
keyboard-name = "at-translated-set-2-keyboard";
tooltip = false;
};
# CENTER MODULES
"hyprland/workspaces" = {
on-click = "activate";
format = "{icon}";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
};
persistent-workspaces = {
"*" = [ 1 2 3 4 5 6 7 8 9 ];
};
};
# RIGHT MODULES
"custom/date" = {
exec = ''date +\" %e %b\"'';
interval = 1;
tooltip = false;
};
"clock#time" = {
format = "󰥔 {:%H:%M}";
interval = 1;
tooltip = false;
};
"battery" = {
format = "{icon} {capacity}%";
format-alt = "{icon} {time}";
format-charging = "#${base0D}'>󰂅</span> {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
states = {
critical = 15;
warning = 30;
};
};
};
};
};
}

View file

@ -1,163 +0,0 @@
{ config, ... }:
{
xdg.configFile = with config.lib.stylix.colors; {
"waybar/style.css".text = ''
* {
font-family: JetBrainsMono NerdFont, SourceHanSansJP;
font-weight: bold;
font-size: 16px;
}
window#waybar {
background-color: transparent;
color: #${base06};
}
window#waybar > box {
margin: 5px 0px 0px 0px;
background-color: #${base00};
border-top: 0px;
border-bottom: 0;
border-style: solid;
border-color: #3C3836;
box-shadow: 1 1 3 1px #101010;
}
#workspaces button {
background-color: #${base03};
border-radius: 20px;
margin: 2px;
padding: 0px;
padding-right: 6px;
padding-left: 6px;
color: #${base06};
min-height: 25px;
transition: all 0.4s ease-in-out;
}
#workspaces button label{
color: #${base06};
font-weight: bolder;
}
#workspaces button.empty{
background: #${base02};
}
#workspaces button.active {
background: radial-gradient(circle, #${base06} 0%, #${base0D} 50%, #${base0B} 100%);
background-size: 400% 400%;
animation: gradient 5s linear infinite;
transition: all 0.3s ease-in-out;
border-color: #45475a;
}
#workspaces button.active label {
color: #${base02};
font-weight: bolder;
}
@keyframes gradient {
0% {
background-position: 0px 50px;
}
50% {
background-position: 100px 30px;
}
100% {
background-position: 0px 50px;
}
}
@keyframes gradient_f {
0% {
background-position: 0px 200px;
}
50% {
background-position: 200px 0px;
}
100% {
background-position: 400px 200px;
}
}
@keyframes gradient_f_nh {
0% {
background-position: 0px 200px;
}
100% {
background-position: 200px 200px;
}
}
#custom-date,
#battery,
#backlight
#clock,
#pulseaudio,
#workspaces,
#window,
#language,
#text,
#custom-launcher,
#custom-separator,
#tray {
color: #${base06};
background: #${base00};
padding: 0 0.4em;
padding-top: 0px;
padding-bottom: 2px;
border-style: solid;
min-height: 30px;
}
#battery {
margin: 3 4 3 4px;
padding: 0 0.4em;
}
#backlight {
margin: 3 4 3 4px;
padding: 0 0.4em;
}
#custom-date {
margin: 3 4 3 4px;
padding: 0 0.4em;
}
#clock {
margin: 3 4 3 4px;
padding: 0 0.4em;
}
#language {
margin: 3 4 3 4px;
padding: 0 0.4em;
}
#pulseaudio {
margin: 3 4 3 4px;
padding: 0 0.4em;
}
#custom-separator {
padding: 0px;
margin: 0px;
}
#custom-launcher {
margin-left: 0px;
margin-right: 0px;
padding-right: 0.6em;
border-radius: 0 20 20 0px;
}
#workspaces {
margin: 3 0 3 0px;
border-radius: 14 14 14 14px;
}
'';
};
}

View file

@ -1,150 +0,0 @@
{ config, ... }:
{
programs.waybar.style = with config.lib.stylix.colors; ''
/* BAR ITSELF */
* {
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
font-size: 16px;
}
window#waybar {
background-color: transparent;
color: #${base06};
}
window#waybar > box {
margin: 5px 0px 0px 0px;
background-color: #${base00};
border-top: 0px;
border-bottom: 0;
border-style: solid;
border-color: #3C3836;
box-shadow: 1 1 3 1px #101010;
}
/* WORKSPACES */
#workspaces button {
background-color: #${base03};
border-radius: 20px;
margin: 2px;
padding: 0px;
padding-right: 6px;
padding-left: 6px;
color: #${base06};
min-height: 25px;
transition: all 0.4s ease-in-out;
}
#workspaces button label {
color: #${base06};
font-weight: bolder;
}
#workspaces button.empty {
background: #${base02};
}
#workspaces button.active {
background: radial-gradient(circle, #${base06} 0%, #${base0D} 50%, #${base0B} 100%);
background-size: 400% 400%;
animation: gradient 5s linear infinite;
transition: all 0.3s ease-in-out;
border-color: #${base00};
}
#workspaces button.active label {
color: #${base02};
font-weight: bolder;
}
@keyframes gradient {
0% { background-position: 0px 50px; }
50% { background-position: 100px 30px; }
100% { background-position: 0px 50px; }
}
@keyframes gradient_f {
0% { background-position: 0px 200px; }
50% { background-position: 200px 0px; }
100% { background-position: 400px 200px; }
}
@keyframes gradient_f_nh {
0% { background-position: 0px 200px; }
100% { background-position: 200px 200px; }
}
/* MODULES */
#custom-date,
#battery,
#backlight
#clock,
#pulseaudio,
#workspaces,
#window,
#language,
#text,
#custom-launcher,
#custom-separator
#tray {
color: #${base06};
background: #${base00};
padding: 0 0.4em;
padding-top: 0px;
padding-bottom: 2px;
border-style: solid;
min-height: 30px;
}
#battery {
background-color: transparent;
color: #${base06};
}
#backlight {
background-color: transparent;
color: #${base06};
}
#custom-date {
background-color: transparent;
color: #${base06};
}
#clock {
background-color: transparent;
color: #${base06};
}
#language {
background-color: transparent;
color: #${base06};
}
#pulseaudio {
margin: 3 4 3 4px;
padding: 0 0.4em;
background-color: transparent;
color: #${base06};
}
#custom-separator {
padding: 0px;
margin: 0px;
}
#custom-launcher {
margin-left: 0px;
margin-right: 0px;
padding-right: 0.6em;
border-radius: 0 20 20 0px;
}
#workspaces {
margin: 3 0 3 0px;
border-radius: 14 14 14 14px;
}
'';
}

View file

@ -1,4 +1,4 @@
{ pkgs, config, lib, ... }:
{ lib, ... }:
let
# MODIFIERS
m = "Mod4";

View file

@ -6,6 +6,6 @@
xwayland = true;
systemd.enable = true;
# package = pkgs.swayfx;
package = pkgs.swayfx;
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, config, lib, ... }:
{ config, lib, ... }:
let
m = "Mod4";
s = "Shift";

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ lib, ... }:
{
programs.foot = {
enable = true;

View file

@ -1,6 +1,6 @@
{ pkgs, config, ...}:
{ ... }:
{
programs.kitty.keybindings = with config.lib.stylix.colors; {
programs.kitty.keybindings = {
"ctrl+shift+c" = "copy_to_clipboard";
"ctrl+shift+v" = "paste_from_clipboard";

View file

@ -1,4 +1,4 @@
{ pkgs, config, lib, ...}:
{ config, ... }:
{
programs.kitty.settings = with config.lib.stylix.colors; {
foreground = "#${base05}";

View file

@ -1,4 +1,4 @@
{ config, ...}:
{ config, ... }:
{
imports = [ ./binds.nix ./colors.nix ];
programs.kitty = with config.lib.stylix.colors; {

View file

@ -2,7 +2,7 @@
{
# BOOT PARAMETERS
boot = { # ITSELF LOL
kernelPackages = pkgs.linuxPackages_xanmod_latest;
kernelPackages = pkgs.linuxPackages_zen;
kernelModules = [ "kvm-amd" ];
consoleLogLevel = 0;
kernelParams = [

View file

@ -15,7 +15,7 @@
useRoutingFeatures = "both";
};
system76-scheduler = { # PERFORMANCEE
enable = true;
enable = false;
settings = {
cfsProfiles.enable = true;
processScheduler.pipewireBoost.enable = true;

View file

@ -1,7 +0,0 @@
{ pkgs, config, ...}:
{
qt = {
enable = true;
style = kvantum;
};
}