Compare commits

...
4 Commits
Author SHA1 Message Date
Theaninova fa6b2a387e update system 2026-06-25 10:49:08 +02:00
Theaninova 5f6fbdc0ac feat: audio cast 2026-06-09 14:39:32 +02:00
Theaninova cf2108ad82 update system 2026-06-06 13:11:00 +02:00
Theaninova 7c3a4f9cb6 update system 2026-05-25 14:04:30 +02:00
29 changed files with 651 additions and 385 deletions
Generated
+34 -33
View File
@@ -24,11 +24,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1774640361, "lastModified": 1775706155,
"narHash": "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=", "narHash": "sha256-h7Rw0vlb0n0Jsk21WJPm7H+1T1bG+PEuxE5cJ2TZl8A=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "elephant", "repo": "elephant",
"rev": "d30652147d8e16ebc849b779b8ef495a894b0dd4", "rev": "376ee71c66db38683daabd57350bf3f6f086eaf8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -45,11 +45,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769996383, "lastModified": 1778716662,
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", "narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381", "rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -65,11 +65,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775622785, "lastModified": 1781009359,
"narHash": "sha256-/yFxO+7oS1SymDfJ2iVO7K5vJKcYfe9XGIJ+quLqz0Q=", "narHash": "sha256-w/mZkRscTatf8NWyUstli8ROzM/eopxZzi0WRjoeYkU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "527e47b78fe67213072f706bf933a9705a8c4974", "rev": "c58ead12efcac436afffa93a22099a5595eb4157",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -112,11 +112,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1775566751, "lastModified": 1780944960,
"narHash": "sha256-5Xkx4NQvl2azAQe3lCZCMUx4FiwGOlEb+I4kyycQYw8=", "narHash": "sha256-/Tzx2TY0IVm/ptBvkKaLdOHADpM7xsUMfBKOpCibH1M=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "6aa49a9c5b82911459e230db5bd64289082d4354", "rev": "da6577a9bef8a4d7a9d7a2a0dc1e1089edb46bed",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -145,11 +145,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1775561155, "lastModified": 1780938415,
"narHash": "sha256-TK2IrqQivRcwqJa0suZMbcsN17CtA8Uu0v7CDnLATb0=", "narHash": "sha256-QHyIMGSbCQW8d5qbOrMsm6gem10bO3Au2YLa3alJfHo=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "599db847f857b8a7ff78ce02f15acab5d5d9fee1", "rev": "6f1a2c5f0e8274223d4204b1f8d6f7f91538967e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -176,11 +176,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1775423009, "lastModified": 1780749050,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=", "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9", "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -192,11 +192,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1775305101, "lastModified": 1780511130,
"narHash": "sha256-/74n1oQPtKG52Yw41cbToxspxHbYz6O3vi+XEw16Qe8=", "narHash": "sha256-2v9lT4ya59Lh1FqPeLnz1MoX9y/wz2huqfe9RtQZITk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "36a601196c4ebf49e035270e10b2d103fe39076b", "rev": "535f3e6942cb1cead3929c604320d3db54b542b9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -215,11 +215,11 @@
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1775307257, "lastModified": 1780995253,
"narHash": "sha256-y9hEecHH4ennFwIcw1n480YCGh73DkEmizmQnyXuvgg=", "narHash": "sha256-6Lsoyw2XPvY8YNMCtPnsyw0JVVtHsXP2xtrFJBBTAOQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "2e008bb941f72379d5b935d5bfe70ed8b7c793ff", "rev": "43a7e6f82978ac975c3bba6728869b231e7a1ba0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -289,15 +289,16 @@
}, },
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1774449309,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "c29398b59d2048c4ab79345812849c9bd15e9150",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"ref": "future-26.11",
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
@@ -403,11 +404,11 @@
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1773675699, "lastModified": 1777789924,
"narHash": "sha256-GrormZ2KxchtCLuO90+5fioEQmlUCKBIil0Mzr9w0Iw=", "narHash": "sha256-fX3ErzTmHRO9z1SzHC2VZUgKOgRfO13X/joC5a3QN7Q=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "walker", "repo": "walker",
"rev": "d2702235710da3d7daf55c912ca7534261cf20f5", "rev": "93d44d1cb41732e1370e4b949429ae8e34ea05a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -436,11 +437,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1773622265, "lastModified": 1779745227,
"narHash": "sha256-wToKwH7IgWdGLMSIWksEDs4eumR6UbbsuPQ42r0oTXQ=", "narHash": "sha256-yqY7RtEJGJiENzR0GwL6q69tSAy6xAAmAcLuIhLjPf8=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "a879e5e0896a326adc79c474bf457b8b99011027", "rev": "5d1efbc9dc3ab1c10160b656e0247f3325daf0f2",
"type": "github" "type": "github"
}, },
"original": { "original": {
+12 -2
View File
@@ -67,7 +67,17 @@
hardware = { hardware = {
amdgpu.preset.default.enable = true; amdgpu.preset.default.enable = true;
audio.preset.pipewire.enable = true; audio = {
preset.pipewire.enable = true;
audio-share = {
enable = true;
partner = {
ip = "192.168.0.51";
name = "Luci";
combine = "astro-a50-eq-harman-in";
};
};
};
cc1.enable = true; cc1.enable = true;
fv43u.enable = true; fv43u.enable = true;
astro-a50.enable = true; astro-a50.enable = true;
@@ -123,7 +133,7 @@
programs = { programs = {
zsh.enable = true; zsh.enable = true;
wireshark = { wireshark = {
enable = true; enable = false;
package = pkgs.wireshark; package = pkgs.wireshark;
usbmon.enable = true; usbmon.enable = true;
}; };
+1
View File
@@ -14,6 +14,7 @@
extraConfig.PROJECTS = "${config.home.homeDirectory}/Projects"; extraConfig.PROJECTS = "${config.home.homeDirectory}/Projects";
}; };
programs.zoxide.enable = true; programs.zoxide.enable = true;
services.jellyfin-mpv-shim.enable = true;
wayland.windowManager.hyprland.settings.device = wayland.windowManager.hyprland.settings.device =
let let
targetDPI = 1200; targetDPI = 1200;
+26 -8
View File
@@ -13,18 +13,37 @@
packages = with pkgs; [ packages = with pkgs; [
blueman blueman
kdePackages.okular kdePackages.okular
(pkgs.writeShellApplication {
name = "shut";
text = ''
shutdown now
'';
})
]; ];
}; };
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
general.layout = "master"; config = {
master = { general.layout = "master";
orientation = "right"; master = {
mfact = 0.65; orientation = "right";
always_keep_position = true; mfact = 0.65;
always_keep_position = true;
};
input.kb_options = "lv3:caps_switch";
}; };
monitor = [ monitor = [
"eDP-1,3840x2160@60,0x0,2" {
"HDMI-A-4,2560x1440@75,1920x-768,1" output = "eDP-1";
mode = "3840x2160@60";
position = "0x0";
scale = 2;
}
{
output = "HDMI-A-4";
mode = "2560x1440@75";
position = "1920x-768";
scale = 1;
}
]; ];
}; };
systemd.user.services = { systemd.user.services = {
@@ -52,6 +71,5 @@
}; };
}; };
wayland.windowManager.hyprland.settings.input.kb_options = [ "lv3:caps_switch" ];
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
} }
+11 -1
View File
@@ -72,7 +72,17 @@
hardware = { hardware = {
q3279vwf.enable = true; q3279vwf.enable = true;
audio.preset.pipewire.enable = true; audio = {
preset.pipewire.enable = true;
audio-share = {
enable = true;
partner = {
ip = "192.168.0.84";
name = "Thea";
combine = "alsa_output.usb-SteelSeries_Arctis_Pro_Wireless-00.pro-output-0";
};
};
};
cc1.enable = true; cc1.enable = true;
nvidia.preset.proprietary.enable = true; nvidia.preset.proprietary.enable = true;
+7 -1
View File
@@ -15,9 +15,15 @@
kdePackages.okular kdePackages.okular
bitbox bitbox
gamma-launcher gamma-launcher
(pkgs.writeShellApplication {
name = "shut";
text = ''
shutdown now
'';
})
]; ];
}; };
wayland.windowManager.hyprland.settings.input.kb_options = [ "lv3:caps_switch" ]; wayland.windowManager.hyprland.settings.config.input.kb_options = "lv3:caps_switch";
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
systemd.user.services = { systemd.user.services = {
nm-applet = { nm-applet = {
@@ -14,77 +14,97 @@ let
''; '';
}; };
cfg = osConfig.desktops.hyprland; cfg = osConfig.desktops.hyprland;
bind = bind: action: {
_args = [
bind
(lib.generators.mkLuaInline action)
];
};
bindm = bind: action: {
_args = [
bind
(lib.generators.mkLuaInline action)
{ mouse = true; }
];
};
in in
{ {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
configType = "lua";
settings = { settings = {
general = { config = {
allow_tearing = true; general = {
layout = lib.mkIf cfg.scrolling "scrolling"; allow_tearing = true;
}; layout = lib.mkIf cfg.scrolling "scrolling";
input = { };
accel_profile = "flat"; input = {
kb_layout = osConfig.services.xserver.xkb.layout; accel_profile = "flat";
kb_variant = osConfig.services.xserver.xkb.variant; kb_layout = osConfig.services.xserver.xkb.layout;
kb_variant = osConfig.services.xserver.xkb.variant;
touchpad.natural_scroll = true;
};
misc = {
layers_hog_keyboard_focus = false;
disable_hyprland_logo = true;
disable_splash_rendering = true;
vrr = lib.mkDefault 2;
enable_swallow = true;
swallow_regex = "^kitty$";
};
binds.scroll_event_delay = 0;
decoration.border_part_of_window = false;
}; };
bind = [ bind = [
"SUPER,C,killactive" (bind "SUPER + C" "hl.dsp.window.close()")
"SUPER,P,togglefloating," (bind "SUPER + P" ''
"SUPER,P,pin," function()
"SUPER,D,fullscreen,1" hl.dsp.window.float()
"SUPER,V,fullscreen,0" hl.dsp.window.pin()
end
'')
(bind "SUPER + D" "hl.dsp.window.fullscreen({ mode = 'maximized' })")
(bind "SUPER + V" "hl.dsp.window.fullscreen({ mode = 'fullscreen' })")
"SUPER,f,workspace,r-1" (bind "SUPER + F" "hl.dsp.focus({ workspace = 'r-1' })")
"SUPER,h,workspace,r+1" (bind "SUPER + H" "hl.dsp.focus({ workspace = 'r+1' })")
"SUPER_SHIFT,f,movetoworkspace,r-1" (bind "SUPER + SHIFT + F" "hl.dsp.window.move({ workspace = 'r-1' })")
"SUPER_SHIFT,h,movetoworkspace,r+1" (bind "SUPER + SHIFT + H" "hl.dsp.window.move({ workspace = 'r+1' })")
(bindm "SUPER + mouse:272" "hl.dsp.window.drag()")
(bindm "SUPER + mouse:273" "hl.dsp.window.resize()")
] ]
++ ( ++ (
if cfg.scrolling then if cfg.scrolling then
[ [
"SUPER,up,layoutmsg,focus u" (bind "SUPER + SHIFT + LEFT" "hl.dsp.layout('swapcol l')")
"SUPER,down,layoutmsg,focus d" (bind "SUPER + SHIFT + RIGHT" "hl.dsp.layout('swapcol r')")
"SUPER,right,layoutmsg,focus r"
"SUPER,left,layoutmsg,focus l"
"SUPER_SHIFT,up,layoutmsg,movewindowto u" (bind "SUPER + UP" "hl.dsp.layout('focus u')")
"SUPER_SHIFT,down,layoutmsg,movewindowto d" (bind "SUPER + DOWN" "hl.dsp.layout('focus d')")
"SUPER_SHIFT,left,layoutmsg,swapcol l" (bind "SUPER + LEFT" "hl.dsp.layout('focus l')")
"SUPER_SHIFT,right,layoutmsg,swapcol r" (bind "SUPER + RIGHT" "hl.dsp.layout('focus r')")
"SUPER,mouse_up,layoutmsg,focus r" (bind "SUPER + mouse_up" "hl.dsp.layout('focus r')")
"SUPER,mouse_down,layoutmsg,focus l" (bind "SUPER + mouse_down" "hl.dsp.layout('focus l')")
] ]
else else
[ [
"SUPER_SHIFT,up,movewindow,u" (bind "SUPER + SHIFT + UP" "hl.dsp.window.move({ direction = 'up' })")
"SUPER_SHIFT,down,movewindow,d" (bind "SUPER + SHIFT + DOWN" "hl.dsp.window.move({ direction = 'down' })")
"SUPER_SHIFT,left,movewindow,l" (bind "SUPER + SHIFT + LEFT" "hl.dsp.window.move({ direction = 'left' })")
"SUPER_SHIFT,right,movewindow,r" (bind "SUPER + SHIFT + RIGHT" "hl.dsp.window.move({ direction = 'right' })")
"SUPER,up,movefocus,u" (bind "SUPER + UP" "hl.dsp.focus({ direction = 'up' })")
"SUPER,down,movefocus,d" (bind "SUPER + DOWN" "hl.dsp.focus({ direction = 'down' })")
"SUPER,left,movefocus,l" (bind "SUPER + LEFT" "hl.dsp.focus({ direction = 'left' })")
"SUPER,right,movefocus,r" (bind "SUPER + RIGHT" "hl.dsp.focus({ direction = 'right' })")
"SUPER,mouse_up,workspace,r+1" (bind "SUPER + mouse_up" "hl.dsp.focus({ workspace = 'r-1' })")
"SUPER,mouse_down,workspace,r-1" (bind "SUPER + mouse_down" "hl.dsp.focus({ workspace = 'r+1' })")
] ]
); );
bindm = [
"SUPER,mouse:272,movewindow"
"SUPER,mouse:273,resizewindow"
];
misc = {
layers_hog_keyboard_focus = false;
disable_hyprland_logo = true;
disable_splash_rendering = true;
vrr = lib.mkDefault 2;
};
decoration.border_part_of_window = false;
input.touchpad.natural_scroll = true;
}; };
}; };
+1 -2
View File
@@ -14,13 +14,12 @@
tone-mapping = "mobius"; tone-mapping = "mobius";
}; };
}; };
services.jellyfin-mpv-shim.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
# nix # nix
cachix cachix
# lorri # lorri
vulnix vulnix
gccdiag # gccdiag
# browsers # browsers
firefox firefox
+2 -2
View File
@@ -29,10 +29,10 @@
]; ];
}; };
}; };
wayland.windowManager.hyprland.settings.windowrule = [ wayland.windowManager.hyprland.settings.window_rule = [
{ {
name = "Suppress maximize for neovide"; name = "Suppress maximize for neovide";
"match:class" = "^(neovide)$"; match.class = "^(neovide)$";
suppress_event = "maximize"; suppress_event = "maximize";
} }
]; ];
-20
View File
@@ -1,20 +0,0 @@
general {
col.inactive_border = 0x00000000
col.active_border = 0x00000000
# col.inactive_border = rgba({{colors.surface.default.hex_stripped}}{{custom.transparency_hex | to_lower}})
# col.active_border = rgb({{colors.primary.default.hex_stripped}})
border_size = 0
extend_border_grab_area = 4
gaps_in = {{custom.padding}}
gaps_out = {{custom.double_padding}}
}
decoration {
rounding = {{custom.radius}}
blur {
size = {{custom.blur}}
passes = 3
popups = true
}
}
+53
View File
@@ -0,0 +1,53 @@
hl.config({
general = {
col = {
inactive_border = "rgba(00000000)",
active_border = "rgba(00000000)",
},
border_size = 0,
extend_border_grab_area = 4,
-- stylua: ignore
gaps_in = {{custom.padding}},
-- stylua: ignore
gaps_out = {{custom.double_padding}},
},
decoration = {
-- stylua: ignore
rounding = {{custom.radius}},
--[[ motion_blur = {
enabled = true,
},]]
blur = {
-- stylua: ignore
size = {{custom.blur}},
passes = 3,
popups = true,
},
inactive_opacity = 0.8,
shadow = {
enabled = true,
range = 32,
render_power = 8,
color = "rgba(000000aa)",
color_inactive = "rgba(00000011)",
},
},
animations = {
enabled = true,
},
})
hl.curve("default", { type = "spring", mass = 1, stiffness = 90, dampening = 30 })
hl.curve("linear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.5, 0.5 } } })
hl.animation({ leaf = "windows", enabled = true, speed = 1, spring = "default", style = "slide" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 1, spring = "default", style = "slide bottom" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1, spring = "default", style = "slide bottom" })
hl.animation({ leaf = "border", enabled = true, speed = 1, spring = "default" })
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "linear" })
hl.animation({ leaf = "fadeShadow", enabled = true, speed = 4, bezier = "linear" })
hl.animation({ leaf = "fadeDim", enabled = true, speed = 4, bezier = "linear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1, spring = "default", style = "slidevert" })
+107 -130
View File
@@ -189,104 +189,106 @@ in
pkgs.zenity pkgs.zenity
pkgs.sunwait pkgs.sunwait
]; ];
text = '' text =
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper # sh
STATE=${config.xdg.stateHome}/md3-evo ''
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper
STATE=${config.xdg.stateHome}/md3-evo
SCHEME=$(dconf read /org/gnome/desktop/interface/color-scheme) SCHEME=$(dconf read /org/gnome/desktop/interface/color-scheme)
if [ "$SCHEME" = "'prefer-light'" ]; then if [ "$SCHEME" = "'prefer-light'" ]; then
MODE="light" MODE="light"
else
MODE="dark"
fi
if [ ! -d "$STATE" ]; then
mkdir -p "$STATE"
fi
if [ -f "$STATE/mode" ]; then
MODE=$(cat "$STATE/mode")
fi
if [ $# -eq 0 ]; then
echo -e "\033[1mUsage:\033[0m mode|light|dark|auto|toggle|wallpaper"
exit 1
elif [ "$1" = "mode" ]; then
echo -e "$MODE"
exit 0
elif [ "$1" = "wallpaper" ]; then
if [ $# -eq 1 ]; then
PICKED=$(zenity --file-selection --file-filter='Images | *.png *.jpg *.jpeg *.svg *.bmp *.gif')
cp "$PICKED" "$WALLPAPER"
else else
cp "$2" "$WALLPAPER" MODE="dark"
fi fi
elif [ "$1" = "toggle" ]; then
if [ ! -d "$STATE" ]; then
mkdir -p "$STATE"
fi
if [ -f "$STATE/mode" ]; then
MODE=$(cat "$STATE/mode")
fi
if [ $# -eq 0 ]; then
echo -e "\033[1mUsage:\033[0m mode|light|dark|auto|toggle|wallpaper"
exit 1
elif [ "$1" = "mode" ]; then
echo -e "$MODE"
exit 0
elif [ "$1" = "wallpaper" ]; then
if [ $# -eq 1 ]; then
PICKED=$(zenity --file-selection --file-filter='Images | *.png *.jpg *.jpeg *.svg *.bmp *.gif')
cp "$PICKED" "$WALLPAPER"
else
cp "$2" "$WALLPAPER"
fi
elif [ "$1" = "toggle" ]; then
if [ "$MODE" = "light" ]; then
MODE="dark"
else
MODE="light"
fi
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "light" ] || [ "$1" = "dark" ] || [ "$1" == "auto" ]; then
MODE="$1"
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "init" ]; then
echo -e "\033[1mSetting up matugen\033[0m"
else
echo -e "\033[31mInvalid argument\033[0m"
exit 1
fi
if [ ! -f $WALLPAPER ]; then
echo -e "\033[31,1mNo wallpaper set\033[0m"
exit 1
fi
THEME_SERVICE_PATH="${config.xdg.configHome}/systemd/user/theme-init.timer"
if [ "$MODE" = "auto" ]; then
TIME=$(sunwait poll ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E || :)
if [ "$TIME" = "DAY" ]; then
MODE="light"
NEXT=6
else
MODE="dark"
NEXT=4
fi
NEXT=$(sunwait report ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E | awk "/Daylight:/ {print \$$NEXT}")
cat <<EOF | tee "$THEME_SERVICE_PATH" > /dev/null
[Unit]
Description=Next theme change timer
[Timer]
OnCalendar=*-*-* $(date -d "$NEXT today + 5 minutes" +'%H:%M'):00
AccuracySec=1min
[Install]
WantedBy=timers.target
EOF
else
rm -f "$THEME_SERVICE_PATH"
fi
systemctl --user daemon-reload &> /dev/null || :
systemctl --user restart theme-init.timer &> /dev/null || :
if command -v niri &> /dev/null; then
niri msg action do-screen-transition --delay-ms 500
fi
if [ "$MODE" = "light" ]; then if [ "$MODE" = "light" ]; then
MODE="dark" GTK_THEME="adw-gtk3"
else else
MODE="light" GTK_THEME="adw-gtk3-dark"
fi fi
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "light" ] || [ "$1" = "dark" ] || [ "$1" == "auto" ]; then
MODE="$1"
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "init" ]; then
echo -e "\033[1mSetting up matugen\033[0m"
else
echo -e "\033[31mInvalid argument\033[0m"
exit 1
fi
if [ ! -f $WALLPAPER ]; then matugen image "$WALLPAPER" --type scheme-${cfg.flavour} --contrast ${builtins.toString cfg.contrast} --mode "$MODE"
echo -e "\033[31,1mNo wallpaper set\033[0m" awww img "$WALLPAPER"
exit 1
fi
THEME_SERVICE_PATH="${config.xdg.configHome}/systemd/user/theme-init.timer" dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'"
if [ "$MODE" = "auto" ]; then dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'"
TIME=$(sunwait poll ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E || :) dconf write /org/gnome/desktop/interface/icon-theme "'Tela'"
if [ "$TIME" = "DAY" ]; then '';
MODE="light"
NEXT=6
else
MODE="dark"
NEXT=4
fi
NEXT=$(sunwait report ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E | awk "/Daylight:/ {print \$$NEXT}")
cat <<EOF | tee "$THEME_SERVICE_PATH" > /dev/null
[Unit]
Description=Next theme change timer
[Timer]
OnCalendar=*-*-* $(date -d "$NEXT today + 5 minutes" +'%H:%M'):00
AccuracySec=1min
[Install]
WantedBy=timers.target
EOF
else
rm -f "$THEME_SERVICE_PATH"
fi
systemctl --user daemon-reload &> /dev/null || :
systemctl --user restart theme-init.timer &> /dev/null || :
if command -v niri &> /dev/null; then
niri msg action do-screen-transition --delay-ms 500
fi
if [ "$MODE" = "light" ]; then
GTK_THEME="adw-gtk3"
else
GTK_THEME="adw-gtk3-dark"
fi
matugen image "$WALLPAPER" --type scheme-${cfg.flavour} --contrast ${builtins.toString cfg.contrast} --mode "$MODE"
awww img "$WALLPAPER"
dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'"
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'"
dconf write /org/gnome/desktop/interface/icon-theme "'Adwaita'"
'';
} }
); );
in in
@@ -294,6 +296,7 @@ in
home.packages = [ home.packages = [
pkgs.adw-gtk3 pkgs.adw-gtk3
pkgs.awww pkgs.awww
pkgs.tela-icon-theme
theme-script theme-script
]; ];
@@ -344,44 +347,18 @@ in
}; };
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings.window_rule = [
windowrule = [ {
{ name = "floating-zenity";
name = "floating-zenity"; match.class = "^(zenity)$";
"match:class" = "^(zenity)$"; float = true;
float = true; }
} ];
]; extraConfig =
decoration = { # lua
inactive_opacity = 0.8; ''
shadow = { require("theme")
enabled = true; '';
range = 32;
render_power = 8;
color = "rgba(000000aa)";
color_inactive = "rgba(00000011)";
};
};
animations = {
enabled = "yes";
bezier = [
"expoOut, 0.16, 1, 0.3, 1"
];
animation = [
"windowsIn, 1, 5, expoOut, slide bottom"
"windows, 1, 5, expoOut, slide"
"windowsOut, 1, 5, expoOut, slide bottom"
"border, 1, 10, default"
"fade, 1, 7, default"
"fadeShadow, 1, 10, default"
"fadeDim, 1, 10, default"
"workspaces, 1, 6, default"
];
};
};
extraConfig = ''
source=./theme.conf
'';
}; };
# TODO: include is coming in the next release # TODO: include is coming in the next release
@@ -518,8 +495,8 @@ in
}) })
// (lib.optionalAttrs osConfig.programs.hyprland.enable { // (lib.optionalAttrs osConfig.programs.hyprland.enable {
hyprland = { hyprland = {
input_path = ./hyprland.conf; input_path = ./hyprland.lua;
output_path = "${config.xdg.configHome}/hypr/theme.conf"; output_path = "${config.xdg.configHome}/hypr/theme.lua";
post_hook = pkgs.writeShellScript "reload-hyprland-theme" '' post_hook = pkgs.writeShellScript "reload-hyprland-theme" ''
if command -v hyprctl &> /dev/null; then if command -v hyprctl &> /dev/null; then
hyprctl reload hyprctl reload
+1
View File
@@ -11,6 +11,7 @@
./fonts/nerd-fonts.nix ./fonts/nerd-fonts.nix
./fonts/open-dyslexic.nix ./fonts/open-dyslexic.nix
./hardware/audio-share.nix
./hardware/astro-a50.nix ./hardware/astro-a50.nix
./hardware/audio.nix ./hardware/audio.nix
./hardware/gbmonctl.nix ./hardware/gbmonctl.nix
+1 -1
View File
@@ -28,7 +28,7 @@ in
systemd.enable = false; systemd.enable = false;
package = null; package = null;
portalPackage = null; portalPackage = null;
settings = { settings.config = {
ecosystem = { ecosystem = {
no_update_news = true; no_update_news = true;
no_donation_nag = true; no_donation_nag = true;
+157
View File
@@ -0,0 +1,157 @@
{
pkgs,
lib,
config,
username,
...
}:
with lib;
let
cfg = config.hardware.audio.audio-share;
in
{
options.hardware.audio.audio-share = {
enable = mkEnableOption "LAN Audio Sharing";
partner = mkOption {
type = types.submodule {
options = {
ip = mkOption {
type = types.str;
description = "The IP address of the partner machine to share audio with.";
};
name = mkOption {
type = types.str;
description = "Name of the partner machine (for display purposes)";
};
combine = mkOption {
type = types.str;
description = "Name of the sink to combine the shared output with";
};
};
};
};
};
config =
let
sourcePort = 10001;
repairPort = 10002;
controlPort = 10003;
sinkName = "combined_output_3";
in
mkIf cfg.enable {
networking.firewall.allowedUDPPorts = [
sourcePort
repairPort
controlPort
];
home-manager.users.${username} = {
programs.waybar.settings.mainBar = {
"pulseaudio" = {
format-icons.${sinkName} = "󱝉";
on-click-right = lib.getExe (
pkgs.writeShellApplication {
name = "toggle-audio-share";
runtimeEnv = {
SINK_A = sinkName;
SINK_B = cfg.partner.combine;
};
text = builtins.readFile ./audio-share.sh;
}
);
};
};
xdg.configFile = {
"pipewire/pipewire.conf.d/52-audio-share.conf".text = builtins.toJSON {
"context.modules" = [
{
name = "libpipewire-module-roc-source";
args = {
"local.ip" = "0.0.0.0";
"roc.resampler.backend" = "default";
"roc.resampler.profile" = "default";
"roc.latency-tuner.backend" = "default";
"roc.latency-tuner.profile" = "default";
"fec.code" = "default";
"sess.latency.msec" = 100;
"local.source.port" = sourcePort;
"local.repair.port" = repairPort;
"local.control.port" = controlPort;
};
}
];
};
"pipewire/pipewire.conf.d/52-audio-share-sink.conf".text = builtins.toJSON {
"context.modules" = [
{
name = "libpipewire-module-roc-sink";
args = {
"fec.code" = "default";
"remote.ip" = cfg.partner.ip;
"remote.source.port" = sourcePort;
"remote.repair.port" = repairPort;
"remote.control.port" = controlPort;
"sink.props" = {
"node.name" = cfg.partner.name;
"node.description" = cfg.partner.name;
};
};
}
{
name = "libpipewire-module-combine-stream";
args = {
"combine.mode" = "sink";
"node.name" = sinkName;
"node.description" = "Shared Audio Output";
"combine.latency-compensate" = true;
"combine.props" = {
audio.position = [
"FL"
"FR"
];
};
"stream.rules" =
let
actions = {
create-stream = {
"combine.audio.position" = [
"FL"
"FR"
];
"audio.position" = [
"FL"
"FR"
];
};
};
in
[
{
matches = [
{
"media.class" = "Audio/Sink";
"node.name" = cfg.partner.combine;
}
];
inherit actions;
}
{
matches = [
{
"media.class" = "Audio/Sink";
"node.name" = cfg.partner.name;
}
];
inherit actions;
}
];
};
}
];
};
};
};
};
}
+22
View File
@@ -0,0 +1,22 @@
set -eu
get_id() {
pw-dump | jq -r --arg name "$1" '
.[]
| select(.type == "PipeWire:Interface:Node")
| select(.info.props["node.name"] == $name)
| .id
'
}
ID_A=$(get_id "$SINK_A")
ID_B=$(get_id "$SINK_B")
CURRENT_ID=$(wpctl inspect @DEFAULT_AUDIO_SINK@ |
awk '$1 == "id" { gsub(",", "", $2); print $2 }')
if [ "$CURRENT_ID" = "$ID_A" ]; then
wpctl set-default "$ID_B"
else
wpctl set-default "$ID_A"
fi
+73 -101
View File
@@ -32,120 +32,92 @@ in
'') '')
]; ];
home-manager.users.${username} = home-manager.users.${username} = {
let programs.mpv.config = {
monitorline = "DP-3,3840x2160@144,0x0,1,bitdepth,10,cm,${if cfg.hdr then "hdr" else "srgb"}"; vo = "gpu-next";
in gpu-api = "vulkan";
{ gpu-context = "waylandvk";
programs.mpv.config = { target-colorspace-hint = "auto";
vo = "gpu-next"; };
gpu-api = "vulkan"; wayland.windowManager.hyprland.settings = {
gpu-context = "waylandvk"; config = {
target-colorspace-hint = "auto";
};
programs.niri.settings = {
prefer-no-csd = true;
outputs."DP-3" = {
scale = 1;
mode = {
width = 3840;
height = 2160;
refresh = 143.999;
};
variable-refresh-rate = "on-demand";
};
layout.struts.top = 80;
};
wayland.windowManager.hyprland.settings = {
scrolling = { scrolling = {
column_width = 0.4; column_width = 0.4;
focus_fit_method = 0; focus_fit_method = 0;
fullscreen_on_one_column = false; fullscreen_on_one_column = false;
}; wrap_focus = false;
master = {
orientation = "center";
slave_count_for_center_master = 0;
mfact = 0.4;
allow_small_split = true;
}; };
render.direct_scanout = 0; render.direct_scanout = 0;
monitorv2 = {
output = "DP-3";
mode = "3840x2160@144";
position = "0x0";
scale = 1;
bitdepth = 10;
addreserved = "80,0,0,0";
cm = if cfg.hdr then "hdredid" else "srgb";
sdr_min_luminance = 0.25;
sdr_max_luminance = 250;
};
xwayland.force_zero_scaling = true; xwayland.force_zero_scaling = true;
misc.vrr = 2; # VA suffers from VRR flicker misc.vrr = 2; # VA suffers from VRR flicker
quirks.prefer_hdr = 1;
cursor = { cursor = {
min_refresh_rate = 48; min_refresh_rate = 48;
no_break_fs_vrr = 1; no_break_fs_vrr = 1;
}; };
# experimental.xx_color_management_v4 = true;
}; };
monitor = {
programs.waybar.settings.mainBar = output = "DP-3";
let mode = "3840x2160@144";
tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness"; position = "0x0";
cmd = scale = 1;
if cfg.hdr then bitdepth = 10;
# sh reserved_area.top = 80;
'' sdr_min_luminance = 0.25;
BRIGHTNESS=$(cat ${tmpFile} || echo "0") sdr_max_luminance = 250;
BRIGHTNESS=$(printf "1.%02d" $((BRIGHTNESS / 2))) icc = toString ./fv43u.icc;
hyprctl keyword monitor ${monitorline},sdrbrightness,$BRIGHTNESS # cm = "dcip3";
'' };
else
"${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
in
{
"custom/saturation" = { };
"custom/brightness" = {
return-type = "json";
exec = pkgs.writeShellScript "waybar-brightness" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
if [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 1)} ]; then
ICON="󰃚"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 2)} ]; then
ICON="󰃛"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 3)} ]; then
ICON="󰃜"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 4)} ]; then
ICON="󰃝"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 5)} ]; then
ICON="󰃞"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 6)} ]; then
ICON="󰃟"
else
ICON="󰃠"
fi
echo "{\"text\": \"$ICON $BRIGHTNESS%\"}"
'';
on-scroll-up = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS + 5))
BRIGHTNESS=$((BRIGHTNESS > 100 ? 100 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
on-scroll-down = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS - 5))
BRIGHTNESS=$((BRIGHTNESS < 0 ? 0 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
exec-on-event = true;
exec-if = "sleep 0.1";
interval = "once";
};
};
}; };
programs.waybar.settings.mainBar =
let
tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness";
cmd = "${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
in
{
"custom/saturation" = { };
"custom/brightness" = {
return-type = "json";
exec = pkgs.writeShellScript "waybar-brightness" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
if [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 1)} ]; then
ICON="󰃚"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 2)} ]; then
ICON="󰃛"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 3)} ]; then
ICON="󰃜"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 4)} ]; then
ICON="󰃝"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 5)} ]; then
ICON="󰃞"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 6)} ]; then
ICON="󰃟"
else
ICON="󰃠"
fi
echo "{\"text\": \"$ICON $BRIGHTNESS%\"}"
'';
on-scroll-up = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS + 5))
BRIGHTNESS=$((BRIGHTNESS > 100 ? 100 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
on-scroll-down = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS - 5))
BRIGHTNESS=$((BRIGHTNESS < 0 ? 0 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
exec-on-event = true;
exec-if = "sleep 0.1";
interval = "once";
};
};
};
}; };
} }
@@ -52,7 +52,7 @@ in
nvidiaPersistenced = false; nvidiaPersistenced = false;
}; };
home-manager.users.${username}.wayland.windowManager.hyprland.settings = { home-manager.users.${username}.wayland.windowManager.hyprland.settings.config = {
cursor.no_hardware_cursors = true; cursor.no_hardware_cursors = true;
opengl.nvidia_anti_flicker = true; opengl.nvidia_anti_flicker = true;
# render.direct_scanout = 1; # render.direct_scanout = 1;
+22 -9
View File
@@ -18,18 +18,31 @@ in
fonts.fontconfig.subpixel.rgba = "bgr"; fonts.fontconfig.subpixel.rgba = "bgr";
home-manager.users.${username}.wayland.windowManager.hyprland.settings = { home-manager.users.${username}.wayland.windowManager.hyprland.settings = {
general.layout = "master"; config = {
master = { general.layout = "master";
orientation = "right"; master = {
mfact = 0.65; orientation = "right";
always_keep_position = true; mfact = 0.65;
always_keep_position = true;
};
xwayland.force_zero_scaling = true;
misc.vrr = 0; # VA suffers from VRR flicker
}; };
monitor = [ monitor = [
"HDMI-A-1,2560x1440@75,0x0,1" {
"DP-1,1920x1080@144,auto-center-right,1,transform,3" output = "HDMI-A-1";
mode = "2560x1440@75";
position = "0x0";
scale = 1;
}
{
output = "DP-1";
mode = "1920x1080@144";
position = "auto-center-right";
scale = 1;
transform = 3;
}
]; ];
xwayland.force_zero_scaling = true;
misc.vrr = 0; # VA suffers from VRR flicker
}; };
}; };
} }
+6 -4
View File
@@ -17,11 +17,13 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
windowrule = [ window_rule = [
{ {
name = "firefox-pip"; name = "firefox-pip";
"match:class" = "^(firefox)$"; match = {
"match:title" = "^(Picture-in-Picture)$"; class = "^(firefox)$";
title = "^(Picture-in-Picture)$";
};
float = true; float = true;
no_follow_mouse = true; no_follow_mouse = true;
opaque = true; opaque = true;
@@ -29,7 +31,7 @@ in
fullscreen_state = "2 0"; fullscreen_state = "2 0";
move = "240 8"; move = "240 8";
keep_aspect_ratio = true; keep_aspect_ratio = true;
border_size = "0"; border_size = 0;
animation = "fade"; animation = "fade";
} }
]; ];
+2 -2
View File
@@ -21,10 +21,10 @@ in
bind = [ bind = [
"SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard" "SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard"
]; ];
windowrule = [ window_rule = [
{ {
name = "Flameshot"; name = "Flameshot";
"match:class" = "^(flameshot)$"; match.class = "^(flameshot)$";
animation = "fade"; animation = "fade";
float = true; float = true;
} }
+2 -2
View File
@@ -16,10 +16,10 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings.windowrule = [ wayland.windowManager.hyprland.settings.window_rule = [
{ {
name = "Gnome Keyring"; name = "Gnome Keyring";
"match:class" = "^(gcr-prompter)$"; match.class = "^(gcr-prompter)$";
border_size = 0; border_size = 0;
rounding = 10; rounding = 10;
animation = "slide"; animation = "slide";
+6 -1
View File
@@ -19,7 +19,12 @@ in
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings = {
bind = [ bind = [
"SUPER_SHIFT,V,exec,uwsm app -- ${lib.getExe pkgs.grimblast} --freeze copy area" {
_args = [
"SUPER + SHIFT + V"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- ${lib.getExe pkgs.grimblast} --freeze copy area')")
];
}
]; ];
}; };
}; };
+6 -1
View File
@@ -22,7 +22,12 @@ in
''; '';
in in
[ [
"SUPER_SHIFT,C,exec,uwsm app -- ${color-picker}" {
_args = [
"SUPER + SHIFT + C"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- ${color-picker}')")
];
}
]; ];
}; };
} }
+6 -1
View File
@@ -16,7 +16,12 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings.bind = [ wayland.windowManager.hyprland.settings.bind = [
"SUPER,T,exec,uwsm app -- kitty" {
_args = [
"SUPER + T"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- kitty')")
];
}
]; ];
programs.kitty = { programs.kitty = {
enable = true; enable = true;
+9 -1
View File
@@ -17,7 +17,15 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
bindr = [ "SUPER,SUPER_L,exec,uwsm app -- ${lib.getExe pkgs.walker}" ]; bind = [
{
_args = [
"SUPER + SUPER_L"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- ${lib.getExe pkgs.walker}')")
{ release = true; }
];
}
];
/* /*
layerrule = [ layerrule = [
# TODO: Add layer rules for walker # TODO: Add layer rules for walker
+1 -1
View File
@@ -76,7 +76,7 @@ in
"pulseaudio" = { "pulseaudio" = {
format = "{icon} {volume}%"; format = "{icon} {volume}%";
format-icons = { format-icons = {
"alsa_output.usb-Turtle_Beach_Turtle_Beach_Stealth_700_G2_MAX-01.iec958-stereo" = "󰋋"; "astro-a50-eq-harman-in" = "󰋋";
"alsa_output.pci-0000_0a_00.4.analog-stereo" = "󰓃"; "alsa_output.pci-0000_0a_00.4.analog-stereo" = "󰓃";
"alsa_output.pci-0000_08_00.1.hdmi-stereo-extra4" = "󰽟"; "alsa_output.pci-0000_08_00.1.hdmi-stereo-extra4" = "󰽟";
"alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_11_12_79383-00.analog-stereo" = "alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_11_12_79383-00.analog-stereo" =
+2 -2
View File
@@ -20,9 +20,9 @@ in
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
lpc21isp lpc21isp
dfu-util dfu-util
openscad
# orca-slicer
]; ];
# Bambu Network Plugin
networking.firewall.allowedUDPPorts = [ 2021 ];
home-manager.users.${username} = { home-manager.users.${username} = {
programs = { programs = {
lazygit.enable = true; lazygit.enable = true;
+11 -10
View File
@@ -27,18 +27,19 @@ in
]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
steam
oversteer oversteer
obs-studio obs-studio
(lutris.override { /*
extraLibraries = (lutris.override {
pkgs: with pkgs; [ extraLibraries =
libgudev pkgs: with pkgs; [
libvdpau libgudev
]; libvdpau
}) ];
rpcs3 })
bottles */
# rpcs3
# bottles
wineWow64Packages.stagingFull wineWow64Packages.stagingFull
winetricks winetricks
protontricks protontricks