diff --git a/flake.lock b/flake.lock index 95dc2863..c5c572cb 100644 --- a/flake.lock +++ b/flake.lock @@ -68,11 +68,11 @@ ] }, "locked": { - "lastModified": 1732603785, - "narHash": "sha256-AEjWTJwOmSnVYsSJCojKgoguGfFfwel6z/6ud6UFMU8=", + "lastModified": 1733105089, + "narHash": "sha256-Qs3YmoLYUJ8g4RkFj2rMrzrP91e4ShAioC9s+vG6ENM=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "6ab87b7c84d4ee873e937108c4ff80c015a40c7a", + "rev": "c6b65d946097baf3915dd51373251de98199280d", "type": "github" }, "original": { @@ -229,11 +229,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1732735497, - "narHash": "sha256-qaiRKT4T+kRAMwfFf1fIJ5pwCcaLp2dfNpT65C4uWuE=", + "lastModified": 1733238479, + "narHash": "sha256-o5BT2ziQJzoXrqBz/iOIOGoxDTXYd5KiNF/7ncN81ao=", "owner": "helix-editor", "repo": "helix", - "rev": "e1d1a5c5a12127ded88dfcf66dd74aad1650977c", + "rev": "fa68bac391e576e659e306ce3fb2758d3ec68538", "type": "github" }, "original": { @@ -270,11 +270,11 @@ ] }, "locked": { - "lastModified": 1732466619, - "narHash": "sha256-T1e5oceypZu3Q8vzICjv1X/sGs9XfJRMW5OuXHgpB3c=", + "lastModified": 1733050161, + "narHash": "sha256-lYnT+EYE47f5yY3KS/Kd4pJ6CO9fhCqumkYYkQ3TK20=", "owner": "nix-community", "repo": "home-manager", - "rev": "f3111f62a23451114433888902a55cf0692b408d", + "rev": "62d536255879be574ebfe9b87c4ac194febf47c5", "type": "github" }, "original": { @@ -409,11 +409,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1732483221, - "narHash": "sha256-kF6rDeCshoCgmQz+7uiuPdREVFuzhIorGOoPXMalL2U=", + "lastModified": 1733217105, + "narHash": "sha256-fc6jTzIwCIVWTX50FtW6AZpuukuQWSEbPiyg6ZRGWFY=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "45348ad6fb8ac0e8415f6e5e96efe47dd7f39405", + "rev": "cceee0a31d2f01bcc98b2fbd591327c06a4ea4f9", "type": "github" }, "original": { @@ -469,11 +469,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1732832104, - "narHash": "sha256-V+2uq4ziEDhUkfYZoxO9gofEeXvo/cVhHOJ51bSfBhk=", + "lastModified": 1733238461, + "narHash": "sha256-2YF0L0WdQhinTzrbGucb6rp03ZzCzWaximCqgLWKDiM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "02fe29395df8e5571291ebcc6114f94dd33f722b", + "rev": "1c26355e02ea8aa9bef6a7b3f59d74bd3c504c11", "type": "github" }, "original": { @@ -501,11 +501,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1732350895, - "narHash": "sha256-GcOQbOgmwlsRhpLGSwZJwLbo3pu9ochMETuRSS1xpz4=", + "lastModified": 1733120037, + "narHash": "sha256-En+gSoVJ3iQKPDU1FHrR6zIxSLXKjzKY+pnh9tt+Yts=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0c582677378f2d9ffcb01490af2f2c678dcb29d3", + "rev": "f9f0d5c5380be0a599b1fb54641fa99af8281539", "type": "github" }, "original": { @@ -791,11 +791,11 @@ }, "locked": { "dir": "nix", - "lastModified": 1732816683, - "narHash": "sha256-m2gGLcmUFdmgUFkIkTofB+8WoS91UTF+0B91WNc9M+k=", + "lastModified": 1732918908, + "narHash": "sha256-k43oaC+35/LGqJ+3MjIhn4Ko+ap3wTvHCJ4sj9W/o+k=", "owner": "wez", "repo": "wezterm", - "rev": "a7ff718c7c182d62d7c848187da1655e58b8ecd8", + "rev": "4906789a6d61da58f73b95f89b59c41af60e0f3b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index eb55067c..0c1a0e4a 100644 --- a/flake.nix +++ b/flake.nix @@ -136,7 +136,7 @@ home-manager.nixosModules.home-manager kmonad.nixosModules.default xynoblog.nixosModule - lolpizza.nixosModule + # lolpizza.nixosModule x.nixosModule ({ config, ... }: lib.mkMerge [{ nixpkgs.pkgs = pkgs; diff --git a/hm-modules/helix/default.nix b/hm-modules/helix/default.nix index c5699f49..0298b861 100644 --- a/hm-modules/helix/default.nix +++ b/hm-modules/helix/default.nix @@ -9,7 +9,7 @@ in jsonnet-language-server jsonnet nixpkgs-fmt - omnisharp-roslyn + # omnisharp-roslyn ## ts nodePackages_latest.prettier typescript diff --git a/hosts/ds9/containers.nix b/hosts/ds9/containers.nix index 63ef78fe..68c1dae5 100644 --- a/hosts/ds9/containers.nix +++ b/hosts/ds9/containers.nix @@ -173,6 +173,16 @@ in "nodered-data:/data" ]; }; + virtualisation.oci-containers.containers.jellyfin = { + image = "jellyfin/jellyfin:latest"; + user = "1000:100"; + extraOptions = [ "--network=podman" "--mount" "type=bind,source=/data/media,destination=/media,ro=true,relabel=private"]; + volumes = [ + "jellyfin-config:/config" + "jellyfin-cache:/cache" + ]; + }; + } diff --git a/hosts/ds9/default.nix b/hosts/ds9/default.nix index 5d3b4699..c303a435 100644 --- a/hosts/ds9/default.nix +++ b/hosts/ds9/default.nix @@ -198,6 +198,14 @@ in handle @bzzt { reverse_proxy http://127.0.0.1:5002 } + @jellyfin host j.hailsatan.eu + handle @jellyfin { + reverse_proxy http://jellyfin:8096 { + transport http { + resolvers 10.88.0.1 # podman dns + } + } + } handle { abort } diff --git a/hosts/theseus/builtin.kbd b/hosts/theseus/builtin.kbd index f43cd4f5..3e8fec05 100644 --- a/hosts/theseus/builtin.kbd +++ b/hosts/theseus/builtin.kbd @@ -45,8 +45,8 @@ (deflayer colemak-dh esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 grv 1 2 3 4 5 6 7 8 9 0 - = bspc - tab (tap-hold-next-release 200 :grace 15 q @num) w f p b j l u y (tap-hold-next-release 200 :grace 15 ; @num) [ ] - esc (tap-hold-next-release 200 :grace 15 a lctrl) (tap-hold-next-release 200 :grace 15 r ralt) (tap-hold-next-release 200 :grace 15 s lmet) t g m n (tap-hold-next-release 200 :grace 15 e rmet) (tap-hold-next-release 200 :grace 15 i lalt) (tap-hold-next-release 200 :grace 15 o rctrl) ' \\ ret + tab q w f p b j l u y ; [ ] + esc (tap-hold-next-release 200 a lctrl) (tap-hold-next-release 200 r ralt) (tap-hold-next-release 200 s lmet) t g m n (tap-hold-next-release 200 e rmet) (tap-hold-next-release 200 i lalt) (tap-hold-next-release 200 o rctrl) ' \\ ret lsft z x c d v 102d k h , . / rsft lctl lmet lalt spc ralt rmet _ _ ) diff --git a/hosts/theseus/default.nix b/hosts/theseus/default.nix index 604c07be..b05f77c7 100644 --- a/hosts/theseus/default.nix +++ b/hosts/theseus/default.nix @@ -10,20 +10,47 @@ ../../nixos-modules/system/agenix.nix ../../nixos-modules/system/persist.nix ../../nixos-modules/user + # ./gnome.nix ]; # For mount.cifs, required unless domain name resolution is not needed. environment.systemPackages = [ pkgs.cifs-utils ]; + nix.extraOptions = # devenv + '' + trusted-users = root ragon + ''; - ragon.agenix.secrets.smbSecrets = { }; - fileSystems."/data" = { - device = "//ds9.kangaroo-galaxy.ts.net/data"; - fsType = "cifs"; - options = let - automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users"; - in ["${automount_opts},credentials=${config.age.secrets.smbSecrets.path},uid=1000,gid=100"]; + hardware.keyboard.zsa.enable = true; + + xdg.portal = { + enable = true; + wlr.enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; + config = { + river = { + "org.freedesktop.impl.portal.Secret" = [ + "gnome-keyring" + ]; + default = [ + "gtk" + ]; + "org.freedesktop.impl.portal.Screenshot" = "wlr"; + "org.freedesktop.impl.portal.ScreenCast" = "wlr"; + }; + + + }; }; + ragon.agenix.secrets.smbSecrets = { }; + # fileSystems."/data" = { + # device = "//ds9.kangaroo-galaxy.ts.net/data"; + # fsType = "cifs"; + # options = let + # automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users"; + + # in ["${automount_opts},credentials=${config.age.secrets.smbSecrets.path},uid=1000,gid=100"]; + # }; # Don't Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.initrd.luks.devices.cryptroot.device = "/dev/disk/by-uuid/4cd8dbb3-8eea-48ff-87b1-92945be291ac"; @@ -41,17 +68,12 @@ programs.kdeconnect.enable = true; services.power-profiles-daemon.enable = true; services.printing.enable = true; - services.printing.drivers = with pkgs; [ gutenprint hplip splix ]; + programs.system-config-printer.enable = true; + services.printing.drivers = with pkgs; [ gutenprint hplip splix ptouch-driver ]; services.avahi.enable = true; programs.sway.extraSessionCommands = '' export NIXOS_OZONE_WL=1 ''; - xdg.portal = { - wlr.enable = true; - enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - configPackages = [ pkgs.xdg-desktop-portal-gtk ]; - }; # start bt hardware.bluetooth.enable = true; services.blueman.enable = true; @@ -77,10 +99,28 @@ dejavu_fonts source-code-pro # Default monospace font in 3.32 source-sans + b612 + ]; services.pipewire = { enable = true; + raopOpenFirewall = true; # airplay pulse.enable = true; + extraConfig.pipewire = { + "9-clock-allow-higher" = { + "context.properties" = { + "default.clock.allowed-rates" = [ "44100" "48000" "96000" "192000"]; + }; + }; + "10-raop-discover" = { + "context.modules" = [ + { + name = "libpipewire-module-raop-discover"; + args = {}; + } + ]; + }; + }; }; services.fwupd.enable = true; @@ -135,6 +175,9 @@ -- and finally, return the configuration to wezterm return config ''; + services.syncthing.enable = true; + services.syncthing.tray.enable = true; + services.syncthing.tray.command = "syncthingtray --wait"; home.packages = with pkgs; [ inputs.wezterm.packages.${pkgs.system}.default @@ -157,6 +200,9 @@ mixxx unstable.harsh libreoffice-qt6-fresh + inkscape + easyeffects + dune3d broot @@ -229,6 +275,7 @@ persist.enable = true; persist.extraDirectories = [ "/var/lib/bluetooth" + "/var/lib/flatpak" ]; services = { ssh.enable = true; diff --git a/hosts/theseus/gnome.nix b/hosts/theseus/gnome.nix new file mode 100644 index 00000000..1961b813 --- /dev/null +++ b/hosts/theseus/gnome.nix @@ -0,0 +1,16 @@ +{ pkgs, config, inputs, lib, ... }: +let + gnomeExtensions = with pkgs.gnomeExtensions; [ + paperwm + gsconnect + ]; + gnomeExtensionUuids = map (x: x.extensionUuid) gnomeExtensions; +in +{ + services.xserver.desktopManager.gnome.enable = true; + environment.systemPackages = gnomeExtensions; + home-manager.users.ragon.dconf.settings."org/gnome/shell" = { + "disable-user-extensions" = false; + enabled-extensions = gnomeExtensionUuids; + }; +} diff --git a/hosts/theseus/river.nix b/hosts/theseus/river.nix index ef403ff4..5cdfcba9 100644 --- a/hosts/theseus/river.nix +++ b/hosts/theseus/river.nix @@ -1,8 +1,8 @@ { lib, pkgs, config, inputs, ... }: let # backgroundImage = builtins.fetchurl { - # url = "https://gruvbox-wallpapers.pages.dev/wallpapers/anime/wallhaven-2e2xyx.jpg"; - # sha256 = "1zw1a8x20bp9mn9lx18mxzgzvzi02ss57r4q1lc9f14fsmzphnlq"; + # url = "https://gruvbox-wallpapers.pages.dev/wallpapers/anime/wallhaven-2e2xyx.jpg"; + # sha256 = "1zw1a8x20bp9mn9lx18mxzgzvzi02ss57r4q1lc9f14fsmzphnlq"; # }; backgroundImage = "/home/ragon/Pictures/background.jpg"; in @@ -44,11 +44,6 @@ in }; }; - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; - configPackages = with pkgs; [ xdg-desktop-portal-gtk ]; - }; programs.waybar = { enable = true; systemd.enable = true; @@ -57,7 +52,7 @@ in * { /* `otf-font-awesome` is required to be installed for icons */ font-family: "Source Sans Pro Nerd Font"; - font-size: 13px; + font-size: 12px; } window#waybar { @@ -92,7 +87,7 @@ window#waybar.chromium { }*/ #tags button { - padding: 0 5px; + padding: 0 2px; background-color: #282828; color: #ebdbb2; /* Use box-shadow instead of border so the text isn't offset */ @@ -103,7 +98,7 @@ window#waybar.chromium { } /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ -#workspaces button:hover { +#tags button:hover { background: rgba(0, 0, 0, 0.2); /* box-shadow: inset 0 -3px #fbf1c7; */ @@ -146,7 +141,7 @@ window#waybar.chromium { #custom-poweroff, #custom-suspend, #mpd { - padding: 0 5px; + padding: 0 2px; background-color: #282828; color: #ebdbb2; } @@ -154,7 +149,7 @@ window#waybar.chromium { #window, #workspaces, #tags { - margin: 0 4px; + margin: 0 2px; } /* If workspaces is the leftmost module, omit left margin */ @@ -167,16 +162,13 @@ window#waybar.chromium { margin-right: 0; } -#clock { - color: #8ec07c; -} #battery { color: #d3869b; } #battery.charging, #battery.plugged { - color: #d3869b; + color: #98971a; } @keyframes blink { @@ -214,31 +206,30 @@ label:focus { } #memory { - color: #b8bb26; + color: #FCF434; /* enby yellow */ +} +#disk { + color: #FFFFFF; /* enby white */ +} +#network { + color: #9C59D1; /* enby purple */ +} +#clock { + color: #000000; + /*color: #2C2C2C; enby black */ } -#network { - color: #fb4934; -} #network.disconnected { background-color: #fbf1c7; color: #9d0006; } -/*#disk { - background-color: #964B00; -}*/ -#pulseaudio { +#wireplumber { color: #fe8019; } -#pulseaudio.muted { - background-color: #fbf1c7; - color: #af3a03; -} - #tray { } @@ -317,44 +308,79 @@ label:focus { layer = "top"; position = "top"; height = 15; - modules-left = [ "river/tags" "river/layout" "tray"]; - modules-center = [ "river/window" ]; - modules-right = [ "wireplumber" "upower" "backlight" "cpu" "temperature" "memory" "disk" "custom/tailscale" "network" "clock" ]; + modules-left = [ "river/tags" "river/layout" "river/window" ]; + modules-right = [ "tray" "power_profiles_daemon" "idle_inhibitor" "wireplumber" "battery" "backlight" "cpu" "temperature" "memory" "disk" "custom/tailscale" "network" "clock" ]; "river/window" = { max-length = 40; }; wireplumber = { - "format" = "{volume}% {icon}"; - "format-muted" = ""; + "format" = "{icon} {volume}%"; + "format-muted" = " MUTE"; "on-click" = "${pkgs.pwvucontrol}/bin/pwvucontrol"; - "on-right-click" = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + "on-click-right" = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; "format-icons" = [ "" "" "" ]; }; "backlight" = { "device" = "amdgpu_bl1"; - "format" = "{percent}% {icon}"; - "format-icons" = [ "" "" ]; + "format" = "{icon} {percent}%"; + "format-icons" = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ]; "on-scroll-up" = "${pkgs.brightnessctl}/bin/brightnessctl s +10"; "on-scroll-down" = "${pkgs.brightnessctl}/bin/brightnessctl s 10-"; }; + "idle_inhibitor" = { + format = "{icon} "; + format-icons = { + "activated" = "󰅶"; + "deactivated" = "󰾪"; + }; + }; + battery = { + "states" = { + "warning" = 30; + "critical" = 15; + }; + "format" = "{icon} {capacity}%"; + "format-icons" = [ "" "" "" "" "" ]; + "tooltip-format" = "Capacity: {capacity}%\nPower Draw: {power:0.2f}W\n{timeTo}\nCycles: {cycles}"; + "max-length" = 25; + }; "cpu" = { "interval" = 10; - "format" = "{:0.0f}% "; + "format" = " {:0.0f}%"; "max-length" = 10; }; "temperature" = { - "format" = "{temperatureC}°C "; + "format" = " {temperatureC}°C"; }; memory = { interval = 30; - format = "{used:0.0f}/{total:0.0f} GB "; + format = " {used:0.0f}/{total:0.0f}GB"; }; clock = { interval = 1; format = "{:%Y-%m-%dT%H:%M:%S%z}"; + "tooltip-format" = "{calendar}"; + "calendar" = { + "mode" = "year"; + "mode-mon-col" = 3; + "weeks-pos" = "right"; + "on-scroll" = 1; + "format" = { + "months" = "{}"; + "days" = "{}"; + "weeks" = "W{}"; + "weekdays" = "{}"; + "today" = "{}"; + }; + }; + "actions" = { + "on-click-right" = "mode"; + "on-scroll-up" = "shift_up"; + "on-scroll-down" = "shift_down"; + }; }; disk = { - format = "{specific_used:0.0f}/{specific_total:0.0f} GB 󰋊"; + format = "󰋊 {specific_used:0.0f}/{specific_total:0.0f}GB"; unit = "GB"; path = "/persistent"; }; @@ -369,12 +395,12 @@ label:focus { }; "network" = { "format" = "{ifname}"; - "format-wifi" = "{essid} ({signalStrength}%) "; - "format-ethernet" = "{ipaddr}/{cidr} 󰊗"; - "format-disconnected" = ""; - "tooltip-format" = "{ifname} via {gwaddr} 󰊗"; - "tooltip-format-wifi" = "{essid} ({signalStrength}%) "; - "tooltip-format-ethernet" = "{ifname} "; + "format-wifi" = "󰖩 {essid}"; + "format-ethernet" = "󰈀 {ifname}"; + "format-disconnected" = "󰖪"; + "tooltip-format" = "{ifname} via {gwaddr}\n{ipaddr}/{cidr}"; + "tooltip-format-wifi" = "{essid} ({signaldBm} dBm) {frequency} GHz\n{ipaddr}/{cidr}"; + "tooltip-format-ethernet" = "{ifname}\n{ipaddr}/{cidr}"; "tooltip-format-disconnected" = "Disconnected"; "max-length" = 50; }; @@ -518,9 +544,13 @@ label:focus { keyboard-layout = "eu"; xcursor-theme = "Adwaita"; default-layout = "rivertile"; + rule-add = { + "-title 'Picture-in-Picture'" = "float"; + "-app-id 'com.saivert.pwvucontrol'" = "float"; + }; }; extraConfig = '' - rivertile -view-padding 3 -outer-padding 3 & + rivertile -view-padding 0 -outer-padding 0 & swayidle \ timeout 300 'swaylock -i ${backgroundImage}' \ timeout 600 'wlopm --off \*' resume 'wlopm --on \*' \ diff --git a/hosts/theseus/work.nix b/hosts/theseus/work.nix index 5b013a91..794c864a 100644 --- a/hosts/theseus/work.nix +++ b/hosts/theseus/work.nix @@ -1,8 +1,9 @@ { config, pkgs, lib, ... }: { home.packages = [ - pkgs.dotnet-sdk_8 - pkgs.jetbrains.rider - pkgs.jetbrains.datagrip + # pkgs.dotnet-sdk_8 + pkgs.unstable.dotnet-sdk_9 + pkgs.unstable.jetbrains.rider + # pkgs.jetbrains.datagrip (pkgs.firefox-devedition.overrideAttrs (super: self: { meta.priority = 1; })) ];