Format code with alejandra

This commit is contained in:
2022-04-23 17:52:45 +01:00
parent 0d56231235
commit d90883e404
27 changed files with 743 additions and 677 deletions

100
flake.nix
View File

@@ -1,51 +1,73 @@
{ {
description = "My System Configs"; description = "My System Configs";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable"; nixpkgs.url = "nixpkgs/nixos-unstable";
i3utils.url = "git+https://git.sr.ht/~dpatterbee/i3utils?ref=main"; i3utils.url = "git+https://git.sr.ht/~dpatterbee/i3utils?ref=main";
i3utils.inputs.nixpkgs.follows = "nixpkgs"; i3utils.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager/master"; home-manager.url = "github:nix-community/home-manager/master";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { nixpkgs, home-manager, i3utils, ... }@inputs: outputs = {
let nixpkgs,
system = "x86_64-linux"; home-manager,
i3utils,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system; inherit system;
}; };
lib = nixpkgs.lib; lib = nixpkgs.lib;
hostSystem = { hostname, headless }: lib.nixosSystem { hostSystem = {
inherit system; hostname,
headless,
}:
lib.nixosSystem {
inherit system;
modules = [ modules = [
./hosts/${hostname}/configuration.nix ./hosts/${hostname}/configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
users = import ./users; users = import ./users;
extraSpecialArgs = {inherit hostname; inherit headless;}; extraSpecialArgs = {
}; inherit hostname;
} inherit headless;
]; };
};
}
];
specialArgs = {inherit inputs;}; specialArgs = {inherit inputs;};
}; };
in {
in { nixosConfigurations = {
nixosConfigurations = { dingbox = hostSystem {
dingbox = hostSystem { hostname = "dingbox"; headless = false; }; hostname = "dingbox";
miniding = hostSystem { hostname = "miniding"; headless = false; }; headless = false;
pingbox = hostSystem { hostname = "pingbox"; headless = false; }; };
dingserver = hostSystem { hostname = "dingserver"; headless = true; }; miniding = hostSystem {
}; hostname = "miniding";
}; headless = false;
};
pingbox = hostSystem {
hostname = "pingbox";
headless = false;
};
dingserver = hostSystem {
hostname = "dingserver";
headless = true;
};
};
};
} }

View File

@@ -1,6 +1,9 @@
{ config, pkgs, lib, ...}:
{ {
config,
pkgs,
lib,
...
}: {
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = lib.mkDefault true; boot.loader.systemd-boot.enable = lib.mkDefault true;
@@ -37,7 +40,7 @@
isNormalUser = true; isNormalUser = true;
home = "/home/daniel"; home = "/home/daniel";
initialPassword = "password"; initialPassword = "password";
extraGroups = [ "wheel" "networkmanager" "docker" "video" "syncthing" ]; extraGroups = ["wheel" "networkmanager" "docker" "video" "syncthing"];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
@@ -58,7 +61,7 @@
]; ];
environment.homeBinInPath = true; environment.homeBinInPath = true;
environment.variables = { environment.variables = {
EDITOR = "hx"; EDITOR = "hx";
}; };
@@ -67,7 +70,7 @@
enable = true; enable = true;
ohMyZsh = { ohMyZsh = {
enable = true; enable = true;
plugins = [ "git" "fzf" ]; plugins = ["git" "fzf"];
theme = "agnoster"; theme = "agnoster";
}; };
}; };

View File

@@ -1,6 +1,9 @@
{ config, pkgs, inputs, ...}:
{ {
config,
pkgs,
inputs,
...
}: {
security.pam.services.gdm.enableGnomeKeyring = true; security.pam.services.gdm.enableGnomeKeyring = true;
# Enable the X11 windowing system. # Enable the X11 windowing system.
hardware.opengl.driSupport32Bit = true; hardware.opengl.driSupport32Bit = true;
@@ -9,13 +12,12 @@
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
programs.nm-applet.enable = true; programs.nm-applet.enable = true;
services = { services = {
gnome.gnome-keyring.enable = true; gnome.gnome-keyring.enable = true;
pipewire = { pipewire = {
enable = true; enable = true;
pulse.enable = true; pulse.enable = true;
}; };
xserver = { xserver = {
@@ -46,4 +48,3 @@
}; };
}; };
} }

