summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--flake.lock40
-rw-r--r--home/apps/caelestia/default.nix17
-rw-r--r--home/apps/caelestia/scheme.nix156
-rw-r--r--home/apps/caelestia/settings.nix387
-rw-r--r--home/default.nix3
-rw-r--r--home/desktops/default.nix5
-rw-r--r--home/desktops/hyprland/default.nix1
-rw-r--r--lib/default.nix11
-rw-r--r--pkgs/arcanist/default.nix59
-rw-r--r--pkgs/default.nix9
-rw-r--r--pkgs/wine-wow-yabridge/default.nix6
-rw-r--r--pkgs/yabridge/default.nix7
-rw-r--r--pkgs/yabridgectl/default.nix7
-rw-r--r--shells/default.nix1
-rw-r--r--shells/vst.nix9
-rw-r--r--system/default.nix20
-rw-r--r--system/desktop.nix3
-rw-r--r--system/desktops/hyprland.nix6
-rw-r--r--system/desktops/sway.nix6
-rw-r--r--system/desktops/wayland.nix6
20 files changed, 415 insertions, 344 deletions
diff --git a/flake.lock b/flake.lock
index d3941ab..b2aa5fd 100644
--- a/flake.lock
+++ b/flake.lock
@@ -116,11 +116,11 @@
]
},
"locked": {
- "lastModified": 1768006439,
- "narHash": "sha256-OpCihP2RndUI20xzBgysN8kOjl4bzN/GMsbn3c3FJx4=",
+ "lastModified": 1768240563,
+ "narHash": "sha256-XQ+mFInCxJffKrT7EuwRn1srMeTtOP6VtUl0Qc1FM1g=",
"ref": "refs/heads/main",
- "rev": "9c6aea03b58ead9044184724613ea1baa2a3cd35",
- "revCount": 1728,
+ "rev": "473fa36da02bad465d2b53685efffae60b9620b7",
+ "revCount": 1733,
"type": "git",
"url": "https://g.freya.cat/caelestia-shell"
},
@@ -258,11 +258,11 @@
]
},
"locked": {
- "lastModified": 1767971841,
- "narHash": "sha256-TwDXF4MkmjI9c3Sly9FOWXf4sPbre6ZujG87v39G1Ig=",
+ "lastModified": 1768238716,
+ "narHash": "sha256-q9fkcIZ1mhtzHhEr+yBxjm9mZRvT2iNo5/fob4rD3bQ=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "0e4217b2c4827e71e2e612accccb01981c16afda",
+ "rev": "cdf6d7d594992939b5aa239674ada74a46720edc",
"type": "github"
},
"original": {
@@ -707,11 +707,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1767892417,
- "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
+ "lastModified": 1768127708,
+ "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
+ "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
"type": "github"
},
"original": {
@@ -799,11 +799,11 @@
]
},
"locked": {
- "lastModified": 1767949765,
- "narHash": "sha256-sb9X1evrQI2+4qmYCCAHMSiJFqj4eAuZp5BwYrOiJmA=",
+ "lastModified": 1768204289,
+ "narHash": "sha256-aXPr9W8AEmPz9+dH8CHIwrppKIjtS3mHyOXR2ppH/aw=",
"ref": "refs/heads/master",
- "rev": "eecc2f88b3b12a672df79e74f2bd49ef65f0abdf",
- "revCount": 721,
+ "rev": "db37dc580afc9db1bc598436649c650138b6166d",
+ "revCount": 723,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
@@ -949,11 +949,11 @@
]
},
"locked": {
- "lastModified": 1767826491,
- "narHash": "sha256-WSBENPotD2MIhZwolL6GC9npqgaS5fkM7j07V2i/Ur8=",
+ "lastModified": 1768104471,
+ "narHash": "sha256-HdnXWQsA1EI27IJlaENUEEug58trUrh6+MT0cFiDHmY=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "ea3adcb6d2a000d9a69d0e23cad1f2cacb3a9fbe",
+ "rev": "94f9cbd20f680ebb2ad6cdf39da97cbcfaedf004",
"type": "github"
},
"original": {
@@ -1112,11 +1112,11 @@
]
},
"locked": {
- "lastModified": 1767763594,
- "narHash": "sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs=",
+ "lastModified": 1768183082,
+ "narHash": "sha256-XsiMOsqRLfmUi+24F7adhb/GAM2dMvplzwaW2Wxg/lo=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
- "rev": "8b2302d8c10369c9135552cc892da75cff5ddb03",
+ "rev": "cdbc300fd89d503a95d1c8564de31a93d7b0a0ae",
"type": "github"
},
"original": {
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/default.nix b/home/default.nix
index f56be81..d9a7d52 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";
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/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/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..162fe94 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;
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"];
};
};