From 69b0166a6b1408ce9e00ef09b98202bb7b7d365b Mon Sep 17 00:00:00 2001 From: oddlama Date: Sun, 10 Sep 2023 12:39:42 +0200 Subject: [PATCH] refactor: move impermanence config to application definition where possible --- users/common/impermanence.nix | 17 ++------------ users/common/neovim.nix | 6 +++++ users/myuser/default.nix | 2 +- users/myuser/dev.nix | 37 ------------------------------ users/myuser/dev/default.nix | 17 ++++++++++++++ users/myuser/dev/direnv.nix | 22 ++++++++++++++++++ users/myuser/dev/gdb.nix | 8 +++++++ users/myuser/graphical/firefox.nix | 7 +++++- 8 files changed, 62 insertions(+), 54 deletions(-) delete mode 100644 users/myuser/dev.nix create mode 100644 users/myuser/dev/default.nix create mode 100644 users/myuser/dev/direnv.nix create mode 100644 users/myuser/dev/gdb.nix diff --git a/users/common/impermanence.nix b/users/common/impermanence.nix index e7d3af9..ff266ec 100644 --- a/users/common/impermanence.nix +++ b/users/common/impermanence.nix @@ -1,7 +1,7 @@ { config, - nixosConfig, lib, + nixosConfig, ... }: let inherit (lib) optionals; @@ -20,17 +20,6 @@ in { ".cache/nix" # nix eval cache ".cache/nix-index" ] - ++ optionals config.programs.firefox.enable [ - ".cache/mozilla" - ] - ++ optionals config.programs.direnv.enable [ - ".local/share/direnv" - ] - ++ optionals config.programs.neovim.enable [ - ".local/share/nvim" - ".local/state/nvim" - ".cache/nvim" - ] ++ optionals nixosConfig.hardware.nvidia.modesetting.enable [ ".cache/nvidia" # GLCache ] @@ -42,9 +31,7 @@ in { [ ".local/share/nix" # Repl history ] - ++ optionals config.programs.firefox.enable [ - ".mozilla" - ] + # TODO away once atuin is gone ++ optionals config.programs.atuin.enable [ ".local/share/atuin" ] diff --git a/users/common/neovim.nix b/users/common/neovim.nix index c13b05e..4046d4d 100644 --- a/users/common/neovim.nix +++ b/users/common/neovim.nix @@ -6,4 +6,10 @@ vimdiffAlias = true; defaultEditor = true; }; + + home.persistence."/state".directories = [ + ".local/share/nvim" + ".local/state/nvim" + ".cache/nvim" + ]; } diff --git a/users/myuser/default.nix b/users/myuser/default.nix index 2d2fedc..96181af 100644 --- a/users/myuser/default.nix +++ b/users/myuser/default.nix @@ -29,11 +29,11 @@ in { home-manager.users.${myuser} = { imports = [ ../common + ./dev ./graphical ./neovim ./git.nix - ./dev.nix ./gpg.nix ./ssh.nix ]; diff --git a/users/myuser/dev.nix b/users/myuser/dev.nix deleted file mode 100644 index b7ad2fa..0000000 --- a/users/myuser/dev.nix +++ /dev/null @@ -1,37 +0,0 @@ -{pkgs, ...}: { - home = { - extraOutputsToInstall = ["doc" "devdoc"]; - file.gdbinit = { - target = ".gdbinit"; - text = '' - set auto-load safe-path / - ''; - }; - packages = with pkgs; [ - git-lfs - d2 - cloc - ]; - }; - - programs = { - direnv = { - enable = true; - nix-direnv.enable = true; - - # Store layout configs in an XDG directory and not in a .direnv local directory - stdlib = '' - : ''${XDG_CACHE_HOME:=$HOME/.cache} - declare -A direnv_layout_dirs - direnv_layout_dir() { - echo "''${direnv_layout_dirs[$PWD]:=$( - echo -n "$XDG_CACHE_HOME"/direnv/layouts/ - echo -n "$PWD" | shasum | cut -d ' ' -f 1 - )}" - } - ''; - }; - - nix-index.enable = true; - }; -} diff --git a/users/myuser/dev/default.nix b/users/myuser/dev/default.nix new file mode 100644 index 0000000..fa7c0a2 --- /dev/null +++ b/users/myuser/dev/default.nix @@ -0,0 +1,17 @@ +{pkgs, ...}: { + imports = [ + ./direnv.nix + ./gdb.nix + ]; + + home = { + extraOutputsToInstall = ["doc" "devdoc"]; + packages = with pkgs; [ + git-lfs + d2 + cloc + ]; + }; + + programs.nix-index.enable = true; +} diff --git a/users/myuser/dev/direnv.nix b/users/myuser/dev/direnv.nix new file mode 100644 index 0000000..dee9d0a --- /dev/null +++ b/users/myuser/dev/direnv.nix @@ -0,0 +1,22 @@ +{ + programs.direnv = { + enable = true; + nix-direnv.enable = true; + + # Store layout configs in an XDG directory and not in a .direnv local directory + stdlib = '' + : ''${XDG_CACHE_HOME:=$HOME/.cache} + declare -A direnv_layout_dirs + direnv_layout_dir() { + echo "''${direnv_layout_dirs[$PWD]:=$( + echo -n "$XDG_CACHE_HOME"/direnv/layouts/ + echo -n "$PWD" | shasum | cut -d ' ' -f 1 + )}" + } + ''; + }; + + home.persistence."/state".directories = [ + ".local/share/direnv" + ]; +} diff --git a/users/myuser/dev/gdb.nix b/users/myuser/dev/gdb.nix new file mode 100644 index 0000000..3c06f3f --- /dev/null +++ b/users/myuser/dev/gdb.nix @@ -0,0 +1,8 @@ +{ + home.file.gdbinit = { + target = ".gdbinit"; + text = '' + set auto-load safe-path / + ''; + }; +} diff --git a/users/myuser/graphical/firefox.nix b/users/myuser/graphical/firefox.nix index 14059a4..f07fc33 100644 --- a/users/myuser/graphical/firefox.nix +++ b/users/myuser/graphical/firefox.nix @@ -150,7 +150,7 @@ in { "dom.push.connection.enabled" = false; "dom.battery.enabled" = false; # you don't need to see my battery... "dom.event.clipboardevents.enabled" = false; # the clipboard is mine, no info leak, except when i want to paste - "dom.event.contextmenu.enabled" = false; # no disabling right-clicking.. + # "dom.event.contextmenu.enabled" = false; # no disabling right-clicking.. }; search = { @@ -258,9 +258,14 @@ in { }; home.persistence."/state".directories = [ + ".cache/mozilla" "Downloads" ]; + home.persistence."/persist".directories = [ + ".mozilla" + ]; + xdg.mimeApps.defaultApplications = { "text/html" = ["firefox.desktop"]; "text/xml" = ["firefox.desktop"];