big refactor

This commit is contained in:
Asaki Yuki 2026-04-09 10:36:32 +07:00
commit 76d68230f6
81 changed files with 3065 additions and 0 deletions

View file

@ -0,0 +1,13 @@
{ lib, osconfig, ... }:
{
imports = [
./settings/default.nix
];
wayland.windowManager.hyprland = lib.mkIf osconfig.device.wm.hyprland.enable {
enable = true;
xwayland.enable = true;
};
}

View file

@ -0,0 +1,15 @@
{ osconfig, ... }:
{
imports = [
./key-bind.nix
./theme.nix
./exec.nix
./window-rules.nix
./input.nix
];
wayland.windowManager.hyprland.settings = {
monitor = osconfig.device.wm.hyprland.monitors;
};
}

View file

@ -0,0 +1,8 @@
{ ... }:
{
wayland.windowManager.hyprland.settings.exec-once = [
"quickshell"
"fcitx5"
];
}

View file

@ -0,0 +1,5 @@
{ ... }: {
wayland.windowManager.hyprland.settings.input = {
touchpad.natural_scroll = true;
};
}

View file

@ -0,0 +1,47 @@
{ osconfig, ... }:
{
wayland.windowManager.hyprland.settings.bind = [
"CTRL ALT, T, exec, ${osconfig.device.programs.terminal}"
"ALT, F4, killactive"
"SUPER SHIFT, L, exit,"
"SUPER SHIFT, TAB, togglefloating,"
"SUPER SHIFT, S, exec, hyprshot -m region -o '~/Pictures/Screenshot/' -z"
"SUPER, J, togglesplit,"
"SUPER, E, exec, dolphin"
"SUPER, left, movefocus, l"
"SUPER, right, movefocus, r"
"SUPER, up, movefocus, u"
"SUPER, down, movefocus, d"
"SUPER CTRL, left, movewindow, l"
"SUPER CTRL, right, movewindow, r"
"SUPER CTRL, up, movewindow, u"
"SUPER CTRL, down, movewindow, d"
"SUPER, tab, workspace, e+1"
"SUPER, mouse_down, workspace, e-1"
"SUPER, mouse_up, workspace, e+1"
"ALT, space, global, asakiyuki:launcher"
",XF86MonBrightnessDown, exec, brightnessctl s 5%-"
",XF86MonBrightnessUp, exec, brightnessctl s +5%"
]
++ builtins.concatLists (
builtins.genList (i: [
"SUPER, ${toString (i + 1)}, workspace,${toString (i + 1)}"
"SUPER SHIFT, ${toString (i + 1)}, movetoworkspace,${toString (i + 1)}"
]) 9
)
++ [
"SUPER, 0, workspace, 10"
"SUPER SHIFT, 0, movetoworkspace, 10"
];
wayland.windowManager.hyprland.settings.bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
}

View file

