dotfiles
This commit is contained in:
parent
bf944127c6
commit
fd7d861211
9 changed files with 203 additions and 245 deletions
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
|
|
||||||
|
|
@ -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];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
87
users/coyote/dotfiles/fastfetch.jsonc
Normal file
87
users/coyote/dotfiles/fastfetch.jsonc
Normal 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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
6
users/coyote/dotfiles/helix-languages.toml
Normal file
6
users/coyote/dotfiles/helix-languages.toml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
[[language]]
|
||||||
|
name = "scheme"
|
||||||
|
|
||||||
|
[language.indent]
|
||||||
|
tab-width = 2
|
||||||
|
unit = " "
|
||||||
21
users/coyote/dotfiles/helix.toml
Normal file
21
users/coyote/dotfiles/helix.toml
Normal 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
|
||||||
57
users/coyote/dotfiles/vimrc
Normal file
57
users/coyote/dotfiles/vimrc
Normal 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
|
||||||
|
|
@ -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,12 +22,18 @@
|
||||||
(unstable.bottles.override { removeWarningPopup = true; })
|
(unstable.bottles.override { removeWarningPopup = true; })
|
||||||
];
|
];
|
||||||
|
|
||||||
file.".vim/coc-settings.json".text = builtins.toJSON {
|
file = {
|
||||||
|
".vimrc".source = ./dotfiles/vimrc;
|
||||||
|
".config/fastfetch/config.jsonc".source = ./dotfiles/fastfetch.jsonc;
|
||||||
|
".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;
|
"suggest.noselect" = true;
|
||||||
"diagnostic.virtualText" = true;
|
"diagnostic.virtualText" = true;
|
||||||
"coc.preferences.formatOnSaveFiletypes" = [ "nix" "json" "javascript" "python" ];
|
"coc.preferences.formatOnSaveFiletypes" = [ "nix" "json" "javascript" "python" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.flatpak = {
|
services.flatpak = {
|
||||||
update.auto.enable = false;
|
update.auto.enable = false;
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Reference in a new issue