many changes

This commit is contained in:
Kat Inskip 2025-06-17 16:41:48 -07:00
parent 3150cf3c12
commit 0262081094
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
43 changed files with 4022 additions and 204 deletions

15
discord.css Normal file
View file

@ -0,0 +1,15 @@
@import url("https://aushevahmad.github.io/awesome-css/modules/custom-bar-prompt.css");
@import url("https://raw.githubusercontent.com/tom22k/discord-css/main/Themes/HideNitroUpsellV2.css");
@import url("https://minidiscordthemes.github.io/Snippets/AltTextImprovements/main.css");
:root {
/* do you want to see your quests/billing/nitro settings? */
/* yes, I want to see it -> --billing: block !important; */
/* no, hide it -> --billing: none; */
--billing: none;
/* do you want to see server boosting/server shop upsell? */
/* yes, I want to see it -> --boosting: block !important; */
/* no, hide it -> --boosting: none; */
--boosting: none;
--prompt-text: "be silly :3";
}

1023
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -13,12 +13,21 @@
std = { std = {
url = "github:chessai/nix-std"; url = "github:chessai/nix-std";
}; };
nix-gaming.url = "github:fufexan/nix-gaming";
hyprland.url = "github:hyprwm/Hyprland";
split-monitor-workspaces = {
url = "github:Duckonaut/split-monitor-workspaces";
inputs.hyprland.follows = "hyprland"; # <- make sure this line is present for the plugin to work as intended
};
nix-proton-cachyos.url = "github:kittywitch/nix-proton-cachyos";
# used for overriding unwanted flake inputs # used for overriding unwanted flake inputs
empty.url = "github:input-output-hk/empty-flake"; empty.url = "github:input-output-hk/empty-flake";
# self-explanatory # self-explanatory
nixpkgs = { nixpkgs = {
url = "github:nixos/nixpkgs/nixos-unstable"; url = "github:nixos/nixpkgs/nixos-unstable";
}; };
nixpkgs-xr.url = "github:nix-community/nixpkgs-xr";
infrastructure = { infrastructure = {
url = "github:gensokyo-zone/infrastructure/main"; url = "github:gensokyo-zone/infrastructure/main";
inputs = { inputs = {
@ -51,6 +60,14 @@
flake-compat.follows = "flake-compat"; flake-compat.follows = "flake-compat";
}; };
}; };
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
push2talk = {
url = "github:cyrinux/push2talk/main";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "utils";
};
};
wezterm = { wezterm = {
url = "github:wez/wezterm/main?dir=nix"; url = "github:wez/wezterm/main?dir=nix";
inputs = { inputs = {

View file

@ -0,0 +1,210 @@
{
std,
pkgs,
inputs,
...
}: let
inherit (std) list;
in {
home.packages = with pkgs; [
grimblast
wl-clipboard
wlr-randr
wl-screenrec
slurp
grim
swww
pavucontrol
hyprpicker
brightnessctl
playerctl
glib
];
services.swww.enable = true;
wayland.windowManager.hyprland = let
import-gsettings = pkgs.writeShellScriptBin "import-gsettings" ''
# usage: import-gsettings
config="''${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"
if [ ! -f "$config" ]; then exit 1; fi
gnome_schema="org.gnome.desktop.interface"
gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')"
icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')"
cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')"
font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')"
${pkgs.glib}/bin/gsettings set "$gnome_schema" gtk-theme "$gtk_theme"
${pkgs.glib}/bin/gsettings set "$gnome_schema" icon-theme "$icon_theme"
${pkgs.glib}/bin/gsettings set "$gnome_schema" cursor-theme "$cursor_theme"
${pkgs.glib}/bin/gsettings set "$gnome_schema" font-name "$font_name"
'';
in {
enable = true;
systemd = {
enable = true;
variables = ["--all"];
extraCommands = [
"systemctl --user stop graphical-session.target"
"systemctl --user start hyprland-session.target"
];
};
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
plugins = [
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
];
settings = {
"$mod" = "SUPER";
input = {
kb_options = "ctrl:nocaps";
};
workspace = let
commonOptions = "gapsin:0,gapsout:0,rounding:false";
in
["1,monitor:DP-1,default:true,${commonOptions}"]
++ (list.map (
workspace: "${toString workspace},monitor:DP-1${commonOptions}"
) (list.range 2 10))
++ [ "11,monitor:DP-2,default:true"] ++ (list.map (
workspace: "${toString workspace},monitor:DP-2${commonOptions}"
) (list.range 12 20));
/*list.concat (list.generate (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"${toString x},monitor:DP-1"
"${toString (x + 10)},monitor:DP-2${commonOptions}"
]
)
10);
*/
env = [
"NVD_BACKEND,direct"
"ELECTRON_OZONE_PLATFORM_HINT,auto"
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
"QT_QPA_PLATFORM,wayland"
"__NV_DISABLE_EXPLICIT_SYNC,1"
];
exec-once = [
"${pkgs.swww}/bin/swww init"
"${pkgs.hypridle}/bin/hypridle"
"${pkgs.dbus}/bin/dbus-update-activation-environment --all"
"${pkgs.libsForQt5.polkit-kde-agent}/bin/polkit-kde-agent"
"${pkgs.networkmanagerapplet}/bin/nm-applet"
"${pkgs.mako}/bin/mako"
"${pkgs.udiskie}/bin/udiskie &"
"${pkgs.pasystray}/bin/pasystray"
"${pkgs.systemd}/bin/systemctl restart waybar --user"
"${pkgs.systemd}/bin/systemctl restart konawall-py --user"
];
plugin.split-monitor-workspaces = {
count = 10;
keep_focused = 0;
enable_notifications = 0;
enable_persistent_workspaces = 1;
};
group.groupbar = {
font_family = "Monaspace Krypton";
font_size = 12;
};
exec = [
"${import-gsettings}/bin/import-gsettings"
];
xwayland = {
force_zero_scaling = true;
};
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow"
];
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%+"
", XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl -c backlight set 5%-"
];
bind =
[
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause"
", XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next"
", XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl prev"
"$mod, R, exec, wofi -t wezterm -IS drun"
"$mod SHIFT, R, exec, wofi -t wezterm -IS run"
"$mod, Return, exec, wezterm"
", Print, exec, grimblast copy area"
"$mod SHIFT, E, exec, pkill Hyprland"
"$mod SHIFT, Q, killactive,"
"$mod, F, fullscreen,"
"$mod, G, togglegroup,"
"$mod SHIFT, N, changegroupactive, f"
"$mod SHIFT, P, changegroupactive, b"
"$mod, T, togglefloating,"
"$mod SHIFT, T, togglesplit,"
"$mod SHIFT, X, pseudo,"
"$mod ALT, ,resizeactive,"
"$mod, Escape, exec, wlogout -p layer-shell"
"$mod, L, exec, loginctl lock-session"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod SHIFT, left, movewindow, l"
"$mod SHIFT, right, movewindow, r"
"$mod SHIFT, up, movewindow, u"
"$mod SHIFT, down, movewindow, d"
"$mod ALT, left, movewindoworgroup, l"
"$mod ALT, right, movewindoworgroup, r"
"$mod ALT, up, movewindoworgroup, u"
"$mod ALT, down, movewindoworgroup, d"
"$mod, P, exec, ${pkgs.hyprpicker}/bin/hyprpicker -na"
"CTRL, Print, exec, grimblast --notify --cursor copysave output"
"$mod SHIFT CTRL, R, exec, grimblast --notify --cursor copysave output"
"ALT, Print, exec, grimblast --notify --cursor copysave screen"
"$mod SHIFT ALT, R, exec, grimblast --notify --cursor copysave screen"
"$mod, bracketleft, workspace, m-1"
"$mod, bracketright, workspace, m+1"
"$mod SHIFT, bracketleft, focusmonitor, l"
"$mod SHIFT, bracketright, focusmonitor, r"
"$mod SHIFT ALT, bracketleft, movecurrentworkspacetomonitor, l"
"$mod SHIFT ALT, bracketright, movecurrentworkspacetomonitor, r"
]
++ (
# workspaces
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
list.concat (list.generate (
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspacesilent, ${toString (x + 1)}"
"$mod, F${if ws == "0" then "10" else ws}, workspace, ${toString (x + 11)}"
"$mod SHIFT, F${if ws == "0" then "10" else ws}, movetoworkspacesilent, ${toString (x + 11)}"
"$mod ALT, ${ws}, split-workspace, ${toString (x + 1)}"
"$mod SHIFT ALT, ${ws}, split-movetoworkspacesilent, ${toString (x + 1)}"
"$mod ALT, F${if ws == "0" then "10" else ws}, split-workspace, ${toString (x + 11)}"
"$mod SHIFT ALT, F${if ws == "0" then "10" else ws}, split-movetoworkspacesilent, ${toString (x + 11)}"
]
)
10)
);
};
};
}

View file

@ -0,0 +1,5 @@
_: {
programs.hyprlock = {
enable = true;
};
}

View file

@ -0,0 +1,120 @@
_: {
programs.waybar = {
enable = true;
systemd.enable = true;
style = ''
* {
border: none;
border-radius: 0;
font-family: Monaspace Krypton, monospace;
font-size: 13px;
min-height: 0;
}
window#waybar {
background: @theme_base_color;
border-bottom: 1px solid @unfocused_borders;
color: @theme_text_color;
}
tooltip {
background: rgba(43, 48, 59, 0.5);
border: 1px solid rgba(100, 114, 125, 0.5);
}
tooltip label {
color: white;
}
#workspaces button.persistent {
background: shade(@insensitive_bg_color, 0.5);
color: shade(@insensitive_fg_color, 0.5);
}
#workspaces button {
padding: 0 5px;
background: @theme_unfocused_bg_color;
border-bottom: 3px solid transparent;
}
#workspaces button.active, #workspaces button.focused {
background: @theme_selected_bg_color;
color: @theme_selected_fg_color;
border-bottom: 3px solid white;
}
#mode, #clock, #battery, #idle_inhibitor, #tray, #window, #wireplumber, #bluetooth, #mpris {
padding: 0 5px;
margin: 0 5px;
}
#mode {
background: #64727D;
border-bottom: 3px solid white;
}
#clock, #mpris {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: black;
}
#battery.charging {
color: white;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: black;
}
}
#battery.warning:not(.charging) {
background: #f53c3c;
color: white;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
'';
settings.main = {
layer = "top";
position = "top";
height = 24;
modules-left = [
"hyprland/workspaces"
"hyprland/submap"
"hyprland/window"
];
modules-center = [
"clock"
"mpris"
];
modules-right = [
"privacy"
"bluetooth"
"wireplumber"
"idle_inhibitor"
"power-profiles-daemon"
"battery"
"tray"
];
bluetooth = {
on-click = "blueman-manager";
};
clock = {
format = "{:%F %H:%M %Z}";
};
};
};
}

