Compare commits

..

No commits in common. "509320c115216663aa06e88d5f740a5faf919a07" and "5750480f034ea31517868470ad0c23745cd7d1f3" have entirely different histories.

64 changed files with 996 additions and 1301 deletions

View file

@ -10,13 +10,11 @@
...
}:
with lib;
with builtins;
{
imports = [ lix-module.nixosModules.default ];
with builtins; {
imports = [lix-module.nixosModules.default];
environment = {
systemPackages = with pkgs; [
nixfmt-rfc-style
overskride
transmission_4-gtk
@ -107,16 +105,7 @@ with builtins;
users.users.jade = {
isNormalUser = true;
extraGroups = [
"wheel"
"input"
"uinput"
"libvirtd"
"adbusers"
"dialout"
"plugdev"
"wireshark"
];
extraGroups = ["wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark"];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOaE8TFsIazpn4OnHvHcRpOFr9FfvMaWOiEjmHsmnAoE cardno:000F_70CD7D05"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg7hhAKxIAbokHHcIj9HBgbkgoKGCG2R+gx7HZKL+iz cardno:000F_93C6A612"

View file

@ -24,8 +24,7 @@
};
};
outputs =
{
outputs = {
self,
nixpkgs,
nixpkgs-stable,
@ -39,14 +38,12 @@
fenix,
crane,
...
}@inputs:
let
} @ inputs: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
pkgs-stable = nixpkgs-stable.legacyPackages.${system};
pkgs-unstable-small = nixpkgs-unstable-small.legacyPackages.${system};
rs-toolchain =
with fenix.packages.${system};
rs-toolchain = with fenix.packages.${system};
combine [
complete.toolchain
];
@ -58,9 +55,7 @@
src = crane-lib.cleanCargoSource (crane-lib.path ./.);
};
};
in
{
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
in {
devShells."x86_64-linux".default = pkgs.mkShell {
buildInputs = [
rs-toolchain
@ -71,14 +66,7 @@
nixosConfigurations = {
monosodium-glutamate-g = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit
inputs
pkgs-unstable-small
pkgs-stable
rs-programs
lix-module
niri
;
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module niri;
};
system = "x86_64-linux";
modules = [
@ -95,13 +83,11 @@
home-manager.sharedModules = [
inputs.nixcord.homeManagerModules.nixcord
];
home-manager.users.jade =
{
home-manager.users.jade = {
nixosConfig,
pkgs,
...
}:
{
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "${nixosConfig.system.stateVersion}";
};
@ -110,14 +96,7 @@
};
denkbrett = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit
inputs
pkgs-unstable-small
pkgs-stable
rs-programs
lix-module
niri
;
inherit inputs pkgs-unstable-small pkgs-stable rs-programs lix-module niri;
};
system = "x86_64-linux";
modules = [
@ -134,13 +113,11 @@
home-manager.sharedModules = [
inputs.nixcord.homeManagerModules.nixcord
];
home-manager.users.jade =
{
home-manager.users.jade = {
nixosConfig,
pkgs,
...
}:
{
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "22.11";
};

View file

@ -1,8 +1,7 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ pkgs, ... }:
{
{pkgs, ...}: {
nixpkgs.config.permittedInsecurePackages = [
"electron-25.9.0"
"electron-27.3.11"
@ -28,19 +27,19 @@
};
};
security.pam.services.swaylock = { };
security.pam.services.swaylock = {};
hardware.usb-modeswitch.enable = true;
systemd.services."ModemManager".enable = true;
systemd.services."ModemManager".wants = [ "NetworkManager.service" ];
systemd.services."ModemManager".wantedBy = [ "multi-user.target" ];
systemd.services."ModemManager".wants = ["NetworkManager.service"];
systemd.services."ModemManager".wantedBy = ["multi-user.target"];
programs.wireshark.enable = true;
boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
boot.kernelParams = [ "resume_offset=7380652" ];
boot.kernelParams = ["resume_offset=7380652"];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.binfmt.emulatedSystems = ["aarch64-linux"];
services.blueman.enable = true;

View file

@ -7,53 +7,35 @@
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
"rtsx_pci_sdmmc"
];
boot.initrd.kernelModules = [ "i915" ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = ["i915"];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
options = [
"subvol=@"
"compress=zstd:3"
"noatime"
];
options = ["subvol=@" "compress=zstd:3" "noatime"];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
options = [
"subvol=@home"
"compress=zstd:3"
];
options = ["subvol=@home" "compress=zstd:3"];
};
fileSystems."/swap" = {
device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
options = [
"subvol=@/@swap"
"noatime"
];
options = ["subvol=@/@swap" "noatime"];
};
boot.initrd.luks.devices."luks-9cd75cce-6829-4db8-8c5c-a9fb9ec3e122".device =
"/dev/disk/by-uuid/9cd75cce-6829-4db8-8c5c-a9fb9ec3e122";
boot.initrd.luks.devices."luks-9cd75cce-6829-4db8-8c5c-a9fb9ec3e122".device = "/dev/disk/by-uuid/9cd75cce-6829-4db8-8c5c-a9fb9ec3e122";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/C6CA-5DE8";

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./input.nix
./graphics.nix

View file

@ -3,8 +3,7 @@
lib,
config,
...
}:
{
}: {
environment.variables = {
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
};

View file

@ -1,29 +1,20 @@
{ ... }:
{
{...}: {
# key remapping
jade.input.remapping =
let
jade.input.remapping = let
default = {
swapKeys = [
[
"KEY_Y"
"KEY_Z"
]
[
"KEY_LEFTALT"
"KEY_LEFTMETA"
]
["KEY_Y" "KEY_Z"]
["KEY_LEFTALT" "KEY_LEFTMETA"]
];
dual_role = [
{
input = "KEY_CAPSLOCK";
hold = [ "KEY_LEFTCTRL" ];
tap = [ "KEY_ESC" ];
hold = ["KEY_LEFTCTRL"];
tap = ["KEY_ESC"];
}
];
};
in
{
in {
enable = true;
devices."AT Translated Set 2 keyboard" = default;
devices."Razer Razer Huntsman" = default;

View file

@ -5,8 +5,7 @@
pkgs,
pkgs-stable,
...
}:
{
}: {
imports = [
./hardware-configuration.nix
../../common.nix
@ -36,7 +35,7 @@
kernelPackages = pkgs.linuxPackages_zen;
binfmt.emulatedSystems = [ "aarch64-linux" ];
binfmt.emulatedSystems = ["aarch64-linux"];
};
networking.hostName = "monosodium-glutamate-g";
@ -80,7 +79,7 @@
# networking.firewall.allowedTCPPorts = [ 4713 ];
systemd.services."NetworkManager-wait-online".enable = false;
swapDevices = [ { device = "/swap/swapfile"; } ];
swapDevices = [{device = "/swap/swapfile";}];
system.stateVersion = "24.05"; # Did you read the comment?
}

View file

@ -7,49 +7,37 @@
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"uas"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "uas" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/efb8f256-5b14-4b52-a2d9-ae4b91ecb711";
fsType = "btrfs";
options = [ "subvol=@" ];
options = ["subvol=@"];
};
boot.initrd.luks.devices."luks-919f9b8b-2804-447a-97e0-f7f515d0be56".device =
"/dev/disk/by-uuid/919f9b8b-2804-447a-97e0-f7f515d0be56";
boot.initrd.luks.devices."luks-919f9b8b-2804-447a-97e0-f7f515d0be56".device = "/dev/disk/by-uuid/919f9b8b-2804-447a-97e0-f7f515d0be56";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/3FAD-A6B4";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
];
options = ["fmask=0077" "dmask=0077"];
};
fileSystems."/swap" = {
device = "/dev/disk/by-uuid/efb8f256-5b14-4b52-a2d9-ae4b91ecb711";
fsType = "btrfs";
options = [ "subvol=swap" ];
options = ["subvol=swap"];
};
swapDevices = [ ];
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./graphics.nix
];

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = [
pkgs.nvtopPackages.amd
pkgs.radeontop

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./shell
./desktop

View file

@ -4,8 +4,7 @@
pkgs,
...
}:
with lib;
{
with lib; {
imports = [
./gaming.nix
./syncthing.nix
@ -29,9 +28,7 @@ with lib;
notifications.test = true;
};
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
programs.ssh = {
controlMaster = "yes";
};

View file

@ -2,20 +2,16 @@
config,
lib,
...
}:
let
}: let
cfg = config.jade.desktop.gaming;
in
with lib;
{
with lib; {
options.jade.desktop.gaming = {
enable = mkEnableOption "Enable gaming stuff";
};
config = mkIf cfg.enable {
programs.steam.enable = true;
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
lutris
prismlauncher
@ -25,4 +21,4 @@ with lib;
];
};
};
}
}

View file

@ -3,24 +3,20 @@
lib,
pkgs,
...
}:
let
}: let
cfg = config.jade.desktop.kdeconnect;
in
with lib;
{
with lib; {
options.jade.desktop.kdeconnect = {
enable = mkEnableOption "Enable KDE connect";
};
config = mkIf cfg.enable {
programs.kdeconnect.enable = true;
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
services.kdeconnect = {
enable = true;
indicator = true;
};
};
};
}
}

