feat: consolidate Kanagawa theme and refine Walker and Limine styling
This commit is contained in:
1 parent
748c2060a4
commit
abca5c2d75
15 files changed
+346
-241
No files matched your search
@@ -118,6 +118,26 @@ reports are not a fresh comparison with this baseline.
|
|||||||
|
|
||||||
## Open choices and next discussion
|
## Open choices and next discussion
|
||||||
|
|
||||||
|
Current focus: look and feel/theming, informed by `~/sync/notes/setup-todo.md`.
|
||||||
|
The user accepted complete Nix theme modules with arbitrary plugin/configuration
|
||||||
|
behavior, rather than Stylix or a palette-only abstraction. The single import in
|
||||||
|
`modules/capabilities/theme.nix` selects `./_themes/kanagawa.nix`. `_themes` is
|
||||||
|
excluded from automatic module discovery, so unselected themes are not loaded.
|
||||||
|
Kanagawa owns GTK/icons/cursor, Qt integration, Kitty, Niri colors, Noctalia
|
||||||
|
palette/font/wallpaper, Herdr colors, the native Neovim plugin and its setup, and
|
||||||
|
Limine/SDDM/Plymouth appearance. Only Kanagawa is implemented so far; switching
|
||||||
|
means selecting another module and rebuilding, not a live theme picker.
|
||||||
|
Walker shares a compact layout with theme-provided colors: reduced padding,
|
||||||
|
24px icons, clearer secondary text, and a smaller minimum window height.
|
||||||
|
Limine's terminal background is fully transparent with no edge gradient so it
|
||||||
|
does not obscure the wallpaper. Runtime appearance needs user verification.
|
||||||
|
SDDM's purple-leaves theme and Plymouth's spinner are retained within Kanagawa;
|
||||||
|
their visual redesign and the low-frame-rate boot animation remain open.
|
||||||
|
Verification: flake evaluation and both workstation builds passed. A headless
|
||||||
|
check of the built Neovim confirmed Kanagawa Wave, inactive-window dimming and
|
||||||
|
the custom gutter setting. Rendered Herdr TOML, Walker XML and Limine settings
|
||||||
|
also passed targeted checks. No system activation or live desktop changes performed.
|
||||||
|
|
||||||
Dictation: plain local transcription is selected; rambling cleanup is deferred.
|
Dictation: plain local transcription is selected; rambling cleanup is deferred.
|
||||||
Handy preferences are application-owned again: the Nix settings generator and
|
Handy preferences are application-owned again: the Nix settings generator and
|
||||||
startup reset are removed. The existing settings file is left untouched.
|
startup reset are removed. The existing settings file is left untouched.
|
||||||
@@ -158,7 +178,7 @@ Niri workspace grouping stays informal while the user discovers what fits; Herdr
|
|||||||
provides enough structure for now. No workspace rules or fixed layout are needed.
|
provides enough structure for now. No workspace rules or fixed layout are needed.
|
||||||
Further Herdr configuration, agent workflows and project management are explicitly
|
Further Herdr configuration, agent workflows and project management are explicitly
|
||||||
deferred at the user's request. Do not use them as the default next task or request
|
deferred at the user's request. Do not use them as the default next task or request
|
||||||
workflow feedback unless the user reopens the topic. The next area is not selected.
|
workflow feedback unless the user reopens the topic. The active area is theming.
|
||||||
Agent evaluation is
|
Agent evaluation is
|
||||||
explicitly deferred. Do not resume replacement-tool comparisons or ask for an
|
explicitly deferred. Do not resume replacement-tool comparisons or ask for an
|
||||||
evaluation task/budget as a prerequisite for this work.
|
evaluation task/budget as a prerequisite for this work.
|
||||||
|
|||||||
@@ -25,6 +25,12 @@ use a flake to declare its tools without Nix owning the surrounding workspace.
|
|||||||
|
|
||||||
## What that means so far
|
## What that means so far
|
||||||
|
|
||||||
|
- Themes are complete Nix modules, not just palettes. Select one through
|
||||||
|
`modules/capabilities/theme.nix`; it may install native theme plugins, configure
|
||||||
|
their behavior and choose assets for each application. Kanagawa is the first
|
||||||
|
implementation. Shared interaction/layout choices stay in capability modules.
|
||||||
|
Stylix is not selected: preserving theme-specific behavior matters more than
|
||||||
|
forcing applications through one generated color scheme.
|
||||||
- Neovim, Niri, Walker and the terminal feel right: direct, keyboard-driven
|
- Neovim, Niri, Walker and the terminal feel right: direct, keyboard-driven
|
||||||
interaction with useful connections to the rest of the environment.
|
interaction with useful connections to the rest of the environment.
|
||||||
- Use Handy for local plain dictation, mainly English with occasional Dutch.
|
- Use Handy for local plain dictation, mainly English with occasional Dutch.
|
||||||
|
|||||||
File renamed without changes.
@@ -0,0 +1,277 @@
|
|||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
palette = (import ./_kanagawa-palette.nix).palette;
|
||||||
|
hex = lib.removePrefix "#";
|
||||||
|
cursor = {
|
||||||
|
name = "phinger-cursors-light";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
flake.modules.nixos.theme =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home-manager.sharedModules = [ config.flake.modules.homeManager.theme ];
|
||||||
|
environment.systemPackages = [ pkgs.phinger-cursors ];
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.theme =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
version = "unstable-2025-10-23";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "Fausto-Korpsvart";
|
||||||
|
repo = "Kanagawa-GKT-Theme";
|
||||||
|
rev = "55ca4ba249eba21f861b9866b71ab41bb8930318";
|
||||||
|
hash = "sha256-UdMoMx2DoovcxSp/zBZ3PRv/Qpj+prd0uPm1gmdak2E=";
|
||||||
|
};
|
||||||
|
kanagawaGtkTheme = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
pname = "kanagawa-gtk-theme";
|
||||||
|
inherit src version;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.sassc ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p "$out/share/themes"
|
||||||
|
bash ./themes/install.sh \
|
||||||
|
--dest "$out/share/themes" \
|
||||||
|
--name Kanagawa \
|
||||||
|
--color dark
|
||||||
|
|
||||||
|
rm -r "$out/share/themes/Kanagawa-Dark/gtk-2.0"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home.pointerCursor = cursor // {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.phinger-cursors;
|
||||||
|
dotIcons.enable = false;
|
||||||
|
gtk.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Kanagawa-Dark";
|
||||||
|
package = kanagawaGtkTheme;
|
||||||
|
};
|
||||||
|
gtk4.theme = null;
|
||||||
|
iconTheme = {
|
||||||
|
name = "Kanagawa";
|
||||||
|
package = pkgs.kanagawa-icon-theme.overrideAttrs (_: {
|
||||||
|
inherit src version;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "gtk3";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.systemDirs.data = [
|
||||||
|
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
|
||||||
|
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.nixos.limine =
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
let
|
||||||
|
terminalPalette = palette.terminal;
|
||||||
|
mkPalette = colors: lib.concatStringsSep ";" (map hex colors);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
boot.loader.limine.style = {
|
||||||
|
wallpapers = [ pkgs.nixos-artwork.wallpapers.simple-dark-gray-bootloader.gnomeFilePath ];
|
||||||
|
wallpaperStyle = "stretched";
|
||||||
|
backdrop = hex palette.secondaryBackground;
|
||||||
|
|
||||||
|
graphicalTerminal = {
|
||||||
|
# TT is transparency: let the boot wallpaper show through the terminal.
|
||||||
|
background = "FF${hex palette.background}";
|
||||||
|
foreground = hex palette.foreground;
|
||||||
|
brightForeground = hex palette.selectionForeground;
|
||||||
|
brightBackground = hex palette.selectionBackground;
|
||||||
|
palette = mkPalette [
|
||||||
|
terminalPalette.color0
|
||||||
|
terminalPalette.color1
|
||||||
|
terminalPalette.color2
|
||||||
|
terminalPalette.color3
|
||||||
|
terminalPalette.color4
|
||||||
|
terminalPalette.color5
|
||||||
|
terminalPalette.color6
|
||||||
|
terminalPalette.color7
|
||||||
|
];
|
||||||
|
brightPalette = mkPalette [
|
||||||
|
terminalPalette.color8
|
||||||
|
terminalPalette.color9
|
||||||
|
terminalPalette.color10
|
||||||
|
terminalPalette.color11
|
||||||
|
terminalPalette.color12
|
||||||
|
terminalPalette.color13
|
||||||
|
terminalPalette.color14
|
||||||
|
terminalPalette.color15
|
||||||
|
];
|
||||||
|
font = {
|
||||||
|
scale = "2x2";
|
||||||
|
spacing = 1;
|
||||||
|
};
|
||||||
|
margin = 64;
|
||||||
|
marginGradient = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
interface = {
|
||||||
|
branding = config.networking.hostName;
|
||||||
|
brandingColor = hex palette.accents.blue;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.nixos.sddm = { pkgs, ... }: {
|
||||||
|
services.displayManager.sddm = {
|
||||||
|
theme = "${
|
||||||
|
pkgs.sddm-astronaut.override { embeddedTheme = "purple_leaves"; }
|
||||||
|
}/share/sddm/themes/sddm-astronaut-theme";
|
||||||
|
extraPackages = [ pkgs.kdePackages.qtmultimedia ];
|
||||||
|
settings.Theme = {
|
||||||
|
CursorTheme = cursor.name;
|
||||||
|
CursorSize = cursor.size;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.nixos.plymouth = { pkgs, ... }: {
|
||||||
|
boot.plymouth = {
|
||||||
|
theme = "spinner_alt";
|
||||||
|
themePackages = [ pkgs.adi1090x-plymouth-themes ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.terminal-kitty = {
|
||||||
|
programs.kitty = {
|
||||||
|
settings = {
|
||||||
|
bold_font = "postscript_name=JetBrainsMono-Bold";
|
||||||
|
bold_italic_font = "postscript_name=JetBrainsMono-BoldItalic";
|
||||||
|
};
|
||||||
|
font = {
|
||||||
|
name = "JetBrains Mono";
|
||||||
|
size = 11;
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
# Nerd Fonts v3.4.0
|
||||||
|
symbol_map U+e000-U+e00a,U+e0a0-U+e0a2,U+e0a3,U+e0b0-U+e0b3,U+e0b4-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b7,U+e700-U+e8ef,U+ea60-U+ec1e,U+ed00-U+efce,U+f000-U+f2ff,U+f300-U+f381,U+f400-U+f533,U+f0001-U+f1af0 Symbols Nerd Font Mono
|
||||||
|
|
||||||
|
## name: Kanagawa Wave
|
||||||
|
## license: MIT
|
||||||
|
## author: Tommaso Laurenzi
|
||||||
|
## upstream: https://github.com/rebelot/kanagawa.nvim/
|
||||||
|
|
||||||
|
background ${palette.background}
|
||||||
|
foreground ${palette.foreground}
|
||||||
|
selection_background ${palette.selectionBackground}
|
||||||
|
selection_foreground ${palette.selectionForeground}
|
||||||
|
url_color ${palette.url}
|
||||||
|
cursor ${palette.cursor}
|
||||||
|
|
||||||
|
active_tab_background ${palette.background}
|
||||||
|
active_tab_foreground ${palette.selectionForeground}
|
||||||
|
inactive_tab_background ${palette.background}
|
||||||
|
inactive_tab_foreground ${palette.muted}
|
||||||
|
|
||||||
|
color0 ${palette.terminal.color0}
|
||||||
|
color1 ${palette.terminal.color1}
|
||||||
|
color2 ${palette.terminal.color2}
|
||||||
|
color3 ${palette.terminal.color3}
|
||||||
|
color4 ${palette.terminal.color4}
|
||||||
|
color5 ${palette.terminal.color5}
|
||||||
|
color6 ${palette.terminal.color6}
|
||||||
|
color7 ${palette.terminal.color7}
|
||||||
|
|
||||||
|
color8 ${palette.terminal.color8}
|
||||||
|
color9 ${palette.terminal.color9}
|
||||||
|
color10 ${palette.terminal.color10}
|
||||||
|
color11 ${palette.terminal.color11}
|
||||||
|
color12 ${palette.terminal.color12}
|
||||||
|
color13 ${palette.terminal.color13}
|
||||||
|
color14 ${palette.terminal.color14}
|
||||||
|
color15 ${palette.terminal.color15}
|
||||||
|
|
||||||
|
color16 ${palette.terminal.color16}
|
||||||
|
color17 ${palette.terminal.color17}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.niri = {
|
||||||
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||||
|
wayland.windowManager.niri.settings.layout.border = {
|
||||||
|
active-color = palette.accents.blue;
|
||||||
|
inactive-color = palette.subtleBorder;
|
||||||
|
urgent-color = palette.accents.red;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.ai = {
|
||||||
|
xdg.configFile."herdr/config.toml".text = lib.mkAfter ''
|
||||||
|
[theme]
|
||||||
|
name = "kanagawa"
|
||||||
|
auto_switch = false
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.noctalia =
|
||||||
|
{ config, ... }:
|
||||||
|
let
|
||||||
|
wallpaper = "${config.home.homeDirectory}/media/images/wallpapers/green-leaves.png";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.noctalia.settings = {
|
||||||
|
shell.font_family = "Lexend";
|
||||||
|
theme = {
|
||||||
|
builtin = "Kanagawa";
|
||||||
|
community_palette = "Kanagawa Paper";
|
||||||
|
wallpaper_scheme = "m3-content";
|
||||||
|
};
|
||||||
|
wallpaper = {
|
||||||
|
default.path = wallpaper;
|
||||||
|
last.path = wallpaper;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.neovim = { pkgs, ... }: {
|
||||||
|
wrappers.neovim.specs.theme = {
|
||||||
|
data = pkgs.vimPlugins.kanagawa-nvim;
|
||||||
|
before = [ "INIT_MAIN" ];
|
||||||
|
config = ''
|
||||||
|
require("kanagawa").setup({
|
||||||
|
dimInactive = true,
|
||||||
|
colors = {
|
||||||
|
theme = {
|
||||||
|
all = {
|
||||||
|
ui = { bg_gutter = "none" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
vim.cmd.colorscheme("kanagawa-wave")
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
flake.modules.homeManager.walker = {
|
||||||
|
programs.walker.themes.constellation.style = lib.mkAfter ''
|
||||||
|
@define-color window_bg_color ${palette.background};
|
||||||
|
@define-color accent_bg_color ${palette.selectionBackground};
|
||||||
|
@define-color theme_fg_color ${palette.foreground};
|
||||||
|
@define-color error_bg_color ${palette.terminal.color1};
|
||||||
|
@define-color error_fg_color ${palette.foreground};
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -123,10 +123,6 @@ in
|
|||||||
xdg.configFile."herdr/config.toml".text = ''
|
xdg.configFile."herdr/config.toml".text = ''
|
||||||
onboarding = false
|
onboarding = false
|
||||||
|
|
||||||
[theme]
|
|
||||||
name = "kanagawa"
|
|
||||||
auto_switch = false
|
|
||||||
|
|
||||||
[ui]
|
[ui]
|
||||||
agent_panel_sort = "spaces"
|
agent_panel_sort = "spaces"
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,4 @@
|
|||||||
{ lib, ... }:
|
{ ... }:
|
||||||
let
|
|
||||||
palette = (import ./_kanagawa.nix).palette;
|
|
||||||
hex = lib.removePrefix "#";
|
|
||||||
terminalPalette = palette.terminal;
|
|
||||||
mkPalette = colors: lib.concatStringsSep ";" (map hex colors);
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
flake.modules.nixos.limine =
|
flake.modules.nixos.limine =
|
||||||
{ config, lib, ... }:
|
{ config, lib, ... }:
|
||||||
@@ -26,48 +20,7 @@ in
|
|||||||
maxGenerations = 10;
|
maxGenerations = 10;
|
||||||
resolution = interfaceResolution;
|
resolution = interfaceResolution;
|
||||||
|
|
||||||
style = {
|
style.interface.resolution = interfaceResolution;
|
||||||
backdrop = hex palette.secondaryBackground;
|
|
||||||
|
|
||||||
graphicalTerminal = {
|
|
||||||
background = "00${hex palette.background}";
|
|
||||||
foreground = hex palette.foreground;
|
|
||||||
brightForeground = hex palette.selectionForeground;
|
|
||||||
brightBackground = hex palette.selectionBackground;
|
|
||||||
palette = mkPalette [
|
|
||||||
terminalPalette.color0
|
|
||||||
terminalPalette.color1
|
|
||||||
terminalPalette.color2
|
|
||||||
terminalPalette.color3
|
|
||||||
terminalPalette.color4
|
|
||||||
terminalPalette.color5
|
|
||||||
terminalPalette.color6
|
|
||||||
terminalPalette.color7
|
|
||||||
];
|
|
||||||
brightPalette = mkPalette [
|
|
||||||
terminalPalette.color8
|
|
||||||
terminalPalette.color9
|
|
||||||
terminalPalette.color10
|
|
||||||
terminalPalette.color11
|
|
||||||
terminalPalette.color12
|
|
||||||
terminalPalette.color13
|
|
||||||
terminalPalette.color14
|
|
||||||
terminalPalette.color15
|
|
||||||
];
|
|
||||||
font = {
|
|
||||||
scale = "2x2";
|
|
||||||
spacing = 1;
|
|
||||||
};
|
|
||||||
margin = 64;
|
|
||||||
marginGradient = 24;
|
|
||||||
};
|
|
||||||
|
|
||||||
interface = {
|
|
||||||
branding = config.networking.hostName;
|
|
||||||
brandingColor = hex palette.accents.blue;
|
|
||||||
resolution = interfaceResolution;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -171,10 +171,6 @@ in
|
|||||||
ui = {
|
ui = {
|
||||||
lazy = true;
|
lazy = true;
|
||||||
data = with pkgs.vimPlugins; [
|
data = with pkgs.vimPlugins; [
|
||||||
{
|
|
||||||
data = kanagawa-nvim;
|
|
||||||
lazy = false;
|
|
||||||
}
|
|
||||||
render-markdown-nvim
|
render-markdown-nvim
|
||||||
lualine-nvim
|
lualine-nvim
|
||||||
gitsigns-nvim
|
gitsigns-nvim
|
||||||
|
|||||||
@@ -1,15 +1,3 @@
|
|||||||
require("kanagawa").setup({
|
|
||||||
dimInactive = true,
|
|
||||||
colors = {
|
|
||||||
theme = {
|
|
||||||
all = {
|
|
||||||
ui = { bg_gutter = "none" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
vim.cmd.colorscheme("kanagawa-wave")
|
|
||||||
|
|
||||||
require("lz.n").load({
|
require("lz.n").load({
|
||||||
{
|
{
|
||||||
"lualine.nvim",
|
"lualine.nvim",
|
||||||
@@ -34,7 +22,7 @@ require("lz.n").load({
|
|||||||
|
|
||||||
require("lualine").setup({
|
require("lualine").setup({
|
||||||
options = {
|
options = {
|
||||||
theme = "kanagawa",
|
theme = "auto",
|
||||||
component_separators = "",
|
component_separators = "",
|
||||||
section_separators = "",
|
section_separators = "",
|
||||||
globalstatus = true,
|
globalstatus = true,
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
kanagawa = import ../_kanagawa.nix;
|
|
||||||
hmModules = config.flake.modules.homeManager;
|
hmModules = config.flake.modules.homeManager;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -28,7 +27,6 @@ in
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
palette = kanagawa.palette;
|
|
||||||
swapMonitorWorkspaces = import ./_shortcuts.nix { inherit pkgs; };
|
swapMonitorWorkspaces = import ./_shortcuts.nix { inherit pkgs; };
|
||||||
machine = config.facts.machine;
|
machine = config.facts.machine;
|
||||||
in
|
in
|
||||||
@@ -46,8 +44,6 @@ in
|
|||||||
++ [ swapMonitorWorkspaces ];
|
++ [ swapMonitorWorkspaces ];
|
||||||
};
|
};
|
||||||
|
|
||||||
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
|
||||||
|
|
||||||
wayland.windowManager.niri = {
|
wayland.windowManager.niri = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@@ -104,12 +100,7 @@ in
|
|||||||
focus-ring.off = { };
|
focus-ring.off = { };
|
||||||
default-column-width.proportion = 1. / 2.;
|
default-column-width.proportion = 1. / 2.;
|
||||||
|
|
||||||
border = {
|
border.width = 3;
|
||||||
width = 3;
|
|
||||||
active-color = palette.accents.blue;
|
|
||||||
inactive-color = palette.subtleBorder;
|
|
||||||
urgent-color = palette.accents.red;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
debug.honor-xdg-activation-with-invalid-serial = true;
|
debug.honor-xdg-activation-with-invalid-serial = true;
|
||||||
|
|||||||
@@ -9,7 +9,6 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
homeDir = config.home.homeDirectory;
|
homeDir = config.home.homeDirectory;
|
||||||
wallpaper = "${homeDir}/media/images/wallpapers/green-leaves.png";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
desktop.autostart = [ [ (lib.getExe config.programs.noctalia.package) ] ];
|
desktop.autostart = [ [ (lib.getExe config.programs.noctalia.package) ] ];
|
||||||
@@ -85,7 +84,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
shell = {
|
shell = {
|
||||||
font_family = "Lexend";
|
|
||||||
polkit_agent = true;
|
polkit_agent = true;
|
||||||
# Handy provides recording feedback; omit microphone activity popups/indicators.
|
# Handy provides recording feedback; omit microphone activity popups/indicators.
|
||||||
privacy.mic_filter_regex = ".*";
|
privacy.mic_filter_regex = ".*";
|
||||||
@@ -99,9 +97,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
theme = {
|
theme = {
|
||||||
builtin = "Kanagawa";
|
|
||||||
community_palette = "Kanagawa Paper";
|
|
||||||
wallpaper_scheme = "m3-content";
|
|
||||||
templates = {
|
templates = {
|
||||||
enable_builtin_templates = false;
|
enable_builtin_templates = false;
|
||||||
enable_community_templates = false;
|
enable_community_templates = false;
|
||||||
@@ -110,8 +105,6 @@
|
|||||||
|
|
||||||
wallpaper = {
|
wallpaper = {
|
||||||
directory = "${homeDir}/media/images/wallpapers";
|
directory = "${homeDir}/media/images/wallpapers";
|
||||||
default.path = wallpaper;
|
|
||||||
last.path = wallpaper;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
weather.refresh_minutes = 15;
|
weather.refresh_minutes = 15;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
flake.modules.nixos.plymouth =
|
flake.modules.nixos.plymouth =
|
||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
boot = {
|
boot = {
|
||||||
consoleLogLevel = 3;
|
consoleLogLevel = 3;
|
||||||
@@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = "spinner_alt";
|
|
||||||
themePackages = [ pkgs.adi1090x-plymouth-themes ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,23 +1,10 @@
|
|||||||
{
|
{
|
||||||
flake.modules.nixos.sddm =
|
flake.modules.nixos.sddm = {
|
||||||
{
|
services.displayManager.sddm = {
|
||||||
pkgs,
|
enable = true;
|
||||||
...
|
enableHidpi = true;
|
||||||
}:
|
wayland.enable = true;
|
||||||
{
|
wayland.compositor = "kwin";
|
||||||
services.displayManager.sddm = {
|
|
||||||
enable = true;
|
|
||||||
enableHidpi = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
wayland.compositor = "kwin";
|
|
||||||
theme = "${
|
|
||||||
pkgs.sddm-astronaut.override { embeddedTheme = "purple_leaves"; }
|
|
||||||
}/share/sddm/themes/sddm-astronaut-theme";
|
|
||||||
extraPackages = [ pkgs.kdePackages.qtmultimedia ];
|
|
||||||
settings.Theme = {
|
|
||||||
CursorTheme = "phinger-cursors-light";
|
|
||||||
CursorSize = 24;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
@@ -6,8 +6,6 @@ in
|
|||||||
flake.modules.homeManager.terminal-kitty =
|
flake.modules.homeManager.terminal-kitty =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
theme = import ./_kanagawa.nix;
|
|
||||||
palette = theme.palette;
|
|
||||||
kitty = pkgs.symlinkJoin {
|
kitty = pkgs.symlinkJoin {
|
||||||
name = "kitty-single";
|
name = "kitty-single";
|
||||||
paths = [ pkgs.kitty ];
|
paths = [ pkgs.kitty ];
|
||||||
@@ -24,13 +22,7 @@ in
|
|||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = kitty;
|
package = kitty;
|
||||||
font = {
|
|
||||||
name = "JetBrains Mono";
|
|
||||||
size = 11;
|
|
||||||
};
|
|
||||||
settings = {
|
settings = {
|
||||||
bold_font = "postscript_name=JetBrainsMono-Bold";
|
|
||||||
bold_italic_font = "postscript_name=JetBrainsMono-BoldItalic";
|
|
||||||
disable_ligatures = "always";
|
disable_ligatures = "always";
|
||||||
scrollback_lines = 10000;
|
scrollback_lines = 10000;
|
||||||
enable_audio_bell = false;
|
enable_audio_bell = false;
|
||||||
@@ -39,48 +31,6 @@ in
|
|||||||
update_check_interval = 0;
|
update_check_interval = 0;
|
||||||
};
|
};
|
||||||
keybindings."shift+enter" = "send_text all \\x0a";
|
keybindings."shift+enter" = "send_text all \\x0a";
|
||||||
extraConfig = ''
|
|
||||||
# Nerd Fonts v3.4.0
|
|
||||||
symbol_map U+e000-U+e00a,U+e0a0-U+e0a2,U+e0a3,U+e0b0-U+e0b3,U+e0b4-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b7,U+e700-U+e8ef,U+ea60-U+ec1e,U+ed00-U+efce,U+f000-U+f2ff,U+f300-U+f381,U+f400-U+f533,U+f0001-U+f1af0 Symbols Nerd Font Mono
|
|
||||||
|
|
||||||
## name: ${theme.displayName}
|
|
||||||
## license: MIT
|
|
||||||
## author: Tommaso Laurenzi
|
|
||||||
## upstream: https://github.com/rebelot/kanagawa.nvim/
|
|
||||||
|
|
||||||
background ${palette.background}
|
|
||||||
foreground ${palette.foreground}
|
|
||||||
selection_background ${palette.selectionBackground}
|
|
||||||
selection_foreground ${palette.selectionForeground}
|
|
||||||
url_color ${palette.url}
|
|
||||||
cursor ${palette.cursor}
|
|
||||||
|
|
||||||
active_tab_background ${palette.background}
|
|
||||||
active_tab_foreground ${palette.selectionForeground}
|
|
||||||
inactive_tab_background ${palette.background}
|
|
||||||
inactive_tab_foreground ${palette.muted}
|
|
||||||
|
|
||||||
color0 ${palette.terminal.color0}
|
|
||||||
color1 ${palette.terminal.color1}
|
|
||||||
color2 ${palette.terminal.color2}
|
|
||||||
color3 ${palette.terminal.color3}
|
|
||||||
color4 ${palette.terminal.color4}
|
|
||||||
color5 ${palette.terminal.color5}
|
|
||||||
color6 ${palette.terminal.color6}
|
|
||||||
color7 ${palette.terminal.color7}
|
|
||||||
|
|
||||||
color8 ${palette.terminal.color8}
|
|
||||||
color9 ${palette.terminal.color9}
|
|
||||||
color10 ${palette.terminal.color10}
|
|
||||||
color11 ${palette.terminal.color11}
|
|
||||||
color12 ${palette.terminal.color12}
|
|
||||||
color13 ${palette.terminal.color13}
|
|
||||||
color14 ${palette.terminal.color14}
|
|
||||||
color15 ${palette.terminal.color15}
|
|
||||||
|
|
||||||
color16 ${palette.terminal.color16}
|
|
||||||
color17 ${palette.terminal.color17}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
systemd.user.services.kitty-daemon = {
|
systemd.user.services.kitty-daemon = {
|
||||||
Unit = {
|
Unit = {
|
||||||
|
|||||||
@@ -1,80 +1,2 @@
|
|||||||
{ config, ... }:
|
# Select a complete theme module: plugins, assets and behavior as well as colors.
|
||||||
let
|
{ imports = [ ./_themes/kanagawa.nix ]; }
|
||||||
cursor = {
|
|
||||||
name = "phinger-cursors-light";
|
|
||||||
size = 24;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
flake.modules.nixos.theme =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
home-manager.sharedModules = [ config.flake.modules.homeManager.theme ];
|
|
||||||
environment.systemPackages = [ pkgs.phinger-cursors ];
|
|
||||||
};
|
|
||||||
|
|
||||||
flake.modules.homeManager.theme =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
version = "unstable-2025-10-23";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "Fausto-Korpsvart";
|
|
||||||
repo = "Kanagawa-GKT-Theme";
|
|
||||||
rev = "55ca4ba249eba21f861b9866b71ab41bb8930318";
|
|
||||||
hash = "sha256-UdMoMx2DoovcxSp/zBZ3PRv/Qpj+prd0uPm1gmdak2E=";
|
|
||||||
};
|
|
||||||
kanagawaGtkTheme = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
pname = "kanagawa-gtk-theme";
|
|
||||||
inherit src version;
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.sassc ];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
|
|
||||||
mkdir -p "$out/share/themes"
|
|
||||||
bash ./themes/install.sh \
|
|
||||||
--dest "$out/share/themes" \
|
|
||||||
--name Kanagawa \
|
|
||||||
--color dark
|
|
||||||
|
|
||||||
rm -r "$out/share/themes/Kanagawa-Dark/gtk-2.0"
|
|
||||||
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.pointerCursor = cursor // {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.phinger-cursors;
|
|
||||||
dotIcons.enable = false;
|
|
||||||
gtk.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Kanagawa-Dark";
|
|
||||||
package = kanagawaGtkTheme;
|
|
||||||
};
|
|
||||||
gtk4.theme = null;
|
|
||||||
iconTheme = {
|
|
||||||
name = "Kanagawa";
|
|
||||||
package = pkgs.kanagawa-icon-theme.overrideAttrs (_: {
|
|
||||||
inherit src version;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "gtk3";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.systemDirs.data = [
|
|
||||||
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}"
|
|
||||||
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -129,6 +129,34 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
runAsService = true;
|
runAsService = true;
|
||||||
|
|
||||||
|
config.theme = "constellation";
|
||||||
|
themes.constellation = {
|
||||||
|
layouts.layout =
|
||||||
|
lib.replaceStrings
|
||||||
|
[ ''<property name="height-request">570</property>'' ]
|
||||||
|
[ ''<property name="height-request">460</property>'' ]
|
||||||
|
(builtins.readFile "${inputs.walker}/resources/themes/default/layout.xml");
|
||||||
|
style = lib.mkBefore (
|
||||||
|
builtins.readFile "${inputs.walker}/resources/themes/default/style.css"
|
||||||
|
+ ''
|
||||||
|
.box-wrapper {
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
.search-container, .item-box, .preview { border-radius: 6px; }
|
||||||
|
.input { padding: 8px 10px; }
|
||||||
|
.item-box { padding: 5px 8px; }
|
||||||
|
.large-icons { -gtk-icon-size: 24px; }
|
||||||
|
.item-image-text { font-size: 24px; }
|
||||||
|
.item-subtext { opacity: 0.75; }
|
||||||
|
.item-quick-activation { padding: 3px 5px; }
|
||||||
|
.keybinds { padding-top: 6px; }
|
||||||
|
.keybind-bind { opacity: 0.65; }
|
||||||
|
''
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
config.providers = {
|
config.providers = {
|
||||||
default = walkerDefaults.providers.default ++ [ "menus:projects" ];
|
default = walkerDefaults.providers.default ++ [ "menus:projects" ];
|
||||||
prefixes = walkerDefaults.providers.prefixes ++ [
|
prefixes = walkerDefaults.providers.prefixes ++ [
|
||||||
|
|||||||
Reference in new issue
Block a user