From 8a343bdd1d23224b5b8e76a062a065ceb9938055 Mon Sep 17 00:00:00 2001 From: BuyMyMojo Date: Wed, 26 Mar 2025 14:43:11 +1100 Subject: [PATCH 1/2] Seperate home.nix into seperate files --- home-manager/flake.nix | 6 +- home-manager/home.nix | 196 ------------------------------------ home-manager/packages.nix | 204 ++++++++++++++++++++++++++++++++++++++ home-manager/services.nix | 14 +++ 4 files changed, 223 insertions(+), 197 deletions(-) create mode 100644 home-manager/packages.nix create mode 100644 home-manager/services.nix diff --git a/home-manager/flake.nix b/home-manager/flake.nix index 74c5c87..0b28047 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -46,7 +46,11 @@ # Specify your home configuration modules here, for example, # the path to your home.nix. - modules = [ ./home.nix ]; + modules = [ + ./home.nix + ./packages.nix + ./services.nix + ]; # Optionally use extraSpecialArgs # to pass through arguments to home.nix diff --git a/home-manager/home.nix b/home-manager/home.nix index 78b916c..f2ce34b 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -8,17 +8,6 @@ { - imports = [ - inputs.moonlight.homeModules.default - ]; - - nixpkgs = { - # You can add overlays here - overlays = [ - inputs.moonlight.overlays.default - ]; - }; - # Home Manager needs a bit of information about you and the paths it should # manage. home.username = "buymymojo"; @@ -33,117 +22,6 @@ # release notes. home.stateVersion = "24.11"; # Please read the comment before changing. - home.file."jdks/zulujdk8".source = pkgs.zulu8; - home.file."jdks/zulujdk17".source = pkgs.zulu17; - home.file."jdks/zulujdk23".source = pkgs.zulu23; - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with unstable; [ - pkgs.nextcloud-client - pkgs.yubioath-flutter - pkgs.xpipe - pkgs.qbittorrent - pkgs.monero-gui - - # pkgs.protonplus - pkgs.pcsx2 - pkgs.rpcs3 - unstable.ryubing - pkgs.heroic-unwrapped - pkgs.ludusavi - - # === Minecraft === - pkgs.prismlauncher - # pkgs.zulu8 - # pkgs.zulu17 - # pkgs.zulu23 - # === Minecraft === - - # === CLI === - pkgs.bat - pkgs.btop - pkgs.rrsync - pkgs.ripgrep - pkgs.wl-clipboard - pkgs.poop # Compare the performance of multiple commands with a colorful terminal user interface - pkgs.age - pkgs.stow - pkgs.yt-dlp - pkgs.aria2 - # === CLI === - - # === Image CLI === - unstable.oxipng - unstable.image_optim - pkgs.jpegoptim - pkgs.libjxl - pkgs.libavif - pkgs.libwebp - pkgs.imagemagick - # === Image CLI === - - # === Communication === - pkgs.vesktop - pkgs.discord-canary - pkgs.signal-desktop - pkgs.telegram-desktop - # pkgs.thunderbird-latest-unwrapped - # === Communication === - - # === Game perf === - pkgs.mangojuice - unstable.goverlay - # === Game perf === - - # === Dev tooling === - # pkgs.rustup - - unstable.libreoffice-fresh - # pkgs.kdePackages.kate - pkgs.jetbrains.webstorm - pkgs.jetbrains.rider - pkgs.jetbrains.idea-community - # === Dev tooling === - - # === Media === - pkgs.gimp - pkgs.krita - pkgs.mpv - unstable.losslesscut-bin - # === Media === - - pkgs.polychromatic - - pkgs.orca-slicer - - pkgs.lazydocker - pkgs.distrobox - pkgs.boxbuddy - - unstable.godot - unstable.blender-hip - pkgs.freecad-wayland - pkgs.unityhub - pkgs.material-maker - - unstable.gpu-screen-recorder - unstable.gpu-screen-recorder-gtk - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') - ]; - # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. home.file = { @@ -159,80 +37,6 @@ # ''; }; - programs.moonlight-mod = { - enable = true; - # stable = { - # extensions = { - # allActivites.enabled = true; - # alwaysFocus.enabled = true; - - # betterEmbedsYT = { - # enabled = true; - # config = { - # fullDescription = false; - # expandDescription = true; - # }; - # }; - # }; - # }; - }; - - programs.git = { - enable = true; - userName = "BuyMyMojo"; - userEmail = "hello+git@buymymojo.net"; - lfs.enable = true; - signing.key = "E7B7B8D20C8753C077F9B17119AB7AA462B8AB3B"; - signing.signByDefault = true; - extraConfig = { - init = { - - defaultBranch = "main"; - }; - }; - }; - - programs.obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ - wlrobs - obs-vkcapture - obs-pipewire-audio-capture - obs-teleport - obs-source-record - obs-source-clone - obs-composite-blur - ]; - }; - - programs.ssh.enable = true; - programs.ssh.addKeysToAgent = "yes"; - - programs.ssh.matchBlocks = { - "*" = { - identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; - }; - - "game2.buymymojo.net" = { - hostname = "game2.buymymojo.net"; - user = "jumpbox"; - identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; - }; - - "git.aria.coffee" = { - hostname = "git.aria.coffee"; - user = "git"; - identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; - port = 23; - }; - }; - - programs.bash.enable = true; - programs.fish.enable = true; - - services.ssh-agent.enable = true; - services.syncthing.enable = true; - # Home Manager can also manage your environment variables through # 'home.sessionVariables'. These will be explicitly sourced when using a # shell provided by Home Manager. If you don't want to manage your shell diff --git a/home-manager/packages.nix b/home-manager/packages.nix new file mode 100644 index 0000000..d21bcd1 --- /dev/null +++ b/home-manager/packages.nix @@ -0,0 +1,204 @@ +{ + config, + pkgs, + unstable, + inputs, + ... +}: + +{ + + imports = [ + inputs.moonlight.homeModules.default + ]; + + nixpkgs = { + # You can add overlays here + overlays = [ + inputs.moonlight.overlays.default + ]; + }; + + home.file."jdks/zulujdk8".source = pkgs.zulu8; + home.file."jdks/zulujdk17".source = pkgs.zulu17; + home.file."jdks/zulujdk23".source = pkgs.zulu23; + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = with unstable; [ + pkgs.nextcloud-client + pkgs.yubioath-flutter + pkgs.xpipe + pkgs.qbittorrent + pkgs.monero-gui + + # pkgs.protonplus + pkgs.pcsx2 + pkgs.rpcs3 + unstable.ryubing + pkgs.heroic-unwrapped + pkgs.ludusavi + + # === Minecraft === + pkgs.prismlauncher + # pkgs.zulu8 + # pkgs.zulu17 + # pkgs.zulu23 + # === Minecraft === + + # === CLI === + pkgs.bat + pkgs.btop + pkgs.rrsync + pkgs.ripgrep + pkgs.wl-clipboard + pkgs.poop # Compare the performance of multiple commands with a colorful terminal user interface + pkgs.age + pkgs.stow + pkgs.yt-dlp + pkgs.aria2 + # === CLI === + + # === Image CLI === + unstable.oxipng + unstable.image_optim + pkgs.jpegoptim + pkgs.libjxl + pkgs.libavif + pkgs.libwebp + pkgs.imagemagick + # === Image CLI === + + # === Communication === + pkgs.vesktop + pkgs.discord-canary + pkgs.signal-desktop + pkgs.telegram-desktop + # pkgs.thunderbird-latest-unwrapped + # === Communication === + + # === Game perf === + pkgs.mangojuice + unstable.goverlay + # === Game perf === + + # === Dev tooling === + # pkgs.rustup + + unstable.libreoffice-fresh + # pkgs.kdePackages.kate + pkgs.jetbrains.webstorm + pkgs.jetbrains.rider + pkgs.jetbrains.idea-community + # === Dev tooling === + + # === Media === + pkgs.gimp + pkgs.krita + pkgs.mpv + unstable.losslesscut-bin + # === Media === + + pkgs.polychromatic + + pkgs.orca-slicer + + pkgs.lazydocker + pkgs.distrobox + pkgs.boxbuddy + + unstable.godot + unstable.blender-hip + pkgs.freecad-wayland + pkgs.unityhub + pkgs.material-maker + + unstable.gpu-screen-recorder + unstable.gpu-screen-recorder-gtk + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + programs.moonlight-mod = { + enable = true; + # stable = { + # extensions = { + # allActivites.enabled = true; + # alwaysFocus.enabled = true; + + # betterEmbedsYT = { + # enabled = true; + # config = { + # fullDescription = false; + # expandDescription = true; + # }; + # }; + # }; + # }; + }; + + programs.git = { + enable = true; + userName = "BuyMyMojo"; + userEmail = "hello+git@buymymojo.net"; + lfs.enable = true; + signing.key = "E7B7B8D20C8753C077F9B17119AB7AA462B8AB3B"; + signing.signByDefault = true; + extraConfig = { + init = { + + defaultBranch = "main"; + }; + }; + }; + + programs.obs-studio = { + enable = true; + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + obs-vkcapture + obs-pipewire-audio-capture + obs-teleport + obs-source-record + obs-source-clone + obs-composite-blur + ]; + }; + + programs.ssh.enable = true; + programs.ssh.addKeysToAgent = "yes"; + + programs.ssh.matchBlocks = { + "*" = { + identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; + }; + + "game2.buymymojo.net" = { + hostname = "game2.buymymojo.net"; + user = "jumpbox"; + identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; + }; + + "git.aria.coffee" = { + hostname = "git.aria.coffee"; + user = "git"; + identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; + port = 23; + }; + }; + + programs.bash.enable = true; + programs.fish.enable = true; + +} diff --git a/home-manager/services.nix b/home-manager/services.nix new file mode 100644 index 0000000..ddc5404 --- /dev/null +++ b/home-manager/services.nix @@ -0,0 +1,14 @@ +{ + config, + pkgs, + unstable, + inputs, + ... +}: + +{ + + services.ssh-agent.enable = true; + services.syncthing.enable = true; + +} From 500c26f0b70158cbf30d9bb5520ec076bef060b4 Mon Sep 17 00:00:00 2001 From: BuyMyMojo Date: Wed, 26 Mar 2025 15:11:46 +1100 Subject: [PATCH 2/2] Add gpu-screen-recorder-ui (Not merged into main nixpkgs yet) --- home-manager/flake.lock | 17 +++++++++++++++++ home-manager/flake.nix | 12 ++++++++++++ home-manager/packages.nix | 13 +++++-------- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/home-manager/flake.lock b/home-manager/flake.lock index 370c37b..0d1712c 100644 --- a/home-manager/flake.lock +++ b/home-manager/flake.lock @@ -36,6 +36,22 @@ "type": "github" } }, + "gpu-screen-recorder-ui": { + "locked": { + "lastModified": 1741023597, + "narHash": "sha256-09HLLCoC6L8OEjy0mvA7F6agriHQQOGXYsOisE0b4g8=", + "owner": "js6pak", + "repo": "nixpkgs", + "rev": "5c405e5de49ffe89bcdc5b43813b31383eef6f1c", + "type": "github" + }, + "original": { + "owner": "js6pak", + "ref": "5c405e5de49ffe89bcdc5b43813b31383eef6f1c", + "repo": "nixpkgs", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -148,6 +164,7 @@ }, "root": { "inputs": { + "gpu-screen-recorder-ui": "gpu-screen-recorder-ui", "home-manager": "home-manager", "moonlight": "moonlight", "nixpkgs": "nixpkgs_2", diff --git a/home-manager/flake.nix b/home-manager/flake.nix index 0b28047..d4aed1b 100644 --- a/home-manager/flake.nix +++ b/home-manager/flake.nix @@ -15,6 +15,11 @@ url = "github:moonlight-mod/moonlight"; # Add `/develop` to the flake URL to use nightly. inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + + gpu-screen-recorder-ui = { + url = "github:js6pak/nixpkgs?ref=5c405e5de49ffe89bcdc5b43813b31383eef6f1c"; + inputs.nixpkgs.follows = "nixpkgs-unstable"; + }; }; outputs = @@ -22,6 +27,7 @@ nixpkgs, home-manager, nixpkgs-unstable, + gpu-screen-recorder-ui, ... }@inputs: let @@ -35,11 +41,17 @@ inherit system; config.allowUnfree = true; }; + + gpu-screen-recorder-ui-pkgs = import gpu-screen-recorder-ui { + inherit system; + config.allowUnfree = true; + }; in { homeConfigurations."buymymojo" = home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { + inherit gpu-screen-recorder-ui-pkgs; inherit unstable; inherit inputs; }; diff --git a/home-manager/packages.nix b/home-manager/packages.nix index d21bcd1..7a9b37a 100644 --- a/home-manager/packages.nix +++ b/home-manager/packages.nix @@ -2,6 +2,7 @@ config, pkgs, unstable, + gpu-screen-recorder-ui-pkgs, inputs, ... }: @@ -115,12 +116,7 @@ unstable.gpu-screen-recorder unstable.gpu-screen-recorder-gtk - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + gpu-screen-recorder-ui-pkgs.gpu-screen-recorder-ui # # You can also create simple shell scripts directly inside your # # configuration. For example, this adds a command 'my-hello' to your @@ -129,7 +125,7 @@ # echo "Hello, ${config.home.username}!" # '') ]; - + programs.moonlight-mod = { enable = true; # stable = { @@ -176,9 +172,9 @@ ]; }; + # === ssh === programs.ssh.enable = true; programs.ssh.addKeysToAgent = "yes"; - programs.ssh.matchBlocks = { "*" = { identityFile = "/home/buymymojo/.ssh/id_ed25519-mainpc"; @@ -198,6 +194,7 @@ }; }; + # === shells === programs.bash.enable = true; programs.fish.enable = true;