View file

@ -0,0 +1,5 @@
_: {
programs.wlogout = {
enable = true;
};
}

View file

@ -0,0 +1,12 @@
_: {
programs.wofi = {
enable = true;
settings = {
insensitive = true;
allow_images = true;
hide_scroll = true;
mode = "dmenu";
prompt = "";
};
};
}

View file

@ -54,13 +54,25 @@ function cpu_sct()
end end
function conky_mem_section()
local mem_tpl = tpl([[
${lua fmt h1 RAM} ${hr}
${color grey}Usage:$color $mem/$memmax - $memperc% ${membar 4}
${color grey}Easy-to-free:$color ${memeasyfree}
]])
end
function conky_storage_section()
end
function conky_cpu_section() function conky_cpu_section()
local cpu_tpl = tpl([[ local cpu_tpl = tpl([[
${lua fmt h1 CPU} ${hr} ${lua fmt h1 CPU} ${hr}
${color grey}Variety:$color {%= cpu_model() %} {%= cpu_sct() %} ${color grey}Variety:$color {%= cpu_model() %} {%= cpu_sct() %}
${cpugraph} ${cpugraph}
${color grey}Frequency:$color ${freq_g} GHz ${color grey}Frequency:$color ${freq_g} GHz
${color grey}Usage:$color $cpu% ${color grey}Usage:$color $cpu% ${cpubar 4}
]]) ]])
return conky_parse(cpu_tpl({ cpu_model = cpu_model, cpu_sct = cpu_sct })) return conky_parse(cpu_tpl({ cpu_model = cpu_model, cpu_sct = cpu_sct }))
end end
@ -77,19 +89,20 @@ local query_headers = {
"fan.speed", "fan.speed",
"utilization.gpu", "utilization.gpu",
"utilization.memory", "utilization.memory",
"memory.used",
"clocks.current.graphics",
"clocks.current.memory",
"temperature.gpu",
"clocks.current.sm",
"clocks.current.video",
"memory.total",
"utilization.encoder", "utilization.encoder",
"utilization.decoder", "utilization.decoder",
"clocks.current.graphics",
"clocks.current.sm",
"clocks.current.memory",
"clocks.current.video",
"memory.used",
"memory.total",
"temperature.gpu",
} }
local gpu_display_templates = { local gpu_display_templates = {
index = "${lua fmt h1 GPU %s} ${hr}", index = "${lua fmt h1 GPU %s} ${hr}",
default = "${lua fmt item %s} %s", default = "${lua fmt item %s} %s",
hasbar = "${lua fmt item %s} %s ${nvidiabar %s %s}",
} }
local gpu_header_aliases = { local gpu_header_aliases = {
["name"] = "Card", ["name"] = "Card",
@ -107,6 +120,15 @@ local gpu_header_aliases = {
["memory.total"] = "Memory Total", ["memory.total"] = "Memory Total",
["temperature.gpu"] = "Temperature", ["temperature.gpu"] = "Temperature",
}; };
local gpu_header_to_nvidiabar = {
--[[["fan.speed"] = "fanlevel",
["utilization.gpu"] = "gpuutil",
["utilization.memory"] = "memutil",
["clocks.current.graphics"] = "gpufreq",
["clocks.current.memory"] = "memfreq",
["temperature.gpu"] = "temp",
["memory.used"] = "mem",]]--
};
-- Reverse index -- Reverse index
local query_headers_index = {} local query_headers_index = {}
for i, header in ipairs(query_headers) do for i, header in ipairs(query_headers) do
@ -170,9 +192,14 @@ function gpu_csv_query()
local display_idx = query_headers_index[cur_header.clean] or 500 local display_idx = query_headers_index[cur_header.clean] or 500
if gpu_display_templates[cur_header.clean] ~= nil then if gpu_display_templates[cur_header.clean] ~= nil then
display = string.format(gpu_display_templates[cur_header.clean], data_sf) display = string.format(gpu_display_templates[cur_header.clean], data_sf)
else
if gpu_header_to_nvidiabar[cur_header.clean] ~= nil then
local nvidiabar = gpu_header_to_nvidiabar[cur_header.clean]
display = string.format(gpu_display_templates.hasbar, gpu_header_aliases[cur_header.clean], data_sf, nvidiabar, i)
else else
display = string.format(gpu_display_templates.default, gpu_header_aliases[cur_header.clean], data_sf) display = string.format(gpu_display_templates.default, gpu_header_aliases[cur_header.clean], data_sf)
end end
end
current_gpu[display_idx] = display current_gpu[display_idx] = display
end end
gpus[i] = current_gpu gpus[i] = current_gpu

View file

@ -29,8 +29,8 @@ conky.config = {
out_to_console = false, out_to_console = false,
out_to_ncurses = false, out_to_ncurses = false,
out_to_stderr = false, out_to_stderr = false,
out_to_wayland = false, out_to_wayland = true,
out_to_x = true, out_to_x = false,
own_window = true, own_window = true,
own_window_class = 'Conky', own_window_class = 'Conky',
own_window_type = 'override', own_window_type = 'override',

View file

@ -1,7 +1,7 @@
{ config, pkgs, ... }: { { config, pkgs, ... }: {
home.packages = with pkgs; [ home.packages = with pkgs; [
jq jq
conky
]; ];
xdg.configFile.conky = { xdg.configFile.conky = {
@ -22,7 +22,7 @@
Restart = "always"; Restart = "always";
RestartSec = "3"; RestartSec = "3";
ExecStartPre = "${pkgs.coreutils}/bin/sleep 5"; ExecStartPre = "${pkgs.coreutils}/bin/sleep 5";
ExecStart = toString ([ "${pkgs.conky}/bin/conky"]); ExecStart = toString ([ "${(pkgs.conky.override { nvidiaSupport = true; })}/bin/conky"]);
}; };
Install.WantedBy = [ "graphical-session.target" ]; Install.WantedBy = [ "graphical-session.target" ];

View file

@ -48,6 +48,7 @@
libksysguard libksysguard
systemsettings systemsettings
kcmutils kcmutils
pkgs.plasma-applet-commandoutput
]; ];
programs.plasma = { programs.plasma = {
configFile = { configFile = {

View file

@ -1,42 +0,0 @@
{
inputs,
pkgs,
...
}: let
konawallWithDelay = pkgs.writeShellScriptBin "konawally" ''
sleep 5 && XDG_BACKEND=x11 GDK_BACKEND=x11 ${inputs.konawall-py.packages.${pkgs.system}.konawall-py}/bin/konawall
'';
desktop_entry = ''
[Desktop Entry]
Exec=${konawallWithDelay}/bin/konawally
Icon=
Name=konawall
Path=
Terminal=False
Type=Application
'';
konawallConfig = {
interval = 30 * 60;
rotate = true;
source = "konachan";
tags = [
#"rating:s"
"touhou"
"score:>=50"
"width:>=1500"
];
logging = {
file = "INFO";
console = "DEBUG";
};
};
in {
home.packages = [
konawallWithDelay
inputs.konawall-py.packages.${pkgs.system}.konawall-py
];
xdg.configFile = {
"konawall/config.toml".source = (pkgs.formats.toml {}).generate "konawall-config" konawallConfig;
"autostart/konawall.desktop".text = desktop_entry;
};
}

View file

@ -8,9 +8,10 @@ in {
home.packages = with pkgs; [ home.packages = with pkgs; [
(discord-krisp.override { (discord-krisp.override {
withOpenASAR = true; withOpenASAR = true;
withVencord = true; # can do this here too withVencord = false; # can do this here too
}) })
vesktop #legcord
dorion
#betterdiscordctl #betterdiscordctl
]; ];
} }

View file

@ -18,6 +18,7 @@ in {
containersForce = true; containersForce = true;
extensions = { extensions = {
packages = with nur.repos.rycee.firefox-addons; [ packages = with nur.repos.rycee.firefox-addons; [
pronoundb
sponsorblock sponsorblock
link-cleaner link-cleaner
canvasblocker canvasblocker

View file

@ -10,9 +10,6 @@
# Mail # Mail
thunderbird thunderbird
# Music
spotify
# Chat # Chat
tdesktop # Telegram tdesktop # Telegram
dino # XMPP dino # XMPP
@ -35,6 +32,8 @@
alsa-utils alsa-utils
pwvucontrol pwvucontrol
veracrypt veracrypt
deluge
gimp gimp
xarchiver
]; ];
} }

View file

@ -0,0 +1,22 @@
{pkgs, inputs, ... }: let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.stdenv.system};
in {
programs.spicetify = {
enable = true;
enabledExtensions = with spicePkgs.extensions; [
volumePercentage
queueTime
groupSession
];
experimentalFeatures = true;
windowManagerPatch = true;
colorScheme = "CatppuccinMocha";
theme = spicePkgs.themes.text // {
additionalCss = ''
:root {
--font-family: 'Monaspace Krypton', monospace;
}
'';
};
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }: {
programs.taskwarrior = {
enable = true;
package = pkgs.taskwarrior3;
};
home.packages = [ pkgs.taskwarrior-tui ];
}

View file

@ -24,7 +24,7 @@
}), }),
window_decorations = "TITLE | RESIZE", window_decorations = "TITLE | RESIZE",
enable_wayland = true, enable_wayland = false,
warn_about_missing_glyphs = false, warn_about_missing_glyphs = false,
font_size = 12.0, font_size = 12.0,
check_for_updates = false, check_for_updates = false,

View file

@ -7,16 +7,14 @@
}: let }: let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
inherit (std) string set; inherit (std) string set;
initLua = pkgs.substituteAll ({ initLua = (pkgs.replaceVars ./init.lua ({
name = "init.lua";
src = ./init.lua;
base16ShellPath = config.base16.shell.package; base16ShellPath = config.base16.shell.package;
catppuccin_flavour = config.catppuccin.flavor; catppuccin_flavour = config.catppuccin.flavor;
inherit (config.base16) defaultSchemeName; inherit (config.base16) defaultSchemeName;
defaultSchemeSlug = config.base16.defaultScheme.slug; defaultSchemeSlug = config.base16.defaultScheme.slug;
} }
// set.map (_: col: string.justifyRight 2 "0" (builtins.toString col.ansiIndex)) // set.map (_: col: string.justifyRight 2 "0" (builtins.toString col.ansiIndex))
(set.filter (var: _: string.hasInfix "base" var) config.base16.defaultScheme)); (set.filter (var: _: string.hasInfix "base" var) config.base16.defaultScheme)));
in { in {
home.sessionVariables = mkIf config.programs.neovim.enable {EDITOR = "nvim";}; home.sessionVariables = mkIf config.programs.neovim.enable {EDITOR = "nvim";};
programs.neovim = { programs.neovim = {
@ -60,6 +58,9 @@ in {
# tree # tree
nui-nvim nui-nvim
neo-tree-nvim neo-tree-nvim
# hardtime
hardtime-nvim
nvim-notify
# Session management # Session management
resession-nvim resession-nvim
# tree sitter # tree sitter

View file

@ -278,6 +278,13 @@ vim.api.nvim_create_autocmd("VimLeavePre", {
end, end,
}) })
-- hardtime
vim.notify = require("notify")
--[[require("hardtime").setup({
disable_mouse = false,
disabled_keys = {},
})]]--
-- telescope -- telescope
local telescope = require('telescope.builtin') local telescope = require('telescope.builtin')

View file

@ -0,0 +1,5 @@
_: {
programs.hyprland = {
enable = true;
};
}

View file

@ -0,0 +1,11 @@
{pkgs, ...}: {
xdg = {
portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
xdg-desktop-portal-hyprland
];
};
};
}

View file

@ -0,0 +1,12 @@
{pkgs, ...}: {
xdg = {
portal = {
enable = true;
config.common.default = "*";
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
};
};
}

View file

@ -15,24 +15,36 @@ programs.gamescope = {
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(lutris.override { (lutris.override {
extraLinkLines = let
proton-cachyos = inputs.nix-proton-cachyos.packages.${pkgs.system}.proton-cachyos;
in ''ln -sf ${proton-cachyos}/share/steam $out/share'';
extraPkgs = pkgs: [ extraPkgs = pkgs: [
pkgs.gamescope pkgs.gamescope
pkgs.libnghttp2 pkgs.libnghttp2
pkgs.winetricks pkgs.winetricks
pkgs.jansson pkgs.jansson
pkgs.samba pkgs.samba
pkgs.gvfs
pkgs.mangohud pkgs.mangohud
pkgs.vkbasalt pkgs.vkbasalt
pkgs.umu-launcher
pkgs.xdg-desktop-portal
inputs.nix-proton-cachyos.packages.${pkgs.system}.proton-cachyos
]; ];
extraLibraries = pkgs: [ extraLibraries = pkgs: [
pkgs.libunwind
pkgs.xdg-desktop-portal
pkgs.gvfs
pkgs.jansson pkgs.jansson
pkgs.samba pkgs.samba
pkgs.xz pkgs.xz
inputs.nix-proton-cachyos.packages.x86_64-linux.proton-cachyos
]; ];
}) })
vkbasalt vkbasalt
mangohud mangohud
umu-launcher
# support 32-bit only # support 32-bit only
wine wine

View file

@ -0,0 +1,3 @@
_: {
programs.wine.ntsync.enable = true;
}

View file

@ -0,0 +1,5 @@
_: {
services.pipewire.lowLatency = {
enable = true;
};
}

View file

@ -1,6 +1,10 @@
_: { { pkgs, inputs, ... }: {
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; remotePlay.openFirewall = true;
platformOptimizations.enable = true;
extraCompatPackages = [
inputs.nix-proton-cachyos.packages.${pkgs.system}.proton-cachyos
];
}; };
} }

