installed and ran alejandra as formatter

This commit is contained in:
Schrottkatze 2023-11-26 21:26:49 +01:00
parent 49452e89db
commit 8a1314b58f
47 changed files with 1362 additions and 1113 deletions

View file

@ -1,12 +1,14 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, lib, ... }:
with lib;
with builtins;
{ {
config,
pkgs,
lib,
...
}:
with lib;
with builtins; {
nix = { nix = {
package = pkgs.nixVersions.stable; package = pkgs.nixVersions.stable;
extraOptions = '' extraOptions = ''
@ -29,11 +31,45 @@ with builtins;
systemPackages = with pkgs; [ systemPackages = with pkgs; [
htmlq htmlq
wget git neofetch pciutils zip unzip gnutar iw btop nodejs jdk8 jdk11 wget
jdk libsecret gh nix-prefetch-scripts fzf glab ripgrep git
sl lolcat appimage-run git-crypt file whois p7zip file nmap cmatrix tree neofetch
socat smartmontools mprocs pciutils
dig aria2 usbutils numbat zip
unzip
gnutar
iw
btop
nodejs
jdk8
jdk11
jdk
libsecret
gh
nix-prefetch-scripts
fzf
glab
ripgrep
sl
lolcat
appimage-run
git-crypt
file
whois
p7zip
file
nmap
cmatrix
tree
socat
smartmontools
mprocs
dig
aria2
usbutils
numbat
alejandra
]; ];
}; };
@ -82,12 +118,16 @@ with builtins;
time.timeZone = "Europe/Berlin"; time.timeZone = "Europe/Berlin";
home-manager.users.jade = { nixosConfig, pkgs, ... }: { home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone; home.sessionVariables.TZ = nixosConfig.time.timeZone;
}; };
nixpkgs.config.packageOverrides = pkgs: { nixpkgs.config.packageOverrides = pkgs: {
sudo = pkgs.sudo.override { withInsults = true; }; sudo = pkgs.sudo.override {withInsults = true;};
}; };
security.sudo.extraConfig = "Defaults insults"; security.sudo.extraConfig = "Defaults insults";
@ -95,7 +135,7 @@ with builtins;
hardware = { hardware = {
opengl.enable = true; opengl.enable = true;
uinput.enable = true; uinput.enable = true;
bluetooth.enable = true; bluetooth.enable = true;
keyboard.uhk.enable = true; keyboard.uhk.enable = true;
}; };
@ -104,7 +144,7 @@ with builtins;
users.users.jade = { users.users.jade = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark" ]; extraGroups = ["wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark"];
packages = [ packages = [
pkgs.marksman pkgs.marksman
]; ];
@ -117,4 +157,3 @@ with builtins;
users.defaultUserShell = pkgs.nushellFull; users.defaultUserShell = pkgs.nushellFull;
} }

View file

