diff --git a/configuration.nix b/configuration.nix index 6786de3..8c0179d 100644 --- a/configuration.nix +++ b/configuration.nix @@ -157,6 +157,7 @@ moonlight-qt qFlipper android-tools + remmina ]; fonts.packages = with pkgs; [ diff --git a/flake.lock b/flake.lock index 5e9d2eb..3b979eb 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,26 @@ { "nodes": { + "devshell": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1728330715, + "narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=", + "owner": "numtide", + "repo": "devshell", + "rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -16,6 +37,41 @@ "type": "github" } }, + "flake-compat_2": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -34,6 +90,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "ghostty": { "inputs": { "flake-compat": "flake-compat", @@ -42,11 +116,11 @@ "zig": "zig" }, "locked": { - "lastModified": 1735597925, - "narHash": "sha256-znyKiXlrkPL+2xQwAR6G4/DKCgsutyIPo+d1dGeh2W4=", + "lastModified": 1735765328, + "narHash": "sha256-f4LI34cXP8nOTi4Va6GPUFaJYf0qGbabk+OeUddsfuk=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "478fe3917c2882a1c321f9d1eec808b71698974d", + "rev": "94599102e9fb8247af08cbbbcb7ee25e3d31e1bd", "type": "github" }, "original": { @@ -55,6 +129,58 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "nixvim", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1734797603, + "narHash": "sha256-ulZN7ps8nBV31SE+dwkDvKIzvN6hroRY8sYOT0w+E28=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "f0f0dc4920a903c3e08f5bdb9246bb572fcae498", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "nixvim", + "git-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -62,11 +188,11 @@ ] }, "locked": { - "lastModified": 1731880681, - "narHash": "sha256-FmYTkIyPBUxSWgA7DPIVTsCCMvSSbs56yOtHpLNSnKg=", + "lastModified": 1735344290, + "narHash": "sha256-oJDtWPH1oJT34RJK1FSWjwX4qcGOBRkcNQPD0EbSfNM=", "owner": "nix-community", "repo": "home-manager", - "rev": "aecd341dfead1c3ef7a3c15468ecd71e8343b7c6", + "rev": "613691f285dad87694c2ba1c9e6298d04736292d", "type": "github" }, "original": { @@ -76,13 +202,83 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735381016, + "narHash": "sha256-CyCZFhMUkuYbSD6bxB/r43EdmDE7hYeZZPTCv0GudO4=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "10e99c43cdf4a0713b4e81d90691d22c6a58bdf2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "ixx": { + "inputs": { + "flake-utils": [ + "nixvim", + "nuschtosSearch", + "flake-utils" + ], + "nixpkgs": [ + "nixvim", + "nuschtosSearch", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1729958008, + "narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=", + "owner": "NuschtOS", + "repo": "ixx", + "rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "ref": "v0.0.6", + "repo": "ixx", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735478292, + "narHash": "sha256-Ys9pSP9ch0SthhpbjnkCSJ9ZLfaNKnt/dcy7swjmS1A=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "71a3a075e3229a7518d76636bb762aef2bcb73ac", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1731755305, - "narHash": "sha256-v5P3dk5JdiT+4x69ZaB18B8+Rcu3TIOrcdG4uEX7WZ8=", + "lastModified": 1735669367, + "narHash": "sha256-tfYRbFhMOnYaM4ippqqid3BaLOXoFNdImrfBfCp4zn0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "057f63b6dc1a2c67301286152eb5af20747a9cb4", + "rev": "edf04b75c13c2ac0e54df5ec5c543e300f76f1c9", "type": "github" }, "original": { @@ -124,11 +320,63 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "devshell": "devshell", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "home-manager": "home-manager_2", + "nix-darwin": "nix-darwin", + "nixpkgs": [ + "nixpkgs" + ], + "nuschtosSearch": "nuschtosSearch", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1735734686, + "narHash": "sha256-VQ/fyItyoffCXR81TXMWzmRDxaeQsSNtg+sp5WsQf+o=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "3399ebfedd741456f45de6148fc36e7fcc74fcfa", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixvim", + "type": "github" + } + }, + "nuschtosSearch": { + "inputs": { + "flake-utils": "flake-utils_2", + "ixx": "ixx", + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733773348, + "narHash": "sha256-Y47y+LesOCkJaLvj+dI/Oa6FAKj/T9sKVKDXLNsViPw=", + "owner": "NuschtOS", + "repo": "search", + "rev": "3051be7f403bff1d1d380e4612f0c70675b44fc9", + "type": "github" + }, + "original": { + "owner": "NuschtOS", + "repo": "search", + "type": "github" + } + }, "root": { "inputs": { "ghostty": "ghostty", "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "nixvim": "nixvim" } }, "systems": { @@ -146,6 +394,42 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1735135567, + "narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "9e09d30a644c57257715902efbb3adc56c79cf28", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, "zig": { "inputs": { "flake-compat": [ diff --git a/flake.nix b/flake.nix index 7538542..0629dbf 100644 --- a/flake.nix +++ b/flake.nix @@ -9,12 +9,17 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + nixvim = { + url = "github:nix-community/nixvim"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + ghostty = { url = "github:ghostty-org/ghostty"; }; }; - outputs = { self, nixpkgs, home-manager, ghostty, ... }@inputs: { + outputs = { self, nixpkgs, home-manager, nixvim, ghostty, ... }@inputs: { nixosConfigurations = { default = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs;}; diff --git a/home-manager/fastfetch-old.nix b/home-manager/fastfetch-old.nix deleted file mode 100644 index 438a7c5..0000000 --- a/home-manager/fastfetch-old.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ - programs = { - fastfetch = { - enable = true; - settings = { - logo = { - source = "/etc/nixos/home-manager/commands/fastfetch/assets/image.png"; - type = "kitty"; - height = 20; - padding = { - top = 2; - left= 3; - }; - }; - display = { - separator = ""; - key = { - width = 15; - }; - }; - modules = [ - { - key = ╭───────────╮; - "type": "custom" - }, - { - // draw borders first to make colors of left and right border consistant - "key": "│ │\u001b[11D\u001b[31m user", - "type": "title", - "format": "{1}" - }, - { - "key": "│ │\u001b[11D\u001b[32m󰇅 hname", - "type": "title", - "format": "{2}" - }, - { - "key": "│ │\u001b[11D\u001b[33m󰅐 uptime", - "type": "uptime" - }, - { - "key": "│ │\u001b[11D\u001b[34m󰟾 distro", - "type": "os" - }, - { - "key": "│ │\u001b[11D\u001b[35m kernel", - "type": "kernel" - }, - { - "key": "│ │\u001b[11D\u001b[36m󰇄 desktop", - "type": "de" - }, - { - "key": "│ │\u001b[11D\u001b[31m term", - "type": "terminal" - }, - { - "key": "│ │\u001b[11D\u001b[32m shell", - "type": "shell" - }, - { - "key": "│ │\u001b[11D\u001b[33m󰍛 battery", - "type": "battery" - }, - { - "key": "│ │\u001b[11D\u001b[34m󰉉 disk", - "type": "disk", - "folders": "/" - }, - { - "key": "│ │\u001b[11D\u001b[35m memory", - "type": "memory" - }, - { - "key": "│ │\u001b[11D\u001b[36m󰩟 network", - "type": "localip", - "format": "{1} ({4})" - }, - { - "key": "├───────────┤", - "type": "custom" - }, - { - "key": "│ │\u001b[11D\u001b[m colors", - "type": "colors", - "symbol": "circle" - }, - { - "key": "╰───────────╯", - "type": "custom" - } - ]; - }; - }; - }; -} diff --git a/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg b/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg new file mode 100644 index 0000000..a4c778c Binary files /dev/null and b/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg differ diff --git a/home-manager/assets/image.png b/home-manager/fastfetch/assets/image.png similarity index 100% rename from home-manager/assets/image.png rename to home-manager/fastfetch/assets/image.png diff --git a/home-manager/fastfetch.nix b/home-manager/fastfetch/fastfetch.nix similarity index 95% rename from home-manager/fastfetch.nix rename to home-manager/fastfetch/fastfetch.nix index 595465d..cdead11 100644 --- a/home-manager/fastfetch.nix +++ b/home-manager/fastfetch/fastfetch.nix @@ -4,7 +4,7 @@ enable = true; settings = { logo = { - source = "/etc/nixos/home-manager/commands/fastfetch/assets/image.png"; + source = "/etc/nixos/home-manager/fastfetch/assets/evangelion-mecha-neon-genesis-desktop-wallpaper-cover.jpg"; type = "kitty"; height = 20; padding = { diff --git a/home-manager/home.nix b/home-manager/home.nix index e045fdd..e6e2155 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,11 +1,12 @@ -{ config, pkgs, ... }: +{ config, pkgs, inputs, ... }: { imports = [ ./cli-tools.nix - ./fastfetch.nix + ./fastfetch/fastfetch.nix ./direnv.nix - ./neovim-nvim + ./nixvim/nixvim.nix + inputs.nixvim.homeManagerModules.nixvim ]; # Home Manager needs a bit of information about you and the paths it should diff --git a/home-manager/neovim-nvim/default.nix b/home-manager/neovim-nvim/default.nix deleted file mode 100644 index b8ee0af..0000000 --- a/home-manager/neovim-nvim/default.nix +++ /dev/null @@ -1,83 +0,0 @@ -{ config, pkgs, ...}: -let - - link = config.lib.file.mkOutOfStoreSymlink; - ccryptor-nvim = pkgs.vimUtils.buildVimPlugin { - name = "ccryptor.nvim"; - src = pkgs.fetchFromGitHub { - owner = "kurotych"; - repo = "ccryptor.nvim"; - rev = "4b2cd7fbf54eb8385d023b7411be4a46ab0eded8"; - hash = "sha256-CUjM8cr+SbgSd+NFbHysxogbq0QPJ/pXdSGo4p5AuHo="; - }; - }; - telescope-ag = pkgs.vimUtils.buildVimPlugin { - name = "telescope-ag"; - src = pkgs.fetchFromGitHub { - owner = "kelly-lin"; - repo = "telescope-ag"; - rev = "7d25064da3c7689461bcfa89ad1f08548415193d"; - hash = "sha256-xOgiiTElHLgx7Gwp6aR0Ipfanq6ZTTgiQv9Zs3LTb1g="; - }; - }; - -in -{ - programs.ripgrep.enable = true; - programs.fd.enable = true; # find replacement; depends on ripgrep and for telescope - programs.fzf.enable = true; - programs.neovim = { - enable = true; - viAlias = true; - vimAlias = true; - vimdiffAlias = true; - -# colorschemes.everforest = { -# enable = true; -# settings = { -# background = "soft"; -# transparent_background = 1; -# }; -# }; - - plugins = with pkgs.vimPlugins; [ - #gruvbox # theme - #tokyonight-nvim - sonokai - vim-nix # nix language - vim-lsp # lsp - telescope-nvim # fuzzy finder - telescope-fzf-native-nvim - # copilot-vim # copilot, no more copilot, bad ai go google 240809 - oil-nvim # OIL file manager, view link for help https://github.com/stevearc/oil.nvim?tab=readme-ov-file - lazygit-nvim # git support - markdown-preview-nvim # markdown preview ... seems to be ok but can't use unless running X11 server - # tmux navigator, depends on tmux plugin in config - vim-tmux-navigator - vim-commentary # comment out lines - vim-windowswap ## ww to swap windows - git-blame-nvim # git blame - limelight-vim # used for highlighting the current line - - leap-nvim # fast, two char nav - - # adding a gitlinker that lets me grab URLS - gitlinker-nvim - - fzf-lua - - # DIY Plugins - # telescope-ag - ccryptor-nvim - - # conflict marker vim - conflict-marker-vim - - toggleterm-nvim - ]; - }; - home.file.".config/nvim/init.lua" = { - enable = true; - source = link ./nvim.lua; - }; -} diff --git a/home-manager/neovim-nvim/nvim.lua b/home-manager/neovim-nvim/nvim.lua deleted file mode 100644 index 4cf1ccf..0000000 --- a/home-manager/neovim-nvim/nvim.lua +++ /dev/null @@ -1,441 +0,0 @@ -local function get_current_user() - local user = os.getenv("USER") or os.getenv("USERNAME") - return user or "Unknown" -end - -local current_user = get_current_user() -require("ccryptor").setup({ - dir_path = '/home/' .. current_user .. '/gitprojects/personal/personal_notes/journal/', -}) - - --------------------------------------------------------------------------------- - --- oil setup -require("oil").setup({ - cleanup_delay_ms = 1000, - view_options = { - show_hidden = true - } -}) -vim.keymap.set("n", "-", "Oil --float", { desc = "Open parent directory" }) - --------------------------------------------------------------------------------- - --- glow setup: https://github.com/ellisonleao/glow.nvim?tab=readme-ov-file#setup ---require('glow').setup({ --- width = 80, --- height = 100, --- width_ratio = 1, -- maximum width of the Glow window compared to the nvim window size (overrides `width`) --- height_ratio = 1, ---}) - --------------------------------------------------------------------------------- - --- TELESCOPE FUNCTIONS --- part of the config --- Set your fixed file path here -local actions = require('telescope.actions') -local action_state = require('telescope.actions.state') --- Set your fixed file path here -local fixed_path = "~/gitprojects/personal/" -function recent_files() - require('telescope.builtin').find_files({ - prompt_title = "Recent Files", - cwd = fixed_path, - find_command = { "sh", "-c", "find " .. fixed_path .. " -type f -not -path '*/\\.git/*' -printf '%T@ %p\n' | sort -n -r | cut -d' ' -f2-" }, - }) -end - -local custom_actions = {} -custom_actions.insert_path = function(prompt_bufnr) - local entry = action_state.get_selected_entry() - actions.close(prompt_bufnr) - vim.api.nvim_put({ entry.value }, '', false, true) -end - --- telescope config -require('telescope').setup({ - defaults = { - scroll_strategy = 'limit', - layout_strategy = 'vertical', - layout_config = { - mirror = true, - prompt_position = 'bottom', - preview_height = 0.65, - width = 0.75, - height = 0.95, - }, - mappings = { - i = { - -- Map Ctrl-i to insert_path in insert mode - [""] = custom_actions.insert_path - }, - n = { - -- Map i to insert_path in normal mode - [""] = custom_actions.insert_path - }, - }, - } -}) -require('telescope').load_extension('fzf') - ------------------------------------------------------------------------------- --- fzf-vim config -local actions = require "fzf-lua.actions" -require'fzf-lua'.setup { - winopts = { - height = 0.95, - preview = { - layout = 'vertical', - }, - }, -} - ------------------------------------------------------------------------------- - --- leap -require('leap').create_default_mappings() - ------------------------------------------------------------------------------- - --- vim keybindings below -vim.cmd [[ -set splitbelow -set splitright - -let mapleader = "\" - -colorscheme sonokai - -set noswapfile - -" turning mouse off so that I can click in and it won't move my cursor -set mouse= -" set clipboard=unnamedplus -set number relativenumber -set scrolloff=5 - -set nowrap -nnoremap z :set wrap! - - - -" toggle side numbers -nnoremap n :call ToggleSidenums() -function! ToggleSidenums() - if &relativenumber - set norelativenumber - else - set relativenumber " number " used to use number when I was hiding these - endif -endfunction - -" toggle listchars -nnoremap N :call ToggleListchars() -function! ToggleListchars() - if &list - set listchars= nolist - else - set list listchars=tab:>␣,trail:~,extends:>,precedes:<,space:· - endif -endfunction - -" rebind J and K to be { and } for jumping whitespace -vnoremap J } -vnoremap K { -nnoremap J } -nnoremap K { - -" copy , pasting is handling by going to insert and hitting "ctrl + shift + v" -vnoremap c "*y -vnoremap c "*y -nnoremap c "*y -vnoremap y "*y - -" pasting just in case -vnoremap v "*p -nnoremap v "*p - - -" cutting -vnoremap x "*d -nnoremap x "*d - -" saving file -nnoremap w :wa -nnoremap s :wa - -" closing -nnoremap C :close -nnoremap q :wq -nnoremap Q :q! - -" copilot -let g:copilot_filetypes = { - \ '*': v:true, - \ } - -" tabs and buffers -" tab switching using ctrl + tab -nnoremap k :tabprevious -nnoremap j :tabnext -" tab with just hold -nnoremap :tabprevious -nnoremap <>->> :tabnext - -" vim-windowswap -let g:windowswap_map_keys = 0 -nnoremap WW :call WindowSwap#EasyWindowSwap() - - -" vim markdown renderer -" let g:vim_markdown_folding_disabled = 1 -" let g:vim_markdown_toc_autofit = 1 -" let g:vim_markdown_follow_anchor = 1 -" let g:vim_markdown_no_extensions_in_markdown = 1 -" let g:vim_markdown_strikethrough = 1 -" let g:vim_markdown_autowrite = 1 - -" markdown-renderer -" use a custom port to start server or empty for random -let g:mkdp_open_to_the_world = 1 -let g:mkdp_port = '3010' -let g:mkdp_open_ip = $MARKDOWN_IP -let g:mkdp_echo_preview_url = 1 -let g:mkdp_browser = 'none' -nnoremap m :MarkdownPreviewToggle - -nnoremap , :tabprevious -nnoremap . :tabnext - -" rebind :bprev and :bnext -nnoremap J :bprev -nnoremap K :bnext - -" copilot remap autocomplete to ctrl + l when in insert mode -imap