Watch
1
0
Fork
You've already forked chitin
0
This commit is contained in:
asnev 2026-10-25 11:41:10 +07:00
commit a29881aa64
Signed by: asnev
SSH key fingerprint: SHA256:8hagYq9hDUuS5clQ78FKhIoQDvg5crdkYMHX+3g7wB4
39 changed files with 1079 additions and 0 deletions

View file

@ -0,0 +1,29 @@
{
flake.modules.nixos.coyote = {pkgs, ...}: {
users = {
users.coyote = {
isNormalUser = true;
description = "coyote";
uid = 1000;
extraGroups = [
"wheel"
"networkmanager"
"lp"
"scanner"
"video"
"render"
"input"
"audio"
"kvm"
];
};
mutableUsers = true;
defaultUserShell = pkgs.fish;
};
environment.sessionVariables = {
NH_FLAKE = "/home/coyote/NixOS";
};
};
}

View file

@ -0,0 +1,34 @@
{
flake.modules.homeManager.coyote = {pkgs, ...}: {
home.packages = with pkgs; [
# internet
vivaldi
proton-vpn
# productivity
libreoffice-fresh
karp
keepassxc
pdfarranger
# multimedia
vlc
haruna
subtitlecomposer
kid3
# music
furnace
corrscope
unstable.audacity
# editing
kdePackages.kdenlive
# games
osu-lazer-bin
pcsx2
ppsspp
# wine
(bottles.override {removeWarningPopup = true;})
# development
emacs
unstable.racket
];
};
}

View file

@ -0,0 +1,92 @@
{
flake.modules.homeManager.coyote = {pkgs, ...}: {
programs.fastfetch = {
enable = true;
settings = {
"$schema" = "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json";
logo = {
type = "small";
padding.top = 4;
padding.left = 3;
padding.right = 4;
};
display.separator = " ";
modules = [
{
key = "╭─────────╮";
type = "custom";
}
{
key = "│ {#31}user {#keys}│";
type = "title";
format = "{user-name}";
}
{
key = "│ {#32}host {#keys}│";
type = "title";
format = "{host-name}";
}
{
key = "│ {#33}uptime {#keys}│";
type = "uptime";
}
{
key = "│ {#34}distro {#keys}│";
type = "os";
}
{
key = "│ {#35}kernel {#keys}│";
type = "kernel";
}
{
key = "│ {#36}desktop {#keys}│";
type = "de";
}
{
key = "│ {#31}term {#keys}│";
type = "terminal";
}
{
key = "│ {#32}shell {#keys}│";
type = "shell";
}
{
key = "│ {#33}cpu {#keys}│";
type = "cpu";
showPeCoreCount = true;
}
{
key = "│ {#34}disk {#keys}│";
type = "disk";
folders = "/";
}
{
key = "│ {#35}memory {#keys}│";
type = "memory";
}
{
key = "│ {#36}network {#keys}│";
type = "localip";
format = "{ipv4} ({ifname})";
}
{
key = "├─────────┤";
type = "custom";
}
{
key = "│ {#39}colors {#keys}│";
type = "colors";
symbol = "circle";
}
{
key = "╰─────────╯";
type = "custom";
}
];
};
};
};
}

View file

@ -0,0 +1,23 @@
{
flake.modules.homeManager.coyote = {
programs.git = {
enable = true;
settings = {
user.name = "asnev";
user.email = "notasnev@proton.me";
};
signing = {
key = "/home/coyote/.ssh/id_ed25519.pub";
format = "ssh";
};
includes = [
{
condition = "gitdir:/home/coyote/chitin/";
contents.core.sshCommand = "ssh -i /home/coyote/.ssh/id_ed25519";
}
];
};
};
}

View file