@ -24,7 +24,15 @@
gumseite.url = "git+https://gitlab.com/schrottkatze/gum-schulsachen.git"; gumseite.url = "git+https://gitlab.com/schrottkatze/gum-schulsachen.git";
}; };
outputs = { self, nixpkgs, nixpkgs-stable, home-manager, nixos-hardware, mac-brcm-fw, ... }@inputs: { outputs = {
self,
nixpkgs,
nixpkgs-stable,
home-manager,
nixos-hardware,
mac-brcm-fw,
...
} @ inputs: {
nixosConfigurations = { nixosConfigurations = {
monosodium-glutamate-g = nixpkgs.lib.nixosSystem { monosodium-glutamate-g = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
@ -33,10 +41,15 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./hosts/monosodium-glutamate-g/configuration.nix ./hosts/monosodium-glutamate-g/configuration.nix
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: { home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone; home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "${nixosConfig.system.stateVersion}"; home.stateVersion = "${nixosConfig.system.stateVersion}";
}; };
@ -50,10 +63,15 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./hosts/catbook-j/configuration.nix ./hosts/catbook-j/configuration.nix
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: { home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone; home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "22.11"; home.stateVersion = "22.11";
}; };
@ -68,10 +86,15 @@
modules = [ modules = [
"${mac-brcm-fw}" "${mac-brcm-fw}"
./hosts/potatobook-g/configuration.nix ./hosts/potatobook-g/configuration.nix
home-manager.nixosModules.home-manager { home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: { home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone; home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "${nixosConfig.system.stateVersion}"; home.stateVersion = "${nixosConfig.system.stateVersion}";
}; };

View file

@ -1,14 +1,18 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{
{ config, pkgs, lib, ... }: { config,
imports = pkgs,
[ # Include the results of the hardware scan. lib,
./hardware-configuration.nix ...
../../common.nix }: {
../../modules imports = [
]; # Include the results of the hardware scan.
./hardware-configuration.nix
../../common.nix
../../modules
];
jade = { jade = {
flatpak.enable = true; flatpak.enable = true;
desktop = { desktop = {
@ -33,22 +37,22 @@
hardware.usb-modeswitch.enable = true; hardware.usb-modeswitch.enable = true;
systemd.services."ModemManager".enable = true; systemd.services."ModemManager".enable = true;
systemd.services."ModemManager".wants = [ "NetworkManager.service" ]; systemd.services."ModemManager".wants = ["NetworkManager.service"];
systemd.services."ModemManager".wantedBy = [ "multi-user.target" ]; systemd.services."ModemManager".wantedBy = ["multi-user.target"];
programs.wireshark.enable = true; programs.wireshark.enable = true;
boot.resumeDevice = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; 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"];
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
services.blueman.enable = true; services.blueman.enable = true;
services.xserver.libinput.touchpad.tapping = false; services.xserver.libinput.touchpad.tapping = false;
environment.systemPackages = [ pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml pkgs.mqttui pkgs.mobile-broadband-provider-info pkgs.modem-manager-gui pkgs.wireshark]; environment.systemPackages = [pkgs.vivaldi pkgs.vivaldi-ffmpeg-codecs pkgs.plantuml pkgs.mqttui pkgs.mobile-broadband-provider-info pkgs.modem-manager-gui pkgs.wireshark];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -78,11 +82,11 @@
# }; # };
boot.kernelPackages = pkgs.linuxPackages_zen; boot.kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [ # boot.kernelPatches = [
# { # {
# name = "fomx"; # name = "fomx";
# patch = ../../other/0001-fomx.patch; # patch = ../../other/0001-fomx.patch;
# } # }
# ]; # ];
services.xserver.displayManager.autoLogin = { services.xserver.displayManager.autoLogin = {
@ -119,5 +123,4 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment? system.stateVersion = "23.05"; # Did you read the comment?
} }

View file

@ -1,47 +1,53 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@" "compress=zstd:3" "noatime" ]; options = ["subvol=@" "compress=zstd:3" "noatime"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@home" "compress=zstd:3" ]; options = ["subvol=@home" "compress=zstd:3"];
}; };
fileSystems."/swap" = fileSystems."/swap" = {
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694"; device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs"; 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" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/C6CA-5DE8"; device = "/dev/disk/by-uuid/C6CA-5DE8";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{ swapDevices = [
device = "/swap/swapfile"; {
size = (1024 * 24); device = "/swap/swapfile";
}]; size = 1024 * 24;
}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,13 +1,11 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{pkgs, ...}: {
{ pkgs, ... }:
{
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../common.nix ../../common.nix
../../modules ../../modules
]; ];
# nixpkgs = { # nixpkgs = {
@ -44,35 +42,32 @@
}; };
boot = { boot = {
loader = { loader = {
# Use the systemd-boot EFI boot loader.
# Use the systemd-boot EFI boot loader. systemd-boot.enable = true;
systemd-boot.enable = true; efi.canTouchEfiVariables = true;
efi.canTouchEfiVariables = true;
}; };
# latest linux kernel # latest linux kernel
#boot.kernelPackages = pkgs.linuxPackages_latest; #boot.kernelPackages = pkgs.linuxPackages_latest;
#boot.kernelPackages = pkgs.linux_zen_xeniafied; #boot.kernelPackages = pkgs.linux_zen_xeniafied;
kernelPackages = pkgs.linuxPackages_zen; kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [ # boot.kernelPatches = [
# { # {
# name = "fomx"; # name = "fomx";
# patch = ../other/0001-fomx.patch; # patch = ../other/0001-fomx.patch;
# } # }
# ]; # ];
binfmt.emulatedSystems = [ "aarch64-linux" ]; binfmt.emulatedSystems = ["aarch64-linux"];
}; };
networking.hostName = "monosodium-glutamate-g"; networking.hostName = "monosodium-glutamate-g";
services = { services = {
# monitor control # monitor control
ddccontrol.enable = true; ddccontrol.enable = true;
xserver = { xserver = {
layout = "us";
layout = "us"; xkbVariant = "altgr-intl";
xkbVariant = "altgr-intl"; enable = true;
enable = true;
}; };
openssh.settings.PermitRootLogin = "without-password"; openssh.settings.PermitRootLogin = "without-password";
@ -82,7 +77,6 @@
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
}; };
hardware = { hardware = {
bluetooth.enable = true; bluetooth.enable = true;
keyboard.uhk.enable = true; keyboard.uhk.enable = true;
enableRedistributableFirmware = true; enableRedistributableFirmware = true;
@ -96,10 +90,11 @@
wireshark wireshark
awesomebump awesomebump
zenstates zenmonitor zenstates
zenmonitor
nvtop-amd nvtop-amd
radeontop radeontop
rgp rgp
tea tea
blender-hip blender-hip
]; ];
@ -125,7 +120,7 @@
systemd.services = { systemd.services = {
create-swapfile = { create-swapfile = {
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
wantedBy = [ "swap-swapfile.swap" ]; wantedBy = ["swap-swapfile.swap"];
script = '' script = ''
swapfile="/swap/swapfile" swapfile="/swap/swapfile"
if [[ -f "$swapfile" ]]; then if [[ -f "$swapfile" ]]; then
@ -142,6 +137,3 @@
# release channel # release channel
system.stateVersion = "22.05"; # Did you read the comment? system.stateVersion = "22.05"; # Did you read the comment?
} }

View file

@ -1,39 +1,45 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db"; device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@root" "compress=zstd:3" ]; options = ["subvol=@root" "compress=zstd:3"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db"; device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@home" "compress=zstd:3"]; options = ["subvol=@home" "compress=zstd:3"];
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/D63E-18C9"; device = "/dev/disk/by-uuid/D63E-18C9";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{ swapDevices = [
device = "/swap/swapfile"; {
size = (1024 * 64) + (1024 * 8); # 72G device = "/swap/swapfile";
} ]; size = (1024 * 64) + (1024 * 8); # 72G
}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { {pkgs, ...}: {
nix.settings = { nix.settings = {
trusted-substituters = [ trusted-substituters = [
"https://t2linux.cachix.org" "https://t2linux.cachix.org"
@ -8,37 +8,37 @@
]; ];
}; };
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../common.nix ../../common.nix
../../modules ../../modules
#inputs.mms.module #inputs.mms.module
]; ];
#nixpkgs = { #nixpkgs = {
#overlays = [ #overlays = [
#(self: super: { #(self: super: {
#linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { #linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
#structuredExtraConfig = with lib.kernel; { #structuredExtraConfig = with lib.kernel; {
##"FB" = yes; ##"FB" = yes;
##"FRAMEBUFFER_CONSOLE" = yes; ##"FRAMEBUFFER_CONSOLE" = yes;
##"VGA_CONSOLE" = yes; ##"VGA_CONSOLE" = yes;
##"VIDEO_SELECT" = yes; ##"VIDEO_SELECT" = yes;
#LOGO = lib.mkForce yes; #LOGO = lib.mkForce yes;
#LOGO_LINUX_CLUT224 = yes; #LOGO_LINUX_CLUT224 = yes;
#};
#ignoreConfigErrors = true;
#});
#})
#];
#}; #};
#boot.kernelPatches = [ #ignoreConfigErrors = true;
#{ #});
#name = "fomx"; #})
#patch = ../other/0001-fomx.patch; #];
#} #};
#boot.kernelPatches = [
#{
#name = "fomx";
#patch = ../other/0001-fomx.patch;
#}
#]; #];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; boot.binfmt.emulatedSystems = ["aarch64-linux"];
jade = { jade = {
flatpak.enable = true; flatpak.enable = true;
@ -57,9 +57,9 @@
}; };
fileSystems = { fileSystems = {
"/".options = [ "compress=zstd:3" ]; "/".options = ["compress=zstd:3"];
"/home".options = [ "compress=zstd:3" ]; "/home".options = ["compress=zstd:3"];
"/nix".options = [ "compress=zstd:3" "noatime" ]; "/nix".options = ["compress=zstd:3" "noatime"];
#"/swap".options = [ "noatime" ]; #"/swap".options = [ "noatime" ];
}; };
@ -70,9 +70,13 @@
networking.hostName = "potatobook-g"; networking.hostName = "potatobook-g";
services.xserver = { services.xserver = {
resolutions = [ { x = 1920; y = 1200; } ]; resolutions = [
{
x = 1920;
y = 1200;
}
];
# dpi = 180; # dpi = 180;
layout = "us"; layout = "us";
xkbVariant = "altgr-intl"; xkbVariant = "altgr-intl";
@ -95,9 +99,9 @@
hardware.keyboard.uhk.enable = true; hardware.keyboard.uhk.enable = true;
hardware.enableRedistributableFirmware = true; hardware.enableRedistributableFirmware = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
android-tools evremap android-tools
evremap
]; ];
environment.pathsToLink = [ environment.pathsToLink = [
@ -114,7 +118,7 @@
systemd.services."NetworkManager-wait-online".enable = false; systemd.services."NetworkManager-wait-online".enable = false;
# services.pixiecore = # services.pixiecore =
# let # let
# nixpkgs = builtins.getFlake "nixpkgs/nixos-unstable"; # nixpkgs = builtins.getFlake "nixpkgs/nixos-unstable";
# sys = nixpkgs.lib.nixosSystem { # sys = nixpkgs.lib.nixosSystem {
@ -154,7 +158,7 @@
systemd.services = { systemd.services = {
create-swapfile = { create-swapfile = {
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
wantedBy = [ "swap-swapfile.swap" ]; wantedBy = ["swap-swapfile.swap"];
script = '' script = ''
swapfile="/swap/swapfile" swapfile="/swap/swapfile"
if [[ -f "$swapfile" ]]; then if [[ -f "$swapfile" ]]; then
@ -175,5 +179,3 @@
# i rly should put that important big comment back here # i rly should put that important big comment back here
system.stateVersion = "22.11"; # Did you read the comment? system.stateVersion = "22.11"; # Did you read the comment?
} }

View file

@ -1,45 +1,51 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "uas" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "uas" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62"; device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=root" ]; options = ["subvol=root"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62"; device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=home" ]; options = ["subvol=home"];
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62"; device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=nix" ]; options = ["subvol=nix"];
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/5F66-17ED"; device = "/dev/disk/by-uuid/5F66-17ED";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{ swapDevices = [
device = "/swap/swapfile"; {
size = (1024 * 12); # 12GB device = "/swap/swapfile";
}]; size = 1024 * 12; # 12GB
}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,9 +1,11 @@
{config, pkgs, ...}:
{ {
config,
pkgs,
...
}: {
imports = [ imports = [
<nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix> <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>
<nixpkgs/nixos/modules/installer/cd-dvd/channel.nix> <nixpkgs/nixos/modules/installer/cd-dvd/channel.nix>
./configuration.nix ./configuration.nix
]; ];
} }

View file

@ -1,3 +1,3 @@
{ ... }: {} {...}: {}
# dummy # dummy

View file

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

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
config = { config = {
programs = { programs = {
noisetorch.enable = true; noisetorch.enable = true;
@ -15,19 +18,19 @@
}; };
hardware.pulseaudio.enable = pkgs.lib.mkForce false; hardware.pulseaudio.enable = pkgs.lib.mkForce false;
sound.mediaKeys.enable = true; sound.mediaKeys.enable = true;
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
pavucontrol pavucontrol
pulseaudioFull pulseaudioFull
easyeffects easyeffects
cava cava
volumeicon volumeicon
playerctl playerctl
]; ];
xsession.windowManager.i3.config.startup = [ xsession.windowManager.i3.config.startup = [
{ {
command = "pkill volumeicon; volumeicon"; command = "pkill volumeicon; volumeicon";
always = true; always = true;
} }
]; ];
}; };

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.desktop.cloud; lib,
in with lib; { pkgs,
options.jade.desktop.cloud = { ...
enable = mkEnableOption "Enable cloud things"; }: let
}; cfg = config.jade.desktop.cloud;
config = mkIf cfg.enable { in
home-manager.users.jade = { pkgs, ... }: { with lib; {
home.packages = with pkgs; [ options.jade.desktop.cloud = {
fluent-reader enable = mkEnableOption "Enable cloud things";
bitwarden
rofi-rbw
];
}; };
}; config = mkIf cfg.enable {
} home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
fluent-reader
bitwarden
rofi-rbw
];
};
};
}

View file

@ -1,18 +1,22 @@
{ config, lib, pkgs, ... }: {
config,
let lib,
pkgs,
...
}: let
cfg = config.jade.desktop.compositing; cfg = config.jade.desktop.compositing;
in with lib; { in
options.jade.desktop.compositing = { with lib; {
enable = mkEnableOption "Enable compositing with picom"; options.jade.desktop.compositing = {
}; enable = mkEnableOption "Enable compositing with picom";
config = mkIf cfg.enable { };
services.picom = { config = mkIf cfg.enable {
services.picom = {
enable = true; enable = true;
backend = "glx"; backend = "glx";
shadow = true; shadow = true;
shadowOffsets = [ (-40) (-30) ]; shadowOffsets = [(-40) (-30)];
shadowOpacity = 0.2; shadowOpacity = 0.2;
shadowExclude = [ shadowExclude = [
"class_g ?= 'Notify-osd'" "class_g ?= 'Notify-osd'"
@ -28,11 +32,11 @@ in with lib; {
"fade-in-step" = 0.25; "fade-in-step" = 0.25;
"fade-out-step" = 0.2; "fade-out-step" = 0.2;
"fade-delta" = 20; "fade-delta" = 20;
"fade-exclude" = [ "class_g != 'Rofi'" ]; "fade-exclude" = ["class_g != 'Rofi'"];
# use damage information # use damage information
"use-damage" = true; "use-damage" = true;
}; };
}; };
# }}} # }}}
}; };
} }

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { {pkgs, ...}: {
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; }) (nerdfonts.override {fonts = ["FiraCode"];})
montserrat montserrat
noto-fonts noto-fonts
atkinson-hyperlegible atkinson-hyperlegible
arkpandora_ttf arkpandora_ttf
liberation_ttf liberation_ttf
@ -12,21 +12,21 @@
ocr-a ocr-a
]; ];
fonts.fontDir.enable = true; fonts.fontDir.enable = true;
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
audacity audacity
krita krita
gimp-with-plugins gimp-with-plugins
inkscape-with-extensions inkscape-with-extensions
obs-studio obs-studio
kdenlive kdenlive
fspy fspy
scribus scribus
onlyoffice-bin onlyoffice-bin
typst typst
digikam digikam
darktable darktable
rawtherapee rawtherapee
]; ];

