diff options
Diffstat (limited to '')
| -rw-r--r-- | flake.lock | 90 | ||||
| -rw-r--r-- | flake.nix | 4 | ||||
| -rw-r--r-- | home/apps/caelestia/default.nix | 17 | ||||
| -rw-r--r-- | home/apps/caelestia/scheme.nix | 156 | ||||
| -rw-r--r-- | home/apps/caelestia/settings.nix | 387 | ||||
| -rw-r--r-- | home/browsers/firefox/default.nix | 5 | ||||
| -rw-r--r-- | home/default.nix | 5 | ||||
| -rw-r--r-- | home/desktops/default.nix | 5 | ||||
| -rw-r--r-- | home/desktops/hyprland/default.nix | 1 | ||||
| -rw-r--r-- | hosts/shinji/default.nix | 1 | ||||
| -rw-r--r-- | hosts/shinji/hardware.nix | 7 | ||||
| -rw-r--r-- | lib/default.nix | 11 | ||||
| -rw-r--r-- | pkgs/arcanist/default.nix | 59 | ||||
| -rw-r--r-- | pkgs/default.nix | 9 | ||||
| -rw-r--r-- | pkgs/wine-wow-yabridge/default.nix | 6 | ||||
| -rw-r--r-- | pkgs/yabridge/default.nix | 7 | ||||
| -rw-r--r-- | pkgs/yabridgectl/default.nix | 7 | ||||
| -rw-r--r-- | shells/cuda.nix | 1 | ||||
| -rw-r--r-- | shells/default.nix | 1 | ||||
| -rw-r--r-- | shells/vst.nix | 9 | ||||
| -rw-r--r-- | system/default.nix | 20 | ||||
| -rw-r--r-- | system/desktop.nix | 6 | ||||
| -rw-r--r-- | system/desktops/hyprland.nix | 6 | ||||
| -rw-r--r-- | system/desktops/sway.nix | 6 | ||||
| -rw-r--r-- | system/desktops/wayland.nix | 6 |
25 files changed, 455 insertions, 377 deletions
@@ -15,11 +15,11 @@ "sf-pro": "sf-pro" }, "locked": { - "lastModified": 1758228441, - "narHash": "sha256-3mA9oFuhJ1EHyhPd17g/EuJi4jDYPGhyxkEitdh3Kmc=", + "lastModified": 1768432053, + "narHash": "sha256-4zbGxDTG82KL8aGj7HOlx984eSHpWzGiN/vBBYKd2DE=", "owner": "Lyndeno", "repo": "apple-fonts.nix", - "rev": "aba9944f6606a69ebedf7bfb723316139eec3f72", + "rev": "00ee0281a803e545a8d7fc3ecee06aa27d3ae84c", "type": "github" }, "original": { @@ -116,11 +116,11 @@ ] }, "locked": { - "lastModified": 1768006439, - "narHash": "sha256-OpCihP2RndUI20xzBgysN8kOjl4bzN/GMsbn3c3FJx4=", + "lastModified": 1768340025, + "narHash": "sha256-DocxpscHG9OKhGnFtC8KI9EtYxT0nRaQBImLNWe2j0A=", "ref": "refs/heads/main", - "rev": "9c6aea03b58ead9044184724613ea1baa2a3cd35", - "revCount": 1728, + "rev": "fe45fb95bac47ca80cbaf661007f29b70f87a0b1", + "revCount": 1734, "type": "git", "url": "https://g.freya.cat/caelestia-shell" }, @@ -258,11 +258,11 @@ ] }, "locked": { - "lastModified": 1767619743, - "narHash": "sha256-N0kK1JqxIjFl7hPAfhkW6C9AO7feYJUWLPyqJO2VuQQ=", + "lastModified": 1768530555, + "narHash": "sha256-EBXKDho4t1YSgodAL6C8M3UTm8MGMZNQ9rQnceR5+6c=", "owner": "nix-community", "repo": "home-manager", - "rev": "a65c04965c841eb01ba401f5162f12bc8d52014f", + "rev": "d21bee5abf9fb4a42b2fa7728bf671f8bb246ba6", "type": "github" }, "original": { @@ -279,16 +279,16 @@ ] }, "locked": { - "lastModified": 1766381032, - "narHash": "sha256-Wuk2MULnGfgAbP1N/Rp6H6k7zG/ynDiy54mPvkt/4bM=", + "lastModified": 1767957561, + "narHash": "sha256-N0kFdc6tSE0yFeQ/Iit3KNrz4nf2K5xvP3juL7SUyhc=", "owner": "outfoxxed", "repo": "hy3", - "rev": "50643d625829f303239f9ec019021f17d7e9f3fc", + "rev": "3287049e79e9e51431de8c09f9192a18afa1bf35", "type": "github" }, "original": { "owner": "outfoxxed", - "ref": "master", + "ref": "hl0.53.0", "repo": "hy3", "type": "github" } @@ -370,16 +370,16 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1767021696, - "narHash": "sha256-q365S7ePBQStSDPEzssCU14TzRqdKzEdh0+0rR2KDnU=", + "lastModified": 1767388857, + "narHash": "sha256-h70Tlpce8NEkwWqw/DDpeOKPzPyfq7P2t0HtGM5Z3Cw=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "ea444c35bb23b6e34505ab6753e069de7801cc25", + "rev": "ab1d80f3d6aebd57a0971b53a1993b1c1dfe0b09", "type": "github" }, "original": { "owner": "hyprwm", - "ref": "v0.53.0", + "ref": "v0.53.1", "repo": "Hyprland", "type": "github" } @@ -655,11 +655,11 @@ ] }, "locked": { - "lastModified": 1767570455, - "narHash": "sha256-Yw2sx8d41ef79QWvdYP4i4fGNflTlE2zKXSah+AiKIQ=", + "lastModified": 1768536494, + "narHash": "sha256-HI383ZAczx9HWS24ggdzEpqe8oLhqC/qSL/R7BxUBqg=", "owner": "cynicsketch", "repo": "nix-mineral", - "rev": "22ea24a2b82729c118c2235f068d12151aaf5387", + "rev": "ae25a496714998203d01531830d3abf3015322a3", "type": "github" }, "original": { @@ -670,11 +670,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1767185284, - "narHash": "sha256-ljDBUDpD1Cg5n3mJI81Hz5qeZAwCGxon4kQW3Ho3+6Q=", + "lastModified": 1768584846, + "narHash": "sha256-IRPmIOV2tPwxbhP/I9M5AmwhTC0lMPtoPStC+8T6xl0=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "40b1a28dce561bea34858287fbb23052c3ee63fe", + "rev": "cce68f4a54fa4e3d633358364477f5cc1d782440", "type": "github" }, "original": { @@ -692,11 +692,11 @@ ] }, "locked": { - "lastModified": 1765841014, - "narHash": "sha256-55V0AJ36V5Egh4kMhWtDh117eE3GOjwq5LhwxDn9eHg=", + "lastModified": 1768404695, + "narHash": "sha256-eT3dNE2CQYcPDHaeRZAEFrZ0BmMq2wLxMp7hCmzOZBA=", "owner": "nix-community", "repo": "nixos-wsl", - "rev": "be4af8042e7a61fa12fda58fe9a3b3babdefe17b", + "rev": "d0d3636b9d174c4558e3bbb18e194d970505fed8", "type": "github" }, "original": { @@ -707,11 +707,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1767379071, - "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", + "lastModified": 1768305791, + "narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fb7944c166a3b630f177938e478f0378e64ce108", + "rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e", "type": "github" }, "original": { @@ -779,11 +779,11 @@ ] }, "locked": { - "lastModified": 1767113149, - "narHash": "sha256-T4NvkU3N+2i41UENu9RuMYLJZSLE/CNuGGJEKsWXmrg=", + "lastModified": 1768356181, + "narHash": "sha256-lYx273nqNC1EslejL/yvf+ZJK+yApeUckibbpTyzxoM=", "owner": "miguel-b-p", "repo": "preload-ng", - "rev": "eb3c66a20d089ab2e3b8ff34c45c3d527584ed38", + "rev": "b2274bfa70f86c649ba4bddd5fd21c82ffccebe3", "type": "github" }, "original": { @@ -799,11 +799,11 @@ ] }, "locked": { - "lastModified": 1767949765, - "narHash": "sha256-sb9X1evrQI2+4qmYCCAHMSiJFqj4eAuZp5BwYrOiJmA=", + "lastModified": 1768549203, + "narHash": "sha256-DxN7v8g8DO8gGJmgBJMo3fsSR3HEs+DFCXeKeHq61zA=", "ref": "refs/heads/master", - "rev": "eecc2f88b3b12a672df79e74f2bd49ef65f0abdf", - "revCount": 721, + "rev": "d03c59768c680f052dff6e7a7918bbf990b0f743", + "revCount": 727, "type": "git", "url": "https://git.outfoxxed.me/outfoxxed/quickshell" }, @@ -885,7 +885,7 @@ "sf-compact": { "flake": false, "locked": { - "narHash": "sha256-WeqT80cdK/XzTLSaJs5DHodzxoeAzwL/xTgdq0YwQbM=", + "narHash": "sha256-xIYPQ27C7wAAfN4Lm+3pXE7GGNO5ZgKGFRjr6WX5xlM=", "type": "file", "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg" }, @@ -933,7 +933,7 @@ "sf-pro": { "flake": false, "locked": { - "narHash": "sha256-vprahHpCUf9O8RualBrEuLEfuLfzI/2d8AQmwlCGPPk=", + "narHash": "sha256-vxaW2oTdf7EuraHvdkF6JUfC580p56TgpquNw+GQDbQ=", "type": "file", "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg" }, @@ -949,11 +949,11 @@ ] }, "locked": { - "lastModified": 1767499857, - "narHash": "sha256-0zUU/PW09d6oBaR8x8vMHcAhg1MOvo3CwoXgHijzzNE=", + "lastModified": 1768481291, + "narHash": "sha256-NjKtkJraCZEnLHAJxLTI+BfdU//9coAz9p5TqveZwPU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "ecc41505948ec2ab0325f14c9862a4329c2b4190", + "rev": "e085e303dfcce21adcb5fec535d65aacb066f101", "type": "github" }, "original": { @@ -1112,11 +1112,11 @@ ] }, "locked": { - "lastModified": 1767568852, - "narHash": "sha256-6s8hL3YX9zAq2T7qvcwwzaEVwc9MEYbW+C2LcAAQfbk=", + "lastModified": 1768379550, + "narHash": "sha256-z94S29l5V86h11LZbPIMbHTJyksDG63aqISsZkTTuJY=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "350c729b261e6f5529460140a5f0943dd4c5e156", + "rev": "06f61b4e4f4f6ba8027c96a5611c63dc0db12b90", "type": "github" }, "original": { @@ -8,13 +8,13 @@ home-manager.url = "github:nix-community/home-manager/master"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # hyprland - hyprland.url = "github:hyprwm/Hyprland/v0.53.0"; + hyprland.url = "github:hyprwm/Hyprland/v0.53.1"; hyprland.inputs.nixpkgs.follows = "nixpkgs"; # hyprland plugins hyprland-plugins.url = "github:hyprwm/hyprland-plugins/v0.53.0"; hyprland-plugins.inputs.hyprland.follows = "hyprland"; # hyprland hy3 - hy3.url = "github:outfoxxed/hy3/master"; + hy3.url = "github:outfoxxed/hy3/hl0.53.0"; hy3.inputs.hyprland.follows = "hyprland"; # sops sops-nix.url = "github:Mic92/sops-nix"; diff --git a/home/apps/caelestia/default.nix b/home/apps/caelestia/default.nix index 4693f67..e2e5e96 100644 --- a/home/apps/caelestia/default.nix +++ b/home/apps/caelestia/default.nix @@ -1,8 +1,11 @@ { lib, inputs, + config, ... }: let + inherit (lib) mkIf; + cfg = config.apps.caelestia; in { imports = [ inputs.caelestia-shell.homeManagerModules.default @@ -10,12 +13,14 @@ in { ./scheme.nix ]; - default.appLauncher = lib.mkOverride 600 "caelestia-shell ipc call drawers toggle launcher"; - default.lockScreen = lib.mkOverride 600 "caelestia-shell ipc call lock lock"; + config = mkIf cfg.enable { + default.appLauncher = lib.mkOverride 600 "caelestia-shell ipc call drawers toggle launcher"; + default.lockScreen = lib.mkOverride 600 "caelestia-shell ipc call lock lock"; - programs.caelestia = { - enable = true; - systemd.enable = true; - cli.enable = true; + programs.caelestia = { + enable = true; + systemd.enable = true; + cli.enable = true; + }; }; } diff --git a/home/apps/caelestia/scheme.nix b/home/apps/caelestia/scheme.nix index ffb46c6..b454b78 100644 --- a/home/apps/caelestia/scheme.nix +++ b/home/apps/caelestia/scheme.nix @@ -3,84 +3,88 @@ config, ... }: let + inherit (lib) mkIf; + cfg = config.apps.caelestia; theme = config.theme.colors; in { - xdg.configFile."caelestia/scheme.json".text = lib.generators.toJSON {} { - name = theme.name; - flavour = ""; - mode = "dark"; - variant = ""; - colours = { - primary_paletteKeyColor = theme.primary; - secondary_paletteKeyColor = theme.secondary; - tertiary_paletteKeyColor = theme.tertiary; - neutral_paletteKeyColor = theme.overlay; - neutral_variant_paletteKeyColor = "777680"; - background = theme.base; - onBackground = theme.text; - surface = theme.surface; - surfaceDim = theme.base; - surfaceBright = theme.overlay; - surfaceContainerLowest = theme.base; - surfaceContainerLow = theme.base; - surfaceContainer = theme.base; - surfaceContainerHigh = theme.surface; - surfaceContainerHighest = theme.overlay; - onSurface = theme.text; - surfaceVariant = theme.text; - onSurfaceVariant = theme.subtext; - inverseSurface = theme.text; - inverseOnSurface = theme.surface; - outline = theme.primary; - outlineVariant = theme.primary; - shadow = "000000"; - scrim = "000000"; - surfaceTint = theme.primary; - primary = theme.primary; - onPrimary = theme.surface; - primaryContainer = theme.primary; - onPrimaryContainer = theme.surface; - inversePrimary = theme.surface; - secondary = theme.secondary; - onSecondary = theme.surface; - secondaryContainer = theme.secondary; - onSecondaryContainer = theme.surface; - tertiary = theme.tertiary; - onTertiary = theme.surface; - tertiaryContainer = theme.tertiary; - onTertiaryContainer = theme.surface; - error = theme.error; - onError = theme.text; - errorContainer = theme.error; - onErrorContainer = theme.text; - primaryFixed = theme.primary; - primaryFixedDim = theme.primary; - onPrimaryFixed = theme.primary; - onPrimaryFixedVariant = theme.primary; - secondaryFixed = theme.secondary; - secondaryFixedDim = theme.primary; - onSecondaryFixed = theme.secondary; - onSecondaryFixedVariant = theme.secondary; - tertiaryFixed = theme.tertiary; - tertiaryFixedDim = theme.tertiary; - onTertiaryFixed = theme.tertiary; - onTertiaryFixedVariant = theme.tertiary; - term0 = theme.normal.black; - term1 = theme.normal.red; - term2 = theme.normal.green; - term3 = theme.normal.yellow; - term4 = theme.normal.blue; - term5 = theme.normal.magenta; - term6 = theme.normal.cyan; - term7 = theme.normal.white; - term8 = theme.bright.black; - term9 = theme.bright.red; - term10 = theme.bright.green; - term11 = theme.bright.yellow; - term12 = theme.bright.blue; - term13 = theme.bright.magenta; - term14 = theme.bright.cyan; - term15 = theme.bright.white; + config = mkIf cfg.enable { + xdg.configFile."caelestia/scheme.json".text = lib.generators.toJSON {} { + name = theme.name; + flavour = ""; + mode = "dark"; + variant = ""; + colours = { + primary_paletteKeyColor = theme.primary; + secondary_paletteKeyColor = theme.secondary; + tertiary_paletteKeyColor = theme.tertiary; + neutral_paletteKeyColor = theme.overlay; + neutral_variant_paletteKeyColor = "777680"; + background = theme.base; + onBackground = theme.text; + surface = theme.surface; + surfaceDim = theme.base; + surfaceBright = theme.overlay; + surfaceContainerLowest = theme.base; + surfaceContainerLow = theme.base; + surfaceContainer = theme.base; + surfaceContainerHigh = theme.surface; + surfaceContainerHighest = theme.overlay; + onSurface = theme.text; + surfaceVariant = theme.text; + onSurfaceVariant = theme.subtext; + inverseSurface = theme.text; + inverseOnSurface = theme.surface; + outline = theme.primary; + outlineVariant = theme.primary; + shadow = "000000"; + scrim = "000000"; + surfaceTint = theme.primary; + primary = theme.primary; + onPrimary = theme.surface; + primaryContainer = theme.primary; + onPrimaryContainer = theme.surface; + inversePrimary = theme.surface; + secondary = theme.secondary; + onSecondary = theme.surface; + secondaryContainer = theme.secondary; + onSecondaryContainer = theme.surface; + tertiary = theme.tertiary; + onTertiary = theme.surface; + tertiaryContainer = theme.tertiary; + onTertiaryContainer = theme.surface; + error = theme.error; + onError = theme.text; + errorContainer = theme.error; + onErrorContainer = theme.text; + primaryFixed = theme.primary; + primaryFixedDim = theme.primary; + onPrimaryFixed = theme.primary; + onPrimaryFixedVariant = theme.primary; + secondaryFixed = theme.secondary; + secondaryFixedDim = theme.primary; + onSecondaryFixed = theme.secondary; + onSecondaryFixedVariant = theme.secondary; + tertiaryFixed = theme.tertiary; + tertiaryFixedDim = theme.tertiary; + onTertiaryFixed = theme.tertiary; + onTertiaryFixedVariant = theme.tertiary; + term0 = theme.normal.black; + term1 = theme.normal.red; + term2 = theme.normal.green; + term3 = theme.normal.yellow; + term4 = theme.normal.blue; + term5 = theme.normal.magenta; + term6 = theme.normal.cyan; + term7 = theme.normal.white; + term8 = theme.bright.black; + term9 = theme.bright.red; + term10 = theme.bright.green; + term11 = theme.bright.yellow; + term12 = theme.bright.blue; + term13 = theme.bright.magenta; + term14 = theme.bright.cyan; + term15 = theme.bright.white; + }; }; }; } diff --git a/home/apps/caelestia/settings.nix b/home/apps/caelestia/settings.nix index 35ecf9b..fbde95d 100644 --- a/home/apps/caelestia/settings.nix +++ b/home/apps/caelestia/settings.nix @@ -1,207 +1,224 @@ -{config, ...}: { - programs.caelestia = { - settings = { - # Look - appearance = { - # Animations - anim = { - durations = { - scale = 1; +{ + config, + lib, + ... +}: let + inherit (lib) mkIf; + cfg = config.apps.caelestia; +in { + config = mkIf cfg.enable { + programs.caelestia = { + settings = { + # Look + appearance = rec { + # Rounding + rounding = let + inner = config.theme.innerRadius; + outer = config.theme.outerRadius; + in { + small = inner; + normal = outer; + large = outer + outer; + full = 1000; }; - }; - - # Font - font = { - size.scale = 1; - }; - # Padding - padding.scale = 1; - rounding.scale = 1; - spacing.scale = 1; - transparency = { - enabled = true; - base = config.theme.opacity; - layers = 1; - }; - }; + # Spacing + spacing = let + diff = 5; + in { + small = padding.small + diff; + smaller = padding.smaller + diff; + normal = padding.normal + diff; + larger = padding.larger + diff; + large = padding.large + diff; + }; - # Settings - general = { - # What apps to launch - apps = { - terminal = config.default.terminal; - audio = ["pavucontrol"]; - playback = ["mpv"]; - }; + # Padding + padding = let + inner = config.theme.innerGap; + outer = config.theme.outerGap; + avg = builtins.div (outer + inner) 2; + in { + small = inner; + smaller = avg; + normal = outer; + larger = outer + inner; + large = outer + avg; + }; - # I need this, am bad at plugging in le juicer - battery = { - warnLevels = [ - { - level = 20; - title = "Low battery"; - message = "You might want to plug in a charget"; - icon = "battery_android_frame_2"; - } - { - level = 10; - title = "Did you see the previous message?"; - message = "You should probably plug in a charger <b>now</b>"; - icon = "battery_android_frame_1"; - critical = true; - } - { - level = 5; - title = "Critical battery level"; - message = "PLUG THE CHARGER RIGHT NOW!!"; - icon = "battery_android_alert"; - critical = true; - } - ]; - criticalLevel = 5; - }; - }; + # Fontsize + font.size = let + base = config.theme.font.size; + in { + small = base - 2; + smaller = base - 1; + normal = base; + larger = base + 2; + large = base + 5; + extraLarge = base + 15; + }; - # Background - background = { - enabled = true; - desktopClock.enabled = false; - }; - paths = { - wallpaper = config.theme.wallpaper; - }; + # Animations + anim = { + durations = { + scale = 1; + }; + }; - # Bar - bar = { - clock.showIcon = true; - dragThreshold = 20; - entries = - map (id: { - inherit id; + # Transparency + transparency = { enabled = true; - }) [ - "workspaces" - "spacer" - "activeWindow" - "spacer" - "tray" - "clock" - "statusIcons" - "power" - ]; - persistent = true; - popouts = { - activeWindow = true; - statusIcons = true; - tray = true; - }; - scrollActions = { - brightness = true; - workspaces = true; - volume = true; - }; - showOnHover = true; - status = { - showAudio = false; - showBattery = true; - showBluetooth = true; - showKbLayout = false; - showMicrophone = false; - showNetwork = true; - showLockStatus = false; - }; - tray = { - background = false; - compact = false; - iconSubs = []; - recolour = false; + base = config.theme.opacity; + layers = 1; + }; }; - workspaces = { - activeIndicator = true; - activeTrail = false; - perMonitorWorkspaces = true; - showWindows = false; - shown = 9; - label = ""; - occupiedLabel = ""; - activeLabel = ""; + + # Settings + general = { + # What apps to launch + apps = { + terminal = config.default.terminal; + audio = ["pavucontrol"]; + playback = ["mpv"]; + }; }; - border = { - rounding = 25; - thickness = 10; + + # Background + background.enabled = true; + paths = { + wallpaper = config.theme.wallpaper; }; - dashboard = { - enabled = true; - dragThreshold = 50; - mediaUpdateInterval = 500; + + # Bar + bar = { + clock.showIcon = true; + dragThreshold = 20; + entries = + map (id: { + inherit id; + enabled = true; + }) [ + "workspaces" + "spacer" + "activeWindow" + "spacer" + "tray" + "clock" + "statusIcons" + "power" + ]; + persistent = true; + popouts = { + activeWindow = true; + statusIcons = true; + tray = true; + }; + scrollActions = { + brightness = true; + workspaces = true; + volume = true; + }; showOnHover = true; + status = { + showAudio = false; + showBattery = true; + showBluetooth = true; + showKbLayout = false; + showMicrophone = false; + showNetwork = true; + showLockStatus = false; + }; + tray = { + background = false; + compact = false; + iconSubs = []; + recolour = false; + }; + workspaces = { + activeIndicator = true; + activeTrail = false; + perMonitorWorkspaces = true; + showWindows = false; + shown = 9; + label = ""; + occupiedLabel = ""; + activeLabel = ""; + }; + border = { + rounding = config.theme.outerRadius; + thickness = config.theme.outerGap; + }; + dashboard = { + enabled = true; + dragThreshold = 50; + mediaUpdateInterval = 500; + showOnHover = true; + }; }; - }; - # Notifications - notifs = { - actionOnClick = true; - clearThreshold = 0.3; - defaultExpireTimeout = 5000; - expandThreshold = 20; - openExpanded = false; - expire = true; - }; + # Notifications + notifs = { + actionOnClick = true; + clearThreshold = 0.3; + defaultExpireTimeout = 5000; + expandThreshold = 20; + openExpanded = false; + expire = true; + }; - # On screen display - osd = { - enabled = true; - enableBrightness = true; - enableMicrophone = false; - hideDelay = 2000; - }; + # On screen display + osd = { + enabled = true; + enableBrightness = true; + enableMicrophone = false; + hideDelay = 2000; + }; - # Services - services = { - audioIncrement = 0.1; - brightnessIncrement = 0.1; - maxVolume = 1.0; - weatherLocation = "43.15,-77.60"; - useFahrenheit = false; - useTwelveHourClock = false; - }; + # Services + services = { + audioIncrement = 0.1; + brightnessIncrement = 0.1; + maxVolume = 1.0; + useFahrenheit = false; + useTwelveHourClock = false; + }; - # Logout / shutdown - session = { - dragThreshold = 30; - enabled = true; - vimKeybinds = false; - commands = { - logout = ["loginctl" "terminate-user" ""]; - shutdown = ["systemctl" "poweroff"]; - hibernate = ["systemctl" "hibernate"]; - reboot = ["systemctl" "reboot"]; + # Logout / shutdown + session = { + dragThreshold = 30; + enabled = true; + vimKeybinds = false; + commands = { + logout = ["loginctl" "terminate-user" ""]; + shutdown = ["systemctl" "poweroff"]; + hibernate = ["systemctl" "hibernate"]; + reboot = ["systemctl" "reboot"]; + }; }; - }; - # Sidebar - sidebar = { - dragThreshold = 80; - enabled = true; - }; + # Sidebar + sidebar = { + dragThreshold = 80; + enabled = true; + }; - # idk - utilities = { - enabled = true; - maxToasts = 4; - toasts = { - audioInputChanged = true; - audioOutputChanged = true; - capsLockChanged = true; - chargingChanged = true; - configLoaded = true; - dndChanged = true; - gameModeChanged = true; - kbLayoutChanged = true; - numLockChanged = true; - vpnChanged = true; - nowPlaying = false; + # idk + utilities = { + enabled = true; + maxToasts = 4; + toasts = { + audioInputChanged = true; + audioOutputChanged = true; + capsLockChanged = true; + chargingChanged = true; + configLoaded = true; + dndChanged = true; + gameModeChanged = true; + kbLayoutChanged = true; + numLockChanged = true; + vpnChanged = true; + nowPlaying = false; + }; }; }; }; diff --git a/home/browsers/firefox/default.nix b/home/browsers/firefox/default.nix index c206092..578efe4 100644 --- a/home/browsers/firefox/default.nix +++ b/home/browsers/firefox/default.nix @@ -16,13 +16,16 @@ in { config = mkIf cfg.enable { default.browser = lib.mkDefault "firefox"; - programs.firefox = { + programs.firefox = rec { enable = true; package = my-firefox; # import configuration policies = import ./policies.nix {inherit config;}; + # use xdg dirs + configPath = "${config.xdg.configHome}/mozilla/firefox"; + # create profile for me :3 profiles.${config.user} = { search = { diff --git a/home/default.nix b/home/default.nix index f56be81..b716308 100644 --- a/home/default.nix +++ b/home/default.nix @@ -62,6 +62,9 @@ in { # mirrored from system ++ config.extraPackages; + # only enable dconf on desktop + dconf.enable = config.desktops.enable; + xdg = { enable = true; cacheHome = "${config.homePath}/.cache"; @@ -109,6 +112,7 @@ in { "image/tga" = "imv.desktop"; "image/bmp" = "imv.desktop"; "image/gif" = "imv.desktop"; + "image/svg+xml" = "imv.desktop"; # audio video "video/mp4" = "mpv.desktop"; @@ -160,6 +164,7 @@ in { JULIA_DEPOT_PATH = "${config.xdg.dataHome}/julia"; LEIN_HOME = "${config.xdg.dataHome}/lein"; MIN_HOME = "${config.xdg.dataHome}/mix"; + MOZ_HOME = "${config.xdg.configHome}/mozilla"; NODE_REPL_HISTORY = "${config.xdg.stateHome}/node_repl_history"; NPM_CONFIG_INIT_MODULE = "${config.xdg.configHome}/npm/config/npm-init.js"; NPM_CONFIG_CACHE = "${config.xdg.cacheHome}/npm"; diff --git a/home/desktops/default.nix b/home/desktops/default.nix index 0c2ce1c..b8777e0 100644 --- a/home/desktops/default.nix +++ b/home/desktops/default.nix @@ -66,6 +66,11 @@ in { sf-compact ]); + # set uwsm vars + xdg.configFile = { + "uwsm/env".source = "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh"; + }; + # user fonts fonts.fontconfig = { enable = true; diff --git a/home/desktops/hyprland/default.nix b/home/desktops/hyprland/default.nix index 5fd0d75..acb1529 100644 --- a/home/desktops/hyprland/default.nix +++ b/home/desktops/hyprland/default.nix @@ -25,6 +25,7 @@ in { wayland.windowManager.hyprland = { enable = true; package = inputs.hyprland.packages.${system}.hyprland; + portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland; xwayland.enable = true; systemd.enable = true; diff --git a/hosts/shinji/default.nix b/hosts/shinji/default.nix index 65222e6..4bdf7f4 100644 --- a/hosts/shinji/default.nix +++ b/hosts/shinji/default.nix @@ -1,7 +1,6 @@ # Shinji # System configuration for my laptop { - lib, pkgs, inputs, system, diff --git a/hosts/shinji/hardware.nix b/hosts/shinji/hardware.nix index 1999c83..e7877b9 100644 --- a/hosts/shinji/hardware.nix +++ b/hosts/shinji/hardware.nix @@ -45,7 +45,7 @@ hardware.cpu.amd.updateMicrocode = true; # nvidia - services.xserver.videoDrivers = ["nvidia"]; + services.xserver.videoDrivers = ["modesetting" "nvidia"]; hardware.nvidia = { modesetting.enable = true; powerManagement = { @@ -53,7 +53,10 @@ finegrained = false; }; prime = { - sync.enable = true; + offload = { + enable = true; + enableOffloadCmd = true; + }; amdgpuBusId = "PCI:115:0:0"; nvidiaBusId = "PCI:1:0:0"; }; diff --git a/lib/default.nix b/lib/default.nix index bdd5adb..0e882dd 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -43,6 +43,17 @@ in { # Packages extraPackages ; + # fix xdg + xdg.portal = { + inherit + (config.xdg.portal) + enable + xdgOpenUsePortal + extraPortals + config + ; + }; + # bring over nix options nix = lib.mkForce { inherit (config.nix) diff --git a/pkgs/arcanist/default.nix b/pkgs/arcanist/default.nix index 1ed7b50..9cdf8ed 100644 --- a/pkgs/arcanist/default.nix +++ b/pkgs/arcanist/default.nix @@ -1,31 +1,60 @@ -{pkgs}: -pkgs.stdenvNoCC.mkDerivation rec { +{ + lib, + stdenv, + fetchFromGitHub, + makeWrapper, + php82, + python3, + git, + diffutils, +}: +stdenv.mkDerivation rec { pname = "arcanist"; - version = "2025.18"; + version = "2025.51"; - src = pkgs.fetchFromGitHub { + src = fetchFromGitHub { owner = "phorgeit"; repo = "arcanist"; rev = version; - hash = "sha256-yiHLMcgszV9jP/8qb9X/t9Vfm3Ad7DpU55cafWPPQHY="; + hash = "sha256-muqNbQBLDOLhzVSF7vTckhb6ouIcj6tHR20CFsgv9bQ="; }; - buildInputs = with pkgs; [ + nativeBuildInputs = [makeWrapper]; + + dontBuild = true; + + buildInputs = [ php82 python3 - ]; - - propagatedInputs = with pkgs; [ git diffutils ]; + configurePhase = '' + runHook preConfigure + + patchShebangs . + + runHook postConfigure + ''; + installPhase = '' - mkdir -p $out/share/php/${pname} - mkdir -p $out/bin - cp -a * $out/share/php/${pname} - patchShebangs $out/share/php/${pname} - ln -s $out/share/php/${pname}/bin/arc $out/bin/arc - ln -sf ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt $out/share/php/${pname}/resources/ssl/default.pem + runHook preInstall + mkdir -p $out/share/php/arcanist $out/bin + + cp --target-directory=$out/share/php/arcanist --recursive \ + bin externals resources scripts src support + + makeWrapper $out/share/php/arcanist/bin/arc $out/bin/arc \ + --inherit-argv0 \ + --chdir $out/share/php/arcanist \ + --prefix PATH : ${lib.makeBinPath buildInputs} + + makeWrapper $out/share/php/arcanist/bin/phage $out/bin/phage \ + --inherit-argv0 \ + --chdir $out/share/php/arcanist \ + --prefix PATH : ${lib.makeBinPath buildInputs} + + runHook postInstall ''; } diff --git a/pkgs/default.nix b/pkgs/default.nix index 2187e6f..f2bd7c6 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -10,18 +10,11 @@ ../options.nix ]; }).config; -in rec { +in { arcanist = pkgs.callPackage ./arcanist {}; astal = pkgs.callPackage ./astal { inherit inputs options; }; libfprint-2-tod1-vfs0090 = pkgs.callPackage ./libfprint-2-tod1-vfs0090 {}; solaar-udev-rules = pkgs.callPackage ./solaar-udev-rules {}; - wine-wow-yabridge = pkgs.callPackage ./wine-wow-yabridge {}; - yabridge = pkgs.callPackage ./yabridge { - wine = wine-wow-yabridge; - }; - yabridgectl = pkgs.callPackage ./yabridgectl { - wine = wine-wow-yabridge; - }; } diff --git a/pkgs/wine-wow-yabridge/default.nix b/pkgs/wine-wow-yabridge/default.nix deleted file mode 100644 index f3346a3..0000000 --- a/pkgs/wine-wow-yabridge/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{wineWowPackages}: -wineWowPackages.yabridge.overrideAttrs (finalAttrs: { - NIX_CFLAGS_COMPILE = - (finalAttrs.NIX_CFLAGS_COMPILE or "") - + "-std=gnu17"; -}) diff --git a/pkgs/yabridge/default.nix b/pkgs/yabridge/default.nix deleted file mode 100644 index 97a49db..0000000 --- a/pkgs/yabridge/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - yabridge, - wine, -}: -yabridge.override { - inherit wine; -} diff --git a/pkgs/yabridgectl/default.nix b/pkgs/yabridgectl/default.nix deleted file mode 100644 index 4f3e7a8..0000000 --- a/pkgs/yabridgectl/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - yabridgectl, - wine, -}: -yabridgectl.override { - inherit wine; -} diff --git a/shells/cuda.nix b/shells/cuda.nix index 3935296..8c9e608 100644 --- a/shells/cuda.nix +++ b/shells/cuda.nix @@ -9,6 +9,7 @@ cudaPackages.cuda_nvcc cudaPackages.cuda_cccl cudaPackages.cudnn + cudaPackages.nsight_compute cudatoolkit nvidiaPackage diff --git a/shells/default.nix b/shells/default.nix index 8bc7548..22a7ee3 100644 --- a/shells/default.nix +++ b/shells/default.nix @@ -31,6 +31,5 @@ config.allowUnfree = true; }; lib = inputs.nixpkgs.lib; - inherit system inputs; }); } diff --git a/shells/vst.nix b/shells/vst.nix index a0c1694..3ba3326 100644 --- a/shells/vst.nix +++ b/shells/vst.nix @@ -1,12 +1,7 @@ { pkgs, lib, - inputs, - system, }: let - wine = inputs.self.packages.${system}.wine-wow-yabridge; - yabridge = inputs.self.packages.${system}.yabridge; - yabridgectl = inputs.self.packages.${system}.yabridgectl; libs = with pkgs; [ # fix missing libs gcc-unwrapped @@ -16,7 +11,7 @@ pipewire pulseaudio # yabridge - wine + wineWowPackages.yabridge yabridge yabridgectl ]; @@ -31,6 +26,6 @@ in { shellHook = '' export WINEPREFIX="$XDG_DATA_HOME/vst_wine"; - export NIX_PROFILES="$NIX_PROFILES ${yabridge}"; + export NIX_PROFILES="$NIX_PROFILES ${pkgs.yabridge}"; ''; } diff --git a/system/default.nix b/system/default.nix index be64ff0..17b3f99 100644 --- a/system/default.nix +++ b/system/default.nix @@ -23,8 +23,17 @@ ]; # allow flakes - nix.settings.experimental-features = ["nix-command" "flakes"]; - nix.settings.use-xdg-base-directories = true; + nix = { + channel.enable = false; + extraOptions = '' + warn-dirty = false + ''; + settings = { + auto-optimise-store = true; + experimental-features = ["nix-command" "flakes"]; + use-xdg-base-directories = true; + }; + }; # allow defined unfree packages nixpkgs.config.allowUnfreePredicate = pkg: @@ -39,6 +48,8 @@ tmpfsSize = "50%"; }; + services.seatd.enable = true; + # use system packages in home manager home-manager.useGlobalPkgs = true; @@ -114,8 +125,11 @@ # docs documentation = { - info.enable = false; + enable = true; + doc.enable = false; + man.enable = true; dev.enable = false; + info.enable = false; nixos.enable = false; }; diff --git a/system/desktop.nix b/system/desktop.nix index 9c87d85..8a37148 100644 --- a/system/desktop.nix +++ b/system/desktop.nix @@ -28,6 +28,9 @@ in { # services services.libinput.enable = true; + # gtk portal? + programs.dconf.enable = true; + # audio / video services.pipewire = { enable = true; @@ -47,8 +50,7 @@ in { enable = true; drivers = with pkgs; [ brlaser - # FIXME: failes to compile - # cnijfilter2 + cnijfilter2 gutenprint ]; }; diff --git a/system/desktops/hyprland.nix b/system/desktops/hyprland.nix index 26fa283..b0281a3 100644 --- a/system/desktops/hyprland.nix +++ b/system/desktops/hyprland.nix @@ -16,14 +16,18 @@ in { inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland ]; config.hyprland = { - default = ["hyprland" "gtk"]; + default = lib.mkForce ["gtk"]; + "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; "org.freedesktop.impl.portal.OpenURI" = ["gtk"]; + "org.freedesktop.impl.portal.Screencast" = ["hyprland"]; + "org.freedesktop.impl.portal.Screenshot" = ["hyprland"]; }; }; programs.hyprland = { enable = true; + withUWSM = true; package = inputs.hyprland.packages.${system}.hyprland; portalPackage = inputs.hyprland.packages.${system}.xdg-desktop-portal-hyprland; }; diff --git a/system/desktops/sway.nix b/system/desktops/sway.nix index 501ee41..6c36c12 100644 --- a/system/desktops/sway.nix +++ b/system/desktops/sway.nix @@ -17,7 +17,10 @@ in { xdg-desktop-portal-wlr ]; config.sway = { - default = lib.mkForce ["gtk" "wlr"]; + default = lib.mkForce ["gtk"]; + "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; + "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; + "org.freedesktop.impl.portal.OpenURI" = ["gtk"]; "org.freedesktop.impl.portal.Screenshot" = ["wlr"]; "org.freedesktop.impl.portal.ScreenCast" = ["wlr"]; }; @@ -30,6 +33,7 @@ in { base = false; gtk = false; }; + extraPackages = []; }; }; } diff --git a/system/desktops/wayland.nix b/system/desktops/wayland.nix index e11eca8..2f43fb3 100644 --- a/system/desktops/wayland.nix +++ b/system/desktops/wayland.nix @@ -10,12 +10,16 @@ in { config = mkIf cfg.enable { xdg.portal = { enable = true; + xdgOpenUsePortal = true; extraPortals = with pkgs; [ + xdg-desktop-portal xdg-desktop-portal-gtk ]; config.common = { - default = ["gtk"]; + default = lib.mkForce ["gtk"]; "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; + "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; + "org.freedesktop.impl.portal.OpenURI" = ["gtk"]; }; }; |