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
# your system. Help is available in the configuration.nix(5) man page
# 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 = {
package = pkgs.nixVersions.stable;
extraOptions = ''
@ -29,11 +31,45 @@ with builtins;
systemPackages = with pkgs; [
htmlq
wget git neofetch pciutils 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
wget
git
neofetch
pciutils
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";
home-manager.users.jade = { nixosConfig, pkgs, ... }: {
home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
};
nixpkgs.config.packageOverrides = pkgs: {
sudo = pkgs.sudo.override { withInsults = true; };
sudo = pkgs.sudo.override {withInsults = true;};
};
security.sudo.extraConfig = "Defaults insults";
@ -95,7 +135,7 @@ with builtins;
hardware = {
opengl.enable = true;
uinput.enable = true;
uinput.enable = true;
bluetooth.enable = true;
keyboard.uhk.enable = true;
};
@ -104,7 +144,7 @@ with builtins;
users.users.jade = {
isNormalUser = true;
extraGroups = [ "wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark" ];
extraGroups = ["wheel" "input" "uinput" "libvirtd" "adbusers" "dialout" "plugdev" "wireshark"];
packages = [
pkgs.marksman
];
@ -117,4 +157,3 @@ with builtins;
users.defaultUserShell = pkgs.nushellFull;
}

View file

@ -24,7 +24,15 @@
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 = {
monosodium-glutamate-g = nixpkgs.lib.nixosSystem {
specialArgs = {
@ -33,10 +41,15 @@
system = "x86_64-linux";
modules = [
./hosts/monosodium-glutamate-g/configuration.nix
home-manager.nixosModules.home-manager {
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: {
home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "${nixosConfig.system.stateVersion}";
};
@ -50,10 +63,15 @@
system = "x86_64-linux";
modules = [
./hosts/catbook-j/configuration.nix
home-manager.nixosModules.home-manager {
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: {
home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "22.11";
};
@ -68,10 +86,15 @@
modules = [
"${mac-brcm-fw}"
./hosts/potatobook-g/configuration.nix
home-manager.nixosModules.home-manager {
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.jade = { nixosConfig, pkgs, ... }: {
home-manager.users.jade = {
nixosConfig,
pkgs,
...
}: {
home.sessionVariables.TZ = nixosConfig.time.timeZone;
home.stateVersion = "${nixosConfig.system.stateVersion}";
};

View file

@ -1,14 +1,18 @@
# 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).
{ config, pkgs, lib, ... }: {
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../../common.nix
../../modules
];
{
config,
pkgs,
lib,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../common.nix
../../modules
];
jade = {
flatpak.enable = true;
desktop = {
@ -33,22 +37,22 @@
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"];
hardware.bluetooth.enable = true;
services.blueman.enable = true;
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.
boot.loader.systemd-boot.enable = true;
@ -78,11 +82,11 @@
# };
boot.kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [
# boot.kernelPatches = [
# {
# name = "fomx";
# patch = ../../other/0001-fomx.patch;
# }
# }
# ];
services.xserver.displayManager.autoLogin = {
@ -119,5 +123,4 @@
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
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
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
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.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
boot.initrd.kernelModules = [];
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" ];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
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" ];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
options = ["subvol=@home" "compress=zstd:3"];
};
fileSystems."/swap" =
{ device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
options = [ "subvol=@/@swap" "noatime" ];
};
fileSystems."/swap" = {
device = "/dev/disk/by-uuid/4f9e8afa-f8d7-40bf-b3ea-17e8e8fbb694";
fsType = "btrfs";
options = ["subvol=@/@swap" "noatime"];
};
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";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/C6CA-5DE8";
fsType = "vfat";
};
swapDevices = [{
device = "/swap/swapfile";
size = (1024 * 24);
}];
swapDevices = [
{
device = "/swap/swapfile";
size = 1024 * 24;
}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,13 +1,11 @@
# 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, ...}: {
imports = [
./hardware-configuration.nix
../../common.nix
../../modules
./hardware-configuration.nix
../../common.nix
../../modules
];
# nixpkgs = {
@ -44,35 +42,32 @@
};
boot = {
loader = {
# Use the systemd-boot EFI boot loader.
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
# Use the systemd-boot EFI boot loader.
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
# latest linux kernel
#boot.kernelPackages = pkgs.linuxPackages_latest;
#boot.kernelPackages = pkgs.linux_zen_xeniafied;
kernelPackages = pkgs.linuxPackages_zen;
# boot.kernelPatches = [
# boot.kernelPatches = [
# {
# name = "fomx";
# patch = ../other/0001-fomx.patch;
# }
# }
# ];
binfmt.emulatedSystems = [ "aarch64-linux" ];
binfmt.emulatedSystems = ["aarch64-linux"];
};
networking.hostName = "monosodium-glutamate-g";
services = {
# monitor control
ddccontrol.enable = true;
xserver = {
layout = "us";
xkbVariant = "altgr-intl";
enable = true;
layout = "us";
xkbVariant = "altgr-intl";
enable = true;
};
openssh.settings.PermitRootLogin = "without-password";
@ -82,7 +77,6 @@
gnome.gnome-keyring.enable = true;
};
hardware = {
bluetooth.enable = true;
keyboard.uhk.enable = true;
enableRedistributableFirmware = true;
@ -96,10 +90,11 @@
wireshark
awesomebump
zenstates zenmonitor
zenstates
zenmonitor
nvtop-amd
radeontop
rgp
radeontop
rgp
tea
blender-hip
];
@ -125,7 +120,7 @@
systemd.services = {
create-swapfile = {
serviceConfig.Type = "oneshot";
wantedBy = [ "swap-swapfile.swap" ];
wantedBy = ["swap-swapfile.swap"];
script = ''
swapfile="/swap/swapfile"
if [[ -f "$swapfile" ]]; then
@ -142,6 +137,3 @@
# release channel
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
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs";
options = [ "subvol=@root" "compress=zstd:3" ];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs";
options = ["subvol=@root" "compress=zstd:3"];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs";
options = [ "subvol=@home" "compress=zstd:3"];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/72ffbc9d-a319-42d7-8d26-13c921a679db";
fsType = "btrfs";
options = ["subvol=@home" "compress=zstd:3"];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/D63E-18C9";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D63E-18C9";
fsType = "vfat";
};
swapDevices = [{
device = "/swap/swapfile";
size = (1024 * 64) + (1024 * 8); # 72G
} ];
swapDevices = [
{
device = "/swap/swapfile";
size = (1024 * 64) + (1024 * 8); # 72G
}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: {
{pkgs, ...}: {
nix.settings = {
trusted-substituters = [
"https://t2linux.cachix.org"
@ -8,37 +8,37 @@
];
};
imports = [
./hardware-configuration.nix
../../common.nix
../../modules
#inputs.mms.module
./hardware-configuration.nix
../../common.nix
../../modules
#inputs.mms.module
];
#nixpkgs = {
#overlays = [
#(self: super: {
#linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
#structuredExtraConfig = with lib.kernel; {
##"FB" = yes;
##"FRAMEBUFFER_CONSOLE" = yes;
##"VGA_CONSOLE" = yes;
##"VIDEO_SELECT" = yes;
#LOGO = lib.mkForce yes;
#LOGO_LINUX_CLUT224 = yes;
#};
#ignoreConfigErrors = true;
#});
#})
#];
#overlays = [
#(self: super: {
#linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override {
#structuredExtraConfig = with lib.kernel; {
##"FB" = yes;
##"FRAMEBUFFER_CONSOLE" = yes;
##"VGA_CONSOLE" = yes;
##"VIDEO_SELECT" = yes;
#LOGO = lib.mkForce yes;
#LOGO_LINUX_CLUT224 = yes;
#};
#boot.kernelPatches = [
#{
#name = "fomx";
#patch = ../other/0001-fomx.patch;
#}
#ignoreConfigErrors = true;
#});
#})
#];
#};
#boot.kernelPatches = [
#{
#name = "fomx";
#patch = ../other/0001-fomx.patch;
#}
#];
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
boot.binfmt.emulatedSystems = ["aarch64-linux"];
jade = {
flatpak.enable = true;
@ -57,9 +57,9 @@
};
fileSystems = {
"/".options = [ "compress=zstd:3" ];
"/home".options = [ "compress=zstd:3" ];
"/nix".options = [ "compress=zstd:3" "noatime" ];
"/".options = ["compress=zstd:3"];
"/home".options = ["compress=zstd:3"];
"/nix".options = ["compress=zstd:3" "noatime"];
#"/swap".options = [ "noatime" ];
};
@ -70,9 +70,13 @@
networking.hostName = "potatobook-g";
services.xserver = {
resolutions = [ { x = 1920; y = 1200; } ];
resolutions = [
{
x = 1920;
y = 1200;
}
];
# dpi = 180;
layout = "us";
xkbVariant = "altgr-intl";
@ -95,9 +99,9 @@
hardware.keyboard.uhk.enable = true;
hardware.enableRedistributableFirmware = true;
environment.systemPackages = with pkgs; [
android-tools evremap
android-tools
evremap
];
environment.pathsToLink = [
@ -114,7 +118,7 @@
systemd.services."NetworkManager-wait-online".enable = false;
# services.pixiecore =
# services.pixiecore =
# let
# nixpkgs = builtins.getFlake "nixpkgs/nixos-unstable";
# sys = nixpkgs.lib.nixosSystem {
@ -154,7 +158,7 @@
systemd.services = {
create-swapfile = {
serviceConfig.Type = "oneshot";
wantedBy = [ "swap-swapfile.swap" ];
wantedBy = ["swap-swapfile.swap"];
script = ''
swapfile="/swap/swapfile"
if [[ -f "$swapfile" ]]; then
@ -175,5 +179,3 @@
# i rly should put that important big comment back here
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
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "uas" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs";
options = [ "subvol=root" ];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs";
options = ["subvol=root"];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs";
options = ["subvol=home"];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/nix" = {
device = "/dev/disk/by-uuid/f6d243ec-6be9-4551-8cbb-aefb7b691a62";
fsType = "btrfs";
options = ["subvol=nix"];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/5F66-17ED";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/5F66-17ED";
fsType = "vfat";
};
swapDevices = [{
device = "/swap/swapfile";
size = (1024 * 12); # 12GB
}];
swapDevices = [
{
device = "/swap/swapfile";
size = 1024 * 12; # 12GB
}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

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

View file

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

View file

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

View file

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

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }:
let cfg = config.jade.desktop.cloud;
in with lib; {
options.jade.desktop.cloud = {
enable = mkEnableOption "Enable cloud things";
};
config = mkIf cfg.enable {
home-manager.users.jade = { pkgs, ... }: {
home.packages = with pkgs; [
fluent-reader
bitwarden
rofi-rbw
];
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.cloud;
in
with lib; {
options.jade.desktop.cloud = {
enable = mkEnableOption "Enable cloud things";
};
};
}
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, ... }:
let
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.compositing;
in with lib; {
options.jade.desktop.compositing = {
enable = mkEnableOption "Enable compositing with picom";
};
config = mkIf cfg.enable {
services.picom = {
in
with lib; {
options.jade.desktop.compositing = {
enable = mkEnableOption "Enable compositing with picom";
};
config = mkIf cfg.enable {
services.picom = {
enable = true;
backend = "glx";
shadow = true;
shadowOffsets = [ (-40) (-30) ];
shadowOffsets = [(-40) (-30)];
shadowOpacity = 0.2;
shadowExclude = [
"class_g ?= 'Notify-osd'"
@ -28,11 +32,11 @@ in with lib; {
"fade-in-step" = 0.25;
"fade-out-step" = 0.2;
"fade-delta" = 20;
"fade-exclude" = [ "class_g != 'Rofi'" ];
"fade-exclude" = ["class_g != 'Rofi'"];
# use damage information
"use-damage" = true;
"use-damage" = true;
};
};
# }}}
};
}
};
}

View file

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

View file

@ -1,139 +1,185 @@
{ config, lib, pkgs, ... }:
let
{
config,
lib,
pkgs,
...
}: let
# 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);
# 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
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
menu-qalc = pkgs.writeShellScriptBin "menu-qalc" (builtins.readFile ../../other/scripts/desktop/menu-qalc.sh);
in with lib; {
imports = [
./audio.nix
./gaming.nix
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
./dunst.nix
./compositing.nix
./ios-compat.nix
./syncthing.nix
./kdeconnect.nix
./themeing.nix
./cloud.nix
./networking.nix
./polybar.nix
./social.nix
./mail.nix
./specific-hardware
./evremap.nix
./xmonad.nix
./firefox.nix
];
in
with lib; {
imports = [
./audio.nix
./gaming.nix
./creative.nix # TODO: more fine grained choices, not every setup needs fspy or rawtherapee
./dunst.nix
./compositing.nix
./ios-compat.nix
./syncthing.nix
./kdeconnect.nix
./themeing.nix
./cloud.nix
./networking.nix
./polybar.nix
./social.nix
./mail.nix
./specific-hardware
./evremap.nix
./xmonad.nix
./firefox.nix
];
i18n.inputMethod = {
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
fcitx5-mozc
fcitx5-gtk
];
};
};
programs.seahorse.enable = true;
security.pam.services.jade.enableGnomeKeyring = true;
programs.seahorse.enable = true;
security.pam.services.jade.enableGnomeKeyring = true;
virtualisation.libvirtd.enable = true;
virtualisation.libvirtd.enable = true;
services = {
printing.enable = true;
gnome.gnome-keyring.enable = true;
services = {
printing.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;
lockerCommand = "${pkgs.i3lock}/bin/i3lock";
};
layout = "us";
xkbVariant = "altgr-intl";
services.illum.enable = true;
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;
};
desktopManager = {
xterm.enable = false;
};
displayManager = {
defaultSession = "none+xmonad";
gdm.enable = true;
programs.rofi = {
enable = true;
theme = ../../other/rofi-themes/applauncher.rasi;
};
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;
};
};
};
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 = {
enable = true;
settings = {
@ -7,7 +7,7 @@
dmenu = "${pkgs.rofi}/bin/rofi -theme gruvbox-dark -dmenu -p dunst";
browser = "${pkgs.librewolf}/bin/librewolf";
mouse_left_click = "context";
mouse_middle_click = "close_current";
mouse_middle_click = "close_current";
background = "#282828";
foreground = "#ebdbb2";
frame_color = "#504945";

View file

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

View file

@ -1,365 +1,397 @@
{ ... }: {
home-manager.users.jade = { pkgs, ... }: {
home.file = {
".tridactylrc" = {
text = ''
set editorcmd kitty hx %f +%l
set newtab about:blank
'';
};
};
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
nativeMessagingHosts = [
pkgs.tridactyl-native
];
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install = [
"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/privacy-badger17"
"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/bitwarden-password-manager"
"https://addons.mozilla.org/firefox/downloads/latest/terms-of-service-didnt-read"
];
Extensions.Uninstall = [
"google@search.mozilla.org"
"bing@search.mozilla.org"
"amazondotcom@search.mozilla.org"
"ebay@search.mozilla.org"
"twitter@search.mozilla.org"
];
"DisableFirefoxStudies" = true;
"DisableTelemetry" = true;
"DisableFeedbackCommands" = true;
"DisablePocket" = true;
};
profiles.jade = {
bookmarks = [
{
name = "Toolbar";
toolbar = true;
bookmarks = [
{
name = "Katzencafé";
tags = [ "fedi" "social" ];
keyword = "ck";
url = "https://ck.katzen.cafe";
}
{
name = "Mastodon.de";
tags = [ "fedi" "social" ];
keyword = "mde";
url = "https://mastodon.de";
}
{
name = "Nekoverse";
tags = [ "fedi" "social" ];
keyword = "neko";
url = "https://social.nekover.se";
}
{
name = "Katzenschmiede";
tags = [ "fedi" "git" ];
keyword = "forge";
url = "https://forge.katzen.cafe";
}
{
name = "Katzenwolke";
tags = [ "cloud" ];
keyword = "wolke";
url = "https://wolke.katzen.cafe";
}
{
name = "Penpot";
tags = [ "design" ];
keyword = "pp";
url = "https://design.katzen.cafe";
}
{
name = "Pad";
tags = [ "pad" ];
keyword = "pad";
url = "https://pad.katzen.cafe";
}
{
name = "Auth";
tags = [ "keycloak" ];
keyword = "auth";
url = "https://auth.katzen.cafe/realms/katzen.cafe/account";
}
{
name = "CCCHH";
bookmarks = [
{
name = "Website";
url = "https://hamburg.ccc.de";
}
{
name = "Wiki";
url = "https://wiki.ccchh.net";
}
{
name = "Wiki (old)";
url = "https://wiki.hamburg.ccc.de";
}
{
name = "Wiki (nonpublic)";
url = "https://nonpublic.wiki.hamburg.ccc.de";
}
{
name = "Pads";
url = "https://pad.hamburg.ccc.de";
}
{
name = "Cloud";
url = "https://cloud.hamburg.ccc.de";
}
{
name = "Club Assistant";
url = "https://club-assistant.ccchh.net";
}
];
}
];
}
];
search = {
force = true;
default = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "pkgs" ];
};
"Nix Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "opts" ];
};
"Home manager Options" = {
urls = [{
template = "https://mipmip.github.io/home-manager-option-search/";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "hm" ];
};
"NixOS Wiki" = {
urls = [{
template = "https://nixos.wiki/index.php?title=Special:Search&amp;search={searchTerms}&amp;namespace=0";
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "nxwk" ];
};
"lib.rs" = {
urls = [{
template = "https://lib.rs/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
icon = "https://lib.rs/favicon.png";
definedAliases = [ "libs" ];
};
"rust docs" = {
urls = [{
template = "https://docs.rs/releases/search";
params = [
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = [ "docs" ];
};
"rust std docs" = {
urls = [{
template = "https://docs.rust-lang.org/std/index.html";
params = [
{ name = "search"; value = "{searchTerms}"; }
];
}];
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;
{...}: {
home-manager.users.jade = {pkgs, ...}: {
home.file = {
".tridactylrc" = {
text = ''
set editorcmd kitty hx %f +%l
set newtab about:blank
'';
};
};
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
nativeMessagingHosts = [
pkgs.tridactyl-native
];
};
policies = {
DefaultDownloadDirectory = "\${home}/Downloads";
Extensions.Install = [
"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/privacy-badger17"
"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/bitwarden-password-manager"
"https://addons.mozilla.org/firefox/downloads/latest/terms-of-service-didnt-read"
];
Extensions.Uninstall = [
"google@search.mozilla.org"
"bing@search.mozilla.org"
"amazondotcom@search.mozilla.org"
"ebay@search.mozilla.org"
"twitter@search.mozilla.org"
];
"DisableFirefoxStudies" = true;
"DisableTelemetry" = true;
"DisableFeedbackCommands" = true;
"DisablePocket" = true;
};
profiles.jade = {
bookmarks = [
{
name = "Toolbar";
toolbar = true;
bookmarks = [
{
name = "Katzencafé";
tags = ["fedi" "social"];
keyword = "ck";
url = "https://ck.katzen.cafe";
}
{
name = "Mastodon.de";
tags = ["fedi" "social"];
keyword = "mde";
url = "https://mastodon.de";
}
{
name = "Nekoverse";
tags = ["fedi" "social"];
keyword = "neko";
url = "https://social.nekover.se";
}
{
name = "Katzenschmiede";
tags = ["fedi" "git"];
keyword = "forge";
url = "https://forge.katzen.cafe";
}
{
name = "Katzenwolke";
tags = ["cloud"];
keyword = "wolke";
url = "https://wolke.katzen.cafe";
}
{
name = "Penpot";
tags = ["design"];
keyword = "pp";
url = "https://design.katzen.cafe";
}
{
name = "Pad";
tags = ["pad"];
keyword = "pad";
url = "https://pad.katzen.cafe";
}
{
name = "Auth";
tags = ["keycloak"];
keyword = "auth";
url = "https://auth.katzen.cafe/realms/katzen.cafe/account";
}
{
name = "CCCHH";
bookmarks = [
{
name = "Website";
url = "https://hamburg.ccc.de";
}
{
name = "Wiki";
url = "https://wiki.ccchh.net";
}
{
name = "Wiki (old)";
url = "https://wiki.hamburg.ccc.de";
}
{
name = "Wiki (nonpublic)";
url = "https://nonpublic.wiki.hamburg.ccc.de";
}
{
name = "Pads";
url = "https://pad.hamburg.ccc.de";
}
{
name = "Cloud";
url = "https://cloud.hamburg.ccc.de";
}
{
name = "Club Assistant";
url = "https://club-assistant.ccchh.net";
}
];
}
];
}
];
search = {
force = true;
default = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["pkgs"];
};
"Nix Options" = {
urls = [
{
template = "https://search.nixos.org/options";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["opts"];
};
"Home manager Options" = {
urls = [
{
template = "https://mipmip.github.io/home-manager-option-search/";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["hm"];
};
"NixOS Wiki" = {
urls = [
{
template = "https://nixos.wiki/index.php?title=Special:Search&amp;search={searchTerms}&amp;namespace=0";
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = ["nxwk"];
};
"lib.rs" = {
urls = [
{
template = "https://lib.rs/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
icon = "https://lib.rs/favicon.png";
definedAliases = ["libs"];
};
"rust docs" = {
urls = [
{
template = "https://docs.rs/releases/search";
params = [
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "https://docs.rs/-/static/favicon.ico";
definedAliases = ["docs"];
};
"rust std docs" = {
urls = [
{
template = "https://docs.rust-lang.org/std/index.html";
params = [
{
name = "search";
value = "{searchTerms}";
}
];
}
];
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;
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shopping.experience2023.enabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"browser.ping-centre.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
"geo.provider.network.logging.enabled" = true;
"extensions.getAddons.showPane" = false;
"extensions.htmlaboutaddons.recommendations.enabled" = false;
"browser.discovery.enabled" = false;
"browser.shopping.experience2023.enabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"datareporting.healthreport.uploadEnabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
"toolkit.coverage.endpoint.base" = "";
"browser.ping-centre.telemetry" = false;
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"app.shield.optoutstudies.enabled" = false;
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
"browser.safebrowsing.downloads.enabled" = false;
"browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.url" = "";
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.allowOverride" = false;
"browser.safebrowsing.malware.enabled" = false;
"browser.safebrowsing.phishing.enabled" = false;
"browser.safebrowsing.downloads.enabled" = false;
"browser.safebrowsing.downloads.remote.enabled" = false;
"browser.safebrowsing.downloads.remote.url" = "";
"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false;
"browser.safebrowsing.downloads.remote.block_uncommon" = false;
"browser.safebrowsing.allowOverride" = false;
"network.prefetch-next" = false;
"network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true;
"network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false;
"network.http.speculative-parallel-limit" = 0;
"browser.places.speculativeConnect.enabled" = false;
"browser.send_pings" = false;
"network.prefetch-next" = false;
"network.dns.disablePrefetch" = true;
"network.dns.disablePrefetchFromHTTPS" = true;
"network.predictor.enabled" = false;
"network.predictor.enable-prefetch" = false;
"network.http.speculative-parallel-limit" = 0;
"browser.places.speculativeConnect.enabled" = false;
"browser.send_pings" = false;
"browser.urlbar.pocket.featureGate" = false;
"browser.urlbar.weather.featureGate" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.search.suggest.enabled" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.trending.featureGate" = false;
"browser.urlbar.pocket.featureGate" = false;
"browser.urlbar.weather.featureGate" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"browser.urlbar.suggest.quicksuggest.nonsponsored" = false;
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
"browser.search.suggest.enabled" = false;
"browser.urlbar.suggest.searches" = false;
"browser.urlbar.trending.featureGate" = false;
"security.ssl.require_safe_negotiation" = true;
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
"security.ssl.require_safe_negotiation" = true;
"security.remote_settings.crlite_filters.enabled" = true;
"security.pki.crlite_mode" = 2;
"dom.security.https_only_mode" = true;
"dom.security.https_only_mode_pbm" = true;
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
"network.http.referer.XOriginTrimmingPolicy" = 2;
"dom.security.https_only_mode" = true;
"dom.security.https_only_mode_pbm" = true;
"security.ssl.treat_unsafe_negotiation_as_broken" = true;
"browser.xul.error_pages.expert_bad_cert" = true;
"network.http.referer.XOriginTrimmingPolicy" = 2;
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.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;
"privacy.userContext.enabled" = true;
"privacy.userContext.ui.enabled" = true;
"privacy.userContext.newTabContainerOnLeftClick.enabled" = 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;
"dom.disable_window_move_resize" = true;
"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";
}
];
};
};
};
};
"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;
"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, ... }:
let
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.gaming;
in 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.packages = with pkgs; [
lutris
prismlauncher
];
in
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.packages = with pkgs; [
lutris
prismlauncher
];
};
};
}

View file

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

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }:
let cfg = config.jade.desktop.kdeconnect;
in with lib; {
options.jade.desktop.kdeconnect = {
enable = mkEnableOption "Enable KDE connect";
};
config = mkIf cfg.enable {
programs.kdeconnect.enable = true;
home-manager.users.jade = { pkgs, ... }: {
services.kdeconnect = {
enable = true;
indicator = true;
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.kdeconnect;
in
with lib; {
options.jade.desktop.kdeconnect = {
enable = mkEnableOption "Enable KDE connect";
};
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, ... }:
let
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.mail;
imap = {
host = "imap.migadu.com";
@ -11,63 +14,64 @@ let
port = 465;
tls.enable = true;
};
in with lib; {
options.jade.desktop.mail = {
enable = mkEnableOption "Enable thunderbird mail stuff";
};
config = mkIf cfg.enable {
home-manager.users.jade = { pkgs, ... }: {
accounts.email.accounts = {
"Jade" = rec {
inherit imap smtp;
address = "jade@schrottkatze.de";
userName = address;
realName = "Jade";
thunderbird.enable = true;
primary = true;
in
with lib; {
options.jade.desktop.mail = {
enable = mkEnableOption "Enable thunderbird mail stuff";
};
config = mkIf cfg.enable {
home-manager.users.jade = {pkgs, ...}: {
accounts.email.accounts = {
"Jade" = rec {
inherit imap smtp;
address = "jade@schrottkatze.de";
userName = address;
realName = "Jade";
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 {
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;
};
};
programs.thunderbird = {
enable = true;
profiles.jade = {
isDefault = true;
programs.thunderbird = {
enable = true;
profiles.jade = {
isDefault = true;
};
};
};
};
};
}
}

View file

@ -1,10 +1,14 @@
{ config, lib, pkgs, ... }:
let
addNuShebang = path: builtins.concatStringsSep "\n\n" [
"#!${pkgs.nushellFull}/bin/nu"
(builtins.readFile path)
];
{
config,
lib,
pkgs,
...
}: let
addNuShebang = path:
builtins.concatStringsSep "\n\n" [
"#!${pkgs.nushellFull}/bin/nu"
(builtins.readFile path)
];
in {
config = {
networking = {
@ -40,25 +44,25 @@ in {
];
};
};
environment.etc = (with builtins; (
environment.etc = with builtins; (
listToAttrs (
map (v: {
name = "networkhooks/${v}";
name = "networkhooks/${v}";
value = {
text = addNuShebang ../../other/scripts/networkhooks/${v};
text = addNuShebang ../../other/scripts/networkhooks/${v};
mode = "0755";
};
})
})
(attrNames (readDir ../../other/scripts/networkhooks))
)
));
);
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
networkmanagerapplet
mullvad-vpn
speedtest-cli
speedtest-cli
];
};
};

View file

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

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }:
let cfg = config.jade.desktop.social;
in with lib; {
options.jade.desktop.social = {
enable = mkEnableOption "Enable social apps";
};
config = mkIf cfg.enable {
home-manager.users.jade = { pkgs, ... }: {
home.packages = with pkgs; [
evolutionWithPlugins
schildichat-desktop
mumble
];
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.social;
in
with lib; {
options.jade.desktop.social = {
enable = mkEnableOption "Enable social apps";
};
};
}
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
./wacom.nix
];

View file

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

View file

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

View file

@ -1,16 +1,21 @@
{ config, lib, pkgs, ... }:
let cfg = config.jade.desktop.syncthing;
in with lib; {
options.jade.desktop.syncthing = {
enable = mkEnableOption "Enable syncing via syncthing";
};
config = mkIf cfg.enable {
services.syncthing = rec {
enable = true;
user = "jade";
dataDir = "/home/${user}/Documents";
configDir = "/home/${user}/Documents/.config/syncthing";
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.desktop.syncthing;
in
with lib; {
options.jade.desktop.syncthing = {
enable = mkEnableOption "Enable syncing via 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 = {
fonts.packages = with pkgs; [
atkinson-hyperlegible
];
home-manager.users.jade = { pkgs, ... }: {
home-manager.users.jade = {pkgs, ...}: {
home.packages = with pkgs; [
gtk-engine-murrine
gruvbox-dark-gtk
gtk-engine-murrine
gruvbox-dark-gtk
gruvbox-dark-icons-gtk
];
gtk = {
@ -18,7 +21,7 @@
name = "phinger-cursors";
size = 30;
};
font = {
font = {
package = pkgs.atkinson-hyperlegible;
name = "Atkinson Hyperlegible";
size = 11.5;
@ -31,7 +34,7 @@
package = pkgs.gruvbox-dark-gtk;
name = "gruvbox-dark";
};
};
};
qt = {
enable = true;
platformTheme = "gtk";

View file

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

View file

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

View file

@ -1,17 +1,22 @@
{ config, lib, pkgs, ... }:
let cfg = config.jade.flatpak;
in with lib; {
options.jade.flatpak = {
enable = mkEnableOption "Enable flatpak";
};
config = mkIf cfg.enable {
services.flatpak.enable = true;
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.flatpak;
in
with lib; {
options.jade.flatpak = {
enable = mkEnableOption "Enable flatpak";
};
};
}
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 = {
enable = true;
userName = "Schrottkatze";
@ -16,37 +16,37 @@
programs.gitui = {
enable = true;
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_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
move_up: Some(( code: Char('k'), 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,),)),
move_left: Some(( code: Char('h'), modifiers: ( bits: 0,),)),
move_right: Some(( code: Char('l'), modifiers: ( bits: 0,),)),
move_up: Some(( code: Char('k'), modifiers: ( bits: 0,),)),
move_down: Some(( code: Char('j'), modifiers: ( bits: 0,),)),
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,),)),
diff_stage_lines: Some(( code: Char('s'), modifiers: ( bits: 0,),)),
status_reset_item: Some(( code: Char('U'), modifiers: ( bits: 1,),)),
stashing_save: Some(( code: Char('w'), modifiers: ( bits: 0,),)),
stashing_toggle_index: Some(( code: Char('m'), modifiers: ( bits: 0,),)),
diff_reset_lines: Some(( code: Char('u'), 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 = {
enable = true;
};

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,44 +1,49 @@
{ config, lib, pkgs, ... }:
let cfg = config.jade.terminal;
in with lib; {
options.jade.terminal = {
enable = mkEnableOption "Enable Kitty";
};
config = mkIf cfg.enable {
environment.sessionVariables = rec {
TERMINAL = "kitty";
{
config,
lib,
pkgs,
...
}: let
cfg = config.jade.terminal;
in
with lib; {
options.jade.terminal = {
enable = mkEnableOption "Enable Kitty";
};
home-manager.users.jade = { pkgs,... } : {
programs.kitty = {
enable = true;
font = {
name = "FiraCode Nerd Font";
size = 11;
};
settings = {
#adjust_column_width = "70%";
color0 = "#282828";
color8 = "#928374";
color1 = "#cc241d";
color9 = "#fb4934";
color2 = "#98971a";
color10 = "#b8bb26";
color3 = "#d79921";
color11 = "#fabd2f";
color4 = "#458588";
color12 = "#83a598";
color5 = "#b16286";
color13 = "#d3869b";
color6 = "#689d6a";
color14 = "#8ec07c";
color7 = "#a89984";
color15 = "#ebdbb2";
foreground = "#ebdbb2";
background = "#282828";
confirm_os_window_close = 0;
config = mkIf cfg.enable {
environment.sessionVariables = rec {
TERMINAL = "kitty";
};
home-manager.users.jade = {pkgs, ...}: {
programs.kitty = {
enable = true;
font = {
name = "FiraCode Nerd Font";
size = 11;
};
settings = {
#adjust_column_width = "70%";
color0 = "#282828";
color8 = "#928374";
color1 = "#cc241d";
color9 = "#fb4934";
color2 = "#98971a";
color10 = "#b8bb26";
color3 = "#d79921";
color11 = "#fabd2f";
color4 = "#458588";
color12 = "#83a598";
color5 = "#b16286";
color13 = "#d3869b";
color6 = "#689d6a";
color14 = "#8ec07c";
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
writeNuShellApplication =
{ name
, text
, runtimeInputs ? [ ]
, meta ? { }
, checkPhase ? null
}:
writeNuShellApplication = {
name,
text,
runtimeInputs ? [],
meta ? {},
checkPhase ? null,
}:
writeTextFile {
inherit name meta;
executable = true;
destination = "/bin/${name}";
allowSubstitutes = true;
preferLocalBuild = false;
text = ''
#!${pkgs.nushell}
'' + lib.optionalString (runtimeInputs != [ ]) ''
text =
''
#!${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 =
# GHC (=> shellcheck) isn't supported on some platforms (such as risc-v)
# but we still want to use writeShellApplication on those platforms
if checkPhase == null then ''
if checkPhase == null
then ''
runHook preCheck
nu -c "nu-check -d $target"
runHook postCheck
''
else checkPhase;
};
packageNushellApplication =
{ name
, path
, runtimeInputs ? [ ]
, meta ? { }
, checkPhase ? null
}:
packageNushellApplication = {
name,
path,
runtimeInputs ? [],
meta ? {},
checkPhase ? null,
}:
writeNuShellApplication {
inherit name runtimeInputs meta checkPhase;
text = builtins.readFile path;

View file

@ -1,35 +1,35 @@
{ pkgs, ... }:
{pkgs, ...}:
pkgs.writeShellScriptBin "desktopctl" ''
case $@ in
"Lock Screen")
loginctl lock-session
exit 0
;;
"Log Out")
pkill xmonad
exit 0
;;
"Shut Down")
shutdown now
exit 0
;;
"Reboot")
systemctl reboot
exit 0
;;
esac
case $@ in
"Lock Screen")
loginctl lock-session
exit 0
;;
"Log Out")
pkill xmonad
exit 0
;;
"Shut Down")
shutdown now
exit 0
;;
"Reboot")
systemctl reboot
exit 0
;;
esac
# resizes grid
echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n"
# 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"
# swaps grid and input bar
echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n"
# fixes brown line below input bar
echo -en "\0theme\x1finputbar{margin:0;}\n"
# resizes grid
echo -en "\0theme\x1flistview,inputbar,message{columns:4;lines:1;}\n"
# 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"
# swaps grid and input bar
echo -en "\0theme\x1fmainbox{children:[listview,inputbar];}\n"
# fixes brown line below input bar
echo -en "\0theme\x1finputbar{margin:0;}\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 "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n"
echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.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 "Shut Down\0icon\x1f${../../../other/assets/desktopctl/shutdown.svg}\n"
echo -en "Reboot\0icon\x1f${../../../other/assets/desktopctl/reboot.svg}\n"
''