{ config, pkgs, lib, ... }: { #imports = [ # inputs.nixvim.homeManagerModules.nixvim #]; home.username = "xqtc"; home.homeDirectory = "/home/xqtc"; programs.git = { enable = true; userName = "xqtc161"; userEmail = "xqtc@tutanota.com"; }; programs.wezterm = { enable = true; extraConfig = builtins.readFile ./config-files/wezterm.lua; }; #programs.dconf.enable = true; #programs.easyeffects.enable = true; #services.easyeffects.enable = true; programs = { atuin = { enable = true; enableNushellIntegration = true; }; nushell = { enable = true; # The config.nu can be anywhere you want if you like to edit your Nushell with Nu extraConfig = builtins.readFile ./config-files/config.nu; }; carapace.enable = true; carapace.enableNushellIntegration = true; starship = { enable = true; settings = { add_newline = true; character = { success_symbol = "[λ::](bold green)"; error_symbol = "[λ::](bold red)"; }; }; }; }; programs.nixvim = { enable = true; globals.mapleader = " "; extraConfigLua = builtins.readFile ./config-files/nvim/init.lua; options = { number = true; # Show line numbers relativenumber = true; # Show relative line numbers shiftwidth = 2; # Tab width should be 2 }; colorschemes.catppuccin.enable = true; plugins = { lualine.enable = true; lsp-format = { enable = true; }; lsp = { enable = true; servers = { svelte.enable = true; tsserver.enable = true; eslint.enable = true; rust-analyzer = { enable = true; installLanguageServer = false; installCargo = false; installRustc = false; }; nil_ls.enable = true; }; }; gitsigns.enable = true; fugitive.enable = true; treesitter.enable = true; #nvim-cmp = { # enable = true; # sources = [ # {name = "nvim_lsp";} # {name = "path";} # {name = "buffer";} # ]; #}; nvim-cmp = { enable = true; autoEnableSources = true; sources = [ {name = "nvim_lsp";} {name = "path";} {name = "buffer";} {name = "luasnip";} ]; snippet.expand = "luasnip"; mapping = { "" = "cmp.mapping.confirm({ select = true })"; "" = { action = '' function(fallback) local luasnip = require 'luasnip' if cmp.visible() then cmp.select_next_item() elseif luasnip.expandable() then luasnip.expand() elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump() else fallback() end end ''; modes = [ "i" "s" ]; }; }; }; telescope.enable = true; telescope.extensions = { file_browser.enable = true; }; which-key.enable = true; cmp-nvim-lsp.enable = true; cmp-nvim-lua.enable = true; noice.enable = true; notify.enable = true; luasnip.enable = true; neo-tree.enable = true; presence-nvim.enable = true; crates-nvim.enable = true; fidget.enable = true; alpha = { enable = true; }; bufferline.enable = true; }; keymaps = [ { mode = "n"; key = "ff"; options.silent = true; action = "Telescope file_browser"; } { mode = "n"; key = "bb"; options.silent = true; action = "Telescope buffers"; } { mode = "n"; key = "Gp"; action = "Git pull"; } { mode = "n"; key = "GP"; action = "Git push"; } { mode = "n"; key = "Gc"; action = "Git commit"; } { mode = "n"; key = "Ga"; action = "Git add ."; } { mode = "n"; key = "Gd"; action = "Git diff"; } { mode = "n"; key = "nt"; action = "Neotree toggle left"; } ]; }; #wayland.windowManager.hyprland = { # enable = true; # package = pkgs.hyprland; # xwayland.enable = true; # enableNvidiaPatches = true; #}; #home.file."~/.config/hypr/hyprland.conf. home.packages = with pkgs; [ neofetch btop iftop strace ltrace nodejs nerdfonts vivaldi vivaldi-ffmpeg-codecs signal-desktop vesktop telegram-desktop webex #schildichat-desktop qbittorrent neovide jetbrains.rust-rover yubioath-flutter steam protonup-qt spotify sayonara ]; home.stateVersion = "23.11"; programs.home-manager.enable = true; }