From 5dee3d6dc8235ae47c4aebcf8724cfb126d8558a Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Fri, 11 Sep 2026 22:33:46 +0200 Subject: [PATCH 1/7] Finally putting it under source control --- flake.lock | 87 +++++++++++++++++++++++++++++++++++ flake.nix | 36 +++++++++++++++ home.nix | 117 +++++++++++++++++++++++++++++++++++++++++++++++ nvim/config.lua | 38 +++++++++++++++ nvim/plugins.lua | 56 +++++++++++++++++++++++ 5 files changed, 334 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home.nix create mode 100644 nvim/config.lua create mode 100644 nvim/plugins.lua diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f11c95a --- /dev/null +++ b/flake.lock @@ -0,0 +1,87 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1784725727, + "narHash": "sha256-J5+C9wsO0lhDyUalQzfplDbRjyHDYeEH5+9sdyXtwa8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "041a999e8c1c5b731913855909e68d30ca69b8e0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nix4nvchad": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nvchad-starter": "nvchad-starter" + }, + "locked": { + "lastModified": 1788867904, + "narHash": "sha256-aKp6ldvm8HWJ+X0AZjiY4dHbcpI9Ir8RvCOyLoXoMrs=", + "owner": "nix-community", + "repo": "nix4nvchad", + "rev": "7c24477da13e2b14a4732c768c390dcde4ad21d5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix4nvchad", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1785542685, + "narHash": "sha256-sjfvXMbG5pCFgpvw2OZAFcZiTvrppCWvnB6cuGrSY08=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f8e81fc7eb063db454f563cdd596fb96a5ad1497", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nvchad-starter": { + "flake": false, + "locked": { + "lastModified": 1753939018, + "narHash": "sha256-xdLr6tlU9uA+wu0pqha2br0fdVm+1MjgjbB5awz9ICU=", + "owner": "NvChad", + "repo": "starter", + "rev": "e3572e1f5e1c297212c3deeb17b7863139ce663e", + "type": "github" + }, + "original": { + "owner": "NvChad", + "ref": "main", + "repo": "starter", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nix4nvchad": "nix4nvchad", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..a2f6d85 --- /dev/null +++ b/flake.nix @@ -0,0 +1,36 @@ +{ + description = "Home Manager configuration of ivan"; + + inputs = { +# Specify the source of Home Manager and Nixpkgs. + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nix4nvchad = { + url = "github:nix-community/nix4nvchad"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + { self, nixpkgs, home-manager, nix4nvchad, ... }@inputs: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { system = "x86_64-linux"; config = { allowUnfree = true; }; }; + in + { + homeConfigurations."ivan" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + +# Specify your home configuration modules here, for example, +# the path to your home.nix. + modules = [ ./home.nix ]; + + extraSpecialArgs = { + inherit inputs; + }; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..f3cee3b --- /dev/null +++ b/home.nix @@ -0,0 +1,117 @@ +{ config, pkgs, lib, inputs, ... }: + +{ + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "ivan"; + home.homeDirectory = "/home/ivan"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "26.05"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = [ + pkgs.obsidian + pkgs.kitty + pkgs.git + pkgs.darktable + pkgs.gparted + pkgs.telegram-desktop + pkgs.keepassxc + pkgs.libreoffice + pkgs.ungoogled-chromium + pkgs.difftastic + pkgs.uv + pkgs.lazygit + pkgs.zoxide + pkgs.qmk + pkgs.dos2unix + pkgs.gnumake + pkgs.ripgrep + pkgs.github-copilot-cli + pkgs.nerd-fonts.iosevka-term + pkgs.fzf + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. These will be explicitly sourced when using a + # shell provided by Home Manager. If you don't want to manage your shell + # through Home Manager then you have to manually source 'hm-session-vars.sh' + # located at either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/ivan/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + EDITOR = "nvim"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + programs.fish = { + enable = true; + shellInitLast = '' + zoxide init fish | source + ''; + }; + + fonts.fontconfig.enable = true; + + imports = [ inputs.nix4nvchad.homeManagerModules.default ]; + programs.nvchad = { + enable = true; + extraPackages = with pkgs; [ + ripgrep + lua-language-server + nil + ]; + extraPlugins = builtins.readFile ./nvim/plugins.lua; + extraConfig = builtins.readFile ./nvim/config.lua; + # You can configure extra options here (see the Configuration section) + }; +} diff --git a/nvim/config.lua b/nvim/config.lua new file mode 100644 index 0000000..93efdac --- /dev/null +++ b/nvim/config.lua @@ -0,0 +1,38 @@ +vim.opt.exrc = true + +vim.opt.relativenumber = true + +require'nvim-treesitter.configs'.setup { + -- A directory to install the parsers into. + -- If this is excluded or nil parsers are installed + -- to either the package dir, or the "site" dir. + -- If a custom path is used (not nil) it must be added to the runtimepath. + parser_install_dir = vim.fn.stdpath "data" .. "site", + + -- A list of parser names, or "all" + ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline", "python", "nix" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + auto_install = true, + + -- List of parsers to ignore installing (for "all") + -- ignore_install = { "javascript" }, + + highlight = { + -- `false` will disable the whole extension + enable = true, + + -- list of language that will be disabled + -- disable = { "c", "rust" }, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} +vim.opt.runtimepath:append(vim.fn.stdpath "data" .. "site") diff --git a/nvim/plugins.lua b/nvim/plugins.lua new file mode 100644 index 0000000..6b3ed69 --- /dev/null +++ b/nvim/plugins.lua @@ -0,0 +1,56 @@ +return { + { + "stevearc/conform.nvim", + -- event = 'BufWritePre', -- uncomment for format on save + opts = require "configs.conform", + }, + + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require "configs.lspconfig" + end, + }, + + { + 'cameron-wags/rainbow_csv.nvim', + config = true, + ft = { + 'csv', + 'tsv', + 'csv_semicolon', + 'csv_whitespace', + 'csv_pipe', + 'rfc_csv', + 'rfc_semicolon', + }, + cmd = { + 'RainbowDelim', + 'RainbowDelimSimple', + 'RainbowDelimQuoted', + 'RainbowMultiDelim', + }, + }, + + { + "kylechui/nvim-surround", + event = "VeryLazy", + config = function() + require("nvim-surround").setup() + end + }, + + { + 'echasnovski/mini.trailspace', + version = '*' + }, + + { + "folke/persistence.nvim", + event = "BufReadPre", -- this will only start session saving when an actual file was opened + opts = { + -- add any custom options here + } + }, +} From 7528eddfa50be3afd345a456bc4e4bf7862f581d Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Fri, 11 Sep 2026 22:47:38 +0200 Subject: [PATCH 2/7] Added license and readme --- LICENSE | 13 +++++++++++++ README.md | 6 ++++++ 2 files changed, 19 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7cecaa3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + +Copyright (C) 2026 Ivan Golikov + +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/README.md b/README.md new file mode 100644 index 0000000..393d7ea --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# My Nix Home Manager configuration repository + +I'm using standalone `home-manager` tool, not as a module within NixOS system +configuration. + +After making some changes one usually just run `home-manager switch`. From 0d2f7516e5f61fb338e0555385259a30452cbe81 Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Fri, 11 Sep 2026 22:33:46 +0200 Subject: [PATCH 3/7] feature: Finally putting it under source control --- flake.lock | 87 +++++++++++++++++++++++++++++++++++ flake.nix | 36 +++++++++++++++ home.nix | 117 +++++++++++++++++++++++++++++++++++++++++++++++ nvim/config.lua | 38 +++++++++++++++ nvim/plugins.lua | 56 +++++++++++++++++++++++ 5 files changed, 334 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home.nix create mode 100644 nvim/config.lua create mode 100644 nvim/plugins.lua diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f11c95a --- /dev/null +++ b/flake.lock @@ -0,0 +1,87 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1784725727, + "narHash": "sha256-J5+C9wsO0lhDyUalQzfplDbRjyHDYeEH5+9sdyXtwa8=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "041a999e8c1c5b731913855909e68d30ca69b8e0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nix4nvchad": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "nvchad-starter": "nvchad-starter" + }, + "locked": { + "lastModified": 1788867904, + "narHash": "sha256-aKp6ldvm8HWJ+X0AZjiY4dHbcpI9Ir8RvCOyLoXoMrs=", + "owner": "nix-community", + "repo": "nix4nvchad", + "rev": "7c24477da13e2b14a4732c768c390dcde4ad21d5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix4nvchad", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1785542685, + "narHash": "sha256-sjfvXMbG5pCFgpvw2OZAFcZiTvrppCWvnB6cuGrSY08=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f8e81fc7eb063db454f563cdd596fb96a5ad1497", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nvchad-starter": { + "flake": false, + "locked": { + "lastModified": 1753939018, + "narHash": "sha256-xdLr6tlU9uA+wu0pqha2br0fdVm+1MjgjbB5awz9ICU=", + "owner": "NvChad", + "repo": "starter", + "rev": "e3572e1f5e1c297212c3deeb17b7863139ce663e", + "type": "github" + }, + "original": { + "owner": "NvChad", + "ref": "main", + "repo": "starter", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nix4nvchad": "nix4nvchad", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..a2f6d85 --- /dev/null +++ b/flake.nix @@ -0,0 +1,36 @@ +{ + description = "Home Manager configuration of ivan"; + + inputs = { +# Specify the source of Home Manager and Nixpkgs. + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nix4nvchad = { + url = "github:nix-community/nix4nvchad"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + { self, nixpkgs, home-manager, nix4nvchad, ... }@inputs: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { system = "x86_64-linux"; config = { allowUnfree = true; }; }; + in + { + homeConfigurations."ivan" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + +# Specify your home configuration modules here, for example, +# the path to your home.nix. + modules = [ ./home.nix ]; + + extraSpecialArgs = { + inherit inputs; + }; + }; + }; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..f3cee3b --- /dev/null +++ b/home.nix @@ -0,0 +1,117 @@ +{ config, pkgs, lib, inputs, ... }: + +{ + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "ivan"; + home.homeDirectory = "/home/ivan"; + + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "26.05"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = [ + pkgs.obsidian + pkgs.kitty + pkgs.git + pkgs.darktable + pkgs.gparted + pkgs.telegram-desktop + pkgs.keepassxc + pkgs.libreoffice + pkgs.ungoogled-chromium + pkgs.difftastic + pkgs.uv + pkgs.lazygit + pkgs.zoxide + pkgs.qmk + pkgs.dos2unix + pkgs.gnumake + pkgs.ripgrep + pkgs.github-copilot-cli + pkgs.nerd-fonts.iosevka-term + pkgs.fzf + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. These will be explicitly sourced when using a + # shell provided by Home Manager. If you don't want to manage your shell + # through Home Manager then you have to manually source 'hm-session-vars.sh' + # located at either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/ivan/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + EDITOR = "nvim"; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; + programs.fish = { + enable = true; + shellInitLast = '' + zoxide init fish | source + ''; + }; + + fonts.fontconfig.enable = true; + + imports = [ inputs.nix4nvchad.homeManagerModules.default ]; + programs.nvchad = { + enable = true; + extraPackages = with pkgs; [ + ripgrep + lua-language-server + nil + ]; + extraPlugins = builtins.readFile ./nvim/plugins.lua; + extraConfig = builtins.readFile ./nvim/config.lua; + # You can configure extra options here (see the Configuration section) + }; +} diff --git a/nvim/config.lua b/nvim/config.lua new file mode 100644 index 0000000..93efdac --- /dev/null +++ b/nvim/config.lua @@ -0,0 +1,38 @@ +vim.opt.exrc = true + +vim.opt.relativenumber = true + +require'nvim-treesitter.configs'.setup { + -- A directory to install the parsers into. + -- If this is excluded or nil parsers are installed + -- to either the package dir, or the "site" dir. + -- If a custom path is used (not nil) it must be added to the runtimepath. + parser_install_dir = vim.fn.stdpath "data" .. "site", + + -- A list of parser names, or "all" + ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline", "python", "nix" }, + + -- Install parsers synchronously (only applied to `ensure_installed`) + sync_install = false, + + -- Automatically install missing parsers when entering buffer + auto_install = true, + + -- List of parsers to ignore installing (for "all") + -- ignore_install = { "javascript" }, + + highlight = { + -- `false` will disable the whole extension + enable = true, + + -- list of language that will be disabled + -- disable = { "c", "rust" }, + + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). + -- Using this option may slow down your editor, and you may see some duplicate highlights. + -- Instead of true it can also be a list of languages + additional_vim_regex_highlighting = false, + }, +} +vim.opt.runtimepath:append(vim.fn.stdpath "data" .. "site") diff --git a/nvim/plugins.lua b/nvim/plugins.lua new file mode 100644 index 0000000..6b3ed69 --- /dev/null +++ b/nvim/plugins.lua @@ -0,0 +1,56 @@ +return { + { + "stevearc/conform.nvim", + -- event = 'BufWritePre', -- uncomment for format on save + opts = require "configs.conform", + }, + + -- These are some examples, uncomment them if you want to see them work! + { + "neovim/nvim-lspconfig", + config = function() + require "configs.lspconfig" + end, + }, + + { + 'cameron-wags/rainbow_csv.nvim', + config = true, + ft = { + 'csv', + 'tsv', + 'csv_semicolon', + 'csv_whitespace', + 'csv_pipe', + 'rfc_csv', + 'rfc_semicolon', + }, + cmd = { + 'RainbowDelim', + 'RainbowDelimSimple', + 'RainbowDelimQuoted', + 'RainbowMultiDelim', + }, + }, + + { + "kylechui/nvim-surround", + event = "VeryLazy", + config = function() + require("nvim-surround").setup() + end + }, + + { + 'echasnovski/mini.trailspace', + version = '*' + }, + + { + "folke/persistence.nvim", + event = "BufReadPre", -- this will only start session saving when an actual file was opened + opts = { + -- add any custom options here + } + }, +} From 11849d469d1064070bb4f649250596ff86d6d296 Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Fri, 11 Sep 2026 22:47:38 +0200 Subject: [PATCH 4/7] chore: Added license and readme --- LICENSE | 13 +++++++++++++ README.md | 6 ++++++ 2 files changed, 19 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7cecaa3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + +Copyright (C) 2026 Ivan Golikov + +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/README.md b/README.md new file mode 100644 index 0000000..393d7ea --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +# My Nix Home Manager configuration repository + +I'm using standalone `home-manager` tool, not as a module within NixOS system +configuration. + +After making some changes one usually just run `home-manager switch`. From 9bf5a72c90d018954893c354616d8ad8fb3c08f0 Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Fri, 11 Sep 2026 22:55:26 +0200 Subject: [PATCH 5/7] chore: home.nix: Slightly simplified packages configuration --- home.nix | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/home.nix b/home.nix index f3cee3b..c0f8fb7 100644 --- a/home.nix +++ b/home.nix @@ -17,31 +17,27 @@ # The home.packages option allows you to install Nix packages into your # environment. - home.packages = [ - pkgs.obsidian - pkgs.kitty - pkgs.git - pkgs.darktable - pkgs.gparted - pkgs.telegram-desktop - pkgs.keepassxc - pkgs.libreoffice - pkgs.ungoogled-chromium - pkgs.difftastic - pkgs.uv - pkgs.lazygit - pkgs.zoxide - pkgs.qmk - pkgs.dos2unix - pkgs.gnumake - pkgs.ripgrep - pkgs.github-copilot-cli - pkgs.nerd-fonts.iosevka-term - pkgs.fzf - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - + home.packages = with pkgs; [ + obsidian + kitty + git + darktable + gparted + telegram-desktop + keepassxc + libreoffice + ungoogled-chromium + difftastic + uv + lazygit + zoxide + qmk + dos2unix + gnumake + ripgrep + github-copilot-cli + nerd-fonts.iosevka-term + fzf # # It is sometimes useful to fine-tune packages, for example, by applying # # overrides. You can do that directly here, just don't forget the # # parentheses. Maybe you want to install Nerd Fonts with a limited number of From 124d6e29be3e9d11d191fe9b318d30fa0c1dc5b9 Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Fri, 11 Sep 2026 23:13:00 +0200 Subject: [PATCH 6/7] feature: dotfiles: Added .gitconfig --- dotfiles/.gitconfig | 29 +++++++++++++++++++++++++++++ home.nix | 1 + 2 files changed, 30 insertions(+) create mode 100644 dotfiles/.gitconfig diff --git a/dotfiles/.gitconfig b/dotfiles/.gitconfig new file mode 100644 index 0000000..25d20f1 --- /dev/null +++ b/dotfiles/.gitconfig @@ -0,0 +1,29 @@ +[user] + email = root@ivnglkv.me + name = Ivan Golikov + +[push] + default = current + +[diff] + external = difft + tool = difftastic + +[difftool] + prompt = false + +[difftool "difftastic"] + cmd = difft "$LOCAL" "$REMOTE" + +[pager] + difftool = true + +[credential] + helper = cache --timeout=600 + +[core] + editor = nvim + autocrlf = input + +[init] + defaultBranch = main diff --git a/home.nix b/home.nix index c0f8fb7..e86a0ec 100644 --- a/home.nix +++ b/home.nix @@ -59,6 +59,7 @@ # # the Nix store. Activating the configuration will then make '~/.screenrc' a # # symlink to the Nix store copy. # ".screenrc".source = dotfiles/screenrc; + ".gitconfig".source = dotfiles/.gitconfig; # # You can also set the file content immediately. # ".gradle/gradle.properties".text = '' From fb3e9a47983c49892183f67d2dc2c7e5355485c5 Mon Sep 17 00:00:00 2001 From: Ivan Golikov Date: Sat, 12 Sep 2026 00:56:04 +0200 Subject: [PATCH 7/7] feature: nvim: Autoload of last session if started without arguments --- nvim/config.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nvim/config.lua b/nvim/config.lua index 93efdac..0d779e7 100644 --- a/nvim/config.lua +++ b/nvim/config.lua @@ -36,3 +36,12 @@ require'nvim-treesitter.configs'.setup { }, } vim.opt.runtimepath:append(vim.fn.stdpath "data" .. "site") + +-- Load last session when started without arguments +vim.api.nvim_create_autocmd("VimEnter", { + callback = function() + if vim.fn.argc() == 0 then + require("persistence").load() + end + end, +})