View file

@ -0,0 +1,45 @@
{pkgs, ... }: {
programs.envision = {
enable = true;
openFirewall = true; # This is set true by default
};
/*services.wivrn = {
enable = true;
openFirewall = true;
package = pkgs.wivrn.override { cudaSupport = true; };
defaultRuntime = true;
config = {
enable = true;
json = {
scale = [ 0.5 0.5 ];
bitrate = 300*1000;
encoders = [
{
encoder = "nvenc";
codec = "h265";
width = 1.0;
height = 1.0;
offset_x = 0.0;
offset_y = 0.0;
}
];
tcp_only = false;
#application = [
# "${pkgs.wlx-overlay-s}/bin/wlx-overlay-s"
#];
};
};
};*/
environment.systemPackages = with pkgs; [
wlx-overlay-s
monado-vulkan-layers
bs-manager
];
networking.firewall = {
allowedTCPPorts = [ 9757 ];
allowedUDPPorts = [ 9757 ];
};
}

View file

@ -11,6 +11,7 @@
super-slicer-beta super-slicer-beta
nvidia-vaapi-driver nvidia-vaapi-driver
nv-codec-headers-12 nv-codec-headers-12
inputs.push2talk.defaultPackage.${pkgs.system}
]; ];
programs.obs-studio = { programs.obs-studio = {
enable = true; enable = true;
@ -20,6 +21,11 @@
}; };
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [
obs-vaapi obs-vaapi
obs-tuna
obs-source-clone
obs-pipewire-audio-capture
input-overlay
obs-vkcapture
]; ];
}; };
services.udev.packages = [ services.udev.packages = [

View file

@ -1,17 +1,21 @@
{pkgs, ...}: { {pkgs, ...}: {
environment.systemPackages = with pkgs; [pulsemixer]; environment.systemPackages = with pkgs; [pulsemixer pwvucontrol];
services.pulseaudio.enable = false; services.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire.extraConfig.pipewire-pulse."91-discord-latency" = {
services.pipewire.extraConfig.pipewire-pulse."92-subpar-latency" = { pulse.rules = [
pulse.properties = { {
pulse.min.req = "1024/48000"; matches = [ { "application.process.binary" = "Discord"; } ];
pulse.default.req = "1024/48000"; actions = {
pulse.min.quantum = "1024/48000"; update-props = {
"pulse.min.quantum" = "1024/48000";
}; };
}; };
}
];
};
services.pipewire = { services.pipewire = {
enable = true; enable = true;
pulse.enable = true; pulse.enable = true;

View file

@ -1,14 +1,10 @@
weechat-secret: ENC[AES256_GCM,data:tVl8Bbqx09oiONxR206vQu1V+2uZoIiWZEzrEWZ4H+sdgeZkzu8jvphshpIrRMU9eZ3FYa9mQIdbXXNJaiy7WFFSMoo6rEzPodAidOqMNjGR4X9vevbXg1FbwTkKpwtWiH+XJoj4ijfFhTXzX7fo63WDOoe0SZee3C1PgdFX00pD/G1MHg0J1pevBvQKuMV++zdX7Vd6mLV6LZBVWsUMckvbhzNjP6f5M4OTTRTrsftA0ow4DpB83QGtWcj6IjY1nBFOyDcqeO+0usIX72a4nOMF7bACunXTK2peN3kEDGjlYyhmw3wKPVYMM25Y3JX3BIkznUC/H1BM/XJf5zlFW1+9a5RZMwLDykMbMkEJjARXJ4zkja6jBjU=,iv:KrvHlr/WyBx1ZD50IGpL+oy5p2aOWAN3HSPdwUjLopM=,tag:6GYbQWq0MN6z/lU3TXN8ZA==,type:str] weechat-secret: ENC[AES256_GCM,data:tVl8Bbqx09oiONxR206vQu1V+2uZoIiWZEzrEWZ4H+sdgeZkzu8jvphshpIrRMU9eZ3FYa9mQIdbXXNJaiy7WFFSMoo6rEzPodAidOqMNjGR4X9vevbXg1FbwTkKpwtWiH+XJoj4ijfFhTXzX7fo63WDOoe0SZee3C1PgdFX00pD/G1MHg0J1pevBvQKuMV++zdX7Vd6mLV6LZBVWsUMckvbhzNjP6f5M4OTTRTrsftA0ow4DpB83QGtWcj6IjY1nBFOyDcqeO+0usIX72a4nOMF7bACunXTK2peN3kEDGjlYyhmw3wKPVYMM25Y3JX3BIkznUC/H1BM/XJf5zlFW1+9a5RZMwLDykMbMkEJjARXJ4zkja6jBjU=,iv:KrvHlr/WyBx1ZD50IGpL+oy5p2aOWAN3HSPdwUjLopM=,tag:6GYbQWq0MN6z/lU3TXN8ZA==,type:str]
liberachat-cert: ENC[AES256_GCM,data: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,iv:DHnR0ZMEuZtY2Gx2xgomnEWH6F/qzkErJ9KwInGLlIM=,tag:Wx84gTr29eO/BvyRjnXC/A==,type:str] liberachat-cert: ENC[AES256_GCM,data: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,iv:DHnR0ZMEuZtY2Gx2xgomnEWH6F/qzkErJ9KwInGLlIM=,tag:Wx84gTr29eO/BvyRjnXC/A==,type:str]
espernet-cert: ENC[AES256_GCM,data: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,iv:QpBIeLDM16NRjI4Atq6PaDrlDm35B2r6kOl/gk1lc0U=,tag:PW1I7HL1QWW0jK8jSZ3sIg==,type:str] espernet-cert: ENC[AES256_GCM,data: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,iv:QpBIeLDM16NRjI4Atq6PaDrlDm35B2r6kOl/gk1lc0U=,tag:PW1I7HL1QWW0jK8jSZ3sIg==,type:str]
softnet-cert: ENC[AES256_GCM,data:0acY4OVWvOCc/+rh8aOyoA71Si8nLy+4DY0IMa+sTz8+WKQMqXyAs0XviPcVetMJuCVngwl63dWzDIgkuGZiNDachm39cfBllJBZbiK/rlSpGFDvJ/ulKYWA31vjr/SR2drdUpaTVzYfwVSagV6trVihqMOlkbraCliYg5oN6hllcKXTr8wdNOrfJA/Yl2JkPnH89dH6lVC014FQ/XPh31kLNu2YpflrddQBUNzahRYfLkh693LKgYArOl2UexuEyt4Rt/m2vJEWScPUDLn46cH1NI93/zEG0WGjDP7zcRE7lV0NtfmwXWW95cmn/B+Zjnw27XPPi+ME2NvRbZ5URTohxA8rMh1jrajoRQ19ZFwSrK9LZjtp+/UQqci5lLHKp/hGZ+q9bauoooA17iSNrdbbCqMUdNgSCULfFcIKLJemuvF5DsjfjI8UvipuMlwhZ1xWeJhwAChB3dvelJe6zBFdtQLRdj1kzL7Te1V382dLfQZ4qpMKP0fM3hMSzEJpd8oEYsPAN3yjj9TI0aFcejog+E+Lt5N7g+MLz/jnCB5d+2GxAVZZWj6w2/nKY2pmwUfuPuIos4l/iR/IISC8ruhbjm1E50hHrNo2fvWkAafHvW8lHfVxE1lfiXl395ypkGJOTjRFfMzRYCJ/+jDg6urbBEFBlPnDwraHBGQJs49E4xM6oPD2fDQ7KqWSPl/XBjQWgdZ4SZnLNvrOXv1pi2lGj+T6JZj8OuT9+OuS/bXR1+jvxr3PYKUFnymMwy54NGq2107uCKw64obxeLHa+3brtUGuSZ1S0KzBMju3rQIHGnFw9dM7prx6peI1exJMJboIGAkKZmLmcmrACgFchGR2EbS9iyI+WagfSox1J4vk2lH5kWFuxnrZ9bNvP6n8PxrLZKxh9Z+rOQ3HvpAgErx5XfhiRzH4KWFv2Cv4gqTRa+2Eg/5n+KHSQpj0XOa77/AzATOuO0/9YDObKFgYICogkSH9OIl3Jia8onHc47pnfoHoEOyv12XqWJhxKB5t0IdTNBmaconSWWXg7iFYmEZvdSQ7V5PKuMZp7JlnBI9kehAFMRYASXItkYRWHMBarCw=,iv:Lo8RT166ArCg9FhHyrpLHvBf0DPrSoWCb4NnFxnm6DY=,tag:sVbXgO1//JHXvvidyvgUuw==,type:str] softnet-cert: ENC[AES256_GCM,data:3ZLUV9LnXvzaLzkc/ZVVoc0rmuV2UVfK3q1eOIUv79TNlrwC4mbYRVHbFKLx5nrAvz5faHJWFwJ/LsWnp7y9pt19qmnnpgwBZFpX2g6FqqmQvz/vAM03JsOnzrZT/YDvflab7QU4ZTInir0FJMUqjij90k8fGA1UnKVNnkOu8re33ketLbyV1h5c3eA3ZbLwrC8AAJtECe/N6kcS2ccYvxUwlegKNyS41VRy+ifRhJTybfkehBtexOImc5/7mymO3YXHz5ZP/TLMqefGKYiSxXZ6G/vSXAS8vSp5NG4+z681nctYaDV5PW8Lkdz8MJwbqsiRBEm2oMwIeSZKjZk+MlNXaYaoPTCyd05w1f0jT3KCPtNQ4oDjopf7CcpS3Q0Vh62cSI/J8DvSWMQgvVEXZchb9OOSWL/lVHaRaoTtQT8gzqw1N2TBkHCo3UewqRZOx+JgU/pYFyeY0aOj+LiMAY4A6/mU98QNuP48RpNpo7F+M9Qrv0+F+f9D1Q/UFjEc524AjFKnRPi4BHTx8oaHqEJochli1lE76KbIH2A7Gi+383b2M72cY+7YSYZ9lIEwXD94xi4holBVun7B5V7IpJVyTZh8XoZ/dzd+tPLgEhY1fFMaK0E4tkgr/gFlRNBPg37c/rkxur+wC6bIQVnbCPsmtXAUWknQCzo3hCVHhWvx5LWzAs+p06MhLww/r/p22rJysbGBAoGQ3D3/Z2H2BUkMKIZ9uj/iZvIYVRq7+FKj0S9JynzMpgkOrkdBpFyvIub+NzeAFXQVV4zlVTosHYhLTAxS75qAMfrDcFgzpmu4SYzOMKDSh2xfiYheBuOFDHUcbOgTWaYOiPMTddNxgMWrhLfqP2F2Bb2PTW8B/wBgUrHms+6OFBrpIa3wqID7pnZYdPWYeT53P0c65UCAEmMpkdVa0ZqdFvphm/1L2eAx7L/R+/Oiu316KYZ8YCMY07fncy/s0VFE4uVAbwV7KQhQHJtloUk5hFOihqqzQl+E/07QPhJ6bWYOt/bIqnLRKUgSA0kQ8T4C5TcLa+A1nD422ebzZxwe2y7U3L+ECBTeBEBrZwUtNrzu3qTv+WiXoYA=,iv:K8/1Rk+V0ZWeNBFccROi3LlzzgvACd1SlN/YToLsAkI=,tag:mLqHajYJHg1u7fWna4l2sg==,type:str]
removed: ENC[AES256_GCM,data:ou1tCt8doBvf+s6jI6bAxjeuK7rj+nhS2b6XA4EKJgpNxhXeJcYRQOJz5RKO0FszmjX7g3Lozp7tMmcCzHTQOllaVUg2RGzJwQSrKu91EyUXpAOds9FvBeeCRSu9rlrApqofzODdD8yxej+2AjIMbfL4hShaXxxEWCcALrCdEbURnBOvDnIGSKanaa8tNqzAx3ZTceVMNLdQNxK8bV3OeMcocxBZ6KISK65K8aUtoGiBG65iWaQU/EXV1Jo1xI3/2qgMWZ5RXLxGgN0WxJQdlI6n9slSZQIIzB2WFiujdl9azZKarxz+1EPVZH1xFvaZa6PPBgiq7/NkxuxdLgkXIDtNG5c7s70hzbGV2JQL8JYiizq7ZCQwR97R8TyNu1NMHGJ5MZJFQjDEl0MBliQgr3LIU1uvVdACQHPUvkPdE0P+iVN/vyEnZr0jbFRj5jsw65g1/qXIjlTggNIf1cAF42KhXtNB5Jb0J98ohajCorgNCjmzHj5hftwXAO3lfI1yTMGVTKI9cEStykrgfZl+smpGNlLvvodaBNXvHn/CzemzpLBfV0/iRPB1auqVKMMxMjTxPmDtfUyjqRnbEEySx6AnoAkgIGQr/9Hvth9tMeEn67qukBz8tAs0t/k/+azWCAypjXhRRY/oLu1HRwhIFLR73fS13MDJCXptnGbYHRUcqh7ijGIJgazagHffLu3eDsjeYoaBkg1S+My19dQM9bIDf0QaY5Su3rCuBeQU5MRPpthvtqj+7tS04HDyLmTHZlkFxPCgLd2O6FFIOXREyjZLqD7yHMaOuWQuZXncN807VBRSoTmjKIoT1kBrd6IpH9Gk9R+7C2mUHoszgFtaHjQjVZB1JjwSLfiSmU+zFVO4BpnSnEwwzApUEgthhY4UajAwNggM5L3rO3MfgfBrl65dRbHpqaexWtnZIox4XBiSBbWHfb0YqsuBmfcz763V9k2hQBLnS14bsU63rdvh8OiFjgLD9Ra9+Gx5WyHTxZfrXbm6xhRgjWLx5DVDKu6Jonkg/A==,iv:5ikaalISsPJ+4YON2IxIQkD++32jqBi5c13rcUQpE44=,tag:t9pS04MxQwQLlFt5PNi3jA==,type:str] removed: ENC[AES256_GCM,data:ou1tCt8doBvf+s6jI6bAxjeuK7rj+nhS2b6XA4EKJgpNxhXeJcYRQOJz5RKO0FszmjX7g3Lozp7tMmcCzHTQOllaVUg2RGzJwQSrKu91EyUXpAOds9FvBeeCRSu9rlrApqofzODdD8yxej+2AjIMbfL4hShaXxxEWCcALrCdEbURnBOvDnIGSKanaa8tNqzAx3ZTceVMNLdQNxK8bV3OeMcocxBZ6KISK65K8aUtoGiBG65iWaQU/EXV1Jo1xI3/2qgMWZ5RXLxGgN0WxJQdlI6n9slSZQIIzB2WFiujdl9azZKarxz+1EPVZH1xFvaZa6PPBgiq7/NkxuxdLgkXIDtNG5c7s70hzbGV2JQL8JYiizq7ZCQwR97R8TyNu1NMHGJ5MZJFQjDEl0MBliQgr3LIU1uvVdACQHPUvkPdE0P+iVN/vyEnZr0jbFRj5jsw65g1/qXIjlTggNIf1cAF42KhXtNB5Jb0J98ohajCorgNCjmzHj5hftwXAO3lfI1yTMGVTKI9cEStykrgfZl+smpGNlLvvodaBNXvHn/CzemzpLBfV0/iRPB1auqVKMMxMjTxPmDtfUyjqRnbEEySx6AnoAkgIGQr/9Hvth9tMeEn67qukBz8tAs0t/k/+azWCAypjXhRRY/oLu1HRwhIFLR73fS13MDJCXptnGbYHRUcqh7ijGIJgazagHffLu3eDsjeYoaBkg1S+My19dQM9bIDf0QaY5Su3rCuBeQU5MRPpthvtqj+7tS04HDyLmTHZlkFxPCgLd2O6FFIOXREyjZLqD7yHMaOuWQuZXncN807VBRSoTmjKIoT1kBrd6IpH9Gk9R+7C2mUHoszgFtaHjQjVZB1JjwSLfiSmU+zFVO4BpnSnEwwzApUEgthhY4UajAwNggM5L3rO3MfgfBrl65dRbHpqaexWtnZIox4XBiSBbWHfb0YqsuBmfcz763V9k2hQBLnS14bsU63rdvh8OiFjgLD9Ra9+Gx5WyHTxZfrXbm6xhRgjWLx5DVDKu6Jonkg/A==,iv:5ikaalISsPJ+4YON2IxIQkD++32jqBi5c13rcUQpE44=,tag:t9pS04MxQwQLlFt5PNi3jA==,type:str]
sops: sops:
shamir_threshold: 1 shamir_threshold: 1
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: age:
- recipient: age1n4kdchmkk3rfkaknxhveqr2ftprdpgwckutt23y6u8639lazzuks77tgav - recipient: age1n4kdchmkk3rfkaknxhveqr2ftprdpgwckutt23y6u8639lazzuks77tgav
enc: | enc: |
@ -82,8 +78,8 @@ sops:
K281Ulg1RjMrS0E4eG0yeEwwaXFNbGcKrzch38oAb0h5Rl4yfXe36yHz7+s+hzLt K281Ulg1RjMrS0E4eG0yeEwwaXFNbGcKrzch38oAb0h5Rl4yfXe36yHz7+s+hzLt
v1sXcKMMDn7x19P8Bv6sus1KDwcEzdf+mNG9qTzIfTlW3lgWKPJAEQ== v1sXcKMMDn7x19P8Bv6sus1KDwcEzdf+mNG9qTzIfTlW3lgWKPJAEQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-07T23:24:18Z" lastmodified: "2025-05-27T20:29:36Z"
mac: ENC[AES256_GCM,data:qMoo60ydezJZoQX2LYmzwwvQpKvfxJ5QEBqnCVy5UxNijpfhwmY7qQL7AZy0QNTrCXn/EwpjVScGo10EZwu2hyDyMpzerO2g+I3eCReIZQJmK8b4rsqLqCZFueuFVGDSHixj3M/peCuDx0f70ixurOEm3L8HmBwHGjEfY/jQD/8=,iv:/yHfkEEKOxw12sdmAKWUdOdcC2QqjI9eQ6IwnpV8QFU=,tag:wu5aPYyTy5ZDNKk+ggoTKA==,type:str] mac: ENC[AES256_GCM,data:EROSoDKKxmzxgOiGxW9vRyk5Ik95pfeREOGFk/SwPZOFtoETemVh5199xZT1s3Yzim7+fB5efdBAkooUIGjq1JSRVjpkfnozdvRZMYp3dp0b8fp5kBaepYLNCfKCs4e8guNyywiSIBiUGYhi+XZi/N+q1KG/zB/jhGl0G+9DixY=,iv:Qn1MObCfKca7tQn2hGZIcyiCl1PI0gV4fwJ5fFXo3Mc=,tag:X0Ht901lI6h0Ito3lmDvbQ==,type:str]
pgp: pgp:
- created_at: "2025-02-16T10:33:41Z" - created_at: "2025-02-16T10:33:41Z"
enc: |- enc: |-
@ -106,4 +102,4 @@ sops:
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: CD8CE78CB0B3BDD4 fp: CD8CE78CB0B3BDD4
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.9.0 version: 3.10.2

View file

@ -6,7 +6,7 @@
inputs.rbw-bitw.overlays.default inputs.rbw-bitw.overlays.default
inputs.arcexprs.overlays.default inputs.arcexprs.overlays.default
inputs.darwin.overlays.default inputs.darwin.overlays.default
inputs.deploy-rs.overlay inputs.deploy-rs.overlays.default
inputs.neorg-overlay.overlays.default inputs.neorg-overlay.overlays.default
(import tree.packages.default {inherit inputs tree;}) (import tree.packages.default {inherit inputs tree;})
] ]

194
packages/dorion.nix Normal file
View file

@ -0,0 +1,194 @@
{
lib,
fetchFromGitHub,
fetchurl,
rustPlatform,
cmake,
ninja,
wrapGAppsHook4,
glib-networking,
gst_all_1,
libsysprof-capture,
libayatana-appindicator,
nodejs,
openssl,
pkg-config,
yq-go,
pnpm_9,
webkitgtk_4_1,
cargo-tauri,
desktop-file-utils,
}:
let
webkitgtk_4_1' = webkitgtk_4_1.override {
enableExperimental = true;
};
shelter = fetchurl {
url = "https://raw.githubusercontent.com/uwu/shelter-builds/fab6f100bd0ab8583d67f792f66722a7d2a14bd1/shelter.js";
hash = "sha256-d9vaKLrl8RYNcHnE1iGN49ov6U/Y+9XpEsio+c1Sguc=";
meta = {
homepage = "https://github.com/uwu/shelter";
sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; # actually, minified JS
license = lib.licenses.cc0;
};
};
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dorion";
version = "6.7.1";
src = fetchFromGitHub {
owner = "SpikeHD";
repo = "Dorion";
tag = "v${finalAttrs.version}";
hash = "sha256-d4G3royqhz+te5wPWVLNqqG/w0qOvTd7dKcWSzxUMUo=";
};
cargoPatches = [
./no-cargo-patch.patch
];
cargoRoot = "src-tauri";
buildAndTestSubdir = finalAttrs.cargoRoot;
useFetchCargoVendor = true;
cargoHash = "sha256-1xpAJkS31DjrZCY5WJ4/Z1t1ALED5gz7xYLhVR1Qzww=";
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src;
hash = "sha256-xBonUzA4+1zbViEsKap6CaG6ZRldW1LjNYIB+FmVRFs=";
};
# CMake (webkit extension)
cmakeDir = ".";
cmakeBuildDir = "src-tauri/extension_webkit";
dontUseCmakeConfigure = true;
dontUseNinjaBuild = true;
dontUseNinjaCheck = true;
dontUseNinjaInstall = true;
# cmake's supposed to set this automatically
# ... but the detection is based on the presence of ninja build hook
cmakeFlags = [
"-GNinja"
];
nativeBuildInputs = [
pnpm_9.configHook
cargo-tauri.hook
nodejs
pkg-config
wrapGAppsHook4
yq-go
desktop-file-utils
cmake
ninja
];
buildInputs = [
openssl
webkitgtk_4_1'
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-rs
glib-networking
libsysprof-capture
libayatana-appindicator
];
postPatch = ''
# remove updater
rm -rf updater
# patch cargo-deps
pushd $cargoDepsCopy/tauri-plugin-shell-*
patch -p1 < /build/source/src-tauri/patches/tauri-plugin-shell+*.patch
popd
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
# disable pre-build script and disable auto-updater
yq -iPo=json '
.bundle.resources = (.bundle.resources | map(select(. != "updater*")))
' src-tauri/tauri.conf.json
# link shelter injection
ln -s ${shelter} src-tauri/injection/shelter.js
# link html/frontend data
ln -s /build/source/src /build/source/src-tauri/html
'';
configurePhase = ''
cmakeConfigurePhase
pnpmConfigHook
'';
buildPhase = ''
ninjaBuildPhase
cd /build/source
tauriBuildHook
'';
postInstall = ''
# Set up the resource directories
mkdir -p $out/lib/Dorion
ln -s $out/lib/Dorion $out/lib/dorion
rm -rf $out/lib/Dorion/injection
cp -r src-tauri/injection $out/lib/Dorion
cp -r src $out/lib/Dorion
# Modify the desktop file
desktop-file-edit \
--set-comment "Tiny alternative Discord client" \
--set-key="Exec" --set-value="Dorion %U" \
--set-key="TryExec" --set-value="Dorion" \
--set-key="StartupWMClass" --set-value="Dorion" \
--set-key="StartupNotify" --set-value="true" \
--set-key="Categories" --set-value="Network;InstantMessaging;Chat;" \
--set-key="Keywords" --set-value="dorion;discord;vencord;chat;im;vc;ds;dc;dsc;tauri;" \
--set-key="Terminal" --set-value="false" \
--set-key="MimeType" --set-value="x-scheme-handler/discord" \
$out/share/applications/Dorion.desktop
'';
# error: failed to run custom build command for `Dorion v6.5.3 (/build/source/src-tauri)`
# Permission denied (os error 13)
doCheck = false;
env = {
TAURI_RESOURCE_DIR = "${placeholder "out"}/lib";
};
meta = {
homepage = "https://spikehd.github.io/projects/dorion/";
description = "Tiny alternative Discord client";
longDescription = ''
Dorion is an alternative Discord client aimed towards lower-spec or
storage-sensitive PCs that supports themes, plugins, and more!
'';
changelog = "https://github.com/SpikeHD/Dorion/releases/tag/v${finalAttrs.version}";
downloadPage = "https://github.com/SpikeHD/Dorion/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
gpl3Only
cc0 # Shelter
];
mainProgram = "Dorion";
maintainers = with lib.maintainers; [
nyabinary
aleksana
griffi-gh
getchoo
];
platforms = lib.platforms.linux;
sourceProvenance = [
lib.sourceTypes.binaryBytecode # actually, minified JS
lib.sourceTypes.fromSource
];
};
})

