formatting, big time
This commit is contained in:
parent
38d96c9f52
commit
509320c115
64 changed files with 1293 additions and 990 deletions
17
common.nix
17
common.nix
|
@ -10,11 +10,13 @@
|
|||
...
|
||||
}:
|
||||
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
|
||||
|
||||
|
@ -105,7 +107,16 @@ 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"
|
||||
|
|
42
flake.nix
42
flake.nix
|
@ -24,7 +24,8 @@
|
|||
};
|
||||
};
|
||||
|
||||
outputs = {
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-stable,
|
||||
|
@ -38,12 +39,14 @@
|
|||
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
|
||||
];
|
||||
|
@ -55,7 +58,8 @@
|
|||
src = crane-lib.cleanCargoSource (crane-lib.path ./.);
|
||||
};
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style;
|
||||
devShells."x86_64-linux".default = pkgs.mkShell {
|
||||
buildInputs = [
|
||||
|
@ -67,7 +71,14 @@
|
|||
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 = [
|
||||
|
@ -84,11 +95,13 @@
|
|||
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}";
|
||||
};
|
||||
|
@ -97,7 +110,14 @@
|
|||
};
|
||||
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 = [
|
||||
|
@ -114,11 +134,13 @@
|
|||
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";
|
||||
};
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# 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"
|
||||
|
@ -27,19 +28,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;
|
||||
|
||||
|
|
|
@ -7,35 +7,53 @@
|
|||
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";
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./input.nix
|
||||
./graphics.nix
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
environment.variables = {
|
||||
VDPAU_DRIVER = lib.mkIf config.hardware.graphics.enable (lib.mkDefault "va_gl");
|
||||
};
|
||||
|
|
|
@ -1,20 +1,29 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
# 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;
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
pkgs,
|
||||
pkgs-stable,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../common.nix
|
||||
|
@ -35,7 +36,7 @@
|
|||
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
|
||||
binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
};
|
||||
|
||||
networking.hostName = "monosodium-glutamate-g";
|
||||
|
@ -79,7 +80,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?
|
||||
}
|
||||
|
|
|
@ -7,37 +7,49 @@
|
|||
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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./graphics.nix
|
||||
];
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.nvtopPackages.amd
|
||||
pkgs.radeontop
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./shell
|
||||
./desktop
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; {
|
||||
with lib;
|
||||
{
|
||||
imports = [
|
||||
./gaming.nix
|
||||
./syncthing.nix
|
||||
|
@ -28,7 +29,9 @@ with lib; {
|
|||
notifications.test = true;
|
||||
};
|
||||
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
home-manager.users.jade =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.ssh = {
|
||||
controlMaster = "yes";
|
||||
};
|
||||
|
|
|
@ -2,16 +2,20 @@
|
|||
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
|
||||
|
@ -21,4 +25,4 @@ in
|
|||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,20 +3,24 @@
|
|||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,19 +3,23 @@
|
|||
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 = {
|
||||
|
@ -37,9 +41,9 @@ in
|
|||
};
|
||||
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 = [ ];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,12 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
cfg = config.jade.desktop.syncthing;
|
||||
in
|
||||
with lib; {
|
||||
with lib;
|
||||
{
|
||||
options.jade.desktop.syncthing = {
|
||||
enable = mkEnableOption "Enable syncing via syncthing";
|
||||
};
|
||||
|
@ -18,4 +20,4 @@ in
|
|||
configDir = "/home/${user}/Documents/.config/syncthing";
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs = {
|
||||
noisetorch.enable = true;
|
||||
};
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./audio.nix
|
||||
./home
|
||||
|
|
|
@ -3,10 +3,12 @@
|
|||
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 {
|
||||
|
@ -30,4 +32,4 @@ in
|
|||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.file = {
|
||||
".tridactylrc" = {
|
||||
text = ''
|
||||
|
@ -16,7 +17,9 @@
|
|||
};
|
||||
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"
|
||||
|
@ -63,7 +66,7 @@
|
|||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["pkgs"];
|
||||
definedAliases = [ "pkgs" ];
|
||||
};
|
||||
"Nix Options" = {
|
||||
urls = [
|
||||
|
@ -78,7 +81,7 @@
|
|||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["opts"];
|
||||
definedAliases = [ "opts" ];
|
||||
};
|
||||
"Home manager Options" = {
|
||||
urls = [
|
||||
|
@ -97,7 +100,7 @@
|
|||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["hm"];
|
||||
definedAliases = [ "hm" ];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
urls = [
|
||||
|
@ -112,7 +115,7 @@
|
|||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = ["nxwk"];
|
||||
definedAliases = [ "nxwk" ];
|
||||
};
|
||||
"Noogle" = {
|
||||
urls = [
|
||||
|
@ -126,7 +129,7 @@
|
|||
];
|
||||
}
|
||||
];
|
||||
definedAliases = ["ngl"];
|
||||
definedAliases = [ "ngl" ];
|
||||
};
|
||||
"lib.rs" = {
|
||||
urls = [
|
||||
|
@ -141,7 +144,7 @@
|
|||
}
|
||||
];
|
||||
icon = "https://lib.rs/favicon.png";
|
||||
definedAliases = ["libs"];
|
||||
definedAliases = [ "libs" ];
|
||||
};
|
||||
"rust docs" = {
|
||||
urls = [
|
||||
|
@ -156,7 +159,7 @@
|
|||
}
|
||||
];
|
||||
icon = "https://docs.rs/-/static/favicon.ico";
|
||||
definedAliases = ["docs"];
|
||||
definedAliases = [ "docs" ];
|
||||
};
|
||||
"rust docs direct open" = {
|
||||
urls = [
|
||||
|
@ -164,7 +167,10 @@
|
|||
template = "https://docs.rs/{searchTerms}";
|
||||
}
|
||||
];
|
||||
definedAliases = ["doc" "docd"];
|
||||
definedAliases = [
|
||||
"doc"
|
||||
"docd"
|
||||
];
|
||||
};
|
||||
"rust std docs" = {
|
||||
urls = [
|
||||
|
@ -179,7 +185,7 @@
|
|||
}
|
||||
];
|
||||
icon = "https://doc.rust-lang.org/favicon.ico";
|
||||
definedAliases = ["std"];
|
||||
definedAliases = [ "std" ];
|
||||
};
|
||||
"MDN" = {
|
||||
urls = [
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.niri.enable = true;
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
home-manager.users.jade =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./notifications.nix
|
||||
./terminal.nix
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ ... }: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.eww = {
|
||||
enable = true;
|
||||
configDir = ./configDir;
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
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";
|
||||
|
@ -21,9 +22,10 @@
|
|||
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 ];
|
||||
}
|
||||
|
|
|
@ -1,50 +1,91 @@
|
|||
{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;
|
||||
|
@ -65,26 +106,46 @@
|
|||
"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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./xwayland-sat.nix
|
||||
./screenshot.nix
|
||||
|
@ -14,7 +15,14 @@
|
|||
};
|
||||
|
||||
spawn-at-startup = [
|
||||
{command = ["eww" "open-many" "topBar" "bottomBar"];}
|
||||
{
|
||||
command = [
|
||||
"eww"
|
||||
"open-many"
|
||||
"topBar"
|
||||
"bottomBar"
|
||||
];
|
||||
}
|
||||
{
|
||||
command = [
|
||||
"${pkgs.swaybg}/bin/swaybg"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.niri.settings.input = {
|
||||
keyboard = {
|
||||
xkb = {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.niri.settings = {
|
||||
layer-rules = [
|
||||
{
|
||||
matches = [
|
||||
{namespace = "notifications";}
|
||||
{ namespace = "notifications"; }
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
|
@ -11,12 +12,14 @@
|
|||
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";
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.gamescope];
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.gamescope ];
|
||||
programs.niri.settings = {
|
||||
window-rules = [
|
||||
{
|
||||
|
@ -48,7 +49,11 @@
|
|||
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;
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{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 = [ ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.niri.settings = {
|
||||
prefer-no-csd = true;
|
||||
|
||||
|
@ -38,7 +39,7 @@
|
|||
inactive.color = "#3c3836";
|
||||
gap = 2;
|
||||
width = 5;
|
||||
corner-radius= 3;
|
||||
corner-radius = 3;
|
||||
position = "left";
|
||||
gaps-between-tabs = 0;
|
||||
};
|
||||
|
@ -46,9 +47,11 @@
|
|||
|
||||
window-rules = [
|
||||
{
|
||||
matches = [{
|
||||
matches = [
|
||||
{
|
||||
is-floating = true;
|
||||
}];
|
||||
}
|
||||
];
|
||||
baba-is-float = true;
|
||||
shadow = {
|
||||
offset.y = 0;
|
||||
|
@ -60,13 +63,18 @@
|
|||
};
|
||||
}
|
||||
{
|
||||
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;
|
||||
}];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{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";
|
||||
};
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.libnotify
|
||||
];
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# unsure whether i still need swayidle, will keep it in and might remove after further testing
|
||||
|
||||
services.swayidle = {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font.size = 12;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
time.timeZone = "Europe/Berlin";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "de_DE.UTF-8";
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix = {
|
||||
enable = true;
|
||||
polarity = "dark";
|
||||
|
@ -25,10 +26,12 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
home-manager.users.jade =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
stylix.targets = {
|
||||
firefox = {
|
||||
profileNames = ["jade"];
|
||||
profileNames = [ "jade" ];
|
||||
};
|
||||
helix.enable = false;
|
||||
btop.enable = false;
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
services.tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./spacenav.nix
|
||||
./wacom.nix
|
||||
|
|
|
@ -3,16 +3,18 @@
|
|||
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;
|
||||
|
@ -32,4 +34,4 @@ in
|
|||
|
||||
programs.i3lock.u2fSupport = true;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
spacenavd
|
||||
libspnav
|
||||
];
|
||||
systemd.services.spacenavd = {
|
||||
wantedBy = ["graphical.target"];
|
||||
wantedBy = [ "graphical.target" ];
|
||||
script = "${pkgs.spacenavd}/bin/spacenavd -d";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./evremap.nix
|
||||
];
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
cfg = config.jade.input.remapping;
|
||||
evremap = pkgs.rustPlatform.buildRustPackage {
|
||||
pname = "evremap";
|
||||
|
@ -16,16 +17,20 @@
|
|||
};
|
||||
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;
|
||||
|
@ -33,11 +38,16 @@ in
|
|||
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.";
|
||||
|
@ -45,62 +55,79 @@ in
|
|||
# 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 ];
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,18 +4,22 @@
|
|||
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
|
||||
|
@ -53,4 +57,4 @@ in
|
|||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
google-fonts = pkgs.google-fonts.overrideAttrs (oldAttrs: {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
|
@ -34,14 +35,16 @@
|
|||
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 = [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -3,10 +3,12 @@
|
|||
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 {
|
||||
|
@ -33,4 +35,4 @@ in
|
|||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
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";
|
||||
|
@ -19,7 +20,8 @@
|
|||
};
|
||||
};
|
||||
mkTypstPath = name: ".local/share/typst/packages/local/${name}/0.1.0";
|
||||
in {
|
||||
in
|
||||
{
|
||||
home.file = {
|
||||
typst-configs = {
|
||||
target = mkTypstPath "typst-configs";
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./firewall.nix
|
||||
./hosts.nix
|
||||
|
@ -10,7 +11,9 @@
|
|||
|
||||
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
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
{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";
|
||||
|
@ -12,16 +15,15 @@ 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))
|
||||
));
|
||||
}
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
# 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
|
||||
|
@ -44,7 +50,7 @@ in {
|
|||
addr-gen-mode = "default";
|
||||
method = "auto";
|
||||
};
|
||||
proxy = {};
|
||||
proxy = { };
|
||||
wifi = {
|
||||
mode = "infrastructure";
|
||||
ssid = "eduroam";
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
config = {
|
||||
networking = {
|
||||
firewall = {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
networking.hosts = {
|
||||
"127.0.0.1" = [
|
||||
"www.tiktok.com"
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
rs-programs,
|
||||
niri,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
nix = {
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
|
@ -24,6 +25,9 @@
|
|||
"nodejs-16.20.0"
|
||||
];
|
||||
};
|
||||
overlays = [rs-programs niri.overlays.niri];
|
||||
overlays = [
|
||||
rs-programs
|
||||
niri.overlays.niri
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{...}: {
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
{ ... }:
|
||||
{
|
||||
home-manager.users.jade =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{pkgs, ...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./helix.nix
|
||||
./nu.nix
|
||||
|
@ -11,7 +12,9 @@
|
|||
];
|
||||
programs.mosh.enable = true;
|
||||
programs.bat.enable = true;
|
||||
home-manager.users.jade = {...}: {
|
||||
home-manager.users.jade =
|
||||
{ ... }:
|
||||
{
|
||||
programs.carapace.enable = true;
|
||||
programs.direnv.enable = true;
|
||||
};
|
||||
|
|
|
@ -3,12 +3,15 @@
|
|||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home-manager.users.jade = {
|
||||
}:
|
||||
{
|
||||
home-manager.users.jade =
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Schrottkatze";
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
{config, ...}: {
|
||||
home-manager.users.jade = {
|
||||
{ config, ... }:
|
||||
{
|
||||
home-manager.users.jade =
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
home = {
|
||||
sessionVariables.EDITOR = "hx";
|
||||
packages = [
|
||||
|
@ -44,7 +47,10 @@
|
|||
display-inlay-hints = true;
|
||||
};
|
||||
popup-border = "popup";
|
||||
shell = ["nu" "-c"];
|
||||
shell = [
|
||||
"nu"
|
||||
"-c"
|
||||
];
|
||||
statusline.left = [
|
||||
"mode"
|
||||
"spinner"
|
||||
|
@ -129,15 +135,18 @@
|
|||
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"
|
||||
|
@ -170,11 +179,11 @@
|
|||
};
|
||||
"emmet-language-server" = {
|
||||
command = "emmet-language-server";
|
||||
args = ["--stdio"];
|
||||
args = [ "--stdio" ];
|
||||
};
|
||||
"psalm" = {
|
||||
command = "psalm";
|
||||
args = ["--language-server"];
|
||||
args = [ "--language-server" ];
|
||||
};
|
||||
"tinymist" = {
|
||||
config = {
|
||||
|
@ -186,24 +195,27 @@
|
|||
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.alejandra}/bin/alejandra";
|
||||
args = ["--quiet"];
|
||||
command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
|
||||
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;
|
||||
}
|
||||
];
|
||||
|
|
|
@ -1,22 +1,29 @@
|
|||
{...}: {
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{config, ...}: {
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
{ config, ... }:
|
||||
{
|
||||
home-manager.users.jade =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Needed for nu_scripts background_task
|
||||
services.pueue = {
|
||||
enable = true;
|
||||
|
@ -34,8 +37,7 @@
|
|||
source ${./nu/aliases.nu};
|
||||
nu ${./nu/shell-startup.nu};
|
||||
'';
|
||||
extraEnv = ''
|
||||
'';
|
||||
extraEnv = '''';
|
||||
};
|
||||
# programs.starship.enableNushellIntegration = true;
|
||||
programs.carapace.enableNushellIntegration = true;
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{...}: {
|
||||
home-manager.users.jade = {pkgs, ...}: {
|
||||
{ ... }:
|
||||
{
|
||||
home-manager.users.jade =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableNushellIntegration = false;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{...}: {
|
||||
{ ... }:
|
||||
{
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
sudo = pkgs.sudo.override {withInsults = true;};
|
||||
sudo = pkgs.sudo.override { withInsults = true; };
|
||||
};
|
||||
security.sudo.extraConfig = "Defaults insults";
|
||||
}
|
||||
|
|
|
@ -1,13 +1,10 @@
|
|||
{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"
|
||||
|
|
Loading…
Add table
Reference in a new issue