Compare commits

..

No commits in common. "main" and "feature/flakes" have entirely different histories.

28 changed files with 694 additions and 713 deletions

39
flake.lock generated
View File

@ -5,11 +5,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1681202837,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -25,43 +25,27 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736373539, "lastModified": 1685019994,
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "narHash": "sha256-81o6SKZPALvib21hIOMx2lIhFSs0mRy0PfPvg0zsfTk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "rev": "d1f04b0f365a34896a37d9015637796537ec88a3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-24.11", "ref": "master",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1738843498, "lastModified": 1684935479,
"narHash": "sha256-7x+Q4xgFj9UxZZO9aUDCR8h4vyYut4zPUvfj3i+jBHE=", "narHash": "sha256-6QMMsXMr2nhmOPHdti2j3KRHt+bai2zw+LJfdCl97Mk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f5a32fa27df91dfc4b762671a0e0a859a8a0058f", "rev": "f91ee3065de91a3531329a674a45ddcb3467a650",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1739020877,
"narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a79cfe0ebd24952b580b1cf08cd906354996d547",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -75,8 +59,7 @@
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs"
"nixpkgs-unstable": "nixpkgs-unstable"
} }
}, },
"systems": { "systems": {

View File

@ -1,13 +1,11 @@
{ {
inputs = { inputs = {
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-24.11"; url = "github:nix-community/home-manager/master";
/* url = "github:nix-community/home-manager/release-22.05"; */
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixpkgs = { nixpkgs = {
url = "github:nixos/nixpkgs/nixos-24.11";
};
nixpkgs-unstable = {
url = "github:nixos/nixpkgs/nixos-unstable"; url = "github:nixos/nixpkgs/nixos-unstable";
}; };
flake-utils = { flake-utils = {

View File

@ -20,7 +20,6 @@ user:
./home.nix ./home.nix
./htop.nix ./htop.nix
./i3.nix ./i3.nix
./kdeconnect.nix
./lsd.nix ./lsd.nix
./man.nix ./man.nix
./neovim/neovim.nix ./neovim/neovim.nix
@ -30,6 +29,7 @@ user:
./pasystray.nix ./pasystray.nix
./photography.nix ./photography.nix
./picom.nix ./picom.nix
./polybar.nix
./programs.nix ./programs.nix
./qt.nix ./qt.nix
./redshift.nix ./redshift.nix
@ -38,12 +38,10 @@ user:
./rofi.nix ./rofi.nix
./rust.nix ./rust.nix
./signal.nix ./signal.nix
./sway/default.nix
./telegram.nix ./telegram.nix
./thunderbird.nix ./thunderbird.nix
./tmux.nix ./tmux.nix
./tor.nix ./tor.nix
./waybar.nix
./xdg.nix ./xdg.nix
./zathura.nix ./zathura.nix
./zoom.nix ./zoom.nix

View File

@ -25,11 +25,6 @@ user:
sendemail = { sendemail = {
smtpserver = "${pkgs.msmtp}/bin/msmtp"; smtpserver = "${pkgs.msmtp}/bin/msmtp";
}; };
url = {
"git@github.com:" = {
insteadOf = "https://github.com/";
};
};
}; };
signing = { signing = {
key = "1FFE431282F4B8CC0A7579167FB009175885FC76"; key = "1FFE431282F4B8CC0A7579167FB009175885FC76";

View File

@ -27,22 +27,9 @@ let
mode_system = "System: L : | S : | P : | R : | E : "; mode_system = "System: L : | S : | P : | R : | E : ";
in { in {
imports = [ xsession.windowManager.i3 = {
./polybar.nix
];
home.packages = with pkgs; [
# i3lock
dmenu
i3blocks
i3lock-fancy-rapid
i3status
rofi
];
xsession = {
enable = true; enable = true;
windowManager.i3 = { # package = pkgs.i3-gaps;
enable = true;
# package = pkgs.i3-gaps;
config = { config = {
modifier = mod; modifier = mod;
@ -138,7 +125,7 @@ in {
"${mod}+r" = "mode \"resize\""; "${mod}+r" = "mode \"resize\"";
"${mod}+x" = "mode \"${mode_system}\""; "${mod}+x" = "mode \"${mode_system}\"";
"${mod}+Shift+x" = "exec i3lock-fancy-rapid 5 3"; "${mod}+Shift+x" = "exec i3lock-fancy -n";
}; };
modes = { modes = {
@ -163,7 +150,7 @@ in {
r = "exec systemctl reboot, mode \"default\""; r = "exec systemctl reboot, mode \"default\"";
e = "exec i3-msg exit, mode \"default\""; e = "exec i3-msg exit, mode \"default\"";
# back to normal: Enter or Escape or mod+x again # back to normal: Enter or Escape or mod+x again
Return = "mode \"default\""; Return = "mode \"default\"";
Escape = "mode \"default\""; Escape = "mode \"default\"";
"${mod}+x" = "mode \"default\""; "${mod}+x" = "mode \"default\"";
@ -171,12 +158,11 @@ in {
}; };
window = { window = {
hideEdgeBorders = "both"; hideEdgeBorders = "both";
# disable titlebar # disable titlebar
titlebar = false; titlebar = false;
}; };
}; };
}; };
};
} }

View File

@ -1,6 +0,0 @@
{ ... }: {
services.kdeconnect = {
enable = true;
indicator = true;
};
}

View File

@ -28,7 +28,7 @@ let
showSignature = "append"; showSignature = "append";
}; };
aerc = { aerc = {
enable = false; enable = true;
extraAccounts = { extraAccounts = {
pgp-opportunistic-encrypt = true; pgp-opportunistic-encrypt = true;
pgp-autosign = true; pgp-autosign = true;
@ -38,7 +38,7 @@ let
enable = true; enable = true;
/* TODO: which boxes? */ /* TODO: which boxes? */
boxes = [ "Inbox" ]; boxes = [ "Inbox" ];
onNotify = "${pkgs.isync}/bin/mbsync ${configName}"; onNotify = "mbsync ${configName}";
onNotifyPost = "${pkgs.libnotify}/bin/notify-send -a mail '${configName}: new in %s'"; onNotifyPost = "${pkgs.libnotify}/bin/notify-send -a mail '${configName}: new in %s'";
}; };
mbsync = { mbsync = {
@ -75,7 +75,7 @@ in {
home.packages = with pkgs; [ home.packages = with pkgs; [
libsecret libsecret
libnotify libnotify
urlscan urlview
]; ];
home.file.mailcap = { home.file.mailcap = {
target = ".mailcap"; target = ".mailcap";
@ -84,7 +84,7 @@ in {
programs.password-store.enable = true; programs.password-store.enable = true;
programs.aerc = { programs.aerc = {
enable = false; enable = true;
extraConfig = builtins.readFile ./aerc/aerc.conf; extraConfig = builtins.readFile ./aerc/aerc.conf;
/* { */ /* { */
/* general = { */ /* general = { */
@ -104,10 +104,6 @@ in {
services.imapnotify.enable = true; services.imapnotify.enable = true;
programs.notmuch = { programs.notmuch = {
enable = true; enable = true;
hooks.postNew = ''
# remove inbox tag from moved messages
notmuch tag -inbox not 'folder:/.*\/Inbox/'
'';
}; };
programs.neomutt = { programs.neomutt = {
@ -118,12 +114,8 @@ in {
macros = [ macros = [
{ map = [ "pager" "index" ]; { map = [ "pager" "index" ];
key = "B"; key = "B";
action = "|urlscan\\n"; action = "|urlview\\n";
} }
/*{ map = [ "pager" "index" ];
key = "dd";
action = ":set delete = yes\\n<clear-flag>N<delete-message>";
}*/
]; ];
binds = [ binds = [
/* sidebar */ /* sidebar */
@ -234,18 +226,12 @@ in {
key = "zA"; key = "zA";
action = "collapse-all"; action = "collapse-all";
} }
/* search with notmuch */
{ map = [ "pager" "index" ];
key = "S";
action = "vfolder-from-query";
}
]; ];
}; };
programs.msmtp.enable = true; programs.msmtp.enable = true;
accounts.email.accounts = let accounts.email.accounts = let
aliases = ".*@vbrandl.net"; aliases = "mail(\\+.*)?@vbrandl.net";
in { in {
vbrandl = ( vbrandl = (
mailBaseConfig { mailBaseConfig {

View File

@ -27,31 +27,27 @@ require('packer').startup(function(use)
} }
use { use {
"mrcjkb/rustaceanvim", 'simrat39/rust-tools.nvim',
ft = { 'rust' },
requires = { requires = {
{ { 'neovim/nvim-lspconfig' },
"lvimuser/lsp-inlayhints.nvim",
opts = {} -- Debugging
}, { 'nvim-lua/plenary.nvim' },
{ "nvim-lua/plenary.nvim" }, { 'mfussenegger/nvim-dap' },
{ "mfussenegger/nvim-dap" },
}, },
config = function() config = function()
vim.g.rustaceanvim = { local rt = require("rust-tools")
tools = {
hover_actions = { rt.setup({
auto_focus = true,
},
},
server = { server = {
on_attach = function(client, bufnr) on_attach = function(_, bufnr)
require("lsp-inlayhints").setup() -- Hover actions
require("lsp-inlayhints").on_attach(client, bufnr) vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
require("lsp-inlayhints").show() -- Code action groups
end vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
} end,
} },
})
end, end,
} }
@ -68,7 +64,7 @@ require('packer').startup(function(use)
-- use { 'kien/ctrlp.vim' } -- use { 'kien/ctrlp.vim' }
use { use {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim', tag = '0.1.0',
requires = { requires = {
{ 'nvim-lua/plenary.nvim' } { 'nvim-lua/plenary.nvim' }
}, },
@ -118,6 +114,7 @@ require('packer').startup(function(use)
-- ui stuff -- ui stuff
use { use {
'akinsho/bufferline.nvim', 'akinsho/bufferline.nvim',
tag = "v3.*",
requires = 'nvim-tree/nvim-web-devicons', requires = 'nvim-tree/nvim-web-devicons',
config = function() config = function()
require("bufferline").setup {} require("bufferline").setup {}

View File

@ -67,6 +67,9 @@ set undofile
" clear highlighted search " clear highlighted search
noremap <space> :nohlsearch<cr> noremap <space> :nohlsearch<cr>
" Highlight symbol under cursor on CursorHold
autocmd CursorHold * silent call CocActionAsync('highlight')
" Append modeline after last line in buffer. " Append modeline after last line in buffer.
" Use substitute() instead of printf() to handle '%%s' modeline in LaTeX files. " Use substitute() instead of printf() to handle '%%s' modeline in LaTeX files.
function! AppendModeline() function! AppendModeline()

View File

@ -1,12 +1,469 @@
{ pkgs, ... }: { { pkgs, ... }:
programs.neovim = { let
config = {
plugins = with pkgs.vimPlugins; [
packer-nvim
# vim-colors-solarized
# coc-nvim
# coc-rust-analyzer
# coc-pyright
# coc-go
# # orgmode-nvim
# # nvim-treesitter
# ctrlp-vim
# editorconfig-vim
# vim-gist
# goyo-vim
# # gopls
# neomake
# rust-vim
# solarized
# vim-commentary
# vim-dispatch
# vim-fugitive
# vim-gitgutter
# vim-lastplace
# vim-nix
# vim-polyglot
# vim-repeat
# # vim-scala
# vim-sleuth
# vim-surround
# vim-trailing-whitespace
# # vimtex
# vimux
# vimwiki
];
enable = true; enable = true;
# extraConfig = ''
# set background=dark
# " allow switching away from unsaved buffers
# set hidden
# set history=1000
# set updatetime=300
# set expandtab
# set shiftwidth=2
# set tabstop=2
# set ignorecase
# set smartcase
# set number
# set relativenumber
# set backupdir=$HOME/.vim/backupfiles//
# set directory=$HOME/.vim/swapfiles//
# set undodir=$HOME/.vim/undofiles//
# set undofile
# set nocompatible
# filetype plugin indent on
# " always set autoindenting on
# set autoindent
# " smart indent; stop indent when closing brackets etc
# set smartindent
# " two spaces after .?! when joining lines
# set joinspaces
# " highlight search result
# set hlsearch
# " incremental search
# set incsearch
# set nolazyredraw
# " delete whitespace, line break and char using <BS>
# set backspace=indent,eol,start
# " always show curser position
# set ruler
# " yank into system clipboard
# set clipboard=unnamedplus
# colorscheme solarized
# " true color
# set termguicolors
# " make true colors work in tmux
# let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
# let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
# " set textwidth=80
# set colorcolumn=+1
# set signcolumn=yes
# " highlight current line
# set cursorline
# " encoding
# set fileencoding=utf-8
# " break at last word instead of last char
# set linebreak
# " autoload file changes
# set autoread
# set smarttab
# set softtabstop=2
# set shiftround
# " invisible characters
# set list
# " set listchars=tab:â\ ,eol:¬,trail:â,extends:â¯,precedes:â®
# " set showbreak=âª
# " code folding settings
# " fold based on syntax
# set foldmethod=indent
# " don't fold by default
# set nofoldenable
# set foldlevel=1
# " smoother redrawing
# set ttyfast
# " diff with vertical split
# set diffopt+=vertical
# " show the status line all the time
# set laststatus=2
# " keep 5 lines on the screen when scrolling
# set scrolloff=5
# " enhanced command line completion
# set wildmenu
# " Search down into subfolders
# " Provides tab-completion for all file-related tasks
# set path+=**
# " show incomplete commands
# set showcmd
# " complete files like a shell
# set wildmode=list:longest
# " command bar height
# set cmdheight=1
# " set terminal title
# set title
# " set shortmess+=TOFwatc
# set shortmess+=c
# " show matching braces
# set showmatch
# " how many tenths of a second to blink
# set mat=2
# " set spell langs
# set spelllang=de,en
# syntax enable
# " let g:polyglot_disabled=['latex']
# " highlight clear SpellBad
# " highlight SpellBad cterm=undercurl
# " " Only do this part when compiled with support for autocommands.
# " if has("autocmd")
# " " Put these in an autocmd group, so that we can delete them easily.
# " augroup vimrcEx
# " au!
# " autocmd FileType text setlocal foldtext<
# " augroup END
# " endif " has("autocmd")
# " error bells
# set errorbells
# set visualbell
# set timeoutlen=500
# " turn on manpages (:Man)
# runtime ftplugin/man.vim
# " set a map leader for more key combos
# let mapleader=','
# " clear highlighted search
# noremap <space> :nohlsearch<cr>
# " enable . command in visual mode
# vnoremap . :normal .<cr>
# " make the highlighting of tabs and other non-text less annoying
# highlight SpecialKey ctermbg=none ctermfg=8
# highlight NonText ctermbg=none ctermfg=8
# " other color for popup
# highlight Pmenu ctermbg=gray guibg=gray
# " ctrlp
# " order top to bottom
# let g:ctrlp_match_window='bottom,order::ttb'
# " open files in new buffer
# let g:ctrlp_switch_buffer=0
# " use ripgrep if available
# if executable('rg')
# set grepprg=rg\ --color=never
# let g:ctrlp_user_command='rg %s --files -i --color=never --glob ""'
# let g:ctrlp_use_caching=0
# endif
# " set textwidth for mails
# autocmd FileType mail setlocal textwidth=72
# " count wraped lines as one line when doing relative jumps
# noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j')
# noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k')
# " scroll the viewport faster
# nnoremap <C-e> 3<C-e>
# nnoremap <C-y> 3<C-y>
# "" Section AutoGroups {{{
# "" file type specific settings
# augroup configgroup
# autocmd!
# " automatically resize panes on resize
# autocmd VimResized * exe 'normal! \<c-w>='
# autocmd BufWritePost .vimrc,.vimrc.local,init.vim source %
# " save all files on focus lost, ignoring warnings about untitled buffers
# autocmd FocusLost * silent! wa
# " make quickfix windows take all the lower section of the screen
# " when there are multiple windows open
# autocmd FileType qf wincmd J
# autocmd! BufWritePost * Neomake
# augroup END
# " }}}
# " Append modeline after last line in buffer.
# " Use substitute() instead of printf() to handle '%%s' modeline in LaTeX files.
# function! AppendModeline()
# let l:modeline = printf(" vim: set filetype=%s ts=%d sw=%d tw=%d %s :",
# \ &filetype, &tabstop, &shiftwidth, &textwidth, &expandtab ? 'et' : 'noet')
# let l:modeline = substitute(&commentstring, "%s", l:modeline, "")
# call append(line("$"), l:modeline)
# endfunction
# nnoremap <silent> <Leader>ml :call AppendModeline()<CR>
# " netrw settings
# " disable banner
# let g:netrw_banner=0
# " open in prior window
# let g:netrw_browse_split=4
# " open splits to the right
# let g:netrw_altv=1
# " treeview
# let g:netrw_liststyle=3
# let g:netrw_list_hide=netrw_gitignore#Hide()
# let g:netrw_list_hide.=',\(^\|\s\s\)\zs\.\S\+'
# " vimux mappings
# " Prompt for a command
# map <Leader>vp :VimuxPromptCommand<CR>
# " Prompt for a make command
# map <Leader>vm :VimuxPromptCommand("make ")<CR>
# " Inspect runner pane
# map <Leader>vi :VimuxInspectRunner<CR>
# " Close runner
# map <Leader>vq :VimuxCloseRunner<CR>
# " Rerun last command
# map <Leader>vv :VimuxRunLastCommand<CR>
# " Stop running command
# map <Leader>vs :VimuxInterruptRunner<CR>
# " close Goyo *and* vim with :q
# function! s:goyo_enter()
# let b:quitting=0
# let b:quitting_bang=0
# autocmd QuitPre <buffer> let b:quitting=1
# cabbrev <buffer> q! let b:quitting_bang=1 <bar> q!
# endfunction
# function! s:goyo_leave()
# " Quit Vim if this is the only remaining buffer
# if b:quitting && len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) == 1
# if b:quitting_bang
# qa!
# else
# qa
# endif
# endif
# endfunction
# autocmd! User GoyoEnter call <SID>goyo_enter()
# autocmd! User GoyoLeave call <SID>goyo_leave()
# " run rustfmt when saving a file
# let g:rustfmt_autosave=1
# au BufRead,BufNewFile *.sbt set filetype=scala
# " textwidth for emails
# au BufRead /tmp/*mutt-* set tw=72
# augroup filetypedetect
# " Mail
# autocmd BufRead,BufNewFile *mutt-* setfiletype mail
# augroup END
# let g:coc_global_extensions = [
# \ 'coc-explorer',
# \ 'coc-snippets',
# \ 'coc-pairs'
# \ ]
# nmap ge :CocCommand explorer<CR>
# " Use tab for trigger completion with characters ahead and navigate.
# " Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin.
# inoremap <silent><expr> <TAB>
# \ pumvisible() ? "\<C-n>" :
# \ <SID>check_back_space() ? "\<TAB>" :
# \ coc#refresh()
# inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
# function! s:check_back_space() abort
# let col = col('.') - 1
# return !col || getline('.')[col - 1] =~# '\s'
# endfunction
# " Use <c-space> to trigger completion.
# inoremap <silent><expr> <c-space> coc#refresh()
# " Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position.
# " Coc only does snippet and additional edit on confirm.
# inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
# " Or use `complete_info` if your vim support it, like:
# " inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>"
# " Use `[g` and `]g` to navigate diagnostics
# nmap <silent> [g <Plug>(coc-diagnostic-prev)
# nmap <silent> ]g <Plug>(coc-diagnostic-next)
# " Remap keys for gotos
# nmap <silent> gd <Plug>(coc-definition)
# nmap <silent> gy <Plug>(coc-type-definition)
# nmap <silent> gi <Plug>(coc-implementation)
# nmap <silent> gr <Plug>(coc-references)
# " Use K to show documentation in preview window
# nnoremap <silent> K :call <SID>show_documentation()<CR>
# function! s:show_documentation()
# if (index(['vim','help'], &filetype) >= 0)
# execute 'h '.expand('<cword>')
# else
# call CocAction('doHover')
# endif
# endfunction
# " Highlight symbol under cursor on CursorHold
# autocmd CursorHold * silent call CocActionAsync('highlight')
# " Remap for rename current word
# nmap <leader>rn <Plug>(coc-rename)
# " Remap for format selected region
# xmap <leader>f <Plug>(coc-format-selected)
# nmap <leader>f <Plug>(coc-format-selected)
# augroup mygroup
# autocmd!
# " Setup formatexpr specified filetype(s).
# autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
# " Update signature help on jump placeholder
# autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
# augroup end
# " Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph
# xmap <leader>a <Plug>(coc-codeaction-selected)
# nmap <leader>a <Plug>(coc-codeaction-selected)
# " Remap for do codeAction of current line
# nmap <leader>ac <Plug>(coc-codeaction)
# " Fix autofix problem of current line
# nmap <leader>qf <Plug>(coc-fix-current)
# " Create mappings for function text object, requires document symbols feature of languageserver.
# xmap if <Plug>(coc-funcobj-i)
# xmap af <Plug>(coc-funcobj-a)
# omap if <Plug>(coc-funcobj-i)
# omap af <Plug>(coc-funcobj-a)
# " Use <C-d> for select selections ranges, needs server support, like: coc-tsserver, coc-python
# nmap <silent> <C-d> <Plug>(coc-range-select)
# xmap <silent> <C-d> <Plug>(coc-range-select)
# " Use `:Format` to format current buffer
# command! -nargs=0 Format :call CocAction('format')
# " Use `:Fold` to fold current buffer
# command! -nargs=? Fold :call CocAction('fold', <f-args>)
# " use `:OR` for organize import of current buffer
# command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport')
# " Add status line support, for integration with other plugin, checkout `:h coc-status`
# " set statusline^=%{coc#status()}%{get(b:,'coc_current_function',''')}
# " Using CocList
# " Show all diagnostics
# nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr>
# " Manage extensions
# nnoremap <silent> <space>e :<C-u>CocList extensions<cr>
# " Show commands
# nnoremap <silent> <space>c :<C-u>CocList commands<cr>
# " Find symbol of current document
# nnoremap <silent> <space>o :<C-u>CocList outline<cr>
# " Search workspace symbols
# nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr>
# " Do default action for next item.
# nnoremap <silent> <space>j :<C-u>CocNext<CR>
# " Do default action for previous item.
# nnoremap <silent> <space>k :<C-u>CocPrev<CR>
# " Resume latest coc list
# nnoremap <silent> <space>p :<C-u>CocListResume<CR>
# " properly find root for py projects in workspace
# autocmd FileType python let b:coc_root_patterns = ['.git', '.env', 'venv', '.venv', 'setup.cfg', 'setup.py', 'pyproject.toml', 'pyrightconfig.json']
# " let g:tex_flavor = 'latex'
# '';
# lua << EOF
# ${builtins.readFile ./init.lua}
# EOF
# generatedConfigs = {
# lua = builtins.readFile ./plugins.lua;
# };
extraConfig = ''
${builtins.readFile ./init.vim}
lua << EOF
${builtins.readFile ./init.lua}
EOF
'';
};
in {
# Note that this doesnt merge deeply, so you couldnt add to plugins. For that
# you can use the nixos module systems mkMerge with
# programs.neovim = lib.mkMerge [ config { vimAlias = true; } ]
programs.neovim = {
vimAlias = true; vimAlias = true;
viAlias = true; viAlias = true;
plugins = with pkgs.unstable.vimPlugins; [ coc = {
astrocore enable = true;
astrolsp # settings = {
astroui # "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
]; # "gopls.experimentalWorkspaceModule" = true;
# };
}; };
} // config;
# programs.vim = config;
# xdg.configFile."nvim/coc-settings.json".text = builtins.toJSON {
# # "go.goplsPath" = "${gopls}/bin/gopls";
# };
} }

View File

@ -1,6 +1,6 @@
{ config, pkgs, ... }: { { pkgs, ... }: {
services.polybar = { services.polybar = {
enable = config.xsession.windowManager.i3.enable; enable = true;
config = { config = {
"bar/top" = { "bar/top" = {
monitor = "\${env:MONITOR:}"; monitor = "\${env:MONITOR:}";
@ -124,6 +124,7 @@
}; };
script = '' script = ''
polybar top &
''; '';
}; };
} }

View File

@ -5,6 +5,8 @@
gnumake gnumake
pkg-config pkg-config
i3lock-fancy
antigen antigen
nodejs nodejs
fortune fortune
@ -26,7 +28,5 @@
/* obs-studio */ /* obs-studio */
# unstable.obs-v4l2sink # unstable.obs-v4l2sink
jellyfin-media-player
]; ];
} }

View File

@ -1,6 +1,6 @@
{ ... }: { { ... }: {
qt = { qt = {
enable = true; enable = true;
platformTheme.name = "gtk"; platformTheme = "gtk";
}; };
} }

View File

@ -1,6 +1,6 @@
{ config, ... }: { { ... }: {
services.redshift = { services.redshift = {
enable = config.xsession.windowManager.i3.enable; enable = true;
longitude = "49.01315"; longitude = "49.01315";
latitude = "12.1119"; latitude = "12.1119";
}; };

View File

@ -3,6 +3,7 @@
cargo-edit cargo-edit
# llvmPackages_latest.bintools # llvmPackages_latest.bintools
llvmPackages_latest.llvm llvmPackages_latest.llvm
rust-analyzer
rustup rustup
sccache sccache
xorriso xorriso

View File

@ -1,155 +0,0 @@
{ lib, pkgs, ... }:
let
mod = "Mod4";
ws1 = "1: www";
ws2 = "2: >_";
ws3 = "3: </>";
ws4 = "4: IM";
ws5 = "5: ./";
ws6 = "6: doc";
ws7 = "7: mail";
ws8 = "8";
ws9 = "9";
ws10 = "10: media";
mode_system = "System: L : | S : | P : | R : | E : ";
in {
imports = [
./gammastep.nix
./kanshi.nix
];
home.packages = with pkgs; [
slurp # screenshot selection
grim # screenshots
wl-clipboard # copy/paste
swaybg # background images
];
# similar to i3-lock-fancy
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
settings = {
screenshots = true;
effect-blur = "7x5";
clock = true;
indicator = true;
indicator-thickness = 7;
};
};
wayland.windowManager.sway = {
enable = true;
swaynag.enable = true;
systemd.enable = true;
config = {
modifier = mod;
workspaceAutoBackAndForth = true;
fonts = {
names = [ "NotoSans-Regular" "FontAwesome" ];
style = "Monospace";
size = 12.0;
};
/* TODO: background
output = {
"*" = {
bg = "/home/me/media/Pictures/wallpapers/gargantua-black-3840x2160-11475.jpg fill";
};
};
*/
assigns = {
"${ws1}" = [ { app_id = "firefox"; } ];
"${ws5}" = [ { app_id="thunar"; } ];
"${ws7}" = [ { class="Thunderbird"; } ];
};
floating = {
criteria = [
{ window_role = "pop-up"; }
{ window_role = "task_dialog"; }
{ title = "Preferences$"; }
{ app_id = "org.keepassxc.KeePassXC"; }
{ app_id = "pavucontrol"; }
{ class = "^Pinentry-gtk-2$"; }
];
};
terminal = "alacritty";
keybindings = lib.mkOptionDefault {
"${mod}+b" = "split h";
"${mod}+v" = "split v";
"${mod}+s" = "layout stacking";
"${mod}+w" = "layout tabbed";
"${mod}+e" = "layout toggle split";
"${mod}+space" = "focus mode_toggle";
"${mod}+d" = "exec rofi -show drun";
"${mod}+Tab" = "exec rofi -show window";
"${mod}+1" = "workspace ${ws1}";
"${mod}+2" = "workspace ${ws2}";
"${mod}+3" = "workspace ${ws3}";
"${mod}+4" = "workspace ${ws4}; layout tabbed";
"${mod}+5" = "workspace ${ws5}";
"${mod}+6" = "workspace ${ws6}";
"${mod}+7" = "workspace ${ws7}; layout tabbed";
"${mod}+8" = "workspace ${ws8}";
"${mod}+9" = "workspace ${ws9}";
"${mod}+0" = "workspace ${ws10}";
"${mod}+Shift+1" = "move container to workspace ${ws1}";
"${mod}+Shift+2" = "move container to workspace ${ws2}";
"${mod}+Shift+3" = "move container to workspace ${ws3}";
"${mod}+Shift+4" = "move container to workspace ${ws4}";
"${mod}+Shift+5" = "move container to workspace ${ws5}";
"${mod}+Shift+6" = "move container to workspace ${ws6}";
"${mod}+Shift+7" = "move container to workspace ${ws7}";
"${mod}+Shift+8" = "move container to workspace ${ws8}";
"${mod}+Shift+9" = "move container to workspace ${ws9}";
"${mod}+Shift+0" = "move container to workspace ${ws10}";
"${mod}+Shift+r" = "reload";
"${mod}+r" = "mode \"resize\"";
"${mod}+x" = "mode \"${mode_system}\"";
"${mod}+Shift+x" = "exec swaylock";
};
modes = {
resize = {
h = "resize shrink width 10 px or 10 ppt";
j = "resize grow height 10 px or 10 ppt";
k = "resize shrink height 10 px or 10 ppt";
l = "resize grow width 10 px or 10 ppt";
Return = "mode \"default\"";
Escape = "mode \"default\"";
"${mod}+r" = "mode \"default\"";
};
"${mode_system}" = {
l = "exec ~/bin/lock.sh, mode \"default\"";
s = "exec $Lock systemctl suspend, mode \"default\"";
p = "exec systemctl poweroff -i, mode \"default\"";
r = "exec systemctl reboot, mode \"default\"";
e = "exec i3-msg exit, mode \"default\"";
# back to normal: Enter or Escape or mod+x again
Return = "mode \"default\"";
Escape = "mode \"default\"";
"${mod}+x" = "mode \"default\"";
};
};
window = {
hideEdgeBorders = "both";
# disable titlebar
titlebar = false;
};
};
};
}

View File

@ -1,7 +0,0 @@
{ ... }: {
services.gammastep = {
enable = true;
longitude = "49.01315";
latitude = "12.1119";
};
}

View File

@ -1,34 +0,0 @@
{ config, ... }: {
# automatically configure monitor layout depending on connected devices
# https://git.sr.ht/~emersion/kanshi
services.kanshi = {
enable = config.wayland.windowManager.sway.enable;
settings = [
{
profile = {
name = "home";
outputs = [
{
criteria = "eDP-1";
position = "0,0";
}
{
criteria = "HDMI-A-1";
position = "1920,0";
}
];
};
}
{
profile = {
name = "mobile";
outputs = [
{
criteria = "eDP-1";
}
];
};
}
];
};
}

View File

@ -1,100 +0,0 @@
{ config, pkgs, ... }: {
programs.waybar = {
enable = config.wayland.windowManager.sway.enable;
systemd.enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [
"eDP-1"
"HDMI-A-1"
];
modules-left = ["sway/workspaces" "sway/mode"];
#modules-center = ["sway/window"];
modules-right = [
"pulseaudio"
"network"
"disk"
"memory"
"cpu"
"battery"
"clock#date"
"clock#time"
"tray"
];
"disk" = {
format = "Disk {percentage_free}%";
};
"pulseaudio" = {
format = "{volume}% {format_source}";
on-click = "pavucontrol";
};
"cpu" = {
format = "CPU {usage}% ({load})";
states = {
warning = "70";
critical = "90";
};
};
"memory" = {
format = "Mem {}%";
states = {
warning = "70";
critical = "90";
};
};
"network" = {
format-wifi = " {essid} ({signalStrength}%)";
format-ethernet = " {ifname}: {ipaddr}/{cidr}";
format-disconnected = " Disconnected";
};
"battery" = {
states = {
warning = "30";
critical = "15";
};
format = " {icon} {capacity}%";
format-discharging = "{icon} {capacity}%";
format-icons = [
""
""
""
""
""
];
};
tray = {
icon-size = 21;
spacing = 10;
};
"clock#time" = {
interval = 1;
format = "{:%H:%M:%S}";
};
"clock#date" = {
format = "{:%e %B %Y}";
};
"sway/workspaces" = {
all-outputs = false;
};
};
};
package = pkgs.waybar.override {
pulseSupport = true;
#i3Support = true;
};
};
}

View File

@ -1,7 +1,7 @@
{ pkgs, ... }: { { pkgs, ... }: {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
autosuggestion.enable = true; enableAutosuggestions = true;
enableCompletion = true; enableCompletion = true;
autocd = true; autocd = true;
dotDir = ".config/zsh"; dotDir = ".config/zsh";

View File

@ -1,7 +1,7 @@
inputs: inputs:
{ config, lib, pkgs, ... }: { { config, lib, pkgs, ... }: {
nix = { nix = {
package = pkgs.nixStable; package = pkgs.nixUnstable;
extraOptions = '' extraOptions = ''
experimental-features = nix-command flakes experimental-features = nix-command flakes
''; '';
@ -26,21 +26,21 @@ inputs:
i18n.defaultLocale = "en_GB.UTF-8"; i18n.defaultLocale = "en_GB.UTF-8";
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
#sound.enable = true; sound.enable = true;
hardware = { hardware = {
# TODO: remove # TODO: remove
enableAllFirmware = true; enableAllFirmware = true;
#pulseaudio = { pulseaudio = {
# TODO: pipewire # TODO: pipewire
#enable = true; enable = true;
# stop mumble from muting other processes # stop mumble from muting other processes
#extraConfig = "unload-module module-role-cork"; extraConfig = "unload-module module-role-cork";
#}; };
graphics = { opengl = {
enable = true; enable = true;
# driSupport = true; # driSupport = true;
enable32Bit = true; driSupport32Bit = true;
}; };
}; };
@ -66,13 +66,9 @@ inputs:
# Enable CUPS to print documents. # Enable CUPS to print documents.
printing.enable = true; printing.enable = true;
pipewire = { pipewire = {
enable = true; enable = false;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true; pulse.enable = true;
wireplumber.enable = true;
}; };
# required for nextcloud # required for nextcloud
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
@ -86,25 +82,26 @@ inputs:
enable = true; enable = true;
}; };
displayManager = {
#defaultSession = "none+i3";
defaultSession = "sway";
};
xserver = { xserver = {
enable = true; enable = true;
xkb = {
options = "caps:escape";
layout = "eu"; layout = "eu";
}; xkbOptions = "caps:escape";
displayManager = { displayManager = {
gdm.enable = true; defaultSession = "none+i3";
lightdm.enable = true;
}; };
windowManager.i3 = { windowManager.i3 = {
enable = true; enable = true;
extraPackages = with pkgs; [
dmenu
rofi
i3status
i3lock
i3blocks
];
}; };
}; };
}; };
@ -113,18 +110,6 @@ inputs:
"L+ /lib64/ld-linux-x86-64.so.2 - - - - ${pkgs.glibc}/lib64/ld-linux-x86-64.so.2" "L+ /lib64/ld-linux-x86-64.so.2 - - - - ${pkgs.glibc}/lib64/ld-linux-x86-64.so.2"
]; ];
# pipewire bluetooth config (https://nixos.wiki/wiki/PipeWire#Bluetooth_Configuration)
environment.etc = {
"wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = ''
bluez_monitor.properties = {
["bluez5.enable-sbc-xq"] = true,
["bluez5.enable-msbc"] = true,
["bluez5.enable-hw-volume"] = true,
["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
}
'';
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
alacritty alacritty
arandr arandr
@ -149,9 +134,9 @@ inputs:
]; ];
virtualisation = { virtualisation = {
docker = { # docker = {
enable = false; # enable = true;
}; # };
podman = { podman = {
enable = true; enable = true;
@ -160,22 +145,12 @@ inputs:
/* to make networking in docker-compose work */ /* to make networking in docker-compose work */
dns_enabled = true; dns_enabled = true;
}; };
dockerSocket.enable = true; #dockerSocket.enable = true;
}; };
# lxd.enable = true; # lxd.enable = true;
# virtualbox.host.enable = true; # virtualbox.host.enable = true;
# virtualbox.host.enableExtensionPack = true; # virtualbox.host.enableExtensionPack = true;
}; };
# virt-manager
virtualisation.libvirtd.enable = false;
programs.virt-manager.enable = false;
#dconf.settings = {
#"org/virt-manager/virt-manager/connections" = {
#autoconnect = ["qemu:///system"];
#uris = ["qemu:///system"];
#};
#};
programs = { programs = {
# enable zsh globally # enable zsh globally
@ -183,13 +158,12 @@ inputs:
gnupg.agent = { gnupg.agent = {
enable = true; enable = true;
enableSSHSupport = true; enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-curses; pinentryFlavor = "curses";
}; };
thunar = { thunar = {
enable = true; enable = true;
plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ];
}; };
kdeconnect.enable = true;
}; };
environment.sessionVariables = { environment.sessionVariables = {
@ -201,12 +175,12 @@ inputs:
environment.pathsToLink = [ "/libexec" ]; # links /libexec from derivations to /run/current-system/sw environment.pathsToLink = [ "/libexec" ]; # links /libexec from derivations to /run/current-system/sw
fonts = { fonts = {
enableDefaultPackages = true; enableDefaultFonts = true;
packages = with pkgs; [ fonts = with pkgs; [
font-awesome font-awesome
nerdfonts nerdfonts
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk
noto-fonts-emoji noto-fonts-emoji
powerline-fonts powerline-fonts
material-icons material-icons
@ -220,20 +194,11 @@ inputs:
}; };
}; };
security = {
# generate login settings # generate login settings
# ykman otp chalresp --touch --generate 2 # ykman otp chalresp --touch --generate 2
pam.yubico = { security.pam.yubico = {
enable = true; enable = true;
# debug = true; # debug = true;
mode = "challenge-response"; mode = "challenge-response";
}; };
sudo = {
package = pkgs.sudo.override { withInsults = true; };
};
# rtkit is optional but recommended for pipewire
rtkit.enable = true;
};
} }

View File

@ -1,5 +1,5 @@
inputs: inputs:
{ pkgs, pkgs-unstable, ... }: { { pkgs, ... }: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
neovim neovim
vim vim
@ -13,7 +13,7 @@ inputs:
binutils binutils
curl curl
htop htop
nixfmt-classic nixfmt
ripgrep ripgrep
shellcheck shellcheck
tmux tmux
@ -26,14 +26,10 @@ inputs:
direnv direnv
# gitea cli
tea
#idea.idea-community #idea.idea-community
# unstable.jetbrains.idea-community jetbrains.idea-ultimate
jetbrains.idea-community
dbeaver-bin dbeaver
]; ];
services.lorri.enable = true; services.lorri.enable = true;

View File

@ -11,9 +11,6 @@ inputs:
spotify spotify
vlc vlc
# podcast app with nextcloud sync
libsForQt5.kasts
teamspeak_client teamspeak_client
# support both 32- and 64-bit applications # support both 32- and 64-bit applications
@ -23,7 +20,7 @@ inputs:
]; ];
# needed for steam # needed for steam
hardware.graphics.enable32Bit = true; hardware.opengl.driSupport32Bit = true;
hardware.pulseaudio.support32Bit = true; hardware.pulseaudio.support32Bit = true;
programs.steam.enable = true; programs.steam.enable = true;

View File

@ -3,41 +3,27 @@ let
system = "x86_64-linux"; system = "x86_64-linux";
hostname = "morpheus"; hostname = "morpheus";
swapUUID = "93bdadfc-961a-4ea6-aef0-d3cd50847f0b"; swapUUID = "93bdadfc-961a-4ea6-aef0-d3cd50847f0b";
overlay-unstable = final: prev: {
unstable = inputs.nixpkgs-unstable.legacyPackages.${prev.system};
};
in in
inputs.nixpkgs.lib.nixosSystem { inputs.nixpkgs.lib.nixosSystem {
inherit system; inherit system;
modules = [ modules = [
({ config, pkgs, ... } : { { system.stateVersion = "22.05"; }
system.stateVersion = "22.05";
nixpkgs.overlays = [ overlay-unstable ];
})
(import ./common.nix inputs) (import ./common.nix inputs)
(import ./sway.nix inputs)
(import ./morpheus/btrbk.nix inputs)
(import ./dev.nix inputs) (import ./dev.nix inputs)
(import ./entertainment.nix inputs) (import ./entertainment.nix inputs)
(import ./office.nix inputs) (import ./office.nix inputs)
({ pkgs, lib, ... }: { ({ pkgs, lib, ... }: {
system.autoUpgrade = { system.autoUpgrade = {
enable = false; enable = true;
flake = inputs.self.outPath;
flags = [
"--update-input"
"nixpkgs"
"--update-input"
"nixpkgs-unstable"
"--update-input"
"home-manager"
"--update-input"
"flake-utils"
"-L" # print build logs
];
allowReboot = false; allowReboot = false;
}; };
environment.systemPackages = with pkgs; [
# automatic btrfs snapshots
snapper
snapper-gui
];
networking = { networking = {
hostName = hostname; hostName = hostname;
interfaces.enp1s0.useDHCP = true; interfaces.enp1s0.useDHCP = true;
@ -45,8 +31,18 @@ inputs.nixpkgs.lib.nixosSystem {
}; };
services = { services = {
# enable touchpad support # enable touchpad support
libinput.enable = true; xserver.libinput.enable = true;
blueman.enable = true; blueman.enable = true;
snapper.configs = {
home = {
subvolume = "/home";
extraConfig = ''
ALLOW_USERS="me"
TIMELINE_CREATE=yes
TIMELINE_CLEANUP=yes
'';
};
};
}; };
users.users.me = { users.users.me = {
isNormalUser = true; isNormalUser = true;
@ -57,7 +53,6 @@ inputs.nixpkgs.lib.nixosSystem {
"davfs2" "davfs2"
"disk" "disk"
"docker" "docker"
"libvirtd" # virt-manager
"networkmanager" "networkmanager"
"plugdev" "plugdev"
"podman" "podman"
@ -74,12 +69,7 @@ inputs.nixpkgs.lib.nixosSystem {
#availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; #availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
kernelModules = [ ]; kernelModules = [ ];
luks.devices."system" = { luks.devices."system".device = "/dev/disk/by-uuid/06549d22-b96c-44f2-bb27-45200d5feda5";
device = "/dev/disk/by-uuid/06549d22-b96c-44f2-bb27-45200d5feda5";
# better SSD performance
# https://wiki.archlinux.org/title/Dm-crypt/Specialties#Disable_workqueue_for_increased_solid_state_drive_(SSD)_performance
bypassWorkqueues = true;
};
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = [ "kvm-amd" ];
# use latest kernel # use latest kernel
@ -109,13 +99,6 @@ inputs.nixpkgs.lib.nixosSystem {
supportedFilesystems = [ "ntfs" ]; supportedFilesystems = [ "ntfs" ];
}; };
# btrf autoscrub
services.btrfs.autoScrub = {
enable = true;
# multiple subvolumes of the same fs are mounted. only scrub '/' to prevent multiple runs
fileSystems = [ "/" ];
};
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/93bdadfc-961a-4ea6-aef0-d3cd50847f0b"; { device = "/dev/disk/by-uuid/93bdadfc-961a-4ea6-aef0-d3cd50847f0b";
fsType = "btrfs"; fsType = "btrfs";

View File

@ -1,48 +0,0 @@
{ ... }: {
services.btrbk = {
instances = {
# local snapshots:
# - create hourly
# - keep hourly for 4 days and daily forever
home_local = {
onCalendar = "hourly";
settings = {
snapshot_preserve = "96h *d";
snapshot_preserve_min = "latest";
volume."/" = {
snapshot_dir = "/home/.btrbk";
subvolume.home = {
snapshot_create = "always";
};
};
};
};
# backup snapshots to backup drive
# - keep all hourly and the last 14 days of daily snapshots on the local disk
# - keep 14 daily, 8 weekly and all monthly snapshots on the backup drive
# - don't create new snapshots
# - TODO: trigger on mount
home_external = {
# disable systemd timer
onCalendar = null;
settings = {
# 14 * 24 = 336
snapshot_preserve = "336h 14d";
snapshot_preserve_min = "latest";
target_preserve = "14d 8w *m";
target_preserve_min = "2d";
volume."/" = {
snapshot_dir = "/home/.btrbk";
subvolume.home = {
snapshot_create = "no";
};
target = "/run/media/me/backup/morpheus";
};
};
};
};
};
}

View File

@ -1,9 +0,0 @@
inputs:
{ config, lib, pkgs, ... }: {
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
};
environment.sessionVariables.NIXOS_OZONE_WL = "1";
}

View File

@ -13,7 +13,7 @@ inputs.nixpkgs.lib.nixosSystem {
(import ./office.nix inputs) (import ./office.nix inputs)
({ pkgs, lib, ... }: { ({ pkgs, lib, ... }: {
system.autoUpgrade = { system.autoUpgrade = {
enable = false; enable = true;
allowReboot = false; allowReboot = false;
}; };

View File

@ -1,6 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>renovate-bot/renovate-config"
]
}