View File

@@ -1,27 +1,26 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
./hardware-configuration.nix ...
../common }: {
../common/graphical imports = [
]; # Include the results of the hardware scan.
./hardware-configuration.nix
../common
../common/graphical
];
services.xserver = { services.xserver = {
dpi = 144; dpi = 144;
videoDrivers = [ "nvidia" ]; videoDrivers = ["nvidia"];
screenSection = '' screenSection = ''
Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}" Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On}"
Option "AllowIndirectGLXProtocol" "off" Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on" Option "TripleBuffer" "on"
''; '';
}; };
hardware.nvidia.modesetting.enable = true; hardware.nvidia.modesetting.enable = true;
@@ -38,4 +37,3 @@
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.05"; # Did you read the comment? system.stateVersion = "21.05"; # Did you read the comment?
} }

View File

@@ -1,29 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ehci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/1c0e1988-4420-4485-bf16-ffb8ec854c69"; device = "/dev/disk/by-uuid/1c0e1988-4420-4485-bf16-ffb8ec854c69";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/F5EA-A9CB"; device = "/dev/disk/by-uuid/F5EA-A9CB";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [];
# high-resolution display # high-resolution display
hardware.video.hidpi.enable = lib.mkDefault true; hardware.video.hidpi.enable = lib.mkDefault true;

View File