View file

@ -1,139 +1,185 @@
{ config, lib, pkgs, ... }: {
config,
let lib,
pkgs,
...
}: let
# window-screenshot = pkgs.writeTextFile "window-screenshot.nu" (builtins.readFile ../../other/scripts/desktop/window-screenshot.nu); # window-screenshot = pkgs.writeTextFile "window-screenshot.nu" (builtins.readFile ../../other/scripts/desktop/window-screenshot.nu);
window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/window-screenshot.sh); window-screenshot = pkgs.writeShellScriptBin "window-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/window-screenshot.sh);
# desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh); # desktop-ctl = pkgs.writeShellScriptBin "desktop-ctl.sh" (builtins.readFile ../scripts/desktop/desktop-ctl.sh);
desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix { inherit pkgs; }; desktop-ctl = import ../../other/scripts/desktop/desktopctl.nix {inherit pkgs;};
# TODO: fix ocr screenshot script # TODO: fix ocr screenshot script
ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/ocr-screenshot.sh); ocr-screenshot = pkgs.writeShellScriptBin "ocr-screenshot.sh" (builtins.readFile ../../other/scripts/desktop/ocr-screenshot.sh);
# rofi calculator copied from https://github.com/barbuk/menu-qalc # rofi calculator copied from https://github.com/barbuk/menu-qalc
menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../other/scripts/desktop/menu-qalc.sh); menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../other/scripts/desktop/menu-qalc.sh);
in with lib; { in
imports = [ with lib; {
./audio.nix imports = [
./gaming.nix ./audio.nix
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee ./gaming.nix
./dunst.nix ./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
./compositing.nix ./dunst.nix
./ios-compat.nix ./compositing.nix
./syncthing.nix ./ios-compat.nix
./kdeconnect.nix ./syncthing.nix
./themeing.nix ./kdeconnect.nix
./cloud.nix ./themeing.nix
./networking.nix ./cloud.nix
./polybar.nix ./networking.nix
./social.nix ./polybar.nix
./mail.nix ./social.nix
./specific-hardware ./mail.nix
./evremap.nix ./specific-hardware
./xmonad.nix ./evremap.nix
./firefox.nix ./xmonad.nix
]; ./firefox.nix
];
i18n.inputMethod = { i18n.inputMethod = {
enabled = "fcitx5"; enabled = "fcitx5";
fcitx5.addons = with pkgs; [ fcitx5.addons = with pkgs; [
fcitx5-mozc fcitx5-mozc
fcitx5-gtk fcitx5-gtk
]; ];
}; };
programs.seahorse.enable = true; programs.seahorse.enable = true;
security.pam.services.jade.enableGnomeKeyring = true; security.pam.services.jade.enableGnomeKeyring = true;
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
services = { services = {
printing.enable = true; printing.enable = true;
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
xserver = { xserver = {
enable = true;
layout = "us";
xkbVariant = "altgr-intl";
libinput = {
enable = true;
};
desktopManager = {
xterm.enable = false;
};
displayManager = {
defaultSession = "none+xmonad";
gdm.enable = true;
};
windowManager.xmonad = {
enable = true;
};
};
};
programs.xss-lock = {
enable = true; enable = true;
lockerCommand = "${pkgs.i3lock}/bin/i3lock";
};
layout = "us"; services.illum.enable = true;
xkbVariant = "altgr-intl"; services.avahi.enable = true;
libinput = { services.smartd = {
enable = true;
notifications.x11.enable = true;
notifications.test = true;
};
home-manager.users.jade = {pkgs, ...}: {
programs.bat = {
# TODO: more config
enable = true; enable = true;
}; };
programs.rofi = {
desktopManager = { enable = true;
xterm.enable = false; theme = ../../other/rofi-themes/applauncher.rasi;
};
displayManager = {
defaultSession = "none+xmonad";
gdm.enable = true;
}; };
home.packages = with pkgs; [
just
bacon
windowManager.xmonad = { magic-wormhole-rs
yt-dlp
i3lock
rofimoji
feh
xorg.xinput
arandr
flameshot
tesseract5
imagemagick
xclip
xmacro
xorg.xev
syncplay
# filemanager
xfce.thunar
xfce.tumbler
xfce.thunar-archive-plugin
gnome.file-roller
# media/file viewers
vlc
mpv
evince
nomacs
# from environment.systemPackages cleanup
font-manager
xdotool
xorg.xwininfo
gparted
uhk-agent
cool-retro-term
xdg-desktop-portal-gtk
obsidian
zettlr
virt-manager
ddccontrol-db
firebird-emu
gitg
gpick
qdirstat
ffmpeg_5
# external
libnotify
i3lock
rofi
rofimoji
feh
xorg.xinput
arandr
flameshot
tesseract5
imagemagick
xclip
kitty
xmacro
brightnessctl
drawing
libqalculate
# custom scripts
window-screenshot
desktop-ctl
ocr-screenshot
menu-qalc
# meow
oneko
];
xsession = {
enable = true; enable = true;
}; };
}; };
}
};
programs.xss-lock = {
enable = true;
lockerCommand = "${pkgs.i3lock}/bin/i3lock";
};
services.illum.enable = true;
services.avahi.enable = true;
services.smartd = {
enable = true;
notifications.x11.enable = true;
notifications.test = true;
};
home-manager.users.jade = { pkgs, ... }: {
programs.bat = {
# TODO: more config
enable = true;
};
programs.rofi = {
enable = true;
theme = ../../other/rofi-themes/applauncher.rasi;
};
home.packages = with pkgs; [
just bacon
magic-wormhole-rs
yt-dlp
i3lock rofimoji feh xorg.xinput arandr flameshot
tesseract5 imagemagick xclip xmacro xorg.xev
syncplay
# filemanager
xfce.thunar xfce.tumbler xfce.thunar-archive-plugin gnome.file-roller
# media/file viewers
vlc mpv evince nomacs
# from environment.systemPackages cleanup
font-manager xdotool xorg.xwininfo gparted uhk-agent
cool-retro-term xdg-desktop-portal-gtk obsidian zettlr virt-manager
ddccontrol-db firebird-emu gitg gpick qdirstat ffmpeg_5
# external
libnotify i3lock rofi rofimoji feh xorg.xinput arandr
flameshot tesseract5 imagemagick xclip kitty xmacro
brightnessctl drawing libqalculate
# custom scripts
window-screenshot desktop-ctl
ocr-screenshot menu-qalc
# meow
oneko
];
xsession = {
enable = true;
};
};
}

View file

