update: misc

This commit is contained in:
FabricSoul 2025-07-02 17:25:32 -04:00
parent 391159f8f3
commit 5339994df8
10 changed files with 100 additions and 185 deletions

141
flake.lock generated
View file

@ -1,70 +1,5 @@
{
"nodes": {
"ags": {
"inputs": {
"astal": "astal",
"nixpkgs": [
"hyprpanel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1744557573,
"narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=",
"owner": "aylur",
"repo": "ags",
"rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "ags",
"type": "github"
}
},
"astal": {
"inputs": {
"nixpkgs": [
"hyprpanel",
"ags",
"nixpkgs"
]
},
"locked": {
"lastModified": 1742571008,
"narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=",
"owner": "aylur",
"repo": "astal",
"rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"astal_2": {
"inputs": {
"nixpkgs": [
"hyprpanel",
"nixpkgs"
]
},
"locked": {
"lastModified": 1748416910,
"narHash": "sha256-FEQcs58HL8Fe4i7XlqVEUwthjxwvRvgX15gTTfW17sU=",
"owner": "aylur",
"repo": "astal",
"rev": "c1bd89a47c81c66ab5fc6872db5a916c0433fb89",
"type": "github"
},
"original": {
"owner": "aylur",
"repo": "astal",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
@ -151,11 +86,11 @@
]
},
"locked": {
"lastModified": 1750304462,
"narHash": "sha256-Mj5t4yX05/rXnRqJkpoLZTWqgStB88Mr/fegTRqyiWc=",
"lastModified": 1751476662,
"narHash": "sha256-eX6wMGQjaTzedR6lz2IpEnAMgLcuQLQezBJNil7yG3s=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "863842639722dd12ae9e37ca83bcb61a63b36f6c",
"rev": "9347c61bc0cbed0d2062b930144c2cbd557f9189",
"type": "github"
},
"original": {
@ -165,26 +100,6 @@
"type": "github"
}
},
"hyprpanel": {
"inputs": {
"ags": "ags",
"astal": "astal_2",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1750386831,
"narHash": "sha256-oREAoOQeAExqWMkw2r3BJfiaflh7QwHFkp8Qm0qDu6o=",
"owner": "jas-singhfsu",
"repo": "hyprpanel",
"rev": "d563cdb1f6499d981901336bd0f86303ab95c4a5",
"type": "github"
},
"original": {
"owner": "jas-singhfsu",
"repo": "hyprpanel",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
@ -215,27 +130,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1748370509,
"narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4faa5f5321320e49a78ae7848582f684d64783e9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1750215678,
"narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=",
"lastModified": 1751382304,
"narHash": "sha256-p+UruOjULI5lV16FkBqkzqgFasLqfx0bihLBeFHiZAs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192",
"rev": "d31a91c9b3bee464d054633d5f8b84e17a637862",
"type": "github"
},
"original": {
@ -246,22 +145,6 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750215678,
"narHash": "sha256-Rc/ytpamXRf6z8UA2SGa4aaWxUXRbX2MAWIu2C8M+ok=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5395fb3ab3f97b9b7abca147249fa2e8ed27b192",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1710272261,
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
@ -287,11 +170,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1750345447,
"narHash": "sha256-yOuSSfI4xovXQpSkZUK02CBcY1f0Nvm0RhnUN8xn2rY=",
"lastModified": 1751463146,
"narHash": "sha256-mjrw7PTbdScg9tg/oghQYwsGfa2ZcSb14V6qcvl1rN8=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "6a1a348ab1f00bd32d2392b5c2fc72489c699af3",
"rev": "30d8be8628330bc5baa064e0dac904a574558b17",
"type": "github"
},
"original": {
@ -328,7 +211,7 @@
"inputs": {
"fenix": "fenix",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_2",
"systems": "systems_4"
},
"locked": {
@ -348,9 +231,7 @@
"root": {
"inputs": {
"home-manager": "home-manager",
"hyprpanel": "hyprpanel",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"openapi-tui": "openapi-tui"
}

View file

@ -3,19 +3,12 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprpanel = {
url = "github:jas-singhfsu/hyprpanel";
# inputs.nixpkgs.follows = "nixpkgs";
# inputs.home-manager.follows = "home-manager"; # Add this line
};
nixvim = {
url = "github:nix-community/nixvim/main";
# If using a stable channel you can use `url = "github:nix-community/nixvim/nixos-<version>"`
@ -29,16 +22,13 @@
outputs = {
self,
nixpkgs,
nixpkgs-unstable,
home-manager,
nixvim,
hyprpanel,
openapi-tui,
...
}: let
lib = nixpkgs.lib;
pkgs = nixpkgs.legacyPackages."x86_64-linux";
pkgsUnstable = nixpkgs-unstable.legacyPackages."x86_64-linux";
in {
nixosConfigurations = {
tatara = lib.nixosSystem {
@ -58,17 +48,12 @@
homeConfigurations.fabric = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit nixvim hyprpanel openapi-tui;
inherit nixvim openapi-tui; # deleted hyprpanel
};
modules = [
{
nixpkgs.overlays = [
hyprpanel.overlay
];
}
./home/fabric/default.nix
nixvim.homeManagerModules.nixvim
hyprpanel.homeManagerModules.hyprpanel
# hyprpanel.homeManagerModules.hyprpanel
];
};
};

View file

@ -1,6 +1,6 @@
{
nixvim,
hyprpanel,
# hyprpanel,
pkgs,
pkgsUnstable,
config,
@ -126,7 +126,7 @@
zsh
pavucontrol
wofi
hyprpanel
# hyprpanel
alejandra
rustup
tmuxPlugins.sensible

View file

@ -1,6 +1,70 @@
{...}: {
{pkgs, ...}: let
# 1. Define the smart launcher script for QQ
qq-launcher = pkgs.writeShellScriptBin "launch-qq.sh" ''
#!/bin/sh
# Define the name for our persistent container
CONTAINER_NAME="qq-persistent"
# Ensure the host directory for QQ's config exists
mkdir -p "$HOME/.config/qq-docker"
# Check if the container is already running
if [ "$(${pkgs.docker}/bin/docker ps -q -f name=$CONTAINER_NAME)" ]; then
echo "Container is running. Sending activation signal via D-Bus..."
# This command asks the QQ application's D-Bus service to execute its 'show' method.
# The service name and path are educated guesses based on common Qt app behavior.
${pkgs.docker}/bin/docker exec --user user "$CONTAINER_NAME" \
qdbus com.tencent.QQ /MainApplication show
exit 0
fi
# Check if the container exists but is stopped
if [ "$(${pkgs.docker}/bin/docker ps -a -q -f name=$CONTAINER_NAME)" ]; then
# If stopped, just start it
echo "Starting existing, stopped QQ container..."
${pkgs.docker}/bin/docker start "$CONTAINER_NAME"
exit 0
fi
# If the container does not exist at all, create it for the first time
echo "Container not found. Creating and starting new QQ container..."
${pkgs.docker}/bin/docker run \
-d \
--name "$CONTAINER_NAME" \
--user $(id -u):$(id -g) \
--network=default \
-e DISPLAY \
-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \
-e QT_QPA_PLATFORM=wayland \
-e DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS \
-e GTK_IM_MODULE=fcitx \
-e QT_IM_MODULE=fcitx \
-e XMODIFIERS=@im=fcitx \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=$DISPLAY \
-e XDG_SESSION_TYPE=wayland \
--ipc=host \
-v "$HOME/.config/qq-docker:/home/user/.config" \
-v "$XDG_RUNTIME_DIR:$XDG_RUNTIME_DIR:rw" \
-v "/dev/dri:/dev/dri:rw" \
-v "$HOME/xdg-open-proxy:/usr/bin/xdg-open:ro" \
-v "/etc/machine-id:/etc/machine-id:ro" \
--security-opt="no-new-privileges" \
--cap-drop="ALL" \
qq-isolated
'';
in {
home.packages = [qq-launcher];
xdg.desktopEntries = {
# The name of the entry. This becomes the filename, e.g., "firefox-private.desktop"
# 2. Declaratively create the .desktop file
"qq-docker" = {
name = "QQ (Docker)";
comment = "Run QQ inside a secure Docker container";
exec = "launch-qq.sh";
type = "Application";
};
discord = {
# The name that will appear in Wofi
name = "Discord";

View file

@ -92,6 +92,7 @@
];
monitor = [
"DP-3, 3440x1440@144.00HZ, 0x0, 1"
"DP-5, 3440x1440@144.00HZ, 0x0, 1"
];
};
};

View file

@ -1,16 +1,11 @@
# home/fabric/desktop/hyprpanel.nix
{
config,
pkgs,
hyprpanel,
...
}: {
{pkgs, ...}: {
# Wayland settings for hyprpanel
wayland.windowManager.hyprland.settings = {
exec-once = [
"${pkgs.hyprpanel}/bin/hyprpanel"
];
};
# wayland.windowManager.hyprland.settings = {
# exec-once = [
# "${pkgs.hyprpanel}/bin/hyprpanel"
# ];
# };
programs.hyprpanel = {
# Enable the module.
@ -19,9 +14,6 @@
# Add to Hyprland config
# hyprland.enable = true;
# Fix the overwrite issue
overwrite.enable = false;
# Configure and theme options
settings = {
# Configure bar layouts for monitors

View file

@ -7,26 +7,6 @@
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
settings.General = {
experimental = true; # show battery
# https://www.reddit.com/r/NixOS/comments/1ch5d2p/comment/lkbabax/
# for pairing bluetooth controller
Privacy = "device";
JustWorksRepairing = "always";
Class = "0x000100";
FastConnectable = true;
};
};
services.blueman.enable = true;
hardware.xpadneo.enable = true; # Enable the xpadneo driver for Xbox One wireless controllers
boot = {
extraModulePackages = with config.boot.kernelPackages; [xpadneo];
extraModprobeConfig = ''
options bluetooth disable_ertm=Y
'';
# connect xbox controller
};
}

View file

@ -0,0 +1,8 @@
{...}: {
services.sunshine = {
enable = true;
autoStart = true;
capSysAdmin = true;
openFirewall = true;
};
}

View file

@ -16,6 +16,8 @@
../common/optional/steam.nix
../common/optional/flatpak.nix
../common/optional/fcitx5.nix
../common/optional/bluetooth.nix
../common/optional/sunshine.nix
];
# Bootloader

View file

@ -16,6 +16,8 @@
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
hardware.enableRedistributableFirmware = true;
# Firmware packages
hardware.firmware = with pkgs; [
linux-firmware