From 4d2cd548faccda8992b70bfdf863977455a8ee93 Mon Sep 17 00:00:00 2001 From: Hare Date: Thu, 8 Oct 2026 23:32:38 +0900 Subject: [PATCH] feat: update workstation services and tools --- README.md | 10 +++++ flake.lock | 61 +++++++++++++++++++---------- flake.nix | 3 ++ home-manager/java.nix | 20 ++++++++++ home-manager/obs-studio.nix | 9 +++++ home-manager/pipewire.nix | 32 +++++++++++++++ home-manager/wezterm/wezterm.lua | 1 + hosts/arcadia/default.nix | 1 + hosts/arcadia/hare/home-manager.nix | 53 ++++++++++++++++++------- hosts/arcadia/nixos.nix | 23 ++++++----- system/core/greeter.nix | 2 +- system/home-manager/default.nix | 16 +++++--- 12 files changed, 180 insertions(+), 51 deletions(-) create mode 100644 home-manager/java.nix create mode 100644 home-manager/pipewire.nix diff --git a/README.md b/README.md index c39ae72..9d26ac4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,17 @@ # πŸŒ½β„ +εˆε›žοΌˆ`nh` 導ε…₯前): + ``` sudo nixos-rebuild switch --flake .# nix run .#home-manager -- switch --flake .#@ ``` + +`nh` 導ε…₯後: + +``` +nh os switch -H + +nh home switch -c @ +``` diff --git a/flake.lock b/flake.lock index 7896107..c09d2db 100644 --- a/flake.lock +++ b/flake.lock @@ -61,11 +61,11 @@ ] }, "locked": { - "lastModified": 1784489491, - "narHash": "sha256-j9maqjx1T8+ljAVntAdSI5hSGCm77QNZz64JF1rJNu0=", + "lastModified": 1791306979, + "narHash": "sha256-KuLePuhwJM9NLt/gTLHzXaOoSZKGoB3m7NfXjiQ98HY=", "owner": "nix-community", "repo": "home-manager", - "rev": "3139deb8cafbe73b39b24451255b2fdd3426077e", + "rev": "fae6e9e42c3b762ab47635cddcfaf6f52374a61b", "type": "github" }, "original": { @@ -81,11 +81,11 @@ ] }, "locked": { - "lastModified": 1784440659, - "narHash": "sha256-Q5kNLlWngt7TaIIZoxDKWMHjiSaNRVqr70FqWCRRfr4=", + "lastModified": 1791105314, + "narHash": "sha256-oTM7QFgRQ+vxBpMBMc7hEYpqBtpXAzXu2xuB/tru84U=", "owner": "Mic92", "repo": "nix-index-database", - "rev": "4f8d52a3598b0dc7db7a5e7b419e3edd9d1ecfdb", + "rev": "e740bc4e9d8918d7819a51486d5099930c65c72e", "type": "github" }, "original": { @@ -99,11 +99,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1784310968, - "narHash": "sha256-rkSPTePrKqs4dg+i7ZFCq93+HrClac6oSwXX927SVjA=", + "lastModified": 1791373788, + "narHash": "sha256-c3oMt0QoE+4yiRk6u1m2L9ogjaUw0uTGn9yk808KkgE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "779c32a00155994c86cde8213a8dd4df139d4355", + "rev": "4bc63156b109ee7b4103e3ec30565c8c92bde435", "type": "github" }, "original": { @@ -114,11 +114,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767892417, - "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "lastModified": 1789546076, + "narHash": "sha256-vWkSk5bbfTqdtMoSgD9FshACO8JCvXTFi+3cqEp0mH0=", + "rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1074753.b1b875982b17/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -127,11 +127,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1784356753, - "narHash": "sha256-12KrbMiWLcf8m7pCvAtZh1ZrgF85ZXDXvfR/fWTKy84=", + "lastModified": 1791260994, + "narHash": "sha256-Miqqk/ammqnTUxaoCyvtwoPeLbI1ksFyLxi/CazZpWY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "61b7c44c4073f0b827768aff0049561b5110ea5a", + "rev": "151fa4e8ddfdd8dd25d945ad94ed54a13de9f6e4", "type": "github" }, "original": { @@ -196,11 +196,32 @@ "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", + "shojiwm": "shojiwm", "tourbox-linux": "tourbox-linux", "yoi": "yoi", "zen-browser": "zen-browser" } }, + "shojiwm": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1791429304, + "narHash": "sha256-yZ4ULwBskLKYhkkFnJN9pKnixJ2BVZc5SHZG4rkxcjA=", + "owner": "bea4dev", + "repo": "ShojiWM", + "rev": "1e7fdb4e8e7b1bc87e8147e8c502acd28a999594", + "type": "github" + }, + "original": { + "owner": "bea4dev", + "repo": "ShojiWM", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -271,11 +292,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1784328575, - "narHash": "sha256-4LdSQBnOPZ82otj2go33qAtDUcVtWFRmMvfgKdQO9Ys=", + "lastModified": 1790741488, + "narHash": "sha256-GGrLwzCIl3ncUoHA2CXnW6/GH2o6Nzdv7p/f1td1R+E=", "ref": "develop", - "rev": "37c44a7942776ce43d21f0aa55e55006de1aa6a4", - "revCount": 3343, + "rev": "657cae1d4beed796547f57e460546c40cce3bc37", + "revCount": 4571, "type": "git", "url": "ssh://git@gitea.hareworks.net/Hare/yoi.git" }, diff --git a/flake.nix b/flake.nix index 9b1fb68..e859060 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,9 @@ yoi.url = "git+ssh://git@gitea.hareworks.net/Hare/yoi.git?ref=develop"; tourbox-linux.url = "github:HareK02/TourBox-Linux"; + shojiwm.url = "github:bea4dev/ShojiWM"; + shojiwm.inputs.nixpkgs.follows = "nixpkgs"; + nix-index-database.url = "github:Mic92/nix-index-database"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/home-manager/java.nix b/home-manager/java.nix new file mode 100644 index 0000000..d65dd47 --- /dev/null +++ b/home-manager/java.nix @@ -0,0 +1,20 @@ +{ pkgs, ... }: +{ + home.packages = [ pkgs.jre ]; + + xdg.desktopEntries.java = { + name = "Java"; + genericName = "JAR Launcher"; + exec = "${pkgs.jre}/bin/java -jar %f"; + terminal = false; + mimeType = [ + "application/java-archive" + "application/x-java-archive" + ]; + }; + + xdg.mimeApps.defaultApplications = { + "application/java-archive" = "java.desktop"; + "application/x-java-archive" = "java.desktop"; + }; +} diff --git a/home-manager/obs-studio.nix b/home-manager/obs-studio.nix index a8c2ffa..ef36938 100644 --- a/home-manager/obs-studio.nix +++ b/home-manager/obs-studio.nix @@ -1,4 +1,13 @@ { config, pkgs, ... }: +let + obs-shaderfilter = pkgs.obs-studio-plugins.obs-shaderfilter.overrideAttrs (oldAttrs: { + postPatch = (oldAttrs.postPatch or "") + '' + substituteInPlace obs-shaderfilter.c \ + --replace-fail 'obs_properties_add_button(props, "reload_effect"' 'obs_properties_add_button2(props, "reload_effect"' \ + --replace-fail 'shader_filter_reload_effect_clicked);' 'shader_filter_reload_effect_clicked, NULL);' + ''; + }); +in { programs.obs-studio = { enable = true; diff --git a/home-manager/pipewire.nix b/home-manager/pipewire.nix new file mode 100644 index 0000000..d961ba7 --- /dev/null +++ b/home-manager/pipewire.nix @@ -0,0 +1,32 @@ +{ pkgs, ... }: +{ + xdg.configFile."pipewire/pipewire.conf.d/virtual-pipe.conf".text = '' + context.objects = [ + { factory = adapter + args = { + factory.name = support.null-audio-sink + node.name = "vpipe_sink" + node.description = "Virtual Pipe Input" + media.class = Audio/Sink + object.linger = true + audio.position = [ FL FR ] + } + } + { factory = adapter + args = { + factory.name = support.null-audio-sink + node.name = "vpipe_source" + node.description = "Virtual Pipe Output" + media.class = Audio/Source/Virtual + object.linger = true + audio.position = [ FL FR ] + } + } + ] + + context.exec = [ + { path = "${pkgs.pipewire}/bin/pw-link" args = "vpipe_sink:monitor_FL vpipe_source:input_FL" } + { path = "${pkgs.pipewire}/bin/pw-link" args = "vpipe_sink:monitor_FR vpipe_source:input_FR" } + ] + ''; +} diff --git a/home-manager/wezterm/wezterm.lua b/home-manager/wezterm/wezterm.lua index 542222e..36f5b2a 100644 --- a/home-manager/wezterm/wezterm.lua +++ b/home-manager/wezterm/wezterm.lua @@ -41,6 +41,7 @@ local config = { keys = { { key = 'V', mods = 'CTRL', action = wezterm.action.PasteFrom 'Clipboard' }, + { key = 'Enter', mods = 'ALT', action = wezterm.action.DisableDefaultAssignment }, } } diff --git a/hosts/arcadia/default.nix b/hosts/arcadia/default.nix index 3adb82b..cd7dbb3 100644 --- a/hosts/arcadia/default.nix +++ b/hosts/arcadia/default.nix @@ -14,6 +14,7 @@ mkHost { ]; systemModules = [ inputs.tourbox-linux.nixosModules.default + # inputs.shojiwm.nixosModules.default ./nixos.nix ]; } diff --git a/hosts/arcadia/hare/home-manager.nix b/hosts/arcadia/hare/home-manager.nix index e8a5fcc..c6f067f 100644 --- a/hosts/arcadia/hare/home-manager.nix +++ b/hosts/arcadia/hare/home-manager.nix @@ -1,4 +1,5 @@ { + config, pkgs, inputs, lib, @@ -17,8 +18,10 @@ ../../../home-manager/direnv.nix ../../../home-manager/firefox.nix ../../../home-manager/obs-studio.nix + ../../../home-manager/pipewire.nix ../../../home-manager/zeditor.nix ../../../home-manager/blender.nix + ../../../home-manager/java.nix # ../../../home-manager/voicevox.nix ]; @@ -36,21 +39,20 @@ scale = 1; transform = 0; } - # { - # output = "DP-3"; - # mode = "1920x1080@60"; - # position = "0x0"; - # scale = 0.75; - # transform = 0; - # mirror = "DP-1"; - # } { output = "DP-3"; - mode = "1920x1080@144"; - position = "-1080x-240"; + mode = "1920x1080@300"; + position = "-1920x180"; scale = 1; - transform = 1; + transform = 0; } + # { + # output = "DP-3"; + # mode = "1920x1080@144"; + # position = "-1080x-240"; + # scale = 1; + # transform = 1; + # } ]; hare.hyprland = { input.sensitivity = -1.0; @@ -59,7 +61,28 @@ programs.nix-index-database.comma.enable = true; + xdg.configFile."sccache/config" = { + force = true; + text = '' + [cache.disk] + dir = "${config.xdg.cacheHome}/sccache" + size = 42949672960 + ''; + }; + + systemd.user.services.sccache = { + Unit.Description = "sccache compilation cache server"; + Service = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.sccache}/bin/sccache --start-server"; + ExecStop = "${pkgs.sccache}/bin/sccache --stop-server"; + }; + Install.WantedBy = [ "default.target" ]; + }; + home.packages = with pkgs; [ + sccache vivaldi google-chrome discord @@ -69,7 +92,7 @@ nodejs scrcpy tetrio-desktop - kicad + # kicad gimp inkscape obsidian @@ -82,9 +105,9 @@ nixd rust-analyzer aseprite - bambu-studio - orca-slicer - davinci-resolve + # bambu-studio + # orca-slicer + # davinci-resolve inputs.zen-browser.packages."${stdenv.hostPlatform.system}".default # inputs.yoi.packages.${stdenv.hostPlatform.system}.default ]; diff --git a/hosts/arcadia/nixos.nix b/hosts/arcadia/nixos.nix index 4e83ed8..30f7d8d 100644 --- a/hosts/arcadia/nixos.nix +++ b/hosts/arcadia/nixos.nix @@ -36,9 +36,6 @@ in ../../programs/steam.nix ]; environment.systemPackages = with pkgs; [ - cargo - rustc - rustfmt openssl vulkan-tools android-tools @@ -49,13 +46,6 @@ in rocmPackages.clr rocmPackages.rocm-smi - qemu - (pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" '' - qemu-system-x86_64 \ - -bios ${pkgs.OVMF.fd}/FV/OVMF.fd \ - "$@" - '') - wineWow64Packages.waylandFull winetricks @@ -69,6 +59,14 @@ in ]; environment.sessionVariables.NIXOS_OZONE_WL = "1"; + # programs.shojiwm = { + # enable = true; + # initConfig = { + # enable = true; + # users = [ "hare" ]; + # }; + # }; + programs.nix-ld.enable = true; services.openssh.enable = true; @@ -113,6 +111,11 @@ in }; }; + systemd.coredump.settings.Coredump = { + Storage = "none"; + ProcessSizeMax = "0"; + }; + boot.kernelPackages = config.boot.kernelPackages; boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ]; boot.kernelModules = [ diff --git a/system/core/greeter.nix b/system/core/greeter.nix index ab89203..70cedbd 100644 --- a/system/core/greeter.nix +++ b/system/core/greeter.nix @@ -62,7 +62,7 @@ in rosePineHyprcursor ]; - programs.regreet = { + services.displayManager.regreet = { # greetd γ‚’ Hyprland で動かす enable = true; theme.name = "Adwaita-dark"; diff --git a/system/home-manager/default.nix b/system/home-manager/default.nix index 24e8df8..ff01d64 100644 --- a/system/home-manager/default.nix +++ b/system/home-manager/default.nix @@ -1,11 +1,17 @@ +{ config, ... }: { imports = [ ./theme-switcher.nix ]; - home.activation = { - makedir = '' - mkdir -p ~/.config/cornflake - ''; - }; + programs.nh = { + enable = true; + flake = "${config.home.homeDirectory}/cornflake"; + }; + + home.activation = { + makedir = '' + mkdir -p ~/.config/cornflake + ''; + }; }