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 hyprcursor working with Bibata-Modern-Ice
|
||||
|
||||
Get a GRUB theme working
|
||||
Get SDDM and a theme 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
|
||||
- btop/htop/etc
|
||||
|
|
@ -30,8 +29,7 @@ Overtime just install more programs that I need regularly: ie
|
|||
|
||||
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
|
||||
|
||||
|
|
|
|||
102
flake.lock
generated
102
flake.lock
generated
|
|
@ -1,5 +1,24 @@
|
|||
{
|
||||
"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": {
|
||||
"inputs": {
|
||||
"hyprutils": [
|
||||
|
|
@ -119,7 +138,7 @@
|
|||
},
|
||||
"grub2-themes": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730004881,
|
||||
|
|
@ -192,9 +211,9 @@
|
|||
"hyprlang": "hyprlang",
|
||||
"hyprutils": "hyprutils",
|
||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"pre-commit-hooks": "pre-commit-hooks",
|
||||
"systems": "systems",
|
||||
"systems": "systems_2",
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
|
|
@ -315,10 +334,26 @@
|
|||
"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": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1730720546,
|
||||
|
|
@ -336,16 +371,16 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1730808093,
|
||||
"narHash": "sha256-oOenwoxpzQsBNi7KltgnXqq6e0+CxlfNXKn3k27w6cQ=",
|
||||
"lastModified": 1725634671,
|
||||
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c1a390f74b2c93f69a6805142f11a215a689cec1",
|
||||
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "master",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
|
@ -367,6 +402,22 @@
|
|||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1730785428,
|
||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||
|
|
@ -382,7 +433,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1730768919,
|
||||
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
|
||||
|
|
@ -398,13 +449,13 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1730531603,
|
||||
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
|
||||
"lastModified": 1730785428,
|
||||
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
|
||||
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -414,7 +465,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1730200266,
|
||||
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
|
||||
|
|
@ -456,11 +507,13 @@
|
|||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"ags": "ags",
|
||||
"grub2-themes": "grub2-themes",
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixcord": "nixcord",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"swww": "swww"
|
||||
}
|
||||
|
|
@ -489,7 +542,7 @@
|
|||
"swww": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_4",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
|
|
@ -522,6 +575,21 @@
|
|||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
|
|
@ -538,7 +606,7 @@
|
|||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726560853,
|
||||
|
|
|
|||
13
flake.nix
13
flake.nix
|
|
@ -2,6 +2,7 @@
|
|||
description = "Emile's Nix Dotfiles";
|
||||
|
||||
inputs = {
|
||||
#nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
|
|
@ -14,16 +15,19 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixcord = {
|
||||
url = "github:kaylorben/nixcord";
|
||||
};
|
||||
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?)
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
|
||||
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 = {
|
||||
|
|
@ -63,6 +67,7 @@
|
|||
|
||||
modules = [
|
||||
./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 = [
|
||||
#inputs.nixcord.homeManagerModules.nixcord
|
||||
# inputs.spicetify-nix.homeManagerModules.default
|
||||
# ./wofi.nix
|
||||
#../../modules/discord/nixcord.nix
|
||||
../modules/git.nix
|
||||
../modules/bat.nix
|
||||
../modules/fish.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";
|
||||
};
|
||||
|
||||
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 = {
|
||||
# these are both required for home-manager to work
|
||||
home-manager.enable = true;
|
||||
|
||||
git = {
|
||||
ags = {
|
||||
enable = true;
|
||||
userName = "Emile Clark-Boman";
|
||||
userEmail = "eclarkboman@gmail.com";
|
||||
};
|
||||
configDir = ./ags;
|
||||
|
||||
# like `/bin/cat` but with syntax highlighting
|
||||
# TODO: change the pager (maybe use Github:sachaos/viddy instead)
|
||||
bat = {
|
||||
enable = true;
|
||||
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];
|
||||
}
|
||||
extraPackages = with pkgs; [
|
||||
gtksourceview
|
||||
webkitgtk
|
||||
accountsservice
|
||||
];
|
||||
};
|
||||
|
||||
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
|
||||
# goes terrible cause it isn't POSIX compliant, so
|
||||
# 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 =
|
||||
let
|
||||
|
|
@ -530,314 +129,9 @@
|
|||
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 = {
|
||||
# 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
|
||||
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,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}: 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 {
|
||||
url = "https://github.com/nix-community/home-manager/archive/master.tar.gz";
|
||||
sha256 = "19w63qccz78v0spx03911z98w1bvlxvd07hb0ma14a4vdzi4ninj";
|
||||
|
|
@ -38,6 +43,13 @@ in {
|
|||
#efiInstallAsRemovable = true; # in case canTouchEfiVariables doesn't work on this system
|
||||
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.
|
||||
|
|
@ -67,10 +79,11 @@ in {
|
|||
services = {
|
||||
# Set display manager (login screen)
|
||||
displayManager = {
|
||||
# sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||
sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true; # enable experimental sddm support for wayland
|
||||
theme = "${import ./sddm-theme-corners.nix {inherit pkgs;}}";
|
||||
theme = "corners";
|
||||
};
|
||||
defaultSession = "hyprland";
|
||||
};
|
||||
|
|
@ -114,6 +127,11 @@ in {
|
|||
firefox
|
||||
nitch
|
||||
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 = {
|
||||
# isNormalUser = true;
|
||||
# extraGroups = ["wheel"];
|
||||
|
|
@ -149,6 +167,7 @@ in {
|
|||
users.me = import ../../homes/me;
|
||||
sharedModules = [
|
||||
inputs.nixcord.homeManagerModules.nixcord
|
||||
inputs.ags.homeManagerModules.default
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -163,6 +182,10 @@ in {
|
|||
wl-clipboard # clipboard for wayland
|
||||
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
|
||||
poetry # python dependency management and packaging
|
||||
|
||||
|
|
@ -180,6 +203,7 @@ in {
|
|||
git
|
||||
brightnessctl
|
||||
acpi
|
||||
vim
|
||||
|
||||
# Unix Commands
|
||||
wget
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{pkgs}: {
|
||||
sddm-theme-corners = pkgs.stdenv.mkDerivation rec {
|
||||
pname = "sddm-theme-corners";
|
||||
name = "sddm-theme-corners";
|
||||
#version = "1.0";
|
||||
#dontBuild = true;
|
||||
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