@ -1,5 +1,5 @@
{ ... }: { {...}: {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
services.dunst = { services.dunst = {
enable = true; enable = true;
settings = { settings = {
@ -7,7 +7,7 @@
dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst"; dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst";
browser = "${pkgs.librewolf}/bin/librewolf"; browser = "${pkgs.librewolf}/bin/librewolf";
mouse_left_click = "context"; mouse_left_click = "context";
mouse_middle_click = "close_current"; mouse_middle_click = "close_current";
background = "#282828"; background = "#282828";
foreground = "#ebdbb2"; foreground = "#ebdbb2";
frame_color = "#504945"; frame_color = "#504945";

View file

@ -1,5 +1,9 @@
{ pkgs, config, lib, ... }: {
let pkgs,
config,
lib,
...
}: let
cfg = config.jade.desktop.evremap; cfg = config.jade.desktop.evremap;
evremap = pkgs.rustPlatform.buildRustPackage { evremap = pkgs.rustPlatform.buildRustPackage {
pname = "evremap"; pname = "evremap";
@ -15,20 +19,21 @@ let
postPatch = '' postPatch = ''
cp ${../../other/evremap.Cargo.lock} Cargo.lock cp ${../../other/evremap.Cargo.lock} Cargo.lock
''; '';
nativeBuildInputs = [ pkgs.pkg-config ]; nativeBuildInputs = [pkgs.pkg-config];
buildInputs = [ pkgs.libevdev ]; buildInputs = [pkgs.libevdev];
}; };
in with lib; { in
options.jade.desktop.evremap = { with lib; {
enable = mkEnableOption "Enable evremap"; options.jade.desktop.evremap = {
}; enable = mkEnableOption "Enable evremap";
config = mkIf cfg.enable { };
systemd.services.evremap = { config = mkIf cfg.enable {
script = "${evremap}/bin/evremap remap ${../../other/remaps-${config.networking.hostName}.toml}"; systemd.services.evremap = {
wantedBy = [ "multi-user.target" ]; script = "${evremap}/bin/evremap remap ${../../other/remaps-${config.networking.hostName}.toml}";
unitConfig = { wantedBy = ["multi-user.target"];
Restart = "on-failure"; unitConfig = {
Restart = "on-failure";
};
}; };
}; };
}; }
}

View file

@ -1,365 +1,397 @@
{ ... }: { {...}: {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
home.file = { home.file = {
".tridactylrc" = { ".tridactylrc" = {
text = '' text = ''
set editorcmd kitty hx %f +%l set editorcmd kitty hx %f +%l
set newtab about:blank set newtab about:blank
''; '';
}; };
}; };
programs.firefox = { programs.firefox = {
enable = true; enable = true;
package = pkgs.firefox.override { package = pkgs.firefox.override {
nativeMessagingHosts = [ nativeMessagingHosts = [
pkgs.tridactyl-native pkgs.tridactyl-native
]; ];
}; };
policies = { policies = {
DefaultDownloadDirectory = "\${home}/Downloads"; DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install = [ Extensions.Install = [
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin" "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin"
"https://addons.mozilla.org/firefox/downloads/latest/tridactyl-vim" "https://addons.mozilla.org/firefox/downloads/latest/tridactyl-vim"
"https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17" "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger17"
"https://addons.mozilla.org/firefox/downloads/latest/gruvbox-dark-theme" "https://addons.mozilla.org/firefox/downloads/latest/gruvbox-dark-theme"
"https://addons.mozilla.org/firefox/downloads/latest/torproject-snowflake" "https://addons.mozilla.org/firefox/downloads/latest/torproject-snowflake"
"https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager" "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager"
"https://addons.mozilla.org/firefox/downloads/latest/terms-of-service-didnt-read" "https://addons.mozilla.org/firefox/downloads/latest/terms-of-service-didnt-read"
]; ];
Extensions.Uninstall = [ Extensions.Uninstall = [
"google@search.mozilla.org" "google@search.mozilla.org"
"bing@search.mozilla.org" "bing@search.mozilla.org"
"amazondotcom@search.mozilla.org" "amazondotcom@search.mozilla.org"
"ebay@search.mozilla.org" "ebay@search.mozilla.org"
"twitter@search.mozilla.org" "twitter@search.mozilla.org"
]; ];
"DisableFirefoxStudies" = true; "DisableFirefoxStudies" = true;
"DisableTelemetry" = true; "DisableTelemetry" = true;
"DisableFeedbackCommands" = true; "DisableFeedbackCommands" = true;
"DisablePocket" = true; "DisablePocket" = true;
}; };
profiles.jade = { profiles.jade = {
bookmarks = [ bookmarks = [
{ {
name = "Toolbar"; name = "Toolbar";
toolbar = true; toolbar = true;
bookmarks = [ bookmarks = [
{ {
name = "Katzencafé"; name = "Katzencafé";
tags = [ "fedi" "social" ]; tags = ["fedi" "social"];
keyword = "ck"; keyword = "ck";
url = "https://ck.katzen.cafe"; url = "https://ck.katzen.cafe";
} }
{ {
name = "Mastodon.de"; name = "Mastodon.de";
tags = [ "fedi" "social" ]; tags = ["fedi" "social"];
keyword = "mde"; keyword = "mde";
url = "https://mastodon.de"; url = "https://mastodon.de";
} }
{ {
name = "Nekoverse"; name = "Nekoverse";
tags = [ "fedi" "social" ]; tags = ["fedi" "social"];
keyword = "neko"; keyword = "neko";
url = "https://social.nekover.se"; url = "https://social.nekover.se";
} }
{ {
name = "Katzenschmiede"; name = "Katzenschmiede";
tags = [ "fedi" "git" ]; tags = ["fedi" "git"];
keyword = "forge"; keyword = "forge";
url = "https://forge.katzen.cafe"; url = "https://forge.katzen.cafe";
} }
{ {
name = "Katzenwolke"; name = "Katzenwolke";
tags = [ "cloud" ]; tags = ["cloud"];
keyword = "wolke"; keyword = "wolke";
url = "https://wolke.katzen.cafe"; url = "https://wolke.katzen.cafe";
} }
{ {
name = "Penpot"; name = "Penpot";
tags = [ "design" ]; tags = ["design"];
keyword = "pp"; keyword = "pp";
url = "https://design.katzen.cafe"; url = "https://design.katzen.cafe";
} }
{ {
name = "Pad"; name = "Pad";
tags = [ "pad" ]; tags = ["pad"];
keyword = "pad"; keyword = "pad";
url = "https://pad.katzen.cafe"; url = "https://pad.katzen.cafe";
} }
{ {
name = "Auth"; name = "Auth";
tags = [ "keycloak" ]; tags = ["keycloak"];
keyword = "auth"; keyword = "auth";
url = "https://auth.katzen.cafe/realms/katzen.cafe/account"; url = "https://auth.katzen.cafe/realms/katzen.cafe/account";
} }
{ {
name = "CCCHH"; name = "CCCHH";
bookmarks = [ bookmarks = [
{ {
name = "Website"; name = "Website";
url = "https://hamburg.ccc.de"; url = "https://hamburg.ccc.de";
} }
{ {
name = "Wiki"; name = "Wiki";
url = "https://wiki.ccchh.net"; url = "https://wiki.ccchh.net";
} }
{ {
name = "Wiki (old)"; name = "Wiki (old)";
url = "https://wiki.hamburg.ccc.de"; url = "https://wiki.hamburg.ccc.de";
} }
{ {
name = "Wiki (nonpublic)"; name = "Wiki (nonpublic)";
url = "https://nonpublic.wiki.hamburg.ccc.de"; url = "https://nonpublic.wiki.hamburg.ccc.de";
} }
{ {
name = "Pads"; name = "Pads";
url = "https://pad.hamburg.ccc.de"; url = "https://pad.hamburg.ccc.de";
} }
{ {
name = "Cloud"; name = "Cloud";
url = "https://cloud.hamburg.ccc.de"; url = "https://cloud.hamburg.ccc.de";
} }
{ {
name = "Club Assistant"; name = "Club Assistant";
url = "https://club-assistant.ccchh.net"; url = "https://club-assistant.ccchh.net";
} }
]; ];
} }
]; ];
} }
]; ];
search = { search = {
force = true; force = true;
default = "DuckDuckGo"; default = "DuckDuckGo";
engines = { engines = {
"Nix Packages" = { "Nix Packages" = {
urls = [{ urls = [
template = "https://search.nixos.org/packages"; {
params = [ template = "https://search.nixos.org/packages";
{ name = "query"; value = "{searchTerms}"; } params = [
]; {
}]; name = "query";
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; value = "{searchTerms}";
definedAliases = [ "pkgs" ]; }
}; ];
"Nix Options" = { }
urls = [{ ];
template = "https://search.nixos.org/options"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
params = [ definedAliases = ["pkgs"];
{ name = "query"; value = "{searchTerms}"; } };
]; "Nix Options" = {
}]; urls = [
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; {
definedAliases = [ "opts" ]; template = "https://search.nixos.org/options";
}; params = [
"Home manager Options" = { {
urls = [{ name = "query";
template = "https://mipmip.github.io/home-manager-option-search/"; value = "{searchTerms}";
params = [ }
{ name = "query"; value = "{searchTerms}"; } ];
]; }
}]; ];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "hm" ]; definedAliases = ["opts"];
}; };
"NixOS Wiki" = { "Home manager Options" = {
urls = [{ urls = [
template = "https://nixos.wiki/index.php?title=Special:Search&amp;search={searchTerms}&amp;namespace=0"; {
}]; template = "https://mipmip.github.io/home-manager-option-search/";
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; params = [
definedAliases = [ "nxwk" ]; {
}; name = "query";
"lib.rs" = { value = "{searchTerms}";
urls = [{ }
template = "https://lib.rs/search"; ];
params = [ }
{ name = "q"; value = "{searchTerms}"; } ];
]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
}]; definedAliases = ["hm"];
icon = "https://lib.rs/favicon.png"; };
definedAliases = [ "libs" ]; "NixOS Wiki" = {
}; urls = [
"rust docs" = { {
urls = [{ template = "https://nixos.wiki/index.php?title=Special:Search&amp;search={searchTerms}&amp;namespace=0";
template = "https://docs.rs/releases/search"; }
params = [ ];
{ name = "query"; value = "{searchTerms}"; } icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
]; definedAliases = ["nxwk"];
}]; };
icon = "https://docs.rs/-/static/favicon.ico"; "lib.rs" = {
definedAliases = [ "docs" ]; urls = [
}; {
"rust std docs" = { template = "https://lib.rs/search";
urls = [{ params = [
template = "https://docs.rust-lang.org/std/index.html"; {
params = [ name = "q";
{ name = "search"; value = "{searchTerms}"; } value = "{searchTerms}";
]; }
}]; ];
icon = "https://doc.rust-lang.org/favicon.ico"; }
definedAliases = [ "std" ]; ];
}; icon = "https://lib.rs/favicon.png";
"Bing".metaData.hidden = true; definedAliases = ["libs"];
"Google".metaData.hidden = true; };
"Amazon.de".metaData.hidden = true; "rust docs" = {
}; urls = [
}; {
settings = { template = "https://docs.rs/releases/search";
"devtools.editor.keymap" = "vim"; params = [
"devtools.toolbox.host" = "right"; {
"webgl.disabled" = false; name = "query";
"image.jxl.enabled" = true; value = "{searchTerms}";
"browser.urlbar.decodeURLsOnCopy" = true; }
"browser.urlbar.unitConversion.enabled" = true; ];
"browser.urlbar.suggest.calculator" = true; }
"browser.compactmode.show" = true; ];
"browser.uidensity" = 1; icon = "https://docs.rs/-/static/favicon.ico";
"screenshots.browser.component.enabled" = true; definedAliases = ["docs"];
"browser.aboutConfig.showWarning" = false; };
"browser.aboutwelcome.showModal" = false; "rust std docs" = {
"browser.aboutwelcome.enabled" = false; urls = [
"browser.preferences.moreFromMozilla" = false; {
"identity.fxaccounts.enabled" = false; template = "https://docs.rust-lang.org/std/index.html";
"browser.tabs.firefox-view" = false; params = [
"browser.tabs.firefox-view-next" = false; {
"browser.newtabpage.activity-stream.showSponsored" = false; name = "search";
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false; value = "{searchTerms}";
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false; }
"privacy.trackingprotection.emailtracking.enabled" = true; ];
"privacy.trackingprotection.enabled" = true; }
"privacy.trackingprotection.socialtracking.enabled" = true; ];
icon = "https://doc.rust-lang.org/favicon.ico";
definedAliases = ["std"];
};
"Bing".metaData.hidden = true;
"Google".metaData.hidden = true;
"Amazon.de".metaData.hidden = true;
};
};
settings = {
"devtools.editor.keymap" = "vim";
"devtools.toolbox.host" = "right";
"webgl.disabled" = false;
"image.jxl.enabled" = true;
"browser.urlbar.decodeURLsOnCopy" = true;
"browser.urlbar.unitConversion.enabled" = true;
"browser.urlbar.suggest.calculator" = true;
"browser.compactmode.show" = true;
"browser.uidensity" = 1;
"screenshots.browser.component.enabled" = true;
"browser.aboutConfig.showWarning" = false;
"browser.aboutwelcome.showModal" = false;
"browser.aboutwelcome.enabled" = false;
"browser.preferences.moreFromMozilla" = false;
"identity.fxaccounts.enabled" = false;
"browser.tabs.firefox-view" = false;
"browser.tabs.firefox-view-next" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.newtabpage.activity-stream.improvesearch.topSiteSearchShortcuts" = false;
"privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"geo.provider.network.logging.enabled" = true; "geo.provider.network.logging.enabled" = true;
"extensions.getAddons.showPane" = false; "extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false; "extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false; "browser.discovery.enabled" = false;
"browser.shopping.experience2023.enabled" = false; "browser.shopping.experience2023.enabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false; "datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false; "datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false; "toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false; "toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,"; "toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false; "toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false; "toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false; "toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false; "toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false; "toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false; "toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true; "toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true; "toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = ""; "toolkit.coverage.endpoint.base" = "";
"browser.ping-centre.telemetry" = false; "browser.ping-centre.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false; "browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false; "browser.newtabpage.activity-stream.telemetry" = false;
"app.shield.optoutstudies.enabled" = false; "app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false; "app.normandy.enabled" = false;
"app.normandy.api_url" = ""; "app.normandy.api_url" = "";
"browser.safebrowsing.malware.enabled" = false; "browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false; "browser.safebrowsing.phishing.enabled" = false;
"browser.safebrowsing.downloads.enabled" = false; "browser.safebrowsing.downloads.enabled" = false;
"browser.safebrowsing.downloads.remote.enabled" = false; "browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.url" = ""; "browser.safebrowsing.downloads.remote.url" = "";
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false; "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false; "browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.allowOverride" = false; "browser.safebrowsing.allowOverride" = false;
"network.prefetch-next" = false; "network.prefetch-next" = false;
"network.dns.disablePrefetch" = true; "network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true; "network.dns.disablePrefetchFromHTTPS" = true;
"network.predictor.enabled" = false; "network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false; "network.predictor.enable-prefetch" = false;
"network.http.speculative-parallel-limit" = 0; "network.http.speculative-parallel-limit" = 0;
"browser.places.speculativeConnect.enabled" = false; "browser.places.speculativeConnect.enabled" = false;
"browser.send_pings" = false; "browser.send_pings" = false;
"browser.urlbar.pocket.featureGate" = false; "browser.urlbar.pocket.featureGate" = false;
"browser.urlbar.weather.featureGate" = false; "browser.urlbar.weather.featureGate" = false;
"browser.urlbar.speculativeConnect.enabled" = false; "browser.urlbar.speculativeConnect.enabled" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false; "browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false; "browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.search.suggest.enabled" = false; "browser.search.suggest.enabled" = false;
"browser.urlbar.suggest.searches" = false; "browser.urlbar.suggest.searches" = false;
"browser.urlbar.trending.featureGate" = false; "browser.urlbar.trending.featureGate" = false;
"security.ssl.require_safe_negotiation" = true; "security.ssl.require_safe_negotiation" = true;
"security.remote_settings.crlite_filters.enabled" = true; "security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2; "security.pki.crlite_mode" = 2;
"dom.security.https_only_mode" = true; "dom.security.https_only_mode" = true;
"dom.security.https_only_mode_pbm" = true; "dom.security.https_only_mode_pbm" = true;
"security.ssl.treat_unsafe_negotiation_as_broken" = true; "security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true; "browser.xul.error_pages.expert_bad_cert" = true;
"network.http.referer.XOriginTrimmingPolicy" = 2; "network.http.referer.XOriginTrimmingPolicy" = 2;
"privacy.userContext.enabled" = true; "privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true; "privacy.userContext.ui.enabled" = true;
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true; "privacy.userContext.newTabContainerOnLeftClick.enabled" = true;
"dom.disable_window_move_resize" = true;
"browser.uitour.enabled" = false;
"browser.uitour.url" = "";
"permissions.manager.defaultsUrl" = "";
"webchannel.allowObject.urlWhitelist" = "";
"network.IDN_show_punycode" = true;
"pdfjs.disabled" = false;
"pdfjs.enableScripting" = false;
"browser.tabs.searchclipboardfor.middleclick" = false;
"browser.download.useDownloadDir" = false;
"browser.download.alwaysOpenPanel" = false;
"browser.download.manager.addToRecentDocs" = false;
"browser.download.always_ask_before_handling_new_types" = true;
"privacy.resistFingerprinting" = true;
"privacy.resistFingerprinting.pbmode" = true;
"privacy.window.maxInnerWidth" = 1600;
"privacy.window.maxInnerHeight" = 900;
"privacy.resistFingerprinting.block_mozAddonManager" = true;
"privacy.resistFingerprinting.letterboxing" = true;
"privacy.resistFingerprinting.letterboxing.dimensions" = "";
"widget.non-native-theme.enabled" = true;
"browser.link.open_newwindow" = 3;
"browser.link.open_newwindow.restriction" = 0;
"signon.rememberSignons" = false;
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
"browser.pagethumbnails.capturing_disabled" = true;
"geo.enabled" = false; "dom.disable_window_move_resize" = true;
"full-screen-api.enabled" = false;
"permissions.default.geo" = 0;
"permissions.default.camera" = 0;
"permissions.default.microphone" = 0;
"permissions.default.desktop-notification" = 0;
"permissions.default.xr" = 0;
"browser.newtabpage.pinned" = [ "browser.uitour.enabled" = false;
{
title = "Katzencafé"; "browser.uitour.url" = "";
url = "https://ck.katzen.cafe"; "permissions.manager.defaultsUrl" = "";
} "webchannel.allowObject.urlWhitelist" = "";
{
title = "Katzenschmiede"; "network.IDN_show_punycode" = true;
url = "https://forge.katzen.cafe"; "pdfjs.disabled" = false;
} "pdfjs.enableScripting" = false;
{ "browser.tabs.searchclipboardfor.middleclick" = false;
title = "CatPad"; "browser.download.useDownloadDir" = false;
url = "https://pad.katzen.cafe"; "browser.download.alwaysOpenPanel" = false;
}
{ "browser.download.manager.addToRecentDocs" = false;
title = "Katzenwolke";
url = "https://wolke.katzen.cafe"; "browser.download.always_ask_before_handling_new_types" = true;
} "privacy.resistFingerprinting" = true;
{ "privacy.resistFingerprinting.pbmode" = true;
title = "Penpot"; "privacy.window.maxInnerWidth" = 1600;
url = "https://design.katzen.cafe"; "privacy.window.maxInnerHeight" = 900;
} "privacy.resistFingerprinting.block_mozAddonManager" = true;
]; "privacy.resistFingerprinting.letterboxing" = true;
}; "privacy.resistFingerprinting.letterboxing.dimensions" = "";
}; "widget.non-native-theme.enabled" = true;
}; "browser.link.open_newwindow" = 3;
}; "browser.link.open_newwindow.restriction" = 0;
"signon.rememberSignons" = false;
"dom.popup_allowed_events" = "click dblclick mousedown pointerdown";
"browser.pagethumbnails.capturing_disabled" = true;
"geo.enabled" = false;
"full-screen-api.enabled" = false;
"permissions.default.geo" = 0;
"permissions.default.camera" = 0;
"permissions.default.microphone" = 0;
"permissions.default.desktop-notification" = 0;
"permissions.default.xr" = 0;
"browser.newtabpage.pinned" = [
{
title = "Katzencafé";
url = "https://ck.katzen.cafe";
}
{
title = "Katzenschmiede";
url = "https://forge.katzen.cafe";
}
{
title = "CatPad";
url = "https://pad.katzen.cafe";
}
{
title = "Katzenwolke";
url = "https://wolke.katzen.cafe";
}
{
title = "Penpot";
url = "https://design.katzen.cafe";
}
];
};
};
};
};
} }

View file

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

View file

@ -1,24 +1,29 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.desktop.ios-compat; lib,
in with lib; { pkgs,
options.jade.desktop.ios-compat = { ...
enable = mkEnableOption "Enable the ios compatability programs"; }: let
}; cfg = config.jade.desktop.ios-compat;
config = mkIf cfg.enable { in
services = { with lib; {
usbmuxd.enable = true; options.jade.desktop.ios-compat = {
gvfs.enable = true; enable = mkEnableOption "Enable the ios compatability programs";
}; };
home-manager.users.jade = { pkgs, ... }: { config = mkIf cfg.enable {
home.packages = with pkgs; [ services = {
libimobiledevice usbmuxd.enable = true;
libimobiledevice-glue gvfs.enable = true;
ifuse };
usbmuxd home-manager.users.jade = {pkgs, ...}: {
libusbmuxd home.packages = with pkgs; [
gvfs libimobiledevice
]; libimobiledevice-glue
ifuse
usbmuxd
libusbmuxd
gvfs
];
};
}; };
}; }
}

View file

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

View file

@ -1,6 +1,9 @@
{ config, lib, pkgs, ... }: {
config,
let lib,
pkgs,
...
}: let
cfg = config.jade.desktop.mail; cfg = config.jade.desktop.mail;
imap = { imap = {
host = "imap.migadu.com"; host = "imap.migadu.com";
@ -11,63 +14,64 @@ let
port = 465; port = 465;
tls.enable = true; tls.enable = true;
}; };
in with lib; { in
options.jade.desktop.mail = { with lib; {
enable = mkEnableOption "Enable thunderbird mail stuff"; options.jade.desktop.mail = {
}; enable = mkEnableOption "Enable thunderbird mail stuff";
config = mkIf cfg.enable { };
home-manager.users.jade = { pkgs, ... }: { config = mkIf cfg.enable {
accounts.email.accounts = { home-manager.users.jade = {pkgs, ...}: {
"Jade" = rec { accounts.email.accounts = {
inherit imap smtp; "Jade" = rec {
address = "jade@schrottkatze.de"; inherit imap smtp;
userName = address; address = "jade@schrottkatze.de";
realName = "Jade"; userName = address;
thunderbird.enable = true; realName = "Jade";
primary = true; thunderbird.enable = true;
primary = true;
};
"Logins" = rec {
inherit imap smtp;
address = "logins@schrottkatze.de";
userName = address;
realName = "Logins";
thunderbird.enable = true;
};
"Contact" = rec {
inherit imap smtp;
address = "contact@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
};
"Schule" = rec {
inherit imap smtp;
address = "schule@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
};
"Admin" = rec {
inherit imap smtp;
address = "admin@schrottkatze.de";
userName = address;
realName = "admin";
thunderbird.enable = true;
};
"CatchAll" = rec {
inherit imap smtp;
address = "catchall@schrottkatze.de";
userName = address;
realName = "Catch all";
thunderbird.enable = true;
};
}; };
"Logins" = rec { programs.thunderbird = {
inherit imap smtp; enable = true;
address = "logins@schrottkatze.de"; profiles.jade = {
userName = address; isDefault = true;
realName = "Logins"; };
thunderbird.enable = true;
};
"Contact" = rec {
inherit imap smtp;
address = "contact@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
};
"Schule" = rec {
inherit imap smtp;
address = "schule@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
};
"Admin" = rec {
inherit imap smtp;
address = "admin@schrottkatze.de";
userName = address;
realName = "admin";
thunderbird.enable = true;
};
"CatchAll" = rec {
inherit imap smtp;
address = "catchall@schrottkatze.de";
userName = address;
realName = "Catch all";
thunderbird.enable = true;
};
};
programs.thunderbird = {
enable = true;
profiles.jade = {
isDefault = true;
}; };
}; };
}; };
}; }
}

View file

@ -1,10 +1,14 @@
{ config, lib, pkgs, ... }: {
config,
let lib,
addNuShebang = path: builtins.concatStringsSep "\n\n" [ pkgs,
"#!${pkgs.nushellFull}/bin/nu" ...
(builtins.readFile path) }: let
]; addNuShebang = path:
builtins.concatStringsSep "\n\n" [
"#!${pkgs.nushellFull}/bin/nu"
(builtins.readFile path)
];
in { in {
config = { config = {
networking = { networking = {
@ -40,25 +44,25 @@ in {
]; ];
}; };
}; };
environment.etc = (with builtins; ( environment.etc = with builtins; (
listToAttrs ( listToAttrs (
map (v: { map (v: {
name = "networkhooks/${v}"; name = "networkhooks/${v}";
value = { value = {
text = addNuShebang ../../other/scripts/networkhooks/${v}; text = addNuShebang ../../other/scripts/networkhooks/${v};
mode = "0755"; mode = "0755";
}; };
}) })
(attrNames (readDir ../../other/scripts/networkhooks)) (attrNames (readDir ../../other/scripts/networkhooks))
) )
)); );
systemd.services."NetworkManager-wait-online".enable = false; systemd.services."NetworkManager-wait-online".enable = false;
services.mullvad-vpn.enable = true; services.mullvad-vpn.enable = true;
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
networkmanagerapplet networkmanagerapplet
mullvad-vpn mullvad-vpn
speedtest-cli speedtest-cli
]; ];
}; };
}; };

