From 988a12677b2ddc3cec5826739c06f33757e0df70 Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Tue, 19 Aug 2025 02:24:56 -0400 Subject: [PATCH 01/10] Added superfile terminal file manager config --- modules/home-manager/superfile.nix | 53 +++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 5 deletions(-) diff --git a/modules/home-manager/superfile.nix b/modules/home-manager/superfile.nix index cbcb31f..90fa90a 100644 --- a/modules/home-manager/superfile.nix +++ b/modules/home-manager/superfile.nix @@ -1,11 +1,54 @@ -{ pkgs, config, lib, ... }: -{ - options.speccon18.hm.superfile.enable = lib.mkEnableOption "enables specs superfile config"; +{ pkgs, config, lib, ... }: { + options.speccon18.hm.superfile.enable = + lib.mkEnableOption "enables specs superfile config"; config = lib.mkIf config.speccon18.hm.superfile.enable { programs.superfile = { - enable = true; - package = pkgs.superfile; + enable = true; + package = pkgs.superfile; + hotkeys = { + confirm = [ "enter" "" ]; + quit = [ "ctrl+c" "" ]; + list_up = [ "k" "up" ]; + list_down = [ "j" "down" ]; + page_up = [ "pgup" "" ]; + page_down = [ "pgdown" "" ]; + create_new_file_panel = [ "n" "" ]; + close_file_panel = [ "q" "" ]; + next_file_panel = [ "tab" "" ]; + previous_file_panel = [ "shift+tab" "" ]; + toggle_file_preview_panel = [ "f" "" ]; + open_sort_options_menu = [ "o" "" ]; + toggle_reverse_sort = [ "R" "" ]; + focus_on_process_bar = [ "ctrl+p" "" ]; + focus_on_sidebar = [ "ctrl+s" "" ]; + focus_on_metadata = [ "ctrl+d" "" ]; + file_panel_item_create = [ "a" "" ]; + file_panel_item_rename = [ "r" "" ]; + copy_items = [ "y" "" ]; + cut_items = [ "x" "" ]; + paste_items = [ "p" "" ]; + delete_items = [ "d" "" ]; + extract_file = [ "ctrl+e" "" ]; + compress_file = [ "ctrl+a" "" ]; + open_file_with_editor = [ "e" "" ]; + open_current_directory_with_editor = [ "E" "" ]; + pinned_directory = [ "P" "" ]; + toggle_dot_file = [ "." "" ]; + change_panel_mode = [ "m" "" ]; + open_help_menu = [ "?" "" ]; + open_command_line = [ ":" "" ]; + copy_path = [ "Y" "" ]; + copy_present_working_directory = [ "c" "" ]; + toggle_footer = [ "ctrl+f" "" ]; + confirm_typing = [ "enter" "" ]; + cancel_typing = [ "esc" "" ]; + parent_directory = [ "-" "" ]; + search_bar = [ "/" "" ]; + file_panel_select_mode_items_select_down = [ "J" "" ]; + file_panel_select_mode_items_select_up = [ "K" "" ]; + file_panel_select_all_items = [ "A" "" ]; + }; }; }; } From f3bc759943cd4f2df9452049cbaf4290744e8091 Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Tue, 19 Aug 2025 02:25:19 -0400 Subject: [PATCH 02/10] Alliased cat to bat for pretty colors --- modules/home-manager/zsh.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/home-manager/zsh.nix b/modules/home-manager/zsh.nix index 9818c56..30d3588 100644 --- a/modules/home-manager/zsh.nix +++ b/modules/home-manager/zsh.nix @@ -22,6 +22,7 @@ grep = "rg"; osrb = "sudo nixos-rebuild $1 --flake ~/Documents/code/nix/nixos-config/#katana"; nvim-cfg = "nvim /home/speccon18/.config/nvim/"; + cat = "bat"; }; localVariables = { From 4fafc9cff100391177c2682ae19ea003a1306115 Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Tue, 19 Aug 2025 02:28:28 -0400 Subject: [PATCH 03/10] Updated ssh config for use with wishlist --- modules/home-manager/ssh.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/home-manager/ssh.nix b/modules/home-manager/ssh.nix index 63261f5..447d0fa 100644 --- a/modules/home-manager/ssh.nix +++ b/modules/home-manager/ssh.nix @@ -9,7 +9,19 @@ hostname = "git.skdevstudios.com"; user = "git"; port = 2223; - identityFile = "~/.ssh/id_ed25519"; # Adjust as needed + identityFile = "~/.ssh/id_ed25519"; + }; + "olympus" = { + hostname = "192.168.1.5"; + user = "administrator"; + port = 22; + identityFile = "~/.ssh/id_ed25519"; + }; + "snips" = { + hostname = "snips.sh"; + user = "speccon18"; + port = 22; + identityFile = "~/.ssh/id_ed25519"; }; }; }; From 40b5b58fcb78778914b6127bc5717892b80258eb Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Tue, 19 Aug 2025 02:30:45 -0400 Subject: [PATCH 04/10] added TUI the desktop packages and cad/printing packages --- hosts/katana.nix | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/hosts/katana.nix b/hosts/katana.nix index ca27532..912a53f 100644 --- a/hosts/katana.nix +++ b/hosts/katana.nix @@ -15,7 +15,7 @@ }; }; }; - }; +}; # Boot boot = { @@ -56,7 +56,11 @@ firewall = { checkReversePath = "loose"; allowedTCPPorts = [ ]; - allowedUDPPorts = [ ]; + allowedUDPPorts = [ 1990 2021 ]; + extraCommands = '' + iptables -I INPUT -m pkttype --pkt-type multicast -j ACCEPT + iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT + ''; }; }; @@ -147,6 +151,14 @@ inputs.sk-extract.packages.${system}.default inputs.yunodo.packages.${system}.default signal-desktop + bat #cat but better in rust + xclip #fixes nvim clipboard + pop #send email form the terminal + invoice #CLI invoice generator + freecad #cad software for 3d modeling + openscad #cad software for 3d modeling programattically + orca-slicer #3d printer slicer + wishlist #ssh bastion ]; # Fonts From 92fea90ac6fe67ec938853b97e9e31486ecc3b94 Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Tue, 19 Aug 2025 02:31:06 -0400 Subject: [PATCH 05/10] Updated yunodo and sk-extract urls --- flake.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 04f3e68..2bc2897 100644 --- a/flake.nix +++ b/flake.nix @@ -10,8 +10,8 @@ sops-nix.url = "github:Mic92/sops-nix"; xremap.url = "github:xremap/nix-flake"; hyprland.url = "github:hyprwm/Hyprland"; - sk-extract.url = "git+https://git.skdevstudios.com/specCon18/sk_extract.git"; - yunodo.url = "git+https://git.skdevstudios.com/specCon18/yunodo_redux.git"; + sk-extract.url = "https://flakehub.com/f/specCon18/sk_extract/1.0.4"; + yunodo.url = "https://flakehub.com/f/specCon18/YUNODO/0.1.22"; }; outputs = { self, nixpkgs, ... }@inputs: { From 9ba38635df9f3c33004cdb4d7fac55e3cc3d4d6a Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Mon, 1 Sep 2025 16:20:13 -0400 Subject: [PATCH 06/10] got nvidia propritary Drivers working{ --- flake.lock | 66 ++++++--------- flake.nix | 2 +- hosts/katana.nix | 103 +++++++++++++----------- modules/home-manager/home.nix | 12 ++- modules/home-manager/superfile.nix | 2 +- modules/home-manager/zsh.nix | 11 +-- modules/system/applications/default.nix | 7 ++ modules/system/applications/fnv.nix | 62 ++++++++++++++ modules/system/default.nix | 1 + 9 files changed, 170 insertions(+), 96 deletions(-) create mode 100644 modules/system/applications/default.nix create mode 100644 modules/system/applications/fnv.nix diff --git a/flake.lock b/flake.lock index 98b6d28..a31c2e1 100644 --- a/flake.lock +++ b/flake.lock @@ -153,20 +153,6 @@ "type": "github" } }, - "flake-schemas": { - "locked": { - "lastModified": 1721999734, - "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", - "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", - "revCount": 75, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -824,16 +810,17 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1752308619, - "narHash": "sha256-pzrVLKRQNPrii06Rm09Q0i0dq3wt2t2pciT/GNq5EZQ=", - "rev": "650e572363c091045cdbc5b36b0f4c1f614d3058", - "revCount": 806273, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.806273%2Brev-650e572363c091045cdbc5b36b0f4c1f614d3058/019804de-4447-7b40-88ef-4e58b0e7553e/source.tar.gz" + "lastModified": 1753844155, + "narHash": "sha256-w81jpZeM3AtYlTKIhT05p3IqvJRIHZPyp0Acgb6hXWc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e44b8dc0882d66e2627a8ff252b04a22f4a629fd", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A" + "id": "nixpkgs", + "ref": "nixpkgs-unstable", + "type": "indirect" } }, "nixpkgs_2": { @@ -1027,17 +1014,16 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1751159013, - "narHash": "sha256-ROTyPZ5CxbNmCrXiQBQDyJOfEJrF2ZGExVoAcXwiEMA=", - "ref": "refs/heads/main", - "rev": "95063ba566db81a0a40e49d9ba02060a93087562", - "revCount": 65, - "type": "git", - "url": "https://git.skdevstudios.com/specCon18/sk_extract.git" + "lastModified": 1753934621, + "narHash": "sha256-figluHBPK0GxE1xJcdmYGR0qtXIDFj08Lgilo9xdBtU=", + "rev": "5fcad9436d6c2b3236979962ba283ecbd034db7a", + "revCount": 70, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/specCon18/sk_extract/1.0.4/01985ea8-3adb-7366-b632-f42ad2214319/source.tar.gz" }, "original": { - "type": "git", - "url": "https://git.skdevstudios.com/specCon18/sk_extract.git" + "type": "tarball", + "url": "https://flakehub.com/f/specCon18/sk_extract/1.0.4" } }, "sops-nix": { @@ -1238,21 +1224,19 @@ }, "yunodo": { "inputs": { - "flake-schemas": "flake-schemas", "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1752585859, - "narHash": "sha256-QQD++CqMHHzLU+FLjPgkhGfs5WwhtikarDEShyd3w3s=", - "ref": "refs/heads/main", - "rev": "9e9a9e4f1e4f909bb3d3bf32a2a80549fffa7786", - "revCount": 15, - "type": "git", - "url": "https://git.skdevstudios.com/specCon18/yunodo_redux.git" + "lastModified": 1717319278, + "narHash": "sha256-zVvNjZpriC5AO+nAzIcB0wuFbeidBtm8A78D9ZwGmKI=", + "rev": "375fe6c9827b7bce27404049102c26deaf54a250", + "revCount": 22, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/specCon18/YUNODO/0.1.22%2Brev-375fe6c9827b7bce27404049102c26deaf54a250/018fd844-6abd-7bea-a06b-1011111afc20/source.tar.gz" }, "original": { - "type": "git", - "url": "https://git.skdevstudios.com/specCon18/yunodo_redux.git" + "type": "tarball", + "url": "https://flakehub.com/f/specCon18/YUNODO/0.1.22" } } }, diff --git a/flake.nix b/flake.nix index 2bc2897..f54eea8 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "Nixos config flake"; + description = "My Nixos config flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; diff --git a/hosts/katana.nix b/hosts/katana.nix index 912a53f..93fd8e1 100644 --- a/hosts/katana.nix +++ b/hosts/katana.nix @@ -1,11 +1,12 @@ -{ config, pkgs, lib, self,inputs, ... }: +{config, pkgs, lib, self,inputs, ... }: { system.stateVersion = "23.05"; # Hardware + hardware = { enableRedistributableFirmware = lib.mkDefault true; - cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; bluetooth = { enable = true; # enables support for Bluetooth powerOnBoot = true; # powers up the default Bluetooth controller on boot @@ -24,11 +25,10 @@ efi.canTouchEfiVariables = true; }; initrd = { - availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; + availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"]; kernelModules = [ ]; }; kernelModules = [ "kvm-intel" ]; - extraModulePackages = [ ]; # Prevent tampering of the pkgstore readOnlyNixStore = true; }; @@ -53,15 +53,23 @@ networking = { hostName = "katana"; # Define your hostname. networkmanager.enable = true; #Enable Network Manager - firewall = { - checkReversePath = "loose"; - allowedTCPPorts = [ ]; - allowedUDPPorts = [ 1990 2021 ]; - extraCommands = '' - iptables -I INPUT -m pkttype --pkt-type multicast -j ACCEPT - iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT - ''; - }; + # ┏━━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓ + # ┃ Port # ┃ Type ┃ Purpose ┃ + # ┣━━━━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━┫ + # ┃ 1990 ┃ UDP ┃ Bambu Printer Comms ┃ + # ┃ 2021 ┃ UDP ┃ Bambu Printer Comms ┃ + # ┗━━━━━━━━━┻━━━━━━┻━━━━━━━━━━━━━━━━━━━━━┛ + firewall = { + checkReversePath = "loose"; + allowedTCPPorts = [ ]; + allowedUDPPorts = [ 1990 2021 ]; + + # Both iptables commands are to get multicast working for orca slicer for my bambu printer + extraCommands = '' + iptables -I INPUT -m pkttype --pkt-type multicast -j ACCEPT + iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT + ''; + }; }; @@ -84,19 +92,20 @@ programs.steam.enable = true; - # Services - services = { - pcscd.enable = true; - blueman.enable = false; - pulseaudio.enable = false; - printing.enable = true; - xserver = { - xkb = { - layout = "us"; - variant = ""; - }; + # Services + services = { + flatpak.enable = true; #flatpak + pcscd.enable = true; #yubikey + blueman.enable = false; #bluetooth + pulseaudio.enable = false; #Audio + printing.enable = true; #Printing + xserver = { + xkb = { + layout = "us"; + variant = ""; + }; + }; }; - }; # Package Manager nixpkgs = { @@ -120,25 +129,24 @@ }; environment.systemPackages = with pkgs; [ - gparted # Drive Partition Manger - bluez # Bluetooth Stack - # blueman # Bluetooth Management - home-manager # Dotfiles Management - pkg-config # Determine lib locations for linking during compliation + gparted # Drive Partition Manger + bluez # Bluetooth Stack + home-manager # Dotfiles Management + pkg-config # Determine lib locations for linking during compliation ripgrep # regex parser written in rust - openssl # SSL TLS Protocol - tree # Filetree to stdout - eza # LS rewritten in rust - zsh # Prefered Shell - dig #dns lookup - rage #file encryption - age-plugin-yubikey #plugin for rage to manage yubi-2fa - sops #file based secrets operations - direnv #used for development environments - gcc # Gnu C Compiler - bottom # Top rewritten in rust - felix-fm # File browser tui written in rust - discord # Discord for comms with friends + openssl # SSL TLS Protocol + tree # Filetree to stdout + eza # LS rewritten in rust + zsh # Prefered Shell + dig #dns lookup + rage #file encryption + age-plugin-yubikey #plugin for rage to manage yubi-2fa + sops #file based secrets operations + direnv #used for development environments + gcc # Gnu C Compiler + bottom # Top rewritten in rust + felix-fm # File browser tui written in rust + discord # Discord for comms with friends neovim # Modal Text Editor brave # Web Browser libation # Backup audible libraries @@ -148,8 +156,8 @@ yubioath-flutter # Yubico Authenticator Client lazygit # Git tui written in rust glow # Markdown renderer for terminal - inputs.sk-extract.packages.${system}.default - inputs.yunodo.packages.${system}.default + inputs.sk-extract.packages.${system}.default + inputs.yunodo.packages.${system}.default signal-desktop bat #cat but better in rust xclip #fixes nvim clipboard @@ -159,6 +167,11 @@ openscad #cad software for 3d modeling programattically orca-slicer #3d printer slicer wishlist #ssh bastion + fd # required for nvim config telescope + rustdesk #remote tech support + pciutils #lspci + lshw # for getting bus ids for PRIME + dracut # for lsinitrd ]; # Fonts diff --git a/modules/home-manager/home.nix b/modules/home-manager/home.nix index c6f96cf..a3db23f 100644 --- a/modules/home-manager/home.nix +++ b/modules/home-manager/home.nix @@ -27,7 +27,7 @@ speccon18.hm.zsh.enable = true; speccon18.hm.rio.enable = false; speccon18.hm.ssh.enable = true; - speccon18.hm.superfile.enable = true; + speccon18.hm.superfile.enable = false; # Home Manager needs a bit of information about you and the paths it should # manage. home = { @@ -53,7 +53,7 @@ superfile #rio #imgcat - + # # Adds the 'hello' command to your environment. It prints a friendly # # "Hello, world!" when run. # pkgs.hello @@ -71,7 +71,13 @@ # echo "Hello, ${config.home.username}!" # '') ]; - + sessionVariables = { + POP_SMTP_HOST = "smtp.protonmail.ch"; + POP_SMTP_PORT = "587"; + POP_SMTP_USERNAME = "steven.carpenter@skdevstudios.com"; + POP_FROM = "steven.carpenter@skdevstudios.com"; + POP_SMTP_PASSWORD = "2SJ83CHLPPVQ2RLT"; + }; # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. file = { diff --git a/modules/home-manager/superfile.nix b/modules/home-manager/superfile.nix index 90fa90a..8e9c2a7 100644 --- a/modules/home-manager/superfile.nix +++ b/modules/home-manager/superfile.nix @@ -8,7 +8,7 @@ package = pkgs.superfile; hotkeys = { confirm = [ "enter" "" ]; - quit = [ "ctrl+c" "" ]; + quit = [ "ctrl+q" "" ]; list_up = [ "k" "up" ]; list_down = [ "j" "down" ]; page_up = [ "pgup" "" ]; diff --git a/modules/home-manager/zsh.nix b/modules/home-manager/zsh.nix index 30d3588..32b3d7a 100644 --- a/modules/home-manager/zsh.nix +++ b/modules/home-manager/zsh.nix @@ -17,12 +17,13 @@ syntaxHighlighting.enable = lib.mkDefault true; shellAliases = { - ls = "eza -l"; - lsa = "eza -al"; - grep = "rg"; + mo2 = "steam-run steamtinkerlaunch mo2 start"; + ls = "eza --icons -alog --group-directories-first --no-permissions --no-time --total-size --git --header"; + #grep = "rg"; osrb = "sudo nixos-rebuild $1 --flake ~/Documents/code/nix/nixos-config/#katana"; - nvim-cfg = "nvim /home/speccon18/.config/nvim/"; - cat = "bat"; + nvim-cfg = "nvim /home/speccon18/.config/nvim/"; + edit-nix-cfg = "nvim --cmd 'cd /home/speccon18/Documents/code/nix/nixos-config' flake.nix"; + cat = "bat"; }; localVariables = { diff --git a/modules/system/applications/default.nix b/modules/system/applications/default.nix new file mode 100644 index 0000000..c63a8ab --- /dev/null +++ b/modules/system/applications/default.nix @@ -0,0 +1,7 @@ +{pkgs,config,...}:{ + imports = [ + ./fnv.nix + ]; + + speccon18.applications.fnv.enable = true; +} diff --git a/modules/system/applications/fnv.nix b/modules/system/applications/fnv.nix new file mode 100644 index 0000000..457eb6b --- /dev/null +++ b/modules/system/applications/fnv.nix @@ -0,0 +1,62 @@ +{ pkgs, config, lib, ... }: { + options.speccon18.applications.fnv.enable = + lib.mkEnableOption "enable config for Fallout New Vegas"; + + config = lib.mkIf config.speccon18.applications.fnv.enable { + + # Load nvidia driver for Xorg and Wayland + # For offloading, `modesetting` is needed additionally, + # otherwise the X-server will be running permanently on nvidia, + # thus keeping the GPU always on (see `nvidia-smi`). + services.xserver.videoDrivers = [ + "nvidia" + ]; + + # Blacklist Nouveau driver to force 3060 to use nvidia driver + boot.blacklistedKernelModules = [ "nouveau" ]; + + # Enable OpenGL + hardware = { + graphics = { + enable = true; + enable32Bit = true; + + }; + nvidia = { + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = config.boot.kernelPackages.nvidiaPackages.latest; + prime = { + sync.enable = true; + # Make sure to use the correct Bus ID values for your system! + intelBusId = "PCI:0:2:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + # Modesetting is required. + modesetting.enable = true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + # Enable this if you have graphical corruption issues or application crashes after waking + # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead + # of just the bare essentials. + powerManagement.enable = false; + + # Fine-grained power management. Turns off GPU when not in use. + # Experimental and only works on modern Nvidia GPUs (Turing or newer). + powerManagement.finegrained = false; + + # Use the NVidia open source kernel module (not to be confused with the + # independent third-party "nouveau" open source driver). + # Support is limited to the Turing and later architectures. Full list of + # supported GPUs is at: + # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus + # Only available from driver 515.43.04+ + open = true; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = true; + }; + }; + }; +} + diff --git a/modules/system/default.nix b/modules/system/default.nix index 1943ebd..d3d4f37 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -2,5 +2,6 @@ imports = [ ./desktop-environments ./services + ./applications ]; } From 35289d7a97e3967e49ad963ca956ffbfc234992e Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Fri, 5 Sep 2025 18:24:40 -0400 Subject: [PATCH 07/10] removed unnecessary deps for fnv --- hosts/katana.nix | 3 -- modules/system/applications/fnv.nix | 30 +++++++++++++------ .../system/desktop-environments/default.nix | 4 +-- modules/system/desktop-environments/gnome.nix | 20 ++++++------- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/hosts/katana.nix b/hosts/katana.nix index 93fd8e1..1b62752 100644 --- a/hosts/katana.nix +++ b/hosts/katana.nix @@ -169,9 +169,6 @@ wishlist #ssh bastion fd # required for nvim config telescope rustdesk #remote tech support - pciutils #lspci - lshw # for getting bus ids for PRIME - dracut # for lsinitrd ]; # Fonts diff --git a/modules/system/applications/fnv.nix b/modules/system/applications/fnv.nix index 457eb6b..3a6a935 100644 --- a/modules/system/applications/fnv.nix +++ b/modules/system/applications/fnv.nix @@ -4,24 +4,24 @@ config = lib.mkIf config.speccon18.applications.fnv.enable { - # Load nvidia driver for Xorg and Wayland - # For offloading, `modesetting` is needed additionally, - # otherwise the X-server will be running permanently on nvidia, - # thus keeping the GPU always on (see `nvidia-smi`). - services.xserver.videoDrivers = [ - "nvidia" - ]; + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["nvidia"]; + # Blacklist Nouveau driver to force 3060 to use nvidia driver boot.blacklistedKernelModules = [ "nouveau" ]; - # Enable OpenGL + # Enabling Gamemode for better game performance + programs.gamemode.enable = true; + hardware = { + + # Enable OpenGL graphics = { enable = true; enable32Bit = true; - }; + nvidia = { # Optionally, you may need to select the appropriate driver version for your specific GPU. package = config.boot.kernelPackages.nvidiaPackages.latest; @@ -57,6 +57,18 @@ nvidiaSettings = true; }; }; + environment.systemPackages = with pkgs; [ + bottles # Wine Prefix Management + winetricks # For more complex editing of prefix and possibly needed for SDL2 + gamescope # micro compositor written by valve to help with better scaling and alt tabbing + mangohud # performance overlay hud using for testing performance of instance + goverlay # gui to manage huds + vkd3d # vulken to directx + wine + wineWowPackages.stable + cabextract + zenity + ]; }; } diff --git a/modules/system/desktop-environments/default.nix b/modules/system/desktop-environments/default.nix index 1046e58..45f5025 100644 --- a/modules/system/desktop-environments/default.nix +++ b/modules/system/desktop-environments/default.nix @@ -5,8 +5,8 @@ ./hyprland.nix ./tuigreet.nix ]; - speccon18.desktop.budgie.enable = true; - speccon18.desktop.gnome.enable = false; + speccon18.desktop.budgie.enable = false; + speccon18.desktop.gnome.enable = true; speccon18.desktop.hyprland.enable = false; speccon18.desktop.tuigreet.enable = false; } diff --git a/modules/system/desktop-environments/gnome.nix b/modules/system/desktop-environments/gnome.nix index c5b5407..663294c 100644 --- a/modules/system/desktop-environments/gnome.nix +++ b/modules/system/desktop-environments/gnome.nix @@ -17,28 +17,25 @@ # }; # }; # Gnome extensions - environment.systemPackages = with pkgs; [ ]; + environment.systemPackages = with pkgs.gnome; [ ]; services = { gnome = { - core-utilities.enable = false; + core-apps.enable = true; gnome-keyring.enable = true; }; - + displayManager.defaultSession = lib.mkDefault "gnome"; xserver = { enable = true; layout = "us"; xkbVariant = ""; - displayManager = { - gdm = { - enable = true; - wayland = true; - }; - defaultSession = lib.mkDefault "budgie-desktop"; - }; + displayManager.gdm = { + enable = true; + wayland = true; + }; desktopManager = { xterm.enable = false; - gnome.enable = false; + gnome.enable = true; }; }; }; @@ -51,6 +48,7 @@ portal = { enable = lib.mkDefault true; }; mime.defaultApplications = { "text/markdown" = "nvim"; + "x-scheme-handler/nxm" = "mo2-nxm-handler.desktop"; }; }; }; From 12cbfd1f98955618206657a90ae7e4995b0f502b Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Sun, 15 Mar 2026 20:43:39 -0400 Subject: [PATCH 08/10] removed starship --- flake.lock | 6 +- hosts/katana.nix | 19 +- modules/home-manager/alacritty.nix | 47 +- modules/home-manager/git.nix | 5 +- modules/home-manager/starship.nix | 10 - modules/system/applications/fnv.nix | 2 - .../system/applications/melonloader/deps.json | 797 ++++++++++++++++++ .../applications/melonloader/package.nix | 56 ++ .../system/applications/melonloader/update.sh | 20 + modules/system/desktop-environments/gnome.nix | 3 - 10 files changed, 915 insertions(+), 50 deletions(-) delete mode 100644 modules/home-manager/starship.nix create mode 100644 modules/system/applications/melonloader/deps.json create mode 100644 modules/system/applications/melonloader/package.nix create mode 100644 modules/system/applications/melonloader/update.sh diff --git a/flake.lock b/flake.lock index a31c2e1..a11759c 100644 --- a/flake.lock +++ b/flake.lock @@ -825,11 +825,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1752436162, - "narHash": "sha256-Kt1UIPi7kZqkSc5HVj6UY5YLHHEzPBkgpNUByuyxtlw=", + "lastModified": 1767313136, + "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dfcd5b901dbab46c9c6e80b265648481aafb01f8", + "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", "type": "github" }, "original": { diff --git a/hosts/katana.nix b/hosts/katana.nix index 1b62752..b9890b5 100644 --- a/hosts/katana.nix +++ b/hosts/katana.nix @@ -90,8 +90,15 @@ }; }; - programs.steam.enable = true; - + programs = { + steam.enable = true; + nix-ld = { + enable = true; + libraries = with pkgs; [ + icu + ]; + }; + }; # Services services = { flatpak.enable = true; #flatpak @@ -127,7 +134,6 @@ options = "--delete-older-than 7d"; }; }; - environment.systemPackages = with pkgs; [ gparted # Drive Partition Manger bluez # Bluetooth Stack @@ -169,6 +175,13 @@ wishlist #ssh bastion fd # required for nvim config telescope rustdesk #remote tech support + prismlauncher + xmage + librepcb + jq + obsidian + fuse + fuse3 ]; # Fonts diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix index d582ce5..aa2e720 100644 --- a/modules/home-manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -2,6 +2,7 @@ { options.speccon18.hm.alacritty.enable = lib.mkEnableOption "Enable Alacritty"; + config = lib.mkIf config.speccon18.hm.alacritty.enable { programs.alacritty = { enable = true; @@ -15,35 +16,29 @@ opacity = 1.0; title = "Alacritty"; }; - colors = { - primary = { - background = "#1d1f21"; - foreground = "#c5c8c6"; - }; - cursor = { - text = "CellBackground"; - cursor = "CellForeground"; - }; + + general = { + import = ["~/.config/alacritty/themes/oasis-abyss.toml"]; + }; + + font = { normal = { - black = "#363537"; - red = "#FC618D"; - green = "#7BD88F"; - yellow = "#FCE566"; - blue = "#FD9353"; - magenta = "#948AE3"; - cyan = "#5AD4E6"; - white = "#F7F1FF"; + family = "Droid Sans Mono Nerd Font"; + style = "Regular"; }; - bright = { - black = "#69676C"; - red = "#FC618D"; - green = "#7BD88F"; - yellow = "#FCE566"; - blue = "#FD9353"; - magenta = "#948AE3"; - cyan = "#5AD4E6"; - white = "#F7F1FF"; + bold = { + family = "Droid Sans Mono Nerd Font"; + style = "Bold"; }; + italic = { + family = "Droid Sans Mono Nerd Font"; + style = "Italic"; + }; + bold_italic = { + family = "Droid Sans Mono Nerd Font"; + style = "Bold Italic"; + }; + size = 12.0; }; }; }; diff --git a/modules/home-manager/git.nix b/modules/home-manager/git.nix index e41fb7a..70f7c01 100644 --- a/modules/home-manager/git.nix +++ b/modules/home-manager/git.nix @@ -6,9 +6,8 @@ userName = "specCon18"; userEmail = "steven.carpenter@skdevstudios.com"; extraConfig = { - init = { - defaultBranch = "main"; - }; + init.defaultBranch = "main"; + pull.rebase = false; }; }; }; diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix deleted file mode 100644 index 70f16c0..0000000 --- a/modules/home-manager/starship.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, config, lib, ...}: -{ - options.speccon18.hm.starship.enable = lib.mkEnableOption "enables specs custom starship config"; - config = lib.mkIf config.speccon18.hm.starship.enable { - programs.starship = { - enable = true; - enableZshIntegration = true; - }; - }; -} diff --git a/modules/system/applications/fnv.nix b/modules/system/applications/fnv.nix index 3a6a935..d61d8a7 100644 --- a/modules/system/applications/fnv.nix +++ b/modules/system/applications/fnv.nix @@ -3,8 +3,6 @@ lib.mkEnableOption "enable config for Fallout New Vegas"; config = lib.mkIf config.speccon18.applications.fnv.enable { - - # Load nvidia driver for Xorg and Wayland services.xserver.videoDrivers = ["nvidia"]; diff --git a/modules/system/applications/melonloader/deps.json b/modules/system/applications/melonloader/deps.json new file mode 100644 index 0000000..34643fa --- /dev/null +++ b/modules/system/applications/melonloader/deps.json @@ -0,0 +1,797 @@ +[ + { + "pname": "Avalonia", + "version": "11.2.1", + "hash": "sha256-KdjhwDKlii12v7HNI3NsYAM1qYoXKRsVN2scQJbYMTc=" + }, + { + "pname": "Avalonia.Angle.Windows.Natives", + "version": "2.1.22045.20230930", + "hash": "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc=" + }, + { + "pname": "Avalonia.BuildServices", + "version": "0.0.29", + "hash": "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY=" + }, + { + "pname": "Avalonia.Controls.ColorPicker", + "version": "11.2.1", + "hash": "sha256-yhjVW5pH8Y0JF1vbfcdL5MQfx24wb+Lkp8OBo51he8U=" + }, + { + "pname": "Avalonia.Controls.DataGrid", + "version": "11.2.1", + "hash": "sha256-IFzA7ztuhgddckQV9DlwkUTSk3RQqkJddCHAtu9yhbY=" + }, + { + "pname": "Avalonia.Desktop", + "version": "11.2.1", + "hash": "sha256-Bu4ZEu81g6oWnxd+ew9BZ8zwYETjY8InQsaYvYnGqX4=" + }, + { + "pname": "Avalonia.Diagnostics", + "version": "11.2.1", + "hash": "sha256-gJhi2clOc+a4NDRZfEoT5BwLTq8DLAWtaxo5FI/OJaY=" + }, + { + "pname": "Avalonia.Fonts.Inter", + "version": "11.2.1", + "hash": "sha256-hX514Rhs9inXk7fXOL7siMOOHi9XR8S2As3ffR8Wp18=" + }, + { + "pname": "Avalonia.FreeDesktop", + "version": "11.2.1", + "hash": "sha256-2j9VfG8uD2BVF+p9REPQ4dp8E41vUh+R3Lh6v5AVmHA=" + }, + { + "pname": "Avalonia.Native", + "version": "11.2.1", + "hash": "sha256-bBJsvp6gHfBcAWPNKpAAFCk1Wi0gP3tw4qimI93px0U=" + }, + { + "pname": "Avalonia.Remote.Protocol", + "version": "11.2.1", + "hash": "sha256-RlO65QbExBdjEUY66CTlHefRdTZWzZbN4ksibVXxKv4=" + }, + { + "pname": "Avalonia.Skia", + "version": "11.2.1", + "hash": "sha256-F8Q4q5MaeyCkAm4rc6dPG1DhH5mZMvGzzyr2Z3AUe8s=" + }, + { + "pname": "Avalonia.Themes.Fluent", + "version": "11.2.1", + "hash": "sha256-yDCJJ9OkL5EIEXr05pdnOK1p+Yp7YIRJn4MVjLX84kE=" + }, + { + "pname": "Avalonia.Themes.Simple", + "version": "11.2.1", + "hash": "sha256-cdMQ03nOT8jL9cnZrntpzfwgMF/dctE9610eXPV60tA=" + }, + { + "pname": "Avalonia.Win32", + "version": "11.2.1", + "hash": "sha256-QsQXXKz8vqKwaijR/fZINXHH7Hripwdm+92i9f1k3Xg=" + }, + { + "pname": "Avalonia.X11", + "version": "11.2.1", + "hash": "sha256-Y2Zem7GhWFHHUwwDT1qUldUCRt8vWZZXi3Fxq+p/Pdg=" + }, + { + "pname": "CommunityToolkit.Mvvm", + "version": "8.3.2", + "hash": "sha256-zY+iB5Rj/8ru0xpRWwFLFO6JI3UFB/XHnx9pWmrZCAs=" + }, + { + "pname": "Gameloop.Vdf", + "version": "0.6.2", + "hash": "sha256-z34mcUx7qcaFlVsenGKYuxFNCQNWwOeFZYGecbRT3ZA=" + }, + { + "pname": "HarfBuzzSharp", + "version": "7.3.0.2", + "hash": "sha256-ibgoqzT1NV7Qo5e7X2W6Vt7989TKrkd2M2pu+lhSDg8=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.Linux", + "version": "7.3.0.2", + "hash": "sha256-SSfyuyBaduGobJW+reqyioWHhFWsQ+FXa2Gn7TiWxrU=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.macOS", + "version": "7.3.0.2", + "hash": "sha256-dmEqR9MmpCwK8AuscfC7xUlnKIY7+Nvi06V0u5Jff08=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.WebAssembly", + "version": "7.3.0.3-preview.2.2", + "hash": "sha256-1NlcTnXrWUYZ2r2/N3SPxNIjNcyIpiiv3g7h8XxpNkM=" + }, + { + "pname": "HarfBuzzSharp.NativeAssets.Win32", + "version": "7.3.0.2", + "hash": "sha256-x4iM3NHs9VyweG57xA74yd4uLuXly147ooe0mvNQ8zo=" + }, + { + "pname": "MicroCom.Runtime", + "version": "0.11.0", + "hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0=" + }, + { + "pname": "Microsoft.CSharp", + "version": "4.7.0", + "hash": "sha256-Enknv2RsFF68lEPdrf5M+BpV1kHoLTVRApKUwuk/pj0=" + }, + { + "pname": "Microsoft.Extensions.Primitives", + "version": "5.0.1", + "hash": "sha256-e4uoLnUSmON4If9qJh78+4z14IzW9qCu5YkqLdQqWQU=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.0", + "hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM=" + }, + { + "pname": "Microsoft.NETCore.Platforms", + "version": "1.1.1", + "hash": "sha256-8hLiUKvy/YirCWlFwzdejD2Db3DaXhHxT7GSZx/znJg=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.1.0", + "hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ=" + }, + { + "pname": "Microsoft.NETCore.Targets", + "version": "1.1.3", + "hash": "sha256-WLsf1NuUfRWyr7C7Rl9jiua9jximnVvzy6nk2D2bVRc=" + }, + { + "pname": "Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg=" + }, + { + "pname": "Microsoft.Win32.SystemEvents", + "version": "9.0.0", + "hash": "sha256-sN16l3f89HTDlf80BRZQIIbYg33B4Z0BRtyjDcNf6IU=" + }, + { + "pname": "NETStandard.Library", + "version": "1.6.1", + "hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw=" + }, + { + "pname": "runtime.any.System.Collections", + "version": "4.3.0", + "hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-8yLKFt2wQxkEf7fNfzB+cPUCjYn2qbqNgQ1+EeY2h/I=" + }, + { + "pname": "runtime.any.System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI=" + }, + { + "pname": "runtime.any.System.Globalization", + "version": "4.3.0", + "hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU=" + }, + { + "pname": "runtime.any.System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-AYh39tgXJVFu8aLi9Y/4rK8yWMaza4S4eaxjfcuEEL4=" + }, + { + "pname": "runtime.any.System.IO", + "version": "4.3.0", + "hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE=" + }, + { + "pname": "runtime.any.System.Reflection", + "version": "4.3.0", + "hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk=" + }, + { + "pname": "runtime.any.System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8=" + }, + { + "pname": "runtime.any.System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ=" + }, + { + "pname": "runtime.any.System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4=" + }, + { + "pname": "runtime.any.System.Runtime", + "version": "4.3.0", + "hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM=" + }, + { + "pname": "runtime.any.System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4=" + }, + { + "pname": "runtime.any.System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA=" + }, + { + "pname": "runtime.any.System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs=" + }, + { + "pname": "runtime.any.System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM=" + }, + { + "pname": "runtime.any.System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4=" + }, + { + "pname": "runtime.any.System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-BgHxXCIbicVZtpgMimSXixhFC3V+p5ODqeljDjO8hCs=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps=" + }, + { + "pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-EbnOqPOrAgI9eNheXLR++VnY4pHzMsEKw1dFPJ/Fl2c=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I=" + }, + { + "pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-mVg02TNvJc1BuHU03q3fH3M6cMgkKaQPBxraSHl/Btg=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA=" + }, + { + "pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-g9Uiikrl+M40hYe0JMlGHe/lrR0+nN05YF64wzLmBBA=" + }, + { + "pname": "runtime.native.System", + "version": "4.3.0", + "hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y=" + }, + { + "pname": "runtime.native.System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8=" + }, + { + "pname": "runtime.native.System.Net.Http", + "version": "4.3.0", + "hash": "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I=" + }, + { + "pname": "runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-xqF6LbbtpzNC9n1Ua16PnYgXHU0LvblEROTfK4vIxX8=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM=" + }, + { + "pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-aJBu6Frcg6webvzVcKNoUP1b462OAqReF2giTSyBzCQ=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4=" + }, + { + "pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-Mpt7KN2Kq51QYOEVesEjhWcCGTqWckuPf8HlQ110qLY=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", + "version": "4.3.0", + "hash": "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0=" + }, + { + "pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-JvMltmfVC53mCZtKDHE69G3RT6Id28hnskntP9MMP9U=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4=" + }, + { + "pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-QfFxWTVRNBhN4Dm1XRbCf+soNQpy81PsZed3x6op/bI=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g=" + }, + { + "pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-EaJHVc9aDZ6F7ltM2JwlIuiJvqM67CKRq682iVSo+pU=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc=" + }, + { + "pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-PHR0+6rIjJswn89eoiWYY1DuU8u6xRJLrtjykAMuFmA=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw=" + }, + { + "pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", + "version": "4.3.2", + "hash": "sha256-LFkh7ua7R4rI5w2KGjcHlGXLecsncCy6kDXLuy4qD/Q=" + }, + { + "pname": "runtime.unix.Microsoft.Win32.Primitives", + "version": "4.3.0", + "hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg=" + }, + { + "pname": "runtime.unix.System.Console", + "version": "4.3.1", + "hash": "sha256-dxyn/1Px4FKLZ2QMUrkFpW619Y1lhPeTiGLWYM6IbpY=" + }, + { + "pname": "runtime.unix.System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI=" + }, + { + "pname": "runtime.unix.System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I=" + }, + { + "pname": "runtime.unix.System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-pHJ+I6i16MV6m77uhTC6GPY6jWGReE3SSP3fVB59ti0=" + }, + { + "pname": "runtime.unix.System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-IvgOeA2JuBjKl5yAVGjPYMPDzs9phb3KANs95H9v1w4=" + }, + { + "pname": "runtime.unix.System.Private.Uri", + "version": "4.3.0", + "hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs=" + }, + { + "pname": "runtime.unix.System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4=" + }, + { + "pname": "Semver", + "version": "3.0.0", + "hash": "sha256-nX5ka27GY6pz9S73H6sLSQCrnAyyI9xDVdzrtlMp4BQ=" + }, + { + "pname": "SkiaSharp", + "version": "2.88.8", + "hash": "sha256-rD5gc4SnlRTXwz367uHm8XG5eAIQpZloGqLRGnvNu0A=" + }, + { + "pname": "SkiaSharp.NativeAssets.Linux", + "version": "2.88.8", + "hash": "sha256-fOmNbbjuTazIasOvPkd2NPmuQHVCWPnow7AxllRGl7Y=" + }, + { + "pname": "SkiaSharp.NativeAssets.macOS", + "version": "2.88.8", + "hash": "sha256-CdcrzQHwCcmOCPtS8EGtwsKsgdljnH41sFytW7N9PmI=" + }, + { + "pname": "SkiaSharp.NativeAssets.WebAssembly", + "version": "2.88.8", + "hash": "sha256-GWWsE98f869LiOlqZuXMc9+yuuIhey2LeftGNk3/z3w=" + }, + { + "pname": "SkiaSharp.NativeAssets.Win32", + "version": "2.88.8", + "hash": "sha256-b8Vb94rNjwPKSJDQgZ0Xv2dWV7gMVFl5GwTK/QiZPPM=" + }, + { + "pname": "System.AppContext", + "version": "4.3.0", + "hash": "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg=" + }, + { + "pname": "System.Buffers", + "version": "4.3.0", + "hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk=" + }, + { + "pname": "System.Collections", + "version": "4.3.0", + "hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc=" + }, + { + "pname": "System.Collections.Concurrent", + "version": "4.3.0", + "hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI=" + }, + { + "pname": "System.Collections.NonGeneric", + "version": "4.3.0", + "hash": "sha256-8/yZmD4jjvq7m68SPkJZLBQ79jOTOyT5lyzX4SCYAx8=" + }, + { + "pname": "System.Collections.Specialized", + "version": "4.3.0", + "hash": "sha256-QNg0JJNx+zXMQ26MJRPzH7THdtqjrNtGLUgaR1SdvOk=" + }, + { + "pname": "System.ComponentModel", + "version": "4.3.0", + "hash": "sha256-i00uujMO4JEDIEPKLmdLY3QJ6vdSpw6Gh9oOzkFYBiU=" + }, + { + "pname": "System.ComponentModel.Primitives", + "version": "4.3.0", + "hash": "sha256-IOMJleuIBppmP4ECB3uftbdcgL7CCd56+oAD/Sqrbus=" + }, + { + "pname": "System.ComponentModel.TypeConverter", + "version": "4.3.0", + "hash": "sha256-PSDiPYt8PgTdTUBz+GH6lHCaM1YgfObneHnZsc8Fz54=" + }, + { + "pname": "System.Console", + "version": "4.3.0", + "hash": "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo=" + }, + { + "pname": "System.Diagnostics.Debug", + "version": "4.3.0", + "hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM=" + }, + { + "pname": "System.Diagnostics.DiagnosticSource", + "version": "4.3.0", + "hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw=" + }, + { + "pname": "System.Diagnostics.Tools", + "version": "4.3.0", + "hash": "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y=" + }, + { + "pname": "System.Diagnostics.Tracing", + "version": "4.3.0", + "hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q=" + }, + { + "pname": "System.Drawing.Common", + "version": "9.0.0", + "hash": "sha256-fOGssTUHAkZtPMVCvxzcB39CSXRI+Gj4QFLWkR15iz0=" + }, + { + "pname": "System.Globalization", + "version": "4.3.0", + "hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI=" + }, + { + "pname": "System.Globalization.Calendars", + "version": "4.3.0", + "hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc=" + }, + { + "pname": "System.Globalization.Extensions", + "version": "4.3.0", + "hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk=" + }, + { + "pname": "System.IO", + "version": "4.3.0", + "hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY=" + }, + { + "pname": "System.IO.Compression", + "version": "4.3.0", + "hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA=" + }, + { + "pname": "System.IO.Compression.ZipFile", + "version": "4.3.0", + "hash": "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs=" + }, + { + "pname": "System.IO.FileSystem", + "version": "4.3.0", + "hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw=" + }, + { + "pname": "System.IO.FileSystem.Primitives", + "version": "4.3.0", + "hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg=" + }, + { + "pname": "System.IO.Pipelines", + "version": "8.0.0", + "hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE=" + }, + { + "pname": "System.Linq", + "version": "4.3.0", + "hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A=" + }, + { + "pname": "System.Linq.Expressions", + "version": "4.3.0", + "hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8=" + }, + { + "pname": "System.Net.Http", + "version": "4.3.4", + "hash": "sha256-FMoU0K7nlPLxoDju0NL21Wjlga9GpnAoQjsFhFYYt00=" + }, + { + "pname": "System.Net.NameResolution", + "version": "4.3.0", + "hash": "sha256-eGZwCBExWsnirWBHyp2sSSSXp6g7I6v53qNmwPgtJ5c=" + }, + { + "pname": "System.Net.Primitives", + "version": "4.3.0", + "hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE=" + }, + { + "pname": "System.Net.Sockets", + "version": "4.3.0", + "hash": "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus=" + }, + { + "pname": "System.ObjectModel", + "version": "4.3.0", + "hash": "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q=" + }, + { + "pname": "System.Private.Uri", + "version": "4.3.2", + "hash": "sha256-jB2+W3tTQ6D9XHy5sEFMAazIe1fu2jrENUO0cb48OgU=" + }, + { + "pname": "System.Reflection", + "version": "4.3.0", + "hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY=" + }, + { + "pname": "System.Reflection.Emit", + "version": "4.3.0", + "hash": "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU=" + }, + { + "pname": "System.Reflection.Emit.ILGeneration", + "version": "4.3.0", + "hash": "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA=" + }, + { + "pname": "System.Reflection.Emit.Lightweight", + "version": "4.3.0", + "hash": "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I=" + }, + { + "pname": "System.Reflection.Extensions", + "version": "4.3.0", + "hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk=" + }, + { + "pname": "System.Reflection.Primitives", + "version": "4.3.0", + "hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM=" + }, + { + "pname": "System.Reflection.TypeExtensions", + "version": "4.3.0", + "hash": "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng=" + }, + { + "pname": "System.Resources.ResourceManager", + "version": "4.3.0", + "hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo=" + }, + { + "pname": "System.Runtime", + "version": "4.3.0", + "hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg=" + }, + { + "pname": "System.Runtime", + "version": "4.3.1", + "hash": "sha256-R9T68AzS1PJJ7v6ARz9vo88pKL1dWqLOANg4pkQjkA0=" + }, + { + "pname": "System.Runtime.Extensions", + "version": "4.3.0", + "hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o=" + }, + { + "pname": "System.Runtime.Handles", + "version": "4.3.0", + "hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms=" + }, + { + "pname": "System.Runtime.InteropServices", + "version": "4.3.0", + "hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI=" + }, + { + "pname": "System.Runtime.InteropServices.RuntimeInformation", + "version": "4.3.0", + "hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA=" + }, + { + "pname": "System.Runtime.Numerics", + "version": "4.3.0", + "hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc=" + }, + { + "pname": "System.Security.Claims", + "version": "4.3.0", + "hash": "sha256-Fua/rDwAqq4UByRVomAxMPmDBGd5eImRqHVQIeSxbks=" + }, + { + "pname": "System.Security.Cryptography.Algorithms", + "version": "4.3.0", + "hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8=" + }, + { + "pname": "System.Security.Cryptography.Cng", + "version": "4.3.0", + "hash": "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw=" + }, + { + "pname": "System.Security.Cryptography.Csp", + "version": "4.3.0", + "hash": "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ=" + }, + { + "pname": "System.Security.Cryptography.Encoding", + "version": "4.3.0", + "hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss=" + }, + { + "pname": "System.Security.Cryptography.OpenSsl", + "version": "4.3.0", + "hash": "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4=" + }, + { + "pname": "System.Security.Cryptography.Primitives", + "version": "4.3.0", + "hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318=" + }, + { + "pname": "System.Security.Cryptography.X509Certificates", + "version": "4.3.0", + "hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0=" + }, + { + "pname": "System.Security.Principal", + "version": "4.3.0", + "hash": "sha256-rjudVUHdo8pNJg2EVEn0XxxwNo5h2EaYo+QboPkXlYk=" + }, + { + "pname": "System.Security.Principal.Windows", + "version": "4.3.0", + "hash": "sha256-mbdLVUcEwe78p3ZnB6jYsizNEqxMaCAWI3tEQNhRQAE=" + }, + { + "pname": "System.Text.Encoding", + "version": "4.3.0", + "hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg=" + }, + { + "pname": "System.Text.Encoding.Extensions", + "version": "4.3.0", + "hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc=" + }, + { + "pname": "System.Text.RegularExpressions", + "version": "4.3.1", + "hash": "sha256-DxsEZ0nnPozyC1W164yrMUXwnAdHShS9En7ImD/GJMM=" + }, + { + "pname": "System.Threading", + "version": "4.3.0", + "hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc=" + }, + { + "pname": "System.Threading.Tasks", + "version": "4.3.0", + "hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w=" + }, + { + "pname": "System.Threading.Tasks.Extensions", + "version": "4.3.0", + "hash": "sha256-X2hQ5j+fxcmnm88Le/kSavjiGOmkcumBGTZKBLvorPc=" + }, + { + "pname": "System.Threading.ThreadPool", + "version": "4.3.0", + "hash": "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg=" + }, + { + "pname": "System.Threading.Timer", + "version": "4.3.0", + "hash": "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s=" + }, + { + "pname": "System.Xml.ReaderWriter", + "version": "4.3.0", + "hash": "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA=" + }, + { + "pname": "System.Xml.XDocument", + "version": "4.3.0", + "hash": "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI=" + }, + { + "pname": "Tmds.DBus.Protocol", + "version": "0.20.0", + "hash": "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw=" + } +] diff --git a/modules/system/applications/melonloader/package.nix b/modules/system/applications/melonloader/package.nix new file mode 100644 index 0000000..e29215a --- /dev/null +++ b/modules/system/applications/melonloader/package.nix @@ -0,0 +1,56 @@ +{ + fetchFromGitHub, + dotnetCorePackages, + buildDotnetModule, + makeDesktopItem, + copyDesktopItems, + lib, +}: +buildDotnetModule rec { + pname = "melonloader-installer"; + version = "4.1.1"; + + src = fetchFromGitHub { + owner = "LavaGang"; + repo = "MelonLoader.Installer"; + tag = version; + hash = "sha256-1Tdf2xOGBtSW68fycH6Eal4EF7uN2ZAEVBE9st6ruvg="; + }; + + projectFile = "MelonLoader.Installer/MelonLoader.Installer.csproj"; + dotnet-sdk = dotnetCorePackages.sdk_8_0; + dotnet-runtime = dotnetCorePackages.runtime_8_0; + nugetDeps = ./deps.json; + selfContainedBuild = true; + + nativeBuildInputs = [ copyDesktopItems ]; + + postInstall = '' + install -Dm644 Resources/ML_Icon.png $out/share/icons/MelonLoader.Installer.Linux.png + ''; + + desktopItems = [ + (makeDesktopItem { + name = pname; + desktopName = "MelonLoader Installer"; + exec = meta.mainProgram; + comment = meta.description; + categories = [ + "Game" + "Utility" + ]; + icon = meta.mainProgram; + }) + ]; + + passthru.updateScript = ./update.sh; + + meta = { + homepage = "https://melonwiki.xyz"; + mainProgram = "MelonLoader.Installer.Linux"; + description = "Automated installer for MelonLoader, the universal mod-loader for games built in the Unity Engine"; + license = lib.licenses.asl20; + platforms = [ "x86_64-linux" ]; + maintainers = with lib.maintainers; [ WillemToorenburgh ]; + }; +} diff --git a/modules/system/applications/melonloader/update.sh b/modules/system/applications/melonloader/update.sh new file mode 100644 index 0000000..481a62f --- /dev/null +++ b/modules/system/applications/melonloader/update.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env nix-shell +#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts +#shellcheck shell=bash + +# Implementation lovingly referenced and adapted from cavalier package's update.sh + +set -eu -o pipefail + +version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \ + https://api.github.com/repos/LavaGang/MelonLoader.Installer/releases/latest | jq -e -r .tag_name) +old_version=$(nix-instantiate --eval -A melonloader-installer.version | jq -e -r) + +if [[ $version == "$old_version" ]]; then + echo "New version same as old version, nothing to do." >&2 + exit 0 +fi + +update-source-version melonloader-installer "$version" + +$(nix-build -A melonloader-installer.fetch-deps --no-out-link) "$(dirname -- "${BASH_SOURCE[0]}")/deps.json" diff --git a/modules/system/desktop-environments/gnome.nix b/modules/system/desktop-environments/gnome.nix index 663294c..c54af9d 100644 --- a/modules/system/desktop-environments/gnome.nix +++ b/modules/system/desktop-environments/gnome.nix @@ -26,9 +26,6 @@ }; displayManager.defaultSession = lib.mkDefault "gnome"; xserver = { - enable = true; - layout = "us"; - xkbVariant = ""; displayManager.gdm = { enable = true; wayland = true; From 66230f34c475983b5ea1b41e348f8a87102129d6 Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Sun, 15 Mar 2026 21:18:54 -0400 Subject: [PATCH 09/10] added starship --- hosts/katana.nix | 3 +-- modules/home-manager/alacritty.nix | 18 +----------------- modules/home-manager/home.nix | 5 +++-- modules/home-manager/starship.nix | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 modules/home-manager/starship.nix diff --git a/hosts/katana.nix b/hosts/katana.nix index b9890b5..99062a7 100644 --- a/hosts/katana.nix +++ b/hosts/katana.nix @@ -180,8 +180,7 @@ librepcb jq obsidian - fuse - fuse3 + starship ]; # Fonts diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix index aa2e720..f33bfb1 100644 --- a/modules/home-manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -22,23 +22,7 @@ }; font = { - normal = { - family = "Droid Sans Mono Nerd Font"; - style = "Regular"; - }; - bold = { - family = "Droid Sans Mono Nerd Font"; - style = "Bold"; - }; - italic = { - family = "Droid Sans Mono Nerd Font"; - style = "Italic"; - }; - bold_italic = { - family = "Droid Sans Mono Nerd Font"; - style = "Bold Italic"; - }; - size = 12.0; + size = 14.0; }; }; }; diff --git a/modules/home-manager/home.nix b/modules/home-manager/home.nix index a3db23f..a9490ac 100644 --- a/modules/home-manager/home.nix +++ b/modules/home-manager/home.nix @@ -6,7 +6,6 @@ ./direnv.nix ./git.nix ./ncspot.nix - ./starship.nix ./syncthing.nix ./waybar.nix ./zellij.nix @@ -14,12 +13,13 @@ ./zsh.nix ./ssh.nix ./superfile.nix + ./starship.nix ]; + speccon18.hm.alacritty.enable = true; speccon18.hm.direnv.enable = true; speccon18.hm.git.enable = true; speccon18.hm.ncspot.enable = true; - speccon18.hm.starship.enable = true; speccon18.hm.syncthing.enable = false; speccon18.hm.waybar.enable = false; speccon18.hm.zellij.enable = true; @@ -27,6 +27,7 @@ speccon18.hm.zsh.enable = true; speccon18.hm.rio.enable = false; speccon18.hm.ssh.enable = true; + speccon18.hm.starship.enable = true; speccon18.hm.superfile.enable = false; # Home Manager needs a bit of information about you and the paths it should # manage. diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix new file mode 100644 index 0000000..9bfe2c5 --- /dev/null +++ b/modules/home-manager/starship.nix @@ -0,0 +1,16 @@ +{ config, lib, pkgs, ... }: +{ + options.speccon18.hm.starship.enable = lib.mkEnableOption "Enable Starship"; + programs.starship = { + enable = true; + # Configuration written to ~/.config/starship.toml + settings = { + add_newline = false; + + character = { + success_symbol = "[➜](bold green)"; + error_symbol = "[➜](bold red)"; + }; + }; + }; +} From e1ac43e6c0c1cd80e8876afbfdb89d2a62162725 Mon Sep 17 00:00:00 2001 From: steven carpenter Date: Tue, 17 Mar 2026 01:25:54 -0400 Subject: [PATCH 10/10] starship prompt update --- modules/home-manager/starship.nix | 22 +- modules/home-manager/starship.toml | 544 +++++++++++++++++++++++++++++ 2 files changed, 555 insertions(+), 11 deletions(-) create mode 100644 modules/home-manager/starship.toml diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix index 9bfe2c5..1d49485 100644 --- a/modules/home-manager/starship.nix +++ b/modules/home-manager/starship.nix @@ -1,16 +1,16 @@ { config, lib, pkgs, ... }: -{ - options.speccon18.hm.starship.enable = lib.mkEnableOption "Enable Starship"; - programs.starship = { - enable = true; - # Configuration written to ~/.config/starship.toml - settings = { - add_newline = false; - character = { - success_symbol = "[➜](bold green)"; - error_symbol = "[➜](bold red)"; - }; +{ + options.speccon18.hm.starship.enable = lib.mkEnableOption "Enable Starship"; + + config = lib.mkIf config.speccon18.hm.starship.enable { + programs.starship = { + enable = true; + enableBashIntegration = true; + enableZshIntegration = true; + enableFishIntegration = false; + settings = builtins.fromTOML (builtins.readFile ./starship.toml); }; }; + } diff --git a/modules/home-manager/starship.toml b/modules/home-manager/starship.toml new file mode 100644 index 0000000..12013a5 --- /dev/null +++ b/modules/home-manager/starship.toml @@ -0,0 +1,544 @@ +# ============================================================================ +# GLOBAL OPTIONS +# ============================================================================ + +add_newline = true +command_timeout = 1000 +scan_timeout = 50 +palette = "oasis_abyss" + +format = """ +$username\ +$hostname\ +$localip\ +$directory\ +$git_branch\ +$git_state\ +$git_status\ +$git_commit\ +$git_metrics\ +$cmd_duration\ +$line_break\ +$character\ +""" + +right_format = """ +$time\ +$shell\ +$jobs\ +""" + +[line_break] +disabled = false + +# ============================================================================ +# PALETTE DEFINITION (oasis_abyss) +# ============================================================================ + +[palettes.oasis_abyss] +# Normal colors +black = "#000000" +red = "#FF7979" +green = "#53D390" +yellow = "#F0E68C" +blue = "#81C0FF" +magenta = "#C695FF" +cyan = "#68C0B6" +white = "#DDDBD5" + +# Bright colors +bright_black = "#605C4D" +bright_red = "#FFA0A0" +bright_green = "#96EA7F" +bright_yellow = "#F8B471" +bright_blue = "#87CEEB" +bright_magenta = "#D2ADFF" +bright_cyan = "#8FD1C7" +bright_white = "#FFF9F2" + +# Semantic aliases for clarity +error = "#FF7979" +success = "#53D390" +warning = "#F0E68C" +info = "#81C0FF" +highlight = "#C695FF" +accent = "#68C0B6" + +# ============================================================================ +# USER & HOSTNAME +# ============================================================================ + +[username] +disabled = false +show_always = true +style_user = "highlight bold" +style_root = "error bold" +format = "[$user]($style) on " + +[hostname] +disabled = false +ssh_only = false +trim_at = "." +style = "info bold" +format = "[$hostname]($style)@" + +[localip] +disabled = false +ssh_only = false +style = "highlight bold" +format = "[$localipv4]($style) " + +# ============================================================================ +# DIRECTORY +# ============================================================================ + +[directory] +disabled = false +read_only = " ro" +read_only_style = "197" +truncation_length = 3 +truncation_symbol = "…/" +style = "info bold" +format = "[ $path ]($style)[$read_only]($read_only_style) " + +[directory.substitutions] +"Documents" = "󰈙 " +"Downloads" = " " +"Music" = " " +"Pictures" = " " + +# ============================================================================ +# GIT MODULES +# ============================================================================ + +[git_branch] +disabled = false +symbol = " " +style = "info bold" +truncation_length = 20 +truncation_symbol = "…/" +format = "on [$symbol$branch]($style) " + +[git_status] +disabled = false +style = "success bold" +conflicted = "🏳" +ahead = " ⇡${count}" +behind = " ⇣${count}" +diverged = "⇕ ⇡${ahead_count} ⇣${behind_count}" +untracked = "[ ?${count}](cyan)" +stashed = "📦" +modified = "[ !${count}](warning)" +staged = " +${count}" +renamed = " »${count}" +deleted = "[ ✖${count}](error)" +format = "[🔃$all_status$ahead_behind]($style) " + +[git_commit] +disabled = false +commit_hash_length = 7 +tag_disabled = true +tag_symbol = "🏷 " +style = "warning bold" +format = '[$$$hash$tag$$]($style) ' + +[git_state] +disabled = false +style = "warning bold" +format = '$$[$state( $progress_current/$progress_total)]($style)$$ ' + +[git_metrics] +disabled = false +added_style = "success bold" +deleted_style = "error bold" +only_nonzero_diffs = true +format = "(📈 [+$added]($added_style))([ -$deleted]($deleted_style)) " + +# ============================================================================ +# COMMAND DURATION +# ============================================================================ + +[cmd_duration] +disabled = false +min_time = 500 +show_milliseconds = false +style = "warning" +format = "took [$duration]($style) " + +# ============================================================================ +# CHARACTER +# ============================================================================ + +[character] +disabled = false +success_symbol = "[➜](success bold)" +error_symbol = "[✗](error bold)" +vimcmd_symbol = "[V](success bold)" +vimcmd_replace_one_symbol = "[R1](highlight bold)" +vimcmd_replace_symbol = "[R](highlight bold)" +vimcmd_visual_symbol = "[V](accent bold)" +format = "$symbol " + +# ============================================================================ +# TIME +# ============================================================================ + +[time] +disabled = false +time_format = "%R" +style = "bright_white bold" +format = "exec_time: [$time]($style) " + +# ============================================================================ +# SHELL +# ============================================================================ + +[shell] +disabled = false +bash_indicator = "bash" +zsh_indicator = "zsh" +fish_indicator = "fish" +powershell_indicator = "pwsh" +tcsh_indicator = "tcsh" +elvish_indicator = "elvish" +nu_indicator = "nu" +unknown_indicator = "unknown" +style = "info bold" +format = "[$indicator]($style) " + +# ============================================================================ +# JOBS +# ============================================================================ + +[jobs] +disabled = false +number_threshold = 1 +style = "warning bold" +format = "[$number]($style) " + +# ============================================================================ +# BATTERY +# ============================================================================ + +[battery] +disabled = false +full_symbol = "🔋 " +charging_symbol = "⚡️ " +discharging_symbol = "🔋 " +unknown_symbol = "🔌 " +empty_symbol = "🪫 " +format = "[$symbol$percentage]($style) " + +[[battery.display]] +threshold = 10 +style = "error bold" + +[[battery.display]] +threshold = 30 +style = "warning bold" + +[[battery.display]] +threshold = 100 +style = "success bold" + +# ============================================================================ +# CUSTOM MODULES +# ============================================================================ + +[custom.example] +disabled = true +command = "echo 'Custom Module'" +when = "true" +style = "accent" +format = "[$output]($style) " + +# ============================================================================ +# LANGUAGE MODULES +# ============================================================================ + +[rust] +disabled = false +symbol = "🦀 " +style = "error bold" +format = "via [$symbol$version]($style) " + +[python] +disabled = false +symbol = "🐍 " +style = "info bold" +pyenv_version_name = false +python_binary = ["python", "python3", "python3.11"] +format = 'via [$symbol${pyenv_prefix}(${version} )($$$virtualenv$$ )]($style) ' + +[nodejs] +disabled = false +symbol = "🟢 " +style = "success bold" +format = "via [$symbol$version]($style) " + +[golang] +disabled = false +symbol = "🐹 " +style = "accent bold" +format = "via [$symbol$version]($style) " + +[java] +disabled = false +symbol = "☕ " +style = "error bold" +format = "via [$symbol$version]($style) " + +[ruby] +disabled = false +symbol = "💎 " +style = "error bold" +format = "via [$symbol$version]($style) " + +[php] +disabled = false +symbol = "🐘 " +style = "highlight bold" +format = "via [$symbol$version]($style) " + +[typescript] +disabled = false +symbol = "📘 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[scala] +disabled = false +symbol = "🔥 " +style = "error bold" +format = "via [$symbol$version]($style) " + +[kotlin] +disabled = false +symbol = "🧠 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[swift] +disabled = false +symbol = "🛬 " +style = "bright_yellow bold" +format = "via [$symbol$version]($style) " + +[dart] +disabled = false +symbol = "🎯 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[julia] +disabled = false +symbol = "⚙️ " +style = "highlight bold" +format = "via [$symbol$version]($style) " + +[haskell] +disabled = false +symbol = "λ " +style = "info bold" +format = "via [$symbol$version]($style) " + +[elixir] +disabled = false +symbol = "🔮 " +style = "highlight bold" +format = "via [$symbol$version]($style) " + +[erlang] +disabled = false +symbol = "📞 " +style = "error bold" +format = "via [$symbol$version]($style) " + +[lua] +disabled = false +symbol = "🌙 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[perl] +disabled = false +symbol = "🐪 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[zig] +disabled = false +symbol = "🦆 " +style = "warning bold" +format = "via [$symbol$version]($style) " + +[nim] +disabled = false +symbol = "👑 " +style = "warning bold" +format = "via [$symbol$version]($style) " + +[ocaml] +disabled = false +symbol = "🐫 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[crystal] +disabled = false +symbol = "💠 " +style = "error bold" +format = "via [$symbol$version]($style) " + +[elm] +disabled = false +symbol = "🍃 " +style = "accent bold" +format = "via [$symbol$version]($style) " + +# ============================================================================ +# INFRASTRUCTURE MODULES +# ============================================================================ + +[aws] +disabled = false +symbol = "🅰 " +style = "warning bold" +format = "on [$symbol$profile]($style) " + +[[aws.region_aliases]] +ap-southeast-2 = "au" +eu-west-1 = "uk" + +[azure] +disabled = false +symbol = "🅰 " +style = "info bold" +format = "on [$symbol$subscription]($style) " + +[gcloud] +disabled = false +symbol = "☁️ " +style = "info bold" +format = 'on [$symbol$account(@$domain)($$$region$$)]($style) ' + +[kubernetes] +disabled = false +symbol = "☸️ " +style = "info bold" +detect_files = ["kustomization.yaml", "kustomization.yml", "Kustomfile", ".kube"] +detect_folders = [".kube"] +format = 'on [$symbol$context( $$$namespace$$)]($style) ' + +[docker_context] +disabled = false +symbol = "🐳 " +style = "info bold" +detect_files = ["docker-compose.yml", "docker-compose.yaml", "Dockerfile"] +detect_folders = ["docker"] +format = "via [$symbol$context]($style) " + +[terraform] +disabled = false +symbol = "💠 " +style = "highlight bold" +format = "via [$symbol$workspace]($style) " + +[pulumi] +disabled = false +symbol = "🌀 " +style = "info bold" +format = "via [$symbol$stack]($style) " + +[gitlab] +disabled = false +symbol = "🐱 " +style = "error bold" +format = "via [$symbol$branch]($style) " + +[github] +disabled = false +symbol = "🐙 " +style = "black bold" +format = "via [$symbol$branch]($style) " + +# ============================================================================ +# ENVIRONMENT VARIABLES +# ============================================================================ + +[env_var.FOO] +disabled = true +default = "default_value" +style = "info" +format = "with [$env_value]($style) " + +# ============================================================================ +# SYSTEM MODULES +# ============================================================================ + +[package] +disabled = false +symbol = "📦 " +style = "error bold" +format = "is [$symbol$version]($style) " + +[conda] +disabled = false +symbol = "🅒 " +style = "success bold" +ignore_base = true +format = "via [$symbol$environment]($style) " + +[nix_shell] +disabled = false +symbol = "🐧 " +style = "info bold" +format = "via [$symbol$state]($style) " + +[gradle] +disabled = false +symbol = "🎓 " +style = "success bold" +format = "via [$symbol$version]($style) " + +[maven] +disabled = false +symbol = "📦 " +style = "error bold" +format = "via [$symbol$version]($style) " + +[helm] +disabled = false +symbol = "🎭 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[cmake] +disabled = false +symbol = "🔨 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[c] +disabled = false +symbol = "🔵 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[meson] +disabled = false +symbol = "🔨 " +style = "info bold" +format = "via [$symbol$version]($style) " + +[guix_shell] +disabled = false +symbol = "🐧 " +style = "success bold" +format = "via [$symbol]($style) " + +[vagrant] +disabled = false +symbol = "📦 " +style = "success bold" +format = "via [$symbol$version]($style) "