diff --git a/flake.lock b/flake.lock index fa149dc..e0fba75 100644 --- a/flake.lock +++ b/flake.lock @@ -250,6 +250,19 @@ "type": "github" } }, + "nixpkgs_5": { + "locked": { + "lastModified": 1784796856, + "narHash": "sha256-vwxWgF+Gj276WznzGb1LxGsK/39HaQwgQXiU3EkC844=", + "rev": "e2587caef70cea85dd97d7daab492899902dbf5d", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1040357.e2587caef70c/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, "noctalia": { "inputs": { "nixpkgs": [ @@ -300,6 +313,7 @@ "nixpkgs": "nixpkgs_4", "noctalia": "noctalia", "noctalia-greeter": "noctalia-greeter", + "spicetify-nix": "spicetify-nix", "zen-browser": "zen-browser" } }, @@ -341,6 +355,40 @@ "type": "github" } }, + "spicetify-nix": { + "inputs": { + "nixpkgs": "nixpkgs_5", + "systems": "systems" + }, + "locked": { + "lastModified": 1785048222, + "narHash": "sha256-LjFVfwxensz76SjnvofF1Jsw+xTLd8Qp31W0J6nh2XI=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "17e524f330c282d31c32dfe076222d4a12277886", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "xwayland-satellite-stable": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index c1fe44a..eedb432 100644 --- a/flake.nix +++ b/flake.nix @@ -38,6 +38,8 @@ niri.url = "github:sodiboo/niri-flake"; + spicetify-nix.url = "github:Gerg-L/spicetify-nix"; + }; # Flake outputs diff --git a/hosts/Styx/configuration.nix b/hosts/Styx/configuration.nix index 6c4c47c..1bfd035 100644 --- a/hosts/Styx/configuration.nix +++ b/hosts/Styx/configuration.nix @@ -128,6 +128,8 @@ efibootmgr nautilus + bibata-cursors + ]; services.hardware.openrgb = { @@ -137,6 +139,12 @@ server.port = 6742; }; + environment.sessionVariables = { + NIXOS_OZONE_WL = "1"; + XCURSOR_THEME = "Bibata-Modern-Classic"; + XCURSOR_SIZE = "24"; + }; + environment.variables = { # for compiling openssl for nixos, should refactor into a diff file later PKG_CONFIG_PATH = "${pkgs.openssl.dev}/lib/pkgconfig"; diff --git a/modules/home/apps/default.nix b/modules/home/apps/default.nix index 8bf0194..0d85ae1 100644 --- a/modules/home/apps/default.nix +++ b/modules/home/apps/default.nix @@ -1,5 +1,17 @@ -{ +{ pkgs, ... }: { + + imports = [ + ./orbstack.nix + ./spicetify.nix + ]; + + home.packages = + if pkgs.stdenv.isLinux then + with pkgs; + [ + vesktop + ] + else + [ ]; - imports = [./orbstack.nix]; - } diff --git a/modules/home/apps/spicetify.nix b/modules/home/apps/spicetify.nix new file mode 100644 index 0000000..bb5db2b --- /dev/null +++ b/modules/home/apps/spicetify.nix @@ -0,0 +1,33 @@ +{ + inputs, + lib, + pkgs, + config, + ... +}: +with lib; +let + cfg = config.nyx.spicetify; + spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; +in +{ + options.nyx.spicetify = { + enable = mkEnableOption "spicetify "; + }; + + config = mkIf (cfg.enable && pkgs.stdenv.isLinux) { + + programs.spicetify = { + enable = true; + enabledExtensions = with spicePkgs.extensions; [ + adblockify + hidePodcasts + shuffle + ]; + theme = spicePkgs.themes.catppuccin; + colorScheme = "mocha"; + }; + + }; + +} diff --git a/modules/home/term/ghostty/ghostty/config b/modules/home/term/ghostty/ghostty/config index 1e245ac..8e3ceac 100644 --- a/modules/home/term/ghostty/ghostty/config +++ b/modules/home/term/ghostty/ghostty/config @@ -93,8 +93,8 @@ keybind = super+9=unbind keybind = super+f=unbind # theme = Catppuccin Mocha -# theme = Monokai Classic theme = Monokai Pro +# theme = noctalia window-decoration = none diff --git a/modules/home/term/ghostty/ghostty/themes/noctalia b/modules/home/term/ghostty/ghostty/themes/noctalia new file mode 100644 index 0000000..71afce7 --- /dev/null +++ b/modules/home/term/ghostty/ghostty/themes/noctalia @@ -0,0 +1,22 @@ +palette = 0=#4c4549 +palette = 1=#ffb4ab +palette = 2=#d1c3ca +palette = 3=#cdc4c7 +palette = 4=#d6c2c0 +palette = 5=#d1c3ca +palette = 6=#cdc4c7 +palette = 7=#e6e1e1 +palette = 8=#978e93 +palette = 9=#ffb4ab +palette = 10=#d1c3ca +palette = 11=#cdc4c7 +palette = 12=#d6c2c0 +palette = 13=#d1c3ca +palette = 14=#cdc4c7 +palette = 15=#e6e1e1 +background = #141313 +foreground = #e6e1e1 +cursor-color = #e6e1e1 +cursor-text = #141313 +selection-background = #4c4549 +selection-foreground = #cec4c8 diff --git a/modules/home/tools/helix/helix/themes/noctalia.toml b/modules/home/tools/helix/helix/themes/noctalia.toml new file mode 100644 index 0000000..a7f233d --- /dev/null +++ b/modules/home/tools/helix/helix/themes/noctalia.toml @@ -0,0 +1,161 @@ +# Syntax highlighting +# ------------------- +"attribute" = { fg = "primary", modifiers = ["bold"] } + +"type" = "primary" +"type.enum.variant" = "secondary" + +"constructor" = "tertiary" + +"constant" = "secondary" +"constant.character" = "secondaryContainer" +"constant.character.escape" = "tertiaryContainer" + +"string" = { fg = "tertiary"} +"string.regexp" = { fg = "tertiaryContainer" } +"string.special" = { fg = "tertiary" } +"string.special.symbol" = { fg = "tertiary" } +"string.special.path" = { fg = "secondary", underline = { color = "secondary", style = "line" } } + +"path" = { fg = "secondary", underline = { color = "secondary", style = "line" } } + +"comment" = { fg = "outline", modifiers = ["italic"] } + +"variable" = "onSurface" +"variable.builtin" = "secondary" +"variable.parameter" = { fg = "onSurfaceVariant", modifiers = ["italic"] } +"variable.other.member" = "primary" + +"label" = "secondary" + +"punctuation" = "outline" + +"keyword" = { fg = "primary", modifiers = ["bold"] } +"keyword.control.conditional" = { fg = "tertiary", modifiers = ["italic", "bold"] } + +"operator" = { fg = "secondary", modifiers = ["bold"] } + +"function" = "tertiary" +"function.macro" = "tertiary" + +"tag" = "secondary" + +"namespace" = { fg = "secondary", modifiers = ["italic"] } + +"special" = "secondary" + +"markup.heading" = "primary" +"markup.list" = "onSurface" +"markup.bold" = { fg = "secondary", modifiers = ["bold"] } +"markup.italic" = { fg = "secondary", modifiers = ["italic"] } +"markup.link.url" = { fg = "secondary", modifiers = ["italic", "underlined"] } +"markup.link.label" = "primary" +"markup.raw" = "onSurface" +"markup.quote" = "secondary" + +"diff.plus" = "plus" +"diff.minus" = "error" +"diff.delta" = "delta" + +# User Interface +# -------------- +"ui.background" = "none" + +"ui.cursor" = { fg = "onSecondary", bg = "secondary" } +"ui.cursor.match" = { fg = "onTertiary", bg = "tertiary", modifiers = ["bold"] } +"ui.cursor.primary" = { fg = "onPrimary", bg = "primary" } + +"ui.linenr" = { fg = "onSurfaceVariant" } +"ui.linenr.selected" = { fg = "primary" } + +"ui.statusline" = { fg = "onSurface", bg = "surfaceContainerLow" } +"ui.statusline.inactive" = { fg = "onSurface", bg = "surfaceContainerLowest" } +"ui.statusline.normal" = { fg = "onPrimary", bg = "primary", modifiers = ["bold"] } +"ui.statusline.insert" = { fg = "onTertiary", bg = "tertiary", modifiers = ["bold"] } +"ui.statusline.select" = { fg = "onSecondary", bg = "secondary", modifiers = ["bold"] } + +"ui.bufferline" = { fg = "onSurface", bg = "surfaceContainerLowest" } +"ui.bufferline.active" = { fg = "onSurface", bg = "surfaceContainer", underline = { color = "primary", style = "line" } } +"ui.bufferline.background" = { bg = "surfaceContainerLowest" } + +"ui.popup" = { fg = "onSurface", bg = "surfaceContainerLow" } + +"ui.window" = { fg = "onSurface" } +"ui.help" = { fg = "onSurface", bg = "surfaceContainerLow" } + +"ui.text" = { fg = "onBackground" } +"ui.text.focus" = { fg = "onSurface", bg = "surfaceContainer", modifiers = ["bold"] } + +"ui.virtual" = "surfaceVariant" +"ui.virtual.ruler" = { bg = "surfaceContainerLow" } +"ui.virtual.indent-guide" = "surfaceVariant" +"ui.virtual.inlay-hint" = { fg = "onSurfaceVariant", bg = "surfaceContainer", modifiers = ["dim"] } +"ui.virtual.jump-label" = { fg = "primary", modifiers = ["bold"] } + +"ui.menu" = { fg = "onSurface", bg = "surfaceContainer" } +"ui.menu.selected" = { fg = "onPrimary", bg = "primary", modifiers = ["bold"] } + +"ui.selection" = { bg = "primaryContainer", fg = "onPrimaryContainer" } + +"ui.highlight" = { bg = "primaryContainer", modifiers = ["bold"] } + +"ui.cursorline" = { bg = "surfaceContainerLowest" } +"ui.cursorline.primary" = { bg = "surfaceContainerLow" } +"ui.cursorline.secondary" = { bg = "surfaceContainerLow" } + +error = "error" +warning = "warning" +info = "info" +hint = "hint" + +"diagnostic.hint" = { underline = { color = "hint", style = "curl" } } +"diagnostic.info" = { underline = { color = "info", style = "curl" } } +"diagnostic.warning" = { underline = { color = "warning", style = "curl" } } +"diagnostic.error" = { underline = { color = "error", style = "curl" } } +"diagnostic.unnecessary" = { modifiers = ["dim"] } + +[palette] +# Constants to be used in syntax highlighting, not meant for template processor. +warning = "#f9e2af" +info = "#89dceb" +hint = "#94e2d5" +plus = "#a6e3a1" +delta = "#89b4fa" + +# Template colors +primary = "#d1c3ca" +surfaceTint = "#d1c3ca" +onPrimary = "#372e34" +primaryContainer = "#b1a4ab" +onPrimaryContainer = "#433a40" + +secondary = "#cdc4c7" +onSecondary = "#342f32" +secondaryContainer = "#4b4548" +onSecondaryContainer = "#bbb3b6" + +tertiary = "#d6c2c0" +onTertiary = "#3a2d2c" +tertiaryContainer = "#b6a3a1" +onTertiaryContainer = "#473938" + +error = "#ffb4ab" +onError = "#690005" +errorContainer = "#93000a" +onErrorContainer = "#ffdad6" + +background = "#141313" +onBackground = "#e6e1e1" +surface = "#141313" +onSurface = "#e6e1e1" +surfaceVariant = "#4c4549" +onSurfaceVariant = "#cec4c8" + +outline = "#978e93" +outlineVariant = "#4c4549" + +surfaceContainerLowest = "#0f0e0e" +surfaceContainerLow = "#1d1b1c" +surfaceContainer = "#211f20" +surfaceContainerHigh = "#2b292a" +surfaceContainerHighest = "#363435" diff --git a/modules/home/wm/niri/config.kdl b/modules/home/wm/niri/config.kdl index f2f0049..09e2b83 100644 --- a/modules/home/wm/niri/config.kdl +++ b/modules/home/wm/niri/config.kdl @@ -46,7 +46,7 @@ input { mouse { // off // natural-scroll - accel-speed 0.2 + // accel-speed 0.05 accel-profile "flat" // scroll-method "no-scroll" } @@ -687,3 +687,10 @@ blur { noise 0.03 // grain overlay (default: 0.02) saturation 1.0 // color saturation boost (default: 1.5) } + +cursor { + xcursor-theme "Bibata-Modern-Classic" + xcursor-size 24 +} + +include "noctalia.kdl" diff --git a/modules/home/wm/noctalia/config/wallpaper.toml b/modules/home/wm/noctalia/config/wallpaper.toml index 771c26c..d2ea062 100644 --- a/modules/home/wm/noctalia/config/wallpaper.toml +++ b/modules/home/wm/noctalia/config/wallpaper.toml @@ -1,6 +1,6 @@ [wallpaper] enabled = true -fill_mode = "fit" # center | crop | fit | stretch | repeat | span +fill_mode = "center" # center | crop | fit | stretch | repeat | span # fill_color = "#111111" # optional fallback/fill color; image wallpapers take priority transition = ["fade", "wipe", "disc", "stripes", "zoom", "honeycomb"] # array of effects picked at random each transition @@ -18,7 +18,8 @@ directory_dark = "/home/suri/Wallpapers/Dark" per_monitor_directories = false [wallpaper.default] -path = "/home/suri/Wallpapers/tokyo_ghoul.jpeg" +# path = "/home/suri/Wallpapers/tokyo_ghoul.jpeg" +path = "/home/suri/Wallpapers/shinji.jpg" [wallpaper.automation] enabled = false diff --git a/users/suri/Styx.nix b/users/suri/Styx.nix index 4066aff..6bad6dd 100644 --- a/users/suri/Styx.nix +++ b/users/suri/Styx.nix @@ -16,6 +16,7 @@ # apps nyx.ghostty.enable = true; nyx.zed.enable = true; + nyx.spicetify.enable = true; home.sessionVariables = { COLORTERM = "truecolor";