From 94d6e77e51ab5cfe52b560bb89999d9ae46481cd Mon Sep 17 00:00:00 2001 From: Greg Burd Date: Thu, 15 Aug 2024 01:29:41 -0400 Subject: [PATCH] updates --- TODO | 14 ++ flake.lock | 6 +- home-manager/_mixins/cli/default.nix | 8 + home-manager/_mixins/desktop/default.nix | 1 + .../_mixins/desktop/protonmail-desktop.nix | 4 + home-manager/_mixins/users/_gburd/desktop.nix | 2 + home-manager/_mixins/users/gburd/TODO | 209 ++++++++++++++++++ home-manager/_mixins/users/gburd/default.nix | 42 +++- home-manager/_mixins/users/gburd/desktop.nix | 5 +- .../_mixins/users/gburd/hosts/floki.nix | 5 + nixos/_mixins/desktop/discord.nix | 2 +- nixos/_mixins/desktop/zed-editor.nix | 5 + nixos/_mixins/hardware/gtx-1080ti.nix | 2 +- nixos/_mixins/hardware/rtx-3080ti.nix | 2 +- nixos/_mixins/users/gburd/default.nix | 6 + nixos/_mixins/users/gburd/desktop.nix | 2 + nixos/_mixins/virt/docker.nix | 1 + nixos/workstation/floki/default.nix | 3 +- 18 files changed, 299 insertions(+), 20 deletions(-) create mode 100644 TODO create mode 100644 home-manager/_mixins/desktop/protonmail-desktop.nix create mode 100644 home-manager/_mixins/users/gburd/TODO create mode 100644 nixos/_mixins/desktop/zed-editor.nix diff --git a/TODO b/TODO new file mode 100644 index 0000000..f397229 --- /dev/null +++ b/TODO @@ -0,0 +1,14 @@ +* new user "greg" + * switch to bash + * switch to gnome/wayland +* remove or integrate _/* +* fix macOS portion +* rpi + * nixops? or ...? + * k8s/k3c cluster +* use s3 from freenas + k8s to deploy video site + +https://askubuntu.com/questions/1396132/when-i-paste-in-the-terminal-sometimes-the-contents-are-prefixed-with-the-charac +https://stackoverflow.com/questions/60736446/strange-characters-when-pasting-into-terminal-fish-shell-200-and-201?rq=3 +https://kagi.com/search?q=__fish_disable_bracketed_paste +https://nixos.wiki/wiki/Cheatsheet diff --git a/flake.lock b/flake.lock index ff531a5..9185934 100644 --- a/flake.lock +++ b/flake.lock @@ -1081,11 +1081,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1719145550, - "narHash": "sha256-K0i/coxxTEl30tgt4oALaylQfxqbotTSNb1/+g+mKMQ=", + "lastModified": 1723556749, + "narHash": "sha256-+CHVZnTnIYRLYsARInHYoWkujzcRkLY/gXm3s5bE52o=", "owner": "nixos", "repo": "nixpkgs", - "rev": "e4509b3a560c87a8d4cb6f9992b8915abf9e36d8", + "rev": "4a92571f9207810b559c9eac203d1f4d79830073", "type": "github" }, "original": { diff --git a/home-manager/_mixins/cli/default.nix b/home-manager/_mixins/cli/default.nix index 7f9bffd..99faf0c 100644 --- a/home-manager/_mixins/cli/default.nix +++ b/home-manager/_mixins/cli/default.nix @@ -38,5 +38,13 @@ ltex-ls # Spell checking LSP tly # Tally counter + + kubectl + k9s + kubernetes-helm + kind + terraform + terraform-ls + nerdctl ]; } diff --git a/home-manager/_mixins/desktop/default.nix b/home-manager/_mixins/desktop/default.nix index 9d0842f..6f6ca25 100644 --- a/home-manager/_mixins/desktop/default.nix +++ b/home-manager/_mixins/desktop/default.nix @@ -1,5 +1,6 @@ { desktop, ... }: { imports = [ + ./alacritty.nix ./neovide.nix ./emote.nix ./tilix.nix diff --git a/home-manager/_mixins/desktop/protonmail-desktop.nix b/home-manager/_mixins/desktop/protonmail-desktop.nix new file mode 100644 index 0000000..04cfef3 --- /dev/null +++ b/home-manager/_mixins/desktop/protonmail-desktop.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.protonmail-desktop ]; +} diff --git a/home-manager/_mixins/users/_gburd/desktop.nix b/home-manager/_mixins/users/_gburd/desktop.nix index eca6e92..35a26bb 100644 --- a/home-manager/_mixins/users/_gburd/desktop.nix +++ b/home-manager/_mixins/users/_gburd/desktop.nix @@ -8,8 +8,10 @@ with lib.hm.gvariant; ../../desktop/jetbrains-toolbox.nix ../../desktop/meld.nix ../../desktop/protonmail-bridge.nix + ../../desktop/protonmail-desktop.nix ../../desktop/sublime-merge.nix ../../desktop/sublime.nix + ../../desktop/zed-editor.nix ../../services/keybase.nix ]; diff --git a/home-manager/_mixins/users/gburd/TODO b/home-manager/_mixins/users/gburd/TODO new file mode 100644 index 0000000..9f96a6d --- /dev/null +++ b/home-manager/_mixins/users/gburd/TODO @@ -0,0 +1,209 @@ + file.".ssh/config".text = '' + Host burd.me *.burd.me *.ts.burd.me + ForwardAgent yes + Host floki + ForwardAgent yes + RemoteForward /%d/.gnupg-sockets/S.gpg-agent /%d/.gnupg-sockets/S.gpg-agent.extra + + Host * + ForwardAgent no + Compression no + ServerAliveInterval 0 + ServerAliveCountMax 3 + HashKnownHosts no + UserKnownHostsFile ~/.ssh/known_hosts + ControlMaster no + ControlPath ~/.ssh/master-%r@%n:%p + ControlPersist no + + Host github.com + HostName github.com + User git + ''; + + file.".gitconfig".text = '' + [user] + name = Greg Burd + email = greg@burd.me + + [color] + ui = auto + diff = auto + status = auto + branch = auto + + [format] + pretty=format:%C(yellow)%h%Creset | %C(green)%ad (%ar)%Creset | %C(blue)%an%Creset | %s + + [push] + default = simple + autoSetupRemote = true + + [branch] + autosetuprebase = always + + [receive] + denyCurrentBranch = warn + + [filter "media"] + clean = git media clean %f + smudge = git media smudge %f + required = true + + # http://nicercode.github.io/blog/2013-04-30-excel-and-line-endings/ + [filter "cr"] + clean = LC_CTYPE=C awk '{printf(\"%s\\n\", $0)}' | LC_CTYPE=C tr '\\r' '\\n' + smudge = tr '\\n' '\\r' + + [diff] + tool = meld + [difftool] + prompt = false + [difftool "meld"] + cmd = meld "$LOCAL" "$REMOTE" + + [merge] + tool = meld + [mergetool "meld"] + # Choose one of these 2 lines (not both!) explained below. + cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED" + cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED" + + [core] + editor = nvim + # editor = emacs -nw -q + excludesfile = ~/.gitignore_global + pager = less -FMRiX + quotepath = false + + [filter "lfs"] + process = git-lfs filter-process + required = true + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + + [init] + templateDir = /home/gregburd/.git-template + defaultBranch = main + [commit] + # gpgsign = true + ''; + + file.".config/Code/User/keybindings.json".text = '' + // Place your key bindings in this file to override the defaults + [ + // allow arrow keys to work in the find widget + { + "key": "right", + "command": "-emacs-mcx.isearchExit" + }, + { + "key": "left", + "command": "-emacs-mcx.isearchExit" + }, + { + "key": "up", + "command": "-emacs-mcx.isearchExit" + }, + { + "key": "down", + "command": "-emacs-mcx.isearchExit" + }, + // allow ctrl+f to find next in the find widget + { + "key": "ctrl+f", + "command": "-emacs-mcx.isearchExit", + "when": "editorFocus && findWidgetVisible" + }, + // allow other stuff to functional normally in the find widget + { + "key": "ctrl+b", + "command": "-emacs-mcx.isearchExit", + "when": "editorFocus && findWidgetVisible" + }, + { + "key": "ctrl+p", + "command": "-emacs-mcx.isearchExit", + "when": "editorFocus && findWidgetVisible" + }, + { + "key": "ctrl+n", + "command": "-emacs-mcx.isearchExit", + "when": "editorFocus && findWidgetVisible" + }, + { + "key": "ctrl+a", + "command": "-emacs-mcx.isearchExit", + "when": "editorFocus && findWidgetVisible" + }, + { + "key": "ctrl+e", + "command": "-emacs-mcx.isearchExit", + "when": "editorFocus && findWidgetVisible" + }, + { + "key": "enter", + "command": "-emacs-mcx.isearchExit" + }, + // allow curly quotes and ellipses characters on mac + { + "key": "alt+shift+[", + "command": "-emacs-mcx.backwardParagraph" + }, + { + "key": "alt+shift+]", + "command": "-emacs-mcx.forwardParagraph" + }, + { + "key": "alt+;", + "command": "-editor.action.blockComment", + "when": "editorTextFocus && !config.emacs-mcx.useMetaPrefixMacCmd && !editorReadonly" + }, + { + "key": "alt+;", + "command": "-emacs-mcx.executeCommands", + "when": "editorFocus && findWidgetVisible && !config.emacs-mcx.useMetaPrefixMacCmd" + }, + // stop backward kill word from adding to clipboard + { + "key": "alt+backspace", + "command": "-emacs-mcx.backwardKillWord", + "when": "editorTextFocus && !config.emacs-mcx.useMetaPrefixMacCmd && !editorReadonly" + } + ] + ''; + + + bash = { + shellAliases = { + pubip = "curl -s ifconfig.me/ip"; # "curl -s https://api.ipify.org"; + speedtest = "speedtest-go"; + vi = "nvim"; + vim = "nvim"; + }; + }; + fish = { + shellAliases = { + #diff = "diffr"; + #fast = "fast -u"; + #glow = "glow --pager"; + pubip = "curl -s ifconfig.me/ip"; # "curl -s https://api.ipify.org"; + speedtest = "speedtest-go"; + vi = "nvim"; + vim = "nvim"; + }; + }; + + + + systemd.user.tmpfiles.rules = [ + "d ${config.home.homeDirectory}/ws 0755 ${username} users - -" + "d ${config.home.homeDirectory}/Dropbox 0755 ${username} users - -" + # "d ${config.home.homeDirectory}/Quickemu/nixos-console 0755 ${username} users - -" + # "d ${config.home.homeDirectory}/Quickemu/nixos-desktop 0755 ${username} users - -" + "d ${config.home.homeDirectory}/bin 0755 ${username} users - -" + "d ${config.home.homeDirectory}/Studio/OBS/config/obs-studio/ 0755 ${username} users - -" + # "d ${config.home.homeDirectory}/Syncthing 0755 ${username} users - -" + "d ${config.home.homeDirectory}/Websites 0755 ${username} users - -" + "L+ ${config.home.homeDirectory}/.config/obs-studio/ - - - - ${config.home.homeDirectory}/Studio/OBS/config/obs-studio/" + ]; diff --git a/home-manager/_mixins/users/gburd/default.nix b/home-manager/_mixins/users/gburd/default.nix index e36cd4c..80bd2a4 100644 --- a/home-manager/_mixins/users/gburd/default.nix +++ b/home-manager/_mixins/users/gburd/default.nix @@ -1,4 +1,4 @@ -{ lib, hostname, inputs, platform, pkgs, ... }: +{ lib, hostname, inputs, platform, config, pkgs, ... }: let systemInfo = lib.splitString "-" platform; systemType = builtins.elemAt systemInfo 1; @@ -13,28 +13,50 @@ in ++ lib.optional (builtins.pathExists (./. + "/hosts/${hostname}/default.nix")) ./hosts/${hostname}/default.nix ++ lib.optional (builtins.pathExists (./. + "/systems/${systemType}.nix")) ./systems/${systemType}.nix; - home = { + home.file = { - file.".config/alacritty/alacritty.yml".source = ./alacritty.yml; + "ws/devshells".source = inputs.devshells; - file."ws/devshells".source = inputs.devshells; + "${config.xdg.configHome}/alacritty/alacritty.yml".source = ./alacritty.yml; + + ".ssh/config".text = " + Host * + IdentityAgent ~/.1password/agent.sock + Compression yes + ConnectTimeout 5 + ControlMaster auto + ControlPath /tmp/ssh_mux_%h_%p_%r + ControlPersist 10m + ControlPersist yes + ForwardAgent yes + ForwardX11 yes + GSSAPIAuthentication no + LogLevel QUIET + ServerAliveInterval 60 + ServerAliveCountMax 2 + StrictHostKeyChecking no + TCPKeepAlive yes + UserKnownHostsFile /dev/null - file.".ssh/config".text = " Host github.com HostName github.com User git "; - sessionVariables = { - # ... - }; - - file.".config/nixpkgs/config.nix".text = '' + "${config.xdg.configHome}/nixpkgs/config.nix".text = '' { allowUnfree = true; } ''; + }; + + home = { + + sessionVariables = { + # ... + }; + packages = with pkgs; [ ]; }; diff --git a/home-manager/_mixins/users/gburd/desktop.nix b/home-manager/_mixins/users/gburd/desktop.nix index 392ffcf..93073d4 100644 --- a/home-manager/_mixins/users/gburd/desktop.nix +++ b/home-manager/_mixins/users/gburd/desktop.nix @@ -2,22 +2,21 @@ with lib.hm.gvariant; { imports = [ + ../../desktop ../../cli/signal.nix - ../../desktop/alacritty.nix ../../desktop/audio-recorder.nix ../../desktop/celluloid.nix ../../desktop/dconf-editor.nix ../../desktop/gitkraken.nix ../../desktop/gnome-shell.nix ../../desktop/gnome-sound-recorder.nix - ../../desktop/jetbrains-clion.nix - ../../desktop/jetbrains-idea-ultimate.nix ../../desktop/jetbrains-toolbox.nix ../../desktop/meld.nix ../../desktop/protonmail-bridge.nix ../../desktop/rhythmbox.nix ../../desktop/sublime-merge.nix ../../desktop/sublime.nix + ../../desktop/zed-editor.nix ../../services/keybase.nix ]; diff --git a/home-manager/_mixins/users/gburd/hosts/floki.nix b/home-manager/_mixins/users/gburd/hosts/floki.nix index e6234d5..a0dce05 100644 --- a/home-manager/_mixins/users/gburd/hosts/floki.nix +++ b/home-manager/_mixins/users/gburd/hosts/floki.nix @@ -33,6 +33,10 @@ with lib.hm.gvariant; load_dotenv = true ''; + file.".envrc".text = '' + ENVFS_RESOLVE_ALWAYS=1 + ''; + file.".config/Code/User/settings.json".text = '' { "editor.inlineSuggest.enabled": true, @@ -72,6 +76,7 @@ with lib.hm.gvariant; _1password _1password-gui autoconf + bash cfssl cmake dig diff --git a/nixos/_mixins/desktop/discord.nix b/nixos/_mixins/desktop/discord.nix index fd8105b..84db008 100644 --- a/nixos/_mixins/desktop/discord.nix +++ b/nixos/_mixins/desktop/discord.nix @@ -1,6 +1,6 @@ { pkgs, ... }: { environment.systemPackages = with pkgs; [ - discord-krisp + discord ]; } diff --git a/nixos/_mixins/desktop/zed-editor.nix b/nixos/_mixins/desktop/zed-editor.nix new file mode 100644 index 0000000..7de5e7a --- /dev/null +++ b/nixos/_mixins/desktop/zed-editor.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: { + environment.systemPackages = with pkgs; [ + zed-editor + ]; +} diff --git a/nixos/_mixins/hardware/gtx-1080ti.nix b/nixos/_mixins/hardware/gtx-1080ti.nix index 500b6c3..65dc7f6 100644 --- a/nixos/_mixins/hardware/gtx-1080ti.nix +++ b/nixos/_mixins/hardware/gtx-1080ti.nix @@ -45,5 +45,5 @@ in pulseaudio.support32Bit = true; }; - virtualisation.docker.enableNvidia = true; + hardware.nvidia-container-toolkit.enable = true; } diff --git a/nixos/_mixins/hardware/rtx-3080ti.nix b/nixos/_mixins/hardware/rtx-3080ti.nix index 45d06c5..7231c64 100644 --- a/nixos/_mixins/hardware/rtx-3080ti.nix +++ b/nixos/_mixins/hardware/rtx-3080ti.nix @@ -45,5 +45,5 @@ in pulseaudio.support32Bit = true; }; - virtualisation.docker.enableNvidia = true; + hardware.nvidia-container-toolkit.enable = true; } diff --git a/nixos/_mixins/users/gburd/default.nix b/nixos/_mixins/users/gburd/default.nix index 231b763..5cd7d8b 100644 --- a/nixos/_mixins/users/gburd/default.nix +++ b/nixos/_mixins/users/gburd/default.nix @@ -24,6 +24,7 @@ in ++ ifExists [ "docker" "podman" + config.services.kubo.group ]; # mkpasswd -m sha-512 @@ -41,5 +42,10 @@ in neededForUsers = true; }; + # https://github.com/Mic92/envfs + services.envfs.enable = true; + # https://wiki.nixos.org/wiki/IPFS + #kubo.enable = true; + # a location service `where-am-i` services.geoclue2.enable = true; } diff --git a/nixos/_mixins/users/gburd/desktop.nix b/nixos/_mixins/users/gburd/desktop.nix index 0be5aaa..4b54a06 100644 --- a/nixos/_mixins/users/gburd/desktop.nix +++ b/nixos/_mixins/users/gburd/desktop.nix @@ -6,9 +6,11 @@ ../../desktop/google-chrome.nix ../../desktop/jetbrains-toolbox.nix ../../desktop/lutris.nix + ../../desktop/discord.nix ../../desktop/spotify.nix ../../desktop/tilix.nix ../../desktop/vscode.nix + ../../desktop/zed-editor.nix ] ++ lib.optional (builtins.pathExists (../.. + "/desktop/${desktop}.nix")) ../../desktop/${desktop}.nix ++ lib.optional (builtins.pathExists (../.. + "/desktop/${desktop}-apps.nix")) ../../desktop/${desktop}-apps.nix; diff --git a/nixos/_mixins/virt/docker.nix b/nixos/_mixins/virt/docker.nix index 79e84f1..31b1f69 100644 --- a/nixos/_mixins/virt/docker.nix +++ b/nixos/_mixins/virt/docker.nix @@ -5,6 +5,7 @@ #https://nixos.wiki/wiki/Docker environment.systemPackages = with pkgs; [ docker-compose + docker-buildx ]; virtualisation = { diff --git a/nixos/workstation/floki/default.nix b/nixos/workstation/floki/default.nix index df27fc7..b293962 100644 --- a/nixos/workstation/floki/default.nix +++ b/nixos/workstation/floki/default.nix @@ -43,7 +43,8 @@ }; kernelModules = [ "kvm-intel" "nvidia" ]; - kernelPackages = pkgs.linuxPackages_latest; + #kernelPackages = pkgs.linuxPackages_latest; + kernelPackages = pkgs.linuxPackages; }; # https://nixos.wiki/wiki/Nvidia