@ -0,0 +1,190 @@
{inputs, ...}: {
flake.modules.homeManager.coyote = {pkgs, ...}: {
imports = [inputs.nvf.homeManagerModules.default];
home.packages = with pkgs.unstable; [
lazygit
tree-sitter
];
programs.nvf = {
enable = true;
defaultEditor = true;
enableManpages = true;
settings.vim = {
viAlias = true;
vimAlias = true;
syntaxHighlighting = true;
lineNumberMode = "relNumber";
searchCase = "smart";
hideSearchHighlight = false;
clipboard = {
enable = true;
registers = "unnamedplus";
providers.wl-copy.enable = true;
};
options = {
encoding = "utf-8";
backspace = "indent,eol,start";
history = 1000;
mouse = "a";
updatetime = 300;
ruler = true;
cursorline = true;
showcmd = true;
showmode = true;
laststatus = 1;
wildmenu = true;
wildmode = ["longest" "list" "full"];
ttyfast = true;
lazyredraw = true;
signcolumn = "no";
autoindent = true;
expandtab = true;
smarttab = true;
tabstop = 4;
shiftwidth = 4;
softtabstop = 4;
hlsearch = true;
incsearch = true;
termguicolors = true;
background = "dark";
showmatch = true;
};
theme = {
enable = true;
name = "gruvbox";
style = "dark";
};
globals.terminal_ansi_colors = [
"#282828"
"#cc241d"
"#98971a"
"#d79921"
"#458588"
"#b16286"
"#689d6a"
"#a89984"
"#928374"
"#fb4934"
"#b8bb26"
"#fabd2f"
"#83a598"
"#d3869b"
"#8ec07c"
"#ebdbb2"
];
keymaps = [
{
mode = "i";
key = "<C-l>";
action = "λ";
desc = "inserts lambda";
}
];
languages.nix = {
enable = true;
treesitter.enable = true;
lsp.enable = true;
format.enable = false;
extraDiagnostics.enable = false;
};
utility.undotree.enable = true;
augroups = [
{
name = "my_filetype_settings";
clear = true;
}
];
autocmds = [
{
event = ["FileType"];
pattern = [
"javascript"
"javascriptreact"
"typescript"
"typescriptreact"
"html"
"css"
"scss"
"json"
"jsonc"
"vue"
"svelte"
"yaml"
"toml"
"markdown"
"nix"
"vim"
"ruby"
"eruby"
"dart"
"haskell"
"elm"
];
group = "my_filetype_settings";
desc = "2-space indent";
command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2";
}
{
event = ["FileType"];
pattern = [
"python"
"rust"
"java"
"lua"
"c"
"cpp"
"cs"
"php"
"kotlin"
"swift"
"scala"
"perl"
];
group = "my_filetype_settings";
desc = "4-space indent";
command = "setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4";
}
{
event = ["FileType"];
pattern = ["go" "gomod" "make"];
group = "my_filetype_settings";
desc = "hard tabs";
command = "setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0";
}
{
event = ["FileType"];
pattern = ["lisp" "scheme" "clojure" "racket" "fennel"];
group = "my_filetype_settings";
desc = "Lisp-style indent";
command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 lisp autoindent";
}
];
luaConfigRC.my_lispwords = ''
vim.opt.lispwords:append({
"defun", "defmacro", "defvar", "defparameter", "defmethod",
"define-syntax", "lambda", "let", "let*", "letrec", "flet",
"labels", "progn", "when", "unless", "if", "cond",
})
'';
};
};
};
}

View file

@ -0,0 +1,15 @@
{
flake.modules.homeManager.coyote = {pkgs, ...}: {
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
input-overlay
droidcam-obs
];
};
};
flake.modules.nixos.coyote = {
programs.obs-studio.enableVirtualCamera = true;
};
}

View file

@ -0,0 +1,15 @@
{
flake.modules.homeManager.coyote = {
programs.fish = {
enable = true;
shellAbbrs = {
l = "eza --grid --all";
ll = "eza --long --all";
ls = "eza";
".." = "cd ..";
"..." = "cd ../..";
cat = "bat";
};
};
};
}

View file

@ -0,0 +1,20 @@
{
flake.modules.homeManager.coyote = {
programs.ssh = {
enable = true;
enableDefaultConfig = false;
settings."*" = {
ForwardAgent = false;
AddKeysToAgent = "yes"; # no passphrase, silent auto-add
Compression = false;
ServerAliveInterval = 0;
ServerAliveCountMax = 3;
HashKnownHosts = false;
UserKnownHostsFile = "~/.ssh/known_hosts";
ControlMaster = "no";
ControlPath = "~/.ssh/master-%r@%n:%p";
ControlPersist = "no";
};
};
};
}

View file

@ -0,0 +1,19 @@
{
flake.modules.homeManager.coyote = {pkgs, ...}: {
programs.starship = {
enable = true;
package = pkgs.unstable.starship;
enableTransience = true;
settings = {
"$schema" = "https://starship.rs/config-schema.json";
git_status = {
ahead = ">";
behind = "<";
diverged = "<>";
renamed = "r";
deleted = "d";
};
};
};
};
}

View file

@ -0,0 +1,21 @@
{
flake.modules.homeManager.coyote = {
programs.tmux = {
enable = true;
clock24 = true;
baseIndex = 1;
keyMode = "vi";
terminal = "tmux-256color";
escapeTime = 10;
extraConfig = ''
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
set-option -g status-right "\"#W\""
set -ga terminal-overrides ",*:RGB"
set -g mouse on
set -g set-clipboard on
'';
};
};
}

View file

@ -0,0 +1,8 @@
{
flake.modules.homeManager.coyote = {pkgs, ...}: {
programs.yt-dlp = {
enable = true;
package = pkgs.unstable.yt-dlp;
};
};
}