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 9486543..bf3e9f5 100644 Binary files a/home/secrets/.zshrc.age and b/home/secrets/.zshrc.age differ diff --git a/home/stuff/programs.nix b/home/stuff/programs.nix index 48221c0..8d6e462 100644 --- a/home/stuff/programs.nix +++ b/home/stuff/programs.nix @@ -1,7 +1,6 @@ { pkgs, config, ...}: { imports = [ - ./programs/nvim.nix ./programs/ncmpcpp.nix ./programs/emacs.nix ]; diff --git a/home/stuff/programs/emacs.nix b/home/stuff/programs/emacs.nix index 6bc81fc..6795a6f 100644 --- a/home/stuff/programs/emacs.nix +++ b/home/stuff/programs/emacs.nix @@ -1,5 +1,6 @@ { pkgs, config, ... }: { + #i dont really use emacs but eh programs.emacs = { enable = true; extraPackages = epkgs: with epkgs; [ diff --git a/home/stuff/services.nix b/home/stuff/services.nix index a3e7c90..27ff85b 100644 --- a/home/stuff/services.nix +++ b/home/stuff/services.nix @@ -9,10 +9,10 @@ in extraOptions = '' shadow = true; - shadow-radius = 7; - shadow-offset-x = -7; - shadow-offset-y = -7; - blurExclude = [ "class_g = 'dwm'" ]; + shadow-radius = 20; + shadow-offset-x = -20; + shadow-offset-y = -20; + blurExclude = [ "class_g = 'dwm'" ] inactive-opacity = 0.92; active-opacity = 0.97; diff --git a/modules/pipewire.nix b/modules/pipewire.nix deleted file mode 100644 index d109866..0000000 --- a/modules/pipewire.nix +++ /dev/null @@ -1,33 +0,0 @@ -{lib, config, ... }: - -{ - services.pipewire = { - enable = true; - alsa = { - enable = true; - support32Bit = true; - }; - pulse = { - enable = true; - }; - config.pipewire = { - context.properties = { - default.clock.min-quantum = 8; - }; - }; - config.pipewire-pulse = { - context.modules = { - pulse.min.req = "4/48000"; - pulse.min.quantum = "4/24000"; - }; - stream.properties = { - node.latency = "4/24000"; - }; - }; - }; - sound.enable = true; -# hardware = { -# pulseaudio.enable = true; -# pulseaudio.support32Bit = true; -# }; -} diff --git a/overlays/customscripts/src/agecrypt b/overlays/customscripts/src/agecrypt index 620f2a2..fef292c 100644 --- a/overlays/customscripts/src/agecrypt +++ b/overlays/customscripts/src/agecrypt @@ -10,4 +10,10 @@ else echo "bruh" exit 1 fi -rage -o "$TARGET" -r "$(cat ~/.ssh/*.pub)" "$1" +keys="" +for x in ~/.ssh/*.pub +do + keys= "$keys -r $(cat 'x')" +done +echo "Encrypting with \n'$keys'" +rage -o "$TARGET" "$keys" "$1" diff --git a/overlays/overridesandshit.nix b/overlays/overridesandshit.nix index 4a4b655..102f496 100644 --- a/overlays/overridesandshit.nix +++ b/overlays/overridesandshit.nix @@ -45,4 +45,7 @@ final: prev: { fetchSubmodules = true; }; }); + discord = prev.discord.overrideAttrs (_ : { + src = builtins.fetchTarball { url = "https://discord.com/api/download/stable?platform=linux&format=tar.gz"; sha256="1ahj4bhdfd58jcqh54qcgafljqxl1747fqqwxhknqlasa83li75n";}; + }); } diff --git a/overlays/suckless/st.patch b/overlays/suckless/st.patch index a57f8a0..8b023d6 100755 --- a/overlays/suckless/st.patch +++ b/overlays/suckless/st.patch @@ -8,9 +8,9 @@ diff --color -u a/config.def.h b/config.def.h - * font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html */ -static char *font = "Liberation Mono:pixelsize=12:antialias=true:autohint=true"; -+static char *font = "Fira Mono:style=Regular:pixelsize=16"; -+static char *font2[] = { "Font Awesome 5 Free Solid:pixelsize=15", -+ "Font Awesome 5 Brands:pixelsize=15" }; ++static char *font = "Fira Mono:style=Regular:pixelsize=20"; ++static char *font2[] = { "Font Awesome 5 Free Solid:pixelsize=18", ++ "Font Awesome 5 Brands:pixelsize=18" }; static int borderpx = 2; /* diff --git a/satori.nix b/satori.nix index 86d40e5..d116b5c 100644 --- a/satori.nix +++ b/satori.nix @@ -1,5 +1,4 @@ { lib, config, ...}: - { imports = [ @@ -9,9 +8,10 @@ ./satori/networking.nix ./satori/boot.nix ./satori/services.nix - ./modules/nvidia-offload.nix - ./modules/pipewire.nix - ./modules/xorg.nix + ./common/nvidia-offload.nix + ./common/pipewire.nix + ./common/xorg.nix + ./configs/nvim.nix ]; system.stateVersion = "20.09"; } diff --git a/satori/boot.nix b/satori/boot.nix index d22ee99..9500a97 100644 --- a/satori/boot.nix +++ b/satori/boot.nix @@ -24,7 +24,7 @@ useOSProber = true; efiSupport = true; device = "nodev"; - splashImage = ../modules/cirno.png; + splashImage = ./cirno.png; splashMode = "stretch"; configurationName = "nixbruh"; }; diff --git a/modules/cirno.png b/satori/cirno.png similarity index 100% rename from modules/cirno.png rename to satori/cirno.png diff --git a/satori/pkgs.nix b/satori/pkgs.nix index 0f130e4..0f72be1 100644 --- a/satori/pkgs.nix +++ b/satori/pkgs.nix @@ -2,34 +2,24 @@ { environment.systemPackages = with pkgs; [ - xclip - xorg.xkbcomp - xorg.xmodmap - p7zip - git - glxinfo - sxiv - vim - wineWowPackages.staging - neofetch - w3m + bc gnumake pciutils - jdk + git ntfs3g python3 htop nodejs + wineWowPackages.staging wget ripgrep - patchelf - feh - dwm - dmenu - st kbd cachix + gcc + rustc + jdk ]; + programs = { steam.enable = true; gnupg = { @@ -41,7 +31,7 @@ }; zsh = { enable = true; - promptInit = "PROMPT='%F{cyan}%~ %F{blue}>%f '\nRPROMPT='%F{cyan}%n%f@%F{red}%m'"; + promptInit = "PROMPT='%B%F{cyan}%~ %F{blue}〉%f%b'\nRPROMPT='%B%F{cyan}%n%f@%F{red}%m%b'"; histSize = 12000; enableCompletion = true; syntaxHighlighting.enable = true; diff --git a/satori/services.nix b/satori/services.nix index dfbc963..e916a9f 100644 --- a/satori/services.nix +++ b/satori/services.nix @@ -21,7 +21,6 @@ dataDir = "/var/db"; }; sshd.enable = true; - /* vault = { enable = true; storageBackend = "mysql"; @@ -33,6 +32,7 @@ logmein-hamachi.wantedBy = lib.mkForce []; sshd.wantedBy = lib.mkForce []; mysql.wantedBy = lib.mkForce []; + #printing.wantedBy = lib.mkForce []; #vault.wantedBy = lib.mkForce []; }; } diff --git a/satori/stuff.nix b/satori/stuff.nix index 116845d..4b7d159 100644 --- a/satori/stuff.nix +++ b/satori/stuff.nix @@ -4,7 +4,6 @@ environment = { sessionVariables = { QT_X11_NO_MITSHM="1"; - EDITOR = "nvim"; QT_QPA_PLATFORMTHEME = "gtk3"; }; };