View file

@ -3,23 +3,19 @@
lib,
pkgs,
...
}:
let
}: let
cfg = config.jade.desktop.social;
in
with lib;
{
with lib; {
options.jade.desktop.social = {
enable = mkEnableOption "Enable social apps";
};
config = mkIf cfg.enable {
home-manager.users.jade =
{
home-manager.users.jade = {
pkgs,
pkgs-stable,
...
}:
{
}: {
programs.nixcord = {
enable = true;
vesktop = {
@ -41,9 +37,9 @@ with lib;
};
programs.evolution = {
enable = true;
plugins = [ pkgs.evolution-ews ];
plugins = [pkgs.evolution-ews];
};
services.gnome.evolution-data-server.enable = true;
services.gnome.evolution-data-server.plugins = [ ];
services.gnome.evolution-data-server.plugins = [];
};
}
}

View file

@ -3,12 +3,10 @@
lib,
pkgs,
...
}:
let
}: let
cfg = config.jade.desktop.syncthing;
in
with lib;
{
with lib; {
options.jade.desktop.syncthing = {
enable = mkEnableOption "Enable syncing via syncthing";
};
@ -20,4 +18,4 @@ with lib;
configDir = "/home/${user}/Documents/.config/syncthing";
};
};
}
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs = {
noisetorch.enable = true;
};

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./audio.nix
./home

View file