324
packages/lutris.nix Normal file
View file

@ -0,0 +1,324 @@
{
lib,
buildFHSEnv,
lutris-unwrapped,
extraLinkLines ? '''',
extraPkgs ? pkgs: [ ],
extraLibraries ? pkgs: [ ],
steamSupport ? true,
}:
let
qt5Deps =
pkgs: with pkgs.qt5; [
qtbase
qtmultimedia
];
qt6Deps = pkgs: with pkgs.qt6; [ qtbase ];
gnomeDeps =
pkgs: with pkgs; [
zenity
gtksourceview
gnome-desktop
libgnome-keyring
webkitgtk_4_1
];
xorgDeps =
pkgs: with pkgs.xorg; [
libX11
libXrender
libXrandr
libxcb
libXmu
libpthreadstubs
libXext
libXdmcp
libXxf86vm
libXinerama
libSM
libXv
libXaw
libXi
libXcursor
libXcomposite
libXfixes
libXtst
libXScrnSaver
libICE
libXt
];
gstreamerDeps =
pkgs: with pkgs.gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gst-plugins-bad
gst-libav
];
in
buildFHSEnv {
pname = "lutris";
inherit (lutris-unwrapped) version;
runScript = "lutris";
# Many native and WINE games need 32bit
multiArch = true;
targetPkgs =
pkgs:
with pkgs;
[
lutris-unwrapped
# Appimages
fuse
# Adventure Game Studio
allegro
dumb
# Battle.net
jansson
# Curl
libnghttp2
# Desmume
lua
agg
soundtouch
openal
desktop-file-utils
atk
# DGen // TODO: libarchive is broken
# Dolphin
bluez
ffmpeg_6
gettext
portaudio
miniupnpc
mbedtls_2
lzo
sfml
gsm
wavpack
orc
nettle
gmp
pcre
vulkan-loader
zstd
# DOSBox
SDL_net
SDL_sound
# GOG
glib-networking
# Higan // TODO: "higan is not available for the x86_64 architecture"
# Libretro
fluidsynth
hidapi
libgbm
libdrm
# MAME
fontconfig
SDL2_ttf
# Mednafen
libglut
mesa_glu
# MESS
expat
# Minecraft
nss
# Mupen64Plus
boost
dash
# Overwatch 2
libunwind
# PPSSPP
glew
snappy
# Redream // "redream is not available for the x86_64 architecture"
# RPCS3
llvm
e2fsprogs
libgpg-error
# ScummVM
nasm
sndio
# ResidualVM is now merged with ScummVM and therefore does not exist anymore
flac
# Snes9x
libepoxy
minizip
# Vice
bison
flex
# WINE
xorg.xrandr
perl
which
p7zip
gnused
gnugrep
psmisc
opencl-headers
# ZDOOM
soundfont-fluid
bzip2
game-music-emu
]
++ qt5Deps pkgs
++ qt6Deps pkgs
++ gnomeDeps pkgs
++ lib.optional steamSupport pkgs.steam
++ extraPkgs pkgs;
multiPkgs =
pkgs:
with pkgs;
[
# Common
libsndfile
libtheora
libogg
libvorbis
libopus
libGLU
libpcap
libpulseaudio
libao
libevdev
udev
libgcrypt
libxml2
libusb1
libpng
libmpeg2
libv4l
libjpeg
libxkbcommon
libass
libcdio
libjack2
libsamplerate
libzip
libmad
libaio
libcap
libtiff
libva
libgphoto2
libxslt
libsndfile
giflib
zlib
glib
alsa-lib
zziplib
bash
dbus
keyutils
zip
cabextract
freetype
unzip
coreutils
readline
gcc
SDL
SDL2
curl
graphite2
gtk2
gtk3
udev
ncurses
wayland
libglvnd
vulkan-loader
xdg-utils
sqlite
gnutls
p11-kit
libbsd
harfbuzz
# PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
# WINE
cups
lcms2
mpg123
cairo
unixODBC
samba4
sane-backends
openldap
ocl-icd
util-linux
libkrb5
# Proton
libselinux
# Winetricks
fribidi
pango
]
++ xorgDeps pkgs
++ gstreamerDeps pkgs
++ extraLibraries pkgs;
extraInstallCommands = ''
mkdir -p $out/share
ln -sf ${lutris-unwrapped}/share/applications $out/share
ln -sf ${lutris-unwrapped}/share/icons $out/share
'' + extraLinkLines;
# allows for some gui applications to share IPC
# this fixes certain issues where they don't render correctly
unshareIpc = false;
# Some applications such as Natron need access to MIT-SHM or other
# shared memory mechanisms. Unsharing the pid namespace
# breaks the ability for application to reference shared memory.
unsharePid = false;
meta = {
inherit (lutris-unwrapped.meta)
homepage
description
platforms
license
maintainers
broken
;
mainProgram = "lutris";
};
}

View file

@ -0,0 +1,32 @@
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index 13a6b54..f6bd9d6 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -5049,6 +5049,8 @@ dependencies = [
[[package]]
name = "tauri-plugin-shell"
version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69d5eb3368b959937ad2aeaf6ef9a8f5d11e01ffe03629d3530707bbcb27ff5d"
dependencies = [
"encoding_rs",
"log",
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 4dcaa86..daef086 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -12,13 +12,6 @@ rust-version = "1.84.1"
strip = "debuginfo"
lto = false
-# Patches
-[package.metadata.patch]
-crates = ["tauri-plugin-shell"]
-
-[patch.crates-io]
-tauri-plugin-shell = { path="./target/patch/tauri-plugin-shell-2.2.1" }
-
[build-dependencies]
tauri-build = { version = "2.0.0", features = [] }

View file

@ -0,0 +1,106 @@
{
bash,
cargo,
fetchFromGitHub,
hatch,
lib,
nix-update-script,
python3Packages,
rustPlatform,
scdoc,
writableTmpDirAsHomeHook,
withTruststore ? true,
withDeltaUpdates ? true,
}:
python3Packages.buildPythonPackage rec {
pname = "umu-launcher-unwrapped";
version = "1.2.6";
src = fetchFromGitHub {
owner = "Open-Wine-Components";
repo = "umu-launcher";
tag = version;
hash = "sha256-DkfB78XhK9CXgN/OpJZTjwHB7IcLC4h2HM/1JW42ZO0=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
hash = "sha256-JhNErFDJsM20BhgIgJSUBeNzAst8f+s1NzpLfl2m2es=";
};
nativeCheckInputs = [
writableTmpDirAsHomeHook
python3Packages.pytestCheckHook
];
nativeBuildInputs = [
cargo
hatch
python3Packages.build
python3Packages.installer
rustPlatform.cargoSetupHook
scdoc
];
patches = [
./umu-proton-cachyos.patch
];
pythonPath =
with python3Packages;
[
pyzstd
urllib3
xlib
]
++ lib.optionals withTruststore [
truststore
]
++ lib.optionals withDeltaUpdates [
cbor2
xxhash
];
pyproject = false;
configureScript = "./configure.sh";
configureFlags = [
"--use-system-pyzstd"
"--use-system-urllib"
];
makeFlags = [
"PYTHONDIR=$(PREFIX)/${python3Packages.python.sitePackages}"
"PYTHON_INTERPRETER=${lib.getExe python3Packages.python}"
# Override RELEASEDIR to avoid running `git describe`
"RELEASEDIR=${pname}-${version}"
"SHELL_INTERPRETER=${lib.getExe bash}"
];
disabledTests = [
# Broken? Asserts that $STEAM_RUNTIME_LIBRARY_PATH is non-empty
# Fails with AssertionError: '' is not true : Expected two elements in STEAM_RUNTIME_LIBRARY_PATHS
"test_game_drive_empty"
"test_game_drive_libpath_empty"
# Broken? Tests parse_args with no options (./umu_run.py)
# Fails with AssertionError: SystemExit not raised
"test_parse_args_noopts"
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Unified launcher for Windows games on Linux using the Steam Linux Runtime and Tools";
changelog = "https://github.com/Open-Wine-Components/umu-launcher/releases/tag/${version}";
homepage = "https://github.com/Open-Wine-Components/umu-launcher";
license = lib.licenses.gpl3;
mainProgram = "umu-run";
maintainers = with lib.maintainers; [
diniamo
MattSturgeon
fuzen
];
platforms = lib.platforms.linux;
};
}

File diff suppressed because it is too large Load diff

View file

@ -46,6 +46,7 @@ _: let
]) ])
++ (with tree.nixos.environments; [ ++ (with tree.nixos.environments; [
i3 i3
hyprland
]); ]);
home-manager.users.kat.imports = home-manager.users.kat.imports =
@ -54,10 +55,39 @@ _: let
]) ])
++ (with tree.home.environments; [ ++ (with tree.home.environments; [
i3 i3
hyprland
]); ]);
networking.hostId = "c3b94e85"; networking.hostId = "c3b94e85";
home-manager.users.kat.wayland.windowManager.hyprland.settings.monitor = [
"DP-2, 3840x2160, 0x0, 1"
"HDMI-A-1, 1920x1080, auto-right, 1"
];
programs.ssh.extraConfig = ''
Host daiyousei-build
HostName 140.238.156.121
User root
IdentityAgent /run/user/1000/gnupg/S.gpg-agent.ssh
'';
nix = {
buildMachines = [
{
hostName = "daiyousei-build";
system = "aarch64-linux";
protocol = "ssh-ng";
maxJobs = 100;
speedFactor = 1;
supportedFeatures = ["benchmark" "big-parallel" "kvm"];
mandatoryFeatures = [];
}
];
distributedBuilds = true;
extraOptions = ''
builders-use-substitutes = true
'';
};
services.xserver.videoDrivers = ["nvidia"]; services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = { hardware.nvidia = {
@ -98,6 +128,7 @@ _: let
]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
kdePackages.qttools
ledfx ledfx
openrgb openrgb
nvtopPackages.nvidia nvtopPackages.nvidia

View file

@ -83,6 +83,11 @@
solaar.nixosModules.default solaar.nixosModules.default
catppuccin.nixosModules.catppuccin catppuccin.nixosModules.catppuccin
chaotic.nixosModules.default chaotic.nixosModules.default
nixpkgs-xr.nixosModules.nixpkgs-xr
spicetify-nix.nixosModules.spicetify
inputs.nix-gaming.nixosModules.ntsync
inputs.nix-gaming.nixosModules.pipewireLowLatency
inputs.nix-gaming.nixosModules.platformOptimizations
]; ];
}; };
}; };
@ -105,6 +110,7 @@
catppuccin.homeManagerModules.catppuccin catppuccin.homeManagerModules.catppuccin
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
chaotic.homeManagerModules.default chaotic.homeManagerModules.default
spicetify-nix.homeManagerModules.spicetify
] ]
++ (with (import (inputs.arcexprs + "/modules")).home-manager; [ ++ (with (import (inputs.arcexprs + "/modules")).home-manager; [
i3gopher i3gopher

1
vr/arguments Normal file
View file

@ -0,0 +1 @@
PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/wivrn/comp_ipc

1
vr/bs-manager.sh Executable file
View file

@ -0,0 +1 @@
steam-run env WINEPREFIX=$STEAM_DIR/steamapps/compatdata/620980/pfx bs-manager

2
vr/wired.sh Executable file
View file

@ -0,0 +1,2 @@
adb reverse tcp:9757 tcp:9757
adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://localhost" org.meumeu.wivrn