View file

@ -1,13 +1,16 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
config = { config = {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
#xsession.windowManager.i3.config.startup = [ #xsession.windowManager.i3.config.startup = [
#{ #{
#command = "pkill polybar; polybar"; #command = "pkill polybar; polybar";
#always = true; #always = true;
#} #}
#]; #];
services.polybar = { services.polybar = {
enable = true; enable = true;

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.desktop.social; lib,
in with lib; { pkgs,
options.jade.desktop.social = { ...
enable = mkEnableOption "Enable social apps"; }: let
}; cfg = config.jade.desktop.social;
config = mkIf cfg.enable { in
home-manager.users.jade = { pkgs, ... }: { with lib; {
home.packages = with pkgs; [ options.jade.desktop.social = {
evolutionWithPlugins enable = mkEnableOption "Enable social apps";
schildichat-desktop
mumble
];
}; };
}; config = mkIf cfg.enable {
} home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
evolutionWithPlugins
schildichat-desktop
mumble
];
};
};
}

View file

@ -1,6 +1,10 @@
{ config, lib, pkgs, ... }:
{ {
imports = [ config,
lib,
pkgs,
...
}: {
imports = [
./spacenav.nix ./spacenav.nix
./wacom.nix ./wacom.nix
]; ];

View file

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

View file

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

View file

@ -1,16 +1,21 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.desktop.syncthing; lib,
in with lib; { pkgs,
options.jade.desktop.syncthing = { ...
enable = mkEnableOption "Enable syncing via syncthing"; }: let
}; cfg = config.jade.desktop.syncthing;
config = mkIf cfg.enable { in
services.syncthing = rec { with lib; {
enable = true; options.jade.desktop.syncthing = {
user = "jade"; enable = mkEnableOption "Enable syncing via syncthing";
dataDir = "/home/${user}/Documents";
configDir = "/home/${user}/Documents/.config/syncthing";
}; };
}; config = mkIf cfg.enable {
} services.syncthing = rec {
enable = true;
user = "jade";
dataDir = "/home/${user}/Documents";
configDir = "/home/${user}/Documents/.config/syncthing";
};
};
}

View file

@ -1,14 +1,17 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
config = { config = {
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
atkinson-hyperlegible atkinson-hyperlegible
]; ];
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
gtk-engine-murrine gtk-engine-murrine
gruvbox-dark-gtk gruvbox-dark-gtk
gruvbox-dark-icons-gtk gruvbox-dark-icons-gtk
]; ];
gtk = { gtk = {
@ -18,7 +21,7 @@
name = "phinger-cursors"; name = "phinger-cursors";
size = 30; size = 30;
}; };
font = { font = {
package = pkgs.atkinson-hyperlegible; package = pkgs.atkinson-hyperlegible;
name = "Atkinson Hyperlegible"; name = "Atkinson Hyperlegible";
size = 11.5; size = 11.5;
@ -31,7 +34,7 @@
package = pkgs.gruvbox-dark-gtk; package = pkgs.gruvbox-dark-gtk;
name = "gruvbox-dark"; name = "gruvbox-dark";
}; };
}; };
qt = { qt = {
enable = true; enable = true;
platformTheme = "gtk"; platformTheme = "gtk";

View file

@ -1,6 +1,11 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
with lib; { with lib; {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
xsession.windowManager.xmonad = { xsession.windowManager.xmonad = {
enable = true; enable = true;
enableContribAndExtras = true; enableContribAndExtras = true;

View file

@ -1,35 +1,40 @@
{ config, lib, pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}: {
config = { config = {
networking = { networking = {
firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [ allowedTCPPorts = [
# ssh # ssh
22 22
# http, https # http, https
80 443 80
443
# syncthing web ui # syncthing web ui
8384 8384
# syncthing # syncthing
22000 22000
# mumble # mumble
64738 64738
]; ];
allowedUDPPorts = [ allowedUDPPorts = [
8080 8080
# other # other
12333 12333
# syncthing discovery # syncthing discovery
21027 21027
# mumble # mumble
64738 64738
]; ];
}; };

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.flatpak; lib,
in with lib; { pkgs,
options.jade.flatpak = { ...
enable = mkEnableOption "Enable flatpak"; }: let
}; cfg = config.jade.flatpak;
config = mkIf cfg.enable { in
services.flatpak.enable = true; with lib; {
xdg.portal = { options.jade.flatpak = {
enable = true; enable = mkEnableOption "Enable flatpak";
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
}; };
}; config = mkIf cfg.enable {
} services.flatpak.enable = true;
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
};
};
}

View file

@ -1,5 +1,5 @@
{ ... }: { {...}: {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
programs.git = { programs.git = {
enable = true; enable = true;
userName = "Schrottkatze"; userName = "Schrottkatze";
@ -16,37 +16,37 @@
programs.gitui = { programs.gitui = {
enable = true; enable = true;
keyConfig = '' keyConfig = ''
( (
open_help: Some(( code: F(1), modifiers: ( bits: 0,),)), open_help: Some(( code: F(1), modifiers: ( bits: 0,),)),
move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)), move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)),
move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)), move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)), move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)),
move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)), move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)),
popup_up: Some(( code: Char('p'), modifiers: ( bits: 2,),)),
popup_down: Some(( code: Char('n'), modifiers: ( bits: 2,),)),
page_up: Some(( code: Char('b'), modifiers: ( bits: 2,),)),
page_down: Some(( code: Char('f'), modifiers: ( bits: 2,),)),
home: Some(( code: Char('g'), modifiers: ( bits: 0,),)),
end: Some(( code: Char('G'), modifiers: ( bits: 1,),)),
shift_up: Some(( code: Char('K'), modifiers: ( bits: 1,),)),
shift_down: Some(( code: Char('J'), modifiers: ( bits: 1,),)),
edit_file: Some(( code: Char('I'), modifiers: ( bits: 1,),)), popup_up: Some(( code: Char('p'), modifiers: ( bits: 2,),)),
popup_down: Some(( code: Char('n'), modifiers: ( bits: 2,),)),
page_up: Some(( code: Char('b'), modifiers: ( bits: 2,),)),
page_down: Some(( code: Char('f'), modifiers: ( bits: 2,),)),
home: Some(( code: Char('g'), modifiers: ( bits: 0,),)),
end: Some(( code: Char('G'), modifiers: ( bits: 1,),)),
shift_up: Some(( code: Char('K'), modifiers: ( bits: 1,),)),
shift_down: Some(( code: Char('J'), modifiers: ( bits: 1,),)),
status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)), edit_file: Some(( code: Char('I'), modifiers: ( bits: 1,),)),
diff_reset_lines: Some(( code: Char('u'), modifiers: ( bits: 0,),)), status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)),
diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)),
stashing_save: Some(( code: Char('w'), modifiers: ( bits: 0,),)), diff_reset_lines: Some(( code: Char('u'), modifiers: ( bits: 0,),)),
stashing_toggle_index: Some(( code: Char('m'), modifiers: ( bits: 0,),)), diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)),
stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)), stashing_save: Some(( code: Char('w'), modifiers: ( bits: 0,),)),
stashing_toggle_index: Some(( code: Char('m'), modifiers: ( bits: 0,),)),
abort_merge: Some(( code: Char('M'), modifiers: ( bits: 1,),)), stash_open: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
)
abort_merge: Some(( code: Char('M'), modifiers: ( bits: 1,),)),
)
''; '';
}; };
}; };

