mirror of
https://github.com/moons-14/dotfiles.git
synced 2026-10-06 05:18:12 +09:00
feat
This commit is contained in:
Generated
+43
@@ -512,6 +512,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_3": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nix-hazkey",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1778444552,
|
||||
"narHash": "sha256-f18pIiR9q/p1vHY93gmAum7aHhQOG49oGvAB9+lptRo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "dcebe66f958673729896eec2de4abfd86ef22d21",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
@@ -634,6 +655,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-hazkey": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1779529080,
|
||||
"narHash": "sha256-CHa5L3I71NbPUNJp1gmmwbh91tKsZPyuRK50mLHjAVY=",
|
||||
"owner": "aster-void",
|
||||
"repo": "nix-hazkey",
|
||||
"rev": "24cb2926666836988e78ceebeb67ad6c5a387ac3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "aster-void",
|
||||
"repo": "nix-hazkey",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-index-database": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -1040,6 +1082,7 @@
|
||||
"llm-agents": "llm-agents",
|
||||
"niri-flake": "niri-flake",
|
||||
"nix-darwin": "nix-darwin",
|
||||
"nix-hazkey": "nix-hazkey",
|
||||
"nix-index-database": "nix-index-database",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixos-wsl": "nixos-wsl",
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
# Desktop
|
||||
niri-flake.url = "github:sodiboo/niri-flake";
|
||||
|
||||
nix-hazkey = {
|
||||
url = "github:aster-void/nix-hazkey";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
vesktop = pkgs.vesktop.overrideAttrs (oldAttrs: {
|
||||
# Electron does not enable the PipeWire WebRTC capturer in Vesktop's
|
||||
# wrapper, so Wayland compositors cannot hand screen sharing to their
|
||||
# xdg-desktop-portal backend.
|
||||
postFixup =
|
||||
builtins.replaceStrings
|
||||
[ "WaylandWindowDecorations" ]
|
||||
[ "WaylandWindowDecorations,WebRTCPipeWireCapturer" ]
|
||||
oldAttrs.postFixup;
|
||||
});
|
||||
in
|
||||
lib.mkIf pkgs.stdenv.hostPlatform.isLinux {
|
||||
programs.vesktop.enable = true;
|
||||
programs.vesktop = {
|
||||
enable = true;
|
||||
package = vesktop;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
description = "Fcitx 5 input method framework with Hazkey Japanese input";
|
||||
|
||||
imports.nixos = [ inputs.nix-hazkey.nixosModules.hazkey ];
|
||||
}
|
||||
@@ -39,6 +39,8 @@ let
|
||||
};
|
||||
in
|
||||
{
|
||||
services.hazkey.enable = true;
|
||||
|
||||
i18n.inputMethod = {
|
||||
enable = true;
|
||||
type = "fcitx5";
|
||||
@@ -67,6 +69,10 @@ in
|
||||
Name = "mozc";
|
||||
Layout = "";
|
||||
};
|
||||
"Groups/0/Items/2" = {
|
||||
Name = "hazkey";
|
||||
Layout = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
|
||||
settings.general.renice = 10;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
programs.gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
}
|
||||
@@ -151,6 +151,12 @@ in
|
||||
# Pull in graphical-session.target so Home Manager services such as
|
||||
# portals, Vicinae, and the idle manager follow the labwc session.
|
||||
systemd.extraCommands = [
|
||||
# The wlroots portal is conditionally started with WAYLAND_DISPLAY. It
|
||||
# can otherwise be skipped before labwc imports its session environment,
|
||||
# leaving the desktop portal without the ScreenCast interface.
|
||||
"${lib.getExe' pkgs.systemd "systemctl"} --user restart xdg-desktop-portal-wlr.service"
|
||||
"${lib.getExe' pkgs.systemd "systemctl"} --user restart xdg-desktop-portal.service"
|
||||
|
||||
# Clear the previous session's target first. Otherwise services such as
|
||||
# kanshi that lose their Wayland connection on logout remain in a
|
||||
# failed/start-limit-hit state and are not started for the next login.
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
{ lib, pkgs, ... }:
|
||||
lib.mkIf pkgs.stdenv.hostPlatform.isLinux {
|
||||
programs.mangohud.enable = true;
|
||||
}
|
||||
@@ -89,6 +89,7 @@ let
|
||||
"codex"
|
||||
"vesktop"
|
||||
];
|
||||
show_all_outputs = true;
|
||||
group_by_workspace = false;
|
||||
show_window_title = false;
|
||||
pinned_opacity = 0.60;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
homebrew = {
|
||||
enable = true;
|
||||
taps = [ "pear-devs/pear" ];
|
||||
casks = [ "pear-desktop" ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
isLinux = pkgs.stdenv.hostPlatform.isLinux;
|
||||
isDarwin = pkgs.stdenv.hostPlatform.isDarwin;
|
||||
unstable = inputs.nixpkgs-unstable.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||
configDirectory =
|
||||
if isDarwin then
|
||||
"${config.home.homeDirectory}/Library/Application Support/YouTube Music"
|
||||
else
|
||||
"${config.xdg.configHome}/YouTube Music";
|
||||
configFile = "${configDirectory}/config.json";
|
||||
managedConfig = {
|
||||
options.autoUpdates = false;
|
||||
plugins = {
|
||||
performance-improvement.enabled = true;
|
||||
synced-lyrics = {
|
||||
enabled = true;
|
||||
preciseTiming = true;
|
||||
showLyricsEvenIfInexact = true;
|
||||
showTimeCodes = false;
|
||||
defaultTextString = "♪";
|
||||
lineEffect = "fancy";
|
||||
romanization = true;
|
||||
};
|
||||
do-not-track = {
|
||||
enabled = true;
|
||||
cache = true;
|
||||
};
|
||||
album-color-theme = {
|
||||
enabled = true;
|
||||
ratio = 0.5;
|
||||
enableSeekbar = true;
|
||||
};
|
||||
custom-output-device.enabled = true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = lib.optionals isLinux [ unstable.pear-desktop ];
|
||||
|
||||
home.activation.configurePearDesktop = {
|
||||
after = [ "writeBoundary" ];
|
||||
before = [ ];
|
||||
data = ''
|
||||
config_directory=${lib.escapeShellArg configDirectory}
|
||||
config_file=${lib.escapeShellArg configFile}
|
||||
managed_config=${lib.escapeShellArg (builtins.toJSON managedConfig)}
|
||||
|
||||
if [ -n "''${DRY_RUN_CMD:-}" ]; then
|
||||
echo "Would merge managed Pear Desktop settings into $config_file"
|
||||
else
|
||||
umask 077
|
||||
mkdir -p "$config_directory"
|
||||
|
||||
if [ ! -f "$config_file" ]; then
|
||||
printf '{}\n' > "$config_file"
|
||||
fi
|
||||
|
||||
if ${pkgs.jq}/bin/jq -e . "$config_file" > /dev/null; then
|
||||
temporary_file="$(${pkgs.coreutils}/bin/mktemp "$config_file.tmp.XXXXXX")"
|
||||
${pkgs.jq}/bin/jq --argjson managed "$managed_config" \
|
||||
'. * $managed' "$config_file" > "$temporary_file"
|
||||
${pkgs.coreutils}/bin/mv "$temporary_file" "$config_file"
|
||||
else
|
||||
echo "Pear Desktop config is invalid JSON; leaving it unchanged: $config_file" >&2
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
|
||||
# Keep Valve's Proton available through Steam and add Proton-GE as an
|
||||
# explicitly selectable compatibility tool for games that need its extra
|
||||
# patches and codecs.
|
||||
extraCompatPackages = [ pkgs.proton-ge-bin ];
|
||||
|
||||
# Install the supported helper for changing an individual Proton prefix.
|
||||
protontricks.enable = true;
|
||||
|
||||
# Translate Steam's X11 input events to uinput under Wayland so Steam Input
|
||||
# and controller remapping continue to work in the desktop sessions.
|
||||
extest.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -54,9 +54,20 @@ both sessions while sharing `interface.linux-desktop` and `interface.gui`.
|
||||
The shared Linux desktop profile provides the common desktop applications and
|
||||
session-independent services; both session profiles select ly. The laptop
|
||||
platform selects niri as Ly's default session, while the desktop platform
|
||||
selects labwc. A daily-use macOS development machine can combine `interface.macos`,
|
||||
`workload.development`, and `workload.personal`. Hardware support does not
|
||||
implicitly select an interface or workload.
|
||||
selects labwc. A daily-use macOS development machine can combine
|
||||
`interface.macos`, `workload.development`, and `workload.personal`. Hardware
|
||||
support does not implicitly select an interface or workload.
|
||||
|
||||
`workload.personal` provides Pear Desktop on both NixOS and macOS. Home Manager
|
||||
enables performance improvements, synced lyrics, tracker blocking, the album
|
||||
color theme, and custom output-device selection while preserving user-owned
|
||||
settings such as the selected device.
|
||||
|
||||
On NixOS, `workload.game` provides Steam with Valve Proton and Proton-GE,
|
||||
Protontricks, Wayland-compatible Steam Input, GameMode, Gamescope, and MangoHud.
|
||||
Enabling Steam also activates the 32-bit graphics and PipeWire support required
|
||||
by older games. On macOS the same profile currently provides the portable game
|
||||
applications that support that host class.
|
||||
|
||||
`security.tpm-storage` deliberately does not own a disk identifier. A host that
|
||||
selects it must define `boot.initrd.luks.devices.cryptroot.device` in its
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
description = "Gaming applications";
|
||||
|
||||
includes = [
|
||||
"applications.gamemode"
|
||||
"applications.gamescope"
|
||||
"applications.mangohud"
|
||||
"applications.minecraft"
|
||||
"applications.steam"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
"applications.gnome-text-editor"
|
||||
"applications.kde"
|
||||
"applications.moonlight"
|
||||
"applications.pear-desktop"
|
||||
"applications.slack"
|
||||
"applications.zoom"
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user