Compare commits
8 Commits
5d0794abba
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c3ea60a132 | |||
| dc71273e1c | |||
| 781f265851 | |||
| 5f8e03fc5c | |||
| c959544f21 | |||
| b52d6ac220 | |||
| 04a1dd1558 | |||
| 3c868f2913 |
68
0001-ipc-shutdown-ipc-server-on-SIGTERM.patch
Normal file
68
0001-ipc-shutdown-ipc-server-on-SIGTERM.patch
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
From 8d75be68315bec605a95b50edf7d2a6c56772b7f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sapphire <imsapphire0@gmail.com>
|
||||||
|
Date: Tue, 25 Nov 2025 23:20:46 -0600
|
||||||
|
Subject: [PATCH] ipc: shutdown ipc server on SIGTERM
|
||||||
|
|
||||||
|
---
|
||||||
|
src/xrt/ipc/server/ipc_server_process.c | 24 ++++++++++++++++++++++++
|
||||||
|
1 file changed, 24 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/xrt/ipc/server/ipc_server_process.c b/src/xrt/ipc/server/ipc_server_process.c
|
||||||
|
index 92c232904..47a4a70bc 100644
|
||||||
|
--- a/src/xrt/ipc/server/ipc_server_process.c
|
||||||
|
+++ b/src/xrt/ipc/server/ipc_server_process.c
|
||||||
|
@@ -50,6 +50,10 @@
|
||||||
|
#include <timeapi.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if defined(XRT_OS_UNIX)
|
||||||
|
+#include <signal.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
@@ -1062,6 +1066,16 @@ ipc_server_get_system_properties(struct ipc_server *vs, struct xrt_system_proper
|
||||||
|
return XRT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef XRT_OS_UNIX
|
||||||
|
+struct ipc_server *g_server;
|
||||||
|
+static void handle_signal(int signal)
|
||||||
|
+{
|
||||||
|
+ if (g_server && signal == SIGTERM) {
|
||||||
|
+ ipc_server_handle_shutdown_signal(g_server);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
int
|
||||||
|
ipc_server_main_common(const struct ipc_server_main_info *ismi,
|
||||||
|
const struct ipc_server_callbacks *callbacks,
|
||||||
|
@@ -1086,6 +1100,11 @@ ipc_server_main_common(const struct ipc_server_main_info *ismi,
|
||||||
|
timeBeginPeriod(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#ifdef XRT_OS_UNIX
|
||||||
|
+ g_server = s;
|
||||||
|
+ signal(SIGTERM, handle_signal);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Need to create early before any vars are added. Not created in
|
||||||
|
* init_all since that function is shared with Android and the debug
|
||||||
|
@@ -1127,6 +1146,11 @@ ipc_server_main_common(const struct ipc_server_main_info *ismi,
|
||||||
|
// Stop the UI before tearing everything down.
|
||||||
|
u_debug_gui_stop(&s->debug_gui);
|
||||||
|
|
||||||
|
+#ifdef XRT_OS_UNIX
|
||||||
|
+ signal(SIGTERM, NULL);
|
||||||
|
+ g_server = NULL;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// Done after UI stopped.
|
||||||
|
teardown_all(s);
|
||||||
|
free(s);
|
||||||
|
--
|
||||||
|
2.52.0
|
||||||
|
|
||||||
@ -107,8 +107,7 @@
|
|||||||
#media-session.enable = true;
|
#media-session.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
programs.zsh.enable = true;
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.abby = {
|
users.users.abby = {
|
||||||
@ -124,8 +123,11 @@
|
|||||||
vivaldi
|
vivaldi
|
||||||
chromium
|
chromium
|
||||||
appimage-run
|
appimage-run
|
||||||
# thunderbird
|
# thunderbird
|
||||||
];
|
];
|
||||||
|
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOYmdrmGnKrC3baYXihar6PoR1r64r8SCctEy8BVv2BQ triazo@nicrosil"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOYmdrmGnKrC3baYXihar6PoR1r64r8SCctEy8BVv2BQ triazo@nicrosil"
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3Dv3wVYJ77FNZU8JuGCwBAr9cAdsYMibGyImUSs+R73vEI6XpK/R5NQEDqC/y8TUL+nwLmBIrCj9k+At9FxLlGphUQhQcUKxUvx0qXCP52M3XLxGhbQinTACEsSa15SLli5WsD9xqj3TjiqD35jz/a3s1r2gwzj4vqGxcU1pwYlGNyU+RfyddgOdQTtBr5FzVjHKMMA4UW3HTtC1AyjdKrwhbQApDKrif3tAabcn0jG6dLpLxS7v/fugUQSPTzPne0Bw+SthPKb/R95EWfs7EoSjNAmIc+RSgKO+om9hqHVPTFK95TosmYr5VZVlJ0/uHw0GrpRfQNXpoFEbJ6g4l"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3Dv3wVYJ77FNZU8JuGCwBAr9cAdsYMibGyImUSs+R73vEI6XpK/R5NQEDqC/y8TUL+nwLmBIrCj9k+At9FxLlGphUQhQcUKxUvx0qXCP52M3XLxGhbQinTACEsSa15SLli5WsD9xqj3TjiqD35jz/a3s1r2gwzj4vqGxcU1pwYlGNyU+RfyddgOdQTtBr5FzVjHKMMA4UW3HTtC1AyjdKrwhbQApDKrif3tAabcn0jG6dLpLxS7v/fugUQSPTzPne0Bw+SthPKb/R95EWfs7EoSjNAmIc+RSgKO+om9hqHVPTFK95TosmYr5VZVlJ0/uHw0GrpRfQNXpoFEbJ6g4l"
|
||||||
@ -152,10 +154,6 @@
|
|||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|
||||||
# url = "https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2425.diff";
|
|
||||||
# hash = sha256-572a968fda55d9fabd22ab94f8bc1bbdadb4ac21fbe2bf927d05fbf00d9a0e42
|
|
||||||
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@ -172,13 +170,8 @@
|
|||||||
zenity
|
zenity
|
||||||
htop
|
htop
|
||||||
usbutils
|
usbutils
|
||||||
|
|
||||||
|
|
||||||
# lemonake.packages.${pkgs.system}.wayvr-dashboard-git
|
# lemonake.packages.${pkgs.system}.wayvr-dashboard-git
|
||||||
|
|
||||||
monado
|
monado
|
||||||
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -76,6 +76,7 @@
|
|||||||
username = "abby";
|
username = "abby";
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
system = system;
|
system = system;
|
||||||
|
use_syncthing = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@ -91,7 +92,7 @@
|
|||||||
home-manager.lib.homeManagerConfiguration {
|
home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [
|
modules = [
|
||||||
lix-module.homeManagerModules.default
|
lix-module.nixosModules.default
|
||||||
ragenix.homeManagerModules.default
|
ragenix.homeManagerModules.default
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
@ -99,6 +100,7 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
username = "abby";
|
username = "abby";
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
|
use_syncthing = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
homeConfigurations."pager@nicrosil" =
|
homeConfigurations."pager@nicrosil" =
|
||||||
@ -114,13 +116,15 @@
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
# specialArgs = inputs;
|
# specialArgs = inputs;
|
||||||
modules = [
|
modules = [
|
||||||
lix-module.homeManagerModules.default
|
lix-module.nixosModules.default
|
||||||
ragenix.homeManagerModules.default
|
ragenix.homeManagerModules.default
|
||||||
./home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
|
inherit system;
|
||||||
username = "pager";
|
username = "pager";
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
|
use_syncthing = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
9
home.nix
9
home.nix
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, inputs, system ? "x86_64-linux", username ? "abby", ... }:
|
{ config, pkgs, inputs, system ? "x86_64-linux", username ? "abby", use_syncthing ? false , ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Home Manager needs a bit of information about you and the
|
# Home Manager needs a bit of information about you and the
|
||||||
@ -26,16 +26,17 @@
|
|||||||
vrcadvert
|
vrcadvert
|
||||||
alcom
|
alcom
|
||||||
vesktop
|
vesktop
|
||||||
vrcx
|
|
||||||
mpv
|
mpv
|
||||||
vlc
|
vlc
|
||||||
moonlight-qt
|
moonlight-qt
|
||||||
|
starship
|
||||||
#inputs.ragenix.packges.${system}.default
|
#inputs.ragenix.packges.${system}.default
|
||||||
|
|
||||||
# htop
|
# htop
|
||||||
#inputs.baballonia.${system}.default
|
#inputs.baballonia.${system}.default
|
||||||
] ++ lib.optionals (system == "x86-linux")
|
] ++ lib.optionals (system == "x86-linux")
|
||||||
(import ./unity_vrchat.nix {pkgs = pkgs; }).packages
|
(import ./unity_vrchat.nix {pkgs = pkgs; }).packages
|
||||||
|
++ lib.optionals (system == "x86-linux") [ vrcx ]
|
||||||
++ lib.optionals (false) [
|
++ lib.optionals (false) [
|
||||||
inputs.nixgl.nixGLIntel
|
inputs.nixgl.nixGLIntel
|
||||||
] ++ [
|
] ++ [
|
||||||
@ -128,7 +129,9 @@ dashboard:
|
|||||||
|
|
||||||
# Other misc conf files
|
# Other misc conf files
|
||||||
xdg.configFile."kitty/kitty.conf".source = ./xdg/kitty/kitty.conf;
|
xdg.configFile."kitty/kitty.conf".source = ./xdg/kitty/kitty.conf;
|
||||||
|
xdg.configFile."starship.toml".source = ./xdg/starship.toml;
|
||||||
home.file.".zshrc".source = xdg/zshrc;
|
home.file.".zshrc".source = xdg/zshrc;
|
||||||
|
|
||||||
services.syncthing = import ./syncthing.nix { config = config; };
|
services.syncthing = pkgs.lib.mkIf use_syncthing (import ./syncthing.nix { config = config; });
|
||||||
|
# services.syncthing = pkgs.lib.mkIf use_syncthing import ./syncthing.nix { config = config; };
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
src = final.fetchFromGitHub {
|
src = final.fetchFromGitHub {
|
||||||
owner = "ImSapphire";
|
owner = "ImSapphire";
|
||||||
repo = "xrizer";
|
repo = "xrizer";
|
||||||
rev = "b0fd6807b9c6ab7cd16339e478ac3c78881080c9";
|
rev = "0660170c3fcff27035a44052ab593c5e96208341";
|
||||||
hash = "sha256-D9jLaxWNce8XHfYePyOF2HEmJuDMKhuty+VO0CP8I38=";
|
hash = "sha256-D9jLaxWNce8XHfYePyOF2HEmJuDMKhuty+VO0CP8I38=";
|
||||||
};
|
};
|
||||||
cargoDeps = prev.rustPackages.rustPlatform.fetchCargoVendor {
|
cargoDeps = prev.rustPackages.rustPlatform.fetchCargoVendor {
|
||||||
@ -18,26 +18,16 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
monado = prev.monado.overrideAttrs (oldAttrs: rec {
|
monado = prev.monado.overrideAttrs (oldAttrs: rec {
|
||||||
# src = final.fetchgit {
|
|
||||||
# url = "https://tangled.org/@matrixfurry.com/monado";
|
|
||||||
# rev = "f689a3cf";
|
|
||||||
# hash = "sha256-WBC+1+01U/2kvHYflqZczRW4rDAcOqsAPalGo8Yg3EI=";
|
|
||||||
# };
|
|
||||||
# src = final.fetchFromGitLab {
|
|
||||||
# domain = "gitlab.freedesktop.org";
|
|
||||||
# owner = "xantoz";
|
|
||||||
# repo = "monado";
|
|
||||||
# rev = "d1474046";
|
|
||||||
# hash = "sha256-c53oZMC0v74T9vGA+Bg+O4Eqr8VJviaM6/wS0kMo+84=";
|
|
||||||
# };
|
|
||||||
src = final.fetchFromGitLab {
|
src = final.fetchFromGitLab {
|
||||||
domain = "gitlab.freedesktop.org";
|
domain = "gitlab.freedesktop.org";
|
||||||
owner = "monado";
|
owner = "monado";
|
||||||
repo = "monado";
|
repo = "monado";
|
||||||
rev = "61d59ca7";
|
rev = "2ebbca83e896e0802185277ce0a0a463db7a7892";
|
||||||
hash = "sha256-JjlKHXd1SD9M8OpgFERZCvAhM0eMxjME96YU38DlKNw=";
|
hash = "sha256-JjlKHXd1SD9M8OpgFERZCvAhM0eMxjME96YU38DlKNw=";
|
||||||
};
|
};
|
||||||
patches = [];
|
patches = [
|
||||||
|
./0001-ipc-shutdown-ipc-server-on-SIGTERM.patch
|
||||||
|
];
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|||||||
144
xdg/starship.toml
Normal file
144
xdg/starship.toml
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
format = """
|
||||||
|
[](#9A348E)\
|
||||||
|
$os\
|
||||||
|
$username\
|
||||||
|
[](bg:#DA627D fg:#9A348E)\
|
||||||
|
$directory\
|
||||||
|
[](fg:#DA627D bg:#FCA17D)\
|
||||||
|
$git_branch\
|
||||||
|
$git_status\
|
||||||
|
[](fg:#FCA17D bg:#86BBD8)\
|
||||||
|
$c\
|
||||||
|
$elixir\
|
||||||
|
$elm\
|
||||||
|
$golang\
|
||||||
|
$gradle\
|
||||||
|
$haskell\
|
||||||
|
$java\
|
||||||
|
$julia\
|
||||||
|
$nodejs\
|
||||||
|
$nim\
|
||||||
|
$rust\
|
||||||
|
$scala\
|
||||||
|
[](fg:#86BBD8 bg:#06969A)\
|
||||||
|
$docker_context\
|
||||||
|
[](fg:#06969A bg:#33658A)\
|
||||||
|
$time\
|
||||||
|
[ ](fg:#33658A)\
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Disable the blank line at the start of the prompt
|
||||||
|
# add_newline = false
|
||||||
|
|
||||||
|
# You can also replace your username with a neat symbol like or disable this
|
||||||
|
# and use the os module below
|
||||||
|
[username]
|
||||||
|
show_always = true
|
||||||
|
style_user = "bg:#9A348E"
|
||||||
|
style_root = "bg:#9A348E"
|
||||||
|
format = '[$user ]($style)'
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
# An alternative to the username module which displays a symbol that
|
||||||
|
# represents the current operating system
|
||||||
|
[os]
|
||||||
|
style = "bg:#9A348E"
|
||||||
|
disabled = true # Disabled by default
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
style = "bg:#DA627D"
|
||||||
|
format = "[ $path ]($style)"
|
||||||
|
truncation_length = 3
|
||||||
|
truncation_symbol = "…/"
|
||||||
|
|
||||||
|
# Here is how you can shorten some long paths by text replacement
|
||||||
|
# similar to mapped_locations in Oh My Posh:
|
||||||
|
[directory.substitutions]
|
||||||
|
"Documents" = " "
|
||||||
|
"Downloads" = " "
|
||||||
|
"Music" = " "
|
||||||
|
"Pictures" = " "
|
||||||
|
# Keep in mind that the order matters. For example:
|
||||||
|
# "Important Documents" = " "
|
||||||
|
# will not be replaced, because "Documents" was already substituted before.
|
||||||
|
# So either put "Important Documents" before "Documents" or use the substituted version:
|
||||||
|
# "Important " = " "
|
||||||
|
|
||||||
|
[c]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[docker_context]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#06969A"
|
||||||
|
format = '[ $symbol $context ]($style) $path'
|
||||||
|
|
||||||
|
[elixir]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[elm]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#FCA17D"
|
||||||
|
format = '[ $symbol $branch ]($style)'
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
style = "bg:#FCA17D"
|
||||||
|
format = '[$all_status$ahead_behind ]($style)'
|
||||||
|
|
||||||
|
[golang]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[gradle]
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[haskell]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[java]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[julia]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[nodejs]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[nim]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[scala]
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#86BBD8"
|
||||||
|
format = '[ $symbol ($version) ]($style)'
|
||||||
|
|
||||||
|
[time]
|
||||||
|
disabled = false
|
||||||
|
time_format = "%R" # Hour:Minute Format
|
||||||
|
style = "bg:#33658A"
|
||||||
|
format = '[ ♥ $time ]($style)'
|
||||||
Reference in New Issue
Block a user