@ -0,0 +1,58 @@
{ ... }: {
wayland.windowManager.hyprland.settings = {
general = {
gaps_in = 5;
gaps_out = 10;
border_size = 1;
"col.active_border" = "rgb(cdd6f4)";
"col.inactive_border" = "rgb(7f849c)";
allow_tearing = true;
resize_on_border = true;
};
decoration = {
rounding = 5;
rounding_power = 5;
active_opacity = 1;
inactive_opacity = 1;
blur = {
enabled = true;
size = 2;
passes = 5;
vibrancy = 3;
};
};
animations = {
enabled = "yes";
bezier = [
"overshot, 0.05, 0.9, 0.1, 1.1"
"md3_decel, 0.05, 0.7, 0.1, 1"
];
animation = [
"windows, 1, 3, overshot, popin 60%"
"border, 1, 10, default"
"fade, 1, 2, default"
"workspaces, 1, 3.5, overshot, slidefade 15%"
"specialWorkspace, 1, 3, md3_decel, slidevert"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
};
misc = {
force_default_wallpaper = 1;
disable_hyprland_logo = true;
};
};
}

View file

@ -0,0 +1,15 @@
{ ... }:
{
wayland.windowManager.hyprland.settings.windowrule = [
"opacity 0.0 override, class:^(xwaylandvideobridge)$"
"noanim, class:^(xwaylandvideobridge)$"
"noinitialfocus, class:^(xwaylandvideobridge)$"
"maxsize 1 1, class:^(xwaylandvideobridge)$"
"noblur, class:^(xwaylandvideobridge)$"
"nofocus, class:^(xwaylandvideobridge)$"
];
wayland.windowManager.hyprland.settings.windowrulev2 = [
"tile, class:^(Chromium)$"
];
}

View file

@ -0,0 +1,44 @@
{ lib, osconfig, ... }:
{
programs.nixcord = lib.mkIf osconfig.device.programs.nixcord.enable {
enable = true;
discord = {
enable = true;
vencord.enable = true;
};
config = {
enableReactDevtools = true;
themeLinks = [ "https://catppuccin.github.io/discord/dist/catppuccin-mocha-blue.theme.css" ];
plugins = {
BlurNSFW.enable = true;
volumeBooster.enable = true;
ClearURLs.enable = true;
copyEmojiMarkdown.enable = true;
youtubeAdblock.enable = true;
experiments.enable = true;
fixCodeblockGap.enable = true;
fixImagesQuality.enable = true;
fixSpotifyEmbeds.enable = true;
fixYoutubeEmbeds.enable = true;
gameActivityToggle.enable = true;
imageZoom.enable = true;
memberCount.enable = true;
mentionAvatars.enable = true;
noDevtoolsWarning.enable = true;
noF1.enable = true;
openInApp.enable = true;
voiceDownload.enable = true;
validUser.enable = true;
translate.enable = true;
whoReacted.enable = true;
fakeNitro = {
enable = true;
enableEmojiBypass = false;
};
};
};
};
}

View file

@ -0,0 +1,14 @@
{ pkgs, config, ... }:
{
programs.nixvim.imports = [
./default.nix
./extra-packages.nix
./keymaps/_keymaps.nix
./plugins/_plugins.nix
./plugins/_extraPlugins.nix
./lua/_lua.nix
];
}

View file

@ -0,0 +1,20 @@
{ ... }:
{
enable = true;
vimdiffAlias = true;
colorschemes.catppuccin.enable = true;
opts = {
number = true;
relativenumber = true;
tabstop = 2;
shiftwidth = 2;
softtabstop = 2;
smartindent = true;
expandtab = true;
clipboard = "unnamedplus";
};
}

View file

@ -0,0 +1,6 @@
{ pkgs, ... }:
{
extraPackages = with pkgs; [
nodePackages.prettier
];
}

View file

@ -0,0 +1,26 @@
[
{
mode = "i";
key = "<A-h>";
action = "<Left>";
options.silent = true;
}
{
mode = "i";
key = "<A-j>";
action = "<Down>";
options.silent = true;
}
{
mode = "i";
key = "<A-k>";
action = "<Up>";
options.silent = true;
}
{
mode = "i";
key = "<A-l>";
action = "<Right>";
options.silent = true;
}
]

View file

@ -0,0 +1,11 @@
{ ... }:
{
globals.mapleader = " ";
keymaps =
[ ]
++ (import ./_default.nix)
++ (import ./barbar.nix)
++ (import ./toggleterm.nix)
++ (import ./nvim-tree-toggle.nix);
}

View file

@ -0,0 +1,39 @@
[
{
mode = "n";
key = "<A-,>";
action = "<cmd>BufferPrevious<CR>";
options.silent = true;
}
{
mode = "n";
key = "<A-.>";
action = "<cmd>BufferNext<CR>";
options.silent = true;
}
{
mode = "n";
key = "<A-<>";
action = "<cmd>BufferMovePrevious<CR>";
options.silent = true;
}
{
mode = "n";
key = "<A->>";
action = "<cmd>BufferMoveNext<CR>";
options.silent = true;
}
{
mode = "n";
key = "<A-c>";
action = "<Cmd>BufferClose<CR>";
options.silent = true;
}
]
++ (builtins.genList (i: {
mode = "n";
key = "<A-${toString (i + 1)}>";
action = "<cmd>BufferGoto ${toString (i + 1)}<CR>";
options.silent = true;
}) 9)

View file

@ -0,0 +1,8 @@
[
{
mode = "n";
key = "<C-b>";
action = "<cmd>NvimTreeToggle<CR>";
options.silent = true;
}
]

View file

@ -0,0 +1,63 @@
[
{
mode = "t";
key = "<esc>";
action = "<C-\\><C-n>";
}
{
mode = "t";
key = "jk";
action = "<C-\\><C-n>";
}
{
mode = "t";
key = "<C-w>";
action = "<C-\\><C-n><C-w>";
}
{
mode = "t";
key = "<C-l>";
action = "<Cmd>wincmd l<CR>";
}
{
mode = "t";
key = "<C-k>";
action = "<Cmd>wincmd k<CR>";
}
{
mode = "t";
key = "<C-j>";
action = "<Cmd>wincmd j<CR>";
}
{
mode = "t";
key = "<C-h>";
action = "<Cmd>wincmd h<CR>";
}
]
++ builtins.concatLists (
builtins.genList (i: [
{
mode = "n";
key = "<leader>th${toString (i + 1)}";
action = ":${toString (i + 1)}ToggleTerm direction=horizontal<CR>";
options.silent = true;
options.noremap = true;
}
{
mode = "n";
key = "<leader>tv${toString (i + 1)}";
action = ":${toString (i + 1)}ToggleTerm direction=vertical<CR>";
options.silent = true;
options.noremap = true;
}
{
mode = "n";
key = "<leader>tf${toString (i + 1)}";
action = ":${toString (i + 1)}ToggleTerm direction=float<CR>";
options.silent = true;
options.noremap = true;
}
]) 9
)

View file

@ -0,0 +1,4 @@
{ ... }:
{
}

View file

@ -0,0 +1,15 @@
{ pkgs, ... }:
let
EXTRA_PLUGINS = [
./extras/neocord.nix
./extras/mini-icons.nix
];
LUA = [
./lua/neocord.lua
];
in
{
extraPlugins = map (path: import path { plugins = pkgs.vimPlugins; }) EXTRA_PLUGINS;
extraConfigLua = builtins.concatStringsSep "\n" (map builtins.readFile LUA);
}

View file

@ -0,0 +1,33 @@
{ ... }@inputs:
{
plugins = {
nvim-tree = import ./nvimtree.nix inputs;
lsp = import ./lsp.nix inputs;
lspkind = import ./lspkind.nix inputs;
conform-nvim = import ./conform-nvim.nix inputs;
which-key = import ./which-key.nix inputs;
lint = import ./lint.nix inputs;
cmp = import ./cmp.nix inputs;
cmp-nvim-lsp.enable = true;
cmp-buffer.enable = true;
cmp-path.enable = true;
cmp_luasnip.enable = true;
web-devicons.enable = true;
lz-n.enable = true;
treesitter.enable = true;
lualine.enable = true;
neoscroll.enable = true;
image.enable = true;
nvim-autopairs.enable = true;
bufferline.enable = true;
luasnip.enable = true;
friendly-snippets.enable = true;
indent-blankline.enable = true;
barbar.enable = true;
toggleterm.enable = true;
auto-save.enable = true;
visual-multi.enable = true;
};
}

View file

@ -0,0 +1,25 @@
{ ... }: {
enable = true;
autoEnableSources = true;
settings = {
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "luasnip"; }
{ name = "buffer"; }
];
mapping = {
"<C-Space>" = "cmp.mapping.complete()";
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-e>" = "cmp.mapping.abort()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
};
formatting.fields = [ "kind" "abbr" "menu" ];
};
}

