begun making my home-manager config modular
This commit is contained in:
parent
97b344eb03
commit
4fcc76a32c
23 changed files with 1586 additions and 947 deletions
10
TODO
10
TODO
|
|
@ -14,15 +14,14 @@ Set a GTK theme & icon theme
|
||||||
Get better wallpapers
|
Get better wallpapers
|
||||||
Get hyprcursor working with Bibata-Modern-Ice
|
Get hyprcursor working with Bibata-Modern-Ice
|
||||||
|
|
||||||
|
Get a GRUB theme working
|
||||||
|
Get SDDM and a theme working
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Get waybar (or another bar) working
|
Get waybar (or another bar) working
|
||||||
|
|
||||||
Get a GRUB theme working
|
|
||||||
|
|
||||||
Get SDDM and a theme working
|
|
||||||
|
|
||||||
|
|
||||||
Overtime just install more programs that I need regularly: ie
|
Overtime just install more programs that I need regularly: ie
|
||||||
- btop/htop/etc
|
- btop/htop/etc
|
||||||
|
|
@ -30,8 +29,7 @@ Overtime just install more programs that I need regularly: ie
|
||||||
|
|
||||||
Get a QT theme
|
Get a QT theme
|
||||||
|
|
||||||
Fix pipewire audio is so incredibly low (happens on laptop and PC)
|
Fix pipewire audio sometimes working and sometimes not :(
|
||||||
|
|
||||||
|
|
||||||
Bind new terminal to SUPER+Enter instead of SUPER+Q
|
Bind new terminal to SUPER+Enter instead of SUPER+Q
|
||||||
|
|
||||||
|
|
|
||||||
102
flake.lock
generated
102
flake.lock
generated
|
|
@ -1,5 +1,24 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"ags": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728326430,
|
||||||
|
"narHash": "sha256-tV1ABHuA1HItMdCTuNdA8fMB+qw7LpjvI945VwMSABI=",
|
||||||
|
"owner": "Aylur",
|
||||||
|
"repo": "ags",
|
||||||
|
"rev": "60180a184cfb32b61a1d871c058b31a3b9b0743d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Aylur",
|
||||||
|
"repo": "ags",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"aquamarine": {
|
"aquamarine": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprutils": [
|
"hyprutils": [
|
||||||
|
|
@ -119,7 +138,7 @@
|
||||||
},
|
},
|
||||||
"grub2-themes": {
|
"grub2-themes": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730004881,
|
"lastModified": 1730004881,
|
||||||
|
|
@ -192,9 +211,9 @@
|
||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"hyprutils": "hyprutils",
|
"hyprutils": "hyprutils",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"pre-commit-hooks": "pre-commit-hooks",
|
"pre-commit-hooks": "pre-commit-hooks",
|
||||||
"systems": "systems",
|
"systems": "systems_2",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -315,10 +334,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-flatpak": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1711997201,
|
||||||
|
"narHash": "sha256-J71xzQlVYsjagA4AsVwRazhBh2rZrPpKvxTgs6UzL7c=",
|
||||||
|
"owner": "gmodena",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"rev": "b76fa31346db7fc958a9898f3c594696ca71c4fd",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gmodena",
|
||||||
|
"ref": "v0.4.1",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixcord": {
|
"nixcord": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_2",
|
"flake-compat": "flake-compat_2",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730720546,
|
"lastModified": 1730720546,
|
||||||
|
|
@ -336,16 +371,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730808093,
|
"lastModified": 1725634671,
|
||||||
"narHash": "sha256-oOenwoxpzQsBNi7KltgnXqq6e0+CxlfNXKn3k27w6cQ=",
|
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c1a390f74b2c93f69a6805142f11a215a689cec1",
|
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "master",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
@ -367,6 +402,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730808093,
|
||||||
|
"narHash": "sha256-oOenwoxpzQsBNi7KltgnXqq6e0+CxlfNXKn3k27w6cQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c1a390f74b2c93f69a6805142f11a215a689cec1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730785428,
|
"lastModified": 1730785428,
|
||||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||||
|
|
@ -382,7 +433,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730768919,
|
"lastModified": 1730768919,
|
||||||
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
|
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
|
||||||
|
|
@ -398,13 +449,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730531603,
|
"lastModified": 1730785428,
|
||||||
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
|
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
|
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -414,7 +465,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_6": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730200266,
|
"lastModified": 1730200266,
|
||||||
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
|
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
|
||||||
|
|
@ -456,11 +507,13 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"ags": "ags",
|
||||||
"grub2-themes": "grub2-themes",
|
"grub2-themes": "grub2-themes",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixcord": "nixcord",
|
"nixcord": "nixcord",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_5",
|
||||||
"spicetify-nix": "spicetify-nix",
|
"spicetify-nix": "spicetify-nix",
|
||||||
"swww": "swww"
|
"swww": "swww"
|
||||||
}
|
}
|
||||||
|
|
@ -489,7 +542,7 @@
|
||||||
"swww": {
|
"swww": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": "flake-compat_4",
|
||||||
"nixpkgs": "nixpkgs_5",
|
"nixpkgs": "nixpkgs_6",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -522,6 +575,21 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_2": {
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
|
@ -538,7 +606,7 @@
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726560853,
|
"lastModified": 1726560853,
|
||||||
|
|
|
||||||
13
flake.nix
13
flake.nix
|
|
@ -2,6 +2,7 @@
|
||||||
description = "Emile's Nix Dotfiles";
|
description = "Emile's Nix Dotfiles";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
|
#nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
|
@ -14,16 +15,19 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nixcord = {
|
nixcord.url = "github:kaylorben/nixcord";
|
||||||
url = "github:kaylorben/nixcord";
|
|
||||||
};
|
|
||||||
|
|
||||||
grub2-themes = {url = "github:vinceliuice/grub2-themes";};
|
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
||||||
|
|
||||||
# is this necessary? (aren't I enabling it in `configuration.nix` anyways?)
|
# is this necessary? (aren't I enabling it in `configuration.nix` anyways?)
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
|
||||||
swww.url = "github:LGFae/swww";
|
swww.url = "github:LGFae/swww";
|
||||||
|
|
||||||
|
# TODO: declarative flatpak management
|
||||||
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||||
|
|
||||||
|
ags.url = "github:Aylur/ags";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
@ -63,6 +67,7 @@
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
./hosts/lolcathost
|
./hosts/lolcathost
|
||||||
|
grub2-themes.nixosModules.default
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
15
homes/me/ags/config.js
Normal file
15
homes/me/ags/config.js
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
const myLabel = Widget.Label({
|
||||||
|
label: 'Emillllle',
|
||||||
|
})
|
||||||
|
|
||||||
|
const myBar = Widget.Window({
|
||||||
|
name: 'bar',
|
||||||
|
anchor: ['top', 'left', 'right'],
|
||||||
|
child: myLabel,
|
||||||
|
})
|
||||||
|
|
||||||
|
App.config({
|
||||||
|
windows: [
|
||||||
|
myBar
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
@ -11,10 +11,19 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
#inputs.nixcord.homeManagerModules.nixcord
|
../modules/git.nix
|
||||||
# inputs.spicetify-nix.homeManagerModules.default
|
../modules/bat.nix
|
||||||
# ./wofi.nix
|
../modules/fish.nix
|
||||||
#../../modules/discord/nixcord.nix
|
../modules/editor/helix.nix
|
||||||
|
|
||||||
|
../modules/rio.nix
|
||||||
|
../modules/firefox.nix
|
||||||
|
../modules/nixcord.nix
|
||||||
|
|
||||||
|
../modules/hypr/hypridle.nix
|
||||||
|
../modules/hypr/hyprlock.nix
|
||||||
|
../modules/kanshi.nix
|
||||||
|
../modules/wofi.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -76,418 +85,21 @@
|
||||||
style.name = "gtk2";
|
style.name = "gtk2";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.hypridle = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
ignore_dbus_inhibit = false;
|
|
||||||
lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
|
||||||
};
|
|
||||||
|
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = 600;
|
|
||||||
on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
timeout = 660;
|
|
||||||
on-timeout = "systemctl suspend";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background = {
|
|
||||||
monitor = "";
|
|
||||||
path = "$HOME/downloads/1.png"; # only png supported for now
|
|
||||||
# color = $color1
|
|
||||||
|
|
||||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
|
||||||
blur_size = 4;
|
|
||||||
blur_passes = 3; # 0 disables blurring
|
|
||||||
noise = 0.0117;
|
|
||||||
contrast = 1.3000; # Vibrant!!!
|
|
||||||
brightness = 0.8000;
|
|
||||||
vibrancy = 0.2100;
|
|
||||||
vibrancy_darkness = 0.0;
|
|
||||||
};
|
|
||||||
label = [
|
|
||||||
{
|
|
||||||
# Hours
|
|
||||||
monitor = "";
|
|
||||||
text = ''cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 112;
|
|
||||||
font_family = "Geist Mono 10";
|
|
||||||
shadow_passes = 3;
|
|
||||||
shadow_size = 4;
|
|
||||||
|
|
||||||
position = "0, 240";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
# Minutes
|
|
||||||
monitor = "";
|
|
||||||
text = ''cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 112;
|
|
||||||
font_family = "Geist Mono 10";
|
|
||||||
shadow_passes = 3;
|
|
||||||
shadow_size = 4;
|
|
||||||
|
|
||||||
position = "0, 120";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Today
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = ''cmd[update:18000000] echo "<b><big> "$(date +'%A')" </big></b>"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 22;
|
|
||||||
font_family = "JetBrainsMono Nerd Font 10";
|
|
||||||
|
|
||||||
position = "0, 30";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
# Week
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = ''cmd[update:18000000] echo "<b> "$(date +'%d %b')" </b>"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 18;
|
|
||||||
font_family = "JetBrainsMono Nerd Font 10";
|
|
||||||
|
|
||||||
position = "0, 6";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
# Degrees
|
|
||||||
monitor = "";
|
|
||||||
# get temperature in Brisbane
|
|
||||||
text = ''cmd[update:18000000] echo "<b>Feels like<big> $(curl -s 'wttr.in/bne?format=%t' | tr -d '+') </big></b>"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 18;
|
|
||||||
font_family = "Geist Mono 10";
|
|
||||||
|
|
||||||
position = "0, 40";
|
|
||||||
halign = "center";
|
|
||||||
valign = "bottom";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
input-field = {
|
|
||||||
monitor = "";
|
|
||||||
size = "300, 50";
|
|
||||||
outline_thickness = 3;
|
|
||||||
|
|
||||||
dots_size = 0.26; # Scale of input-field height, 0.2 - 0.8
|
|
||||||
dots_spacing = 0.64; # Scale of dots' absolute size, 0.0 - 1.0
|
|
||||||
dots_center = true;
|
|
||||||
dots_rouding = -1;
|
|
||||||
|
|
||||||
rounding = 22;
|
|
||||||
outer_color = "rgb(255, 0, 0, 1)";
|
|
||||||
inner_color = "rgb(0, 255, 0, 1)";
|
|
||||||
font_color = "rgb(0, 0, 255, 1)";
|
|
||||||
fade_on_empty = true;
|
|
||||||
placeholder_text = "!!Super Secret!!"; # Text rendered in the input box when it's empty.
|
|
||||||
|
|
||||||
position = "0, 120";
|
|
||||||
halign = "center";
|
|
||||||
valign = "bottom";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
programs.hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
general = {
|
|
||||||
grace = 5;
|
|
||||||
no_fade_in = false;
|
|
||||||
disable_loading_bar = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# BACKGROUND
|
|
||||||
background = {
|
|
||||||
monitor = "";
|
|
||||||
path = "../../../downloads/1.png";
|
|
||||||
blur_passes = 0;
|
|
||||||
contrast = 0.8916;
|
|
||||||
brightness = 0.7172;
|
|
||||||
vibrancy = 0.1696;
|
|
||||||
vibrancy_darkness = 0.0;
|
|
||||||
};
|
|
||||||
|
|
||||||
label = [
|
|
||||||
{
|
|
||||||
# Day-Month-Date
|
|
||||||
monitor = "";
|
|
||||||
text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 28;
|
|
||||||
font_family = "JetBrainsMono Nerd Font Bold";
|
|
||||||
position = "0, 490";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
# Time
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = ''cmd[update:1000] echo "<span>$(date +"%I:%M")</span>"'';
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
font_size = 160;
|
|
||||||
font_family = "steelfish outline regular";
|
|
||||||
position = "0, 370";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
# USER
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
text = " $USER";
|
|
||||||
color = "rgb(255, 255, 255, 1)";
|
|
||||||
outline_thickness = 2;
|
|
||||||
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
|
|
||||||
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
|
|
||||||
dots_center = true;
|
|
||||||
font_size = 18;
|
|
||||||
font_family = "JetBrainsMono Nerd Font Bold";
|
|
||||||
position = "0, -180";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# INPUT FIELD
|
|
||||||
input-field = [
|
|
||||||
{
|
|
||||||
monitor = "";
|
|
||||||
size = "300, 60";
|
|
||||||
outline_thickness = 2;
|
|
||||||
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
|
|
||||||
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
|
|
||||||
dots_center = true;
|
|
||||||
outer_color = "rgba(255, 255, 255, 0)";
|
|
||||||
inner_color = "rgba(255, 255, 255, 0.1)";
|
|
||||||
font_color = "rgb(255, 255, 255, 1)";
|
|
||||||
fade_on_empty = false;
|
|
||||||
font_family = "JetBrainsMono Nerd Font Bold";
|
|
||||||
placeholder_text = "<i>🔒 Enter Password</i>";
|
|
||||||
hide_input = false;
|
|
||||||
position = "0, -250";
|
|
||||||
halign = "center";
|
|
||||||
valign = "center";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
# these are both required for home-manager to work
|
# these are both required for home-manager to work
|
||||||
home-manager.enable = true;
|
home-manager.enable = true;
|
||||||
|
|
||||||
git = {
|
ags = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Emile Clark-Boman";
|
configDir = ./ags;
|
||||||
userEmail = "eclarkboman@gmail.com";
|
|
||||||
};
|
|
||||||
|
|
||||||
# like `/bin/cat` but with syntax highlighting
|
extraPackages = with pkgs; [
|
||||||
# TODO: change the pager (maybe use Github:sachaos/viddy instead)
|
gtksourceview
|
||||||
bat = {
|
webkitgtk
|
||||||
enable = true;
|
accountsservice
|
||||||
config = {
|
|
||||||
pager = "less -FR";
|
|
||||||
# let Stylix control the theme
|
|
||||||
#theme = "Dracula";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#nixvim = {
|
|
||||||
# enable = true;
|
|
||||||
# # TODO: allow clipboard to be configurable based on system clipboard
|
|
||||||
# colorschemes.dracula.enable = true;
|
|
||||||
# plugins = {
|
|
||||||
# lualine.enable = true;
|
|
||||||
# treesitter.enable = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# opts = {
|
|
||||||
# number = true;
|
|
||||||
# tabstop = 4;
|
|
||||||
# softtabstop = 4;
|
|
||||||
# shiftwidth = 4;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# clipboard.providers.wl-copy.enable = true;
|
|
||||||
#};
|
|
||||||
|
|
||||||
# read https://docs.helix-editor.com/editor.html
|
|
||||||
helix = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
theme = "dracula";
|
|
||||||
editor = {
|
|
||||||
line-number = "absolute";
|
|
||||||
popup-border = "all";
|
|
||||||
scroll-lines = 3;
|
|
||||||
color-modes = true; # colour the mode indicator depending on mode
|
|
||||||
shell = ["zsh" "-c"];
|
|
||||||
|
|
||||||
auto-format = true;
|
|
||||||
auto-completion = true; # enable popup for autocomplete
|
|
||||||
completion-timeout = 250; # time before completions display
|
|
||||||
preview-completion-insert = true;
|
|
||||||
completion-trigger-len = 2; # min word length to trigger completions
|
|
||||||
completion-replace = true; # completions replace entire word
|
|
||||||
|
|
||||||
indent-heuristic = "tree-sitter"; # how indentation is computed
|
|
||||||
# TODO: make this configurable (enabled on myputer, disabled on lolcathost)
|
|
||||||
middle-click-paste = true;
|
|
||||||
insert-final-newline = true; # append newline to file on write
|
|
||||||
|
|
||||||
gutters = [
|
|
||||||
"diagnostics"
|
|
||||||
"spacer"
|
|
||||||
"line-numbers"
|
|
||||||
"spacer"
|
|
||||||
"diff"
|
|
||||||
];
|
|
||||||
|
|
||||||
whitespace = {
|
|
||||||
render = {
|
|
||||||
space = "none"; # "all"
|
|
||||||
tab = "none"; #"all"
|
|
||||||
nbsp = "none";
|
|
||||||
nnbsp = "none";
|
|
||||||
newline = "none";
|
|
||||||
};
|
|
||||||
characters = {
|
|
||||||
space = "·";
|
|
||||||
nbsp = "⍽";
|
|
||||||
nnbsp = "␣";
|
|
||||||
tab = "→";
|
|
||||||
newline = "⤶";
|
|
||||||
tabpad = "·"; # Tabs will look like "→···" (depending on tab width)
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
indent-guides = {
|
|
||||||
render = true;
|
|
||||||
character = "▏"; # "|"
|
|
||||||
skip-levels = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
lsp = {
|
|
||||||
enable = true;
|
|
||||||
auto-signature-help = true; # hints for function parameters
|
|
||||||
display-inlay-hints = true; # inline hints
|
|
||||||
snippets = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
cursor-shape = {
|
|
||||||
normal = "block";
|
|
||||||
insert = "bar";
|
|
||||||
select = "block";
|
|
||||||
};
|
|
||||||
|
|
||||||
file-picker = {
|
|
||||||
hidden = true; # show hidden files
|
|
||||||
follow-symlinks = true;
|
|
||||||
deduplicate-links = true;
|
|
||||||
git-ignore = false; # dont read .gitignore files
|
|
||||||
ignore = true; # use .ignore for helix instead of .gitignore
|
|
||||||
};
|
|
||||||
|
|
||||||
statusline = {
|
|
||||||
left = [
|
|
||||||
"mode"
|
|
||||||
"spacer"
|
|
||||||
"version-control"
|
|
||||||
"spinner"
|
|
||||||
];
|
|
||||||
center = [
|
|
||||||
"file-name"
|
|
||||||
"read-only-indicator"
|
|
||||||
"file-modification-indicator"
|
|
||||||
];
|
|
||||||
right = [
|
|
||||||
"position"
|
|
||||||
"total-line-numbers"
|
|
||||||
"file-encoding"
|
|
||||||
"file-line-ending"
|
|
||||||
"file-type"
|
|
||||||
];
|
|
||||||
separator = "|";
|
|
||||||
mode.normal = "NORMAL";
|
|
||||||
mode.insert = "INSERT";
|
|
||||||
mode.select = "SELECT";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
languages.language = [
|
|
||||||
{
|
|
||||||
name = "nix";
|
|
||||||
indent = {
|
|
||||||
tab-width = 2;
|
|
||||||
unit = " ";
|
|
||||||
};
|
|
||||||
block-comment-tokens = {
|
|
||||||
start = "/*";
|
|
||||||
end = "*/";
|
|
||||||
};
|
|
||||||
auto-format = true;
|
|
||||||
formatter.command = "${pkgs.alejandra}/bin/alejandra";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "python";
|
|
||||||
indent = {
|
|
||||||
tab-width = 4;
|
|
||||||
unit = " ";
|
|
||||||
};
|
|
||||||
auto-format = false; # my python is beautiful ^_^
|
|
||||||
rulers = [80];
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixcord = {
|
|
||||||
enable = true;
|
|
||||||
config = {
|
|
||||||
frameless = true;
|
|
||||||
plugins = {
|
|
||||||
# TODO: remove this plugin
|
|
||||||
hideAttachments.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
firefox = {
|
|
||||||
enable = true;
|
|
||||||
policies = {
|
|
||||||
#BlockAboutConfig = true;
|
|
||||||
DefaultDownloadDirectory = "\${home}/downloads";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# I want to use fish as my login shell but it always
|
# I want to use fish as my login shell but it always
|
||||||
# goes terrible cause it isn't POSIX compliant, so
|
# goes terrible cause it isn't POSIX compliant, so
|
||||||
# instead Bash is my login and it will just exec fish
|
# instead Bash is my login and it will just exec fish
|
||||||
|
|
@ -501,19 +113,6 @@
|
||||||
# '';
|
# '';
|
||||||
#};
|
#};
|
||||||
|
|
||||||
fish = {
|
|
||||||
enable = true;
|
|
||||||
interactiveShellInit = ''
|
|
||||||
set -g fish_greeting "Welcome weary traveler to my shop"
|
|
||||||
'';
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "grc";
|
|
||||||
src = pkgs.fishPlugins.grc.src;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
spicetify =
|
spicetify =
|
||||||
let
|
let
|
||||||
|
|
@ -530,314 +129,9 @@
|
||||||
colorScheme = "mocha";
|
colorScheme = "mocha";
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
|
|
||||||
# The terminal I use
|
|
||||||
# TODO: this is dependent on nvim being installed
|
|
||||||
# TODO: make this into a module with a configurable editor option
|
|
||||||
rio = {
|
|
||||||
enable = true;
|
|
||||||
# Rio Config Docs: https://raphamorim.io/rio/docs/config
|
|
||||||
settings = {
|
|
||||||
theme = "dracula";
|
|
||||||
hide-mouse-cursor-when-typing = true;
|
|
||||||
|
|
||||||
use-fork = true; # fork (dont spawn) Rio
|
|
||||||
|
|
||||||
padding-x = 10;
|
|
||||||
padding-y = [15 10]; # top, left
|
|
||||||
|
|
||||||
# lines = (accumulated scroll * multiplier / divider)
|
|
||||||
scroll = {
|
|
||||||
multiplier = 3.0;
|
|
||||||
divider = 1.0;
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
size = 15;
|
|
||||||
features = [];
|
|
||||||
|
|
||||||
regular = {
|
|
||||||
family = "JetBrainsMono Nerd Font"; # FiraCode
|
|
||||||
style = "Normal";
|
|
||||||
weight = 400;
|
|
||||||
};
|
|
||||||
|
|
||||||
bold = {
|
|
||||||
family = "JetBrainsMono Nerd Font";
|
|
||||||
style = "Normal";
|
|
||||||
weight = 800;
|
|
||||||
};
|
|
||||||
|
|
||||||
italic = {
|
|
||||||
family = "JetBrainsMono Nerd Font";
|
|
||||||
style = "Italic";
|
|
||||||
weight = 400;
|
|
||||||
};
|
|
||||||
|
|
||||||
bold-italic = {
|
|
||||||
family = "JetBrainsMono Nerd Font";
|
|
||||||
style = "Italic";
|
|
||||||
weight = 800;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Run when the `OpenConfigEditor` keybinding is triggered
|
|
||||||
editor = {
|
|
||||||
program = "hx"; # helix
|
|
||||||
args = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
renderer = {
|
|
||||||
performance = "High";
|
|
||||||
backend = "Automatic"; # Vulkan
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wofi = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
location = "center";
|
|
||||||
allow_markup = true;
|
|
||||||
width = 250;
|
|
||||||
};
|
|
||||||
# Force the style to stop Stylix being a bitch and overwriting it
|
|
||||||
style = lib.mkForce ''
|
|
||||||
@define-color rosewater #f2d5cf;
|
|
||||||
@define-color rosewater-rgb rgb(242, 213, 207);
|
|
||||||
@define-color flamingo #eebebe;
|
|
||||||
@define-color flamingo-rgb rgb(238, 190, 190);
|
|
||||||
@define-color pink #f4b8e4;
|
|
||||||
@define-color pink-rgb rgb(244, 184, 228);
|
|
||||||
@define-color mauve #ca9ee6;
|
|
||||||
@define-color mauve-rgb rgb(202, 158, 230);
|
|
||||||
@define-color red #e78284;
|
|
||||||
@define-color red-rgb rgb(231, 130, 132);
|
|
||||||
@define-color maroon #ea999c;
|
|
||||||
@define-color maroon-rgb rgb(234, 153, 156);
|
|
||||||
@define-color peach #ef9f76;
|
|
||||||
@define-color peach-rgb rgb(239, 159, 118);
|
|
||||||
@define-color yellow #e5c890;
|
|
||||||
@define-color yellow-rgb rgb(229, 200, 144);
|
|
||||||
@define-color green #a6d189;
|
|
||||||
@define-color green-rgb rgb(166, 209, 137);
|
|
||||||
@define-color teal #81c8be;
|
|
||||||
@define-color teal-rgb rgb(129, 200, 190);
|
|
||||||
@define-color sky #99d1db;
|
|
||||||
@define-color sky-rgb rgb(153, 209, 219);
|
|
||||||
@define-color sapphire #85c1dc;
|
|
||||||
@define-color sapphire-rgb rgb(133, 193, 220);
|
|
||||||
@define-color blue #8caaee;
|
|
||||||
@define-color blue-rgb rgb(140, 170, 238);
|
|
||||||
@define-color lavender #babbf1;
|
|
||||||
@define-color lavender-rgb rgb(186, 187, 241);
|
|
||||||
@define-color text #c6d0f5;
|
|
||||||
@define-color text-rgb rgb(198, 208, 245);
|
|
||||||
@define-color subtext1 #b5bfe2;
|
|
||||||
@define-color subtext1-rgb rgb(181, 191, 226);
|
|
||||||
@define-color subtext0 #a5adce;
|
|
||||||
@define-color subtext0-rgb rgb(165, 173, 206);
|
|
||||||
@define-color overlay2 #949cbb;
|
|
||||||
@define-color overlay2-rgb rgb(148, 156, 187);
|
|
||||||
@define-color overlay1 #838ba7;
|
|
||||||
@define-color overlay1-rgb rgb(131, 139, 167);
|
|
||||||
@define-color overlay0 #737994;
|
|
||||||
@define-color overlay0-rgb rgb(115, 121, 148);
|
|
||||||
@define-color surface2 #626880;
|
|
||||||
@define-color surface2-rgb rgb(98, 104, 128);
|
|
||||||
@define-color surface1 #51576d;
|
|
||||||
@define-color surface1-rgb rgb(81, 87, 109);
|
|
||||||
@define-color surface0 #414559;
|
|
||||||
@define-color surface0-rgb rgb(65, 69, 89);
|
|
||||||
@define-color base #303446;
|
|
||||||
@define-color base-rgb rgb(48, 52, 70);
|
|
||||||
@define-color mantle #292c3c;
|
|
||||||
@define-color mantle-rgb rgb(41, 44, 60);
|
|
||||||
@define-color crust #232634;
|
|
||||||
@define-color crust-rgb rgb(35, 38, 52);
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-family: 'FiraCode Nerd Font';
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Window */
|
|
||||||
window {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 10px;
|
|
||||||
border: 0.16em solid @teal;
|
|
||||||
border-radius: 0.5em;
|
|
||||||
background-color: @base;
|
|
||||||
animation: slideIn 0.25s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Slide In */
|
|
||||||
@keyframes slideIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Inner Box */
|
|
||||||
#inner-box {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
/*animation: fadeIn 0.5s ease-in-out both;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fade In */
|
|
||||||
@keyframes fadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Outer Box */
|
|
||||||
#outer-box {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scroll */
|
|
||||||
#scroll {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Input */
|
|
||||||
#input {
|
|
||||||
margin: 5px 20px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0.25em;
|
|
||||||
color: @text;
|
|
||||||
background-color: @base;
|
|
||||||
animation: fadeIn 0.25s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input image {
|
|
||||||
border: none;
|
|
||||||
color: @red;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input * {
|
|
||||||
outline: 4px solid @red!important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Text */
|
|
||||||
#text {
|
|
||||||
margin: 5px;
|
|
||||||
border: none;
|
|
||||||
color: @text;
|
|
||||||
animation: fadeIn 0.5s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry arrow {
|
|
||||||
border: none;
|
|
||||||
color: @teal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selected Entry */
|
|
||||||
#entry:selected {
|
|
||||||
border: 0.10em solid @teal;
|
|
||||||
border-radius: 0.25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected #text {
|
|
||||||
color: @teal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:drop(active) {
|
|
||||||
background-color: @lavender!important;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
rofi = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.rofi-wayland;
|
|
||||||
font = "JetBrains Mono Nerd Font 10";
|
|
||||||
location = "center";
|
|
||||||
terminal = "${pkgs.rio}/bin/rio";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# ----- SERVICES -----
|
# ----- SERVICES -----
|
||||||
services = {
|
|
||||||
# Change monitor positions
|
|
||||||
# TODO: find a way to make this modular (ie put something different for my laptop)
|
|
||||||
# my idea is to have a "monitors" module and use kanshi for wayland
|
|
||||||
kanshi = {
|
|
||||||
enable = true;
|
|
||||||
systemdTarget = "hyprland-session.target";
|
|
||||||
# You can find your monitors in hyprland by using `hyprctl monitors all`
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
# 1920x1080@144 gaming monitor
|
|
||||||
output.criteria = "HDMI-A-1";
|
|
||||||
output.mode = "1920x1080@119.98Hz";
|
|
||||||
output.scale = 1.0;
|
|
||||||
output.adaptiveSync = false; # Variable Refresh Rate (this can be changed for gaming)
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# 4k side monitor
|
|
||||||
output.criteria = "DP-2";
|
|
||||||
output.mode = "3840x2160@60.00Hz";
|
|
||||||
output.scale = 2.0;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# laptop builtin screen
|
|
||||||
output.criteria = "eDP-1";
|
|
||||||
output.mode = "1920x1080@60.02Hz";
|
|
||||||
output.scale = 1.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
# This is my dual-monitor desktop setup
|
|
||||||
profile.name = "myputer";
|
|
||||||
profile.outputs = [
|
|
||||||
{
|
|
||||||
criteria = "DP-2";
|
|
||||||
position = "0,0";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
criteria = "HDMI-A-1";
|
|
||||||
position = "3840,0";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# This is my laptop (lolcathost) :)
|
|
||||||
profile.name = "lolcathost";
|
|
||||||
profile.outputs = [
|
|
||||||
{
|
|
||||||
criteria = "eDP-1";
|
|
||||||
position = "0,0";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Nicely reload system units when changing configs
|
# Nicely reload system units when changing configs
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,192 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
#enable = lib.mkEnableOption "Enable wofi and my configuration";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
programs = {
|
|
||||||
wofi = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
location = "center";
|
|
||||||
allow_markup = true;
|
|
||||||
width = 250;
|
|
||||||
};
|
|
||||||
style = ''
|
|
||||||
@define-color rosewater #f2d5cf;
|
|
||||||
@define-color rosewater-rgb rgb(242, 213, 207);
|
|
||||||
@define-color flamingo #eebebe;
|
|
||||||
@define-color flamingo-rgb rgb(238, 190, 190);
|
|
||||||
@define-color pink #f4b8e4;
|
|
||||||
@define-color pink-rgb rgb(244, 184, 228);
|
|
||||||
@define-color mauve #ca9ee6;
|
|
||||||
@define-color mauve-rgb rgb(202, 158, 230);
|
|
||||||
@define-color red #e78284;
|
|
||||||
@define-color red-rgb rgb(231, 130, 132);
|
|
||||||
@define-color maroon #ea999c;
|
|
||||||
@define-color maroon-rgb rgb(234, 153, 156);
|
|
||||||
@define-color peach #ef9f76;
|
|
||||||
@define-color peach-rgb rgb(239, 159, 118);
|
|
||||||
@define-color yellow #e5c890;
|
|
||||||
@define-color yellow-rgb rgb(229, 200, 144);
|
|
||||||
@define-color green #a6d189;
|
|
||||||
@define-color green-rgb rgb(166, 209, 137);
|
|
||||||
@define-color teal #81c8be;
|
|
||||||
@define-color teal-rgb rgb(129, 200, 190);
|
|
||||||
@define-color sky #99d1db;
|
|
||||||
@define-color sky-rgb rgb(153, 209, 219);
|
|
||||||
@define-color sapphire #85c1dc;
|
|
||||||
@define-color sapphire-rgb rgb(133, 193, 220);
|
|
||||||
@define-color blue #8caaee;
|
|
||||||
@define-color blue-rgb rgb(140, 170, 238);
|
|
||||||
@define-color lavender #babbf1;
|
|
||||||
@define-color lavender-rgb rgb(186, 187, 241);
|
|
||||||
@define-color text #c6d0f5;
|
|
||||||
@define-color text-rgb rgb(198, 208, 245);
|
|
||||||
@define-color subtext1 #b5bfe2;
|
|
||||||
@define-color subtext1-rgb rgb(181, 191, 226);
|
|
||||||
@define-color subtext0 #a5adce;
|
|
||||||
@define-color subtext0-rgb rgb(165, 173, 206);
|
|
||||||
@define-color overlay2 #949cbb;
|
|
||||||
@define-color overlay2-rgb rgb(148, 156, 187);
|
|
||||||
@define-color overlay1 #838ba7;
|
|
||||||
@define-color overlay1-rgb rgb(131, 139, 167);
|
|
||||||
@define-color overlay0 #737994;
|
|
||||||
@define-color overlay0-rgb rgb(115, 121, 148);
|
|
||||||
@define-color surface2 #626880;
|
|
||||||
@define-color surface2-rgb rgb(98, 104, 128);
|
|
||||||
@define-color surface1 #51576d;
|
|
||||||
@define-color surface1-rgb rgb(81, 87, 109);
|
|
||||||
@define-color surface0 #414559;
|
|
||||||
@define-color surface0-rgb rgb(65, 69, 89);
|
|
||||||
@define-color base #303446;
|
|
||||||
@define-color base-rgb rgb(48, 52, 70);
|
|
||||||
@define-color mantle #292c3c;
|
|
||||||
@define-color mantle-rgb rgb(41, 44, 60);
|
|
||||||
@define-color crust #232634;
|
|
||||||
@define-color crust-rgb rgb(35, 38, 52);
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-family: 'FiraCode Nerd Font', monospace;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Window */
|
|
||||||
window {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 10px;
|
|
||||||
border: 0.16em solid @teal;
|
|
||||||
border-radius: 0.5em;
|
|
||||||
background-color: @base;
|
|
||||||
animation: slideIn 0.25s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Slide In */
|
|
||||||
@keyframes slideIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Inner Box */
|
|
||||||
#inner-box {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
/*animation: fadeIn 0.5s ease-in-out both;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fade In */
|
|
||||||
@keyframes fadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Outer Box */
|
|
||||||
#outer-box {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scroll */
|
|
||||||
#scroll {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Input */
|
|
||||||
#input {
|
|
||||||
margin: 5px 20px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0.25em;
|
|
||||||
color: @text;
|
|
||||||
background-color: @base;
|
|
||||||
animation: fadeIn 0.25s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input image {
|
|
||||||
border: none;
|
|
||||||
color: @red;
|
|
||||||
}
|
|
||||||
|
|
||||||
#input * {
|
|
||||||
outline: 4px solid @red!important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Text */
|
|
||||||
#text {
|
|
||||||
margin: 5px;
|
|
||||||
border: none;
|
|
||||||
color: @text;
|
|
||||||
animation: fadeIn 0.5s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry {
|
|
||||||
background-color: @base;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry arrow {
|
|
||||||
border: none;
|
|
||||||
color: @teal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selected Entry */
|
|
||||||
#entry:selected {
|
|
||||||
border: 0.10em solid @teal;
|
|
||||||
border-radius: 0.25em;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected #text {
|
|
||||||
color: @teal;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:drop(active) {
|
|
||||||
background-color: @lavender!important;
|
|
||||||
}
|
|
||||||
''
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
15
homes/modules/bat.nix
Normal file
15
homes/modules/bat.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# like `/bin/cat` but with syntax highlighting
|
||||||
|
# TODO: change the pager (maybe use Github:sachaos/viddy instead)
|
||||||
|
programs.bat = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
pager = "less -FR";
|
||||||
|
theme = "Dracula";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
135
homes/modules/editor/helix.nix
Normal file
135
homes/modules/editor/helix.nix
Normal file
|
|
@ -0,0 +1,135 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# read https://docs.helix-editor.com/editor.html
|
||||||
|
programs.helix = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
theme = "dracula";
|
||||||
|
editor = {
|
||||||
|
line-number = "absolute";
|
||||||
|
popup-border = "all";
|
||||||
|
scroll-lines = 3;
|
||||||
|
color-modes = true; # colour the mode indicator depending on mode
|
||||||
|
shell = ["zsh" "-c"];
|
||||||
|
|
||||||
|
auto-format = true;
|
||||||
|
auto-completion = true; # enable popup for autocomplete
|
||||||
|
completion-timeout = 250; # time before completions display
|
||||||
|
preview-completion-insert = true;
|
||||||
|
completion-trigger-len = 2; # min word length to trigger completions
|
||||||
|
completion-replace = true; # completions replace entire word
|
||||||
|
|
||||||
|
indent-heuristic = "tree-sitter"; # how indentation is computed
|
||||||
|
# TODO: make this configurable (enabled on myputer, disabled on lolcathost)
|
||||||
|
middle-click-paste = true;
|
||||||
|
insert-final-newline = true; # append newline to file on write
|
||||||
|
|
||||||
|
gutters = [
|
||||||
|
"diagnostics"
|
||||||
|
"spacer"
|
||||||
|
"line-numbers"
|
||||||
|
"spacer"
|
||||||
|
"diff"
|
||||||
|
];
|
||||||
|
|
||||||
|
whitespace = {
|
||||||
|
render = {
|
||||||
|
space = "none"; # "all"
|
||||||
|
tab = "none"; #"all"
|
||||||
|
nbsp = "none";
|
||||||
|
nnbsp = "none";
|
||||||
|
newline = "none";
|
||||||
|
};
|
||||||
|
characters = {
|
||||||
|
space = "·";
|
||||||
|
nbsp = "⍽";
|
||||||
|
nnbsp = "␣";
|
||||||
|
tab = "→";
|
||||||
|
newline = "⤶";
|
||||||
|
tabpad = "·"; # Tabs will look like "→···" (depending on tab width)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
indent-guides = {
|
||||||
|
render = true;
|
||||||
|
character = "▏"; # "|"
|
||||||
|
skip-levels = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
auto-signature-help = true; # hints for function parameters
|
||||||
|
display-inlay-hints = true; # inline hints
|
||||||
|
snippets = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
cursor-shape = {
|
||||||
|
normal = "block";
|
||||||
|
insert = "bar";
|
||||||
|
select = "block";
|
||||||
|
};
|
||||||
|
|
||||||
|
file-picker = {
|
||||||
|
hidden = true; # show hidden files
|
||||||
|
follow-symlinks = true;
|
||||||
|
deduplicate-links = true;
|
||||||
|
git-ignore = false; # dont read .gitignore files
|
||||||
|
ignore = true; # use .ignore for helix instead of .gitignore
|
||||||
|
};
|
||||||
|
|
||||||
|
statusline = {
|
||||||
|
left = [
|
||||||
|
"mode"
|
||||||
|
"spacer"
|
||||||
|
"version-control"
|
||||||
|
"spinner"
|
||||||
|
];
|
||||||
|
center = [
|
||||||
|
"file-name"
|
||||||
|
"read-only-indicator"
|
||||||
|
"file-modification-indicator"
|
||||||
|
];
|
||||||
|
right = [
|
||||||
|
"position"
|
||||||
|
"total-line-numbers"
|
||||||
|
"file-encoding"
|
||||||
|
"file-line-ending"
|
||||||
|
"file-type"
|
||||||
|
];
|
||||||
|
separator = "|";
|
||||||
|
mode.normal = "NORMAL";
|
||||||
|
mode.insert = "INSERT";
|
||||||
|
mode.select = "SELECT";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
languages.language = [
|
||||||
|
{
|
||||||
|
name = "nix";
|
||||||
|
indent = {
|
||||||
|
tab-width = 2;
|
||||||
|
unit = " ";
|
||||||
|
};
|
||||||
|
block-comment-tokens = {
|
||||||
|
start = "/*";
|
||||||
|
end = "*/";
|
||||||
|
};
|
||||||
|
auto-format = true;
|
||||||
|
formatter.command = "${pkgs.alejandra}/bin/alejandra";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "python";
|
||||||
|
indent = {
|
||||||
|
tab-width = 4;
|
||||||
|
unit = " ";
|
||||||
|
};
|
||||||
|
auto-format = false; # my python is beautiful ^_^
|
||||||
|
rulers = [80];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
24
homes/modules/editor/nixvim.nix
Normal file
24
homes/modules/editor/nixvim.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.nixvim = {
|
||||||
|
enable = true;
|
||||||
|
# TODO: allow clipboard to be configurable based on system clipboard
|
||||||
|
colorschemes.dracula.enable = true;
|
||||||
|
plugins = {
|
||||||
|
lualine.enable = true;
|
||||||
|
treesitter.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
opts = {
|
||||||
|
number = true;
|
||||||
|
tabstop = 4;
|
||||||
|
softtabstop = 4;
|
||||||
|
shiftwidth = 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
clipboard.providers.wl-copy.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
13
homes/modules/firefox.nix
Normal file
13
homes/modules/firefox.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
policies = {
|
||||||
|
#BlockAboutConfig = true;
|
||||||
|
DefaultDownloadDirectory = "\${home}/downloads";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
18
homes/modules/fish.nix
Normal file
18
homes/modules/fish.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
interactiveShellInit = ''
|
||||||
|
set -g fish_greeting "Welcome weary traveler to my shop"
|
||||||
|
'';
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "grc";
|
||||||
|
src = pkgs.fishPlugins.grc.src;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
11
homes/modules/git.nix
Normal file
11
homes/modules/git.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Emile Clark-Boman";
|
||||||
|
userEmail = "eclarkboman@gmail.com";
|
||||||
|
};
|
||||||
|
}
|
||||||
29
homes/modules/hypr/hypridle.nix
Normal file
29
homes/modules/hypr/hypridle.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.hypridle = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
ignore_dbus_inhibit = false;
|
||||||
|
lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
||||||
|
before_sleep_cmd = "loginctl lock-session";
|
||||||
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
|
};
|
||||||
|
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = 600;
|
||||||
|
on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
timeout = 660;
|
||||||
|
on-timeout = "systemctl suspend";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
0
homes/modules/hypr/hyprland.nix
Normal file
0
homes/modules/hypr/hyprland.nix
Normal file
118
homes/modules/hypr/hyprlock.nix
Normal file
118
homes/modules/hypr/hyprlock.nix
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.hyprlock = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
background = {
|
||||||
|
monitor = "";
|
||||||
|
path = "$HOME/downloads/wallpaper/1380597.png"; # only png supported for now
|
||||||
|
# color = $color1
|
||||||
|
|
||||||
|
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||||
|
blur_size = 4;
|
||||||
|
blur_passes = 3; # 0 disables blurring
|
||||||
|
noise = 0.0117;
|
||||||
|
contrast = 1.3000; # Vibrant!!!
|
||||||
|
brightness = 0.8000;
|
||||||
|
vibrancy = 0.2100;
|
||||||
|
vibrancy_darkness = 0.0;
|
||||||
|
};
|
||||||
|
label = [
|
||||||
|
{
|
||||||
|
# Hours
|
||||||
|
monitor = "";
|
||||||
|
text = ''cmd[update:1000] echo "<b><big> $(date +"%H") </big></b>"'';
|
||||||
|
color = "rgb(255, 255, 255, 1)";
|
||||||
|
font_size = 112;
|
||||||
|
font_family = "Geist Mono 10";
|
||||||
|
shadow_passes = 3;
|
||||||
|
shadow_size = 4;
|
||||||
|
|
||||||
|
position = "0, 240";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# Minutes
|
||||||
|
monitor = "";
|
||||||
|
text = ''cmd[update:1000] echo "<b><big> $(date +"%M") </big></b>"'';
|
||||||
|
color = "rgb(255, 255, 255, 1)";
|
||||||
|
font_size = 112;
|
||||||
|
font_family = "Geist Mono 10";
|
||||||
|
shadow_passes = 3;
|
||||||
|
shadow_size = 4;
|
||||||
|
|
||||||
|
position = "0, 120";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Today
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = ''cmd[update:18000000] echo "<b><big> "$(date +'%A')" </big></b>"'';
|
||||||
|
color = "rgb(255, 255, 255, 1)";
|
||||||
|
font_size = 22;
|
||||||
|
font_family = "JetBrainsMono Nerd Font 10";
|
||||||
|
|
||||||
|
position = "0, 30";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Week
|
||||||
|
{
|
||||||
|
monitor = "";
|
||||||
|
text = ''cmd[update:18000000] echo "<b> "$(date +'%d %b')" </b>"'';
|
||||||
|
color = "rgb(255, 255, 255, 1)";
|
||||||
|
font_size = 18;
|
||||||
|
font_family = "JetBrainsMono Nerd Font 10";
|
||||||
|
|
||||||
|
position = "0, 6";
|
||||||
|
halign = "center";
|
||||||
|
valign = "center";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# Degrees
|
||||||
|
monitor = "";
|
||||||
|
# get temperature in Brisbane
|
||||||
|
text = ''cmd[update:18000000] echo "<b>Feels like<big> $(curl -s 'wttr.in/bne?format=%t' | tr -d '+') </big></b>"'';
|
||||||
|
color = "rgb(255, 255, 255, 1)";
|
||||||
|
font_size = 18;
|
||||||
|
font_family = "Geist Mono 10";
|
||||||
|
|
||||||
|
position = "0, 40";
|
||||||
|
halign = "center";
|
||||||
|
valign = "bottom";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
input-field = {
|
||||||
|
monitor = "";
|
||||||
|
size = "300, 50";
|
||||||
|
outline_thickness = 3;
|
||||||
|
|
||||||
|
dots_size = 0.26; # Scale of input-field height, 0.2 - 0.8
|
||||||
|
dots_spacing = 0.64; # Scale of dots' absolute size, 0.0 - 1.0
|
||||||
|
dots_center = true;
|
||||||
|
dots_rouding = -1;
|
||||||
|
|
||||||
|
rounding = 22;
|
||||||
|
outer_color = "rgb(255, 0, 0, 1)";
|
||||||
|
inner_color = "rgb(0, 255, 0, 1)";
|
||||||
|
font_color = "rgb(0, 0, 255, 1)";
|
||||||
|
fade_on_empty = true;
|
||||||
|
placeholder_text = "!!Super Secret!!"; # Text rendered in the input box when it's empty.
|
||||||
|
|
||||||
|
position = "0, 120";
|
||||||
|
halign = "center";
|
||||||
|
valign = "bottom";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
60
homes/modules/kanshi.nix
Normal file
60
homes/modules/kanshi.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# Change monitor positions
|
||||||
|
# TODO: find a way to make this modular (ie put something different for my laptop)
|
||||||
|
# my idea is to have a "monitors" module and use kanshi for wayland
|
||||||
|
services.kanshi = {
|
||||||
|
enable = true;
|
||||||
|
systemdTarget = "hyprland-session.target";
|
||||||
|
# You can find your monitors in hyprland by using `hyprctl monitors all`
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
# 1920x1080@144 gaming monitor
|
||||||
|
output.criteria = "HDMI-A-1";
|
||||||
|
output.mode = "1920x1080@119.98Hz";
|
||||||
|
output.scale = 1.0;
|
||||||
|
output.adaptiveSync = false; # Variable Refresh Rate (this can be changed for gaming)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# 4k side monitor
|
||||||
|
output.criteria = "DP-2";
|
||||||
|
output.mode = "3840x2160@60.00Hz";
|
||||||
|
output.scale = 2.0;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# laptop builtin screen
|
||||||
|
output.criteria = "eDP-1";
|
||||||
|
output.mode = "1920x1080@60.02Hz";
|
||||||
|
output.scale = 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
# This is my dual-monitor desktop setup
|
||||||
|
profile.name = "myputer";
|
||||||
|
profile.outputs = [
|
||||||
|
{
|
||||||
|
criteria = "DP-2";
|
||||||
|
position = "0,0";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "HDMI-A-1";
|
||||||
|
position = "3840,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# This is my laptop (lolcathost) :)
|
||||||
|
profile.name = "lolcathost";
|
||||||
|
profile.outputs = [
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
position = "0,0";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
16
homes/modules/nixcord.nix
Normal file
16
homes/modules/nixcord.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.nixcord = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
frameless = true;
|
||||||
|
plugins = {
|
||||||
|
# TODO: remove this plugin
|
||||||
|
hideAttachments.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
68
homes/modules/rio.nix
Normal file
68
homes/modules/rio.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
# The terminal I use
|
||||||
|
# TODO: this is dependent on nvim being installed
|
||||||
|
# TODO: make this into a module with a configurable editor option
|
||||||
|
programs.rio = {
|
||||||
|
enable = true;
|
||||||
|
# Rio Config Docs: https://raphamorim.io/rio/docs/config
|
||||||
|
settings = {
|
||||||
|
theme = "dracula";
|
||||||
|
hide-mouse-cursor-when-typing = true;
|
||||||
|
|
||||||
|
use-fork = true; # fork (dont spawn) Rio
|
||||||
|
|
||||||
|
padding-x = 10;
|
||||||
|
padding-y = [15 10]; # top, left
|
||||||
|
|
||||||
|
# lines = (accumulated scroll * multiplier / divider)
|
||||||
|
scroll = {
|
||||||
|
multiplier = 3.0;
|
||||||
|
divider = 1.0;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
size = 15;
|
||||||
|
features = [];
|
||||||
|
|
||||||
|
regular = {
|
||||||
|
family = "JetBrainsMono Nerd Font"; # FiraCode
|
||||||
|
style = "Normal";
|
||||||
|
weight = 400;
|
||||||
|
};
|
||||||
|
|
||||||
|
bold = {
|
||||||
|
family = "JetBrainsMono Nerd Font";
|
||||||
|
style = "Normal";
|
||||||
|
weight = 800;
|
||||||
|
};
|
||||||
|
|
||||||
|
italic = {
|
||||||
|
family = "JetBrainsMono Nerd Font";
|
||||||
|
style = "Italic";
|
||||||
|
weight = 400;
|
||||||
|
};
|
||||||
|
|
||||||
|
bold-italic = {
|
||||||
|
family = "JetBrainsMono Nerd Font";
|
||||||
|
style = "Italic";
|
||||||
|
weight = 800;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Run when the `OpenConfigEditor` keybinding is triggered
|
||||||
|
editor = {
|
||||||
|
program = "hx"; # helix
|
||||||
|
args = [];
|
||||||
|
};
|
||||||
|
|
||||||
|
renderer = {
|
||||||
|
performance = "High";
|
||||||
|
backend = "Automatic"; # Vulkan
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
13
homes/modules/rofi.nix
Normal file
13
homes/modules/rofi.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.rofi-wayland;
|
||||||
|
font = "JetBrains Mono Nerd Font 10";
|
||||||
|
location = "center";
|
||||||
|
terminal = "${pkgs.rio}/bin/rio";
|
||||||
|
};
|
||||||
|
}
|
||||||
183
homes/modules/wofi.nix
Executable file
183
homes/modules/wofi.nix
Executable file
|
|
@ -0,0 +1,183 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.wofi = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
location = "center";
|
||||||
|
allow_markup = true;
|
||||||
|
width = 250;
|
||||||
|
};
|
||||||
|
# Force the style to stop Stylix being a bitch and overwriting it
|
||||||
|
style = lib.mkForce ''
|
||||||
|
@define-color rosewater #f2d5cf;
|
||||||
|
@define-color rosewater-rgb rgb(242, 213, 207);
|
||||||
|
@define-color flamingo #eebebe;
|
||||||
|
@define-color flamingo-rgb rgb(238, 190, 190);
|
||||||
|
@define-color pink #f4b8e4;
|
||||||
|
@define-color pink-rgb rgb(244, 184, 228);
|
||||||
|
@define-color mauve #ca9ee6;
|
||||||
|
@define-color mauve-rgb rgb(202, 158, 230);
|
||||||
|
@define-color red #e78284;
|
||||||
|
@define-color red-rgb rgb(231, 130, 132);
|
||||||
|
@define-color maroon #ea999c;
|
||||||
|
@define-color maroon-rgb rgb(234, 153, 156);
|
||||||
|
@define-color peach #ef9f76;
|
||||||
|
@define-color peach-rgb rgb(239, 159, 118);
|
||||||
|
@define-color yellow #e5c890;
|
||||||
|
@define-color yellow-rgb rgb(229, 200, 144);
|
||||||
|
@define-color green #a6d189;
|
||||||
|
@define-color green-rgb rgb(166, 209, 137);
|
||||||
|
@define-color teal #81c8be;
|
||||||
|
@define-color teal-rgb rgb(129, 200, 190);
|
||||||
|
@define-color sky #99d1db;
|
||||||
|
@define-color sky-rgb rgb(153, 209, 219);
|
||||||
|
@define-color sapphire #85c1dc;
|
||||||
|
@define-color sapphire-rgb rgb(133, 193, 220);
|
||||||
|
@define-color blue #8caaee;
|
||||||
|
@define-color blue-rgb rgb(140, 170, 238);
|
||||||
|
@define-color lavender #babbf1;
|
||||||
|
@define-color lavender-rgb rgb(186, 187, 241);
|
||||||
|
@define-color text #c6d0f5;
|
||||||
|
@define-color text-rgb rgb(198, 208, 245);
|
||||||
|
@define-color subtext1 #b5bfe2;
|
||||||
|
@define-color subtext1-rgb rgb(181, 191, 226);
|
||||||
|
@define-color subtext0 #a5adce;
|
||||||
|
@define-color subtext0-rgb rgb(165, 173, 206);
|
||||||
|
@define-color overlay2 #949cbb;
|
||||||
|
@define-color overlay2-rgb rgb(148, 156, 187);
|
||||||
|
@define-color overlay1 #838ba7;
|
||||||
|
@define-color overlay1-rgb rgb(131, 139, 167);
|
||||||
|
@define-color overlay0 #737994;
|
||||||
|
@define-color overlay0-rgb rgb(115, 121, 148);
|
||||||
|
@define-color surface2 #626880;
|
||||||
|
@define-color surface2-rgb rgb(98, 104, 128);
|
||||||
|
@define-color surface1 #51576d;
|
||||||
|
@define-color surface1-rgb rgb(81, 87, 109);
|
||||||
|
@define-color surface0 #414559;
|
||||||
|
@define-color surface0-rgb rgb(65, 69, 89);
|
||||||
|
@define-color base #303446;
|
||||||
|
@define-color base-rgb rgb(48, 52, 70);
|
||||||
|
@define-color mantle #292c3c;
|
||||||
|
@define-color mantle-rgb rgb(41, 44, 60);
|
||||||
|
@define-color crust #232634;
|
||||||
|
@define-color crust-rgb rgb(35, 38, 52);
|
||||||
|
|
||||||
|
* {
|
||||||
|
font-family: 'FiraCode Nerd Font';
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Window */
|
||||||
|
window {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 10px;
|
||||||
|
border: 0.16em solid @teal;
|
||||||
|
border-radius: 0.5em;
|
||||||
|
background-color: @base;
|
||||||
|
animation: slideIn 0.25s ease-in-out both;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Slide In */
|
||||||
|
@keyframes slideIn {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Inner Box */
|
||||||
|
#inner-box {
|
||||||
|
margin: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
background-color: @base;
|
||||||
|
/*animation: fadeIn 0.5s ease-in-out both;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Fade In */
|
||||||
|
@keyframes fadeIn {
|
||||||
|
0% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Outer Box */
|
||||||
|
#outer-box {
|
||||||
|
margin: 5px;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scroll */
|
||||||
|
#scroll {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Input */
|
||||||
|
#input {
|
||||||
|
margin: 5px 20px;
|
||||||
|
padding: 10px;
|
||||||
|
border: none;
|
||||||
|
border-radius: 0.25em;
|
||||||
|
color: @text;
|
||||||
|
background-color: @base;
|
||||||
|
animation: fadeIn 0.25s ease-in-out both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input image {
|
||||||
|
border: none;
|
||||||
|
color: @red;
|
||||||
|
}
|
||||||
|
|
||||||
|
#input * {
|
||||||
|
outline: 4px solid @red!important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Text */
|
||||||
|
#text {
|
||||||
|
margin: 5px;
|
||||||
|
border: none;
|
||||||
|
color: @text;
|
||||||
|
animation: fadeIn 0.5s ease-in-out both;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry {
|
||||||
|
background-color: @base;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry arrow {
|
||||||
|
border: none;
|
||||||
|
color: @teal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Selected Entry */
|
||||||
|
#entry:selected {
|
||||||
|
border: 0.10em solid @teal;
|
||||||
|
border-radius: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:selected #text {
|
||||||
|
color: @teal;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry:drop(active) {
|
||||||
|
background-color: @lavender!important;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
#home-manager = builtins.fetchTarball {
|
||||||
|
# url = "https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz";
|
||||||
|
# sha256 = "00wp0s9b5nm5rsbwpc1wzfrkyxxmqjwsc1kcibjdbfkh69arcpsn";
|
||||||
|
#};
|
||||||
home-manager = builtins.fetchTarball {
|
home-manager = builtins.fetchTarball {
|
||||||
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
||||||
sha256 = "19w63qccz78v0spx03911z98w1bvlxvd07hb0ma14a4vdzi4ninj";
|
sha256 = "19w63qccz78v0spx03911z98w1bvlxvd07hb0ma14a4vdzi4ninj";
|
||||||
|
|
@ -38,6 +43,13 @@ in {
|
||||||
#efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work on this system
|
#efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work on this system
|
||||||
device = "nodev";
|
device = "nodev";
|
||||||
};
|
};
|
||||||
|
# GitHub: vinceliuice/grub2-themes
|
||||||
|
grub2-theme = {
|
||||||
|
enable = true;
|
||||||
|
theme = "whitesur"; # sylish, vimix, or whitesur
|
||||||
|
footer = true;
|
||||||
|
customResolution = "1920x1080"; # Optional: Set a custom resolution
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
|
|
@ -67,10 +79,11 @@ in {
|
||||||
services = {
|
services = {
|
||||||
# Set display manager (login screen)
|
# Set display manager (login screen)
|
||||||
displayManager = {
|
displayManager = {
|
||||||
|
# sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||||
sddm = {
|
sddm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wayland.enable = true; # enable experimental sddm support for wayland
|
wayland.enable = true; # enable experimental sddm support for wayland
|
||||||
theme = "${import ./sddm-theme-corners.nix {inherit pkgs;}}";
|
theme = "corners";
|
||||||
};
|
};
|
||||||
defaultSession = "hyprland";
|
defaultSession = "hyprland";
|
||||||
};
|
};
|
||||||
|
|
@ -114,6 +127,11 @@ in {
|
||||||
firefox
|
firefox
|
||||||
nitch
|
nitch
|
||||||
starfetch
|
starfetch
|
||||||
|
|
||||||
|
# flatpak requires gnome-software
|
||||||
|
# for graphical applications
|
||||||
|
flatpak
|
||||||
|
gnome.gnome-software
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -126,7 +144,7 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# # programming/development account
|
# # This is the user account for servers
|
||||||
# dev = {
|
# dev = {
|
||||||
# isNormalUser = true;
|
# isNormalUser = true;
|
||||||
# extraGroups = ["wheel"];
|
# extraGroups = ["wheel"];
|
||||||
|
|
@ -149,6 +167,7 @@ in {
|
||||||
users.me = import ../../homes/me;
|
users.me = import ../../homes/me;
|
||||||
sharedModules = [
|
sharedModules = [
|
||||||
inputs.nixcord.homeManagerModules.nixcord
|
inputs.nixcord.homeManagerModules.nixcord
|
||||||
|
inputs.ags.homeManagerModules.default
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -163,6 +182,10 @@ in {
|
||||||
wl-clipboard # clipboard for wayland
|
wl-clipboard # clipboard for wayland
|
||||||
kcalc # TEMP: (FOR TESTING)
|
kcalc # TEMP: (FOR TESTING)
|
||||||
|
|
||||||
|
(callPackage ./sddm-theme-corners.nix {}).sddm-theme-corners
|
||||||
|
# dependencies for my sddm theme:
|
||||||
|
pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||||
|
|
||||||
python311 # I use 3.11 since it's in a pretty stable state now
|
python311 # I use 3.11 since it's in a pretty stable state now
|
||||||
poetry # python dependency management and packaging
|
poetry # python dependency management and packaging
|
||||||
|
|
||||||
|
|
@ -180,6 +203,7 @@ in {
|
||||||
git
|
git
|
||||||
brightnessctl
|
brightnessctl
|
||||||
acpi
|
acpi
|
||||||
|
vim
|
||||||
|
|
||||||
# Unix Commands
|
# Unix Commands
|
||||||
wget
|
wget
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{pkgs}: {
|
{pkgs}: {
|
||||||
sddm-theme-corners = pkgs.stdenv.mkDerivation rec {
|
sddm-theme-corners = pkgs.stdenv.mkDerivation rec {
|
||||||
pname = "sddm-theme-corners";
|
name = "sddm-theme-corners";
|
||||||
#version = "1.0";
|
#version = "1.0";
|
||||||
#dontBuild = true;
|
#dontBuild = true;
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
||||||
724
out.data
Normal file
724
out.data
Normal file
|
|
@ -0,0 +1,724 @@
|
||||||
|
warning: Git tree '/home/me/nixdots' is dirty
|
||||||
|
building the system configuration...
|
||||||
|
warning: Git tree '/home/me/nixdots' is dirty
|
||||||
|
error:
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1570:24:
|
||||||
|
1569| let f = attrPath:
|
||||||
|
1570| zipAttrsWith (n: values:
|
||||||
|
| ^
|
||||||
|
1571| let here = attrPath ++ [n]; in
|
||||||
|
|
||||||
|
… while calling the 'head' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1574:11:
|
||||||
|
1573| || pred here (elemAt values 1) (head values) then
|
||||||
|
1574| head values
|
||||||
|
| ^
|
||||||
|
1575| else
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1204:18:
|
||||||
|
1203| mapAttrs
|
||||||
|
1204| (name: value:
|
||||||
|
| ^
|
||||||
|
1205| if isAttrs value && cond value
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1207:18:
|
||||||
|
1206| then recurse (path ++ [ name ]) value
|
||||||
|
1207| else f (path ++ [ name ]) value);
|
||||||
|
| ^
|
||||||
|
1208| in
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:254:72:
|
||||||
|
253| # For definitions that have an associated option
|
||||||
|
254| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
|
||||||
|
| ^
|
||||||
|
255|
|
||||||
|
|
||||||
|
… while evaluating the attribute 'value'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:816:9:
|
||||||
|
815| in warnDeprecation opt //
|
||||||
|
816| { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
|
||||||
|
| ^
|
||||||
|
817| inherit (res.defsFinal') highestPrio;
|
||||||
|
|
||||||
|
… while evaluating the option `system.build.toplevel':
|
||||||
|
|
||||||
|
… while evaluating the attribute 'mergedValue'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:851:5:
|
||||||
|
850| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
|
||||||
|
851| mergedValue =
|
||||||
|
| ^
|
||||||
|
852| if isDefined then
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:852:7:
|
||||||
|
851| mergedValue =
|
||||||
|
852| if isDefined then
|
||||||
|
| ^
|
||||||
|
853| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
|
||||||
|
|
||||||
|
… while evaluating the attribute 'values'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:845:9:
|
||||||
|
844| in {
|
||||||
|
845| values = defs''';
|
||||||
|
| ^
|
||||||
|
846| inherit (defs'') highestPrio;
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:841:11:
|
||||||
|
840| # Avoid sorting if we don't have to.
|
||||||
|
841| if any (def: def.value._type or "" == "order") defs''.values
|
||||||
|
| ^
|
||||||
|
842| then sortProperties defs''.values
|
||||||
|
|
||||||
|
… while calling the 'any' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:841:14:
|
||||||
|
840| # Avoid sorting if we don't have to.
|
||||||
|
841| if any (def: def.value._type or "" == "order") defs''.values
|
||||||
|
| ^
|
||||||
|
842| then sortProperties defs''.values
|
||||||
|
|
||||||
|
… while evaluating the attribute 'values'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:944:7:
|
||||||
|
943| in {
|
||||||
|
944| values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
|
||||||
|
| ^
|
||||||
|
945| inherit highestPrio;
|
||||||
|
|
||||||
|
… while calling the 'concatMap' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:944:16:
|
||||||
|
943| in {
|
||||||
|
944| values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
|
||||||
|
| ^
|
||||||
|
945| inherit highestPrio;
|
||||||
|
|
||||||
|
… while calling the 'concatMap' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:831:17:
|
||||||
|
830| # Process mkMerge and mkIf properties.
|
||||||
|
831| defs' = concatMap (m:
|
||||||
|
| ^
|
||||||
|
832| map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:831:28:
|
||||||
|
830| # Process mkMerge and mkIf properties.
|
||||||
|
831| defs' = concatMap (m:
|
||||||
|
| ^
|
||||||
|
832| map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
||||||
|
|
||||||
|
… while calling the 'map' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:832:11:
|
||||||
|
831| defs' = concatMap (m:
|
||||||
|
832| map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
||||||
|
| ^
|
||||||
|
833| ) defs;
|
||||||
|
|
||||||
|
… while evaluating definitions from `/nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/nixos/modules/system/activation/top-level.nix':
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:832:128:
|
||||||
|
831| defs' = concatMap (m:
|
||||||
|
832| map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
||||||
|
| ^
|
||||||
|
833| ) defs;
|
||||||
|
|
||||||
|
… while calling 'dischargeProperties'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:903:25:
|
||||||
|
902| */
|
||||||
|
903| dischargeProperties = def:
|
||||||
|
| ^
|
||||||
|
904| if def._type or "" == "merge" then
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:904:5:
|
||||||
|
903| dischargeProperties = def:
|
||||||
|
904| if def._type or "" == "merge" then
|
||||||
|
| ^
|
||||||
|
905| concatMap dischargeProperties def.contents
|
||||||
|
|
||||||
|
… while evaluating the attribute 'value'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:614:53:
|
||||||
|
613| (n: value:
|
||||||
|
614| [{ inherit (module) file; inherit value; }]
|
||||||
|
| ^
|
||||||
|
615| )
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/nixos/modules/system/activation/top-level.nix:72:26:
|
||||||
|
71|
|
||||||
|
72| baseSystemAssertWarn = if failedAssertions != []
|
||||||
|
| ^
|
||||||
|
73| then throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"
|
||||||
|
|
||||||
|
… while calling the 'map' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/nixos/modules/system/activation/top-level.nix:70:22:
|
||||||
|
69|
|
||||||
|
70| failedAssertions = map (x: x.message) (filter (x: !x.assertion) config.assertions);
|
||||||
|
| ^
|
||||||
|
71|
|
||||||
|
|
||||||
|
… while calling the 'filter' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/nixos/modules/system/activation/top-level.nix:70:42:
|
||||||
|
69|
|
||||||
|
70| failedAssertions = map (x: x.message) (filter (x: !x.assertion) config.assertions);
|
||||||
|
| ^
|
||||||
|
71|
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/nixos/modules/system/activation/top-level.nix:70:67:
|
||||||
|
69|
|
||||||
|
70| failedAssertions = map (x: x.message) (filter (x: !x.assertion) config.assertions);
|
||||||
|
| ^
|
||||||
|
71|
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1204:18:
|
||||||
|
1203| mapAttrs
|
||||||
|
1204| (name: value:
|
||||||
|
| ^
|
||||||
|
1205| if isAttrs value && cond value
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1207:18:
|
||||||
|
1206| then recurse (path ++ [ name ]) value
|
||||||
|
1207| else f (path ++ [ name ]) value);
|
||||||
|
| ^
|
||||||
|
1208| in
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:254:72:
|
||||||
|
253| # For definitions that have an associated option
|
||||||
|
254| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
|
||||||
|
| ^
|
||||||
|
255|
|
||||||
|
|
||||||
|
… while evaluating the attribute 'value'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:816:9:
|
||||||
|
815| in warnDeprecation opt //
|
||||||
|
816| { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
|
||||||
|
| ^
|
||||||
|
817| inherit (res.defsFinal') highestPrio;
|
||||||
|
|
||||||
|
… while evaluating the option `assertions':
|
||||||
|
|
||||||
|
(10 duplicate frames omitted)
|
||||||
|
|
||||||
|
… while evaluating definitions from `/nix/store/78sgjxjd6p9wns5mriffngcrvxp9sfaa-source/nixos/common.nix':
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:832:128:
|
||||||
|
831| defs' = concatMap (m:
|
||||||
|
832| map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
||||||
|
| ^
|
||||||
|
833| ) defs;
|
||||||
|
|
||||||
|
… while calling 'dischargeProperties'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:903:25:
|
||||||
|
902| */
|
||||||
|
903| dischargeProperties = def:
|
||||||
|
| ^
|
||||||
|
904| if def._type or "" == "merge" then
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:909:11:
|
||||||
|
908| if def.condition then
|
||||||
|
909| dischargeProperties def.content
|
||||||
|
| ^
|
||||||
|
910| else
|
||||||
|
|
||||||
|
… while calling 'dischargeProperties'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:903:25:
|
||||||
|
902| */
|
||||||
|
903| dischargeProperties = def:
|
||||||
|
| ^
|
||||||
|
904| if def._type or "" == "merge" then
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:904:5:
|
||||||
|
903| dischargeProperties = def:
|
||||||
|
904| if def._type or "" == "merge" then
|
||||||
|
| ^
|
||||||
|
905| concatMap dischargeProperties def.contents
|
||||||
|
|
||||||
|
… while evaluating the attribute 'content'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:1008:25:
|
||||||
|
1007| { _type = "if";
|
||||||
|
1008| inherit condition content;
|
||||||
|
| ^
|
||||||
|
1009| };
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/78sgjxjd6p9wns5mriffngcrvxp9sfaa-source/nixos/common.nix:110:20:
|
||||||
|
109|
|
||||||
|
110| assertions = flatten (flip mapAttrsToList cfg.users (user: config:
|
||||||
|
| ^
|
||||||
|
111| flip map config.assertions (assertion: {
|
||||||
|
|
||||||
|
… while calling 'flatten'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:431:13:
|
||||||
|
430| */
|
||||||
|
431| flatten = x:
|
||||||
|
| ^
|
||||||
|
432| if isList x
|
||||||
|
|
||||||
|
… while calling the 'concatMap' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:433:10:
|
||||||
|
432| if isList x
|
||||||
|
433| then concatMap (y: flatten y) x
|
||||||
|
| ^
|
||||||
|
434| else [x];
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:433:21:
|
||||||
|
432| if isList x
|
||||||
|
433| then concatMap (y: flatten y) x
|
||||||
|
| ^
|
||||||
|
434| else [x];
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:433:24:
|
||||||
|
432| if isList x
|
||||||
|
433| then concatMap (y: flatten y) x
|
||||||
|
| ^
|
||||||
|
434| else [x];
|
||||||
|
|
||||||
|
… while calling 'flatten'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:431:13:
|
||||||
|
430| */
|
||||||
|
431| flatten = x:
|
||||||
|
| ^
|
||||||
|
432| if isList x
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:432:5:
|
||||||
|
431| flatten = x:
|
||||||
|
432| if isList x
|
||||||
|
| ^
|
||||||
|
433| then concatMap (y: flatten y) x
|
||||||
|
|
||||||
|
… while calling the 'isList' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:432:8:
|
||||||
|
431| flatten = x:
|
||||||
|
432| if isList x
|
||||||
|
| ^
|
||||||
|
433| then concatMap (y: flatten y) x
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1095:10:
|
||||||
|
1094| attrs:
|
||||||
|
1095| map (name: f name attrs.${name}) (attrNames attrs);
|
||||||
|
| ^
|
||||||
|
1096|
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1095:16:
|
||||||
|
1094| attrs:
|
||||||
|
1095| map (name: f name attrs.${name}) (attrNames attrs);
|
||||||
|
| ^
|
||||||
|
1096|
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/78sgjxjd6p9wns5mriffngcrvxp9sfaa-source/nixos/common.nix:110:66:
|
||||||
|
109|
|
||||||
|
110| assertions = flatten (flip mapAttrsToList cfg.users (user: config:
|
||||||
|
| ^
|
||||||
|
111| flip map config.assertions (assertion: {
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/78sgjxjd6p9wns5mriffngcrvxp9sfaa-source/nixos/common.nix:111:9:
|
||||||
|
110| assertions = flatten (flip mapAttrsToList cfg.users (user: config:
|
||||||
|
111| flip map config.assertions (assertion: {
|
||||||
|
| ^
|
||||||
|
112| inherit (assertion) assertion;
|
||||||
|
|
||||||
|
… while calling 'flip'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/trivial.nix:317:16:
|
||||||
|
316| */
|
||||||
|
317| flip = f: a: b: f b a;
|
||||||
|
| ^
|
||||||
|
318|
|
||||||
|
|
||||||
|
… while calling the 'map' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/trivial.nix:317:19:
|
||||||
|
316| */
|
||||||
|
317| flip = f: a: b: f b a;
|
||||||
|
| ^
|
||||||
|
318|
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1095:23:
|
||||||
|
1094| attrs:
|
||||||
|
1095| map (name: f name attrs.${name}) (attrNames attrs);
|
||||||
|
| ^
|
||||||
|
1096|
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/types.nix:577:22:
|
||||||
|
576| merge = loc: defs:
|
||||||
|
577| mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
|
||||||
|
| ^
|
||||||
|
578| (mergeDefinitions (loc ++ [name]) elemType defs).optionalValue
|
||||||
|
|
||||||
|
… while evaluating the attribute 'value'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:864:27:
|
||||||
|
863| optionalValue =
|
||||||
|
864| if isDefined then { value = mergedValue; }
|
||||||
|
| ^
|
||||||
|
865| else {};
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:853:59:
|
||||||
|
852| if isDefined then
|
||||||
|
853| if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
|
||||||
|
| ^
|
||||||
|
854| else let allInvalid = filter (def: ! type.check def.value) defsFinal;
|
||||||
|
|
||||||
|
… while calling 'merge'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/types.nix:881:22:
|
||||||
|
880| check = x: isAttrs x || isFunction x || path.check x;
|
||||||
|
881| merge = loc: defs:
|
||||||
|
| ^
|
||||||
|
882| (base.extendModules {
|
||||||
|
|
||||||
|
… while evaluating the attribute 'config'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:334:9:
|
||||||
|
333| options = checked options;
|
||||||
|
334| config = checked (removeAttrs config [ "_module" ]);
|
||||||
|
| ^
|
||||||
|
335| _module = checked (config._module);
|
||||||
|
|
||||||
|
… while calling the 'seq' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:334:18:
|
||||||
|
333| options = checked options;
|
||||||
|
334| config = checked (removeAttrs config [ "_module" ]);
|
||||||
|
| ^
|
||||||
|
335| _module = checked (config._module);
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:273:9:
|
||||||
|
272| checkUnmatched =
|
||||||
|
273| if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
|
||||||
|
| ^
|
||||||
|
274| let
|
||||||
|
|
||||||
|
… in the left operand of the AND (&&) operator
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:273:72:
|
||||||
|
272| checkUnmatched =
|
||||||
|
273| if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
|
||||||
|
| ^
|
||||||
|
274| let
|
||||||
|
|
||||||
|
… in the left operand of the AND (&&) operator
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:273:33:
|
||||||
|
272| checkUnmatched =
|
||||||
|
273| if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
|
||||||
|
| ^
|
||||||
|
274| let
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:266:12:
|
||||||
|
265|
|
||||||
|
266| in if declaredConfig._module.freeformType == null then declaredConfig
|
||||||
|
| ^
|
||||||
|
267| # Because all definitions that had an associated option ended in
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:254:28:
|
||||||
|
253| # For definitions that have an associated option
|
||||||
|
254| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
|
||||||
|
| ^
|
||||||
|
255|
|
||||||
|
|
||||||
|
… while calling 'mapAttrsRecursiveCond'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1200:5:
|
||||||
|
1199| f:
|
||||||
|
1200| set:
|
||||||
|
| ^
|
||||||
|
1201| let
|
||||||
|
|
||||||
|
… while calling the 'mapAttrs' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/attrsets.nix:1209:5:
|
||||||
|
1208| in
|
||||||
|
1209| recurse [ ] set;
|
||||||
|
| ^
|
||||||
|
1210|
|
||||||
|
|
||||||
|
… while evaluating the attribute 'matchedOptions'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:692:15:
|
||||||
|
691| in {
|
||||||
|
692| inherit matchedOptions;
|
||||||
|
| ^
|
||||||
|
693|
|
||||||
|
|
||||||
|
… while calling the 'mapAttrs' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:683:24:
|
||||||
|
682|
|
||||||
|
683| matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
|
||||||
|
| ^
|
||||||
|
684|
|
||||||
|
|
||||||
|
… while calling the 'mapAttrs' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:636:23:
|
||||||
|
635|
|
||||||
|
636| resultsByName = mapAttrs (name: decls:
|
||||||
|
| ^
|
||||||
|
637| # We're descending into attribute ‘name’.
|
||||||
|
|
||||||
|
… while calling the 'zipAttrsWith' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:553:9:
|
||||||
|
552| declsByName =
|
||||||
|
553| zipAttrsWith
|
||||||
|
| ^
|
||||||
|
554| (n: concatLists)
|
||||||
|
|
||||||
|
… while calling the 'map' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:555:12:
|
||||||
|
554| (n: concatLists)
|
||||||
|
555| (map
|
||||||
|
| ^
|
||||||
|
556| (module: let subtree = module.options; in
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:246:33:
|
||||||
|
245| ({ inherit lib options config specialArgs; } // specialArgs);
|
||||||
|
246| in mergeModules prefix (reverseList collected);
|
||||||
|
| ^
|
||||||
|
247|
|
||||||
|
|
||||||
|
… while calling 'reverseList'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:1116:17:
|
||||||
|
1115| */
|
||||||
|
1116| reverseList = xs:
|
||||||
|
| ^
|
||||||
|
1117| let l = length xs; in genList (n: elemAt xs (l - n - 1)) l;
|
||||||
|
|
||||||
|
… while calling the 'genList' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:1117:27:
|
||||||
|
1116| reverseList = xs:
|
||||||
|
1117| let l = length xs; in genList (n: elemAt xs (l - n - 1)) l;
|
||||||
|
| ^
|
||||||
|
1118|
|
||||||
|
|
||||||
|
… while evaluating the second argument passed to builtins.genList
|
||||||
|
|
||||||
|
… while calling the 'length' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:1117:13:
|
||||||
|
1116| reverseList = xs:
|
||||||
|
1117| let l = length xs; in genList (n: elemAt xs (l - n - 1)) l;
|
||||||
|
| ^
|
||||||
|
1118|
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:241:25:
|
||||||
|
240| merged =
|
||||||
|
241| let collected = collectModules
|
||||||
|
| ^
|
||||||
|
242| class
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:452:37:
|
||||||
|
451|
|
||||||
|
452| in modulesPath: initialModules: args:
|
||||||
|
| ^
|
||||||
|
453| filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:453:7:
|
||||||
|
452| in modulesPath: initialModules: args:
|
||||||
|
453| filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
|
||||||
|
| ^
|
||||||
|
454|
|
||||||
|
|
||||||
|
… while calling 'filterModules'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:420:36:
|
||||||
|
419| # modules recursively. It returns the final list of unique-by-key modules
|
||||||
|
420| filterModules = modulesPath: { disabled, modules }:
|
||||||
|
| ^
|
||||||
|
421| let
|
||||||
|
|
||||||
|
… while calling the 'map' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:447:12:
|
||||||
|
446| keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
|
447| in map (attrs: attrs.module) (genericClosure {
|
||||||
|
| ^
|
||||||
|
448| startSet = keyFilter modules;
|
||||||
|
|
||||||
|
… while calling the 'genericClosure' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:447:39:
|
||||||
|
446| keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
|
447| in map (attrs: attrs.module) (genericClosure {
|
||||||
|
| ^
|
||||||
|
448| startSet = keyFilter modules;
|
||||||
|
|
||||||
|
… while calling the 'filter' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:448:22:
|
||||||
|
447| in map (attrs: attrs.module) (genericClosure {
|
||||||
|
448| startSet = keyFilter modules;
|
||||||
|
| ^
|
||||||
|
449| operator = attrs: keyFilter attrs.modules;
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:446:31:
|
||||||
|
445| disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
|
||||||
|
446| keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
|
| ^
|
||||||
|
447| in map (attrs: attrs.module) (genericClosure {
|
||||||
|
|
||||||
|
… in the argument of the not operator
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:446:40:
|
||||||
|
445| disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
|
||||||
|
446| keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
|
| ^
|
||||||
|
447| in map (attrs: attrs.module) (genericClosure {
|
||||||
|
|
||||||
|
… while calling the 'elem' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:446:40:
|
||||||
|
445| disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
|
||||||
|
446| keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
|
| ^
|
||||||
|
447| in map (attrs: attrs.module) (genericClosure {
|
||||||
|
|
||||||
|
… while calling the 'concatMap' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:445:26:
|
||||||
|
444|
|
||||||
|
445| disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabled;
|
||||||
|
| ^
|
||||||
|
446| keyFilter = filter (attrs: ! elem attrs.key disabledKeys);
|
||||||
|
|
||||||
|
… while calling the 'concatLists' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:402:24:
|
||||||
|
401| collectResults = modules: {
|
||||||
|
402| disabled = concatLists (catAttrs "disabled" modules);
|
||||||
|
| ^
|
||||||
|
403| inherit modules;
|
||||||
|
|
||||||
|
… while evaluating the attribute 'disabled'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:402:13:
|
||||||
|
401| collectResults = modules: {
|
||||||
|
402| disabled = concatLists (catAttrs "disabled" modules);
|
||||||
|
| ^
|
||||||
|
403| inherit modules;
|
||||||
|
|
||||||
|
… while calling the 'concatLists' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:402:24:
|
||||||
|
401| collectResults = modules: {
|
||||||
|
402| disabled = concatLists (catAttrs "disabled" modules);
|
||||||
|
| ^
|
||||||
|
403| inherit modules;
|
||||||
|
|
||||||
|
… while evaluating the attribute 'disabled'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:402:13:
|
||||||
|
401| collectResults = modules: {
|
||||||
|
402| disabled = concatLists (catAttrs "disabled" modules);
|
||||||
|
| ^
|
||||||
|
403| inherit modules;
|
||||||
|
|
||||||
|
… while calling the 'concatLists' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:402:24:
|
||||||
|
401| collectResults = modules: {
|
||||||
|
402| disabled = concatLists (catAttrs "disabled" modules);
|
||||||
|
| ^
|
||||||
|
403| inherit modules;
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:413:25:
|
||||||
|
412| modules = collectedImports.modules;
|
||||||
|
413| disabled = (if module.disabledModules != [] then [{ file = module._file; disabled = module.disabledModules; }] else []) ++ collectedImports.disabled;
|
||||||
|
| ^
|
||||||
|
414| }) initialModules);
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:407:22:
|
||||||
|
406| let
|
||||||
|
407| module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
|
||||||
|
| ^
|
||||||
|
408| collectedImports = collectStructuredModules module._file module.key module.imports args;
|
||||||
|
|
||||||
|
… while calling anonymous lambda
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:366:11:
|
||||||
|
365| then
|
||||||
|
366| m:
|
||||||
|
| ^
|
||||||
|
367| if m._class != null -> m._class == class
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:367:13:
|
||||||
|
366| m:
|
||||||
|
367| if m._class != null -> m._class == class
|
||||||
|
| ^
|
||||||
|
368| then m
|
||||||
|
|
||||||
|
… in the left operand of the IMPL (->) operator
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:367:33:
|
||||||
|
366| m:
|
||||||
|
367| if m._class != null -> m._class == class
|
||||||
|
| ^
|
||||||
|
368| then m
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:407:35:
|
||||||
|
406| let
|
||||||
|
407| module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
|
||||||
|
| ^
|
||||||
|
408| collectedImports = collectStructuredModules module._file module.key module.imports args;
|
||||||
|
|
||||||
|
… while calling 'loadModule'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:348:53:
|
||||||
|
347| # Like unifyModuleSyntax, but also imports paths and calls functions if necessary
|
||||||
|
348| loadModule = args: fallbackFile: fallbackKey: m:
|
||||||
|
| ^
|
||||||
|
349| if isFunction m then
|
||||||
|
|
||||||
|
… while evaluating a branch condition
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:349:9:
|
||||||
|
348| loadModule = args: fallbackFile: fallbackKey: m:
|
||||||
|
349| if isFunction m then
|
||||||
|
| ^
|
||||||
|
350| unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)
|
||||||
|
|
||||||
|
… from call site
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/modules.nix:349:12:
|
||||||
|
348| loadModule = args: fallbackFile: fallbackKey: m:
|
||||||
|
349| if isFunction m then
|
||||||
|
| ^
|
||||||
|
350| unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)
|
||||||
|
|
||||||
|
… while calling 'isFunction'
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/trivial.nix:1000:16:
|
||||||
|
999| */
|
||||||
|
1000| isFunction = f: builtins.isFunction f ||
|
||||||
|
| ^
|
||||||
|
1001| (f ? __functor && isFunction (f.__functor f));
|
||||||
|
|
||||||
|
… in the left operand of the OR (||) operator
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/trivial.nix:1000:41:
|
||||||
|
999| */
|
||||||
|
1000| isFunction = f: builtins.isFunction f ||
|
||||||
|
| ^
|
||||||
|
1001| (f ? __functor && isFunction (f.__functor f));
|
||||||
|
|
||||||
|
… while calling the 'isFunction' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/trivial.nix:1000:19:
|
||||||
|
999| */
|
||||||
|
1000| isFunction = f: builtins.isFunction f ||
|
||||||
|
| ^
|
||||||
|
1001| (f ? __functor && isFunction (f.__functor f));
|
||||||
|
|
||||||
|
… while calling the 'elemAt' builtin
|
||||||
|
at /nix/store/sh0v21n9zc03b94qjj4jkkg5mbsjkpzr-source/lib/lists.nix:334:43:
|
||||||
|
333| */
|
||||||
|
334| imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
|
||||||
|
| ^
|
||||||
|
335|
|
||||||
|
|
||||||
|
… while calling the 'import' builtin
|
||||||
|
at /nix/store/d46k1bziqlp4h2657vc56cmy3llxh4gg-source/homes/me/default.nix:14:7:
|
||||||
|
13| imports = [
|
||||||
|
14| (import ./helix.nix { inherit pkgs; } )
|
||||||
|
| ^
|
||||||
|
15| # inputs.spicetify-nix.homeManagerModules.default
|
||||||
|
|
||||||
|
error: path '/nix/store/d46k1bziqlp4h2657vc56cmy3llxh4gg-source/homes/me/helix.nix' does not exist
|
||||||
Loading…
Add table
Add a link
Reference in a new issue