about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/python
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
commitc52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c (patch)
treee8b947710b467b32740598ff574982097836f66c /modules/home.legacy/conf/python
parentchore(pkgs/yt): 1.2.1 -> 1.3.0 (diff)
downloadnixos-config-c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c.tar.gz
nixos-config-c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c.zip
refactor(modules): Move all system modules to `by-name`
From now on all modules should be added to the new `by-name` directory.
This should help remove the (superficial and utterly useless)
distinction between `home-manager` and `NixOS` modules.
Diffstat (limited to 'modules/home.legacy/conf/python')
-rw-r--r--modules/home.legacy/conf/python/default.nix6
-rw-r--r--modules/home.legacy/conf/python/pythonrc.py33
2 files changed, 39 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/python/default.nix b/modules/home.legacy/conf/python/default.nix
new file mode 100644
index 00000000..826d466d
--- /dev/null
+++ b/modules/home.legacy/conf/python/default.nix
@@ -0,0 +1,6 @@
+{config, ...}: {
+  xdg.configFile."python/pythonrc".source = ./pythonrc.py;
+  programs.zsh.sessionVariables = {
+    "PYTHONSTARTUP" = "${config.xdg.configHome}/python/pythonrc";
+  };
+}
diff --git a/modules/home.legacy/conf/python/pythonrc.py b/modules/home.legacy/conf/python/pythonrc.py
new file mode 100644
index 00000000..466d9788
--- /dev/null
+++ b/modules/home.legacy/conf/python/pythonrc.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python3
+
+
+def is_vanilla() -> bool:
+    import sys
+
+    return not hasattr(__builtins__, "__IPYTHON__") and "bpython" not in sys.argv[0]
+
+
+def setup_history():
+    import os
+    import atexit
+    import readline
+    from pathlib import Path
+
+    if state_home := os.environ.get("XDG_DATA_HOME"):
+        state_home = Path(state_home)
+    else:
+        state_home = Path.home() / ".local" / "state"
+
+    history: Path = state_home / "python" / "history"
+
+    if not os.path.exists(history):
+        open(history, "w")
+
+    readline.read_history_file(str(history))
+    atexit.register(readline.write_history_file, str(history))
+
+
+if is_vanilla():
+    setup_history()
+
+# vim: ft=python