jeirmeister
e4b85e086f
Major structural changes: - Create modular program organization by category (development, gaming, shell, etc.) - Consolidate Python environment configurations using python311 - Introduce comprehensive shell configuration hierarchy - Move utility programs into appropriate categories Details: - Migrate to consistent Python 3.11 usage across all Python tools - Add structured environment management for multiple languages (Python, Rust, Go, JavaScript) - Organize shell utilities into logical categories (security, network, files, etc.) - Consolidate development tools and editor configurations - Move VR configuration to gaming category - Group productivity apps (Bitwarden, Obsidian, Todoist) This restructuring aims to make the configuration more maintainable and easier to extend in preparation for future flake migration.
544 lines
13 KiB
Diff
544 lines
13 KiB
Diff
diff --git a/home.nix b/home.nix
|
|
index 3af0864..e6187b6 100644
|
|
--- a/home.nix
|
|
+++ b/home.nix
|
|
@@ -1,4 +1,3 @@
|
|
-# home.nix
|
|
{ config, pkgs, ... }:
|
|
|
|
let
|
|
@@ -13,55 +12,15 @@ in
|
|
username = "jeirmeister";
|
|
homeDirectory = "/home/jeirmeister";
|
|
stateVersion = "24.05";
|
|
-
|
|
+
|
|
packages = with pkgs; [
|
|
- htop
|
|
fortune
|
|
- ripgrep
|
|
- fd
|
|
- jq
|
|
- tree
|
|
- xclip
|
|
- bitwarden-desktop
|
|
- floorp
|
|
- bitwarden-cli
|
|
- nix-prefetch-git
|
|
- (customPackages.repo-to-text) # Try wrapping in parentheses
|
|
-
|
|
- # Development tools
|
|
- nodejs
|
|
- yarn
|
|
- python3
|
|
- gcc
|
|
- rustup
|
|
-
|
|
- # System tools
|
|
- btop
|
|
- neofetch
|
|
- bat
|
|
- fzf
|
|
-
|
|
- # Network tools
|
|
- mtr
|
|
- iperf3
|
|
- nmap
|
|
-
|
|
- # File management
|
|
- unzip
|
|
- p7zip
|
|
- file
|
|
-
|
|
- # Documentation & reference
|
|
- tldr
|
|
-
|
|
- # Productivity
|
|
- todoist
|
|
- todoist-electron
|
|
+ (customPackages.repo-to-text)
|
|
];
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
-
|
|
+
|
|
nixpkgs = {
|
|
config = {
|
|
allowUnfree = true;
|
|
@@ -70,4 +29,4 @@ in
|
|
];
|
|
};
|
|
};
|
|
-}
|
|
\ No newline at end of file
|
|
+}
|
|
diff --git a/users/jeirmeister/packages/repo-to-text.nix b/users/jeirmeister/packages/repo-to-text.nix
|
|
index 686f35d..88826a2 100644
|
|
--- a/users/jeirmeister/packages/repo-to-text.nix
|
|
+++ b/users/jeirmeister/packages/repo-to-text.nix
|
|
@@ -1,31 +1,31 @@
|
|
-# users/jeirmeister/packages/repo2text.nix
|
|
{ lib
|
|
-, python3Packages
|
|
+, python311Packages
|
|
, fetchPypi
|
|
, tree
|
|
}:
|
|
|
|
-python3Packages.buildPythonPackage rec {
|
|
- pname = "repo_to_text"; # Changed to underscore for PyPI
|
|
+python311Packages.buildPythonPackage rec {
|
|
+ pname = "repo_to_text";
|
|
version = "0.4.2";
|
|
format = "setuptools";
|
|
|
|
src = fetchPypi {
|
|
- pname = "repo_to_text"; # Using underscore here too
|
|
+ pname = "repo_to_text";
|
|
inherit version;
|
|
sha256 = "d2oydJFP6PNUyPVZlrOtCkyMrFZyc1fkGRa/ZnqsCkQ=";
|
|
};
|
|
|
|
- propagatedBuildInputs = with python3Packages; [
|
|
+ propagatedBuildInputs = with python311Packages; [
|
|
pyyaml
|
|
pyperclip
|
|
+ pathspec
|
|
];
|
|
|
|
buildInputs = [
|
|
tree
|
|
];
|
|
|
|
- pythonImportsCheck = [ "repo_to_text" ]; # Underscore here too
|
|
+ pythonImportsCheck = [ "repo_to_text" ];
|
|
|
|
meta = with lib; {
|
|
description = "Convert directory/repository structure and contents into a single text file";
|
|
@@ -34,8 +34,7 @@ python3Packages.buildPythonPackage rec {
|
|
maintainers = [];
|
|
};
|
|
|
|
- # This ensures the command is available as repo-to-text
|
|
postInstall = ''
|
|
mv $out/bin/repo_to_text $out/bin/repo-to-text || true
|
|
'';
|
|
-}
|
|
\ No newline at end of file
|
|
+}
|
|
diff --git a/users/jeirmeister/programs/appimage.nix b/users/jeirmeister/programs/appimage.nix
|
|
deleted file mode 100644
|
|
index ae729bf..0000000
|
|
--- a/users/jeirmeister/programs/appimage.nix
|
|
+++ /dev/null
|
|
@@ -1,14 +0,0 @@
|
|
-# users/jeirmeister/programs/appimage.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- home.packages = with pkgs; [
|
|
- # Required for AppImage support
|
|
- appimage-run
|
|
-
|
|
- # Optional but useful tools for AppImage management
|
|
- zlib
|
|
- fuse
|
|
- fuse3
|
|
- ];
|
|
-}
|
|
\ No newline at end of file
|
|
diff --git a/users/jeirmeister/programs/default.nix b/users/jeirmeister/programs/default.nix
|
|
index 6e92c81..41da992 100644
|
|
--- a/users/jeirmeister/programs/default.nix
|
|
+++ b/users/jeirmeister/programs/default.nix
|
|
@@ -1,19 +1,11 @@
|
|
-# users/jeirmeister/programs/default.nix
|
|
{ config, pkgs, ... }:
|
|
|
|
{
|
|
imports = [
|
|
- ./appimage.nix
|
|
- ./direnv.nix
|
|
- ./git.nix
|
|
- ./gpg.nix
|
|
- ./obsidian.nix
|
|
- ./ssh.nix
|
|
- ./sublime.nix
|
|
- ./tailscale.nix
|
|
- ./tmux.nix
|
|
- ./vscode.nix
|
|
- ./vr.nix
|
|
- ./zsh.nix
|
|
+ ./development
|
|
+ ./gaming
|
|
+ ./productivity
|
|
+ ./shell
|
|
+ ./system
|
|
];
|
|
}
|
|
diff --git a/users/jeirmeister/programs/direnv.nix b/users/jeirmeister/programs/direnv.nix
|
|
deleted file mode 100644
|
|
index b5b324a..0000000
|
|
--- a/users/jeirmeister/programs/direnv.nix
|
|
+++ /dev/null
|
|
@@ -1,9 +0,0 @@
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- programs.direnv = {
|
|
- enable = true;
|
|
- nix-direnv.enable = true;
|
|
- enableZshIntegration = true;
|
|
- };
|
|
-}
|
|
\ No newline at end of file
|
|
diff --git a/users/jeirmeister/programs/git.nix b/users/jeirmeister/programs/git.nix
|
|
deleted file mode 100644
|
|
index 7e6ad4b..0000000
|
|
--- a/users/jeirmeister/programs/git.nix
|
|
+++ /dev/null
|
|
@@ -1,32 +0,0 @@
|
|
-{ config, pkgs, lib, ... }:
|
|
-
|
|
-{
|
|
- programs.git = {
|
|
- enable = true;
|
|
- package = pkgs.git; # Explicitly specify git package
|
|
- lfs.enable = true;
|
|
- userName = "jeirmeister";
|
|
- userEmail = "jeir@jeirslab.xyz";
|
|
-
|
|
- extraConfig = {
|
|
- init.defaultBranch = "main";
|
|
- pull.rebase = false;
|
|
-
|
|
- # More explicit credential configuration
|
|
- credential = {
|
|
- helper = lib.mkForce "${pkgs.git-credential-manager}/bin/git-credential-manager";
|
|
- credentialStore = "plaintext";
|
|
- interactive = false;
|
|
- };
|
|
-
|
|
- safe.directory = "*";
|
|
- };
|
|
- };
|
|
-
|
|
- # Ensure required packages are installed
|
|
- home.packages = with pkgs; [
|
|
- git-credential-manager
|
|
- ];
|
|
-
|
|
- xdg.enable = true;
|
|
-}
|
|
\ No newline at end of file
|
|
diff --git a/users/jeirmeister/programs/gpg.nix b/users/jeirmeister/programs/gpg.nix
|
|
deleted file mode 100644
|
|
index cd1f4d1..0000000
|
|
--- a/users/jeirmeister/programs/gpg.nix
|
|
+++ /dev/null
|
|
@@ -1,51 +0,0 @@
|
|
-# users/jeirmeister/programs/gpg.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- programs.gpg = {
|
|
- enable = true;
|
|
- settings = {
|
|
- keyserver = "hkps://keys.openpgp.org";
|
|
- # Trust model settings
|
|
- trust-model = "tofu+pgp";
|
|
- tofu-default-policy = "auto";
|
|
- # Better key discovery
|
|
- keyserver-options = "auto-key-retrieve";
|
|
- # Modern cipher preferences
|
|
- personal-cipher-preferences = "AES256 AES192 AES";
|
|
- personal-digest-preferences = "SHA512 SHA384 SHA256";
|
|
- personal-compress-preferences = "ZLIB BZIP2 ZIP Uncompressed";
|
|
- # Default key preferences
|
|
- default-preference-list = "SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed";
|
|
- };
|
|
- # If you have specific public keys to trust, add them here
|
|
- publicKeys = [
|
|
- # Example:
|
|
- # {
|
|
- # source = ./path/to/key.pub;
|
|
- # trust = "ultimate";
|
|
- # }
|
|
- ];
|
|
- };
|
|
-
|
|
- services.gpg-agent = {
|
|
- enable = true;
|
|
- enableSshSupport = true;
|
|
- defaultCacheTtl = 1800;
|
|
- maxCacheTtl = 7200;
|
|
- # For KDE/Plasma, use pinentry-qt
|
|
- pinentryPackage = pkgs.pinentry-qt;
|
|
- extraConfig = ''
|
|
- allow-preset-passphrase
|
|
- allow-loopback-pinentry
|
|
- '';
|
|
- };
|
|
-
|
|
- # Make sure we have the right packages
|
|
- home.packages = with pkgs; [
|
|
- gnupg
|
|
- pinentry-qt
|
|
- paperkey # Backup GPG keys on paper
|
|
- pgpdump # Analyze PGP/GPG keys and packets
|
|
- ];
|
|
-}
|
|
\ No newline at end of file
|
|
diff --git a/users/jeirmeister/programs/obsidian.nix b/users/jeirmeister/programs/obsidian.nix
|
|
deleted file mode 100644
|
|
index 6d530f0..0000000
|
|
--- a/users/jeirmeister/programs/obsidian.nix
|
|
+++ /dev/null
|
|
@@ -1,8 +0,0 @@
|
|
-# users/jeirmeister/programs/obsidian.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- home.packages = with pkgs; [
|
|
- obsidian
|
|
- ];
|
|
-}
|
|
diff --git a/users/jeirmeister/programs/ssh.nix b/users/jeirmeister/programs/ssh.nix
|
|
deleted file mode 100644
|
|
index 3d31bd1..0000000
|
|
--- a/users/jeirmeister/programs/ssh.nix
|
|
+++ /dev/null
|
|
@@ -1,38 +0,0 @@
|
|
-# users/jeirmeister/programs/ssh.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- programs.ssh = {
|
|
- enable = true;
|
|
-
|
|
- extraConfig = ''
|
|
- AddKeysToAgent yes
|
|
- UseKeychain yes
|
|
- IdentitiesOnly yes
|
|
- HashKnownHosts yes
|
|
- '';
|
|
-
|
|
- # For better security
|
|
- serverAliveInterval = 60;
|
|
- serverAliveCountMax = 2;
|
|
-
|
|
- # Manage known hosts
|
|
- userKnownHostsFile = "~/.ssh/known_hosts";
|
|
-
|
|
- # Example host configurations
|
|
- matchBlocks = {
|
|
- "github.com" = {
|
|
- hostname = "github.com";
|
|
- user = "git";
|
|
- identityFile = "~/.ssh/github";
|
|
- extraOptions = {
|
|
- PreferredAuthentications = "publickey";
|
|
- };
|
|
- };
|
|
- "*" = {
|
|
- compression = true;
|
|
- serverAliveInterval = 60;
|
|
- };
|
|
- };
|
|
- };
|
|
-}
|
|
\ No newline at end of file
|
|
diff --git a/users/jeirmeister/programs/sublime.nix b/users/jeirmeister/programs/sublime.nix
|
|
deleted file mode 100644
|
|
index 3d066b0..0000000
|
|
--- a/users/jeirmeister/programs/sublime.nix
|
|
+++ /dev/null
|
|
@@ -1,8 +0,0 @@
|
|
-# users/jeirmeister/programs/sublime.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- home.packages = with pkgs; [
|
|
- sublime4
|
|
- ];
|
|
-}
|
|
diff --git a/users/jeirmeister/programs/tailscale.nix b/users/jeirmeister/programs/tailscale.nix
|
|
deleted file mode 100644
|
|
index 4e6da80..0000000
|
|
--- a/users/jeirmeister/programs/tailscale.nix
|
|
+++ /dev/null
|
|
@@ -1,8 +0,0 @@
|
|
-# users/jeirmeister/programs/tailscale.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- home.packages = with pkgs; [
|
|
- tailscale
|
|
- ];
|
|
-}
|
|
diff --git a/users/jeirmeister/programs/tmux.nix b/users/jeirmeister/programs/tmux.nix
|
|
deleted file mode 100644
|
|
index 94c1076..0000000
|
|
--- a/users/jeirmeister/programs/tmux.nix
|
|
+++ /dev/null
|
|
@@ -1,10 +0,0 @@
|
|
-# users/jeirmeister/programs/tmux.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- programs.tmux = {
|
|
- enable = true;
|
|
- clock24 = true;
|
|
- # Add your tmux configurations here
|
|
- };
|
|
-}
|
|
diff --git a/users/jeirmeister/programs/vr.nix b/users/jeirmeister/programs/vr.nix
|
|
deleted file mode 100644
|
|
index 544c993..0000000
|
|
--- a/users/jeirmeister/programs/vr.nix
|
|
+++ /dev/null
|
|
@@ -1,43 +0,0 @@
|
|
-# users/jeirmeister/programs/vr.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- home.packages = with pkgs; [
|
|
- immersed
|
|
- ];
|
|
-
|
|
- systemd.user.services.immersed = {
|
|
- Unit = {
|
|
- Description = "Immersed VR Client";
|
|
- After = [ "graphical-session.target" "network.target" ];
|
|
- PartOf = [ "graphical-session.target" ];
|
|
- Requires = [ "network.target" ];
|
|
- };
|
|
-
|
|
- Service = {
|
|
- Type = "simple";
|
|
- ExecStartPre = "${pkgs.coreutils}/bin/sleep 2"; # Give the video device time to initialize
|
|
- ExecStart = "${pkgs.immersed}/bin/immersed";
|
|
- Environment = [
|
|
- "DISPLAY=:0"
|
|
- "XDG_CURRENT_DESKTOP=KDE" # Since you're using Plasma
|
|
- "QT_QPA_PLATFORM=xcb" # Force X11 mode for better compatibility
|
|
- "XDG_RUNTIME_DIR=/run/user/1000"
|
|
- "XDG_SESSION_TYPE=x11" # Force X11 mode
|
|
- ];
|
|
- Restart = "on-failure";
|
|
- RestartSec = 5;
|
|
- StandardOutput = "journal";
|
|
- StandardError = "journal";
|
|
- DevicePolicy = "auto";
|
|
- };
|
|
-
|
|
- Install = {
|
|
- WantedBy = [ "graphical-session.target" ];
|
|
- };
|
|
- };
|
|
-
|
|
- # Create required directories
|
|
- home.file.".local/share/immersed/.keep".text = "";
|
|
- home.file.".config/immersed/.keep".text = "";
|
|
-}
|
|
\ No newline at end of file
|
|
diff --git a/users/jeirmeister/programs/vscode.nix b/users/jeirmeister/programs/vscode.nix
|
|
deleted file mode 100644
|
|
index 1be8a8c..0000000
|
|
--- a/users/jeirmeister/programs/vscode.nix
|
|
+++ /dev/null
|
|
@@ -1,57 +0,0 @@
|
|
-{ config, pkgs, ... }:
|
|
-{
|
|
- programs.vscode = {
|
|
- enable = true; # Make sure this is enabled
|
|
-
|
|
- extensions = with pkgs.vscode-extensions; [
|
|
- # Essentia
|
|
-
|
|
- ms-vsliveshare.vsliveshare
|
|
-
|
|
-
|
|
- # Languages
|
|
-# bbenoist.nix
|
|
- ms-python.python
|
|
- rust-lang.rust-analyzer
|
|
-
|
|
- # Tools
|
|
- # eamodio.gitlens
|
|
- ms-azuretools.vscode-docker
|
|
-
|
|
- # Theme & UI
|
|
- pkief.material-icon-theme
|
|
- dracula-theme.theme-dracula
|
|
- ];
|
|
-
|
|
- userSettings = {
|
|
- # Existing settings
|
|
- "editor.fontSize" = 14;
|
|
- "editor.fontFamily" = "FiraCode Nerd Font";
|
|
- "editor.formatOnSave" = true;
|
|
- "files.autoSave" = "onFocusChange";
|
|
- "workbench.colorTheme" = "Dracula";
|
|
- "editor.minimap.enabled" = false;
|
|
- "editor.rulers" = [ 80 120 ];
|
|
- "files.trimTrailingWhitespace" = true;
|
|
- "editor.bracketPairColorization.enabled" = true;
|
|
-
|
|
- # Git settings
|
|
- "git.enabled" = true;
|
|
- "git.autofetch" = true;
|
|
- "git.confirmSync" = false;
|
|
- "git.enableSmartCommit" = true;
|
|
- "git.path" = "${pkgs.git}/bin/git";
|
|
- "git.openRepositoryInParentFolders" = "never";
|
|
-
|
|
- # GitLens settings (since you have it installed)
|
|
- "gitlens.hovers.currentLine.over" = "line";
|
|
- "gitlens.currentLine.enabled" = true;
|
|
- "gitlens.hovers.enabled" = true;
|
|
- "gitlens.mode.active" = "zen";
|
|
-
|
|
- # Credential manager integration
|
|
- "git.terminalAuthentication" = true;
|
|
- "git.credential.helper" = "${pkgs.git-credential-manager}/bin/git-credential-manager";
|
|
- };
|
|
- };
|
|
-}
|
|
diff --git a/users/jeirmeister/programs/zsh.nix b/users/jeirmeister/programs/zsh.nix
|
|
deleted file mode 100644
|
|
index 7805174..0000000
|
|
--- a/users/jeirmeister/programs/zsh.nix
|
|
+++ /dev/null
|
|
@@ -1,28 +0,0 @@
|
|
-# users/jeirmeister/programs/zsh.nix
|
|
-{ config, pkgs, ... }:
|
|
-
|
|
-{
|
|
- programs.zsh = {
|
|
- enable = true;
|
|
- autosuggestion.enable = true;
|
|
- enableCompletion = true;
|
|
- syntaxHighlighting.enable = true;
|
|
-
|
|
- oh-my-zsh = {
|
|
- enable = true;
|
|
- theme = "robbyrussell";
|
|
- plugins = [ "git" "docker" "kubectl" ];
|
|
- };
|
|
-
|
|
- # Add this section to ensure home-manager paths are properly sourced
|
|
- initExtra = ''
|
|
- # Add home-manager applications to PATH
|
|
- export PATH=$HOME/.nix-profile/bin:$PATH
|
|
- '';
|
|
- };
|
|
-
|
|
- # Make zsh the default shell
|
|
- home.sessionVariables = {
|
|
- SHELL = "${pkgs.zsh}/bin/zsh";
|
|
- };
|
|
-}
|
|
\ No newline at end of file
|