View file

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

View file

@ -1,4 +1,4 @@
{ ... }: { {...}: {
imports = [ imports = [
./helix.nix ./helix.nix
./nu.nix ./nu.nix

View file

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

View file

@ -1,13 +1,12 @@
{ config, ... }: {config, ...}: {
{ home-manager.users.jade = {pkgs, ...}: {
home-manager.users.jade = { pkgs, ... }: {
home = { home = {
sessionVariables.EDITOR = "hx"; sessionVariables.EDITOR = "hx";
packages = [ packages = [
pkgs.nil pkgs.nil
pkgs.haskell-language-server pkgs.haskell-language-server
pkgs.nodePackages_latest.vscode-html-languageserver-bin pkgs.nodePackages_latest.vscode-html-languageserver-bin
pkgs.nodePackages_latest.vscode-json-languageserver-bin pkgs.nodePackages_latest.vscode-json-languageserver-bin
pkgs.nodePackages_latest.vscode-css-languageserver-bin pkgs.nodePackages_latest.vscode-css-languageserver-bin
pkgs.nodePackages_latest.bash-language-server pkgs.nodePackages_latest.bash-language-server
]; ];
@ -43,7 +42,7 @@
languages = { languages = {
language-server."nu-builtin-lsp" = { language-server."nu-builtin-lsp" = {
command = "${config.users.defaultUserShell}/bin/nu"; command = "${config.users.defaultUserShell}/bin/nu";
args = [ "--lsp" ]; args = ["--lsp"];
}; };
language-server."rust-analyzer" = { language-server."rust-analyzer" = {
config = { config = {
@ -61,7 +60,7 @@
language = [ language = [
{ {
name = "nu"; name = "nu";
language-servers = [ "nu-builtin-lsp" ]; language-servers = ["nu-builtin-lsp"];
} }
]; ];
}; };

View file

@ -1,5 +1,5 @@
{ config, ... }: { {config, ...}: {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
programs.nushell = { programs.nushell = {
enable = true; enable = true;
package = config.users.defaultUserShell; package = config.users.defaultUserShell;
@ -10,7 +10,7 @@
''; '';
}; };
programs.starship.enableNushellIntegration = true; programs.starship.enableNushellIntegration = true;
programs.carapace.enableNushellIntegration = true; programs.carapace.enableNushellIntegration = true;
programs.direnv.enableNushellIntegration = true; programs.direnv.enableNushellIntegration = true;
}; };
} }

View file

@ -1,5 +1,5 @@
{ ... }: { {...}: {
home-manager.users.jade = { pkgs, ... }: { home-manager.users.jade = {pkgs, ...}: {
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = { settings = {
@ -22,7 +22,7 @@
cmd_duration = { cmd_duration = {
format = "\\[[ $duration]($style)\\]"; format = "\\[[ $duration]($style)\\]";
}; };
nix_shell = { nix_shell = {
format = "\\[[$symbol$state( \\($name\\))]($style)\\]"; format = "\\[[$symbol$state( \\($name\\))]($style)\\]";
symbol = " "; symbol = " ";
}; };

View file

@ -1,6 +1,9 @@
{ config, lib, ... }:
{ {
home-manager.users.jade = { pkgs, ... }: { config,
lib,
...
}: {
home-manager.users.jade = {pkgs, ...}: {
home.file = { home.file = {
zellij-forgot = { zellij-forgot = {
target = ".config/zellij/plugins/zellij-forgot.wasm"; target = ".config/zellij/plugins/zellij-forgot.wasm";
@ -16,17 +19,17 @@
settings = { settings = {
theme = "gruvbox-dark"; theme = "gruvbox-dark";
themes.gruvbox-dark = { themes.gruvbox-dark = {
fg = "#d5c4a1"; fg = "#d5c4a1";
bg = "#282828"; bg = "#282828";
black = "#3C3836"; black = "#3C3836";
red = "#CC241D"; red = "#CC241D";
green = "#98971A"; green = "#98971A";
yellow = "#D79921"; yellow = "#D79921";
blue = "#3C8588"; blue = "#3C8588";
magenta = "#B16286"; magenta = "#B16286";
cyan = "#689D6A"; cyan = "#689D6A";
white = "#ebdbb2"; white = "#ebdbb2";
orange = "#D65D0E"; orange = "#D65D0E";
}; };
pane_frames = false; pane_frames = false;
}; };

View file

@ -1,10 +1,16 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.NAME; lib,
in with lib; { pkgs,
options.jade.NAME = { ...
enable = mkEnableOption "Enable the module"; }: let
}; cfg = config.jade.NAME;
config = mkIf cfg.enable { in
}; with lib; {
} options.jade.NAME = {
enable = mkEnableOption "Enable the module";
};
config =
mkIf cfg.enable {
};
}

View file

@ -1,44 +1,49 @@
{ config, lib, pkgs, ... }: {
config,
let cfg = config.jade.terminal; lib,
in with lib; { pkgs,
options.jade.terminal = { ...
enable = mkEnableOption "Enable Kitty"; }: let
}; cfg = config.jade.terminal;
config = mkIf cfg.enable { in
environment.sessionVariables = rec { with lib; {
TERMINAL = "kitty"; options.jade.terminal = {
enable = mkEnableOption "Enable Kitty";
}; };
home-manager.users.jade = { pkgs,... } : { config = mkIf cfg.enable {
programs.kitty = { environment.sessionVariables = rec {
enable = true; TERMINAL = "kitty";
font = { };
name = "FiraCode Nerd Font"; home-manager.users.jade = {pkgs, ...}: {
size = 11; programs.kitty = {
}; enable = true;
settings = { font = {
#adjust_column_width = "70%"; name = "FiraCode Nerd Font";
color0 = "#282828"; size = 11;
color8 = "#928374"; };
color1 = "#cc241d"; settings = {
color9 = "#fb4934"; #adjust_column_width = "70%";
color2 = "#98971a"; color0 = "#282828";
color10 = "#b8bb26"; color8 = "#928374";
color3 = "#d79921"; color1 = "#cc241d";
color11 = "#fabd2f"; color9 = "#fb4934";
color4 = "#458588"; color2 = "#98971a";
color12 = "#83a598"; color10 = "#b8bb26";
color5 = "#b16286"; color3 = "#d79921";
color13 = "#d3869b"; color11 = "#fabd2f";
color6 = "#689d6a"; color4 = "#458588";
color14 = "#8ec07c"; color12 = "#83a598";
color7 = "#a89984"; color5 = "#b16286";
color15 = "#ebdbb2"; color13 = "#d3869b";
foreground = "#ebdbb2"; color6 = "#689d6a";
background = "#282828"; color14 = "#8ec07c";
confirm_os_window_close = 0; color7 = "#a89984";
color15 = "#ebdbb2";
foreground = "#ebdbb2";
background = "#282828";
confirm_os_window_close = 0;
};
}; };
}; };
}; };
}; }
}

View file

@ -1,47 +1,54 @@
{ pkgs, lib }: rec { {
pkgs,
lib,
}: rec {
# taken from https://github.com/NixOS/nixpkgs/blob/3650808d85dccbfa3be3d785dfd3ce33a757bd2c/pkgs/build-support/trivial-builders/default.nix#L335 # taken from https://github.com/NixOS/nixpkgs/blob/3650808d85dccbfa3be3d785dfd3ce33a757bd2c/pkgs/build-support/trivial-builders/default.nix#L335
writeNuShellApplication = writeNuShellApplication = {
{ name name,
, text text,
, runtimeInputs ? [ ] runtimeInputs ? [],
, meta ? { } meta ? {},
, checkPhase ? null checkPhase ? null,
}: }:
writeTextFile { writeTextFile {
inherit name meta; inherit name meta;
executable = true; executable = true;
destination = "/bin/${name}"; destination = "/bin/${name}";
allowSubstitutes = true; allowSubstitutes = true;
preferLocalBuild = false; preferLocalBuild = false;
text = '' text =
#!${pkgs.nushell} ''
'' + lib.optionalString (runtimeInputs != [ ]) '' #!${pkgs.nushell}
''
+ lib.optionalString (runtimeInputs != []) ''
$env.PATH = ($env.PATH | split row (char esep) | prepend '${lib.makeBinPath runtimeInputs}'); $env.PATH = ($env.PATH | split row (char esep) | prepend '${lib.makeBinPath runtimeInputs}');
'' + '' ''
+ ''
${text} ${text}
''; '';
checkPhase = checkPhase =
# GHC (=> shellcheck) isn't supported on some platforms (such as risc-v) # GHC (=> shellcheck) isn't supported on some platforms (such as risc-v)
# but we still want to use writeShellApplication on those platforms # but we still want to use writeShellApplication on those platforms
if checkPhase == null then '' if checkPhase == null
then ''
runHook preCheck runHook preCheck
nu -c "nu-check -d $target" nu -c "nu-check -d $target"
runHook postCheck runHook postCheck
'' ''
else checkPhase; else checkPhase;
}; };
packageNushellApplication = packageNushellApplication = {
{ name name,
, path path,
, runtimeInputs ? [ ] runtimeInputs ? [],
, meta ? { } meta ? {},
, checkPhase ? null checkPhase ? null,
}: }:
writeNuShellApplication { writeNuShellApplication {
inherit name runtimeInputs meta checkPhase; inherit name runtimeInputs meta checkPhase;
text = builtins.readFile path; text = builtins.readFile path;

View file

@ -1,35 +1,35 @@
{ pkgs, ... }: {pkgs, ...}:
pkgs.writeShellScriptBin "desktopctl" '' pkgs.writeShellScriptBin "desktopctl" ''
case $@ in case $@ in
"Lock Screen") "Lock Screen")
loginctl lock-session loginctl lock-session
exit 0 exit 0
;; ;;
"Log Out") "Log Out")
pkill xmonad pkill xmonad
exit 0 exit 0
;; ;;
"Shut Down") "Shut Down")
shutdown now shutdown now
exit 0 exit 0
;; ;;
"Reboot") "Reboot")
systemctl reboot systemctl reboot
exit 0 exit 0
;; ;;
esac esac
# resizes grid # resizes grid
echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n" echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n"
# resizes window, moves it to top of screen, adjusts rounded corners # resizes window, moves it to top of screen, adjusts rounded corners
echo -en "\0theme\x1fwindow{width:800px;location:north;y-offset:24px;border-radius:0 0 12px 12px;}\n" echo -en "\0theme\x1fwindow{width:800px;location:north;y-offset:24px;border-radius:0 0 12px 12px;}\n"
# swaps grid and input bar # swaps grid and input bar
echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n" echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n"
# fixes brown line below input bar # fixes brown line below input bar
echo -en "\0theme\x1finputbar{margin:0;}\n" echo -en "\0theme\x1finputbar{margin:0;}\n"
echo -en "Lock Screen\0icon\x1f${../../../other/assets/desktopctl/lock-screen.svg}\n" echo -en "Lock Screen\0icon\x1f${../../../other/assets/desktopctl/lock-screen.svg}\n"
echo -en "Log Out\0icon\x1f${../../../other/assets/desktopctl/logout.svg}\n" echo -en "Log Out\0icon\x1f${../../../other/assets/desktopctl/logout.svg}\n"
echo -en "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n" echo -en "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n"
echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n" echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n"
'' ''