@@ -1,12 +1,13 @@
{ pkgs, lib, ... }:
{ {
networking.firewall.allowedTCPPorts = [ 80 8448 443 ]; pkgs,
lib,
...
}: {
networking.firewall.allowedTCPPorts = [80 8448 443];
services.caddy = { services.caddy = {
enable = true; enable = true;
virtualHosts = { virtualHosts = {
"matrix.broccoli.town" = { "matrix.broccoli.town" = {
extraConfig = '' extraConfig = ''
reverse_proxy /_matrix/* http://localhost:8008 reverse_proxy /_matrix/* http://localhost:8008
@@ -37,14 +38,15 @@
X-Content-Type-Options "nosniff" X-Content-Type-Options "nosniff"
X-Robots-Tag "noindex, noarchive, nofollow" X-Robots-Tag "noindex, noarchive, nofollow"
} }
root * ${pkgs.element-web.override { root * ${
conf = { pkgs.element-web.override {
default_server_config."m.homeserver" = { conf = {
"base_url" = "https://broccoli.town"; default_server_config."m.homeserver" = {
"server_name" = "broccoli.town"; "base_url" = "https://broccoli.town";
"server_name" = "broccoli.town";
};
}; };
}; }
}
} }
file_server file_server
''; '';
@@ -57,7 +59,6 @@
file_server file_server
''; '';
}; };
}; };
}; };
} }

View File

@@ -1,14 +1,17 @@
{ config, pkgs, lib, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
../common lib,
./hardware-configuration.nix ...
./caddy.nix }: {
./synapse.nix imports = [
./syncthing.nix # Include the results of the hardware scan.
]; ../common
./hardware-configuration.nix
./caddy.nix
./synapse.nix
./syncthing.nix
];
# Force disable the common boot loader # Force disable the common boot loader
boot.loader.systemd-boot.enable = lib.mkForce false; boot.loader.systemd-boot.enable = lib.mkForce false;
@@ -29,6 +32,4 @@
]; ];
system.stateVersion = "21.11"; # Did you read the comment? system.stateVersion = "21.11"; # Did you read the comment?
} }

View File

@@ -1,24 +1,28 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/profiles/qemu-guest.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ]; boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ ]; boot.kernelModules = [];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/f91229ad-de6b-49ad-8858-e49fea85e8a1"; device = "/dev/disk/by-uuid/f91229ad-de6b-49ad-8858-e49fea85e8a1";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [];
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,8 +1,11 @@
{ config, pkgs, lib, ... }:
{ {
config,
pkgs,
lib,
...
}: {
services.grafana = { services.grafana = {
enable = true; enable = true;
}; };
services.prometheus = { services.prometheus = {
@@ -14,9 +17,11 @@
{ {
job_name = "synapse"; job_name = "synapse";
metrics_path = "/_synapse/metrics"; metrics_path = "/_synapse/metrics";
static_configs = [{ static_configs = [
targets = ["localhost:9000"]; {
}]; targets = ["localhost:9000"];
}
];
} }
]; ];
}; };

View File

@@ -1,5 +1,9 @@
{ config, pkgs, lib, ... }: {
let config,
pkgs,
lib,
...
}: let
fqdn = "matrix.broccoli.town"; fqdn = "matrix.broccoli.town";
in { in {
services.matrix-synapse = { services.matrix-synapse = {
@@ -16,7 +20,7 @@ in {
x_forwarded = true; x_forwarded = true;
resources = [ resources = [
{ {
names = [ "client" "federation" ]; names = ["client" "federation"];
compress = false; compress = false;
} }
]; ];

View File

@@ -1,5 +1,9 @@
{ config, pkgs, lib, ... }:
{ {
config,
pkgs,
lib,
...
}: {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
}; };

View File

@@ -1,16 +1,17 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
./hardware-configuration.nix ...
../common }: {
../common/graphical imports = [
]; # Include the results of the hardware scan.
./hardware-configuration.nix
../common
../common/graphical
];
networking = { networking = {
hostName = "miniding"; hostName = "miniding";
@@ -21,7 +22,7 @@
services.xserver = { services.xserver = {
dpi = 144; dpi = 144;
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave
@@ -30,4 +31,3 @@
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.05"; # Did you read the comment? system.stateVersion = "21.05"; # Did you read the comment?
} }

View File

@@ -1,28 +1,31 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/6a362ee7-854b-4a5b-8989-e65af01b9b99"; device = "/dev/disk/by-uuid/6a362ee7-854b-4a5b-8989-e65af01b9b99";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/C103-FFC1"; device = "/dev/disk/by-uuid/C103-FFC1";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ];
swapDevices = [];
} }

View File

@@ -1,16 +1,17 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{ {
imports = config,
[ # Include the results of the hardware scan. pkgs,
./hardware-configuration.nix ...
../common }: {
../common/graphical imports = [
]; # Include the results of the hardware scan.
./hardware-configuration.nix
../common
../common/graphical
];
powerManagement = { powerManagement = {
enable = true; enable = true;
@@ -55,6 +56,4 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "21.05"; # Did you read the comment? system.stateVersion = "21.05"; # Did you read the comment?
} }

View File

@@ -1,29 +1,33 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/3d0e0831-a08a-4d97-ad5b-d07448346dee"; device = "/dev/disk/by-uuid/3d0e0831-a08a-4d97-ad5b-d07448346dee";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/C4F1-BE4C"; device = "/dev/disk/by-uuid/C4F1-BE4C";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [ ]; swapDevices = [];
# The global useDHCP flag is deprecated, therefore explicitly set to false here. # The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config # Per-interface useDHCP will be mandatory in the future, so this generated config

View File

@@ -1,192 +1,205 @@
{ config, lib, pkgs, ...}: {
config,
let lib,
mod = "Mod4"; pkgs,
...
}: let
mod = "Mod4";
in { in {
home.file = {
"bin/scripts/goup" = {
source = ./goup;
executable = true;
};
"bin/scripts/godown" = {
source = ./godown;
executable = true;
};
};
xsession = {
enable = true;
home.file = { windowManager.i3 = {
"bin/scripts/goup" = { enable = true;
source = ./goup; package = pkgs.i3-gaps;
executable = true; config = {
}; bars = [
"bin/scripts/godown" = { {
source = ./godown; colors = {
executable = true; background = "#282A36";
}; statusline = "#F8F8F2";
}; separator = "#44475A";
xsession = {
enable = true;
windowManager.i3 = { activeWorkspace = {
enable = true; border = "#282A36";
package = pkgs.i3-gaps; background = "#44475A";
config = { text = "#F8F8F2";
bars = [ };
{ focusedWorkspace = {
colors = { border = "#44475A";
background = "#282A36"; background = "#44475A";
statusline = "#F8F8F2"; text = "#F8F8F2";
separator = "#44475A"; };
inactiveWorkspace = {
border = "#282A36";
background = "#282A36";
text = "#BFBFBF";
};
urgentWorkspace = {
border = "#FF5555";
background = "#FF5555";
text = "#F8F8F2";
};
bindingMode = {
border = "#FF5555";
background = "#FF5555";
text = "#F8F8F2";
};
};
fonts = {
size = 11.0;
};
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs /home/daniel/.config/i3status-rust/config-main.toml";
position = "top";
}
];
colors = {
focused = {
border = "#6272A4";
background = "#6272A4";
text = "#F8F8F2";
indicator = "#6272A4";
childBorder = "#6272A4";
};
focusedInactive = {
border = "#44475A";
background = "#44475A";
text = "#F8F8F2";
indicator = "#44475A";
childBorder = "#44475A";
};
unfocused = {
border = "#282A36";
background = "#282A36";
text = "#BFBFBF";
indicator = "#282A36";
childBorder = "#282A36";
};
urgent = {
border = "#44475A";
background = "#FF5555";
text = "#F8F8F2";
indicator = "#FF5555";
childBorder = "#FF5555";
};
placeholder = {
border = "#282A36";
background = "#282A36";
text = "#F8F8F2";
indicator = "#282A36";
childBorder = "#282A36";
};
background = "#F8F8F2";
};
activeWorkspace = { defaultWorkspace = "workspace number 1";
border = "#282A36";
background = "#44475A";
text = "#F8F8F2";
};
focusedWorkspace = {
border = "#44475A";
background = "#44475A";
text = "#F8F8F2";
};
inactiveWorkspace = {
border = "#282A36";
background = "#282A36";
text = "#BFBFBF";
};
urgentWorkspace = {
border = "#FF5555";
background = "#FF5555";
text = "#F8F8F2";
};
bindingMode = {
border = "#FF5555";
background = "#FF5555";
text = "#F8F8F2";
};
};
fonts = {
size = 11.0;
};
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs /home/daniel/.config/i3status-rust/config-main.toml";
position = "top";
}
];
colors = {
focused = {
border = "#6272A4";
background = "#6272A4";
text = "#F8F8F2";
indicator = "#6272A4";
childBorder = "#6272A4";
};
focusedInactive = {
border = "#44475A";
background = "#44475A";
text = "#F8F8F2";
indicator = "#44475A";
childBorder = "#44475A";
};
unfocused = {
border = "#282A36";
background = "#282A36";
text = "#BFBFBF";
indicator = "#282A36";
childBorder = "#282A36";
};
urgent = {
border = "#44475A";
background = "#FF5555";
text = "#F8F8F2";
indicator = "#FF5555";
childBorder = "#FF5555";
};
placeholder = {
border = "#282A36";
background = "#282A36";
text = "#F8F8F2";
indicator = "#282A36";
childBorder = "#282A36";
};
background = "#F8F8F2";
};
defaultWorkspace = "workspace number 1"; floating = {
modifier = mod;
criteria = [
{instance = "pavucontrol";}
];
};
floating = { focus = {
modifier = mod; followMouse = false;
criteria = [ };
{ instance = "pavucontrol"; }
];
};
focus = { fonts = {
followMouse = false; names = ["pango:monospace 8"];
}; style = "monospace";
size = 8.0;
};
fonts = { gaps = {
names = [ "pango:monospace 8" ]; outer = lib.mkDefault 10;
style = "monospace"; inner = lib.mkDefault 5;
size = 8.0; smartBorders = "on";
}; };
gaps = { keybindings = lib.mkOptionDefault {
outer = lib.mkDefault 10; "${mod}+q" = "kill";
inner = lib.mkDefault 5; "${mod}+d" = "exec rofi -show drun";
smartBorders = "on";
};
keybindings = lib.mkOptionDefault { "${mod}+h" = "focus left";
"${mod}+q" = "kill"; "${mod}+j" = "focus down";
"${mod}+d" = "exec rofi -show drun"; "${mod}+k" = "focus up";
"${mod}+l" = "focus right";
"${mod}+h" = "focus left"; "${mod}+Shift+h" = "move left";
"${mod}+j" = "focus down"; "${mod}+Shift+l" = "move right";
"${mod}+k" = "focus up";
"${mod}+l" = "focus right";
"${mod}+Shift+h" = "move left"; "${mod}+Tab" = "workspace back_and_forth";
"${mod}+Shift+l" = "move right";
"${mod}+Tab" = "workspace back_and_forth"; "${mod}+b" = "split h";
"${mod}+v" = "split v";
"${mod}+Control+Return" = "exec --no-startup-id i3utils workspace new";
"${mod}+Control+Shift+Return" = "exec --no-startup-id i3utils workspace new -b";
"${mod}+Shift+Return" = "exec --no-startup-id i3utils workspace new -n, move next";
"${mod}+b" = "split h"; "${mod}+Control+j" = "exec --no-startup-id $HOME/bin/scripts/godown";
"${mod}+v" = "split v"; "${mod}+Control+k" = "exec --no-startup-id $HOME/bin/scripts/goup";
"${mod}+Control+Return" = "exec --no-startup-id i3utils workspace new"; "${mod}+Control+h" = "exec --no-startup-id i3utils workspace new -b";
"${mod}+Control+Shift+Return" = "exec --no-startup-id i3utils workspace new -b";
"${mod}+Shift+Return" = "exec --no-startup-id i3utils workspace new -n, move next";
"${mod}+Control+j" = "exec --no-startup-id $HOME/bin/scripts/godown"; "${mod}+Shift+k" = "exec --no-startup-id i3utils window move prev";
"${mod}+Control+k" = "exec --no-startup-id $HOME/bin/scripts/goup"; "${mod}+Shift+j" = "exec --no-startup-id i3utils window move next";
"${mod}+Control+h" = "exec --no-startup-id i3utils workspace new -b";
"${mod}+Shift+k" = "exec --no-startup-id i3utils window move prev"; "${mod}+p" = "scratchpad show";
"${mod}+Shift+j" = "exec --no-startup-id i3utils window move next";
"${mod}+p" = "scratchpad show"; "${mod}+Escape" = "exec loginctl lock-session";
"${mod}+Escape" = "exec loginctl lock-session"; "XF86MonBrightnessUp" = "exec xbacklight -inc 10";
"XF86MonBrightnessDown" = "exec xbacklight -dec 10";
"XF86AudioMute" = "exec pamixer -t";
"XF86AudioLowerVolume" = "exec pamixer -d 10";
"XF86AudioRaiseVolume" = "exec pamixer -i 10";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioPlay" = "exec playerctl play-pause";
"XF86AudioNext" = "exec playerctl next";
"XF86MonBrightnessUp" = "exec xbacklight -inc 10"; "Mod1+Shift+4" = "exec flameshot gui -s -p ~/Pictures/screenshots";
"XF86MonBrightnessDown" = "exec xbacklight -dec 10"; };
"XF86AudioMute" = "exec pamixer -t";
"XF86AudioLowerVolume" = "exec pamixer -d 10";
"XF86AudioRaiseVolume" = "exec pamixer -i 10";
"XF86AudioPrev" = "exec playerctl previous";
"XF86AudioPlay" = "exec playerctl play-pause";
"XF86AudioNext" = "exec playerctl next";
"Mod1+Shift+4" = "exec flameshot gui -s -p ~/Pictures/screenshots"; modifier = mod;
};
modifier = mod; startup = [
{
command = "$HOME/bin/scripts/flower";
always = true;
}
{
command = "feh --bg-fill $HOME/wallpapers/wallpaper.jpg";
always = false;
}
];
startup = [ terminal = "kitty";
{ command = "$HOME/bin/scripts/flower"; always = true; }
{ command = "feh --bg-fill $HOME/wallpapers/wallpaper.jpg"; always = false; }
];
terminal = "kitty"; window = {
border = lib.mkDefault 2;
window = { titlebar = false;
border = lib.mkDefault 2; commands = [
titlebar = false; {
commands = [ command = "move position center #2116 46";
{ command = "move position center #2116 46"; criteria = { class = "jetbrains-toolbox"; }; } criteria = {class = "jetbrains-toolbox";};
{ command = "move scratchpad"; criteria = { instance = "spotify"; }; } }
]; {
}; command = "move scratchpad";
criteria = {instance = "spotify";};
}; }
}; ];
}; };
};
};
};
} }

View File

@@ -1,9 +1,11 @@
{ config, pkgs, ... }:
{ {
programs.i3status-rust = { config,
enable = true; pkgs,
bars = { ...
}: {
programs.i3status-rust = {
enable = true;
bars = {
main = { main = {
theme = "dracula"; theme = "dracula";
icons = "awesome"; icons = "awesome";
@@ -37,13 +39,13 @@
{ {
block = "music"; block = "music";
player = "spotify"; player = "spotify";
buttons = [ "prev" "play" "next" ]; buttons = ["prev" "play" "next"];
} }
{ {
block = "sound"; block = "sound";
} }
]; ];
}; };
}; };
}; };
} }

View File

@@ -1,20 +1,16 @@
{pkgs, ...}: {pkgs, ...}: {
services.polybar = {
enable = true;
{ package = pkgs.polybar.override {
services.polybar = { i3Support = true;
enable = true; pulseSupport = true;
};
package = pkgs.polybar.override { script = ''
i3Support = true; polybar main & disown
pulseSupport = true; '';
};
script = '' config = ./config;
polybar main & disown };
'';
config = ./config;
};
} }

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.rofi = { programs.rofi = {
enable = true; enable = true;
theme = ./colour.rasi; theme = ./colour.rasi;

View File

@@ -1,88 +1,86 @@
{ pkgs, ... }: {pkgs, ...}: {
programs.alacritty = {
enable = false;
settings = {
font = {
normal = {
family = "Iosevka";
style = "Regular";
};
};
{ cursor = {
programs.alacritty = { style = {
enable = false; shape = "Underline";
settings = { };
font = { };
normal = {
family = "Iosevka";
style = "Regular";
};
};
cursor = { colors = {
style= { primary = {
shape = "Underline"; background = "0x282a36";
}; foreground = "0xf8f8f2";
}; };
cursor = {
colors = { text = "CellBackground";
primary = { cursor = "CellForeground";
background = "0x282a36"; };
foreground = "0xf8f8f2"; vi_mode_cursor = {
}; text = "CellBackground";
cursor = { cursor = "CellForeground";
text = "CellBackground"; };
cursor = "CellForeground"; search = {
}; matches = {
vi_mode_cursor = { foreground = "0x44475a";
text = "CellBackground"; background = "0x50fa7b";
cursor = "CellForeground"; };
}; focused_match = {
search = { foreground = "0x44475a";
matches = { background = "0xffb86c";
foreground = "0x44475a"; };
background = "0x50fa7b"; bar = {
}; background = "0x282a36";
focused_match = { foreground = "0xf8f8f2";
foreground = "0x44475a"; };
background = "0xffb86c"; };
}; line_indicator = {
bar = { foreground = "None";
background = "0x282a36"; background = "None";
foreground = "0xf8f8f2"; };
}; selection = {
}; text = "CellForeground";
line_indicator = { background = "0x44475a";
foreground = "None"; };
background = "None"; normal = {
}; black = "0x000000";
selection = { red = "0xff5555";
text = "CellForeground"; green = "0x50fa7b";
background = "0x44475a"; yellow = "0xf1fa8c";
}; blue = "0xbd93f9";
normal = { magenta = "0xff79c6";
black = "0x000000"; cyan = "0x8be9fd";
red = "0xff5555"; white = "0xbfbfbf";
green = "0x50fa7b"; };
yellow = "0xf1fa8c"; bright = {
blue = "0xbd93f9"; black = "0x4d4d4d";
magenta = "0xff79c6"; red = "0xff6e67";
cyan = "0x8be9fd"; green = "0x5af78e";
white = "0xbfbfbf"; yellow = "0xf4f99d";
}; blue = "0xcaa9fa";
bright = { magenta = "0xff92d0";
black = "0x4d4d4d"; cyan = "0x9aedfe";
red = "0xff6e67"; white = "0xe6e6e6";
green = "0x5af78e"; };
yellow = "0xf4f99d"; dim = {
blue = "0xcaa9fa"; black = "0x14151b";
magenta = "0xff92d0"; red = "0xff2222";
cyan = "0x9aedfe"; green = "0x1ef956";
white = "0xe6e6e6"; yellow = "0xebf85b";
}; blue = "0x4d5b86";
dim = { magenta = "0xff46b0";
black = "0x14151b"; cyan = "0x59dffc";
red = "0xff2222"; white = "0xe6e6d1";
green = "0x1ef956"; };
yellow = "0xebf85b"; };
blue = "0x4d5b86"; };
magenta = "0xff46b0"; };
cyan = "0x59dffc";
white = "0xe6e6d1";
};
};
};
};
} }

View File

@@ -1,7 +1,6 @@
{...}: {...}: {
{
home.file.".config/helix" = { home.file.".config/helix" = {
source = ./config; source = ./config;
recursive = true; recursive = true;
}; };
} }

View File

@@ -1,6 +1,4 @@
{ pkgs, ... }: {pkgs, ...}: {
{
programs.kitty = { programs.kitty = {
enable = true; enable = true;
font = { font = {

View File

@@ -1,31 +1,30 @@
{ pkgs, ... }: {pkgs, ...}: {
programs.neovim = {
enable = true;
{ plugins = with pkgs.vimPlugins; [
programs.neovim = { (nvim-treesitter.withPlugins (
enable = true; plugins:
with plugins; [
#tree-sitter-nix
tree-sitter-go
tree-sitter-c
tree-sitter-rust
tree-sitter-vim
tree-sitter-lua
tree-sitter-python
tree-sitter-html
tree-sitter-json
tree-sitter-markdown
tree-sitter-javascript
tree-sitter-typescript
]
))
vim-nix
plugins = with pkgs.vimPlugins; [ nvim-lspconfig
(nvim-treesitter.withPlugins ( ];
plugins: with plugins; [ viAlias = true;
#tree-sitter-nix vimAlias = true;
tree-sitter-go };
tree-sitter-c
tree-sitter-rust
tree-sitter-vim
tree-sitter-lua
tree-sitter-python
tree-sitter-html
tree-sitter-json
tree-sitter-markdown
tree-sitter-javascript
tree-sitter-typescript
]
))
vim-nix
nvim-lspconfig
];
viAlias = true;
vimAlias = true;
};
} }

View File

@@ -1,156 +1,157 @@
{ pkgs, lib, fetchurl, hostname, headless, ... }:
let
cliPackages = with pkgs; [
aerc
entr
go_1_18
gomuks
gopls
oh-my-zsh
(
let
my-python-packages = python-packages: with python-packages; [
tkinter
requests
];
python-with-my-packages = python3.withPackages my-python-packages;
in
python-with-my-packages
)
ranger
restic
rust-analyzer
starship
];
guiPackages = with pkgs; [
_1password
_1password-gui
discord
feh
iosevka
jetbrains.goland
mpv
nerdfonts
pamixer
pavucontrol
playerctl
spotify
xclip
];
in
{ {
imports = [ pkgs,
lib,
fetchurl,
hostname,
headless,
...
}: let
cliPackages = with pkgs; [
aerc
entr
go_1_18
gomuks
gopls
oh-my-zsh
(
let
my-python-packages = python-packages:
with python-packages; [
tkinter
requests
];
python-with-my-packages = python3.withPackages my-python-packages;
in
python-with-my-packages
)
ranger
restic
rust-analyzer
starship
];
./configs/system guiPackages = with pkgs; [
_1password
_1password-gui
discord
feh
iosevka
jetbrains.goland
mpv
nerdfonts
pamixer
pavucontrol
playerctl
spotify
xclip
];
in {
imports =
[
./configs/system
]
++ lib.optionals (!headless) [
./configs/desktop
]
++ lib.optionals (builtins.pathExists ./host-specific/${hostname}) [
./host-specific/${hostname}
];
] ++ lib.optionals (!headless) [ home = {
username = "daniel";
homeDirectory = "/home/daniel";
sessionPath = [
"$HOME/go/bin"
];
./configs/desktop file = {
".icons/default".source = "${pkgs.capitaine-cursors}/share/icons/capitaine-cursors";
] ++ lib.optionals (builtins.pathExists ./host-specific/${hostname}) [ "bin/update" = {
source = ../../scripts/update;
executable = true;
};
./host-specific/${hostname} "bin/supdate" = {
source = ../../scripts/supdate;
executable = true;
};
};
]; packages = cliPackages ++ lib.optionals (!headless) guiPackages;
home = { keyboard = {
username = "daniel"; layout = "gb";
homeDirectory = "/home/daniel"; options = [
sessionPath = [ "caps:escape"
"$HOME/go/bin" ];
]; };
file = { stateVersion = "21.05";
".icons/default".source = "${pkgs.capitaine-cursors}/share/icons/capitaine-cursors"; };
"bin/update" = { programs = {
source = ../../scripts/update; # Let Home Manager install and manage itself.
executable = true; home-manager.enable = true;
};
"bin/supdate" = { fzf = {
source = ../../scripts/supdate; enable = true;
executable = true; enableZshIntegration = true;
}; };
};
packages = cliPackages ++ lib.optionals (!headless) guiPackages; git = {
enable = true;
package = pkgs.gitFull;
userName = "Daniel Patterson";
userEmail = "me@danielpatterson.dev";
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
format.signOff = "yes";
sendemail = {
smtpUser = "me@danielpatterson.dev";
smtpServer = "smtp.fastmail.com";
smtpEncryption = "tls";
smtpServerPort = 587;
};
};
};
keyboard = { lazygit = {
layout = "gb"; enable = true;
options = [ settings = {
"caps:escape" gui = {
]; showFileTree = false;
}; };
};
};
stateVersion = "21.05"; starship.enable = true;
};
programs = { vscode.enable = true;
# Let Home Manager install and manage itself. zsh = {
home-manager.enable = true; enable = true;
enableAutosuggestions = true;
oh-my-zsh = {
enable = true;
plugins = ["git" "fzf"];
theme = "agnoster";
};
};
};
fzf = { services = {
enable = true; dunst.enable = true;
enableZshIntegration = true;
};
git = { syncthing = {
enable = true; enable = true;
package = pkgs.gitFull; };
userName = "Daniel Patterson";
userEmail = "me@danielpatterson.dev";
extraConfig = {
pull.rebase = true;
init.defaultBranch = "main";
format.signOff = "yes";
sendemail = {
smtpUser = "me@danielpatterson.dev";
smtpServer = "smtp.fastmail.com";
smtpEncryption = "tls";
smtpServerPort = 587;
};
};
};
lazygit = {
enable = true;
settings = {
gui = {
showFileTree = false;
};
};
};
starship.enable = true;
vscode.enable = true;
zsh = {
enable = true;
enableAutosuggestions = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" "fzf" ];
theme = "agnoster";
};
};
};
services ={
dunst.enable = true;
syncthing = {
enable = true;
};
screen-locker = {
enable = true;
lockCmd = "${pkgs.i3lock}/bin/i3lock -i /home/daniel/wallpapers/lock.png";
inactiveInterval = 60;
};
};
screen-locker = {
enable = true;
lockCmd = "${pkgs.i3lock}/bin/i3lock -i /home/daniel/wallpapers/lock.png";
inactiveInterval = 60;
};
};
} }

View File

@@ -1,12 +1,15 @@
{ config, lib, pkgs, ...}:
{ {
home.file = { config,
"wallpapers" = { lib,
source = ./wallpapers; pkgs,
}; ...
}; }: {
home.file = {
"wallpapers" = {
source = ./wallpapers;
};
};
programs.alacritty.settings.font.size = 13; programs.alacritty.settings.font.size = 13;
programs.kitty.font.size = 22; programs.kitty.font.size = 22;
} }

View File

@@ -1,20 +1,23 @@
{ config, lib, pkgs, ...}:
{ {
services.picom = { config,
enable = true; lib,
vSync = true; pkgs,
}; ...
}: {
services.picom = {
enable = true;
vSync = true;
};
xsession.windowManager.i3.config.gaps.outer = 6; xsession.windowManager.i3.config.gaps.outer = 6;
xsession.windowManager.i3.config.gaps.inner = 5; xsession.windowManager.i3.config.gaps.inner = 5;
home.file = { home.file = {
wallpapers = { wallpapers = {
source = ./wallpapers; source = ./wallpapers;
}; };
}; };
programs.alacritty.settings.font.size = 10; programs.alacritty.settings.font.size = 10;
programs.kitty.font.size = 19; programs.kitty.font.size = 19;
} }

View File

@@ -1,18 +1,21 @@
{ config, lib, pkgs, ...}:
{ {
home = { config,
file = { lib,
"wallpapers" = { pkgs,
source = ./wallpapers; ...
}; }: {
}; home = {
}; file = {
"wallpapers" = {
source = ./wallpapers;
};
};
};
programs.kitty.font.size = 19; programs.kitty.font.size = 19;
services.picom = { services.picom = {
enable = true; enable = true;
vSync = true; vSync = true;
}; };
} }