@ -3,12 +3,10 @@
config,
lib,
...
}:
let
}: let
cfg = config.jade.desktop.dm;
in
with lib;
{
with lib; {
options.jade.desktop.dm.autoLogin = {
enable = mkEnableOption "Enable Autologin";
delay = mkOption {
@ -32,4 +30,4 @@ with lib;
};
};
};
}
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
home.file = {
".tridactylrc" = {
text = ''
@ -17,9 +16,7 @@
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install =
builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}")
[
Extensions.Install = builtins.map (name: "https://addons.mozilla.org/firefox/downloads/latest/${name}") [
"ublock-origin"
"tridactyl-vim"
"privacy-badger17"
@ -66,7 +63,7 @@
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "pkgs" ];
definedAliases = ["pkgs"];
};
"Nix Options" = {
urls = [
@ -81,7 +78,7 @@
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "opts" ];
definedAliases = ["opts"];
};
"Home manager Options" = {
urls = [
@ -100,7 +97,7 @@
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "hm" ];
definedAliases = ["hm"];
};
"NixOS Wiki" = {
urls = [
@ -115,7 +112,7 @@
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "nxwk" ];
definedAliases = ["nxwk"];
};
"Noogle" = {
urls = [
@ -129,7 +126,7 @@
];
}
];
definedAliases = [ "ngl" ];
definedAliases = ["ngl"];
};
"lib.rs" = {
urls = [
@ -144,7 +141,7 @@
}
];
icon = "https://lib.rs/favicon.png";
definedAliases = [ "libs" ];
definedAliases = ["libs"];
};
"rust docs" = {
urls = [
@ -159,7 +156,7 @@
}
];
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = [ "docs" ];
definedAliases = ["docs"];
};
"rust docs direct open" = {
urls = [
@ -167,10 +164,7 @@
template = "https://docs.rs/{searchTerms}";
}
];
definedAliases = [
"doc"
"docd"
];
definedAliases = ["doc" "docd"];
};
"rust std docs" = {
urls = [
@ -185,7 +179,7 @@
}
];
icon = "https://doc.rust-lang.org/favicon.ico";
definedAliases = [ "std" ];
definedAliases = ["std"];
};
"MDN" = {
urls = [

View file

@ -1,9 +1,6 @@
{ ... }:
{
{...}: {
programs.niri.enable = true;
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
imports = [
./notifications.nix
./terminal.nix

View file

@ -1,5 +1,4 @@
{ ... }:
{
{ ... }: {
programs.eww = {
enable = true;
configDir = ./configDir;

View file

@ -2,8 +2,7 @@
pkgs,
lib,
...
}:
let
}: let
# stolen: https://github.com/MultisampledNight/core/blob/678f176cb24f5dc4b5dc629cfd3e643487be01bb/system/packages/layaway/default.nix#L7-L25
layaway = pkgs.rustPlatform.buildRustPackage rec {
pname = "layaway";
@ -22,10 +21,9 @@ let
meta = with lib; {
description = "Layout creation for Sway via a relative and human-readable DSL.";
homepage = "https://github.com/MultisampledNight/layaway";
maintainers = [ maintainers.multisn8 ];
maintainers = [maintainers.multisn8];
};
};
in
{
home.packages = [ layaway ];
in {
home.packages = [layaway];
}

View file

@ -1,91 +1,50 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.niri.settings.binds = {
# spawn terminal
"Mod+Return".action.spawn = "kitty";
"Mod+Return".repeat = false;
"Mod+D".action.spawn = [
"wofi"
"-S"
"drun"
"--allow-images"
];
"Mod+D".action.spawn = ["wofi" "-S" "drun" "--allow-images"];
"Mod+D".repeat = false;
"Mod+I".action.spawn = [
"${pkgs.rofimoji}/bin/rofimoji"
"--selector"
"wofi"
"-f"
"alchemical_symbols"
"anatolian_hieroglyphs"
"emojis"
"braille_patterns"
"box_drawing"
"chess_symbols"
"emoticons"
"geometric_shapes"
"gothic"
"greek_extended"
"math"
"mathematical_alphanumeric_symbols"
"mathematical_operators"
"miscellaneous_symbols"
"miscellaneous_mathematical_symbols-a"
"miscellaneous_mathematical_symbols-b"
"miscellaneous_symbols_and_arrows"
"miscellaneous_symbols_and_pictographs"
"miscellaneous_technical"
"modi"
"modifier_tone_letters"
"musical_symbols"
"nerd_font"
"number_forms"
"shorthand_format_controls"
"specials"
"variation_selectors"
"vertical_forms"
"-a"
"copy"
];
"Mod+I".action.spawn = ["${pkgs.rofimoji}/bin/rofimoji" "--selector" "wofi" "-f" "alchemical_symbols" "anatolian_hieroglyphs" "emojis" "braille_patterns" "box_drawing" "chess_symbols" "emoticons" "geometric_shapes" "gothic" "greek_extended" "math" "mathematical_alphanumeric_symbols" "mathematical_operators" "miscellaneous_symbols" "miscellaneous_mathematical_symbols-a" "miscellaneous_mathematical_symbols-b" "miscellaneous_symbols_and_arrows" "miscellaneous_symbols_and_pictographs" "miscellaneous_technical" "modi" "modifier_tone_letters" "musical_symbols" "nerd_font" "number_forms" "shorthand_format_controls" "specials" "variation_selectors" "vertical_forms" "-a" "copy"];
"Mod+Shift+E".action.quit = [ ];
"Mod+Shift+Q".action.close-window = [ ];
"Mod+Shift+P".action.power-off-monitors = [ ];
"Mod+Shift+E".action.quit = [];
"Mod+Shift+Q".action.close-window = [];
"Mod+Shift+P".action.power-off-monitors = [];
"Mod+Shift+Ctrl+Slash".action.toggle-keyboard-shortcuts-inhibit = [ ];
"Mod+Shift+Ctrl+Slash".action.toggle-keyboard-shortcuts-inhibit = [];
"Mod+Shift+Ctrl+Slash".allow-inhibiting = false;
"Mod+Shift+Slash".action.show-hotkey-overlay = [ ];
"Mod+Shift+Slash".action.show-hotkey-overlay = [];
# window/columns controls
"Mod+H".action.focus-column-left = [ ];
"Mod+J".action.focus-window-down = [ ];
"Mod+K".action.focus-window-up = [ ];
"Mod+L".action.focus-column-right = [ ];
"Mod+Ctrl+H".action.move-column-left = [ ];
"Mod+Ctrl+J".action.move-window-down = [ ];
"Mod+Ctrl+K".action.move-window-up = [ ];
"Mod+Ctrl+L".action.move-column-right = [ ];
"Mod+R".action.switch-preset-column-width = [ ];
"Mod+H".action.focus-column-left = [];
"Mod+J".action.focus-window-down = [];
"Mod+K".action.focus-window-up = [];
"Mod+L".action.focus-column-right = [];
"Mod+Ctrl+H".action.move-column-left = [];
"Mod+Ctrl+J".action.move-window-down = [];
"Mod+Ctrl+K".action.move-window-up = [];
"Mod+Ctrl+L".action.move-column-right = [];
"Mod+R".action.switch-preset-column-width = [];
"Mod+V".action.toggle-window-floating = [ ];
"Mod+Shift+V".action.switch-focus-between-floating-and-tiling = [ ];
"Mod+V".action.toggle-window-floating = [];
"Mod+Shift+V".action.switch-focus-between-floating-and-tiling = [];
# monitor controls
"Mod+Shift+H".action.focus-monitor-left = [ ];
"Mod+Shift+J".action.focus-monitor-down = [ ];
"Mod+Shift+K".action.focus-monitor-up = [ ];
"Mod+Shift+L".action.focus-monitor-right = [ ];
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = [ ];
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = [ ];
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = [ ];
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = [ ];
"Mod+Shift+H".action.focus-monitor-left = [];
"Mod+Shift+J".action.focus-monitor-down = [];
"Mod+Shift+K".action.focus-monitor-up = [];
"Mod+Shift+L".action.focus-monitor-right = [];
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = [];
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = [];
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = [];
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = [];
# workspace controls
"Mod+P".action.focus-workspace-up = [ ];
"Mod+N".action.focus-workspace-down = [ ];
"Mod+Ctrl+P".action.move-column-to-workspace-up = [ ];
"Mod+Ctrl+N".action.move-column-to-workspace-down = [ ];
"Mod+P".action.focus-workspace-up = [];
"Mod+N".action.focus-workspace-down = [];
"Mod+Ctrl+P".action.move-column-to-workspace-up = [];
"Mod+Ctrl+N".action.move-column-to-workspace-down = [];
"Mod+1".action.focus-workspace = 1;
"Mod+2".action.focus-workspace = 2;
"Mod+3".action.focus-workspace = 3;
@ -106,46 +65,26 @@
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
# column editing stuffs
"Mod+BracketLeft".action.consume-or-expel-window-left = [ ];
"Mod+BracketRight".action.consume-or-expel-window-right = [ ];
"Mod+F".action.maximize-column = [ ];
"Mod+Shift+F".action.expand-column-to-available-width = [ ];
"Mod+Ctrl+F".action.fullscreen-window = [ ];
"Mod+C".action.center-column = [ ];
"Mod+BracketLeft".action.consume-or-expel-window-left = [];
"Mod+BracketRight".action.consume-or-expel-window-right = [];
"Mod+F".action.maximize-column = [];
"Mod+Shift+F".action.expand-column-to-available-width = [];
"Mod+Ctrl+F".action.fullscreen-window = [];
"Mod+C".action.center-column = [];
"Mod+Minus".action.set-column-width = "-5%";
"Mod+Equal".action.set-column-width = "+5%";
"Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%";
"Mod+W".action.toggle-column-tabbed-display = [ ];
"Mod+W".action.toggle-column-tabbed-display = [];
# media keys
"XF86AudioRaiseVolume".action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.1+"
];
"XF86AudioLowerVolume".action.spawn = [
"wpctl"
"set-volume"
"@DEFAULT_AUDIO_SINK@"
"0.1-"
];
"XF86AudioMute".action.spawn = [
"wpctl"
"set-mute"
"@DEFAULT_AUDIO_SINK@"
"toggle"
];
"XF86AudioMicMute".action.spawn = [
"wpctl"
"set-mute"
"@DEFAULT_AUDIO_SOURCE@"
"toggle"
];
"XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"];
"XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"];
"XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
"XF86AudioMicMute" .action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"];
"XF86AudioRaiseVolume".allow-when-locked = true;
"XF86AudioLowerVolume".allow-when-locked = true;
"XF86AudioMute".allow-when-locked = true;
"XF86AudioMicMute".allow-when-locked = true;
"XF86AudioMicMute" .allow-when-locked = true;
};
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./xwayland-sat.nix
./screenshot.nix
@ -15,14 +14,7 @@
};
spawn-at-startup = [
{
command = [
"eww"
"open-many"
"topBar"
"bottomBar"
];
}
{command = ["eww" "open-many" "topBar" "bottomBar"];}
{
command = [
"${pkgs.swaybg}/bin/swaybg"

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.niri.settings.input = {
keyboard = {
xkb = {

View file

@ -1,10 +1,9 @@
{ ... }:
{
{...}: {
programs.niri.settings = {
layer-rules = [
{
matches = [
{ namespace = "notifications"; }
{namespace = "notifications";}
];
block-out-from = "screen-capture";
}
@ -12,14 +11,12 @@
window-rules = [
{
matches = [
{ app-id = "^signal|Element|org\.gnome\.Evolution$"; }
{ title = "^.*(Discord|Beispiel Screenshare block Bug|Bitwarden|Träwelling).*$"; }
{app-id = "^signal|Element|org\.gnome\.Evolution$";}
{title = "^.*(Discord|Beispiel Screenshare block Bug|Bitwarden|Träwelling).*$";}
];
excludes = [
{
title = "^.*((Schrottkatze|Statistics|Leaderboard) - Träwelling|chaos.social|Nekoverse|catgirl.cloud).*$";
}
{ is-floating = true; }
{title = "^.*((Schrottkatze|Statistics|Leaderboard) - Träwelling|chaos.social|Nekoverse|catgirl.cloud).*$";}
{is-floating = true;}
];
block-out-from = "screen-capture";
}

View file

@ -1,6 +1,5 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.gamescope ];
{pkgs, ...}: {
home.packages = [pkgs.gamescope];
programs.niri.settings = {
window-rules = [
{
@ -29,7 +28,6 @@
shadow.enable = false;
border.enable = false;
baba-is-float = false;
open-focused = false;
}
{
matches = [
@ -49,11 +47,7 @@
is-floating = true;
}
];
geometry-corner-radius =
let
val = 5.;
in
{
geometry-corner-radius = let val = 5.; in {
bottom-left = val;
bottom-right = val;
top-left = val;

View file

@ -1,14 +1,13 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.niri.settings = {
screenshot-path = "~/Pictures/screenshots/%Y-%m-%dT%H:%M:%S.png";
binds = {
"Print".action.screenshot = [ ];
"Ctrl+Print".action.screenshot-screen = [ ];
"Shift+Print".action.screenshot-window = [ ];
"Mod+S".action.screenshot = [ ];
"Mod+Ctrl+S".action.screenshot-screen = [ ];
"Mod+Shift+S".action.screenshot-window = [ ];
"Print".action.screenshot = [];
"Ctrl+Print".action.screenshot-screen = [];
"Shift+Print".action.screenshot-window = [];
"Mod+S".action.screenshot = [];
"Mod+Ctrl+S".action.screenshot-screen = [];
"Mod+Shift+S".action.screenshot-window = [];
};
};
}

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.niri.settings = {
prefer-no-csd = true;
@ -39,7 +38,7 @@
inactive.color = "#3c3836";
gap = 2;
width = 5;
corner-radius = 3;
corner-radius= 3;
position = "left";
gaps-between-tabs = 0;
};
@ -47,11 +46,9 @@
window-rules = [
{
matches = [
{
matches = [{
is-floating = true;
}
];
}];
baba-is-float = true;
shadow = {
offset.y = 0;
@ -63,18 +60,13 @@
};
}
{
geometry-corner-radius =
let
val = 1.;
in
{
geometry-corner-radius = let val = 1.; in {
bottom-left = val;
bottom-right = val;
top-left = val;
top-right = val;
};
clip-to-geometry = true;
}
];
}];
};
}

View file

@ -1,8 +1,7 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.niri.settings = {
spawn-at-startup = [
{ command = [ "${pkgs.xwayland-satellite}/bin/xwayland-satellite" ]; }
{command = ["${pkgs.xwayland-satellite}/bin/xwayland-satellite"];}
];
environment.DISPLAY = ":0";
};

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
home.packages = [
pkgs.libnotify
];

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
# unsure whether i still need swayidle, will keep it in and might remove after further testing
services.swayidle = {

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.kitty = {
enable = true;
font.size = 12;

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
time.timeZone = "Europe/Berlin";
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services.printing = {
enable = true;
drivers = with pkgs; [

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
stylix = {
enable = true;
polarity = "dark";
@ -26,12 +25,10 @@
};
};
};
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
stylix.targets = {
firefox = {
profileNames = [ "jade" ];
profileNames = ["jade"];
};
helix.enable = false;
btop.enable = false;

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
services.tlp = {
enable = true;
settings = {

View file

@ -3,8 +3,7 @@
lib,
pkgs,
...
}:
{
}: {
imports = [
./spacenav.nix
./wacom.nix

View file

@ -3,18 +3,16 @@
config,
lib,
...
}:
let
}: let
cfg = config.jade.hwKey;
in
with lib;
{
with lib; {
options.jade.hwKey = {
pamAuth.enable = mkEnableOption "Enable PAM authentication with hardware keys";
};
config = {
# nitrokey
services.udev.packages = [ pkgs.nitrokey-udev-rules ];
services.udev.packages = [pkgs.nitrokey-udev-rules];
# smartcard daemon
services.pcscd.enable = true;
@ -34,4 +32,4 @@ with lib;
programs.i3lock.u2fSupport = true;
};
}
}

View file

@ -1,11 +1,10 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
spacenavd
libspnav
];
systemd.services.spacenavd = {
wantedBy = [ "graphical.target" ];
wantedBy = ["graphical.target"];
script = "${pkgs.spacenavd}/bin/spacenavd -d";
};
}

View file

@ -1,9 +1,6 @@
{ ... }:
{
{...}: {
services.xserver.wacom.enable = true;
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
home.packages = [
# TODO: figure out if the previous enabled option depends on these anyway
pkgs.libwacom

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./evremap.nix
];

View file

@ -3,8 +3,7 @@
config,
lib,
...
}:
let
}: let
cfg = config.jade.input.remapping;
evremap = pkgs.rustPlatform.buildRustPackage {
pname = "evremap";
@ -17,20 +16,16 @@ let
};
useFetchCargoVendor = true;
cargoHash = "sha256-O1rJ48m8Q7kZABw/UNpmUT7FFBWQedo6CuV+NX9kDt8=";
nativeBuildInputs = [ pkgs.pkg-config ];
buildInputs = [ pkgs.libevdev ];
nativeBuildInputs = [pkgs.pkg-config];
buildInputs = [pkgs.libevdev];
};
toml = pkgs.formats.toml { };
toml = pkgs.formats.toml {};
in
with lib;
{
with lib; {
options.jade.input.remapping = {
enable = mkEnableOption "Enable evremap";
devices = mkOption {
type = types.attrsOf (
types.submodule (
{ name, ... }:
{
type = types.attrsOf (types.submodule ({name, ...}: {
options = {
device_name = mkOption {
type = types.str;
@ -38,16 +33,11 @@ with lib;
default = name;
};
remap = mkOption {
type = types.listOf (
types.submodule (
{ ... }:
{
options.input = mkOption { type = types.listOf types.str; };
options.output = mkOption { type = types.listOf types.str; };
}
)
);
default = [ ];
type = types.listOf (types.submodule ({...}: {
options.input = mkOption {type = types.listOf types.str;};
options.output = mkOption {type = types.listOf types.str;};
}));
default = [];
};
swapKeys = mkOption {
description = "Lists with two keys to be swapped on the keyboard layout.";
@ -55,79 +45,62 @@ with lib;
# verify that each key swapping list contains two elements
types.addCheck (types.listOf types.str) (v: builtins.length v == 2)
);
default = [ ];
default = [];
};
dual_role = mkOption {
type = types.listOf (
types.submodule (
{ ... }:
{
options.input = mkOption { type = types.str; };
options.hold = mkOption { type = types.listOf types.str; };
options.tap = mkOption { type = types.listOf types.str; };
}
)
);
default = [ ];
type = types.listOf (types.submodule ({...}: {
options.input = mkOption {type = types.str;};
options.hold = mkOption {type = types.listOf types.str;};
options.tap = mkOption {type = types.listOf types.str;};
}));
default = [];
};
};
}
)
);
}));
};
};
config = mkIf cfg.enable (
with builtins;
let
devs = map (
{
with builtins; let
devs = map ({
device_name,
remap,
swapKeys,
dual_role,
}:
{
}: {
inherit device_name dual_role;
# expand swapKeys to normal remaps
remap = concatLists [
remap
(lib.lists.flatten (
map (keys: [
(lib.lists.flatten (map (keys: [
{
input = [ (head keys) ];
output = [ (lib.lists.last keys) ];
input = [(head keys)];
output = [(lib.lists.last keys)];
}
{
input = [ (lib.lists.last keys) ];
output = [ (head keys) ];
input = [(lib.lists.last keys)];
output = [(head keys)];
}
]) swapKeys
))
])
swapKeys))
];
}
) (attrValues cfg.devices);
in
{
}) (attrValues cfg.devices);
in {
# generate numbered systemd services for each device to be remapped
# https://github.com/wez/evremap/issues/17
systemd.services = listToAttrs (
genList (i: {
systemd.services = listToAttrs (genList (i: {
name = "evremap${toString i}";
value =
let
value = let
cfgFile = toml.generate "remaps-${toString i}.toml" (elemAt devs i);
in
{
wantedBy = [ "multi-user.target" ];
in {
wantedBy = ["multi-user.target"];
serviceConfig.ExecStart = "-${evremap}/bin/evremap remap ${cfgFile}";
unitConfig = {
Restart = "on-failure";
};
};
}) (length devs)
);
environment.systemPackages = [ evremap ];
}) (length devs));
environment.systemPackages = [evremap];
}
);
}
}

View file

@ -4,22 +4,18 @@
config,
lib,
...
}:
let
}: let
cfg = config.jade.desktop.media;
in
with lib;
{
with lib; {
imports = [
./obs.nix
./fonts.nix
];
options.jade.desktop.media.videoEditing = mkEnableOption "Enable Video editing software";
config = {
home-manager.users.jade =
{ pkgs, ... }:
{
imports = [ ./typst.nix ];
home-manager.users.jade = {pkgs, ...}: {
imports = [./typst.nix];
home.packages = with pkgs; [
# creative software basics
pastel
@ -38,7 +34,7 @@ with lib;
imagemagick
ffmpeg_7-full
libreoffice
onlyoffice-bin_latest
# viewers
pkgs-stable.font-manager
@ -57,4 +53,4 @@ with lib;
];
};
};
}
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
nixpkgs.config.packageOverrides = pkgs: {
google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: {
src = pkgs.fetchFromGitHub {
@ -35,16 +34,14 @@
fontDir.enable = true;
};
home-manager.users.jade =
{ ... }:
{
home-manager.users.jade = {...}: {
fonts.fontconfig = {
enable = true;
defaultFonts = {
emoji = [ ];
monospace = [ ];
sansSerif = [ "Atkinson Hyperlegible" ];
serif = [ ];
emoji = [];
monospace = [];
sansSerif = ["Atkinson Hyperlegible"];
serif = [];
};
};
};

View file

@ -3,12 +3,10 @@
lib,
pkgs,
...
}:
let
}: let
cfg = config.jade.desktop.media.obs;
in
with lib;
{
with lib; {
options.jade.desktop.media.obs = mkEnableOption "Enable OBS";
config = mkIf cfg {
@ -35,4 +33,4 @@ with lib;
'';
};
};
}
}

View file

@ -2,15 +2,14 @@
pkgs,
typst-within,
...
}:
let
}: let
packages = {
typst-configs = pkgs.fetchFromGitea {
domain = "forge.katzen.cafe";
owner = "schrottkatze";
repo = "typst-configs";
rev = "9a5bd5256ace2a56de51b89793f191b4eecce1dc"; # :REV:- rev = "%REV%";-:#
sha256 = "sha256-E+5fJULNxM0XcbimuENqIJC24ZwPRMSHnG97ncBtEGw="; # :SHA:- sha256 = "%SHA%";-:#
rev = "9a5bd5256ace2a56de51b89793f191b4eecce1dc"; #:REV:- rev = "%REV%";-:#
sha256 = "sha256-E+5fJULNxM0XcbimuENqIJC24ZwPRMSHnG97ncBtEGw="; #:SHA:- sha256 = "%SHA%";-:#
};
flow = pkgs.fetchFromGitHub {
owner = "MultisampledNight";
@ -20,8 +19,7 @@ let
};
};
mkTypstPath = name: ".local/share/typst/packages/local/${name}/0.1.0";
in
{
in {
home.file = {
typst-configs = {
target = mkTypstPath "typst-configs";

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
imports = [
./firewall.nix
./hosts.nix
@ -11,9 +10,7 @@
systemd.services."NetworkManager-wait-online".enable = false;
services.mullvad-vpn.enable = true;
home-manager.users.jade =
{ pkgs, ... }:
{
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
networkmanagerapplet
mullvad-vpn

View file

@ -1,13 +1,10 @@
{ pkgs, ... }:
let
addNuShebang =
path:
{pkgs, ...}: let
addNuShebang = path:
builtins.concatStringsSep "\n\n" [
"#!${pkgs.nushell}/bin/nu"
(builtins.readFile path)
];
in
{
in {
networking.networkmanager.dispatcherScripts = [
{
type = "basic";
@ -15,15 +12,16 @@ in
}
];
environment.etc =
with builtins;
(listToAttrs (
environment.etc = with builtins; (
listToAttrs (
map (v: {
name = "networkhooks/${v}";
value = {
text = addNuShebang ./hooks/${v};
mode = "0755";
};
}) (attrNames (readDir ./hooks))
));
})
(attrNames (readDir ./hooks))
)
);
}

View file

@ -1,19 +1,13 @@
# Thanks @ kloenk (@kloenk@catcatnya.com) for making this for me at MRMCD 2024 :33
{ pkgs-stable, ... }:
let
{pkgs-stable, ...}: let
caDir = "/var/lib/easyroam";
uuid = "821ad781-76a3-447f-a2e8-c7f18a1df3bc";
in
{
in {
systemd.services.easyroam = {
requires = [ "NetworkManager.service" ];
after = [ "NetworkManager.service" ];
requiredBy = [ "network-online.target" ];
path = with pkgs-stable; [
networkmanager
openssl
gnused
];
requires = ["NetworkManager.service"];
after = ["NetworkManager.service"];
requiredBy = ["network-online.target"];
path = with pkgs-stable; [networkmanager openssl gnused];
script = ''
set -x
openssl pkcs12 -password pass: -in ${caDir}/my_easyroam_cert.p12 -legacy -nokeys | openssl x509 > ${caDir}/easyroam_client_cert.pem
@ -50,7 +44,7 @@ in
addr-gen-mode = "default";
method = "auto";
};
proxy = { };
proxy = {};
wifi = {
mode = "infrastructure";
ssid = "eduroam";

View file

@ -3,8 +3,7 @@
lib,
pkgs,
...
}:
{
}: {
config = {
networking = {
firewall = {

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
networking.hosts = {
"127.0.0.1" = [
"www.tiktok.com"

View file

@ -2,8 +2,7 @@
rs-programs,
niri,
...
}:
{
}: {
nix = {
extraOptions = ''
experimental-features = nix-command flakes
@ -25,9 +24,6 @@
"nodejs-16.20.0"
];
};
overlays = [
rs-programs
niri.overlays.niri
];
overlays = [rs-programs niri.overlays.niri];
};
}

View file

@ -1,8 +1,5 @@
{ ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
{...}: {
home-manager.users.jade = {pkgs, ...}: {
programs.btop = {
enable = true;
settings = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./helix.nix
./nu.nix
@ -12,9 +11,7 @@
];
programs.mosh.enable = true;
programs.bat.enable = true;
home-manager.users.jade =
{ ... }:
{
home-manager.users.jade = {...}: {
programs.carapace.enable = true;
programs.direnv.enable = true;
};

View file

@ -3,15 +3,12 @@
lib,
pkgs,
...
}:
{
home-manager.users.jade =
{
}: {
home-manager.users.jade = {
pkgs,
config,
...
}:
{
}: {
programs.git = {
enable = true;
userName = "Schrottkatze";

View file

@ -1,12 +1,9 @@
{ config, ... }:
{
home-manager.users.jade =
{
{config, ...}: {
home-manager.users.jade = {
pkgs,
pkgs-stable,
...
}:
{
}: {
home = {
sessionVariables.EDITOR = "hx";
packages = [
@ -47,10 +44,7 @@
display-inlay-hints = true;
};
popup-border = "popup";
shell = [
"nu"
"-c"
];
shell = ["nu" "-c"];
statusline.left = [
"mode"
"spinner"
@ -135,18 +129,15 @@
language-server = {
"nu-builtin-lsp" = {
command = "${config.users.defaultUserShell}/bin/nu";
args = [ "--lsp" ];
args = ["--lsp"];
};
"rust-analyzer" = {
config = {
check.command = "check";
completion.snippets.custom = {
"pub fn" = {
prefix = [
"pfn"
"pubfn"
];
postfix = [ "pfn" ];
prefix = ["pfn" "pubfn"];
postfix = ["pfn"];
body = [
"pub fn $\{receiver\}() {"
"\\t$1"
@ -179,11 +170,11 @@
};
"emmet-language-server" = {
command = "emmet-language-server";
args = [ "--stdio" ];
args = ["--stdio"];
};
"psalm" = {
command = "psalm";
args = [ "--language-server" ];
args = ["--language-server"];
};
"tinymist" = {
config = {
@ -195,27 +186,24 @@
language = [
{
name = "nu";
language-servers = [ "nu-builtin-lsp" ];
language-servers = ["nu-builtin-lsp"];
}
{
name = "php";
language-servers = [ "psalm" ];
language-servers = ["psalm"];
}
{
name = "nix";
formatter = {
command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
args = [ "--quiet" ];
command = "${pkgs.alejandra}/bin/alejandra";
args = ["--quiet"];
};
auto-format = true;
}
{
name = "html";
roots = [ ".git" ];
language-servers = [
"vscode-html-language-server"
"emmet-language-server"
];
roots = [".git"];
language-servers = ["vscode-html-language-server" "emmet-language-server"];
auto-format = false;
}
];

View file

@ -1,29 +1,22 @@
{ ... }:
{
home-manager.users.jade =
{
{...}: {
home-manager.users.jade = {
pkgs,
lib,
...
}:
{
}: {
home = {
packages = [ pkgs.mprocs ];
packages = [pkgs.mprocs];
};
xdg.configFile."mprocs/mprocs.yaml" = {
text = builtins.toJSON {
proc_list_width = 15;
keymap_procs = {
"<l>" = {
c = "toggle-focus";
};
"<l>" = {c = "toggle-focus";};
};
keymap_term = {
"<C-a>" = null;
# Ctrl-m so it doesnt overlap with zellij or helix
"<C-M>" = {
c = "toggle-focus";
};
"<C-M>" = {c = "toggle-focus";};
};
};
};

View file

@ -1,8 +1,5 @@
{ config, ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
{config, ...}: {
home-manager.users.jade = {pkgs, ...}: {
# Needed for nu_scripts background_task
services.pueue = {
enable = true;
@ -37,7 +34,8 @@
source ${./nu/aliases.nu};
nu ${./nu/shell-startup.nu};
'';
extraEnv = '''';
extraEnv = ''
'';
};
# programs.starship.enableNushellIntegration = true;
programs.carapace.enableNushellIntegration = true;

View file

@ -1,8 +1,5 @@
{ ... }:
{
home-manager.users.jade =
{ pkgs, ... }:
{
{...}: {
home-manager.users.jade = {pkgs, ...}: {
programs.starship = {
enable = true;
enableNushellIntegration = false;

View file

@ -1,7 +1,6 @@
{ ... }:
{
{...}: {
nixpkgs.config.packageOverrides = pkgs: {
sudo = pkgs.sudo.override { withInsults = true; };
sudo = pkgs.sudo.override {withInsults = true;};
};
security.sudo.extraConfig = "Defaults insults";
}

View file

@ -1,10 +1,13 @@
{ config, ... }:
let
generateOptions =
with builtins;
(opts: toString (attrValues (mapAttrs (name: value: "--${name} ${toString value}") opts)));
in
{
{config, ...}: let
generateOptions = with builtins; (
opts:
toString (
attrValues (
mapAttrs (name: value: "--${name} ${toString value}") opts
)
)
);
in {
# TODO: global colorscheme vars for everything
console.colors = [
"282828"