Archived
Watch
1
0
Fork
You've already forked nixos
0
This commit is contained in:
asnev 2026-07-04 13:44:53 +07:00
commit fd7d861211
Signed by: asnev
SSH key fingerprint: SHA256:8hagYq9hDUuS5clQ78FKhIoQDvg5crdkYMHX+3g7wB4
9 changed files with 203 additions and 245 deletions

View file

@ -14,7 +14,12 @@
└── users └── users
└── coyote └── coyote
├── default.nix ├── default.nix
├── dotfiles
│   ├── fastfetch.jsonc
│   ├── helix-languages.toml
│   ├── helix.toml
│   └── vimrc
└── home.nix └── home.nix
6 directories, 10 files 7 directories, 14 files
``` ```

View file

@ -50,33 +50,13 @@
systemPackages = with pkgs; [ systemPackages = with pkgs; [
vim vim
# Nix # Nix
nh nh alejandra
alejandra
# system utils # system utils
firmware-updater firmware-updater mtr gnupg ddate testdisk tree wget btop dysk plocate
mtr traceroute rlwrap entr
gnupg
ddate
testdisk
tree
wget
btop
dysk
plocate
traceroute
rlwrap
entr
# extra utils # extra utils
fd fd bat xh tlrc dust hyperfine ripgrep fzf eza
bat
xh
tlrc
unstable.lazygit unstable.lazygit
dust
hyperfine
ripgrep
fzf
eza
]; ];
shellAliases = { shellAliases = {
l = "eza --long --all"; l = "eza --long --all";

View file

@ -6,16 +6,8 @@
environment = { environment = {
systemPackages = with pkgs.kdePackages; [ systemPackages = with pkgs.kdePackages; [
kate kate bluez-qt kalk filelight kamoso konversation kmail
bluez-qt
kalk
filelight
kamoso
konversation
kmail
];
plasma6.excludePackages = with pkgs.kdePackages; [
discover
]; ];
plasma6.excludePackages = with pkgs.kdePackages; [discover];
}; };
} }

View file

@ -13,23 +13,16 @@ in {
extraGroups = ["wheel" "networkmanager"]; extraGroups = ["wheel" "networkmanager"];
uid = USER_ID; uid = USER_ID;
}; };
defaultUserShell = pkgs.fish; defaultUserShell = pkgs.unstable.fish;
}; };
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
# programming # programming
biwascheme biwascheme chicken guile sbcl
chicken
guile
unstable.racket unstable.racket
sbcl
# LSPs # LSPs
ty ty nil marksman systemd-lsp bash-language-server
nil
marksman
systemd-lsp
bash-language-server
]; ];
sessionVariables.SSH_AUTH_SOCK = "/run/user/${builtins.toString USER_ID}/ssh-agent"; sessionVariables.SSH_AUTH_SOCK = "/run/user/${builtins.toString USER_ID}/ssh-agent";
}; };

View file

