Compare commits
16
Commits
2782572111
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47fb263bb4
|
||
|
|
84bd80f82a
|
||
|
|
19e49e90f5
|
||
|
|
a292aa4fcc
|
||
|
|
cf606b7650
|
||
|
|
f491665a54
|
||
|
|
bc9794ff00
|
||
|
|
d41aac2a41
|
||
|
|
54738d95b1
|
||
|
|
b23538ce84
|
||
|
|
7462276d09
|
||
|
|
34781f2102
|
||
|
|
a3b49b8960
|
||
|
|
076cb011ac
|
||
|
|
049ccd8d29
|
||
|
|
b072564a6c
|
+2
-2
@@ -9,5 +9,5 @@ creation_rules:
|
|||||||
- "age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a" # laptop-user-doloro
|
- "age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a" # laptop-user-doloro
|
||||||
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop-system
|
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop-system
|
||||||
- "age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05" # rpi5
|
- "age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05" # rpi5
|
||||||
- "age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv" # laptop-surface-user-doloro
|
- "age15mxdhlvk7zxtqlw06cu29zdzk9jxjfgvx9s335wxyyk5r7wr9pvqv9894t" # laptop-surface-user-doloro
|
||||||
- "age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp" # laptop-surface-system
|
- "age129rxje3pr8w5ulgszgmt98kt4kr06kdwhsg9js78sjte878ngf5qealch2" # laptop-surface-system
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
modules.sops
|
modules.sops
|
||||||
modules.flatpaks
|
modules.flatpaks
|
||||||
modules.gamemode
|
modules.gamemode
|
||||||
|
modules.gameaudio
|
||||||
modules.hyprland
|
modules.hyprland
|
||||||
modules.fish
|
modules.fish
|
||||||
modules.tuigreet
|
modules.tuigreet
|
||||||
@@ -34,7 +35,8 @@
|
|||||||
})
|
})
|
||||||
# modules.niri # Testing
|
# modules.niri # Testing
|
||||||
modules.stylix
|
modules.stylix
|
||||||
modules.quickshell
|
# modules.quickshell
|
||||||
|
modules.barbar
|
||||||
modules.nix-ld
|
modules.nix-ld
|
||||||
modules.spotify
|
modules.spotify
|
||||||
# modules.easyeffects
|
# modules.easyeffects
|
||||||
@@ -60,6 +62,7 @@
|
|||||||
extraGroups = [
|
extraGroups = [
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"gamemode"
|
"gamemode"
|
||||||
|
"dialout"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# Register GSettings schemas so GTK/GLib apps (orca-slicer) can find
|
# Register GSettings schemas so GTK/GLib apps (orca-slicer) can find
|
||||||
@@ -110,6 +113,8 @@
|
|||||||
qbittorrent
|
qbittorrent
|
||||||
mpv
|
mpv
|
||||||
krita
|
krita
|
||||||
|
clang
|
||||||
|
mold
|
||||||
# (tetrio-desktop.override { withTetrioPlus = true; })
|
# (tetrio-desktop.override { withTetrioPlus = true; })
|
||||||
# bottles
|
# bottles
|
||||||
# orca-slicer's wrapGAppsHook does not actually wrap the installed
|
# orca-slicer's wrapGAppsHook does not actually wrap the installed
|
||||||
|
|||||||
@@ -38,26 +38,26 @@
|
|||||||
"rd.systemd.show_status=auto"
|
"rd.systemd.show_status=auto"
|
||||||
];
|
];
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configPackages = [ pkgs.xdg-desktop-portal-wlr ];
|
configPackages = [ pkgs.xdg-desktop-portal-wlr ];
|
||||||
wlr = {
|
wlr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ polkit_gnome ];
|
environment.systemPackages = with pkgs; [ polkit_gnome ];
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
||||||
hardware.graphics = {
|
hardware.graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
libva-minimal
|
libva-minimal
|
||||||
@@ -126,14 +126,14 @@ hardware.graphics = {
|
|||||||
boot.binfmt.emulatedSystems = [
|
boot.binfmt.emulatedSystems = [
|
||||||
"aarch64-linux"
|
"aarch64-linux"
|
||||||
];
|
];
|
||||||
services.scx = {
|
# services.scx = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
package = pkgs.scx.rustscheds;
|
# package = pkgs.scx.rustscheds;
|
||||||
};
|
# };
|
||||||
systemd.services.scx.environment = {
|
# systemd.services.scx.environment = {
|
||||||
SCX_SCHEDULER_OVERRIDE = "scx_lavd";
|
# SCX_SCHEDULER_OVERRIDE = "scx_lavd";
|
||||||
SCX_FLAGS_OVERRIDE = "--performance --no-core-compaction";
|
# SCX_FLAGS_OVERRIDE = "--performance --no-core-compaction";
|
||||||
};
|
# };
|
||||||
systemd.oomd = {
|
systemd.oomd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableUserSlices = true;
|
enableUserSlices = true;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
main = {
|
main = {
|
||||||
device = "/dev/nvme0n1";
|
device = "/dev/disk/by-id/nvme-MZ9L4256HCJQ-00BMV-SAMSUNG_S69VNF1X404046";
|
||||||
type = "disk";
|
type = "disk";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
plainSwap = {
|
plainSwap = {
|
||||||
size = "24G";
|
size = "16G";
|
||||||
content = {
|
content = {
|
||||||
type = "swap";
|
type = "swap";
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
discardPolicy = "both"; # Both "once" and page discard policies
|
||||||
|
|||||||
@@ -14,14 +14,16 @@
|
|||||||
<modules/hyprland/doloro-settings>
|
<modules/hyprland/doloro-settings>
|
||||||
modules.sops
|
modules.sops
|
||||||
modules.fish
|
modules.fish
|
||||||
|
modules.surface-touchpad
|
||||||
(<modules/helium> {
|
(<modules/helium> {
|
||||||
default = true;
|
default = true;
|
||||||
})
|
})
|
||||||
modules.kitty
|
modules.kitty
|
||||||
modules.stylix
|
modules.stylix
|
||||||
modules.quickshell
|
# modules.quickshell
|
||||||
modules.lavd
|
modules.barbar
|
||||||
modules.omp
|
# modules.lavd
|
||||||
|
# modules.omp
|
||||||
# modules.podman
|
# modules.podman
|
||||||
# modules.openvivo
|
# modules.openvivo
|
||||||
];
|
];
|
||||||
@@ -37,14 +39,6 @@
|
|||||||
homeManager =
|
homeManager =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
xdg.configFile."hypr/hyprland-local.lua" = {
|
|
||||||
text = ''
|
|
||||||
-- Host overrides (laptop)
|
|
||||||
hl.config({ ["decoration.blur.enabled"] = false })
|
|
||||||
hl.config({ ["input.sensitivity"] = 0 })
|
|
||||||
hl.device({ name = "default", sensitivity = 0 })
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
equibop
|
equibop
|
||||||
|
|||||||
@@ -47,10 +47,6 @@
|
|||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
services.upower.enable = true;
|
services.upower.enable = true;
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
|
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_latest; # Unpinned the linux version for now.. as i am not using hibernate that often
|
|
||||||
# boot.kernelPackages =
|
|
||||||
# inputs.nix-cachyos-kernel.legacyPackages.x86_64-linux.linuxPackages-cachyos-latest-lto-x86_64-v3;
|
|
||||||
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
||||||
# security.rtkit.enable = true;
|
# security.rtkit.enable = true;
|
||||||
|
|
||||||
@@ -97,16 +93,22 @@
|
|||||||
intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; };
|
intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; };
|
||||||
};
|
};
|
||||||
hardware = {
|
hardware = {
|
||||||
# firmware = [ pkgs.intel-npu-driver ];
|
# Qualcomm Adreno X1-85 (freedreno/turnip) + IRIS need the qcom
|
||||||
|
# firmware blobs (gen70500_sqe.fw / gmu.bin / zap.mbn). On most
|
||||||
|
# Snapdragon X laptops these must be extracted from Windows unless
|
||||||
|
# shipped by linux-firmware (e.g. ThinkPad T14s Gen 6).
|
||||||
|
firmware = [ pkgs.linux-firmware ];
|
||||||
graphics = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
# Adreno has no userspace driver package to add here: GL/Vulkan
|
||||||
|
# (freedreno/turnip) come from mesa (auto-included), and IRIS video
|
||||||
|
# has no usable VA-API backend yet, so extraPackages stays empty.
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.sessionVariables = {
|
# NOTE: removed LIBVA_DRIVER_NAME="iHD" — that forces the Intel media
|
||||||
LIBVA_DRIVER_NAME = "iHD";
|
# driver and is wrong on Qualcomm Adreno (aarch64).
|
||||||
}; # Force intel-media-driver
|
|
||||||
|
|
||||||
# services.fwupd = {
|
# services.fwupd = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
@@ -157,7 +159,7 @@
|
|||||||
# # initialPassword = "sex";
|
# # initialPassword = "sex";
|
||||||
# };
|
# };
|
||||||
users.users.root = {
|
users.users.root = {
|
||||||
password = "meowmeowmeow";
|
initialPassword = "meowmeowmeow";
|
||||||
};
|
};
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
services.system76-scheduler.enable = false;
|
services.system76-scheduler.enable = false;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
rust-analyzer
|
# rust-analyzer
|
||||||
typescript-language-server
|
typescript-language-server
|
||||||
];
|
];
|
||||||
context = ''
|
context = ''
|
||||||
@@ -32,16 +32,19 @@
|
|||||||
- Follow references recursively when needed
|
- Follow references recursively when needed
|
||||||
|
|
||||||
- NO EMOJIS
|
- NO EMOJIS
|
||||||
|
- If you've been looking a lot for something you cant seem to find and you havent been explicitly told to keep going, you're allowed to say 'i cant find it'
|
||||||
'';
|
'';
|
||||||
settings = {
|
settings = {
|
||||||
"lsp" = true;
|
"lsp" = true;
|
||||||
plugin = [
|
plugin = [
|
||||||
"@tarquinen/opencode-dcp@latest"
|
"@tarquinen/opencode-dcp@latest"
|
||||||
"@xberg-io/opencode-xberg"
|
"@xberg-io/opencode-xberg"
|
||||||
"@xberg-io/opencode-crawlberg"
|
# "@xberg-io/opencode-crawlberg"
|
||||||
"@xberg-io/opencode-html-to-markdown"
|
# "@xberg-io/opencode-html-to-markdown"
|
||||||
"@xberg-io/opencode-liter-llm"
|
"@xberg-io/opencode-liter-llm"
|
||||||
"opencode-plugin-litellm@latest"
|
"opencode-plugin-litellm@latest"
|
||||||
|
"@dietrichgebert/ponytail"
|
||||||
|
"opencode-autodiscover"
|
||||||
"@xberg-io/opencode-tree-sitter-language-pack"
|
"@xberg-io/opencode-tree-sitter-language-pack"
|
||||||
# Token slimming: filters shell command output via snip CLI
|
# Token slimming: filters shell command output via snip CLI
|
||||||
# (https://github.com/VincentHardouin/opencode-snip)
|
# (https://github.com/VincentHardouin/opencode-snip)
|
||||||
@@ -49,7 +52,7 @@
|
|||||||
# Replace/extend the per-model system prompt via
|
# Replace/extend the per-model system prompt via
|
||||||
# ~/.config/opencode/system-prompts.json
|
# ~/.config/opencode/system-prompts.json
|
||||||
# (https://github.com/kmcquade/opencode-sysprompt-override-plugin)
|
# (https://github.com/kmcquade/opencode-sysprompt-override-plugin)
|
||||||
"opencode-sysprompt-override@latest"
|
# "opencode-sysprompt-override@latest"
|
||||||
];
|
];
|
||||||
provider.litellm = {
|
provider.litellm = {
|
||||||
npm = "@ai-sdk/openai-compatible";
|
npm = "@ai-sdk/openai-compatible";
|
||||||
@@ -66,6 +69,14 @@
|
|||||||
apiKey = "{env:OPENCODE_GO_API_KEY}";
|
apiKey = "{env:OPENCODE_GO_API_KEY}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
# provider.commandcode = {
|
||||||
|
# npm = "@ai-sdk/openai-compatible";
|
||||||
|
# name = "Command Code";
|
||||||
|
# options = {
|
||||||
|
# baseURL = "https://api.commandcode.ai/provider/v1";
|
||||||
|
# apiKey = "{env:COMMANDCODE_API_KEY}";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
# TUI plugin: token-tracker (https://github.com/eserete/opencode-token-tracker)
|
# TUI plugin: token-tracker (https://github.com/eserete/opencode-token-tracker)
|
||||||
tui = {
|
tui = {
|
||||||
|
|||||||
+61
-13
@@ -16,23 +16,20 @@
|
|||||||
# pkgs.lean-lsp-mcp
|
# pkgs.lean-lsp-mcp
|
||||||
];
|
];
|
||||||
settings = {
|
settings = {
|
||||||
|
"defaultProvider" = "opencode-go";
|
||||||
|
"defaultModel" = "mimo-v2.5";
|
||||||
|
"defaultThinkingLevel" = "medium";
|
||||||
"litellm" = {
|
"litellm" = {
|
||||||
"providers" = {
|
"providers" = {
|
||||||
"litellm" = {
|
"litellm" = {
|
||||||
"displayName" = "scuggo";
|
"displayName" = "scuggo";
|
||||||
"baseUrl" = "https://ai-proxy.fwds.scug.io";
|
"baseUrl" = "https://ai-proxy.fwds.scug.io";
|
||||||
"apiKey" = "$SCUG_IO_API_KEY";
|
"apiKey" = "$SCUG_IO_API_KEY";
|
||||||
"compat" = {
|
|
||||||
"sendSessionAffinityHeaders" = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"skills" = {
|
"skills" = {
|
||||||
"enabled" = true;
|
"enabled" = true;
|
||||||
};
|
};
|
||||||
"compat" = {
|
|
||||||
"sendSessionAffinityHeaders" = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
"mcp" = {
|
"mcp" = {
|
||||||
"enabled" = true;
|
"enabled" = true;
|
||||||
@@ -48,24 +45,26 @@
|
|||||||
# "npm:@odinlayer/pi-provider-litellm"
|
# "npm:@odinlayer/pi-provider-litellm"
|
||||||
"npm:pi-provider-litellm"
|
"npm:pi-provider-litellm"
|
||||||
# Web search / content extraction (opencode-crawlberg + opencode-html-to-markdown equivalent)
|
# Web search / content extraction (opencode-crawlberg + opencode-html-to-markdown equivalent)
|
||||||
"npm:pi-web-access"
|
# "npm:pi-web-access"
|
||||||
# Local document parsing / OCR (opencode-xberg equivalent)
|
# Local document parsing / OCR (opencode-xberg equivalent)
|
||||||
"npm:pi-docparser"
|
"npm:pi-docparser"
|
||||||
# "npm:@gotgenes/pi-permission-system"
|
# "npm:@gotgenes/pi-permission-system"
|
||||||
"npm:@vanillagreen/pi-extension-manager"
|
# "npm:@vanillagreen/pi-extension-manager"
|
||||||
# "npm:@vanillagreen/pi-qol"
|
# "npm:@vanillagreen/pi-qol"
|
||||||
"npm:pi-vitals"
|
"npm:pi-vitals"
|
||||||
"npm:pi-spark"
|
# "npm:pi-spark"
|
||||||
# "npm:pi-caveman"
|
# "npm:pi-caveman"
|
||||||
"npm:@tmustier/pi-usage-extension"
|
"npm:@tmustier/pi-usage-extension"
|
||||||
"npm:@heyhuynhgiabuu/pi-pretty"
|
"npm:@heyhuynhgiabuu/pi-pretty"
|
||||||
"npm:pi-lens"
|
# "npm:pi-lens"
|
||||||
# "npm:pi-lean-ctx"
|
# "npm:pi-lean-ctx"
|
||||||
# "npm:@rohaquinlop/pi-deepseek-cache"
|
# "npm:@rohaquinlop/pi-deepseek-cache"
|
||||||
"npm:pi-cache-optimizer"
|
"npm:pi-cache-optimizer"
|
||||||
"npm:pi-opencode-go-cache"
|
"npm:pi-opencode-go-cache"
|
||||||
"npm:@pi-vault/pi-dcp"
|
"npm:@pi-vault/pi-dcp"
|
||||||
"git:github.com/DietrichGebert/ponytail"
|
"git:github.com/DietrichGebert/ponytail"
|
||||||
|
"npm:pi-open-tui"
|
||||||
|
# "npm:pi-commandcode-provider"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
context = ''
|
context = ''
|
||||||
@@ -172,16 +171,26 @@
|
|||||||
"type" = "api_key";
|
"type" = "api_key";
|
||||||
"key" = "$OPENCODE_GO_API_KEY";
|
"key" = "$OPENCODE_GO_API_KEY";
|
||||||
};
|
};
|
||||||
|
# "command-code" = {
|
||||||
|
# "type" = "api_key";
|
||||||
|
# "key" = "$COMMANDCODE_API_KEY";
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Cache/routing compat overrides (provider-level minimal)
|
# Cache/routing compat overrides (provider-level minimal)
|
||||||
home.file.".pi/agent/models.json" = {
|
home.file.".pi/agent/models.json" = {
|
||||||
text = builtins.toJSON {
|
text = builtins.toJSON {
|
||||||
providers = {
|
"providers" = {
|
||||||
|
"opencode" = {
|
||||||
|
"compat" = {
|
||||||
|
"sendSessionAffinityHeaders" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
"opencode-go" = {
|
"opencode-go" = {
|
||||||
compat = {
|
"compat" = {
|
||||||
supportsLongCacheRetention = true;
|
"supportsLongCacheRetention" = true;
|
||||||
|
"sendSessionAffinityHeaders" = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -218,6 +227,45 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# open-tui.json config
|
||||||
|
home.file.".pi/agent/open-tui.json" = {
|
||||||
|
text = builtins.toJSON {
|
||||||
|
enabled = true;
|
||||||
|
settingsLanguage = "en";
|
||||||
|
cursorStyle = "block";
|
||||||
|
fullscreen = {
|
||||||
|
wheelScrollLines = 4;
|
||||||
|
};
|
||||||
|
icons = {
|
||||||
|
mode = "auto";
|
||||||
|
};
|
||||||
|
footerSegments = {
|
||||||
|
cwd = true;
|
||||||
|
sessionName = false;
|
||||||
|
gitBranch = true;
|
||||||
|
gitStatus = true;
|
||||||
|
gitCommit = false;
|
||||||
|
runtime = true;
|
||||||
|
context = true;
|
||||||
|
tokens = true;
|
||||||
|
cost = true;
|
||||||
|
extensionStatuses = false;
|
||||||
|
};
|
||||||
|
telemetry = {
|
||||||
|
enabled = true;
|
||||||
|
tps = false;
|
||||||
|
ttft = false;
|
||||||
|
duration = true;
|
||||||
|
tokens = true;
|
||||||
|
stalls = true;
|
||||||
|
cost = true;
|
||||||
|
};
|
||||||
|
thinkingPeek = {
|
||||||
|
lines = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# pi-spark config
|
# pi-spark config
|
||||||
home.file.".pi/agent/spark.json" = {
|
home.file.".pi/agent/spark.json" = {
|
||||||
text = builtins.toJSON {
|
text = builtins.toJSON {
|
||||||
|
|||||||
@@ -17,6 +17,11 @@
|
|||||||
path = config.home.homeDirectory + "/.secrets/opencode-go-zen-key";
|
path = config.home.homeDirectory + "/.secrets/opencode-go-zen-key";
|
||||||
sopsFile = ../secrets/content/secrets.yaml;
|
sopsFile = ../secrets/content/secrets.yaml;
|
||||||
};
|
};
|
||||||
|
secrets.commandcode-key = {
|
||||||
|
# Decrypted file path (available at runtime, not eval time)
|
||||||
|
path = config.home.homeDirectory + "/.secrets/commandcode-key";
|
||||||
|
sopsFile = ../secrets/content/secrets.yaml;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
shellInit = ''
|
shellInit = ''
|
||||||
@@ -26,6 +31,9 @@
|
|||||||
if test -f "$HOME/.secrets/opencode-go-zen-key"
|
if test -f "$HOME/.secrets/opencode-go-zen-key"
|
||||||
set -x OPENCODE_GO_API_KEY (cat "$HOME/.secrets/opencode-go-zen-key")
|
set -x OPENCODE_GO_API_KEY (cat "$HOME/.secrets/opencode-go-zen-key")
|
||||||
end
|
end
|
||||||
|
if test -f "$HOME/.secrets/commandcode-key"
|
||||||
|
set -x COMMANDCODE_API_KEY (cat "$HOME/.secrets/commandcode-key")
|
||||||
|
end
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{ modules, inputs, ... }: {
|
||||||
|
flake-file.inputs = {
|
||||||
|
barbar.url = "git+https://git.scug.io/doloro/barbar?ref=master";
|
||||||
|
};
|
||||||
|
modules.barbar = {
|
||||||
|
homeManager = { pkgs, ... }: {
|
||||||
|
imports = [ inputs.barbar.homeManagerModules.default ];
|
||||||
|
programs.barbar = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
display = {
|
||||||
|
monitor = "DP-2";
|
||||||
|
height = 20;
|
||||||
|
antialiasing = true;
|
||||||
|
default_text_size = 14.0;
|
||||||
|
padding = 4.0;
|
||||||
|
spacing = 8.0;
|
||||||
|
# Absolute store path: barbar resolves `[display].theme` against
|
||||||
|
# its cwd, which is not the home dir under systemd.
|
||||||
|
theme = "${pkgs.writeText "barbar-base16.yaml" ''
|
||||||
|
scheme: "Gruvbox dark, medium"
|
||||||
|
author: "https://github.com/morhetz/gruvbox"
|
||||||
|
base00: "282828" # bg
|
||||||
|
base01: "3c3836" # bg1
|
||||||
|
base02: "504945" # bg2
|
||||||
|
base03: "665c54" # bg3
|
||||||
|
base04: "bdae93" # fg4
|
||||||
|
base05: "d5c4a1" # fg
|
||||||
|
base06: "ebdbb2" # fg2
|
||||||
|
base07: "fbf1c7" # fg0
|
||||||
|
base08: "fb4934" # red
|
||||||
|
base09: "fe8019" # orange
|
||||||
|
base0A: "fabd2f" # yellow
|
||||||
|
base0B: "b8bb26" # green
|
||||||
|
base0C: "8ec07c" # aqua
|
||||||
|
base0D: "83a598" # blue
|
||||||
|
base0E: "d3869b" # purple
|
||||||
|
base0F: "d65d0e" # brown
|
||||||
|
''}";
|
||||||
|
};
|
||||||
|
order = {
|
||||||
|
left = [ "workspaces" ];
|
||||||
|
middle = [ ];
|
||||||
|
right = [
|
||||||
|
"audio"
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
modules.clock.show_seconds = false;
|
||||||
|
modules.workspaces = {
|
||||||
|
count = 10;
|
||||||
|
gap = 3.0;
|
||||||
|
slot_w = 10.0;
|
||||||
|
slot_h = 17.0;
|
||||||
|
radius = 2.5;
|
||||||
|
scale_active = 1.0;
|
||||||
|
scale_exists = 0.85;
|
||||||
|
scale_absent = 0.65;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
modules,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
modules.gameaudio = {
|
||||||
|
homeManager =
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home.packages = [
|
||||||
|
# Launch a program with all of its audio routed to GameAudioSink.
|
||||||
|
# Usage: run-on-gameaudio <command> [args...]
|
||||||
|
(pkgs.writeShellScriptBin "run-on-gameaudio" ''
|
||||||
|
if [ "$#" -eq 0 ]; then
|
||||||
|
echo "usage: run-on-gameaudio <command> [args...]" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
export PIPEWIRE_PROPS="target.object=GameAudioSink"
|
||||||
|
exec "$@"
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -14,9 +14,9 @@
|
|||||||
email = "doloroo@proton.me";
|
email = "doloroo@proton.me";
|
||||||
signingKey = "089B373588540877";
|
signingKey = "089B373588540877";
|
||||||
};
|
};
|
||||||
commit = {
|
# commit = {
|
||||||
gpgSign = true;
|
# gpgSign = true;
|
||||||
};
|
# };
|
||||||
pull = {
|
pull = {
|
||||||
rebase = true;
|
rebase = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
};
|
};
|
||||||
modules.helium = settings: {
|
modules.helium = settings: {
|
||||||
homeManager =
|
homeManager =
|
||||||
{ pkgs, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
heliumPkg = inputs.heliumFlake.packages.${pkgs.stdenv.hostPlatform.system}.helium;
|
heliumPkg = inputs.heliumFlake.packages.${pkgs.stdenv.hostPlatform.system}.helium;
|
||||||
# The upstream `helium` launcher is a plain Nix wrapper that ignores any
|
# The upstream `helium` launcher is a plain Nix wrapper that ignores any
|
||||||
@@ -43,7 +43,6 @@
|
|||||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ pkgs.vulkan-loader ]}" \
|
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ pkgs.vulkan-loader ]}" \
|
||||||
--add-flags "--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,VaapiOnNvidiaGPUs,VaapiIgnoreDriverChecks" \
|
--add-flags "--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,VaapiOnNvidiaGPUs,VaapiIgnoreDriverChecks" \
|
||||||
--add-flags "--ignore-gpu-blocklist" \
|
--add-flags "--ignore-gpu-blocklist" \
|
||||||
--add-flags "--disable-gpu-sandbox"
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
@@ -54,15 +53,9 @@
|
|||||||
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
|
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
|
||||||
text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
|
text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
|
||||||
};
|
};
|
||||||
wayland.windowManager.hyprland.extraLuaFiles = lib.mkIf settings.default {
|
wayland.windowManager.hyprland.settings.bind = lib.mkIf settings.default [
|
||||||
"helium-bind.lua" = {
|
{ _args = [ "SUPER + E" (lib.generators.mkLuaInline ''hl.dsp.exec_cmd("helium")'') ]; }
|
||||||
autoLoad = true;
|
];
|
||||||
content = ''
|
|
||||||
-- Helium launcher bind (lua config: settings.bind cannot express dispatchers)
|
|
||||||
hl.bind("SUPER + E", hl.dsp.exec_cmd("helium"))
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,12 @@
|
|||||||
doloro-settings = {
|
doloro-settings = {
|
||||||
includes = [
|
includes = [
|
||||||
modules.dunst
|
modules.dunst
|
||||||
|
modules.hyprlock
|
||||||
];
|
];
|
||||||
homeManager =
|
homeManager =
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
home,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -34,175 +35,96 @@
|
|||||||
mreowScript = pkgs.writeShellScript "mreow" ''
|
mreowScript = pkgs.writeShellScript "mreow" ''
|
||||||
exec $(tofi-drun -c ${tofiCfg})
|
exec $(tofi-drun -c ${tofiCfg})
|
||||||
'';
|
'';
|
||||||
|
|
||||||
mainMod = "SUPER";
|
mainMod = "SUPER";
|
||||||
hlBind = key: dispatcher: "hl.bind(\"${key}\", ${dispatcher})";
|
|
||||||
workspaceLines = pkgs.lib.concatLists (
|
# Each `settings.<fn>` list entry renders as `hl.<fn>(<table>)`.
|
||||||
|
# `_args` renders a multi-argument call instead of one Lua table,
|
||||||
|
# and mkLuaInline passes raw Lua through for dispatchers.
|
||||||
|
dsp = lib.generators.mkLuaInline;
|
||||||
|
bind = key: dispatcher: {
|
||||||
|
_args = [
|
||||||
|
key
|
||||||
|
dispatcher
|
||||||
|
];
|
||||||
|
};
|
||||||
|
bezier = name: points: {
|
||||||
|
_args = [
|
||||||
|
name
|
||||||
|
{
|
||||||
|
type = "bezier";
|
||||||
|
inherit points;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
wsBinds = lib.concatLists (
|
||||||
builtins.genList (
|
builtins.genList (
|
||||||
i:
|
i:
|
||||||
let
|
let
|
||||||
ws = toString (i + 1);
|
ws = toString (i + 1);
|
||||||
in
|
in
|
||||||
[
|
[
|
||||||
(hlBind "${mainMod} + ${ws}" "hl.dsp.focus({ workspace = ${ws} })")
|
(bind "${mainMod} + ${ws}" (dsp "hl.dsp.focus({ workspace = ${ws} })"))
|
||||||
(hlBind "${mainMod} + SHIFT + ${ws}" "hl.dsp.window.move({ workspace = ${ws} })")
|
(bind "${mainMod} + SHIFT + ${ws}" (dsp "hl.dsp.window.move({ workspace = ${ws} })"))
|
||||||
]
|
]
|
||||||
) 9
|
) 9
|
||||||
);
|
);
|
||||||
hlBindCode = pkgs.lib.concatStringsSep "\n" (
|
|
||||||
[
|
|
||||||
"-- Hyprland configuration"
|
|
||||||
""
|
|
||||||
"local mainMod = \"${mainMod}\""
|
|
||||||
""
|
|
||||||
"-- Config"
|
|
||||||
"hl.config({"
|
|
||||||
" general = {"
|
|
||||||
" gaps_in = 1,"
|
|
||||||
" gaps_out = 1,"
|
|
||||||
" border_size = 1,"
|
|
||||||
" resize_on_border = false,"
|
|
||||||
" allow_tearing = true,"
|
|
||||||
" layout = \"dwindle\","
|
|
||||||
" },"
|
|
||||||
" input = {"
|
|
||||||
" follow_mouse = 2,"
|
|
||||||
" kb_layout = \"gb\","
|
|
||||||
" },"
|
|
||||||
" decoration = {"
|
|
||||||
" rounding = 4,"
|
|
||||||
" rounding_power = 1,"
|
|
||||||
" active_opacity = 1.0,"
|
|
||||||
" inactive_opacity = 1.0,"
|
|
||||||
" shadow = {"
|
|
||||||
" enabled = false,"
|
|
||||||
" },"
|
|
||||||
" blur = {"
|
|
||||||
" enabled = true,"
|
|
||||||
" passes = 1,"
|
|
||||||
" new_optimizations = true,"
|
|
||||||
" ignore_opacity = false,"
|
|
||||||
" },"
|
|
||||||
" },"
|
|
||||||
" cursor = {"
|
|
||||||
" no_hardware_cursors = false,"
|
|
||||||
" },"
|
|
||||||
" dwindle = {"
|
|
||||||
" preserve_split = true,"
|
|
||||||
" },"
|
|
||||||
" misc = {"
|
|
||||||
" force_default_wallpaper = -1,"
|
|
||||||
" disable_hyprland_logo = false,"
|
|
||||||
" enable_anr_dialog = false,"
|
|
||||||
" },"
|
|
||||||
"})"
|
|
||||||
""
|
|
||||||
"-- Monitors"
|
|
||||||
"hl.monitor({ output = \"HDMI-A-1\", mode = \"1920x1080@60\", position = \"0x0\", scale = \"1\" })"
|
|
||||||
"hl.monitor({ output = \"DP-2\", mode = \"1920x1080@120\", position = \"1920x0\", scale = \"1\" })"
|
|
||||||
""
|
|
||||||
"-- Input"
|
|
||||||
"hl.device({ name = \"default\", kb_layout = \"gb\", sensitivity = -0.5 })"
|
|
||||||
""
|
|
||||||
"-- Curves"
|
|
||||||
"hl.curve(\"easeOutQuint\", { type = \"bezier\", points = { {0.23, 1}, {0.32, 1} } })"
|
|
||||||
"hl.curve(\"easeInOutCubic\", { type = \"bezier\", points = { {0.65, 0.05}, {0.36, 1} } })"
|
|
||||||
"hl.curve(\"linear\", { type = \"bezier\", points = { {0, 0}, {1, 1} } })"
|
|
||||||
"hl.curve(\"almostLinear\", { type = \"bezier\", points = { {0.5, 0.5}, {0.75, 1} } })"
|
|
||||||
"hl.curve(\"quick\", { type = \"bezier\", points = { {0.15, 0}, {0.1, 1} } })"
|
|
||||||
""
|
|
||||||
"-- Animations"
|
|
||||||
"hl.animation({ leaf = \"global\", enabled = true, speed = 10, bezier = \"default\" })"
|
|
||||||
"hl.animation({ leaf = \"border\", enabled = true, speed = 5.39, bezier = \"easeOutQuint\" })"
|
|
||||||
"hl.animation({ leaf = \"windows\", enabled = true, speed = 2.79, bezier = \"easeOutQuint\" })"
|
|
||||||
"hl.animation({ leaf = \"windowsIn\", enabled = true, speed = 1, bezier = \"easeOutQuint\", style = \"popin 87%\" })"
|
|
||||||
"hl.animation({ leaf = \"windowsOut\", enabled = true, speed = 1, bezier = \"linear\", style = \"popin 87%\" })"
|
|
||||||
"hl.animation({ leaf = \"windowsMove\", enabled = true, speed = 1, bezier = \"easeInOutCubic\" })"
|
|
||||||
"hl.animation({ leaf = \"fadeIn\", enabled = true, speed = 0.5, bezier = \"almostLinear\" })"
|
|
||||||
"hl.animation({ leaf = \"fadeOut\", enabled = true, speed = 0.5, bezier = \"almostLinear\" })"
|
|
||||||
"hl.animation({ leaf = \"fade\", enabled = true, speed = 1, bezier = \"quick\" })"
|
|
||||||
"hl.animation({ leaf = \"layers\", enabled = true, speed = 3.81, bezier = \"easeOutQuint\" })"
|
|
||||||
"hl.animation({ leaf = \"layersIn\", enabled = true, speed = 4, bezier = \"easeOutQuint\", style = \"fade\" })"
|
|
||||||
"hl.animation({ leaf = \"layersOut\", enabled = true, speed = 1.5, bezier = \"linear\", style = \"fade\" })"
|
|
||||||
"hl.animation({ leaf = \"fadeLayersIn\", enabled = true, speed = 1.79, bezier = \"almostLinear\" })"
|
|
||||||
"hl.animation({ leaf = \"fadeLayersOut\", enabled = true, speed = 1.39, bezier = \"almostLinear\" })"
|
|
||||||
"hl.animation({ leaf = \"workspaces\", enabled = true, speed = 1, bezier = \"almostLinear\", style = \"slide\" })"
|
|
||||||
"hl.animation({ leaf = \"workspacesIn\", enabled = true, speed = 1, bezier = \"easeInOutCubic\", style = \"slide\" })"
|
|
||||||
"hl.animation({ leaf = \"workspacesOut\", enabled = true, speed = 1, bezier = \"easeInOutCubic\", style = \"slide\" })"
|
|
||||||
"hl.animation({ leaf = \"zoomFactor\", enabled = true, speed = 7, bezier = \"quick\" })"
|
|
||||||
""
|
|
||||||
"-- Binds"
|
|
||||||
(hlBind "${mainMod} + R" "hl.dsp.exec_cmd(\"${mreowScript}\")")
|
|
||||||
(hlBind "${mainMod} + C" "hl.dsp.window.close()")
|
|
||||||
(hlBind "${mainMod} + M" "hl.dsp.exec_cmd(\"uwsm stop\")")
|
|
||||||
(hlBind "${mainMod} + Q" "hl.dsp.exec_cmd(\"kitty\")")
|
|
||||||
(hlBind "${mainMod} + V" "hl.dsp.window.float({ action = \"toggle\" })")
|
|
||||||
(hlBind "${mainMod} + left" "hl.dsp.focus({ direction = \"left\" })")
|
|
||||||
(hlBind "${mainMod} + right" "hl.dsp.focus({ direction = \"right\" })")
|
|
||||||
(hlBind "${mainMod} + up" "hl.dsp.focus({ direction = \"up\" })")
|
|
||||||
(hlBind "${mainMod} + down" "hl.dsp.focus({ direction = \"down\" })")
|
|
||||||
(hlBind "${mainMod} + L" "hl.dsp.exec_cmd(\"wlogout\")")
|
|
||||||
(hlBind "${mainMod} + S" "hl.dsp.exec_cmd(\"wayfreeze --after-freeze-cmd '${meowScript}'\")")
|
|
||||||
(hlBind "${mainMod} + F" "hl.dsp.window.fullscreen({ action = \"toggle\" })")
|
|
||||||
(hlBind "${mainMod} + SHIFT + Q" "hl.dsp.window.close()")
|
|
||||||
(hlBind "${mainMod} + mouse_down" "hl.dsp.focus({ workspace = \"e+1\" })")
|
|
||||||
(hlBind "${mainMod} + mouse_up" "hl.dsp.focus({ workspace = \"e-1\" })")
|
|
||||||
""
|
|
||||||
"-- Mouse binds"
|
|
||||||
(hlBind "${mainMod} + mouse:272" "hl.dsp.window.drag()")
|
|
||||||
(hlBind "${mainMod} + mouse:273" "hl.dsp.window.resize()")
|
|
||||||
""
|
|
||||||
"-- Media keys"
|
|
||||||
(hlBind "XF86AudioLowerVolume" "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-\")")
|
|
||||||
(hlBind "XF86AudioRaiseVolume" "hl.dsp.exec_cmd(\"wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+\")")
|
|
||||||
(hlBind "XF86AudioMute" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")")
|
|
||||||
(hlBind "XF86AudioPlay" "hl.dsp.exec_cmd(\"playerctl play-pause\")")
|
|
||||||
(hlBind "XF86AudioNext" "hl.dsp.exec_cmd(\"playerctl next\")")
|
|
||||||
(hlBind "XF86AudioPrev" "hl.dsp.exec_cmd(\"playerctl previous\")")
|
|
||||||
(hlBind "XF86AudioMicMute" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")")
|
|
||||||
(hlBind "home" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle\")")
|
|
||||||
(hlBind "end" "hl.dsp.exec_cmd(\"wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle\")")
|
|
||||||
(hlBind "F8" "hl.dsp.pass({ window = [[match:class:^(com.obsproject.Studio)$]] })")
|
|
||||||
""
|
|
||||||
"-- Workspaces"
|
|
||||||
(hlBind "${mainMod} + 0" "hl.dsp.focus({ workspace = 10 })")
|
|
||||||
(hlBind "${mainMod} + SHIFT + 0" "hl.dsp.window.move({ workspace = 10 })")
|
|
||||||
]
|
|
||||||
++ workspaceLines
|
|
||||||
++ [
|
|
||||||
""
|
|
||||||
"-- Window rules"
|
|
||||||
"hl.window_rule({ suppress_event = \"maximize\" })"
|
|
||||||
"hl.window_rule({ match = { class = \"gamescope\" }, workspace = \"5\", immediate = true, confine_pointer = true })"
|
|
||||||
"hl.window_rule({ match = { initial_title = \"OBS Studio Crash Detected\" }, pin = true })"
|
|
||||||
"hl.window_rule({ match = { initial_title = \"Discord Popout\" }, workspace = \"1 silent\" })"
|
|
||||||
""
|
|
||||||
"-- Layer rules"
|
|
||||||
"hl.layer_rule({ match = { namespace = \"notifications\" }, no_screen_share = true })"
|
|
||||||
""
|
|
||||||
"-- Host-specific overrides: load ~/.config/hypr/hyprland-local.lua if present (must be valid Lua)"
|
|
||||||
"local home = os.getenv(\"HOME\")"
|
|
||||||
"if home then"
|
|
||||||
" local localPath = home .. '/.config/hypr/hyprland-local.lua'"
|
|
||||||
" local f = io.open(localPath, 'r')"
|
|
||||||
" if f then"
|
|
||||||
" f:close()"
|
|
||||||
" local chunk, err = loadfile(localPath)"
|
|
||||||
" if chunk then chunk() else io.stderr:write('hyprland-local.lua error: ' .. err .. '\\n') end"
|
|
||||||
" end"
|
|
||||||
"end"
|
|
||||||
]
|
|
||||||
);
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.hyprcursor
|
pkgs.hyprcursor
|
||||||
pkgs.wlogout
|
pkgs.hyprshutdown
|
||||||
pkgs.tofi
|
pkgs.tofi
|
||||||
pkgs.killall
|
pkgs.killall
|
||||||
pkgs.grim
|
pkgs.grim
|
||||||
pkgs.slurp
|
pkgs.slurp
|
||||||
pkgs.wayclip
|
pkgs.wayclip
|
||||||
];
|
];
|
||||||
|
# wlogout menu. Default layout, except Shutdown hands off to
|
||||||
|
# hyprshutdown so apps close gracefully before poweroff.
|
||||||
|
# programs.wlogout only accepts one command per button, so
|
||||||
|
# --post-cmd carries the actual poweroff.
|
||||||
|
programs.wlogout = {
|
||||||
|
enable = true;
|
||||||
|
layout = [
|
||||||
|
{
|
||||||
|
label = "lock";
|
||||||
|
action = "hyprlock";
|
||||||
|
text = "Lock";
|
||||||
|
keybind = "l";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "hibernate";
|
||||||
|
action = "systemctl hibernate";
|
||||||
|
text = "Hibernate";
|
||||||
|
keybind = "h";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "logout";
|
||||||
|
action = "loginctl terminate-user $USER";
|
||||||
|
text = "Logout";
|
||||||
|
keybind = "e";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "shutdown";
|
||||||
|
action = "hyprshutdown --post-cmd 'systemctl poweroff'";
|
||||||
|
text = "Shutdown";
|
||||||
|
keybind = "s";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "suspend";
|
||||||
|
action = "systemctl suspend";
|
||||||
|
text = "Suspend";
|
||||||
|
keybind = "u";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
label = "reboot";
|
||||||
|
action = "hyprshutdown --post-cmd 'systemctl reboot'";
|
||||||
|
text = "Reboot";
|
||||||
|
keybind = "r";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
enable = true;
|
enable = true;
|
||||||
name = "rose-pine-hyprcursor";
|
name = "rose-pine-hyprcursor";
|
||||||
@@ -225,17 +147,359 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# systemd.user.services.hyprpaper = {
|
# The systemd session activation hooks (hyprland-session.target
|
||||||
# partOf = [ "hyprland-session.target" ];
|
# start/stop + dbus-update-activation-environment --systemd --all)
|
||||||
# after = [ "hyprland-session.target" ];
|
# are still generated by Home Manager; only the imperative tail of
|
||||||
# };
|
# the config needs raw Lua.
|
||||||
# Hand-written config as extraLuaFile so Home Manager still
|
wayland.windowManager.hyprland = {
|
||||||
# generates hypr/hyprland.lua itself, including the systemd
|
settings = {
|
||||||
# session activation hooks (hyprland-session.target start/stop
|
config = {
|
||||||
# + dbus-update-activation-environment --systemd --all).
|
general = {
|
||||||
wayland.windowManager.hyprland.extraLuaFiles."hl-main.lua" = {
|
gaps_in = 1;
|
||||||
autoLoad = true;
|
gaps_out = 1;
|
||||||
content = hlBindCode;
|
border_size = 1;
|
||||||
|
resize_on_border = false;
|
||||||
|
allow_tearing = true;
|
||||||
|
layout = "dwindle";
|
||||||
|
};
|
||||||
|
input = {
|
||||||
|
follow_mouse = 2;
|
||||||
|
kb_layout = "gb";
|
||||||
|
};
|
||||||
|
decoration = {
|
||||||
|
rounding = 4;
|
||||||
|
rounding_power = 1;
|
||||||
|
active_opacity = 1.0;
|
||||||
|
inactive_opacity = 1.0;
|
||||||
|
shadow.enabled = false;
|
||||||
|
blur = {
|
||||||
|
enabled = true;
|
||||||
|
passes = 1;
|
||||||
|
new_optimizations = true;
|
||||||
|
ignore_opacity = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
cursor.default_monitor = "DP-2";
|
||||||
|
cursor.no_hardware_cursors = false;
|
||||||
|
dwindle.preserve_split = true;
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = -1;
|
||||||
|
disable_hyprland_logo = false;
|
||||||
|
enable_anr_dialog = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
monitor = [
|
||||||
|
{
|
||||||
|
output = "HDMI-A-1";
|
||||||
|
mode = "1920x1080@60";
|
||||||
|
position = "0x0";
|
||||||
|
scale = "1";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
output = "DP-2";
|
||||||
|
mode = "1920x1080@120";
|
||||||
|
position = "1920x0";
|
||||||
|
scale = "1";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
workspace_rule = [
|
||||||
|
{
|
||||||
|
workspace = "2";
|
||||||
|
monitor = "DP-2";
|
||||||
|
default = true;
|
||||||
|
}
|
||||||
|
]
|
||||||
|
++ builtins.genList (i: {
|
||||||
|
workspace = toString (i + 2);
|
||||||
|
monitor = "DP-2";
|
||||||
|
}) 9;
|
||||||
|
|
||||||
|
device = {
|
||||||
|
name = "default";
|
||||||
|
kb_layout = "gb";
|
||||||
|
sensitivity = -0.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Curves are sorted ahead of animations by the module's
|
||||||
|
# `importantPrefixes` default, so the beziers exist by name.
|
||||||
|
curve = [
|
||||||
|
(bezier "easeOutQuint" [
|
||||||
|
[
|
||||||
|
0.23
|
||||||
|
1
|
||||||
|
]
|
||||||
|
[
|
||||||
|
0.32
|
||||||
|
1
|
||||||
|
]
|
||||||
|
])
|
||||||
|
(bezier "easeInOutCubic" [
|
||||||
|
[
|
||||||
|
0.65
|
||||||
|
0.05
|
||||||
|
]
|
||||||
|
[
|
||||||
|
0.36
|
||||||
|
1
|
||||||
|
]
|
||||||
|
])
|
||||||
|
(bezier "linear" [
|
||||||
|
[
|
||||||
|
0
|
||||||
|
0
|
||||||
|
]
|
||||||
|
[
|
||||||
|
1
|
||||||
|
1
|
||||||
|
]
|
||||||
|
])
|
||||||
|
(bezier "almostLinear" [
|
||||||
|
[
|
||||||
|
0.5
|
||||||
|
0.5
|
||||||
|
]
|
||||||
|
[
|
||||||
|
0.75
|
||||||
|
1
|
||||||
|
]
|
||||||
|
])
|
||||||
|
(bezier "quick" [
|
||||||
|
[
|
||||||
|
0.15
|
||||||
|
0
|
||||||
|
]
|
||||||
|
[
|
||||||
|
0.1
|
||||||
|
1
|
||||||
|
]
|
||||||
|
])
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
{
|
||||||
|
leaf = "global";
|
||||||
|
enabled = true;
|
||||||
|
speed = 10;
|
||||||
|
bezier = "default";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "border";
|
||||||
|
enabled = true;
|
||||||
|
speed = 5.39;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "windows";
|
||||||
|
enabled = true;
|
||||||
|
speed = 2.79;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "windowsIn";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
style = "popin 87%";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "windowsOut";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "linear";
|
||||||
|
style = "popin 87%";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "windowsMove";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "easeInOutCubic";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "fadeIn";
|
||||||
|
enabled = true;
|
||||||
|
speed = 0.5;
|
||||||
|
bezier = "almostLinear";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "fadeOut";
|
||||||
|
enabled = true;
|
||||||
|
speed = 0.5;
|
||||||
|
bezier = "almostLinear";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "fade";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "quick";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "layers";
|
||||||
|
enabled = true;
|
||||||
|
speed = 3.81;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "layersIn";
|
||||||
|
enabled = true;
|
||||||
|
speed = 4;
|
||||||
|
bezier = "easeOutQuint";
|
||||||
|
style = "fade";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "layersOut";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1.5;
|
||||||
|
bezier = "linear";
|
||||||
|
style = "fade";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "fadeLayersIn";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1.79;
|
||||||
|
bezier = "almostLinear";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "fadeLayersOut";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1.39;
|
||||||
|
bezier = "almostLinear";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "workspaces";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "almostLinear";
|
||||||
|
style = "slide";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "workspacesIn";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "easeInOutCubic";
|
||||||
|
style = "slide";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "workspacesOut";
|
||||||
|
enabled = true;
|
||||||
|
speed = 1;
|
||||||
|
bezier = "easeInOutCubic";
|
||||||
|
style = "slide";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
leaf = "zoomFactor";
|
||||||
|
enabled = true;
|
||||||
|
speed = 7;
|
||||||
|
bezier = "quick";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
bind = [
|
||||||
|
(bind "${mainMod} + R" (dsp ''hl.dsp.exec_cmd("${mreowScript}")''))
|
||||||
|
(bind "${mainMod} + C" (dsp "hl.dsp.window.close()"))
|
||||||
|
(bind "${mainMod} + M" (dsp ''hl.dsp.exec_cmd("uwsm stop")''))
|
||||||
|
(bind "${mainMod} + Q" (dsp ''hl.dsp.exec_cmd("kitty")''))
|
||||||
|
(bind "${mainMod} + V" (dsp ''hl.dsp.window.float({ action = "toggle" })''))
|
||||||
|
(bind "${mainMod} + left" (dsp ''hl.dsp.focus({ direction = "left" })''))
|
||||||
|
(bind "${mainMod} + right" (dsp ''hl.dsp.focus({ direction = "right" })''))
|
||||||
|
(bind "${mainMod} + up" (dsp ''hl.dsp.focus({ direction = "up" })''))
|
||||||
|
(bind "${mainMod} + down" (dsp ''hl.dsp.focus({ direction = "down" })''))
|
||||||
|
(bind "${mainMod} + L" (dsp ''hl.dsp.exec_cmd("wlogout")''))
|
||||||
|
(bind "${mainMod} + S" (dsp ''hl.dsp.exec_cmd("wayfreeze --after-freeze-cmd '${meowScript}'")''))
|
||||||
|
(bind "${mainMod} + F" (dsp ''hl.dsp.window.fullscreen({ action = "toggle" })''))
|
||||||
|
(bind "${mainMod} + SHIFT + Q" (dsp "hl.dsp.window.close()"))
|
||||||
|
(bind "${mainMod} + mouse_down" (dsp ''hl.dsp.focus({ workspace = "e+1" })''))
|
||||||
|
(bind "${mainMod} + mouse_up" (dsp ''hl.dsp.focus({ workspace = "e-1" })''))
|
||||||
|
|
||||||
|
# Mouse binds
|
||||||
|
(bind "${mainMod} + mouse:272" (dsp "hl.dsp.window.drag()"))
|
||||||
|
(bind "${mainMod} + mouse:273" (dsp "hl.dsp.window.resize()"))
|
||||||
|
|
||||||
|
# Media keys
|
||||||
|
(bind "XF86AudioLowerVolume" (dsp ''hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-")''))
|
||||||
|
(bind "XF86AudioRaiseVolume" (dsp ''hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+")''))
|
||||||
|
(bind "XF86AudioMute" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle")''))
|
||||||
|
(bind "XF86AudioPlay" (dsp ''hl.dsp.exec_cmd("playerctl play-pause")''))
|
||||||
|
(bind "XF86AudioNext" (dsp ''hl.dsp.exec_cmd("playerctl next")''))
|
||||||
|
(bind "XF86AudioPrev" (dsp ''hl.dsp.exec_cmd("playerctl previous")''))
|
||||||
|
(bind "XF86AudioMicMute" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle")''))
|
||||||
|
(bind "home" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle")''))
|
||||||
|
(bind "end" (dsp ''hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle")''))
|
||||||
|
(bind "F8" (dsp "hl.dsp.pass({ window = [[match:class:^(com.obsproject.Studio)$]] })"))
|
||||||
|
|
||||||
|
# Workspaces
|
||||||
|
(bind "${mainMod} + 0" (dsp "hl.dsp.focus({ workspace = 10 })"))
|
||||||
|
(bind "${mainMod} + SHIFT + 0" (dsp "hl.dsp.window.move({ workspace = 10 })"))
|
||||||
|
]
|
||||||
|
++ wsBinds;
|
||||||
|
|
||||||
|
window_rule = [
|
||||||
|
{ suppress_event = "maximize"; }
|
||||||
|
{
|
||||||
|
match.class = "gamescope";
|
||||||
|
workspace = "5";
|
||||||
|
immediate = true;
|
||||||
|
confine_pointer = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.initial_title = "OBS Studio Crash Detected";
|
||||||
|
pin = true;
|
||||||
|
}
|
||||||
|
# Steam, Discord (equibop), Telegram, Spotify and OBS
|
||||||
|
# always open on their own workspace regardless of how
|
||||||
|
# they were launched. These sit before the "Discord
|
||||||
|
# Popout" rule: window rules apply in declaration order
|
||||||
|
# and the last match wins, so popouts still land on
|
||||||
|
# workspace 1.
|
||||||
|
{
|
||||||
|
match.class = "steam";
|
||||||
|
workspace = "6 silent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.class = "equibop";
|
||||||
|
workspace = "8 silent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.class = "org.telegram.desktop";
|
||||||
|
workspace = "8 silent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.class = "spotify";
|
||||||
|
workspace = "9 silent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.class = "com.obsproject.Studio";
|
||||||
|
workspace = "10 silent";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
match.initial_title = "Discord Popout";
|
||||||
|
workspace = "1 silent";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
layer_rule = [
|
||||||
|
{
|
||||||
|
match.namespace = "notifications";
|
||||||
|
no_screen_share = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Host-specific overrides: load ~/.config/hypr/hyprland-local.lua
|
||||||
|
# if present (must be valid Lua). Runs last so a host can override
|
||||||
|
# anything set above.
|
||||||
|
extraConfig = ''
|
||||||
|
local home = os.getenv("HOME")
|
||||||
|
if home then
|
||||||
|
local localPath = home .. '/.config/hypr/hyprland-local.lua'
|
||||||
|
local f = io.open(localPath, 'r')
|
||||||
|
if f then
|
||||||
|
f:close()
|
||||||
|
local chunk, err = loadfile(localPath)
|
||||||
|
if chunk then chunk() else io.stderr:write('hyprland-local.lua error: ' .. err .. '\n') end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
{ modules, ... }:
|
||||||
|
{
|
||||||
|
modules.hyprlock = {
|
||||||
|
homeManager =
|
||||||
|
_:
|
||||||
|
let
|
||||||
|
# Palette extracted from the hyprpaper wallpaper so the input field
|
||||||
|
# matches the background. Regenerate and update when Wallpaper.jpg
|
||||||
|
# changes:
|
||||||
|
# nix run nixpkgs#matugen -- image ~/Wallpaper.jpg -m dark \
|
||||||
|
# --source-color-index 0 --dry-run --show-colors
|
||||||
|
#
|
||||||
|
# name (matugen token) hex rgb()
|
||||||
|
primary = "rgb(135, 209, 235)"; # #87D1EB accent / success
|
||||||
|
tertiary = "rgb(194, 195, 235)"; # #C2C3EB capslock
|
||||||
|
error = "rgb(255, 180, 171)"; # #FFB4AB failure
|
||||||
|
outline = "rgb(137, 146, 150)"; # #899296 neutral border
|
||||||
|
on_surface = "rgb(222, 227, 230)"; # #DEE3E6 text/dots
|
||||||
|
inner_color = "rgba(27, 32, 35, 0.6)"; # #1B2023 @ 60%
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
# Reuse the hyprpaper wallpaper (see doloro-settings hyprpaper
|
||||||
|
# config) as the lock screen background. monitor = "" covers every
|
||||||
|
# output.
|
||||||
|
background = [
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
path = "/home/doloro/Wallpaper.jpg";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# hyprlock has no input-field by default, so one must be declared
|
||||||
|
# explicitly or there is no password prompt to unlock with.
|
||||||
|
input-field = [
|
||||||
|
{
|
||||||
|
monitor = "DP-2";
|
||||||
|
size = "200, 50";
|
||||||
|
position = "0, -80";
|
||||||
|
rounding = 4;
|
||||||
|
dots_center = true;
|
||||||
|
dots_size = 0.33;
|
||||||
|
hide_input = false;
|
||||||
|
fade_on_empty = false;
|
||||||
|
font_family = "CaskaydiaCove Nerd Font Mono";
|
||||||
|
placeholder_text = ''<span foreground="##899296">Password...</span>'';
|
||||||
|
fail_text = ''<i>$FAIL <b>($ATTEMPTS)</b></i>'';
|
||||||
|
inherit inner_color;
|
||||||
|
outer_color = outline;
|
||||||
|
check_color = primary;
|
||||||
|
fail_color = error;
|
||||||
|
capslock_color = tertiary;
|
||||||
|
font_color = on_surface;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nixos.security.pam.services.hyprlock = { };
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -17,8 +17,8 @@
|
|||||||
background_opacity = 0.6;
|
background_opacity = 0.6;
|
||||||
cursor_trail = 1;
|
cursor_trail = 1;
|
||||||
auto_reload_config = -1;
|
auto_reload_config = -1;
|
||||||
input_delay = 1;
|
# input_delay = 1;
|
||||||
repaint_delay = 2;
|
# repaint_delay = 2;
|
||||||
wayland_enable_ime = "no";
|
wayland_enable_ime = "no";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
libxi
|
libxi
|
||||||
libsm
|
libsm
|
||||||
libice
|
libice
|
||||||
gnome2.GConf
|
# gnome2.GConf
|
||||||
nspr
|
nspr
|
||||||
nss
|
nss
|
||||||
cups
|
cups
|
||||||
@@ -115,9 +115,9 @@
|
|||||||
SDL_mixer
|
SDL_mixer
|
||||||
SDL2_ttf
|
SDL2_ttf
|
||||||
SDL2_mixer
|
SDL2_mixer
|
||||||
libappindicator-gtk2
|
# libappindicator-gtk2
|
||||||
libdbusmenu-gtk2
|
# libdbusmenu-gtk2
|
||||||
libindicator-gtk2
|
# libindicator-gtk2
|
||||||
libcaca
|
libcaca
|
||||||
libcanberra
|
libcanberra
|
||||||
libgcrypt
|
libgcrypt
|
||||||
|
|||||||
@@ -42,6 +42,17 @@
|
|||||||
# nvim-cmp on rtp during the require check (cmp_lsp_rs requires cmp.types.lsp at load time)
|
# nvim-cmp on rtp during the require check (cmp_lsp_rs requires cmp.types.lsp at load time)
|
||||||
dependencies = [ pkgs.vimPlugins.nvim-cmp ];
|
dependencies = [ pkgs.vimPlugins.nvim-cmp ];
|
||||||
};
|
};
|
||||||
|
treesitter-rhai-grammar = pkgs.tree-sitter.buildGrammar {
|
||||||
|
language = "rhai";
|
||||||
|
version = "0.0.0+rev=4ac7384";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "elkowar";
|
||||||
|
repo = "tree-sitter-rhai";
|
||||||
|
rev = "4ac7384d487ffcb54e746ef1569585a749370c5b";
|
||||||
|
hash = "sha256-XGGcEGHke/O00STKqwSk9jGj91Xm2LE2KxwwX5+bBg0=";
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/elkowar/tree-sitter-rhai";
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -298,7 +309,7 @@
|
|||||||
wakatime.enable = true;
|
wakatime.enable = true;
|
||||||
treesitter = {
|
treesitter = {
|
||||||
enable = true;
|
enable = true;
|
||||||
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
grammarPackages = (with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
|
||||||
bash
|
bash
|
||||||
css
|
css
|
||||||
html
|
html
|
||||||
@@ -318,7 +329,7 @@
|
|||||||
xml
|
xml
|
||||||
yaml
|
yaml
|
||||||
svelte
|
svelte
|
||||||
];
|
]) ++ [ treesitter-rhai-grammar ];
|
||||||
settings = {
|
settings = {
|
||||||
highlight.enable = true;
|
highlight.enable = true;
|
||||||
indent.enable = false;
|
indent.enable = false;
|
||||||
@@ -328,6 +339,7 @@
|
|||||||
extraPlugins = with pkgs; [
|
extraPlugins = with pkgs; [
|
||||||
tiny-code-action
|
tiny-code-action
|
||||||
cmp-lsp-rs
|
cmp-lsp-rs
|
||||||
|
treesitter-rhai-grammar
|
||||||
];
|
];
|
||||||
opts = {
|
opts = {
|
||||||
number = true;
|
number = true;
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
};
|
};
|
||||||
# Most energy efficent scheduler setup..
|
# Most energy efficent scheduler setup..
|
||||||
systemd.services.scx.environment = {
|
systemd.services.scx.environment = {
|
||||||
SCX_SCHEDULER_OVERRIDE = "scx_lavd";
|
# SCX_SCHEDULER_OVERRIDE = "scx_lavd";
|
||||||
SCX_FLAGS_OVERRIDE = "--powersave --no-core-compaction";
|
# SCX_FLAGS_OVERRIDE = "--powersave --no-core-compaction";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
drivers = with pkgs; [
|
drivers = with pkgs; [
|
||||||
cups-filters
|
cups-filters
|
||||||
cups-browsed
|
cups-browsed
|
||||||
|
brlaser
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,72 +5,73 @@ meow: ENC[AES256_GCM,data:JVzenw==,iv:oCOo9//r5s2K4pSeH5UNEj0LL+9h2yq0G0DPOfwjmy
|
|||||||
meoww: ENC[AES256_GCM,data:WPeszDfMWxY=,iv:JJMOror5wj7cTNKfrUj2LDXlO3WCKzb7jk4AeZ0oD+Q=,tag:qs3oyM7K1FGy5cXvS6OHpQ==,type:str]
|
meoww: ENC[AES256_GCM,data:WPeszDfMWxY=,iv:JJMOror5wj7cTNKfrUj2LDXlO3WCKzb7jk4AeZ0oD+Q=,tag:qs3oyM7K1FGy5cXvS6OHpQ==,type:str]
|
||||||
scug-io-ai-key: ENC[AES256_GCM,data:b2AT2+A5eoGa1eZsCYKDFg449sOgffDcQA==,iv:NDIS3x1unq6/UtjtsyBTHx5v12utagDA3BbNzs5v3L0=,tag:MhbJGATIDWyOZUqXqRAeVA==,type:str]
|
scug-io-ai-key: ENC[AES256_GCM,data:b2AT2+A5eoGa1eZsCYKDFg449sOgffDcQA==,iv:NDIS3x1unq6/UtjtsyBTHx5v12utagDA3BbNzs5v3L0=,tag:MhbJGATIDWyOZUqXqRAeVA==,type:str]
|
||||||
opencode-go-zen-key: ENC[AES256_GCM,data:fwgV/QK+4tpizC6J3evbGxD57BQCWn5Eyex7iIeNYCQHk6ZD8eTukqhUbLcfXyO4RQot3B1B2xbQVVBsuOWWcQYQKA==,iv:aKwQM8d0gP+MyuqWFk2VfOWDgKPcE/HAvL0I0r6o1nU=,tag:/AeSgscy0mxUMwoP8LaCXg==,type:str]
|
opencode-go-zen-key: ENC[AES256_GCM,data:fwgV/QK+4tpizC6J3evbGxD57BQCWn5Eyex7iIeNYCQHk6ZD8eTukqhUbLcfXyO4RQot3B1B2xbQVVBsuOWWcQYQKA==,iv:aKwQM8d0gP+MyuqWFk2VfOWDgKPcE/HAvL0I0r6o1nU=,tag:/AeSgscy0mxUMwoP8LaCXg==,type:str]
|
||||||
|
commandcode-key: ENC[AES256_GCM,data:LJBlDoYslglFOpJnySLdPx5sEv67wR/EzJahQh6rvMyCrSCLjqH8oErynYCaGjbAh5Rh+rKxp9vmnv03rxQiL114gxBipqUmzrr9lSUfesyZ2krhljFf6WFen2Q=,iv:IAP72IShIZoJEVdppGSl3/J5BO9GemPVHbHYjZck9+w=,tag:j1GpvC7981wKxPIZaLKyzA==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiZC9ZVlY2T0tXdy90b2hV
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvaG1YSUF0UUFmV0QzbFA1
|
||||||
dDUxUjNyMjllQStaa0tKRy9YVkNIdFJyWTI4CitYNnhxN3JHQ3lsWXp2Tmgwek9n
|
RnhlRVNWQ3h6R0xMcmIvM0EzNGJleUxSTTJzCi81QWpMdXJxQWYreE9DUnJGeHF6
|
||||||
Qzk1RUExZk5WcnlvUWptcmFQTFJNbWMKLS0tIFBtSkJOZUovTUxYeFZ3cnJ2Ukw0
|
SUI1d2wxY016dHhxSHdsL3NXUUt2SncKLS0tIENjMkJERFlMMEU0TVFFM1lubUtF
|
||||||
MkVQY3h2OGhGaGNnYkVJUU1kK3F3VWMKs9B74KovGxx8KL5q/lGA/imVRM/i3mo/
|
OTlaSlRPTUt5d3NjNVF4NFJaMkJsUUEKvjnPwfODT5D8pWp8lrksyfvpC822xZ0h
|
||||||
a6Rbxufscp3WWGMbo70w8tWuRsAnIpUGh3EvWCekZ9nOzeMiVA8I2Q==
|
GV4pwteQG/iIRDa71ScR8yolFaI6gZb8BMu93fdd130OHw1ySMGr0A==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0dXJzYndvSC92aElvTVpz
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkeHkyektGNEpEdzhySERs
|
||||||
SUtTOWFzcUJxOHVrTk5scm5tcGkzRmEvK1hVClNVbmp3ZjBRTW5ZNXVNNGh3dSti
|
VW1PVzgvUjZWbG5sbG8zTllvMWVzV0w4M2lrCnJHd3lqYXRDNEhBa2pRUmJCTXg3
|
||||||
RzdCcTFlVlBld1kwNnR6dVhtcllVMFkKLS0tIG1YK2dLcWdVU3dLUFFlOUtzb3Ex
|
Z3RTaXhuczV6QjV3MkV0RVFURlgxOHcKLS0tIHFKajZlMk84eGk3d05xVTR2ZzN0
|
||||||
Tk5Zd0h3OHRpQzZjazJKUStPUVdERzQKGnoKYKq7pPJUrcAWJ4/tm8mSxuthjssz
|
ajRQeW16ZzJZb1NhSVBwZlVtRGs0KzQKJfdPbIftdtckf5m4Tom+eiVhh888Y3Am
|
||||||
7IsjH4t6VCyug2c7XnLJpcE64yPD+GrXHYixP0r2qj80WMjpv7N7qA==
|
wDG0eui4p+fueF3Eirpwlei+KxMFlaXdpIBrnKL+Ep9lQtuF/Jh7Dg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLbGQ3MkVCUldqa3dYRTg0
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlZXJjNW54V1MwR1k3V3By
|
||||||
NjVoUDdIc0RvSU02R0o0ZVk4KzVQMkZmeXpjClJaUUU3WTJVQmJkRzV4UTc3bXFI
|
bUdIRFdBclJyVVdMVE1ucHNtcnBkTWpsNlUwCnJMUU8vd3Q5aHc4RU5NRzZpQnZQ
|
||||||
dmJsV0VhNmdvdVNaaUFTNWcwd1l3eGsKLS0tIG1Gc3FlNVduaXUybUFnSGF4T3lu
|
dTBIS2U5R09LQkFJZ1VkNHdtNnJaQ3cKLS0tIGcrKzNkS25BWGYzZUgzQTVUUzJo
|
||||||
QzhtM3V3VGFzdk9UenV6akxGNDh5d3cKdIKNPvM0GRJamiS4AXRNU+TbuZUnM6K7
|
a0d1Sm54enlZMEV3dXQzb1o5WlRwZlkKvLmWcazC7TYVJsozaxTnWv5xMLOuXYHf
|
||||||
FtC1dmHlyU/tXlFHv6TNlMZQtDgIVnE72Jvk48maq3oKiJAXWk11fg==
|
pU2KWjd6RRzoDKW/uizeTmXQzkYRWrrWW4PCXmOpK9XZt4iTJfuTqQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoOHlRcnRwWUYwUGRSVW9s
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsQ2hIdGc3eWorLzByV1RO
|
||||||
cmdDZjN1RGFRVWtlODBudGpaemd3UDBZcnhRCksyWlk3VW91a3pnOGNQQVppM09z
|
VVlzd0ZMUWVPMU4xWThsOUFtRkp6b1ZjQndZCkJJT2ZoZWxad0xzN2R3MnlDZlUw
|
||||||
Wmd3c09LK25OVGpJYWxvcm9XME03RG8KLS0tIEZkdERHZjhFWXkzZWNsM01nQmRs
|
NzRyUVllZ092RUhLUzZ6cHY4b3c0ZXcKLS0tIC9JN211V01TWG5VcjVOQ2Nuc3Na
|
||||||
bWFTMlhCL2IrZjlEOUFydmE4cHBzSmMKhIk8TZtRsIFKzopZCyp27SWYeHmf6jKn
|
c1NOaTg3ZVpRc0Q2TWV0djZqRFp1aE0KHDr4n+nbkRUKKdVgOm9+KU00hvLxR9Vs
|
||||||
VoIXQ6/VRRQjCYBsseZE5N+ycnr4ZC/RpXJ577G4TfGMCcixX67AfA==
|
2HwTIJEftEWZotf+0cuuEM6SBOpvitUeGC+ZsAoLg8upyFi0ewxqsg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuTG9LKzVvUjZEZ1lkMVJN
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5aWFUSmJQamdEOVcvRXlY
|
||||||
eldHSkRXQ241bnZmbHBmSXFNMU1seGcyaVNRCjNPaS9ITEJtdGRwOENDRytEMFk1
|
R2ZMYS9qM0Zna09ScjVCVWNHaUJTNVRuL1RrCmJyT1BzMEJkZkRLcHJGT3JmMXRx
|
||||||
L3cvVnRsa2lYUk1hOWZCdDNqT3F3TU0KLS0tIFQ3cU5YNEszQm03ZXFxWkJ2VVVW
|
azFWSHlBUStyV0tiNjllQm1nQVMxSTQKLS0tIFFYQlZOV3poTk9ZSThsVzBZVDdI
|
||||||
WTR2RU9GUVdsZHdleW1Gd2lyRENzSm8KznMUQ6Ah8O03AzZcCXgUIjjrV1cdkAnq
|
MWZ2TDZXR2IrQXV1a3BlQ3FoUGkwSHMKc5Br5nIbPTX9DjT/qJA14R6JfGbks0s7
|
||||||
Pbr2BwdLzJvlF5lzmymIZEt35euv/HzhJGWDLWGpYJmYj/N8qZgBuA==
|
lIZUvIflvKYYPRcpReijwmfPMAJFK9S0fRucDDW90APO1gYh7bJ4PA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSDNMRlNaMXB2ZXBPTlNu
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhWUprMUlDaVdCMXVIVnIx
|
||||||
eG5BWE5xRTNnVUFtN2psUFVHejZVbFVCQTBFCkRXQitoL0VJaXZmMlI3Q0JHVWk1
|
Qk9WMWlWeDNRd0dQVWNUdjR0VC9vUXlBbVRRCldBZWtOcEdua0oyOG8vaGg2SVJK
|
||||||
Zk1wR0loMVZLbytDdTE2Ky94eGljS0EKLS0tIHFxVGYrZlVVS3FsWENUdzRaVzVY
|
VWdJbzl3SHZDTmhTTVRwc09Jd2t0UFkKLS0tIFlhcUhyeEcwNDV3elE2K1VWWjlJ
|
||||||
Q0x4bDFBTzV2L0E3UXQxMUdubVJZRTgKcPQZ9zHQAFwP/Odnh5INleUsHSN06U+x
|
VHVyR1ZxUVFFNHRLU0FBQjI0WU9taU0KhBXUKdgr/gvMtIxJshXRmSyV3zua9Po4
|
||||||
X98535uapyJR/Wswxj6ukdciMOou8cLfOInLwJgWOf6mZklEhecVXA==
|
ucj3AsLEsicoUm0qypvbbxLaOgk3VVZ5ZVQzTGVbH7beDiIbCxCoHg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv
|
recipient: age15mxdhlvk7zxtqlw06cu29zdzk9jxjfgvx9s335wxyyk5r7wr9pvqv9894t
|
||||||
- enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTaE1mUUlyVUxKQmhPMnlT
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcnFnMWVhamFiYmlraFpp
|
||||||
eS81cE5TeE1WWFVIRkdWT3c0ckhNMnFYZGxrCnp4My9nK20zcGVxUFZ0cnVVTDBS
|
eXcyS3ZQRjk0T3gzZHhuaUNDeE5PeW54aDE0Ci9yaFFKT0FxNUpSUXNIazNCQWZC
|
||||||
QWtIQmVnM1lRV1ZtVXNGQ0dGdXNyOWsKLS0tIGIwM0JMM0JlZjBNaUQycEdudGlU
|
VStpc0NZWlZLM2drUDUrU0hvZXZURjQKLS0tIGJMKzdpSXdJaTA2RkdRbndMWVVy
|
||||||
bzJvaUg2VkFrazBoWmlIY2hKeUdhTjQKbgW+ysm3TWBKfVoKAeqvaPio29SyzjJP
|
bTVGSlFGczFpUHRoZ0Fnbkk5dTV1QzgKSuLf3KdRBsTPDDcqd2+rGU3y3lrCjEKO
|
||||||
61QsSqCuJyEwSPpOzeWa5NChcCjitOUG1jEMsSHlpIslKA1P7g/P9g==
|
eIMjTcvJO4GhmDIwNfvI/j2+2qPLMEkyfR6eTXXCB4YDibaUndN/9Q==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
recipient: age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp
|
recipient: age129rxje3pr8w5ulgszgmt98kt4kr06kdwhsg9js78sjte878ngf5qealch2
|
||||||
lastmodified: "2026-08-01T18:33:13Z"
|
lastmodified: "2026-08-30T23:52:17Z"
|
||||||
mac: ENC[AES256_GCM,data:sTTpvCTBPsY4OABqIvgujUT2+Yye+H44mxN3G3ybhoj05omgFajYN86sc3zL9vbiTl7SNxCWMkGCerCvS4QrtRZ0vRTNuYNkFPNHDKniSybbxKzjHqyXWGCOoNYqHW211ktB9vmiXQd+zYart87kUU6d6p2FrVDBLU03eQwJO6k=,iv:8zT8W34A8f/EXRYxFeK2PC2Ko6UrjFrPL5+lwNXpb4Q=,tag:WugeYbmrVcUZ9xVC+r3c7w==,type:str]
|
mac: ENC[AES256_GCM,data:SJJtGZ842iStZ2RFIeEGLhHnrwOp6f6mDS5T80ldxmS2aD/o+3k6TlGKHuUM302+Gflksb7dwSdj0VUFhV6HIalYUO9exo2b37AEwACDt8HKs5QF1ruJ8/vz5vW9EpOvFH2wpGKSbczpc9RDsn8AVUo26G06SubUDWLk3fjCRl8=,iv:9DrnXEsgwC9ZSJJ6f5AZN9fjzeRGXqA5ZpBB0SQhiLo=,tag:MOpn7wbn845NwKkYTXRzYg==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.13.3
|
version: 3.13.3
|
||||||
|
|||||||
@@ -2,70 +2,70 @@ namedotcom_api__key: fbf0bc2133da020b64bbe9c884f616afe59dfdf7
|
|||||||
test: test
|
test: test
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
- enc: |
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaU0s5VEszVDU4UlE2MDRi
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUTzdydzQraXExRzJueUtn
|
||||||
eXBGNXU1Si9TZng4U1lrSjMvajQ2WmhIQkgwCitjM2owU0kwTXlGNy90ZHM3TEhY
|
dDZGdXJoR090cjRUZXlRMk5kaDlUOU1lWUU0Clh1aDBDYkxZMTRBakJsNFJ1K2VT
|
||||||
ZmlnSUtZcXFCUkdCNmxsL0lDWHIwQXMKLS0tIEtaWGVCbWJKOHl0SW5EUWVqRWgz
|
L1RLNHNaNDAxSW1xR01nTWZsRm01cFUKLS0tIEVuVUFzZmR6SmVrSytoaFl5eTBW
|
||||||
bUI2bFdONHBIMTA4Rks4dytIK0NSZmsK6gzcg+iYzt01tnptnuSGXHqBt+T9o9hP
|
VE50c0dCRGVuNS9MbmptUTVYSkFLbTgKh4ZsKbDK3TcIYqoeWEB87W7sJhKGnmnJ
|
||||||
0gqLXgsfB+4OxRoMJVMEyecz9SX5+j6sWNQoRVQY1CGJoIucrpFrpg==
|
ffIASIUv8YpJAoonspPMl0e2yjmRb1HpxM53JTOwbM5rRzia89VRow==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmTlN4YlBnTS93ZTh2STFr
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWM2FPdFRvUTU2cU1Vd0pP
|
||||||
Nng0YTNmeEw2N0ZXV0N0VVJaQjh4bldNS2xjCnYyMWxOb2hiR0Vwb1FXNmh6eitE
|
SXNpZkhyVUkrM1htK0dpRGxvb1FKUXBWTUVnClNPNGtYclJDNURieEpIS2pIYzBt
|
||||||
N1BMWFpXNElyNkJQNGJ6NUFzT3VOOVEKLS0tIG5MUXgzMEpMWGVGVnBubmRVM0hr
|
YVNvMmdnTXViVHNrNGNHRmpndlNBQ3cKLS0tIHJxZWp2OFEyUS9aRVhLVk5XMzlP
|
||||||
QjdQUkoyWHE2M05nSkZXNWpBTXdnN2cKEB3JndFHK/bFMx7zf3y/wfEALJIDO85u
|
OS83eXdZWnBhNzhSeU5UWEMwKzJBc2MKRRq9CHKpP91fZNMDGEVmZFss5s9D3LIs
|
||||||
RCKs6jIAztc3ElNDaKsIYRoF1VmrQSOvpk5ZJ1NytFcetNXvOR1KXw==
|
r8BgdSqg5MACnFSCTa6l6oYXq8JnMeg01K46vyauSb6jDMOJ2yGVZQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6dDVCcHlKT1hVYUh5bXVk
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMcEF1NWNrU2pTcHlPQVhG
|
||||||
cGtZWExJWlQxOVNDWkwrWU9hTi9iT2RLVW5RCjEveHczRDVsWkIyRWIvMTEzRyt6
|
dnZzbUZxVG0rVXBhMCtqSElWaTBGb2txalcwCllITmlKdnhrYnFWTU4vTExOTldW
|
||||||
ZWkzUDhqMVZjT1VKM0tvWjlEdy9DZGsKLS0tIDB0T1gyaTZ6a1JIaGF3dVhEcmdZ
|
Z0Y4c25reUZNLzc0dzY3aVAwejNiajQKLS0tIFgzOXd4T3pxZ0JVZDJOQzA1ekJz
|
||||||
Yzl6QnAyU3l0QkhJQVpTN1ovY1hEUXMKiEPWh4isOmF2MdU6ENPNmwQgAOV7PleP
|
eE5zNXRwYjQ1R1NDOHA3SWhtVHVJWG8KY6XA08Ow+bhc5k+LmumzCqVWZ5G70Spj
|
||||||
88PLtUx2K6VKjWPIHknIZ5esoXPVjJXeawDAdSj4gz91A1DrcrYXWA==
|
+I5PrnlLg+9IPUm6ht8uE/+GdaOqjjgOHChTb8zTD7Cxv8Ymm68ydg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwdXcwejJSejkwT3BuSURo
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFRkM2VExXREptVW1BQlZG
|
||||||
MEluK3plUVdmVG8wcmw3SkI2dThBd1FOZDJzCmg2cHRZMEZIWENiTWdvdWtveTY2
|
ZW92ekZRZ3lKdmEyMnc0dFA1QXp1SFdpcUVBCi9qbzNFRUFoTmxYQnFPNXdibm1n
|
||||||
TlN3MkhPT0N4enN3RlBJbWNUK1N0QXMKLS0tIEFOT2J6VlpLWmduK2pWalIvOWNo
|
OVAvNUhrWm83aGhWUXVtV050VHlVT2MKLS0tIEZPRDBwd05XL0hQcGE0WkMweHFh
|
||||||
NFhiM1lWcExhcXBrZm8rMzc5WXJoeDAKSXHnzBymsLhXaxHipZig+xfpBjYaADu/
|
Z3g0T1pZWW4yYXlPVVdQMDBJU1ozU0EKhV/d5gYZuBo/xmVB3Ce6CVG45GHeiJZQ
|
||||||
AqOXpfLbZQD15oIMg8+vNR2OOzqRRSq8oY2yI1rhkjZtlTxGiuzANw==
|
Z8HfKMcBD8DoWjodruuZzGotwotDLXzFLL+NW4BExh4PF+Enqr1dUQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMUhGMURUdzh4MFgzNDlC
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIS3A4QiszRmlVMzdhK0E1
|
||||||
Nzh0UW5WNUh1MDhEQnBod2E5OEVqMmhiTVVrCitmbk1uWkY5Q09COGZRZ2xhNXBl
|
dkdCVThrYlpRbG9OVUJySDcrTmFlVXRWZW5ZCk14Rlp4VW1JdlhmZk9POUc4WjhD
|
||||||
bnlVUmxDb2FQT0xPN0F3SkgyTVRpWjgKLS0tIGdWN1ptVTlhNUZtTU11VDFMSFlM
|
SXZwdlJKRjFwS2ttRis3WEFmT3dTZVkKLS0tIDZTOHd0RzNmekE2ODRMcy9sV0Zo
|
||||||
djVyTzMyRHA1QnlvdEtaNE5URXVDS00KH+9tHTwQqI7uLubVWfU1IZ19WWDPA9Br
|
QzVTOTU5bGVCR0N4YXJEcVZWL2N4S0UKf/JY8ue8QiBC5BPxO5hArxgES7Us3N4O
|
||||||
HrnX4nn0AITQCWUkAqWVyGVP5pk5YmlmazLE6xyBz+i2ETT11DHVMw==
|
XLO6+/KrxwemgE8Eubf3J8NUe7cV8sVoxDSrx79LbQkgIq/AdWjfVA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv
|
recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ZGJ4bWNsR0tOa0g5Ym1M
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNeFY0SDlxR0Y1dW5UUHI0
|
||||||
UTJlRS9XRnNaOVBOd3dkS0tmaVJlZU5yd2xVClR0WU1nTnZud0RzeHZERUFRYzRE
|
UlByQmlIWUlyWEpwb1ptL0svTllnTkVXbWdzCjhIZ05PMkJpWHZzWnpJMUxRVUdV
|
||||||
bmp1OXorQ09LRzZyUEs1SXlvenZIOVkKLS0tIHBvakxTSTkxZXdBQmpVRWF5YUtF
|
VkFKTjU4VXFCbTh1cnF3cjlwSTY1dTgKLS0tICtGbnZGSzkzc1RmdTMrd3Z2NHdG
|
||||||
QnBNcU1ibytoNDZCU1lldzczV0xjUzgK6gIlN6PYv8+ZGhdMuOSVHIkzZ9sU5kvI
|
MGUxR25naDFJSjdqNUx0QjRmdHh1K3cKGcE1BgLs0c0UtrPcxk/L8WTo6Bd4VMsh
|
||||||
ZpB+JirAJzFpYEz2IyT21XKNq9phqyj9lzzinvJQQ7wxsI6ixaiBDQ==
|
uklBQ6vpc6RWNJ32ROXKCekLFSpbsD4qMwfvb4mOG6nXfwPWytnVHA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp
|
recipient: age15mxdhlvk7zxtqlw06cu29zdzk9jxjfgvx9s335wxyyk5r7wr9pvqv9894t
|
||||||
enc: |
|
- enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6NVU4dUR2Y3hXbWdrdXNN
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoYWdqK2oyTEdZTGtKV2kr
|
||||||
Rjh4VEE2M1NiTTZiWmpjVXQzSGxSS0l3a1I4Ci95ZUVhbTFtTHNLa3BvRnJRUjda
|
cUlNNjZWUEU3MGlkTzFISGsvR2JrOXdtOHd3ClV2WEtaYVAwbHg4MlkwRjNnei9h
|
||||||
aVIyREZiL1phNU16OERZSDBvRGovVVUKLS0tIHpGdkh1L280TVp1MnE0L1Q1Z3FV
|
NmZ1N3lhUklxd2FSdGdyM3ZRSXRnZDAKLS0tIGhweFdoK1R2N2x1bmQvWXdYek9u
|
||||||
QnNTaHVsSVh2UmNRVzZ3a082ZjRRbmcKgjnhtWweNUAbmxpb+nN3iL9FOsaXCatu
|
L05NZ0piWkdUTUIvdld6a1Y4WVRsRE0K3m8CLO2V2l3DJ7T/EXbqCdYDK/INqmUj
|
||||||
NyS4pTov3WR9c7SLhDLlbqxeeqd7mBDKLhWiuqiW05J5NQ+g5lXf7g==
|
Eu9wliqeIOF5Lg3IrmB3WkOafxVw8HAVB+htkwwvD8MYk9/XubbQvw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
recipient: age129rxje3pr8w5ulgszgmt98kt4kr06kdwhsg9js78sjte878ngf5qealch2
|
||||||
|
encrypted_regex: ^(data|stringData)$
|
||||||
lastmodified: "2026-02-14T00:09:32Z"
|
lastmodified: "2026-02-14T00:09:32Z"
|
||||||
mac: ENC[AES256_GCM,data:nYWQYK5QOA0u3DYGTozSGFMYhx2uMqkAWoqhthgagRFRnKA/j852fVKqRFcwn+fPSQ4e8i4WpcvoM7FVwuFDC+ixNp7xtz16pnswiNS4N/mNEYXfajkon7wIoUYNtrHahUeYlAnID0vYSQFA3XKgV7ZDD9b4V8X5N+yMlVXex4c=,iv:IW7276v0nnmFBe9Z7HIn6Tl9vX4sDoqWdDfJ1uwKoAY=,tag:YC8OiTcoL+nYV4x8rkivbg==,type:str]
|
mac: ENC[AES256_GCM,data:nYWQYK5QOA0u3DYGTozSGFMYhx2uMqkAWoqhthgagRFRnKA/j852fVKqRFcwn+fPSQ4e8i4WpcvoM7FVwuFDC+ixNp7xtz16pnswiNS4N/mNEYXfajkon7wIoUYNtrHahUeYlAnID0vYSQFA3XKgV7ZDD9b4V8X5N+yMlVXex4c=,iv:IW7276v0nnmFBe9Z7HIn6Tl9vX4sDoqWdDfJ1uwKoAY=,tag:YC8OiTcoL+nYV4x8rkivbg==,type:str]
|
||||||
encrypted_regex: ^(data|stringData)$
|
|
||||||
version: 3.11.0
|
version: 3.11.0
|
||||||
|
|||||||
@@ -14,6 +14,12 @@
|
|||||||
imports = [
|
imports = [
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
];
|
];
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
# Sops's go version went EOL, https://github.com/Mic92/sops-nix/issues/983
|
||||||
|
(final: prev: {
|
||||||
|
buildGo125Module = prev.buildGoModule;
|
||||||
|
})
|
||||||
|
];
|
||||||
sops = {
|
sops = {
|
||||||
age.keyFile = "/home/doloro/.config/sops/age/keys.txt"; # must have no password!
|
age.keyFile = "/home/doloro/.config/sops/age/keys.txt"; # must have no password!
|
||||||
# I HATE YOU
|
# I HATE YOU
|
||||||
@@ -26,6 +32,12 @@
|
|||||||
imports = [
|
imports = [
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
# Sops's go version went EOL, https://github.com/Mic92/sops-nix/issues/983
|
||||||
|
(final: prev: {
|
||||||
|
buildGo125Module = prev.buildGoModule;
|
||||||
|
})
|
||||||
|
];
|
||||||
sops = {
|
sops = {
|
||||||
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
||||||
defaultSopsFile = ./content/secrets.yaml;
|
defaultSopsFile = ./content/secrets.yaml;
|
||||||
|
|||||||
@@ -6,7 +6,8 @@
|
|||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
flake-file.inputs = {
|
flake-file.inputs = {
|
||||||
x1e-kernel.url = "git+https://git.scug.io/nikkuss/x1e-nixos.git";
|
x1e-kernel.url = "git+ssh://git@git.scug.io:/nikkuss/x1e-staging.git?ref=staging";
|
||||||
|
x1e-kernel.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
modules.surface-patches = {
|
modules.surface-patches = {
|
||||||
nixos =
|
nixos =
|
||||||
@@ -16,9 +17,58 @@
|
|||||||
x1e-kernel.nixosModules.default
|
x1e-kernel.nixosModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
x1e.model = "15"; # "13" (default) or "15" — selects the correct DTB
|
# x1e.model = "15"; # "13" (default) or "15" — selects the correct DTB
|
||||||
x1e.cpuParking = false; # loads cpu_parking at boot
|
# x1e.cpuParking = false; # loads cpu_parking at boot
|
||||||
x1e.ecReboot = true; # loads ec_reboot at boot, exposes /sys/kernel/ec_reboot/reboot
|
# x1e.ecReboot = true; # loads ec_reboot at boot, exposes /sys/kernel/ec_reboot/reboot
|
||||||
|
x1e = {
|
||||||
|
model = "15";
|
||||||
|
cpuParking = false;
|
||||||
|
ecReboot = true;
|
||||||
|
el2 = {
|
||||||
|
debugTools = false;
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
iso = {
|
||||||
|
enable = true;
|
||||||
|
modules = [ ];
|
||||||
|
};
|
||||||
|
msm = {
|
||||||
|
extraPatches = [ ];
|
||||||
|
};
|
||||||
|
pmSdamTrace = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
psr = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
ramoops = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
spiHid = {
|
||||||
|
# drivers = [ "legacy" ];
|
||||||
|
legacy = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
v4 = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ssamPmNotifier = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
ssamRequestTimeout = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
touchscreen = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
systemIdleState = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
video = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Prevent reboot hang - qcom_smd_qrtr workers stuck in D-state
|
# Prevent reboot hang - qcom_smd_qrtr workers stuck in D-state
|
||||||
systemd.settings.Manager.DefaultTimeoutStopSec = "15s";
|
systemd.settings.Manager.DefaultTimeoutStopSec = "15s";
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{ modules, inputs, ... }:
|
||||||
|
{
|
||||||
|
flake-file.inputs = {
|
||||||
|
iptsd.url = "git+ssh://git@git.scug.io:/nikkuss/iptsd-rs.git?ref=main";
|
||||||
|
iptsd.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
modules.surface-touchpad = {
|
||||||
|
nixos = {
|
||||||
|
imports = [ inputs.iptsd.nixosModules.default ];
|
||||||
|
config.services.iptsd-rs.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
"wheel"
|
"wheel"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
|
"dialout"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -42,15 +42,9 @@
|
|||||||
];
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
wayland.windowManager.hyprland.extraLuaFiles = lib.mkIf settings.default {
|
wayland.windowManager.hyprland.settings.bind = lib.mkIf settings.default [
|
||||||
"zen-browser-bind.lua" = {
|
{ _args = [ "SUPER + E" (lib.generators.mkLuaInline ''hl.dsp.exec_cmd("zen")'') ]; }
|
||||||
autoLoad = true;
|
];
|
||||||
content = ''
|
|
||||||
-- Zen launcher bind (lua config: settings.bind cannot express dispatchers)
|
|
||||||
hl.bind("SUPER + E", hl.dsp.exec_cmd("zen"))
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(pkgs.wrapFirefox
|
(pkgs.wrapFirefox
|
||||||
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped
|
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped
|
||||||
|
|||||||
Generated
+452
-243
File diff suppressed because it is too large
Load Diff
@@ -3,10 +3,11 @@
|
|||||||
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config);
|
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./config);
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
barbar.url = "git+https://git.scug.io/doloro/barbar?ref=master";
|
||||||
den.url = "github:vic/den?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64";
|
den.url = "github:vic/den?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64";
|
||||||
direnv-instant.url = "github:Mic92/direnv-instant";
|
direnv-instant.url = "github:Mic92/direnv-instant";
|
||||||
disko.url = "github:nix-community/disko";
|
disko.url = "github:nix-community/disko";
|
||||||
flake-file.url = "github:vic/flake-file";
|
flake-file.url = "github:denful/flake-file";
|
||||||
flake-parts = {
|
flake-parts = {
|
||||||
url = "github:hercules-ci/flake-parts";
|
url = "github:hercules-ci/flake-parts";
|
||||||
inputs.nixpkgs-lib.follows = "nixpkgs";
|
inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
@@ -23,7 +24,11 @@
|
|||||||
};
|
};
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
||||||
import-tree.url = "github:vic/import-tree";
|
import-tree.url = "github:denful/import-tree";
|
||||||
|
iptsd = {
|
||||||
|
url = "git+ssh://git@git.scug.io:/nikkuss/iptsd-rs.git?ref=main";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
nik-pkgs = {
|
nik-pkgs = {
|
||||||
url = "git+https://git.scug.io/nikkuss/pkgs.git?ref=main";
|
url = "git+https://git.scug.io/nikkuss/pkgs.git?ref=main";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -51,7 +56,10 @@
|
|||||||
url = "github:nix-community/stylix";
|
url = "github:nix-community/stylix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
x1e-kernel.url = "git+https://git.scug.io/nikkuss/x1e-nixos.git";
|
x1e-kernel = {
|
||||||
|
url = "git+ssh://git@git.scug.io:/nikkuss/x1e-staging.git?ref=staging";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
zen-browser = {
|
zen-browser = {
|
||||||
url = "github:youwen5/zen-browser-flake";
|
url = "github:youwen5/zen-browser-flake";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|||||||
Reference in New Issue
Block a user