From 171b35cc7457d8fa7dcb94963c88d186aedeb234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Tue, 17 Mar 2026 13:10:47 +0300 Subject: [PATCH 1/7] hm.nvim: add `yy` keymap to `oil.nvim` Copies the path relative to the git root, fallbacks to the filename. --- .../text-editors/neovim/plugins/oil-nvim.nix | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/nix/users/ilkecan/text-editors/neovim/plugins/oil-nvim.nix b/nix/users/ilkecan/text-editors/neovim/plugins/oil-nvim.nix index 5459b5a..9bfd302 100644 --- a/nix/users/ilkecan/text-editors/neovim/plugins/oil-nvim.nix +++ b/nix/users/ilkecan/text-editors/neovim/plugins/oil-nvim.nix @@ -18,7 +18,43 @@ in skip_confirm_for_simple_edits = true; keymaps = { "y." = mkLuaInline '' - { "actions.copy_entry_path", mode = "n" }; + { "actions.copy_entry_path", mode = "n" } + ''; + "yy" = mkLuaInline '' + { + callback = function() + local oil = require("oil") + local actions = require("oil.actions") + local entry = oil.get_cursor_entry() + local dir = oil.get_current_dir() + + if not entry or not dir then + return actions.copy_entry_filename.callback() + end + + local git_dir = vim.fs.find(".git", { + path = dir, + upward = true, + })[1] + + if not git_dir then + return actions.copy_entry_filename.callback() + end + + local relative_path = vim.fs.relpath( + vim.fs.dirname(git_dir), + dir .. entry.name + ) + + if not relative_path then + return actions.copy_entry_filename.callback() + end + + vim.fn.setreg(vim.v.register, relative_path) + end, + desc = "Copy path relative to git root, or filename", + mode = "n", + } ''; }; }; From 14020f5c7553ff4434c320f09fdd18cb7ade5a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Tue, 17 Mar 2026 13:13:00 +0300 Subject: [PATCH 2/7] hm.nvim: add `oil-git-status.nvim` plugin --- .../neovim/plugins/oil-git-status-nvim.nix | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 nix/users/ilkecan/text-editors/neovim/plugins/oil-git-status-nvim.nix diff --git a/nix/users/ilkecan/text-editors/neovim/plugins/oil-git-status-nvim.nix b/nix/users/ilkecan/text-editors/neovim/plugins/oil-git-status-nvim.nix new file mode 100644 index 0000000..069a592 --- /dev/null +++ b/nix/users/ilkecan/text-editors/neovim/plugins/oil-git-status-nvim.nix @@ -0,0 +1,24 @@ +# https://github.com/refractalize/oil-git-status.nvim +{ + pkgs, + ... +}: + +{ + programs.nvf.settings.vim = { + extraPlugins = { + oil-git-status-nvim = { + package = pkgs.unstable.vimPlugins.oil-git-status-nvim; + setup = '' + require("oil-git-status").setup() + ''; + }; + }; + + utility.oil-nvim.setupOpts = { + win_options = { + signcolumn = "yes:2"; + }; + }; + }; +} From 1898eda3ccee322dfc1922d35745990ae507e0b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Tue, 17 Mar 2026 13:30:08 +0300 Subject: [PATCH 3/7] nixos.programs.gpu-screen-recorder: enable --- nix/hosts/mephistopheles/multimedia.nix | 4 ++++ nix/users/ilkecan/multimedia/default.nix | 5 ----- nix/users/ilkecan/multimedia/image.nix | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/nix/hosts/mephistopheles/multimedia.nix b/nix/hosts/mephistopheles/multimedia.nix index bb5acc7..85daca4 100644 --- a/nix/hosts/mephistopheles/multimedia.nix +++ b/nix/hosts/mephistopheles/multimedia.nix @@ -3,6 +3,10 @@ }: { + programs = { + gpu-screen-recorder.enable = true; + }; + services = { pipewire = { enable = true; diff --git a/nix/users/ilkecan/multimedia/default.nix b/nix/users/ilkecan/multimedia/default.nix index 3cab03c..0a2fd44 100644 --- a/nix/users/ilkecan/multimedia/default.nix +++ b/nix/users/ilkecan/multimedia/default.nix @@ -1,6 +1,5 @@ { lib, - pkgs, ... }: @@ -12,10 +11,6 @@ in { imports = collectImports ./.; - home.packages = with pkgs; [ - exiftool - ]; - services = { playerctld.enable = true; }; diff --git a/nix/users/ilkecan/multimedia/image.nix b/nix/users/ilkecan/multimedia/image.nix index bab5ee1..a03c4b7 100644 --- a/nix/users/ilkecan/multimedia/image.nix +++ b/nix/users/ilkecan/multimedia/image.nix @@ -5,6 +5,7 @@ { home.packages = with pkgs; [ + exiftool imagemagick krita libjxl # `cjxl` & `jxlinfo` From 5c088e264f73c405365fd93329995a6f9cadbbe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Tue, 17 Mar 2026 13:45:49 +0300 Subject: [PATCH 4/7] home.packages: add `gpu-screen-recorder{,-gtk}` --- nix/users/ilkecan/multimedia/video.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nix/users/ilkecan/multimedia/video.nix b/nix/users/ilkecan/multimedia/video.nix index e3cda7f..ca82adf 100644 --- a/nix/users/ilkecan/multimedia/video.nix +++ b/nix/users/ilkecan/multimedia/video.nix @@ -6,6 +6,8 @@ { home.packages = with pkgs; [ ffmpeg-full + gpu-screen-recorder + gpu-screen-recorder-gtk unstable.stremio-linux-shell vlc ]; From 8208251d8ba53151fdd8b24431b3b1a208b32a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Tue, 17 Mar 2026 15:18:26 +0300 Subject: [PATCH 5/7] flake: update inputs --- flake.lock | 76 +++++++++++++++++++++++++++--------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/flake.lock b/flake.lock index c362065..bff2d14 100644 --- a/flake.lock +++ b/flake.lock @@ -202,11 +202,11 @@ ] }, "locked": { - "lastModified": 1773624348, - "narHash": "sha256-TMr51otfujj9MXHDmN3o37xbkuStzAq+STPnkOZLon4=", + "lastModified": 1773691925, + "narHash": "sha256-OtmQRjxDoOFdgueSmmM/zEH5PDJomIs9Yiawg+HavwA=", "owner": "AvengeMedia", "repo": "dms-plugin-registry", - "rev": "8c189157a3b8851ae05db1a27a3f3de0801dab77", + "rev": "16c303569c666f56b3c3dbefd627c9c1575cd717", "type": "github" }, "original": { @@ -374,11 +374,11 @@ ] }, "locked": { - "lastModified": 1773607598, - "narHash": "sha256-nPV/IE0NwQjYcXkEGOmCIEsX9i8HFMeq2RupYzfVdiI=", + "lastModified": 1773681845, + "narHash": "sha256-o8hrZrigP0JYcwnglCp8Zi8jQafWsxbDtRRPzuVwFxY=", "owner": "nix-community", "repo": "home-manager", - "rev": "1f8f9e001235652cf54f9c1f7983f9c0e920944a", + "rev": "0759e0e137305bc9d0c52c204c6d8dffe6f601a6", "type": "github" }, "original": { @@ -413,11 +413,11 @@ }, "import-tree": { "locked": { - "lastModified": 1773554199, - "narHash": "sha256-6apV5N1F5tTD8JY9AUGnkWmy56HqDPn4MNFRsq4Rg+s=", + "lastModified": 1773693634, + "narHash": "sha256-BtZ2dtkBdSUnFPPFc+n0kcMbgaTxzFNPv2iaO326Ffg=", "owner": "vic", "repo": "import-tree", - "rev": "c6ebc59c85ee54cfb68163d06d1a3149ce0fe431", + "rev": "c41e7d58045f9057880b0d85e1152d6a4430dbf1", "type": "github" }, "original": { @@ -448,11 +448,11 @@ ] }, "locked": { - "lastModified": 1773585334, - "narHash": "sha256-GJV6Bm/C1+3cq2L0uK0dE7F6EB6dz5N/H1GuOiwadtc=", + "lastModified": 1773716904, + "narHash": "sha256-vK2REv0ikXVpVEfHnThxtheIqxLvCxNsXjeUrc2+OM4=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "0aa0a9a068beb125b148bf47ac45daf266dd0af3", + "rev": "23bbd3aaad676a600fcef546e9345e37212c1ab3", "type": "github" }, "original": { @@ -468,11 +468,11 @@ ] }, "locked": { - "lastModified": 1773624209, - "narHash": "sha256-KbmCjRujYcfLlgu2TK+OnPoEJl0NkSOM8h8plkVccIw=", + "lastModified": 1773731422, + "narHash": "sha256-+VZuQRP9fuv6rMym2DIKHL9fax79Tb4PRczvlu5Bk6o=", "owner": "natsukium", "repo": "mcp-servers-nix", - "rev": "bfb4a5b6565dc07de81121f09231e963d4349b56", + "rev": "759e7b2e9c9d9ee5ff242de9cf75c5000de63a26", "type": "github" }, "original": { @@ -537,11 +537,11 @@ ] }, "locked": { - "lastModified": 1773625790, - "narHash": "sha256-lbdP/l8p/h003/ZtvfCOPGjuAZwC72omd4NTA8u11UU=", + "lastModified": 1773725889, + "narHash": "sha256-htkVJrtaWJS7wQSXg8d26RR6jF3Iab2bYTNfvTgv05Q=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "9794fb620fd3099ffc9e5445f85a325c9e8f349c", + "rev": "9987baf8f935a1b3b2aa89a44c13b3239ecc640e", "type": "github" }, "original": { @@ -640,11 +640,11 @@ ] }, "locked": { - "lastModified": 1773542803, - "narHash": "sha256-EjxdnUGP9Ym4EqAa2qmSOnQR6QTNtQThaJAyN7Kv0u8=", + "lastModified": 1773715019, + "narHash": "sha256-bJ2f57E9rEMdNc6hFIVvtWFF/WpIRCGJvT7HTnls/rg=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "0fbf5fd80b87d9de87e0961735fac8faacd4b00e", + "rev": "25efde53dc1b554e912bda2be1dc2508850dbe68", "type": "github" }, "original": { @@ -689,11 +689,11 @@ ] }, "locked": { - "lastModified": 1773597570, - "narHash": "sha256-A6KsirR9kxR1wVFTr8aagk5vUT3rvKTf79Qht6YkxUA=", + "lastModified": 1773707837, + "narHash": "sha256-TFK0EXOTihtOiqdipVuUWnA3O+2XALosoFGXgMmnRM0=", "owner": "kaylorben", "repo": "nixcord", - "rev": "1cc0ddb766e459b7187e6aeb8b2e046d37361dc4", + "rev": "a917a4b7ddd13539ecc0a4b5094f015ba7b192dc", "type": "github" }, "original": { @@ -749,11 +749,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1773524153, - "narHash": "sha256-VGqRw+oieGCm1faMzDMK+Unt7YRYjsZgoejmcgNmeAQ=", - "rev": "e9f278faa1d0c2fc835bd331d4666b59b505a410", + "lastModified": 1773705440, + "narHash": "sha256-HrGloA/j2MflqpYyyq2xeOYCQTk4eUIR7LfqXkW8bec=", + "rev": "48652e9d5aea46e555b3df87354280d4f29cd3a3", "type": "tarball", - "url": "https://releases.nixos.org/nixos/25.11/nixos-25.11.7608.e9f278faa1d0/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/25.11/nixos-25.11.7702.48652e9d5aea/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -762,11 +762,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1773389992, - "narHash": "sha256-wLdaFm1T0uzQya3eG/5+LPbmyB92jE/AnMtVY6re818=", - "rev": "c06b4ae3d6599a672a6210b7021d699c351eebda", + "lastModified": 1773646010, + "narHash": "sha256-VZOCgpW2WxpWrw4ZNwgA+9MZ/QNTYM2iNTiBMxaTX00=", + "rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre962836.c06b4ae3d659/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre963917.5b2c2d84341b/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -783,11 +783,11 @@ ] }, "locked": { - "lastModified": 1773626145, - "narHash": "sha256-Y+JOO7HrFEBkcg8tmBg+RujYt4RxToMUG1/8PA+A9WU=", + "lastModified": 1773743416, + "narHash": "sha256-ww6I5SwvTkfe6RGH0OkgoLb6X8Ukq+UvaU8oQ+IABYE=", "owner": "nix-community", "repo": "NUR", - "rev": "53e789a3ea4b0d402c10426f2b5e4c1ceb8cb8a2", + "rev": "267099e6e701e9fbd40501394b62180df7adceb6", "type": "github" }, "original": { @@ -917,11 +917,11 @@ ] }, "locked": { - "lastModified": 1773550941, - "narHash": "sha256-wa/++bL2QeMUreNFBZEWluQfOYB0MnQIeGNMuaX9sfs=", + "lastModified": 1773698643, + "narHash": "sha256-VCiDjE8kNs8uCAK73Ezk1r3fFuc4JepvW07YFqaN968=", "owner": "Mic92", "repo": "sops-nix", - "rev": "c469b6885f0dcd5c7c56bd935a0f08dbcd9e79e1", + "rev": "8237de83e8200d16fe0c4467b02a1c608ff28044", "type": "github" }, "original": { From 2628d35adb608dbf452723b4c59517bf576cf468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Tue, 17 Mar 2026 16:01:20 +0300 Subject: [PATCH 6/7] hm.stylix: set `polarity` & custom icon theme --- nix/users/ilkecan/appearence/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/nix/users/ilkecan/appearence/default.nix b/nix/users/ilkecan/appearence/default.nix index 3502583..e97f158 100644 --- a/nix/users/ilkecan/appearence/default.nix +++ b/nix/users/ilkecan/appearence/default.nix @@ -16,6 +16,15 @@ in stylix = { enable = true; base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml"; - targets.firefox.profileNames = [ config.home.username ]; + icons = { + enable = true; + package = pkgs.papirus-icon-theme; + dark = "Papirus-Dark"; + }; + polarity = "dark"; + + targets = { + firefox.profileNames = [ config.home.username ]; + }; }; } From 13787d68a9923cf8f5b7a6f12f11bdd4831f136c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lkecan=20Bozdo=C4=9Fan?= Date: Wed, 18 Mar 2026 03:04:02 +0300 Subject: [PATCH 7/7] hm.firefox: add crates, docs-rs & rust search engines --- .../firefox/profiles/ilkecan/search.nix | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix b/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix index 445515d..de8de0b 100644 --- a/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix +++ b/nix/users/ilkecan/internet/web/browsers/firefox/profiles/ilkecan/search.nix @@ -53,12 +53,16 @@ in "archlinux" "aur" + "python" + "pypi" + "rails" "ruby" "rubygems" - "python" - "pypi" + "crates" + "docs-rs" + "rust" ]; engines = @@ -88,6 +92,20 @@ in definedAliases = [ "@aur" ]; }; + crates = { + name = "crates.io"; + urls = [ { template = "https://crates.io/search?q={searchTerms}"; } ]; + iconMapObj."48" = "https://crates.io/favicon.ico"; + definedAliases = [ "@crates" ]; + }; + + docs-rs = { + name = "Docs.rs"; + urls = [ { template = "https://docs.rs/releases/search?query={searchTerms}"; } ]; + iconMapObj."32" = "https://docs.rs/-/static/favicon.ico"; + definedAliases = [ "@docs-rs" ]; + }; + duckduckgo = { name = "DuckDuckGo​"; urls = [ { template = "https://duckduckgo.com/?q={searchTerms}"; } ]; @@ -264,6 +282,16 @@ in ]; }; + rust = { + name = "std - Rust"; + urls = [ { template = "https://doc.rust-lang.org/std/index.html?search={searchTerms}"; } ]; + iconMapObj."196" = "https://doc.rust-lang.org/favicon.ico"; + definedAliases = [ + "@rust" + "rs" + ]; + }; + startpage = { name = "StartPage"; urls = [ { template = "https://www.startpage.com/sp/search?query={searchTerms}"; } ];