View file

@ -0,0 +1,20 @@
{ ... }:
{
enable = true;
settings = {
formatters_by_ft = {
javascript = [ "prettier" ];
typescript = [ "prettier" ];
json = [ "prettier" ];
css = [ "prettier" ];
html = [ "prettier" ];
nix = [ "nixfmt" ];
php = [ "php_cs_fixer" ];
};
format_on_save = {
timeout_ms = 500;
lsp_fallback = true;
};
};
}

View file

@ -0,0 +1,4 @@
{ plugins, ... }:
{
plugin = plugins.mini-icons;
}

View file

@ -0,0 +1,4 @@
{ plugins, ... }:
{
plugin = plugins.neocord;
}

View file

@ -0,0 +1,6 @@
{ ... }:
{
enable = true;
lintersByFt = {
};
}

View file

@ -0,0 +1,12 @@
{ ... }:
{
enable = true;
servers = {
phpactor.enable = true;
nil_ls.enable = true;
pyright.enable = true;
ts_ls.enable = true;
html.enable = true;
cssls.enable = true;
};
}

View file

@ -0,0 +1,4 @@
{ ... }: {
enable = true;
cmp.enable = true;
}

View file

@ -0,0 +1,24 @@
require("neocord").setup({
-- General options
logo= "auto", -- "auto" or url
logo_tooltip= nil,-- nil or string
main_image= "language", -- "language" or "logo"
client_id = "1157438221865717891",-- Use your own Discord application client id (not recommended)
log_level = nil,-- Log messages at or above this level (one of the following: "debug", "info", "warn", "error")
debounce_timeout= 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(<filename>, true)`)
blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches
file_assets = {}, -- Custom file asset definitions keyed by file names and extensions (see default config at `lua/presence/file_assets.lua` for reference)
show_time = true, -- Show the timer
global_timer= false,-- if set true, timer won't update when any event are triggered
buttons = nil,-- A list of buttons (objects with label and url attributes) or a function returning such list.
-- Rich Presence text options
editing_text= "Editing %s", -- Format string rendered when an editable file is loaded in the buffer (either string or function(filename: string): string)
file_explorer_text= "Browsing %s",-- Format string rendered when browsing a file explorer (either string or function(file_explorer_name: string): string)
git_commit_text = "Committing changes", -- Format string rendered when committing changes in git (either string or function(filename: string): string)
plugin_manager_text = "Managing plugins", -- Format string rendered when managing plugins (either string or function(plugin_manager_name: string): string)
reading_text= "Reading %s", -- Format string rendered when a read-only or unmodifiable file is loaded in the buffer (either string or function(filename: string): string)
workspace_text= "Working on %s",-- Format string rendered when in a git repository (either string or function(project_name: string|nil, filename: string): string)
line_number_text= "Line %s out of %s",-- Format string rendered when `enable_line_number` is set to true (either string or function(line_number: number, line_count: number): string)
terminal_text = "Using Terminal", -- Format string rendered when in terminal mode.
})

View file

@ -0,0 +1,5 @@
{ ... }: {
enable = true;
openOnSetupFile = true;
settings.auto_reload_on_write = true;
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
enable = true;
settings = {
preset = "modern";
};
}