{ 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 = let flavour = "mocha"; in { enable = true; enableNushellIntegration = true; settings = { # Other config here character = { success_symbol = "[λ::](bold green)"; error_symbol = "[λ::](bold red)"; }; format = "$all"; # Remove this line to disable the default prompt format palette = "catppuccin_${flavour}"; } // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "starship"; rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; # Replace with the latest commit hash sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0="; } + /palettes/${flavour}.toml)); }; #starship = { enable = true; # settings = { # add_newline = true; # character = { # success_symbol = "[λ::](bold green)"; # error_symbol = "[λ::](bold red)"; # }; # }; #}; }; dconf.enable = true; dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; gtk = { enable = true; theme = { name = "Catppuccin-Mocha-Compact-Pink-Dark"; package = pkgs.catppuccin-gtk.override { accents = [ "pink" ]; size = "compact"; tweaks = [ "rimless" ]; variant = "mocha"; }; }; }; #qt = { # enable = true; # platformTheme = "gnome"; # style = "Catppuccin-Mocha-Compact-Pink-Dark"; #}; #systemd.xqtc.sessionVariables = config.home-manager.users.xqtc.home.sessionVariables; programs.nixvim = { enable = true; globals.mapleader = " "; extraConfigLua = builtins.readFile ./config-files/nvim/init.lua; clipboard.providers.wl-copy.enable = true; 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 = { lua-ls.enable = true; clangd.enable = true; 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; folding = true; indent = true; nixvimInjections = true; }; treesitter-refactor = { enable = true; smartRename.enable = true; highlightCurrentScope.enable = true; navigation.enable = true; }; cursorline.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; theme = "startify"; }; 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"; } { mode = "n"; key = "P"; action = "\"+p"; } { mode = [ "n" "v" ]; key = "y"; action = "[[\"+y]]"; } { mode = [ "n" ]; key = "Y"; action = "[[\"+Y]]"; } ]; }; wayland.windowManager.hyprland = { enable = true; package = pkgs.hyprland; xwayland.enable = true; #enableNvidiaPatches = true; extraConfig = builtins.readFile ./config-files/hyprland.conf; }; #home.file."~/.config/hypr/hyprland.conf. home.packages = with pkgs; [ neofetch uwufetch btop iftop bitwarden bitwarden-cli sway-contrib.grimshot #zathura strace ltrace nodejs nerdfonts vivaldi vivaldi-ffmpeg-codecs signal-desktop vesktop discord 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; }