@ -0,0 +1,87 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "small",
"padding": {
"top": 4,
"left": 3,
"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,6 @@
[[language]]
name = "scheme"
[language.indent]
tab-width = 2
unit = " "

View file

@ -0,0 +1,21 @@
theme = "gruvbox"
[editor]
bufferline = "multiple"
cursorline = true
gutters = []
[editor.statusline.mode]
normal = "NORMAL"
insert = "INSERT"
select = "SELECT"
[editor.indent-guides]
render = true
skip-levels = 2
[editor.soft-wrap]
enable = true
[editor.lsp]
display-messages = true

View file

@ -0,0 +1,57 @@
" Vim configuration
set nocompatible
set encoding=utf-8
set backspace=indent,eol,start
set clipboard=unnamedplus
set mouse=a
set history=1000
set updatetime=300
syntax on
set ruler
set showcmd
set showmode
set laststatus=2
set wildmenu
set wildmode=longest,list,full
set ttyfast
set lazyredraw
filetype plugin indent on
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set hlsearch
set incsearch
set ignorecase
set smartcase
set showmatch
" indent guides
let g:indentLine_enabled = 1
let g:indentLine_char = "╎"
let g:indentLine_setColors = 1
augroup LanguageIndentSettings
autocmd!
autocmd FileType javascript,typescript,html,css,json,nix setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab
autocmd FileType python,rust setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
autocmd FileType go,make setlocal tabstop=4 shiftwidth=4 noexpandtab
autocmd FileType lisp,clojure,scheme,racket setlocal lisp autoindent showmatch lispwords+=defmacro,defmethod tabstop=2 shiftwidth=2 softtabstop=2 expandtab
augroup END
" coc.nvim config
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#pum#next(1) :
\ CheckBackspace() ? "\<Tab>" :
\ coc#refresh()
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<CR>"
function! CheckBackspace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction

View file

@ -7,21 +7,13 @@
shell.enableShellIntegration = true; shell.enableShellIntegration = true;
packages = with pkgs; [ packages = with pkgs; [
# devel fastfetch helix nodejs
nodejs
# productivity # productivity
libreoffice-fresh libreoffice-fresh karp keepassxc
karp
keepassxc
# multimedia # multimedia
unstable.audacity furnace corrscope vlc haruna subtitlecomposer kid3
furnace
corrscope
vlc
haruna
kdePackages.kdenlive kdePackages.kdenlive
subtitlecomposer unstable.audacity
kid3
# Internet # Internet
ungoogled-chromium ungoogled-chromium
# games # games
@ -30,10 +22,16 @@
(unstable.bottles.override { removeWarningPopup = true; }) (unstable.bottles.override { removeWarningPopup = true; })
]; ];
file.".vim/coc-settings.json".text = builtins.toJSON { file = {
"suggest.noselect" = true; ".vimrc".source = ./dotfiles/vimrc;
"diagnostic.virtualText" = true; ".config/fastfetch/config.jsonc".source = ./dotfiles/fastfetch.jsonc;
"coc.preferences.formatOnSaveFiletypes" = [ "nix" "json" "javascript" "python" ]; ".config/helix/config.toml".source = ./dotfiles/helix.toml;
".config/helix/languages.toml".source = ./dotfiles/helix-languages.toml;
".vim/coc-settings.json".text = builtins.toJSON {
"suggest.noselect" = true;
"diagnostic.virtualText" = true;
"coc.preferences.formatOnSaveFiletypes" = [ "nix" "json" "javascript" "python" ];
};
}; };
}; };
@ -51,195 +49,14 @@
}; };
programs = { programs = {
helix = {
enable = true;
defaultEditor = true;
settings = {
editor = {
bufferline = "multiple";
statusline = {
mode.normal = "NORMAL";
mode.insert = "INSERT";
mode.select = "SELECT";
};
indent-guides = {
render = true;
skip-levels = 2;
};
soft-wrap.enable = true;
line-number = "absolute";
lsp.display-messages = true;
cursorline = true;
gutters = [];
};
theme = "gruvbox";
};
languages = {
language = [
{
name = "scheme";
indent.tab-width = 2;
indent.unit = " ";
}
];
};
};
vim = { vim = {
enable = true; enable = true;
packageConfigurable = pkgs.unstable.vim-full; packageConfigurable = pkgs.unstable.vim-full;
defaultEditor = true; defaultEditor = true;
plugins = with pkgs.vimPlugins.unstable; [ plugins = with pkgs.vimPlugins; [
indentLine indentLine coc-nvim
coc-nvim coc-html coc-css coc-json coc-pyright coc-java
]; ];
extraConfig = ''
" Vim configuration
set nocompatible
set encoding=utf-8
set backspace=indent,eol,start
set clipboard=unnamedplus
set mouse=a
set history=1000
set updatetime=300
syntax on
set ruler
set showcmd
set showmode
set laststatus=2
set wildmenu
set wildmode=longest,list,full
set ttyfast
set lazyredraw
filetype plugin indent on
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set softtabstop=4
set expandtab
set hlsearch
set incsearch
set ignorecase
set smartcase
set showmatch
" indent guides
let g:indentLine_enabled = 1
let g:indentLine_char = "|"
let g:indentLine_setColors = 1
" per-language indent settings
augroup LanguageSpecificSettings
autocmd!
autocmd FileType javascript,typescript,html,css,json,nix setlocal tabstop=2 shiftwidth=2 softtabstop=2 expandtab
autocmd FileType python,rust,scheme setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
autocmd FileType go,make setlocal tabstop=4 shiftwidth=4 noexpandtab
augroup END
" coc.nvim config
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#pum#next(1) :
\ CheckBackspace() ? "\<Tab>" :
\ coc#refresh()
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<CR>"
function! CheckBackspace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
'';
};
fastfetch = {
enable = true;
settings = {
"$schema" = "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json";
logo = {
type = "small";
padding = {
top = 4;
left = 3;
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";
}
];
};
}; };
git = { git = {
enable = true; enable = true;