From 28cda002d58e8dc17894e56f6a6755bb4640fa16 Mon Sep 17 00:00:00 2001 From: natto1784 Date: Sat, 29 May 2021 10:17:10 +0530 Subject: [PATCH] neovim:init.vim->init.lua and misc changes --- .github/workflows/main.yml | 50 ----- {modules => common}/colemak-dh.xkb | 0 {modules => common}/nvidia-offload.nix | 0 common/pipewire.nix | 72 +++++++ {modules => common}/xorg.nix | 0 configs/nvim.nix | 69 ++---- configs/nvim/gruvbox.patch | 11 + configs/nvim/init.lua | 287 +++++++++++++++++++++++++ configs/nvim/init.vim | 129 ----------- configs/nvim/utils.vim | 19 -- configuration.nix | 15 -- flake.lock | 91 ++++++++ flake.nix | 13 +- home/natto.nix | 14 +- home/secrets/.zshrc.age | Bin 794 -> 947 bytes home/stuff/programs.nix | 1 - home/stuff/programs/emacs.nix | 1 + home/stuff/services.nix | 8 +- modules/pipewire.nix | 33 --- overlays/customscripts/src/agecrypt | 8 +- overlays/overridesandshit.nix | 3 + overlays/suckless/st.patch | 6 +- satori.nix | 8 +- satori/boot.nix | 2 +- {modules => satori}/cirno.png | Bin satori/pkgs.nix | 26 +-- satori/services.nix | 2 +- satori/stuff.nix | 1 - 28 files changed, 537 insertions(+), 332 deletions(-) rename {modules => common}/colemak-dh.xkb (100%) rename {modules => common}/nvidia-offload.nix (100%) create mode 100644 common/pipewire.nix rename {modules => common}/xorg.nix (100%) create mode 100644 configs/nvim/gruvbox.patch create mode 100644 configs/nvim/init.lua delete mode 100644 configs/nvim/init.vim delete mode 100755 configs/nvim/utils.vim delete mode 100755 configuration.nix delete mode 100644 modules/pipewire.nix rename {modules => satori}/cirno.png (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 25c03bb..8ca8059 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,53 +26,3 @@ jobs: name: natto1784 authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - run: nix build -L .#${{ matrix.pkg }} - - nixos: - name: build nixos configurations - runs-on: ubuntu-latest - strategy: - matrix: - host: - #- Marisa - #- Satori - steps: - - uses: actions/checkout@v2.3.4 - - uses: cachix/install-nix-action@v13 - with: - install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210429_d15a196/install - extra_nix_config: | - experimental-features = nix-command flakes - - uses: cachix/cachix-action@v10 - with: - name: natto1784 - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - run: nix build -L .#nixosConfigurations.${{ matrix.host }}.config.system.build.toplevel - home-manager: - name: build home-manager configurations - runs-on: ubuntu-latest - strategy: - matrix: - home: - #- natto - homeaarch: - - ottan - steps: - - uses: actions/checkout@v2.3.4 - - uses: cachix/install-nix-action@v13 - with: - install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210429_d15a196/install - extra_nix_config: | - experimental-features = nix-command flakes - - uses: cachix/cachix-action@v10 - with: - name: natto1784 - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - - uses: uraimo/run-on-arch-action@v2.0.5 - name: Run commands - id: runcmd - with: - arch: aarch64 - distro: ubuntu-latest - run: nix build -L .#hm-configs.${{ matrix.homeaarch }}.activationPackage - - run: nix build -L .#hm-configs.${{ matrix.home }}.activationPackage - diff --git a/modules/colemak-dh.xkb b/common/colemak-dh.xkb similarity index 100% rename from modules/colemak-dh.xkb rename to common/colemak-dh.xkb diff --git a/modules/nvidia-offload.nix b/common/nvidia-offload.nix similarity index 100% rename from modules/nvidia-offload.nix rename to common/nvidia-offload.nix diff --git a/common/pipewire.nix b/common/pipewire.nix new file mode 100644 index 0000000..24cf783 --- /dev/null +++ b/common/pipewire.nix @@ -0,0 +1,72 @@ +{lib, config, ... }: + +{ + services.pipewire = { + enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + pulse = { + enable = true; + }; + config.pipewire = { + context.modules = [ + { + name = "libpipewire-module-rtkit"; + args = { + nice.level = -15; + rt.prio = 88; + rt.time.soft = 200000; + rt.time.hard = 200000; + }; + flags = [ "ifexists" "nofail" ]; + } + { name = "libpipewire-module-protocol-native"; } + { name = "libpipewire-module-profiler"; } + { name = "libpipewire-module-metadata"; } + { name = "libpipewire-module-spa-device-factory"; } + { name = "libpipewire-module-spa-node-factory"; } + { name = "libpipewire-module-client-node"; } + { name = "libpipewire-module-client-device"; } + { + name = "libpipewire-module-portal"; + flags = [ "ifexists" "nofail" ]; + } + { + name = "libpipewire-module-access"; + args = {}; + } + { name = "libpipewire-module-adapter"; } + { name = "libpipewire-module-link-factory"; } + { name = "libpipewire-module-session-manager"; } + ]; + }; + + config.pipewire-pulse = { + context.modules = [ + { name = "libpipewire-module-protocol-native"; } + { name = "libpipewire-module-client-node"; } + { name = "libpipewire-module-adapter"; } + { name = "libpipewire-module-metadata"; } + { + name = "libpipewire-module-protocol-pulse"; + args = { + pulse.min.req = "32/48000"; + pulse.min.quantum = "32/48000"; + pulse.min.frag = "32/48000"; + }; + } + ]; + stream.properties = { + node.latency = "32/48000"; + resample.quality = 1; + }; + }; + }; + sound.enable = true; +# hardware = { +# pulseaudio.enable = true; +# pulseaudio.support32Bit = true; +# }; +} diff --git a/modules/xorg.nix b/common/xorg.nix similarity index 100% rename from modules/xorg.nix rename to common/xorg.nix diff --git a/configs/nvim.nix b/configs/nvim.nix index 65bb903..fcf7f28 100644 --- a/configs/nvim.nix +++ b/configs/nvim.nix @@ -2,53 +2,30 @@ { programs.neovim = { enable = true; + package = pkgs.neovim-nightly; + defaultEditor = true; configure = { - customRC = '' - "theme - let g:gruvbox_italic=1 - let g:gruvbox_contrast_dark="hard" - let g:gruvbox_contrast_light="hard" - set background=dark - colorscheme gruvbox - '' + - builtins.readFile ./nvim/init.vim + - builtins.readFile ./nvim/utils.vim + - '' - "Floaterm - let g:floaterm_keymap_toggle = '' - let g:floaterm_keymap_next = '' - let g:floaterm_keymap_prev = '' - let g:floaterm_keymap_new = '' - let g:floaterm_gitcommit='floaterm' - let g:floaterm_autoinsert=1 - let g:floaterm_width=0.8 - let g:floaterm_height=0.8 - let g:floaterm_wintitle=0 - let g:floaterm_shell="/usr/bin/env zsh" - '' + -/* '' - "Colorizer - packadd! nvim-colorizer.lua - lua require'colorizer'.setup() - '' + -*/ '' - "closetag - let g:closetag_filenames = "*.html,*.xhtml,*.phtml,*.js,*.erb,*.jsx" - let g:closetag_xhtml_filenames = '*.xhtml,*.jsx,*.js,*.erb' - let g:closetag_emptyTags_caseSensitive = 1 - let g:closetag_shortcut = '>' - let g:closetag_close_shortcut = '>' - '' + - '' - "nerdcommenter - map NERDCommenterToggle - map NERDCommenterSexy - ''; - - packages.myVimPackage = with pkgs.vimPlugins; { - start = [ auto-pairs vim-floaterm vim-rooter vim-polyglot gruvbox vim-closetag vim-floaterm nerdcommenter]; - }; + customRC ="lua << EOF\n" + builtins.readFile ./nvim/init.lua + "\nEOF\n"; + packages.myVimPackage = with pkgs.vimPlugins; { + start = [ + nvim-colorizer-lua + auto-pairs + vim-floaterm + vim-rooter + vim-closetag + vim-floaterm + nerdcommenter + vim-startify + nvim-compe + nvim-lspconfig + barbar-nvim + nvim-web-devicons + vim-polyglot + (gruvbox.overrideAttrs (oa: { patches = [ ./nvim/gruvbox.patch ]; })) + # (gruvbox.overrideAttrs (oa: { src = pkgs.fetchFromGitHub{} })) + ]; }; }; - } + }; +} diff --git a/configs/nvim/gruvbox.patch b/configs/nvim/gruvbox.patch new file mode 100644 index 0000000..bf4a3a7 --- /dev/null +++ b/configs/nvim/gruvbox.patch @@ -0,0 +1,11 @@ +--- a/colors/gruvbox.vim 2021-05-28 01:06:40.516914044 +0530 ++++ b/colors/gruvbox.vim 2021-05-28 01:07:38.279375184 +0530 +@@ -588,7 +588,7 @@ + " try, catch, throw + hi! link Exception GruvboxRed + " sizeof, "+", "*", etc. +-hi! link Operator Normal ++hi! link Operator GruvboxFg1 + " Any other keyword + hi! link Keyword GruvboxRed + diff --git a/configs/nvim/init.lua b/configs/nvim/init.lua new file mode 100644 index 0000000..16f8787 --- /dev/null +++ b/configs/nvim/init.lua @@ -0,0 +1,287 @@ +require'lspconfig'.rust_analyzer.setup{} +require'lspconfig'.tsserver.setup{} +require'lspconfig'.clangd.setup{} +require'lspconfig'.tsserver.setup{} +require'lspconfig'.jedi_language_server.setup{} +require'lspconfig'.purescriptls.setup{} +require'colorizer'.setup{} + +local comm = vim.api.nvim_command +local bind = vim.api.nvim_set_keymap +local set = function(a) comm("set " .. a) end +local setvar = vim.api.nvim_set_var +local getvar = vim.api.nvim_get_var + +function hi(hi_var, hi_value) + comm("hi " .. hi_var .. " " .. hi_value) +end + +--SETTINGS + +comm("syntax enable") +comm("syntax sync minlines=100") +set("cmdheight=1") +set("modifiable") +set("cursorline") +set("hidden") +set("encoding=utf-8") +set("pumheight=10") +set("fileencoding=utf-8") +set("ruler") +set("cmdheight=1") +set("mouse=a") +set("splitbelow") +set("splitright") +set("nowrap") +set("conceallevel=0") +set("tabstop=4") +set("shiftwidth=4") +set("smarttab") +set("expandtab") +set("smartindent") +set("autoindent") +set("number") +set("relativenumber") +set("showtabline=2") +set("updatetime=300") +set("lazyredraw") +set("timeoutlen=100") +set("clipboard=unnamedplus") + +--KEYBINDS + +--Colemak-DH bind fuction for hjkl [mnei]) +local function cdhbind(a, b) + bind('n', a:lower(), b:lower(), { noremap = true}) + bind('n', a:upper(), b:upper(), { noremap = true}) + bind('o', a:lower(), b:lower(), { noremap = true}) + bind('o', a:upper(), b:upper(), { noremap = true}) + bind('x', a:lower(), b:lower(), { noremap = true}) + bind('x', a:upper(), b:upper(), { noremap = true}) +end + +cdhbind('m', 'h') +cdhbind('n', 'j') +cdhbind('e', 'k') +cdhbind('i', 'l') +cdhbind('h', 'i') +cdhbind('j', 'm') +cdhbind('k', 'n') +cdhbind('l', 'e') +bind('n', "", ":w", {noremap=true}) +bind('n', "", ":resize -2", {noremap=true, silent=true}) +bind('n', "", ":resize +2", {noremap=true, silent=true}) +bind('n', "", ":vertical resize -2", {noremap=true, silent=true}) +bind('n', "", ":vertical resize +2", {noremap=true, silent=true}) +bind('v', '<', "', ">gv", {noremap=true}) +bind('n', "", "q", {noremap=true}) +bind('n', "", "h", {noremap=true}) +bind('n', "", "j", {noremap=true}) +bind('n', "", "k", {noremap=true}) +bind('n', "", "l", {noremap=true}) + +--RUN AND REPL (using vim-floaterm) + +function _G.CompileRun() + local file = vim.fn.expand('%:p') + local noext = vim.fn.expand('%:p:r') + local commandMap = { + ['java'] = 'java ' .. file, + ['lisp'] = 'clisp ' .. file, + ['python'] = 'python3 ' .. file, + ['c'] = 'gcc ' .. file .. ' -o ' .. noext .. ' && ' .. noext .. ' && rm ' .. noext, + ['rust'] = 'rustc ' .. file .. ' -o ' .. noext .. ' && ' .. noext .. ' && rm ' .. noext, + ['cpp'] = 'g++ -std=c++17 ' .. file .. ' -o ' .. noext .. ' && ' .. noext .. ' && rm ' .. noext, + ['haskell'] = 'ghc -dynamic ' .. file .. ' && ' .. noext .. ' && rm ' .. noext .. ' ' .. noext .. '.o ' .. noext .. '.hi', + ['sh'] = 'sh ' .. file, + ['javascript']= 'node ' .. file, + ['typescript']= 'tsc ' .. file .. ' && node ' .. noext .. '.js && rm ' .. noext .. '.js' + } + filetype = vim.api.nvim_buf_get_option(0, "filetype") + if commandMap[filetype] ~= nil then comm("FloatermNew --autoclose=0 " .. commandMap[filetype]) end +end + +function _G.Repl() + local file = vim.fn.expand('%:p') + local commandMap = { + ['lisp'] = 'clisp', + ['python'] = 'python3', + ['haskell'] = 'ghci ' .. file, + ['sh'] = 'sh', + ['javascript']= 'node', + ['typescript']= 'ts-node', + ['nix'] = 'nix repl', + ['lua'] = 'lua' + } + filetype = vim.api.nvim_buf_get_option(0, "filetype") + if commandMap[filetype] ~= nil then comm("FloatermNew " .. commandMap[filetype]) end +end +bind('n', "", ":call v:lua.CompileRun()", {silent=true}) +bind('n', "", ":call v:lua.Repl()", {silent=true}) + + + +--PLUGINS CONFIG + +--gruvbox +vim.g.gruvbox_italic=1 +vim.g.gruvbox_contrast_dark="hard" +vim.g.gruvbox_contrast_light="hard" +set("background=dark") +comm("colorscheme gruvbox") +--floaterm +vim.g.floaterm_keymap_toggle = '' +vim.g.floaterm_keymap_next = '' +vim.g.floaterm_keymap_prev = '' +vim.g.floaterm_keymap_new = '' +vim.g.floaterm_gitcommit='floaterm' +vim.g.floaterm_autoinsert=1 +vim.g.floaterm_width=1.0 +vim.g.floaterm_height=0.3 +vim.g.floaterm_shell="/usr/bin/env zsh" +vim.g.floaterm_wintype = "split" +--closetag +vim.g.closetag_filenames = "*.html,*.xhtml,*.phtml,*.js,*.erb,*.jsx" +vim.g.closetag_xhtml_filenames = "*.xhtml,*.jsx,*.js,*.erb" +vim.g.closetag_emptyTags_caseSensitive = 1 +vim.g.closetag_shortcut = '>' +--nerdcommenter +bind('n',"","NERDCommenterToggle", {noremap=true, silent=true}) +bind('n',"","NERDCommenterSexy", {noremap=true, silent=true}) +--barbar +bind('n', "", ":BufferPrevious", {silent=true, noremap=true}) +bind('n', "", ":BufferNext", {silent=true, noremap=true}) +bind('n', "", ":BufferMovePrevious", {silent=true, noremap=true}) +bind('n', ">", ":BufferMoveNext", {silent=true, noremap=true}) +for i = 1,8,1 +do + bind('n', string.format("", i), string.format(":BufferGoto %d", i), {silent=true, noremap=true}) +end + +--lsp and compe stuff i got from various places +vim.api.nvim_buf_set_keymap(0, 'n', 'gD', 'lua vim.lsp.buf.declaration()', {silent=true, noremap=true}) +vim.api.nvim_buf_set_keymap(0, 'n', 'gd', 'lua vim.lsp.buf.definition()', {silent=true, noremap=true}) +vim.api.nvim_buf_set_keymap(0, 'n', 'K', 'lua vim.lsp.buf.hover()', {silent=true, noremap=true}) +vim.api.nvim_buf_set_keymap(0, 'n', 'gi', 'lua vim.lsp.buf.implementation()', {silent=true, noremap=true}) +vim.api.nvim_buf_set_keymap(0, 'n', 'gr', 'lua vim.lsp.buf.references()', {silent=true, noremap=true}) +vim.api.nvim_buf_set_keymap(0, 'n', "f", "lua vim.lsp.buf.formatting()", {silent=true, noremap=true}) +require'compe'.setup { + enabled = true; + autocomplete = true; + debug = false; + min_length = 1; + preselect = 'enable'; + throttle_time = 80; + source_timeout = 200; + incomplete_delay = 400; + max_abbr_width = 100; + max_kind_width = 100; + max_menu_width = 100; + documentation = true; + + source = { + path = true; + buffer = true; + nvim_lsp = true; + calc = true; + spell = true; + treesitter = true; + nvim_lua = true; + }; +} + +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end +local check_back_space = function() + local col = vim.fn.col('.') - 1 + if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + return true + else + return false + end +end + +-- Use (s-)tab to: +--- move to prev/next item in completion menuone +--- jump to prev/next snippet's placeholder +_G.tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif check_back_space() then + return t "" + else + return vim.fn['compe#complete']() + end +end + +_G.s_tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then + return t "(vsnip-jump-prev)" + else + return t "" + end +end +vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true, silent = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true, silent = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true, silent = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true, silent = true}) + +set("shortmess+=c") + +--STATUSLINE + +set("noruler") +set("laststatus=2") +local function mode() + local mode_map = { + ['n'] = 'normal ', + ['v'] = 'visual ', + ['V'] = 'v·line ', + [''] = 'v·block ', + ['s'] = 'select ', + ['S'] = 's·line ', + [''] = 's·block ', + ['i'] = 'insert ', + ['Rv'] = 'v·replace ', + ['c'] = 'command ', + ['!'] = 'shell ', + ['t'] = 'terminal ' + } + local m = vim.api.nvim_get_mode().mode + if mode_map[m] == nil then return m end + return mode_map[m] +end + +hi("Light", "guibg=#fbf1c7 guifg=#1d2021") +hi("Dark", "guibg=#1d2021 guifg=#fbf1c7") +hi("Gray", "guifg=#fbf1c7 guibg=#665c54") + +local function git() + local branch = io.popen([[git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n']]):read("*a") + return string.len(branch) > 0 and ' '.. branch or '' +end + +local statusline = { + '%#Light# ', + mode():upper() .. ' ', + '%#Dark#', + string.len(git()) > 0 and ' ' .. git() .. ' ' or '', + '%#Gray# ', + '%f ', + '%#Light#', + '%=', + '%#Dark# ', + '%y ', + '%#Light# ', + '%p%% ', + ' ', + '%l/%L ', + ' ', + '%c ' +} +vim.o.statusline = table.concat(statusline) +vim.api.nvim_set_option("termguicolors", true) diff --git a/configs/nvim/init.vim b/configs/nvim/init.vim deleted file mode 100644 index c410fca..0000000 --- a/configs/nvim/init.vim +++ /dev/null @@ -1,129 +0,0 @@ -"SETTINGS -let g:mapleader = "\" -syntax enable -set modifiable -set cursorline -set hidden -set nowrap -set encoding=utf-8 -set pumheight=10 -set fileencoding=utf-8 -set ruler -set cmdheight=2 -set iskeyword+=- -set mouse=a -set splitbelow -set splitright -set t_Co=256 -set conceallevel=0 -set tabstop=4 -set shiftwidth=4 -set smarttab -set expandtab -set smartindent -set autoindent -set number -set relativenumber -set background=dark -syntax sync minlines=100 -set showtabline=2 -set noshowmode -set nobackup -set nowritebackup -set updatetime=300 -set lazyredraw -set timeoutlen=100 -set formatoptions-=cro -set clipboard=unnamedplus -au! BufWritePost $MYVIMRC source % -cmap w!! w !sudo tee % - - -"MAPPINGS -inoremap -nnoremap m h|xnoremap m h|onoremap m h| -nnoremap n j|xnoremap n j|onoremap n j| -nnoremap e k|xnoremap e k|onoremap e k| -nnoremap i l|xnoremap i l|onoremap i l| -nnoremap M H|xnoremap M H|onoremap M H| -nnoremap N J|xnoremap N J|onoremap N J| -nnoremap E K|xnoremap E K|onoremap E K| -nnoremap I L|xnoremap I L|onoremap I L| -nnoremap h i|xnoremap h i|onoremap h i| -nnoremap H I|xnoremap H I|onoremap H I| -nnoremap k n|xnoremap k n|onoremap k n| -nnoremap K N|xnoremap K N|onoremap K N| -nnoremap j m|xnoremap j m|onoremap j m| -nnoremap J M|xnoremap J M|onoremap J M| -nnoremap l e|xnoremap l e|onoremap l e| -nnoremap L E|xnoremap L E|onoremap L E| -nnoremap :w -nnoremap :resize -2 -nnoremap :resize +2 -nnoremap :vertical resize -2 -nnoremap :vertical resize +2 -nnoremap :bnext -nnoremap :bprevious -vnoremap < >gv -nnoremap :bd! -nnoremap :bd# -tnoremap :bd! -nnoremap h|xnoremap h| -nnoremap j|xnoremap j| -nnoremap k|xnoremap k| -nnoremap l|xnoremap l| - -"STATUSLINE -"let right="" -"let left="" -set laststatus=2 -set statusline= -set statusline+=%1* -set statusline+=\ %{ModeBruh()}\ -set statusline+=%2*\%{GitBruh()}\ -set statusline+=%3*\ %f\ -set statusline+=%1* -set statusline+=%= -set statusline+=%3*\ %{strlen(&fenc)?&fenc:'none'}\ -set statusline+=%2*\ %y\ -let bruh="%  " -let bruh1="  " -set statusline+=%1*\ %p%{bruh}%l/%L%{bruh1}%c\ - -hi User1 guibg=#fbf1c7 guifg=#1d2021 -hi User2 guibg=#1d2021 guifg=#fbf1c7 -hi User3 guifg=#fbf1c7 guibg=#665c54 - -function! ModeBruh() - let l:mode=mode() - if l:mode==#"n" - return "NORMAL" - elseif l:mode==?"v" - return "VISUAL" - elseif l:mode==#"i" - return "INSERT" - elseif l:mode==#"R" - return "REPLACE" - elseif l:mode==?"s" - return "SELECT" - elseif l:mode==#"t" - return "TERMINAL" - elseif l:mode==#"c" - return "COMMAND" - elseif l:mode==#"!" - return "SHELL" - endif - -endfunction -function! GitBruh() - let l:branchname = GitBranch() - return strlen(l:branchname) > 0?'  '.l:branchname.'':'' -endfunction - -function! GitBranch() - return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") -endfunction - - -set termguicolors diff --git a/configs/nvim/utils.vim b/configs/nvim/utils.vim deleted file mode 100755 index 80b082e..0000000 --- a/configs/nvim/utils.vim +++ /dev/null @@ -1,19 +0,0 @@ -" I got this part of the config from Michael Lan Source = https://www.youtube.com/watch?v=I4Rz0qoWYBl -function! TermWrapper(command) abort - if !exists('g:split_term_style') | let g:split_term_style = 'vertical' | endif - if g:split_term_style ==# 'vertical' - let buffercmd = 'vnew' - elseif g:split_term_style ==# 'horizontal' - let buffercmd = 'new' - else - echoerr 'ERROR! g:split_term_style is not a valid value (must be ''horizontal'' or ''vertical'' but is currently set to ''' . g:split_term_style . ''')' - throw 'ERROR! g:split_term_style is not a valid value (must be ''horizontal'' or ''vertical'')' - endif - exec buffercmd - exec 'term ' . a:command - exec 'startinsert' -endfunction -command! -nargs=0 CompileAndRun call TermWrapper(printf('g++ -std=c++17 %s && ./a.out', expand('%'))) -autocmd FileType cpp nnoremap :CompileAndRun - -let g:split_term_style = 'vertical' diff --git a/configuration.nix b/configuration.nix deleted file mode 100755 index bd1054e..0000000 --- a/configuration.nix +++ /dev/null @@ -1,15 +0,0 @@ -{lib, config, ...}: -{ - imports = - [ - # - ./marisa/pkgs.nix - ./marisa/networking.nix - ./marisa/stuff.nix - ./marisa/hardware.nix - ./marisa/boot.nix - ./marisa/services.nix - ./configs/nvim.nix - ]; - system.stateVersion = "21.05"; -} diff --git a/flake.lock b/flake.lock index 9f30abe..e19cdec 100644 --- a/flake.lock +++ b/flake.lock @@ -19,6 +19,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1606424373, + "narHash": "sha256-oq8d4//CJOrVj+EcOaSXvMebvuTkmBJuT5tzlfewUnQ=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "99f1c2157fba4bfe6211a321fd0ee43199025dbf", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1600209923, @@ -34,6 +50,21 @@ "type": "github" } }, + "flake-utils_2": { + "locked": { + "lastModified": 1610051610, + "narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -54,6 +85,29 @@ "type": "github" } }, + "neovim-flake": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "contrib", + "lastModified": 1622056438, + "narHash": "sha256-9wQSoVvkUno39cAsqseMkSzIDMQDNZzA5MIYmmr61cw=", + "owner": "neovim", + "repo": "neovim", + "rev": "192f89ea1bdb86e8d12a9940872f92f0fc88b300", + "type": "github" + }, + "original": { + "dir": "contrib", + "owner": "neovim", + "repo": "neovim", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1599148892, @@ -84,6 +138,22 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1621840840, + "narHash": "sha256-o6h6+d5ZwrFmOTe+ma9s1Z9kyHsCW1C84IA8RZ9/fIU=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "ea7d4aa9b8225abd6147339f0d56675d6f1f0fd1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "locked": { "lastModified": 1619994493, @@ -99,12 +169,33 @@ "type": "github" } }, + "nvim": { + "inputs": { + "flake-compat": "flake-compat", + "neovim-flake": "neovim-flake", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1622104855, + "narHash": "sha256-e+8QFAVA/umRZAOOSIj/0b+WmyRhPk7NSu7f5H7rMok=", + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "rev": "823a11a8579d8d63d2eb42b2c577e6396aaf2d70", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "neovim-nightly-overlay", + "type": "github" + } + }, "root": { "inputs": { "agenix": "agenix", "home-manager": "home-manager", "nixpkgs": "nixpkgs_2", "nur": "nur", + "nvim": "nvim", "stable": "stable", "utils": "utils" } diff --git a/flake.nix b/flake.nix index a7d1395..4847590 100644 --- a/flake.nix +++ b/flake.nix @@ -12,14 +12,21 @@ }; agenix.url = github:ryantm/agenix; utils.url = github:numtide/flake-utils; + nvim.url = github:nix-community/neovim-nightly-overlay; }; outputs = inputs@{self, nixpkgs, ... }: inputs.utils.lib.eachDefaultSystem (system: + let + overlays = [ + (import ./overlays/overridesandshit.nix) + (import ./overlays/packages.nix) + ]; + in { packages = import nixpkgs { inherit system; - overlays = self.overlays ++ [ inputs.nur.overlay ]; + overlays = overlays ++ [ inputs.nur.overlay inputs.nvim.overlay ]; config.allowUnfree = true; config.allowBroken = true; }; @@ -88,9 +95,5 @@ ]; }; }; - overlays = [ - (import ./overlays/overridesandshit.nix) - (import ./overlays/packages.nix) - ]; }); } diff --git a/home/natto.nix b/home/natto.nix index f897752..93ec0a1 100644 --- a/home/natto.nix +++ b/home/natto.nix @@ -47,7 +47,6 @@ in pavucontrol anup proxychains - cmake xfce.thunar xfce.xfconf xfce.tumbler @@ -65,6 +64,19 @@ in dunst flameshot youtube-dl + xclip + xorg.xkbcomp + xorg.xmodmap + p7zip + glxinfo + sxiv + vim + w3m + feh + dwm + dmenu + st + neofetch ]; file = { diff --git a/home/secrets/.zshrc.age b/home/secrets/.zshrc.age index 9486543cab95d8e7f47bbac5ad5d003b3f0a93ce..bf3e9f50fac2db26727a32a31e1774013f253ea3 100644 GIT binary patch delta 917 zcmbQmwwZl`PQ9N;VZMJ}Vp&*Ds9%v;dRlQwlCfc_qrOwBrFV!yaAKuzrg>7Xg??V9 zCs$fZa-@+*L6C{NNr+cbUS^)Jxmje6UrA(oQedG^hJ{D2S*e*%XjOQg1(&X!LaJ_h zQEFmwszO~+jI%;qt!}b;i9c6LUa&_{MO0;~d$Ln%N_}`%PF`V zvVnUxm#(g^LS(vMrc<7ONw8OFVrfZ|OR&2~L4j9prAeZtex;F{hev6Yv9?pLVQQK$ zSH0q)C-plf)@<1J@Tt;{9o&sui-Oip{dHjXY@@^qajL`MX16*{aX@M>7_thgdpI%r=)#Fg<0t z=zNhn^OBY;Qd*DZhj3|hhrH$Oj9Bj#d{8LkZ;VagJ0>Z9d5elYHD4x41xc2@%I#Wl zz93FysvF1MSs$+lEjw8+|K7*YyZiZZuFk}K(UY0~n}xS_O=a8qfmKZ4KK&#?raX$%|&qeSDXr+tTFO z^Bn=UXXjrx-@3c6R?x|g^G&hZ`#(#qL+1R}J(Ad4_OWfkp-2DJn#3Uk^x-yNB| delta 762 zcmdnYK8tOFPJN1bQI>nTS3tgLm48H8VTMt9WO|6Jfkld$Ut&Z=fS+GxWR91QV}40q zF;`S>evU_JzE4tdroMk+j)g^(vs1Q7V0y53c|cByi&wsri$!u~dYV&qAeXM4LP(mv zZhBE_VsWa1bE0v1kd8vIeHB-jOJr%DOK@I9m04*(W_?Pc8R%MQ1ie*+wRCu7VS8#4%P+@VAQDLUJo4X^IuCA_vpNV-u zW>Q#XUcI?lRB(~MMQTY!Vuoo{W^hz;RcsfJh@#PFp(K8zpS8HxKx;K3D{)10@*mR>>Swt@D zgl#I|-qN}7-b}uyFLKZK3yHF-?Yq86v@POqcH`*|HNh{lx%ji*923vm9Q~>F(TNlm zZbq(S7o-;Jmwsj`DXhYq%{pz#Kg|S_SFxRbo1So*e!SZ;ZB_ODS6gQuQQIf8;9Cuw zY2sq`IiaI>6SoZPL42v*MByS(nAObQga+!_NillcXF!N=g$v=4&;8AIk9b(x~Z6tal4M=)s+wKdMvyyd#d&% z^VCawJ}p}|vx52IG`DxT3trk+hnUQGQy*e3dtraf$E0t2wfUE6A6$2~^?A!Psm^sN RD>(i3-tJizX)9@D0|52