Compare commits

...

22 Commits

Author SHA1 Message Date
henrov 157df76509 Added ./assets/conf/kitty/kitty.conf 2026-03-08 10:30:53 +01:00
henrov cddfb44053 Working on autosuggestion 2026-03-08 10:25:17 +01:00
henrov 099eb5d68f Working on terminal / zsh 2026-03-08 10:19:20 +01:00
henrov 6946c79bfd Working on starship 2026-03-08 10:14:42 +01:00
henrov 7b4ea6ff47 Working on starship 2026-03-08 10:14:03 +01:00
henrov 5976a3d1a1 Working on tasklauncher 2026-03-08 10:07:37 +01:00
henrov f1f74b1fae Working on tasklauncher 2026-03-08 09:59:40 +01:00
henrov d51e05efdc Working on tasklauncher 2026-03-08 09:29:46 +01:00
henrov d4e052a0de Working on tasklauncher 2026-03-08 09:27:30 +01:00
henrov 755375e8d3 Working on tasklauncher 2026-03-08 09:26:09 +01:00
henrov 9be8f063b6 Working on tasklauncher 2026-03-08 09:24:57 +01:00
henrov 2943a20033 Working on tasklauncher 2026-03-08 09:21:53 +01:00
henrov d8f588babd Working on tasklauncher 2026-03-08 09:20:00 +01:00
henrov 9d9d842da3 Working on tasklauncher 2026-03-08 09:18:58 +01:00
henrov bc0e848888 Working on tasklauncher 2026-03-08 09:16:22 +01:00
henrov 3f19de6ae0 Working on bindings 2026-03-08 09:09:55 +01:00
henrov 505c95646a Working on bindings 2026-03-08 00:18:23 +01:00
henrov 6ea59f7417 Working on bindings 2026-03-08 00:17:18 +01:00
henrov 53dae84520 Working on bindings 2026-03-08 00:16:07 +01:00
henrov 1a84342738 Working on bindings 2026-03-08 00:14:18 +01:00
henrov 04118389ad Working on bindings 2026-03-08 00:12:46 +01:00
henrov 45dd985cd1 Working on bindings 2026-03-08 00:10:43 +01:00
13 changed files with 895 additions and 621 deletions
+450 -432
View File
File diff suppressed because it is too large Load Diff
+87 -120
View File
@@ -551,34 +551,41 @@ The ./generated/top.nix file acts as an anchor or entry point for the entire cha
pkgs, pkgs,
lib, lib,
user, user,
inputs,
flakeRoot, flakeRoot,
... ...
}: }:
let let
hyprlandConf = builtins.readFile (flakeRoot + "/assets/hyprland/conf/hyprland.conf"); hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr";
userConfig = import (flakeRoot + "/assets/flake/users/henrov.nix"); # Dynamically read all files in assets/hyprland/conf/
hyprlandConfs =
lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf"))
(name: {
text = builtins.readFile "${flakeRoot}/assets/hyprland/conf/${name}";
});
in in
{ {
# Nix settings to use Hyprland's cache for packages # NixOS: Enable Hyprland (optional)
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
# Install Hyprland and enable it as the window manager
environment.systemPackages = with pkgs; [ hyprland ];
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true;
}; };
# Hyprland-specific Home Manager configurations # Home Manager: Hyprland-specific configurations
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
home.stateVersion = userConfig.stateVersion; # Use config.home-manager.users.${user.username} instead of userConfig
home.username = userConfig.username; home.stateVersion = config.home-manager.users.${user.username}.stateVersion or "23.11"; # Default fallback
home.homeDirectory = userConfig.homeDirectory; home.username = user.username; # Use the 'user' argument
xdg.configFile."hypr/hyprland.conf".text = hyprlandConf; home.homeDirectory =
config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
wayland.windowManager.hyprland = {
enable = true;
};
# Merge dynamic Hyprland configs with existing xdg.configFile
xdg.configFile = {
# Your existing manual configs (if any)
}
// hyprlandConfs;
}; };
} }
#+END_SRC #+END_SRC
@@ -826,12 +833,54 @@ This is top file of this level which contains just an import statement for all r
{ config, pkgs, lib, user, inputs, flakeRoot,... }: { config, pkgs, lib, user, inputs, flakeRoot,... }:
{ {
imports = [ imports = [
# No subfolders to import ./wofi.nix
]; ];
# .. put any code here # .. put any code here
} }
#+END_SRC #+END_SRC
** =generated/hyprland/task_launcher/wofi.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, flakeRoot, ... }:
let
xdgDataHome = config.home-manager.users.${user.username}.xdg.dataHome;
in
{
# NixOS: Install Wofi system-wide (optional)
environment.systemPackages = with pkgs; [ wofi ];
# Home Manager: User-specific Wofi config
home-manager.users.${user.username} = {
# Install Wofi for the user
home.packages = with pkgs; [ wofi ];
# Wofi configuration
xdg.configFile."wofi/config".text = ''
dark
width=500
height=800
lines=10
columns=1
cache_dir=${xdgDataHome}/wofi
allow_images=true
allow_markup=true
show_drun=true
'';
/*
# Catppuccin Mocha theme for Wofi
xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "wofi";
rev = "d4c8c0a6b57e2e97a0d7b87e186322e933a8d9e0"; # Example commit hash (replace with a valid one)
sha256 = "sha256-0Rn9CKPm0v3rXlx7nyXD3QJ5Xq3XZvBwgqXzWmOyZkA="; # Replace with the correct hash
} + "/mocha.css"; # Correct file name
*/
};
}
#+END_SRC
** =generated/hyprland/task_window_workspace_switcher/top.nix= ** =generated/hyprland/task_window_workspace_switcher/top.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder
#+BEGIN_SRC nix :tangle generated/hyprland/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html #+BEGIN_SRC nix :tangle generated/hyprland/task_window_workspace_switcher/top.nix :noweb tangle :mkdirp yes :eval never-html
@@ -939,7 +988,7 @@ This is top file of this level which contains just an import statement for all r
{ config, pkgs, lib, user, inputs, flakeRoot,... }: { config, pkgs, lib, user, inputs, flakeRoot,... }:
{ {
imports = [ imports = [
./wofi.nix # No subfolders to import
]; ];
# .. put any code here # .. put any code here
} }
@@ -950,34 +999,7 @@ This is top file of this level which contains just an import statement for all r
#+BEGIN_SRC nix :tangle generated/mangowc/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html #+BEGIN_SRC nix :tangle generated/mangowc/task_launcher/wofi.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, inputs, flakeRoot,... }: { config, pkgs, lib, user, inputs, flakeRoot,... }:
{ {
programs.wofi = { # .. put any code here
enable = true;
wrapGtkApps = true; # Required for GTK theming
extraPackages = with pkgs; [ wofi ];
};
# Catppuccin theme for Wofi
home-manager.users.${user.username} = {
xdg.configFile."wofi/config".text = ''
dark
width=500
height=800
lines=10
columns=1
cache_dir=${config.xdg.dataHome}/wofi
allow_images=true
allow_markup=true
show_drun=true
'';
xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "wofi";
rev = "main";
sha256 = "sha256-0000000000000000000000000000000000000000000000000000"; # Update with the correct hash
file = "mocha.css"; # or latte/frappe/macchiato
};
};
} }
#+END_SRC #+END_SRC
@@ -1080,9 +1102,9 @@ This is top file of this level which contains just an import statement for all r
#+END_SRC #+END_SRC
** =generated/system/applications/terminal_shell/kitty.nix= ** =generated/system/applications/terminal_shell/kitty.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder This file sets up Kitty terminal
#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/kitty.nix :noweb tangle :mkdirp yes :eval never-html #+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/kitty.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, ... }: { config, pkgs, lib, user, flakeRoot, ... }:
let let
kittyConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/kitty"; kittyConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/kitty";
in in
@@ -1090,87 +1112,27 @@ in
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
settings = {
font_family = "JetBrainsMono Nerd Font";
font_size = 12.0;
cursor = "Beam";
cursor_blink_interval = -1;
shell = "${pkgs.zsh}/bin/zsh";
};
}; };
# Catppuccin Mocha theme for Kitty (embedded) # Use the kitty.conf from your assets
xdg.configFile."kitty/kitty.conf".text = lib.concatStringsSep "\n" [ xdg.configFile."kitty/kitty.conf".source = "${flakeRoot}/assets/conf/kitty/kitty.conf";
"# Catppuccin Mocha theme"
"background #1e1e2e"
"foreground #cdd6f4"
"selection_background #f5e0dc"
"selection_foreground #1e1e2e"
"url_color #f5e0dc"
"cursor #f5e0dc"
"cursor_text_color #1e1e2e"
"color0 #45475a"
"color8 #585b70"
"color1 #f38ba8"
"color9 #f38ba8"
"color2 #a6e3a1"
"color10 #a6e3a1"
"color3 #f9e2af"
"color11 #f9e2af"
"color4 #89b4fa"
"color12 #89b4fa"
"color5 #f5c2e7"
"color13 #f5c2e7"
"color6 #94e2d5"
"color14 #94e2d5"
"color7 #bac2de"
"color15 #bac2de"
"# Window settings"
"background_opacity 0.9"
"font_size 12.0"
"cursor_shape Beam"
];
}; };
} }
#+END_SRC #+END_SRC
** =generated/system/applications/terminal_shell/starship.nix= ** =generated/system/applications/terminal_shell/starship.nix=
This is top file of this level which contains just an import statement for all relevant files and/or the subfolder in this folder This file sets up starship prompt
#+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/starship.nix :noweb tangle :mkdirp yes :eval never-html #+BEGIN_SRC nix :tangle generated/system/applications/terminal_shell/starship.nix :noweb tangle :mkdirp yes :eval never-html
{ config, pkgs, lib, user, ... }: { config, pkgs, lib, user, flakeRoot, ... }:
{ {
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
programs.starship = { programs.starship = {
enable = true; enable = true;
}; };
# Catppuccin Mocha theme for Starship # Use the starship.toml from your assets
xdg.configFile."starship.toml".text = '' xdg.configFile."starship.toml".source = "${flakeRoot}/assets/common/conf/starship.toml";
format = "$all"
[character]
success_symbol = "[](bold green)"
error_symbol = "[](bold red)"
[directory]
style = "bold lavender"
[git_branch]
symbol = " "
style = "bold maroon"
[package]
disabled = true
'';
}; };
} }
#+END_SRC #+END_SRC
@@ -1184,18 +1146,21 @@ let
in in
{ {
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
# Install zsh-syntax-highlighting
home.packages = with pkgs; [
zsh-syntax-highlighting
];
programs.zsh = { programs.zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true; # Disable syntaxHighlighting.enable (we handle it manually)
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
theme = "agnoster"; theme = "agnoster";
plugins = [ plugins = [
"git" "git"
"zsh-autosuggestions"
"zsh-syntax-highlighting"
"docker" "docker"
"kubectl" "kubectl"
"history" "history"
@@ -1221,6 +1186,9 @@ in
"setopt CORRECT" "setopt CORRECT"
"setopt INTERACTIVE_COMMENTS" "setopt INTERACTIVE_COMMENTS"
"" ""
"# zsh-syntax-highlighting (manually sourced)"
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
""
"# Starship" "# Starship"
"eval \"$(starship init zsh)\"" "eval \"$(starship init zsh)\""
"" ""
@@ -1239,7 +1207,6 @@ in
''; '';
}; };
} }
#+END_SRC #+END_SRC
** =generated/system/development/databases/top.nix= ** =generated/system/development/databases/top.nix=
+1
View File
@@ -0,0 +1 @@
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/.config/kitty/kitty.conf
@@ -0,0 +1 @@
/nix/store/hqg1qv89c89x5z6hyafbbyc0ncy0jbqs-home-manager-files/.config/kitty/themes/Catppuccin-Mocha.conf
+279
View File
@@ -0,0 +1,279 @@
"$schema" = 'https://starship.rs/config-schema.json'
format = """
[](red)\
$os\
$username\
[](bg:peach fg:red)\
$directory\
[](bg:yellow fg:peach)\
$git_branch\
$git_status\
[](fg:yellow bg:green)\
$c\
$rust\
$golang\
$nodejs\
$php\
$java\
$kotlin\
$haskell\
$python\
[](fg:green bg:sapphire)\
$conda\
[](fg:sapphire bg:lavender)\
$time\
[ ](fg:lavender)\
$cmd_duration\
$line_break\
$character"""
palette = 'catppuccin_mocha'
[os]
disabled = false
style = "bg:red fg:crust"
[os.symbols]
Windows = ""
Ubuntu = "󰕈"
SUSE = ""
Raspbian = "󰐿"
Mint = "󰣭"
Macos = "󰀵"
Manjaro = ""
Linux = "󰌽"
Gentoo = "󰣨"
Fedora = "󰣛"
Alpine = ""
Amazon = ""
Android = ""
AOSC = ""
Arch = "󰣇"
Artix = "󰣇"
CentOS = ""
Debian = "󰣚"
Redhat = "󱄛"
RedHatEnterprise = "󱄛"
[username]
show_always = true
style_user = "bg:red fg:crust"
style_root = "bg:red fg:crust"
format = '[ $user]($style)'
[directory]
style = "bg:peach fg:crust"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = "󰝚 "
"Pictures" = " "
"Developer" = "󰲋 "
[git_branch]
symbol = ""
style = "bg:yellow"
format = '[[ $symbol $branch ](fg:crust bg:yellow)]($style)'
[git_status]
style = "bg:yellow"
format = '[[($all_status$ahead_behind )](fg:crust bg:yellow)]($style)'
[nodejs]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[c]
symbol = " "
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[rust]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[golang]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[php]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[java]
symbol = " "
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[kotlin]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[haskell]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version) ](fg:crust bg:green)]($style)'
[python]
symbol = ""
style = "bg:green"
format = '[[ $symbol( $version)(\(#$virtualenv\)) ](fg:crust bg:green)]($style)'
[docker_context]
symbol = ""
style = "bg:sapphire"
format = '[[ $symbol( $context) ](fg:crust bg:sapphire)]($style)'
[conda]
symbol = "  "
style = "fg:crust bg:sapphire"
format = '[$symbol$environment ]($style)'
ignore_base = false
[time]
disabled = false
time_format = "%R"
style = "bg:lavender"
format = '[[  $time ](fg:crust bg:lavender)]($style)'
[line_break]
disabled = false
[character]
disabled = false
success_symbol = '[](bold fg:green)'
error_symbol = '[](bold fg:red)'
vimcmd_symbol = '[](bold fg:green)'
vimcmd_replace_one_symbol = '[](bold fg:lavender)'
vimcmd_replace_symbol = '[](bold fg:lavender)'
vimcmd_visual_symbol = '[](bold fg:yellow)'
[cmd_duration]
show_milliseconds = true
format = " in $duration "
style = "bg:lavender"
disabled = false
show_notifications = true
min_time_to_notify = 45000
[palettes.catppuccin_mocha]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
[palettes.catppuccin_frappe]
rosewater = "#f2d5cf"
flamingo = "#eebebe"
pink = "#f4b8e4"
mauve = "#ca9ee6"
red = "#e78284"
maroon = "#ea999c"
peach = "#ef9f76"
yellow = "#e5c890"
green = "#a6d189"
teal = "#81c8be"
sky = "#99d1db"
sapphire = "#85c1dc"
blue = "#8caaee"
lavender = "#babbf1"
text = "#c6d0f5"
subtext1 = "#b5bfe2"
subtext0 = "#a5adce"
overlay2 = "#949cbb"
overlay1 = "#838ba7"
overlay0 = "#737994"
surface2 = "#626880"
surface1 = "#51576d"
surface0 = "#414559"
base = "#303446"
mantle = "#292c3c"
crust = "#232634"
[palettes.catppuccin_latte]
rosewater = "#dc8a78"
flamingo = "#dd7878"
pink = "#ea76cb"
mauve = "#8839ef"
red = "#d20f39"
maroon = "#e64553"
peach = "#fe640b"
yellow = "#df8e1d"
green = "#40a02b"
teal = "#179299"
sky = "#04a5e5"
sapphire = "#209fb5"
blue = "#1e66f5"
lavender = "#7287fd"
text = "#4c4f69"
subtext1 = "#5c5f77"
subtext0 = "#6c6f85"
overlay2 = "#7c7f93"
overlay1 = "#8c8fa1"
overlay0 = "#9ca0b0"
surface2 = "#acb0be"
surface1 = "#bcc0cc"
surface0 = "#ccd0da"
base = "#eff1f5"
mantle = "#e6e9ef"
crust = "#dce0e8"
[palettes.catppuccin_macchiato]
rosewater = "#f4dbd6"
flamingo = "#f0c6c6"
pink = "#f5bde6"
mauve = "#c6a0f6"
red = "#ed8796"
maroon = "#ee99a0"
peach = "#f5a97f"
yellow = "#eed49f"
green = "#a6da95"
teal = "#8bd5ca"
sky = "#91d7e3"
sapphire = "#7dc4e4"
blue = "#8aadf4"
lavender = "#b7bdf8"
text = "#cad3f5"
subtext1 = "#b8c0e0"
subtext0 = "#a5adcb"
overlay2 = "#939ab7"
overlay1 = "#8087a2"
overlay0 = "#6e738d"
surface2 = "#5b6078"
surface1 = "#494d64"
surface0 = "#363a4f"
base = "#24273a"
mantle = "#1e2030"
crust = "#181926"
+2 -1
View File
@@ -14,7 +14,8 @@ $mainMod = SUPER
# Terminal / launcher / kill / reload # Terminal / launcher / kill / reload
# bind = $mainMod, E, exec, thunar # bind = $mainMod, E, exec, thunar
bind = $mainMod, RETURN, exec, kitty bind = $mainMod, RETURN, exec, kitty
# bind = $mainMod, D, exec, wofi --show drun bind = $mainMod, D, exec, wofi --show drun
bind = ALT, D, exec, wofi --show drun
# bind = $mainMod, Q, killactive, # bind = $mainMod, Q, killactive,
bind = $mainMod SHIFT, Q, exit, bind = $mainMod SHIFT, Q, exit,
bind = $mainMod SHIFT, R, exec, hyprctl reload bind = $mainMod SHIFT, R, exec, hyprctl reload
+24 -17
View File
@@ -3,33 +3,40 @@
pkgs, pkgs,
lib, lib,
user, user,
inputs,
flakeRoot, flakeRoot,
... ...
}: }:
let let
hyprlandConf = builtins.readFile (flakeRoot + "/assets/hyprland/conf/hyprland.conf"); hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr";
userConfig = import (flakeRoot + "/assets/flake/users/henrov.nix"); # Dynamically read all files in assets/hyprland/conf/
hyprlandConfs =
lib.genAttrs (builtins.attrNames (builtins.readDir "${flakeRoot}/assets/hyprland/conf"))
(name: {
text = builtins.readFile "${flakeRoot}/assets/hyprland/conf/${name}";
});
in in
{ {
# Nix settings to use Hyprland's cache for packages # NixOS: Enable Hyprland (optional)
nix.settings = {
substituters = [ "https://hyprland.cachix.org" ];
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
# Install Hyprland and enable it as the window manager
environment.systemPackages = with pkgs; [ hyprland ];
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
xwayland.enable = true;
}; };
# Hyprland-specific Home Manager configurations # Home Manager: Hyprland-specific configurations
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
home.stateVersion = userConfig.stateVersion; # Use config.home-manager.users.${user.username} instead of userConfig
home.username = userConfig.username; home.stateVersion = config.home-manager.users.${user.username}.stateVersion or "23.11"; # Default fallback
home.homeDirectory = userConfig.homeDirectory; home.username = user.username; # Use the 'user' argument
xdg.configFile."hypr/hyprland.conf".text = hyprlandConf; home.homeDirectory =
config.home-manager.users.${user.username}.homeDirectory or "/home/${user.username}";
wayland.windowManager.hyprland = {
enable = true;
};
# Merge dynamic Hyprland configs with existing xdg.configFile
xdg.configFile = {
# Your existing manual configs (if any)
}
// hyprlandConfs;
}; };
} }
@@ -1,7 +1,7 @@
{ config, pkgs, lib, user, inputs, flakeRoot,... }: { config, pkgs, lib, user, inputs, flakeRoot,... }:
{ {
imports = [ imports = [
# No subfolders to import ./wofi.nix
]; ];
# .. put any code here # .. put any code here
} }
@@ -0,0 +1,36 @@
{ config, pkgs, lib, user, flakeRoot, ... }:
let
xdgDataHome = config.home-manager.users.${user.username}.xdg.dataHome;
in
{
# NixOS: Install Wofi system-wide (optional)
environment.systemPackages = with pkgs; [ wofi ];
# Home Manager: User-specific Wofi config
home-manager.users.${user.username} = {
# Install Wofi for the user
home.packages = with pkgs; [ wofi ];
# Wofi configuration
xdg.configFile."wofi/config".text = ''
dark
width=500
height=800
lines=10
columns=1
cache_dir=${xdgDataHome}/wofi
allow_images=true
allow_markup=true
show_drun=true
'';
/*
# Catppuccin Mocha theme for Wofi
xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "wofi";
rev = "d4c8c0a6b57e2e97a0d7b87e186322e933a8d9e0"; # Example commit hash (replace with a valid one)
sha256 = "sha256-0Rn9CKPm0v3rXlx7nyXD3QJ5Xq3XZvBwgqXzWmOyZkA="; # Replace with the correct hash
} + "/mocha.css"; # Correct file name
*/
};
}
@@ -1,7 +1,7 @@
{ config, pkgs, lib, user, inputs, flakeRoot,... }: { config, pkgs, lib, user, inputs, flakeRoot,... }:
{ {
imports = [ imports = [
./wofi.nix # No subfolders to import
]; ];
# .. put any code here # .. put any code here
} }
@@ -1,31 +1,4 @@
{ config, pkgs, lib, user, inputs, flakeRoot,... }: { config, pkgs, lib, user, inputs, flakeRoot,... }:
{ {
programs.wofi = { # .. put any code here
enable = true;
wrapGtkApps = true; # Required for GTK theming
extraPackages = with pkgs; [ wofi ];
};
# Catppuccin theme for Wofi
home-manager.users.${user.username} = {
xdg.configFile."wofi/config".text = ''
dark
width=500
height=800
lines=10
columns=1
cache_dir=${config.xdg.dataHome}/wofi
allow_images=true
allow_markup=true
show_drun=true
'';
xdg.configFile."wofi/style.css".source = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "wofi";
rev = "main";
sha256 = "sha256-0000000000000000000000000000000000000000000000000000"; # Update with the correct hash
file = "mocha.css"; # or latte/frappe/macchiato
};
};
} }
@@ -1,27 +1,11 @@
{ config, pkgs, lib, user, ... }: { config, pkgs, lib, user, flakeRoot, ... }:
{ {
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
programs.starship = { programs.starship = {
enable = true; enable = true;
}; };
# Catppuccin Mocha theme for Starship # Use the starship.toml from your assets
xdg.configFile."starship.toml".text = '' xdg.configFile."starship.toml".source = "${flakeRoot}/assets/common/conf/starship.toml";
format = "$all"
[character]
success_symbol = "[](bold green)"
error_symbol = "[](bold red)"
[directory]
style = "bold lavender"
[git_branch]
symbol = " "
style = "bold maroon"
[package]
disabled = true
'';
}; };
} }
@@ -4,18 +4,22 @@ let
in in
{ {
home-manager.users.${user.username} = { home-manager.users.${user.username} = {
# Install zsh-syntax-highlighting
home.packages = with pkgs; [
zsh-syntax-highlighting
];
programs.zsh = { programs.zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true; # Disable syntaxHighlighting.enable (we handle it manually)
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
theme = "agnoster"; theme = "agnoster";
plugins = [ plugins = [
"git" "git"
"zsh-autosuggestions" "zsh-autosuggestions"
"zsh-syntax-highlighting"
"docker" "docker"
"kubectl" "kubectl"
"history" "history"
@@ -41,6 +45,9 @@ in
"setopt CORRECT" "setopt CORRECT"
"setopt INTERACTIVE_COMMENTS" "setopt INTERACTIVE_COMMENTS"
"" ""
"# zsh-syntax-highlighting (manually sourced)"
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
""
"# Starship" "# Starship"
"eval \"$(starship init zsh)\"" "eval \"$(starship init zsh)\""
"" ""