Compare commits
22 Commits
5244b334b9
...
157df76509
| Author | SHA1 | Date | |
|---|---|---|---|
| 157df76509 | |||
| cddfb44053 | |||
| 099eb5d68f | |||
| 6946c79bfd | |||
| 7b4ea6ff47 | |||
| 5976a3d1a1 | |||
| f1f74b1fae | |||
| d51e05efdc | |||
| d4e052a0de | |||
| 755375e8d3 | |||
| 9be8f063b6 | |||
| 2943a20033 | |||
| d8f588babd | |||
| 9d9d842da3 | |||
| bc0e848888 | |||
| 3f19de6ae0 | |||
| 505c95646a | |||
| 6ea59f7417 | |||
| 53dae84520 | |||
| 1a84342738 | |||
| 04118389ad | |||
| 45dd985cd1 |
+450
-432
File diff suppressed because it is too large
Load Diff
+87
-120
@@ -551,34 +551,41 @@ The ./generated/top.nix file acts as an anchor or entry point for the entire cha
|
||||
pkgs,
|
||||
lib,
|
||||
user,
|
||||
inputs,
|
||||
flakeRoot,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandConf = builtins.readFile (flakeRoot + "/assets/hyprland/conf/hyprland.conf");
|
||||
userConfig = import (flakeRoot + "/assets/flake/users/henrov.nix");
|
||||
hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr";
|
||||
# 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
|
||||
{
|
||||
# Nix settings to use Hyprland's cache for packages
|
||||
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 ];
|
||||
# NixOS: Enable Hyprland (optional)
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# Hyprland-specific Home Manager configurations
|
||||
# Home Manager: Hyprland-specific configurations
|
||||
home-manager.users.${user.username} = {
|
||||
home.stateVersion = userConfig.stateVersion;
|
||||
home.username = userConfig.username;
|
||||
home.homeDirectory = userConfig.homeDirectory;
|
||||
xdg.configFile."hypr/hyprland.conf".text = hyprlandConf;
|
||||
# Use config.home-manager.users.${user.username} instead of userConfig
|
||||
home.stateVersion = config.home-manager.users.${user.username}.stateVersion or "23.11"; # Default fallback
|
||||
home.username = user.username; # Use the 'user' argument
|
||||
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
|
||||
@@ -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,... }:
|
||||
{
|
||||
imports = [
|
||||
# No subfolders to import
|
||||
./wofi.nix
|
||||
];
|
||||
# .. put any code here
|
||||
}
|
||||
#+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=
|
||||
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
|
||||
@@ -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,... }:
|
||||
{
|
||||
imports = [
|
||||
./wofi.nix
|
||||
# No subfolders to import
|
||||
];
|
||||
# .. 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
|
||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
||||
{
|
||||
programs.wofi = {
|
||||
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
|
||||
};
|
||||
};
|
||||
# .. put any code here
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
@@ -1080,9 +1102,9 @@ This is top file of this level which contains just an import statement for all r
|
||||
#+END_SRC
|
||||
|
||||
** =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
|
||||
{ config, pkgs, lib, user, ... }:
|
||||
{ config, pkgs, lib, user, flakeRoot, ... }:
|
||||
let
|
||||
kittyConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/kitty";
|
||||
in
|
||||
@@ -1090,87 +1112,27 @@ in
|
||||
home-manager.users.${user.username} = {
|
||||
programs.kitty = {
|
||||
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)
|
||||
xdg.configFile."kitty/kitty.conf".text = lib.concatStringsSep "\n" [
|
||||
"# 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"
|
||||
];
|
||||
# Use the kitty.conf from your assets
|
||||
xdg.configFile."kitty/kitty.conf".source = "${flakeRoot}/assets/conf/kitty/kitty.conf";
|
||||
};
|
||||
}
|
||||
|
||||
#+END_SRC
|
||||
|
||||
** =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
|
||||
{ config, pkgs, lib, user, ... }:
|
||||
{ config, pkgs, lib, user, flakeRoot, ... }:
|
||||
{
|
||||
home-manager.users.${user.username} = {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Catppuccin Mocha theme for Starship
|
||||
xdg.configFile."starship.toml".text = ''
|
||||
format = "$all"
|
||||
|
||||
[character]
|
||||
success_symbol = "[❯](bold green)"
|
||||
error_symbol = "[❯](bold red)"
|
||||
|
||||
[directory]
|
||||
style = "bold lavender"
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
style = "bold maroon"
|
||||
|
||||
[package]
|
||||
disabled = true
|
||||
'';
|
||||
# Use the starship.toml from your assets
|
||||
xdg.configFile."starship.toml".source = "${flakeRoot}/assets/common/conf/starship.toml";
|
||||
};
|
||||
}
|
||||
#+END_SRC
|
||||
@@ -1184,18 +1146,21 @@ let
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.username} = {
|
||||
# Install zsh-syntax-highlighting
|
||||
home.packages = with pkgs; [
|
||||
zsh-syntax-highlighting
|
||||
];
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
# Disable syntaxHighlighting.enable (we handle it manually)
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "agnoster";
|
||||
plugins = [
|
||||
"git"
|
||||
"zsh-autosuggestions"
|
||||
"zsh-syntax-highlighting"
|
||||
"docker"
|
||||
"kubectl"
|
||||
"history"
|
||||
@@ -1221,6 +1186,9 @@ in
|
||||
"setopt CORRECT"
|
||||
"setopt INTERACTIVE_COMMENTS"
|
||||
""
|
||||
"# zsh-syntax-highlighting (manually sourced)"
|
||||
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||
""
|
||||
"# Starship"
|
||||
"eval \"$(starship init zsh)\""
|
||||
""
|
||||
@@ -1239,7 +1207,6 @@ in
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
#+END_SRC
|
||||
|
||||
** =generated/system/development/databases/top.nix=
|
||||
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -14,7 +14,8 @@ $mainMod = SUPER
|
||||
# Terminal / launcher / kill / reload
|
||||
# bind = $mainMod, E, exec, thunar
|
||||
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 SHIFT, Q, exit,
|
||||
bind = $mainMod SHIFT, R, exec, hyprctl reload
|
||||
|
||||
@@ -3,33 +3,40 @@
|
||||
pkgs,
|
||||
lib,
|
||||
user,
|
||||
inputs,
|
||||
flakeRoot,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprlandConf = builtins.readFile (flakeRoot + "/assets/hyprland/conf/hyprland.conf");
|
||||
userConfig = import (flakeRoot + "/assets/flake/users/henrov.nix");
|
||||
hyprlandConfigDir = "${config.home-manager.users.${user.username}.xdg.configHome}/hypr";
|
||||
# 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
|
||||
{
|
||||
# Nix settings to use Hyprland's cache for packages
|
||||
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 ];
|
||||
# NixOS: Enable Hyprland (optional)
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# Hyprland-specific Home Manager configurations
|
||||
# Home Manager: Hyprland-specific configurations
|
||||
home-manager.users.${user.username} = {
|
||||
home.stateVersion = userConfig.stateVersion;
|
||||
home.username = userConfig.username;
|
||||
home.homeDirectory = userConfig.homeDirectory;
|
||||
xdg.configFile."hypr/hyprland.conf".text = hyprlandConf;
|
||||
# Use config.home-manager.users.${user.username} instead of userConfig
|
||||
home.stateVersion = config.home-manager.users.${user.username}.stateVersion or "23.11"; # Default fallback
|
||||
home.username = user.username; # Use the 'user' argument
|
||||
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,... }:
|
||||
{
|
||||
imports = [
|
||||
# No subfolders to import
|
||||
./wofi.nix
|
||||
];
|
||||
# .. 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,... }:
|
||||
{
|
||||
imports = [
|
||||
./wofi.nix
|
||||
# No subfolders to import
|
||||
];
|
||||
# .. put any code here
|
||||
}
|
||||
|
||||
@@ -1,31 +1,4 @@
|
||||
{ config, pkgs, lib, user, inputs, flakeRoot,... }:
|
||||
{
|
||||
programs.wofi = {
|
||||
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
|
||||
};
|
||||
};
|
||||
# .. put any code here
|
||||
}
|
||||
|
||||
@@ -1,27 +1,11 @@
|
||||
{ config, pkgs, lib, user, ... }:
|
||||
{ config, pkgs, lib, user, flakeRoot, ... }:
|
||||
{
|
||||
home-manager.users.${user.username} = {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Catppuccin Mocha theme for Starship
|
||||
xdg.configFile."starship.toml".text = ''
|
||||
format = "$all"
|
||||
|
||||
[character]
|
||||
success_symbol = "[❯](bold green)"
|
||||
error_symbol = "[❯](bold red)"
|
||||
|
||||
[directory]
|
||||
style = "bold lavender"
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
style = "bold maroon"
|
||||
|
||||
[package]
|
||||
disabled = true
|
||||
'';
|
||||
# Use the starship.toml from your assets
|
||||
xdg.configFile."starship.toml".source = "${flakeRoot}/assets/common/conf/starship.toml";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,18 +4,22 @@ let
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.username} = {
|
||||
# Install zsh-syntax-highlighting
|
||||
home.packages = with pkgs; [
|
||||
zsh-syntax-highlighting
|
||||
];
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
# Disable syntaxHighlighting.enable (we handle it manually)
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "agnoster";
|
||||
plugins = [
|
||||
"git"
|
||||
"zsh-autosuggestions"
|
||||
"zsh-syntax-highlighting"
|
||||
"docker"
|
||||
"kubectl"
|
||||
"history"
|
||||
@@ -41,6 +45,9 @@ in
|
||||
"setopt CORRECT"
|
||||
"setopt INTERACTIVE_COMMENTS"
|
||||
""
|
||||
"# zsh-syntax-highlighting (manually sourced)"
|
||||
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||
""
|
||||
"# Starship"
|
||||
"eval \"$(starship init zsh)\""
|
||||
""
|
||||
|
||||
Reference in New Issue
Block a user