From 8b563768038083a96f13a1229bec27f152a2f2e7 Mon Sep 17 00:00:00 2001 From: 4DBug <4DBug@github.com> Date: Mon, 24 Aug 2026 04:02:10 -0500 Subject: [PATCH] push --- flake.lock | 21 +++++ flake.nix | 9 +- modules/core/desktop/niri.nix | 138 ++++++++++++++++++++++++++-- modules/core/desktop/noctalia.nix | 8 +- modules/hosts/styx.nix | 3 +- modules/software/fish.nix | 2 - modules/software/llm/ollama.nix | 8 +- modules/software/llm/opencode.nix | 8 +- modules/software/social/nixcord.nix | 2 +- modules/users/bug.nix | 6 +- 10 files changed, 180 insertions(+), 25 deletions(-) diff --git a/flake.lock b/flake.lock index fee782c..c0751d2 100644 --- a/flake.lock +++ b/flake.lock @@ -1200,6 +1200,26 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1787540539, + "narHash": "sha256-q6ewgZm6eAgdHWIaOV+dwR5/x711AfDUsao3nQ/CdyA=", + "owner": "noctalia-dev", + "repo": "noctalia", + "rev": "a4324409f4f07001d33fbf902be49377ee6b62e2", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": [ @@ -1253,6 +1273,7 @@ "nixpkgs-lib": [ "nixpkgs" ], + "noctalia": "noctalia", "stylix": "stylix", "systems": "systems_5" } diff --git a/flake.nix b/flake.nix index 9e8e223..28d8d5a 100644 --- a/flake.nix +++ b/flake.nix @@ -79,7 +79,14 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - niri.url = "github:sodiboo/niri-flake"; + niri = { + url = "github:sodiboo/niri-flake"; + }; + + noctalia = { + url = "github:noctalia-dev/noctalia"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; diff --git a/modules/core/desktop/niri.nix b/modules/core/desktop/niri.nix index 2094104..810f57b 100644 --- a/modules/core/desktop/niri.nix +++ b/modules/core/desktop/niri.nix @@ -1,20 +1,146 @@ -{ inputs, ...}: { +{ inputs, ... }: { den.aspects.niri = { - homeManager = { pkgs, lib, ...}: { - imports = [ inputs.niri.nixosModules.niri ]; + nixos = { pkgs, lib, ... }: { + services.displayManager = { + sessionPackages = [ pkgs.niri ]; + }; + }; + + homeManager = { pkgs, lib, ... }: { + imports = [ inputs.niri.homeModules.niri ]; + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; programs.niri = { enable = true; + package = pkgs.niri; + settings = { + spawn-at-startup = [ + { argv = [ "noctalia" "--daemon" ]; } + ]; + input.keyboard = { xkb.layout = "us,ua"; }; - layout.gaps = 5; + layout = { + gaps = 10; + border.enable = false; + focus-ring = { + enable = true; + width = 2; + active.color = "#cba6f7"; + }; + preset-column-widths = [ + { proportion = 0.50; } + { proportion = 1.00; } + ]; + default-column-width = { proportion = 1.00; }; + }; + window-rules = [ + { + geometry-corner-radius = { + top-left = 12.0; + top-right = 12.0; + bottom-left = 12.0; + bottom-right = 12.0; + }; + clip-to-geometry = true; + draw-border-with-background = true; + } + { + matches = [ + { app-id = "dev.noctalia.Noctalia"; } + ]; + open-floating = true; + default-column-width = { + fixed = 1080; + }; + default-window-height = { + fixed = 920; + }; + geometry-corner-radius = { + top-left = 12.0; + top-right = 12.0; + bottom-left = 12.0; + bottom-right = 12.0; + }; + clip-to-geometry = true; + draw-border-with-background = true; + } + ]; binds = { - "Mod+T".spawn-sh = lib.getExe pkgs.cosmic-term; - "Mod+Q".close-window = null; + "Mod+T".action.spawn = "cosmic-term"; + "Mod+D".action.spawn-sh = "noctalia msg panel-toggle launcher"; + "Mod+V".action.spawn-sh = "noctalia msg panel-toggle clipboard"; + "Mod+N".action.spawn-sh = "noctalia msg panel-toggle control-center"; + "Mod+Comma".action.spawn-sh = "noctalia msg settings-toggle"; + "Control+Alt+Delete".action.spawn-sh = "noctalia msg panel-toggle session"; + "XF86AudioRaiseVolume".action.spawn-sh = "noctalia msg volume-up"; + "XF86AudioLowerVolume".action.spawn-sh = "noctalia msg volume-down"; + "XF86AudioMute".action.spawn-sh = "noctalia msg volume-mute"; + "XF86MonBrightnessUp".action.spawn-sh = "noctalia msg brightness-up"; + "XF86MonBrightnessDown".action.spawn-sh = "noctalia msg brightness-down"; + # Media + "XF86AudioPlay".action.spawn = [ "playerctl" "play-pause" ]; + "XF86AudioNext".action.spawn = [ "playerctl" "next" ]; + "XF86AudioPrev".action.spawn = [ "playerctl" "previous" ]; + "XF86AudioStop".action.spawn = [ "playerctl" "stop" ]; + "Mod+W".action.spawn-sh = "noctalia msg panel-toggle wallpaper"; + # Window management + "Mod+Q".action.close-window = {}; + "Mod+Space".action.toggle-window-floating = {}; + "Mod+Shift+Space".action.switch-focus-between-floating-and-tiling = {}; + "Mod+F".action.switch-preset-column-width = {}; + "Mod+Shift+F".action.fullscreen-window = {}; + # Focus + "Mod+H".action.focus-column-left = {}; + "Mod+J".action.focus-window-down = {}; + "Mod+K".action.focus-window-up = {}; + "Mod+L".action.focus-column-right = {}; + # Move windows + "Mod+Shift+H".action.set-column-width = "-10%"; + "Mod+Shift+L".action.set-column-width = "+10%"; + "Mod+Shift+J".action.set-window-height = "+10%"; + "Mod+Shift+K".action.set-window-height = "-10%"; + "Mod+Control+H".action.consume-or-expel-window-left = {}; + "Mod+Control+L".action.consume-or-expel-window-right = {}; + "Mod+Control+K".action.move-window-up = {}; + "Mod+Control+J".action.move-window-down = {}; + # Screenshots + "Mod+Shift+S".action.spawn = [ "noctalia" "msg" "screenshot-region" ]; + # Workspaces + "Mod+1".action.focus-workspace = 1; + "Mod+2".action.focus-workspace = 2; + "Mod+3".action.focus-workspace = 3; + "Mod+4".action.focus-workspace = 4; + "Mod+5".action.focus-workspace = 5; + "Mod+6".action.focus-workspace = 6; + "Mod+7".action.focus-workspace = 7; + "Mod+8".action.focus-workspace = 8; + "Mod+9".action.focus-workspace = 9; + "Mod+0".action.focus-workspace = 10; + "Mod+Shift+1".action.move-window-to-workspace = [ { focus = false; } 1 ]; + "Mod+Shift+2".action.move-window-to-workspace = [ { focus = false; } 2 ]; + "Mod+Shift+3".action.move-window-to-workspace = [ { focus = false; } 3 ]; + "Mod+Shift+4".action.move-window-to-workspace = [ { focus = false; } 4 ]; + "Mod+Shift+5".action.move-window-to-workspace = [ { focus = false; } 5 ]; + "Mod+Shift+6".action.move-window-to-workspace = [ { focus = false; } 6 ]; + "Mod+Shift+7".action.move-window-to-workspace = [ { focus = false; } 7 ]; + "Mod+Shift+8".action.move-window-to-workspace = [ { focus = false; } 8 ]; + "Mod+Shift+9".action.move-window-to-workspace = [ { focus = false; } 9 ]; + "Mod+Shift+0".action.move-window-to-workspace = [ { focus = false; } 10 ]; + "Mod+Ctrl+1".action.move-window-to-workspace = 1; + "Mod+Ctrl+2".action.move-window-to-workspace = 2; + "Mod+Ctrl+3".action.move-window-to-workspace = 3; + "Mod+Ctrl+4".action.move-window-to-workspace = 4; + "Mod+Ctrl+5".action.move-window-to-workspace = 5; + "Mod+Ctrl+6".action.move-window-to-workspace = 6; + "Mod+Ctrl+7".action.move-window-to-workspace = 7; + "Mod+Ctrl+8".action.move-window-to-workspace = 8; + "Mod+Ctrl+9".action.move-window-to-workspace = 9; + "Mod+Ctrl+0".action.move-window-to-workspace = 10; }; }; }; diff --git a/modules/core/desktop/noctalia.nix b/modules/core/desktop/noctalia.nix index 0db3279..4e8f6a1 100644 --- a/modules/core/desktop/noctalia.nix +++ b/modules/core/desktop/noctalia.nix @@ -1,3 +1,9 @@ -{ +{ inputs, ...}: { + den.aspects.noctalia = { + nixos = { ... }: { + imports = [ inputs.noctalia.nixosModules.default ]; + programs.noctalia.enable = true; + }; + }; } diff --git a/modules/hosts/styx.nix b/modules/hosts/styx.nix index 3f89fbc..8bb07a0 100644 --- a/modules/hosts/styx.nix +++ b/modules/hosts/styx.nix @@ -17,7 +17,8 @@ #nix7 - #niri + niri + noctalia ]; nixos = { diff --git a/modules/software/fish.nix b/modules/software/fish.nix index 0461e52..35bfc4d 100644 --- a/modules/software/fish.nix +++ b/modules/software/fish.nix @@ -1,8 +1,6 @@ { den.aspects.fish = { nixos = { pkgs, ...}: { - environment.sessionVariables.SHELL = "${pkgs.fish}"; - programs.fish = { shellAliases = { fetch = "fastfetch --file ~/nix/nix.ans"; diff --git a/modules/software/llm/ollama.nix b/modules/software/llm/ollama.nix index f76984e..5979d0c 100644 --- a/modules/software/llm/ollama.nix +++ b/modules/software/llm/ollama.nix @@ -2,13 +2,13 @@ den.aspects.llama = { nixos = { pkgs, lib, ... }: { environment.systemPackages = [ pkgs.cloudflared ]; - environment.etc."cloudflared/9c1a18f9-a2c4-41bd-9a64-86ebb3e3283d.json".source = "/home/bug/.cloudflared/9c1a18f9-a2c4-41bd-9a64-86ebb3e3283d.json"; + environment.etc."cloudflared/608ba37a-1be8-49e8-be2d-abeb8b77081d.json".source = "/home/bug/.cloudflared/608ba37a-1be8-49e8-be2d-abeb8b77081d.json"; services.cloudflared = { enable = true; tunnels = { - "9c1a18f9-a2c4-41bd-9a64-86ebb3e3283d" = { - credentialsFile = "/etc/cloudflared/9c1a18f9-a2c4-41bd-9a64-86ebb3e3283d.json"; + "608ba37a-1be8-49e8-be2d-abeb8b77081d" = { + credentialsFile = "/etc/cloudflared/608ba37a-1be8-49e8-be2d-abeb8b77081d.json"; ingress = { "llama.bug.tools" = "http://127.0.0.1:8080"; @@ -19,7 +19,7 @@ }; }; - systemd.services."cloudflared-tunnel-9c1a18f9-a2c4-41bd-9a64-86ebb3e3283d".environment = { + systemd.services."cloudflared-tunnel-608ba37a-1be8-49e8-be2d-abeb8b77081d".environment = { TUNNEL_TRANSPORT_PROTOCOL = pkgs.lib.mkForce "http2"; }; diff --git a/modules/software/llm/opencode.nix b/modules/software/llm/opencode.nix index d437f5e..d9c04ce 100644 --- a/modules/software/llm/opencode.nix +++ b/modules/software/llm/opencode.nix @@ -9,16 +9,16 @@ let npm = "@ai-sdk/openai-compatible"; name = "llama.cpp"; options.baseURL = "https://llama.bug.tools/v1"; - models.qwen3.6-35b-a3b.name = "qwen3.6-35b-a3b"; + models."qwen3.6-35b-a3b".name = "qwen3.6-35b-a3b"; }; }; }); in { den.aspects.opencode = { - nixos = { ... }: { - # opencode config: ${opencode-json} + nixos = { pkgs, ... }: { + environment.systemPackages = [ pkgs.opencode ]; }; - home-manager = { ... }: { + homeManager = { ... }: { home.file.".config/opencode/opencode.json".source = opencode-json; }; }; diff --git a/modules/software/social/nixcord.nix b/modules/software/social/nixcord.nix index 352ec1b..1fc69bd 100644 --- a/modules/software/social/nixcord.nix +++ b/modules/software/social/nixcord.nix @@ -85,7 +85,7 @@ disableCallIdle.enable = true; - ClearURLs.enable = true; + clearUrls.enable = true; }; }; }; diff --git a/modules/users/bug.nix b/modules/users/bug.nix index bdcdb2b..6ab61d5 100644 --- a/modules/users/bug.nix +++ b/modules/users/bug.nix @@ -1,13 +1,9 @@ { den, ... }: { den.aspects.bug = { includes = [ + den.batteries.host-aspects den.provides.primary-user (den.provides.user-shell "fish") - den.aspects.stylix - den.aspects.librewolf - den.aspects.catppuccin - #den.provides.home-manager - #den.aspects.niri ]; homeManager = {