From 8a1314b58f19b1555ba20fd3ac0b8466934ea3c4 Mon Sep 17 00:00:00 2001 From: Jade Date: Sun, 26 Nov 2023 21:26:49 +0100 Subject: [PATCH] installed and ran alejandra as formatter --- common.nix | 69 +- flake.nix | 37 +- hosts/catbook-j/configuration.nix | 35 +- hosts/catbook-j/hardware-configuration.nix | 70 +- .../monosodium-glutamate-g/configuration.nix | 44 +- .../hardware-configuration.nix | 60 +- hosts/potatobook-g/configuration.nix | 76 +- hosts/potatobook-g/hardware-configuration.nix | 70 +- hosts/potatobook-g/iso.nix | 6 +- mac-brcm-fw/default.nix | 4 +- modules/default.nix | 5 +- modules/desktop/audio.nix | 25 +- modules/desktop/cloud.nix | 37 +- modules/desktop/compositing.nix | 32 +- modules/desktop/creative.nix | 26 +- modules/desktop/default.nix | 274 ++++--- modules/desktop/dunst.nix | 6 +- modules/desktop/evremap.nix | 37 +- modules/desktop/firefox.nix | 742 +++++++++--------- modules/desktop/gaming.nix | 36 +- modules/desktop/ios-compat.nix | 49 +- modules/desktop/kdeconnect.nix | 35 +- modules/desktop/mail.nix | 122 +-- modules/desktop/networking.nix | 34 +- modules/desktop/polybar.nix | 17 +- modules/desktop/social.nix | 37 +- modules/desktop/specific-hardware/default.nix | 8 +- .../desktop/specific-hardware/spacenav.nix | 9 +- modules/desktop/specific-hardware/uhk.nix | 0 modules/desktop/specific-hardware/wacom.nix | 4 +- modules/desktop/syncthing.nix | 35 +- modules/desktop/themeing.nix | 17 +- modules/desktop/xmonad.nix | 9 +- modules/firewall.nix | 23 +- modules/flatpak.nix | 37 +- modules/git.nix | 52 +- modules/shell/carapace.nix | 4 +- modules/shell/default.nix | 2 +- modules/shell/direnv.nix | 4 +- modules/shell/helix.nix | 17 +- modules/shell/nu.nix | 6 +- modules/shell/starship.nix | 6 +- modules/shell/zellij.nix | 29 +- modules/template.nix | 26 +- modules/terminal.nix | 85 +- modules/utils.nix | 55 +- other/scripts/desktop/desktopctl.nix | 62 +- 47 files changed, 1362 insertions(+), 1113 deletions(-) delete mode 100644 modules/desktop/specific-hardware/uhk.nix diff --git a/common.nix b/common.nix index 066d2e1..44bb9dc 100644 --- a/common.nix +++ b/common.nix @@ -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; } - diff --git a/flake.nix b/flake.nix index 7ae3086..8d10e4c 100644 --- a/flake.nix +++ b/flake.nix @@ -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}"; }; diff --git a/hosts/catbook-j/configuration.nix b/hosts/catbook-j/configuration.nix index b0daeeb..0109deb 100644 --- a/hosts/catbook-j/configuration.nix +++ b/hosts/catbook-j/configuration.nix @@ -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? - } diff --git a/hosts/catbook-j/hardware-configuration.nix b/hosts/catbook-j/hardware-configuration.nix index 4124bce..a692904 100644 --- a/hosts/catbook-j/hardware-configuration.nix +++ b/hosts/catbook-j/hardware-configuration.nix @@ -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 diff --git a/hosts/monosodium-glutamate-g/configuration.nix b/hosts/monosodium-glutamate-g/configuration.nix index 2bc7bcf..0e25498 100644 --- a/hosts/monosodium-glutamate-g/configuration.nix +++ b/hosts/monosodium-glutamate-g/configuration.nix @@ -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? } - - - diff --git a/hosts/monosodium-glutamate-g/hardware-configuration.nix b/hosts/monosodium-glutamate-g/hardware-configuration.nix index 259bfda..b04b33c 100644 --- a/hosts/monosodium-glutamate-g/hardware-configuration.nix +++ b/hosts/monosodium-glutamate-g/hardware-configuration.nix @@ -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 diff --git a/hosts/potatobook-g/configuration.nix b/hosts/potatobook-g/configuration.nix index 8925823..bf48281 100644 --- a/hosts/potatobook-g/configuration.nix +++ b/hosts/potatobook-g/configuration.nix @@ -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? } - - diff --git a/hosts/potatobook-g/hardware-configuration.nix b/hosts/potatobook-g/hardware-configuration.nix index e59ff73..31a176a 100644 --- a/hosts/potatobook-g/hardware-configuration.nix +++ b/hosts/potatobook-g/hardware-configuration.nix @@ -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 diff --git a/hosts/potatobook-g/iso.nix b/hosts/potatobook-g/iso.nix index cc81080..b99407f 100644 --- a/hosts/potatobook-g/iso.nix +++ b/hosts/potatobook-g/iso.nix @@ -1,9 +1,11 @@ -{config, pkgs, ...}: { + config, + pkgs, + ... +}: { imports = [ ./configuration.nix ]; } - diff --git a/mac-brcm-fw/default.nix b/mac-brcm-fw/default.nix index 0537c32..0ce5a72 100644 --- a/mac-brcm-fw/default.nix +++ b/mac-brcm-fw/default.nix @@ -1,3 +1,3 @@ -{ ... }: {} - +{...}: {} # dummy + diff --git a/modules/default.nix b/modules/default.nix index b001950..4a225f4 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,6 +1,5 @@ -{ ... }: -{ - imports = [ +{...}: { + imports = [ ./shell ./desktop ./terminal.nix diff --git a/modules/desktop/audio.nix b/modules/desktop/audio.nix index e61b48e..ce1053e 100644 --- a/modules/desktop/audio.nix +++ b/modules/desktop/audio.nix @@ -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; } ]; }; diff --git a/modules/desktop/cloud.nix b/modules/desktop/cloud.nix index 7c45a3d..47f66ec 100644 --- a/modules/desktop/cloud.nix +++ b/modules/desktop/cloud.nix @@ -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 + ]; + }; + }; + } diff --git a/modules/desktop/compositing.nix b/modules/desktop/compositing.nix index cf46cc2..7936f80 100644 --- a/modules/desktop/compositing.nix +++ b/modules/desktop/compositing.nix @@ -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; }; }; # }}} - }; -} + }; + } diff --git a/modules/desktop/creative.nix b/modules/desktop/creative.nix index a2b042c..f0c9f2d 100644 --- a/modules/desktop/creative.nix +++ b/modules/desktop/creative.nix @@ -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 ]; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 979dcdf..518b300 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -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; - }; - }; -} + } diff --git a/modules/desktop/dunst.nix b/modules/desktop/dunst.nix index a8042ee..f971e22 100644 --- a/modules/desktop/dunst.nix +++ b/modules/desktop/dunst.nix @@ -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"; diff --git a/modules/desktop/evremap.nix b/modules/desktop/evremap.nix index 98e8380..cbb72a2 100644 --- a/modules/desktop/evremap.nix +++ b/modules/desktop/evremap.nix @@ -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"; + }; }; }; - }; -} + } diff --git a/modules/desktop/firefox.nix b/modules/desktop/firefox.nix index 8a42462..ab993df 100644 --- a/modules/desktop/firefox.nix +++ b/modules/desktop/firefox.nix @@ -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&search={searchTerms}&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&search={searchTerms}&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"; + } + ]; + }; + }; + }; + }; } diff --git a/modules/desktop/gaming.nix b/modules/desktop/gaming.nix index ff11744..8f7c5e9 100644 --- a/modules/desktop/gaming.nix +++ b/modules/desktop/gaming.nix @@ -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 + ]; + }; + }; + } diff --git a/modules/desktop/ios-compat.nix b/modules/desktop/ios-compat.nix index c5c9950..0805f95 100644 --- a/modules/desktop/ios-compat.nix +++ b/modules/desktop/ios-compat.nix @@ -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 + ]; + }; }; - }; -} + } diff --git a/modules/desktop/kdeconnect.nix b/modules/desktop/kdeconnect.nix index 84d48fc..5133f5c 100644 --- a/modules/desktop/kdeconnect.nix +++ b/modules/desktop/kdeconnect.nix @@ -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; + }; }; }; - }; -} + } diff --git a/modules/desktop/mail.nix b/modules/desktop/mail.nix index 5348d40..e52807b 100644 --- a/modules/desktop/mail.nix +++ b/modules/desktop/mail.nix @@ -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; + }; }; }; }; - }; -} + } diff --git a/modules/desktop/networking.nix b/modules/desktop/networking.nix index 7665144..cfa2f5b 100644 --- a/modules/desktop/networking.nix +++ b/modules/desktop/networking.nix @@ -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 ]; }; }; diff --git a/modules/desktop/polybar.nix b/modules/desktop/polybar.nix index d6b96b9..9e6fd03 100644 --- a/modules/desktop/polybar.nix +++ b/modules/desktop/polybar.nix @@ -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; diff --git a/modules/desktop/social.nix b/modules/desktop/social.nix index a893320..e54b562 100644 --- a/modules/desktop/social.nix +++ b/modules/desktop/social.nix @@ -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 + ]; + }; + }; + } diff --git a/modules/desktop/specific-hardware/default.nix b/modules/desktop/specific-hardware/default.nix index 7e629b4..8faabd2 100644 --- a/modules/desktop/specific-hardware/default.nix +++ b/modules/desktop/specific-hardware/default.nix @@ -1,6 +1,10 @@ -{ config, lib, pkgs, ... }: { - imports = [ + config, + lib, + pkgs, + ... +}: { + imports = [ ./spacenav.nix ./wacom.nix ]; diff --git a/modules/desktop/specific-hardware/spacenav.nix b/modules/desktop/specific-hardware/spacenav.nix index 7f87d58..5d2a12c 100644 --- a/modules/desktop/specific-hardware/spacenav.nix +++ b/modules/desktop/specific-hardware/spacenav.nix @@ -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"; }; } diff --git a/modules/desktop/specific-hardware/uhk.nix b/modules/desktop/specific-hardware/uhk.nix deleted file mode 100644 index e69de29..0000000 diff --git a/modules/desktop/specific-hardware/wacom.nix b/modules/desktop/specific-hardware/wacom.nix index bb9bb82..104cc68 100644 --- a/modules/desktop/specific-hardware/wacom.nix +++ b/modules/desktop/specific-hardware/wacom.nix @@ -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 diff --git a/modules/desktop/syncthing.nix b/modules/desktop/syncthing.nix index 8c08e86..f44e40c 100644 --- a/modules/desktop/syncthing.nix +++ b/modules/desktop/syncthing.nix @@ -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"; + }; + }; + } diff --git a/modules/desktop/themeing.nix b/modules/desktop/themeing.nix index 11dfb86..b310287 100644 --- a/modules/desktop/themeing.nix +++ b/modules/desktop/themeing.nix @@ -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"; diff --git a/modules/desktop/xmonad.nix b/modules/desktop/xmonad.nix index 7af43aa..38b58e9 100644 --- a/modules/desktop/xmonad.nix +++ b/modules/desktop/xmonad.nix @@ -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; diff --git a/modules/firewall.nix b/modules/firewall.nix index 78c616c..d790480 100644 --- a/modules/firewall.nix +++ b/modules/firewall.nix @@ -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 ]; }; diff --git a/modules/flatpak.nix b/modules/flatpak.nix index 53faff4..cd44ac7 100644 --- a/modules/flatpak.nix +++ b/modules/flatpak.nix @@ -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 + ]; + }; + }; + } diff --git a/modules/git.nix b/modules/git.nix index d2e94f6..0fb0ee9 100644 --- a/modules/git.nix +++ b/modules/git.nix @@ -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,),)), + ) ''; }; }; diff --git a/modules/shell/carapace.nix b/modules/shell/carapace.nix index 0890d1d..3bd3c24 100644 --- a/modules/shell/carapace.nix +++ b/modules/shell/carapace.nix @@ -1,5 +1,5 @@ -{ ... }: { - home-manager.users.jade = { pkgs, ... }: { +{...}: { + home-manager.users.jade = {pkgs, ...}: { programs.carapace = { enable = true; }; diff --git a/modules/shell/default.nix b/modules/shell/default.nix index 17fb426..309259f 100644 --- a/modules/shell/default.nix +++ b/modules/shell/default.nix @@ -1,4 +1,4 @@ -{ ... }: { +{...}: { imports = [ ./helix.nix ./nu.nix diff --git a/modules/shell/direnv.nix b/modules/shell/direnv.nix index cdcdd98..c5f22ff 100644 --- a/modules/shell/direnv.nix +++ b/modules/shell/direnv.nix @@ -1,5 +1,5 @@ -{ ... }: { - home-manager.users.jade = { pkgs, ... }: { +{...}: { + home-manager.users.jade = {pkgs, ...}: { programs.direnv = { enable = true; nix-direnv.enable = true; diff --git a/modules/shell/helix.nix b/modules/shell/helix.nix index bfedd1f..66fb716 100644 --- a/modules/shell/helix.nix +++ b/modules/shell/helix.nix @@ -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"]; } ]; }; diff --git a/modules/shell/nu.nix b/modules/shell/nu.nix index 4b9f206..c09f5dc 100644 --- a/modules/shell/nu.nix +++ b/modules/shell/nu.nix @@ -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; }; } diff --git a/modules/shell/starship.nix b/modules/shell/starship.nix index 570a101..588ebe1 100644 --- a/modules/shell/starship.nix +++ b/modules/shell/starship.nix @@ -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 = " "; }; diff --git a/modules/shell/zellij.nix b/modules/shell/zellij.nix index 0bd88e5..7efcb57 100644 --- a/modules/shell/zellij.nix +++ b/modules/shell/zellij.nix @@ -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; }; diff --git a/modules/template.nix b/modules/template.nix index 3633753..745d5f6 100644 --- a/modules/template.nix +++ b/modules/template.nix @@ -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 { + }; + } diff --git a/modules/terminal.nix b/modules/terminal.nix index d75952b..1366350 100644 --- a/modules/terminal.nix +++ b/modules/terminal.nix @@ -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; + }; }; }; }; - }; -} + } diff --git a/modules/utils.nix b/modules/utils.nix index 566dbe4..1de413c 100644 --- a/modules/utils.nix +++ b/modules/utils.nix @@ -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; diff --git a/other/scripts/desktop/desktopctl.nix b/other/scripts/desktop/desktopctl.nix index 4a5a38d..117f6ea 100644 --- a/other/scripts/desktop/desktopctl.nix +++ b/other/scripts/desktop/desktopctl.nix @@ -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" ''