diff --git a/common/packages.nix b/common/packages.nix index 9c35961..e73131c 100644 --- a/common/packages.nix +++ b/common/packages.nix @@ -30,6 +30,7 @@ jq lm_sensors meson + mosh msmtp nano neovim @@ -40,6 +41,7 @@ ntfs3g ntfsprogs openhantek6022 + optipng pax-utils pciutils pstree @@ -48,6 +50,7 @@ ripgrep rsync silver-searcher + socat sshfs strace swaylock diff --git a/flake.lock b/flake.lock index bea8292..75cc969 100644 --- a/flake.lock +++ b/flake.lock @@ -185,6 +185,26 @@ "type": "github" } }, + "nvim": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1698363600, + "narHash": "sha256-r71uS/uw3I9xJAnmlgaN0TC9aC/1m2L4iNhKjqBzAtQ=", + "ref": "refs/heads/master", + "rev": "9652f4cb75d799ee5a2511883d2fda60bea00141", + "revCount": 19, + "type": "git", + "url": "https://git.project-cloud.net/asmir/nvim_flake" + }, + "original": { + "type": "git", + "url": "https://git.project-cloud.net/asmir/nvim_flake" + } + }, "peerix": { "inputs": { "flake-compat": "flake-compat_2", @@ -212,9 +232,11 @@ "home-manager": "home-manager", "nix-xilinx": "nix-xilinx", "nixpkgs": "nixpkgs", + "nvim": "nvim", "peerix": "peerix", "simple-nixos-mailserver": "simple-nixos-mailserver", "sops-nix": "sops-nix", + "swaysw": "swaysw", "zremap": "zremap" } }, @@ -264,6 +286,26 @@ "type": "github" } }, + "swaysw": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1698401726, + "narHash": "sha256-kGMqxaNaNSbKJS/55KqqMvLj1xOBc8zCizs6I3xiCo0=", + "ref": "refs/heads/master", + "rev": "1e49032fbfec10b51c9f627aab286290ac15977c", + "revCount": 3, + "type": "git", + "url": "https://git.project-cloud.net/asmir/swaysw" + }, + "original": { + "type": "git", + "url": "https://git.project-cloud.net/asmir/swaysw" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index 1f1e090..f83dc1c 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,16 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + swaysw = { + url = "git+https://git.project-cloud.net/asmir/swaysw"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nvim = { + url = "git+https://git.project-cloud.net/asmir/nvim_flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; @@ -39,9 +49,11 @@ home-manager, nixpkgs, nix-xilinx, + nvim, peerix, simple-nixos-mailserver, sops-nix, + swaysw, zremap, ... }: let @@ -61,6 +73,7 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.akill = import ./home/home.nix; + home-manager.extraSpecialArgs = {inherit inputs;}; } peerix.nixosModules.peerix { diff --git a/home/home.nix b/home/home.nix index c99c647..aa0bbcb 100644 --- a/home/home.nix +++ b/home/home.nix @@ -2,11 +2,10 @@ pkgs, config, lib, + inputs, ... }: -with lib; let - vimrc = import ./vimrc.nix {inherit pkgs vimUtils fetchFromGitHub;}; -in { +with lib; { imports = [./zsh.nix ./i3status-rust.nix ./sway.nix ./i3.nix ./home_packages.nix ./whatsapp-for-linux.nix]; home.stateVersion = "22.11"; @@ -171,15 +170,6 @@ in { }; }; - neovim = { - enable = true; - vimAlias = true; - vimdiffAlias = true; - plugins = vimrc.plugins; - extraConfig = ""; - extraPackages = vimrc.extraPackages; - }; - obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [obs-vkcapture input-overlay obs-multi-rtmp obs-pipewire-audio-capture wlrobs obs-vaapi]; @@ -190,11 +180,6 @@ in { zsh.enable = true; }; - xdg.configFile."nvim/init.lua" = { - source = ./vimrc.lua; - recursive = true; - }; - services = { lorri.enable = false; mako.enable = true; diff --git a/home/home_packages.nix b/home/home_packages.nix index ff6607d..e830493 100644 --- a/home/home_packages.nix +++ b/home/home_packages.nix @@ -1,83 +1,105 @@ { config, pkgs, + inputs, ... }: { - home.packages = with pkgs; [ - alejandra - appimage-run - arp-scan - birdtray - blackmagic - btop - cached-nix-shell - caddy - cargo - ccls - cemu - cmake - compsize - cura - deluge - ffmpeg-full - firefox - gcc - gdb - glab - glaxnimate - gnumake - grim - hyperfine - imagemagick - imv - jellyfin-media-player - kdenlive - kicad - kodi-wayland - libnotify - libreoffice - libva-utils - mediainfo - ncdu - neovide - ngspice - nix-init - nodePackages.peerflix - pandoc - pass - patchelf - pavucontrol - pirate-get - powertop - pulsemixer - python3 - python3Packages.west - remmina - river - rtorrent - rustc - screen - seer - sioyek - skypeforlinux - slurp - texlive.combined.scheme-full - thunderbird - upx - waybar - wdisplays - whatsapp-for-linux - wireshark - wl-clipboard - wlr-randr - wofi - x2goclient - yewtube - yt-dlp - zathura - zeal-qt6 - zig - zls - openocd - ]; + home.packages = with pkgs; + [ + alejandra + appimage-run + arp-scan + birdtray + blackmagic + btop + cached-nix-shell + caddy + cargo + ccls + cemu + cmake + compsize + cura + deluge + ffmpeg-full + firefox + gcc + gdb + glab + glaxnimate + gnumake + go + grim + hyperfine + imagemagick + imv + jellyfin-media-player + kdenlive + kicad + kodi-wayland + libnotify + libreoffice + libva-utils + mediainfo + ncdu + neovide + ngspice + nix-init + nodePackages.peerflix + openocd + pandoc + pass + patchelf + pavucontrol + pirate-get + powertop + pulsemixer + python3 + python3Packages.west + remmina + river + rtorrent + rustc + screen + seer + sioyek + skypeforlinux + slurp + texlive.combined.scheme-full + thunderbird + upx + waybar + wdisplays + whatsapp-for-linux + wireshark + wl-clipboard + wlr-randr + wofi + x2goclient + yewtube + yt-dlp + zathura + zeal-qt6 + zig + zls + + /* install here until nvim flake is fixed */ + alejandra + ccls + gopls + luaformatter + nixd + pyright + rust-analyzer + sumneko-lua-language-server + svls + texlab + tree-sitter + verible + zls + ] + ++ [ + inputs.swaysw.packages.x86_64-linux.swaysw + inputs.nvim.packages.x86_64-linux.nvim + ]; } diff --git a/home/sway.nix b/home/sway.nix index 0603e5e..3c9dda4 100644 --- a/home/sway.nix +++ b/home/sway.nix @@ -33,7 +33,7 @@ modifier = "Mod4"; output = { eDP-1 = { - bg = "~/pic/weird_dragon.jpg stretch"; + bg = "~/pic/wallpaper stretch"; /* scale = "1.4"; */ @@ -100,7 +100,7 @@ "Alt+j" = "focus down"; "Alt+k" = "focus up"; "Alt+l" = "focus right"; - "Alt+slash" = "exec lckdo /tmp/.sws_cli_lock footclient -a sws_cli -- sws_cli.sh"; + "Alt+slash" = "exec swaysw"; "Alt+Escape" = "workspace back_and_forth"; "Alt+f" = "fullscreen enable"; diff --git a/home/vimrc.lua b/home/vimrc.lua deleted file mode 100644 index cf973c4..0000000 --- a/home/vimrc.lua +++ /dev/null @@ -1,233 +0,0 @@ --- Basic settings -vim.g.loaded_matchparen = true -vim.g.netrw_liststyle = 3 -vim.wo.number = true - -local glob_opts = { - background = 'dark', - belloff = 'all', - breakindent = true, - hlsearch = false, - laststatus = 0, - lazyredraw = true, - showcmd = true, - synmaxcol = 800, - syntax = 'on', - termguicolors = true, - titleold = vim.fn.getcwd(), - title = true, - wildmenu = true, - wrap = true, -} - -for option, value in pairs(glob_opts) do - vim.go[option] = value -end - - -vim.cmd([[colorscheme gruvbox]]) - -require 'nvim-treesitter.configs'.setup { - highlight = { enable = true, disable = {} }, - indent = { enable = false, disable = {} }, - rainbow = { - enable = true, - extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean - max_file_lines = 1000, -- Do not enable for files with more than 1000 lines, int - colors = { - '#ff0000', '#ffa500', '#ffff00', '#008000', '#0051a0', '#8003f2' - } -- table of hex strings - } -} - --- Mappings. --- See `:help vim.diagnostic.*` for documentation on any of the below functions -local opts = { noremap = true, silent = true } -vim.api.nvim_set_keymap('n', 'e', - 'lua vim.diagnostic.open_float()', opts) -vim.api.nvim_set_keymap('n', 'q', - 'lua vim.diagnostic.setloclist()', opts) -vim.api.nvim_set_keymap('n', 'Q', 'nohl', opts) -vim.api.nvim_set_keymap('n', 'j', 'gj', opts) -vim.api.nvim_set_keymap('n', 'k', 'gk', opts) -vim.api.nvim_set_keymap('v', 'j', 'gj', opts) -vim.api.nvim_set_keymap('v', 'k', 'gk', opts) -vim.api.nvim_set_keymap('n', '', '', opts) -vim.api.nvim_set_keymap('n', '', '', opts) -vim.api.nvim_set_keymap('n', '', '', opts) -vim.api.nvim_set_keymap('n', '', '', opts) -vim.api.nvim_set_keymap('n', "", "lua require('fzf-lua').files()", opts) - -vim.api.nvim_create_autocmd('LspAttach', { - desc = 'LSP actions', - callback = function() - local bufmap = function(mode, lhs, rhs) - vim.keymap.set(mode, lhs, rhs, { buffer = true }) - end - - -- Displays hover information about the symbol under the cursor - bufmap('n', 'K', 'lua vim.lsp.buf.hover()') - - -- Jump to the definition - bufmap('n', 'gd', 'lua vim.lsp.buf.definition()') - - -- Jump to declaration - bufmap('n', 'gD', 'lua vim.lsp.buf.declaration()') - - -- Lists all the implementations for the symbol under the cursor - bufmap('n', 'gi', 'lua vim.lsp.buf.implementation()') - - -- Jumps to the definition of the type symbol - bufmap('n', 'go', 'lua vim.lsp.buf.type_definition()') - - -- Lists all the references - bufmap('n', 'gr', 'lua vim.lsp.buf.references()') - - -- Displays a function's signature information - bufmap('n', '', 'lua vim.lsp.buf.signature_help()') - - -- Renames all references to the symbol under the cursor - bufmap('n', 'rn', 'lua vim.lsp.buf.rename()') - - -- Selects a code action available at the current cursor position - bufmap('n', '', 'lua vim.lsp.buf.code_action()') - bufmap('x', '', 'lua vim.lsp.buf.range_code_action()') - - -- Show diagnostics in a floating window - bufmap('n', 'gl', 'lua vim.diagnostic.open_float()') - - -- Move to the previous diagnostic - bufmap('n', '[d', 'lua vim.diagnostic.goto_prev()') - - -- Move to the next diagnostic - bufmap('n', ']d', 'lua vim.diagnostic.goto_next()') - - -- Format current buffer - bufmap('n', 'f', function() vim.lsp.buf.format { async = true } end) - end -}) - -vim.diagnostic.config({ virtual_text = false}) -- Turn off inline diagnostics - --- Show all diagnostics on current line in floating window -vim.api.nvim_set_keymap( 'n', 'd', ':lua vim.diagnostic.open_float()', opts) - --- Go to next diagnostic (if there are multiple on the same line, only shows --- one at a time in the floating window) -vim.api.nvim_set_keymap( 'n', 'n', ':lua vim.diagnostic.goto_next()', opts) - --- Go to prev diagnostic (if there are multiple on the same line, only shows --- one at a time in the floating window) -vim.api.nvim_set_keymap( 'n', 'p', ':lua vim.diagnostic.goto_prev()', opts) - --- Use a loop to conveniently call 'setup' on multiple servers and --- map buffer local keybindings when the language server attaches -local cmp = require 'cmp' -cmp.setup({ - snippet = { - expand = function(args) - vim.fn["UltiSnips#Anon"](args.body) - end, - }, - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'buffer' }, - { name = 'path' }, - { name = 'ultisnips' }, - }), - mapping = { - [""] = cmp.mapping({ - i = function(fallback) - if cmp.visible() then - cmp.select_next_item({ behavior = cmp.SelectBehavior.Insert }) - else - fallback() - end - end, - }), - [""] = cmp.mapping({ - i = function(fallback) - if cmp.visible() then - cmp.select_prev_item({ behavior = cmp.SelectBehavimr.Insert }) - else - fallback() - end - end, - }), - [''] = cmp.mapping(cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }), { 'i' }), - [''] = cmp.mapping(cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }), { 'i' }), - [''] = cmp.mapping({ - i = function(fallback) - if cmp.visible() then - cmp.select_next_item({ behavior = cmp.SelectBehavior.Select }) - else - fallback() - end - end - }), - [''] = cmp.mapping({ - i = function(fallback) - if cmp.visible() then - cmp.select_prev_item({ behavior = cmp.SelectBehavior.Select }) - else - fallback() - end - end - }), - [''] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), - [''] = cmp.mapping({ i = cmp.mapping.close(), c = cmp.mapping.close() }), - [''] = cmp.mapping({ - i = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }), - }), - } -}) - -local servers = { 'pyright', 'rust_analyzer', 'ccls', 'nixd', 'texlab', 'zls' } -local capabilities = require('cmp_nvim_lsp').default_capabilities() -for _, lsp in pairs(servers) do - require('lspconfig')[lsp].setup { - capabilities = capabilities - } -end - -require('lspconfig').lua_ls.setup({ - capabilities = capabilities, - single_file_support = true, - settings = { - Lua = { - diagnostics = { - globals = { 'vim' }, - }, - runtime = { - version = 'LuaJIT', - path = vim.split(package.path, ';'), - }, - workspace = { - library = { - [vim.fn.expand('$VIMRUNTIME/lua')] = true, - [vim.fn.expand('$VIMRUNTIME/lua/vim/lsp')] = true, - }, - }, - telemetry = { - enable = false, - }, - }, - }, -}) - -require('lspconfig').verible.setup({ - capabilities = capabilities, - root_dir = function() return vim.loop.cwd() end -}) - -if vim.fn.exists('+undofile') ~= 0 then - local undo_dir = vim.env.HOME .. '/.config/nvim/undo' - if vim.fn.isdirectory(undo_dir) == 0 then vim.fn.mkdir(undo_dir, 'p') end - vim.o.undodir = undo_dir - vim.o.undofile = true -end - -vim.cmd([[syntax sync minlines=100]]) -vim.cmd([[syntax sync maxlines=140]]) diff --git a/home/vimrc.nix b/home/vimrc.nix deleted file mode 100644 index 6afbacc..0000000 --- a/home/vimrc.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ - pkgs, - vimUtils, - fetchFromGitHub, -}: { - extraPackages = with pkgs; [ - ccls - luaformatter - nixd - pyright - rust-analyzer - sumneko-lua-language-server - svls - texlab - verible - zls - ]; - - plugins = with pkgs.vimPlugins; [ - (nvim-treesitter.withPlugins (parsers: [ - parsers.c - parsers.cpp - parsers.json - parsers.latex - parsers.lua - parsers.nix - parsers.python - parsers.query - parsers.rust - parsers.verilog - parsers.vimdoc - parsers.zig - ])) - cmp-buffer - cmp-cmdline - cmp-nvim-lsp - cmp-nvim-ultisnips - cmp-path - colorizer - fugitive - fzf-lua - gruvbox - nvim-cmp - nvim-lspconfig - nvim-ts-rainbow - repeat - targets-vim - UltiSnips - vim-addon-nix - vim-signify - vim-slime - vim-snippets - zig-vim - ]; -} diff --git a/magpie/configuration.nix b/magpie/configuration.nix index 17de10a..f2b74d2 100644 --- a/magpie/configuration.nix +++ b/magpie/configuration.nix @@ -117,6 +117,14 @@ "OC\\Preview\\XBitmap" ]; }; + phpOptions = + config.services.nextcloud.phpOptions.default + // { + "opcache.jit" = "tracing"; + "opcache.jit_buffer_size" = "100M"; + # recommended by nextcloud admin overview + "opcache.interned_strings_buffer" = "16"; + }; }; services.nginx = {