feat: convert the rest of the configs to hjem
This commit is contained in:
parent
689c291762
commit
63d99f2062
10 changed files with 361 additions and 293 deletions
|
@ -1,5 +1,8 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
_utils,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
@ -29,9 +32,11 @@
|
|||
programs.light.enable = true;
|
||||
|
||||
# hyprland stuff
|
||||
# services.blueman = lib.mkIf config.programs.hyprland.enable { enable = true; };
|
||||
# hm.wayland.windowManager.hyprland.settings.exec-once = with pkgs; [
|
||||
# "${lib.getExe networkmanagerapplet}"
|
||||
# "${lib.getExe' blueman "blueman-applet"}"
|
||||
# ];
|
||||
services.blueman = lib.mkIf config.programs.hyprland.enable { enable = true; };
|
||||
hj.".config/hypr/hyprland.conf".text = _utils.toHyprconf {
|
||||
exec-once = with pkgs; [
|
||||
"${lib.getExe networkmanagerapplet}"
|
||||
"${lib.getExe' blueman "blueman-applet"}"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -111,4 +111,62 @@
|
|||
alias = builtins.toString (pkgs.writeTextDir filename content) + "/";
|
||||
tryFiles = "${filename} =${builtins.toString status}";
|
||||
};
|
||||
|
||||
# https://github.com/nix-community/home-manager/blob/ec71b5162848e6369bdf2be8d2f1dd41cded88e8/modules/lib/generators.nix#L4-L61
|
||||
toHyprconf =
|
||||
attrs:
|
||||
let
|
||||
inherit (lib)
|
||||
all
|
||||
concatMapStringsSep
|
||||
concatStrings
|
||||
concatStringsSep
|
||||
filterAttrs
|
||||
foldl
|
||||
generators
|
||||
hasPrefix
|
||||
isAttrs
|
||||
isList
|
||||
mapAttrsToList
|
||||
replicate
|
||||
;
|
||||
|
||||
indentLevel = 0;
|
||||
importantPrefixes = [ "$" ];
|
||||
initialIndent = concatStrings (replicate indentLevel " ");
|
||||
|
||||
toHyprconf' =
|
||||
indent: attrs:
|
||||
let
|
||||
sections = filterAttrs (n: v: isAttrs v || (isList v && all isAttrs v)) attrs;
|
||||
|
||||
mkSection =
|
||||
n: attrs:
|
||||
if lib.isList attrs then
|
||||
(concatMapStringsSep "\n" (a: mkSection n a) attrs)
|
||||
else
|
||||
''
|
||||
${indent}${n} {
|
||||
${toHyprconf' " ${indent}" attrs}${indent}}
|
||||
'';
|
||||
|
||||
mkFields = generators.toKeyValue {
|
||||
listsAsDuplicateKeys = true;
|
||||
inherit indent;
|
||||
};
|
||||
|
||||
allFields = filterAttrs (n: v: !(isAttrs v || (isList v && all isAttrs v))) attrs;
|
||||
|
||||
isImportantField =
|
||||
n: _: foldl (acc: prev: if hasPrefix prev n then true else acc) false importantPrefixes;
|
||||
|
||||
importantFields = filterAttrs isImportantField allFields;
|
||||
|
||||
fields = builtins.removeAttrs allFields (mapAttrsToList (n: _: n) importantFields);
|
||||
in
|
||||
mkFields importantFields
|
||||
+ concatStringsSep "\n" (mapAttrsToList mkSection sections)
|
||||
+ mkFields fields;
|
||||
in
|
||||
toHyprconf' initialIndent attrs;
|
||||
}
|
||||
|
|
|
@ -3,24 +3,23 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
hm.programs.alacritty =
|
||||
let
|
||||
toml = pkgs.formats.toml { };
|
||||
|
||||
theme = pkgs.fetchurl {
|
||||
# url = "https://raw.githubusercontent.com/catppuccin/alacritty/ce476fb41f307d90f841c1a4fd7f0727c21248b2/catppuccin-macchiato.toml";
|
||||
url = "https://raw.githubusercontent.com/rose-pine/alacritty/3c3e36eb5225b0eb6f1aa989f9d9e783a5b47a83/dist/rose-pine.toml";
|
||||
hash = "sha256-MheSmzz02ZLAOS2uaclyazu6E//eikcdFydFfkio0/U=";
|
||||
};
|
||||
|
||||
themeAttr = builtins.fromTOML (builtins.readFile theme);
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = lib.recursiveUpdate themeAttr {
|
||||
hj.".config/alacritty/alacritty.toml".source = toml.generate "alacritty.toml" (
|
||||
lib.recursiveUpdate themeAttr {
|
||||
font = {
|
||||
normal.family = "Iosevka Nerd Font";
|
||||
size = 12;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{ lib, pkgs, ... }:
|
||||
{
|
||||
hm.programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
environment.systemPackages = [ pkgs.fuzzel ];
|
||||
|
||||
hj.".config/fuzzel/fuzzel.ini".text = lib.generators.toINI { } {
|
||||
main = {
|
||||
font = "Iosevka Nerd Font:size=16";
|
||||
dpi-aware = false;
|
||||
|
@ -20,5 +21,4 @@
|
|||
selection-match = "40a02bff"; # latte green
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# utility packages for hyprland, since you know it's not a DE
|
||||
|
||||
hm.home.packages = with pkgs; [
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome.gnome-calculator
|
||||
mate.eom
|
||||
nwg-look
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
pkgs,
|
||||
_utils,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
@ -23,8 +24,7 @@
|
|||
|
||||
xdg.portal.extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
|
||||
|
||||
hm = {
|
||||
home.packages = with pkgs; [
|
||||
environment.systemPackages = with pkgs; [
|
||||
hyprpaper
|
||||
hyprpicker
|
||||
wl-clipboard
|
||||
|
@ -36,9 +36,7 @@
|
|||
polkit_gnome
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
settings =
|
||||
hj.".config/hypr/hyprland.conf".text =
|
||||
let
|
||||
inherit (lib) getExe getExe';
|
||||
keys = [
|
||||
|
@ -55,7 +53,7 @@
|
|||
];
|
||||
in
|
||||
with pkgs;
|
||||
{
|
||||
_utils.toHyprconf {
|
||||
"$mod" = "SUPER";
|
||||
"$wl-paste" = getExe' wl-clipboard "wl-paste";
|
||||
"$wpctl" = getExe' wireplumber "wpctl";
|
||||
|
@ -185,6 +183,4 @@
|
|||
"$mod SHIFT, mouse:272, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
{ lib, pkgs, ... }:
|
||||
let
|
||||
toml = pkgs.formats.toml { };
|
||||
in
|
||||
{
|
||||
hm.programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
environment.systemPackages = [ pkgs.starship ];
|
||||
|
||||
hj = {
|
||||
".config/starship.toml" =
|
||||
toml.generate "starship.toml" {
|
||||
add_newline = false;
|
||||
|
||||
directory = {
|
||||
truncation_length = 3;
|
||||
truncation_symbol = "…/";
|
||||
};
|
||||
} // (import ./nerd-font.nix);
|
||||
}
|
||||
// (import ./nerd-font.nix);
|
||||
|
||||
".config/fish/config.fish".text = lib.mkAfter ''
|
||||
starship init fish | source
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
...
|
||||
}:
|
||||
{
|
||||
hm.programs.waybar = {
|
||||
enable = true;
|
||||
style = ./style.css;
|
||||
environment.systemPackages = [ pkgs.waybar ];
|
||||
|
||||
settings = [
|
||||
{
|
||||
hj = {
|
||||
".config/waybar/style.css".source = ./style.css;
|
||||
|
||||
".config/waybar/config".text = builtins.toJSON {
|
||||
position = "bottom";
|
||||
layer = "top";
|
||||
height = 24;
|
||||
|
@ -91,7 +91,6 @@
|
|||
return-type = "";
|
||||
interval = 2;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, _utils, ... }:
|
||||
{
|
||||
imports = [
|
||||
./nvidia.nix
|
||||
|
@ -11,14 +11,12 @@
|
|||
wineWowPackages.waylandFull
|
||||
];
|
||||
|
||||
# hm = {
|
||||
# wayland.windowManager.hyprland.settings = {
|
||||
# monitor = "DP-1,3840x2160@144,0x0,1.5";
|
||||
# xwayland.force_zero_scaling = true;
|
||||
# env = [
|
||||
# "GDK_SCALE,1.5"
|
||||
# "XCURSOR_SIZE,24"
|
||||
# ];
|
||||
# };
|
||||
# };
|
||||
hj.".config/hypr/hyprland.conf".text = _utils.toHyprconf {
|
||||
monitor = "DP-1,3840x2160@144,0x0,1.5";
|
||||
xwayland.force_zero_scaling = true;
|
||||
env = [
|
||||
"GDK_SCALE,1.5"
|
||||
"XCURSOR_SIZE,24"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
_utils,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
@ -37,10 +38,12 @@
|
|||
};
|
||||
};
|
||||
|
||||
# hm.wayland.windowManager.hyprland.settings.env = [
|
||||
# "XDG_SESSION_TYPE,wayland"
|
||||
# "GBM_BACKEND,nvidia-drm"
|
||||
# "__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
# "NVD_BACKEND,direct"
|
||||
# ];
|
||||
hj.".config/hypr/hyprland.conf".text = _utils.toHyprconf {
|
||||
env = [
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"GBM_BACKEND,nvidia-drm"
|
||||
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
|
||||
"NVD_BACKEND,direct"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue