mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 17:31:34 +01:00
Switch to nixfmt
This commit is contained in:
parent
1d70117186
commit
b38d2df431
55 changed files with 1559 additions and 1540 deletions
136
flake.nix
136
flake.nix
|
|
@ -1,84 +1,70 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
|
||||||
|
|
||||||
wrapper-manager = {
|
|
||||||
url = "github:viperML/wrapper-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
disko = {
|
|
||||||
url = "github:nix-community/disko";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
sops-nix = {
|
|
||||||
url = "github:Mic92/sops-nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
nix-index-database = {
|
|
||||||
url = "github:Mic92/nix-index-database";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
nix-vscode-extensions = {
|
|
||||||
url = "github:nix-community/nix-vscode-extensions";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
wrapper-manager = {
|
||||||
self,
|
url = "github:viperML/wrapper-manager";
|
||||||
nixpkgs,
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
...
|
};
|
||||||
} @ inputs: let
|
|
||||||
system = "x86_64-linux";
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
in {
|
|
||||||
nixosConfigurations = {
|
|
||||||
north = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {
|
|
||||||
inherit self;
|
|
||||||
inherit inputs;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
./hosts/north
|
|
||||||
"${./.}/users/seb/@north.nix"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
inspiron = nixpkgs.lib.nixosSystem {
|
|
||||||
specialArgs = {
|
|
||||||
inherit self;
|
|
||||||
inherit inputs;
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
./hosts/inspiron
|
|
||||||
"${./.}/users/seb/@inspiron.nix"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
formatter.${system} = nixpkgs.legacyPackages.${system}.alejandra.overrideAttrs {
|
disko = {
|
||||||
passthru.tests.version = {};
|
url = "github:nix-community/disko";
|
||||||
postPatch = ''
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
substituteInPlace src/alejandra/src/builder.rs \
|
};
|
||||||
--replace '2 * build_ctx.indentation' '4 * build_ctx.indentation'
|
|
||||||
substituteInPlace src/alejandra/src/rules/string.rs \
|
|
||||||
--replace 'format!(" {}", line)' 'format!(" {}", line)'
|
|
||||||
substituteInPlace src/alejandra_cli/src/cli.rs \
|
|
||||||
--replace 'eprint!("{}", random_ad());' ""
|
|
||||||
rm -r src/alejandra/tests
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
sops-nix = {
|
||||||
packages = [pkgs.sops];
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-index-database = {
|
||||||
|
url = "github:Mic92/nix-index-database";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix-vscode-extensions = {
|
||||||
|
url = "github:nix-community/nix-vscode-extensions";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{ self, nixpkgs, ... }@inputs:
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations = {
|
||||||
|
north = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {
|
||||||
|
inherit self;
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./hosts/north
|
||||||
|
"${./.}/users/seb/@north.nix"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
inspiron = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {
|
||||||
|
inherit self;
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./hosts/inspiron
|
||||||
|
"${./.}/users/seb/@inspiron.nix"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
devShells.${system}.default = pkgs.mkShell { packages = [ pkgs.sops ]; };
|
||||||
|
|
||||||
|
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
120
hosts/common.nix
120
hosts/common.nix
|
|
@ -1,69 +1,71 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
imports = [../modules/system];
|
{
|
||||||
|
imports = [ ../modules/system ];
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
"nix-command"
|
"nix-command"
|
||||||
"flakes"
|
"flakes"
|
||||||
];
|
];
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
warn-dirty = false;
|
warn-dirty = false;
|
||||||
trusted-users = [
|
trusted-users = [
|
||||||
"root"
|
"root"
|
||||||
"@wheel"
|
"@wheel"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
time.timeZone = "Europe/Berlin";
|
time.timeZone = "Europe/Berlin";
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
i18n.extraLocaleSettings = {
|
i18n.extraLocaleSettings = {
|
||||||
LC_ADDRESS = "de_DE.UTF-8";
|
LC_ADDRESS = "de_DE.UTF-8";
|
||||||
LC_IDENTIFICATION = "de_DE.UTF-8";
|
LC_IDENTIFICATION = "de_DE.UTF-8";
|
||||||
LC_MEASUREMENT = "de_DE.UTF-8";
|
LC_MEASUREMENT = "de_DE.UTF-8";
|
||||||
LC_MONETARY = "de_DE.UTF-8";
|
LC_MONETARY = "de_DE.UTF-8";
|
||||||
LC_NAME = "de_DE.UTF-8";
|
LC_NAME = "de_DE.UTF-8";
|
||||||
LC_NUMERIC = "de_DE.UTF-8";
|
LC_NUMERIC = "de_DE.UTF-8";
|
||||||
LC_PAPER = "de_DE.UTF-8";
|
LC_PAPER = "de_DE.UTF-8";
|
||||||
LC_TELEPHONE = "de_DE.UTF-8";
|
LC_TELEPHONE = "de_DE.UTF-8";
|
||||||
LC_TIME = "de_DE.UTF-8";
|
LC_TIME = "de_DE.UTF-8";
|
||||||
};
|
};
|
||||||
|
|
||||||
console.keyMap = "de-latin1-nodeadkeys";
|
console.keyMap = "de-latin1-nodeadkeys";
|
||||||
|
|
||||||
programs.neovim = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
viAlias = true;
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.git];
|
environment.systemPackages = [ pkgs.git ];
|
||||||
|
|
||||||
fonts.packages = [
|
fonts.packages = [
|
||||||
pkgs.corefonts
|
pkgs.corefonts
|
||||||
pkgs.roboto
|
pkgs.roboto
|
||||||
pkgs.open-sans
|
pkgs.open-sans
|
||||||
(pkgs.nerdfonts.override {
|
(pkgs.nerdfonts.override {
|
||||||
fonts = [
|
fonts = [
|
||||||
"JetBrainsMono"
|
"JetBrainsMono"
|
||||||
"NerdFontsSymbolsOnly"
|
"NerdFontsSymbolsOnly"
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
|
pkg:
|
||||||
|
builtins.elem (pkgs.lib.getName pkg) [
|
||||||
|
"steam"
|
||||||
|
"steam-original"
|
||||||
|
"steam-run"
|
||||||
|
"corefonts"
|
||||||
|
"nvidia-x11"
|
||||||
|
"nvidia-settings"
|
||||||
|
"spotify"
|
||||||
|
"obsidian"
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
users.mutableUsers = false;
|
||||||
builtins.elem (pkgs.lib.getName pkg) [
|
|
||||||
"steam"
|
|
||||||
"steam-original"
|
|
||||||
"steam-run"
|
|
||||||
"corefonts"
|
|
||||||
"nvidia-x11"
|
|
||||||
"nvidia-settings"
|
|
||||||
"spotify"
|
|
||||||
"obsidian"
|
|
||||||
];
|
|
||||||
|
|
||||||
users.mutableUsers = false;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,41 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
imports = [
|
{
|
||||||
../common.nix
|
imports = [
|
||||||
./hardware.nix
|
../common.nix
|
||||||
];
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
networking.hostName = "inspiron";
|
networking.hostName = "inspiron";
|
||||||
|
|
||||||
environment.sessionVariables.FLAKE = "/home/seb/Projects/nixos/my-config";
|
environment.sessionVariables.FLAKE = "/home/seb/Projects/nixos/my-config";
|
||||||
|
|
||||||
myConfig = {
|
myConfig = {
|
||||||
boot-loader = {
|
boot-loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
silent = true;
|
silent = true;
|
||||||
};
|
|
||||||
|
|
||||||
dm.gdm.enable = true;
|
|
||||||
de.hyprland.enable = true;
|
|
||||||
|
|
||||||
wlan.enable = true;
|
|
||||||
bluetooth.enable = true;
|
|
||||||
|
|
||||||
sound.enable = true;
|
|
||||||
vm.qemu.enable = true;
|
|
||||||
flatpak.enable = true;
|
|
||||||
vpn.lgs.enable = true;
|
|
||||||
comma.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
printing.enable = true;
|
|
||||||
syncthing.enable = true;
|
|
||||||
nix-helper = {
|
|
||||||
enable = true;
|
|
||||||
auto-gc.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
dm.gdm.enable = true;
|
||||||
|
de.hyprland.enable = true;
|
||||||
|
|
||||||
services.auto-cpufreq.enable = true;
|
wlan.enable = true;
|
||||||
|
bluetooth.enable = true;
|
||||||
|
|
||||||
|
sound.enable = true;
|
||||||
|
vm.qemu.enable = true;
|
||||||
|
flatpak.enable = true;
|
||||||
|
vpn.lgs.enable = true;
|
||||||
|
comma.enable = true;
|
||||||
|
sops.enable = true;
|
||||||
|
printing.enable = true;
|
||||||
|
syncthing.enable = true;
|
||||||
|
nix-helper = {
|
||||||
|
enable = true;
|
||||||
|
auto-gc.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
services.auto-cpufreq.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,26 @@
|
||||||
{...}: {
|
{ ... }:
|
||||||
fileSystems."/" = {
|
{
|
||||||
device = "/dev/disk/by-uuid/92437114-de06-4a78-9ee3-c7d0ffcabf95";
|
fileSystems."/" = {
|
||||||
fsType = "ext4";
|
device = "/dev/disk/by-uuid/92437114-de06-4a78-9ee3-c7d0ffcabf95";
|
||||||
};
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/D8B4-1218";
|
device = "/dev/disk/by-uuid/D8B4-1218";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [{device = "/dev/disk/by-uuid/1eba93d1-4853-4534-8cfd-5c14e29c6ff6";}];
|
swapDevices = [ { device = "/dev/disk/by-uuid/1eba93d1-4853-4534-8cfd-5c14e29c6ff6"; } ];
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"nvme"
|
"nvme"
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
"ahci"
|
"ahci"
|
||||||
"usb_storage"
|
"usb_storage"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
boot.kernelModules = ["kvm-amd"];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,37 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
imports = [
|
{
|
||||||
../common.nix
|
imports = [
|
||||||
./hardware.nix
|
../common.nix
|
||||||
];
|
./hardware.nix
|
||||||
|
];
|
||||||
|
|
||||||
networking.hostName = "north";
|
networking.hostName = "north";
|
||||||
|
|
||||||
environment.sessionVariables.FLAKE = "/home/seb/Projects/nixos/my-config";
|
environment.sessionVariables.FLAKE = "/home/seb/Projects/nixos/my-config";
|
||||||
|
|
||||||
myConfig = {
|
myConfig = {
|
||||||
boot-loader = {
|
boot-loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
silent = true;
|
silent = true;
|
||||||
};
|
|
||||||
|
|
||||||
dm.gdm.enable = true;
|
|
||||||
de.hyprland.enable = true;
|
|
||||||
|
|
||||||
sound.enable = true;
|
|
||||||
vm.qemu.enable = true;
|
|
||||||
vpn.lgs.enable = true;
|
|
||||||
comma.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
printing.enable = true;
|
|
||||||
syncthing.enable = true;
|
|
||||||
nix-helper = {
|
|
||||||
enable = true;
|
|
||||||
auto-gc.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_6_8;
|
dm.gdm.enable = true;
|
||||||
|
de.hyprland.enable = true;
|
||||||
|
|
||||||
programs.steam.enable = true;
|
sound.enable = true;
|
||||||
|
vm.qemu.enable = true;
|
||||||
|
vpn.lgs.enable = true;
|
||||||
|
comma.enable = true;
|
||||||
|
sops.enable = true;
|
||||||
|
printing.enable = true;
|
||||||
|
syncthing.enable = true;
|
||||||
|
nix-helper = {
|
||||||
|
enable = true;
|
||||||
|
auto-gc.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_6_8;
|
||||||
|
|
||||||
|
programs.steam.enable = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,28 @@
|
||||||
{
|
{
|
||||||
disko.devices.disk.main = {
|
disko.devices.disk.main = {
|
||||||
device = "/dev/nvme0n1";
|
device = "/dev/nvme0n1";
|
||||||
type = "disk";
|
type = "disk";
|
||||||
content = {
|
content = {
|
||||||
type = "gpt";
|
type = "gpt";
|
||||||
partitions = {
|
partitions = {
|
||||||
ESP = {
|
ESP = {
|
||||||
type = "EF00";
|
type = "EF00";
|
||||||
size = "500M";
|
size = "500M";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
format = "vfat";
|
format = "vfat";
|
||||||
mountpoint = "/boot";
|
mountpoint = "/boot";
|
||||||
};
|
};
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "ext4";
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,91 +1,93 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
imports = [
|
{
|
||||||
inputs.disko.nixosModules.default
|
imports = [
|
||||||
./disko.nix
|
inputs.disko.nixosModules.default
|
||||||
];
|
./disko.nix
|
||||||
|
];
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
"ahci"
|
"ahci"
|
||||||
"nvme"
|
"nvme"
|
||||||
"usb_storage"
|
"usb_storage"
|
||||||
"usbhid"
|
"usbhid"
|
||||||
"sd_mod"
|
"sd_mod"
|
||||||
];
|
];
|
||||||
boot.kernelModules = [
|
boot.kernelModules = [
|
||||||
"kvm-amd"
|
"kvm-amd"
|
||||||
"k10temp"
|
"k10temp"
|
||||||
"nct6775"
|
"nct6775"
|
||||||
];
|
];
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
|
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = true;
|
powerManagement.enable = true;
|
||||||
package = let
|
package =
|
||||||
rcu_patch = pkgs.fetchpatch {
|
let
|
||||||
url = "https://github.com/gentoo/gentoo/raw/c64caf53/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch";
|
rcu_patch = pkgs.fetchpatch {
|
||||||
hash = "sha256-eZiQQp2S/asE7MfGvfe6dA/kdCvek9SYa/FFGp24dVg=";
|
url = "https://github.com/gentoo/gentoo/raw/c64caf53/x11-drivers/nvidia-drivers/files/nvidia-drivers-470.223.02-gpl-pfn_valid.patch";
|
||||||
};
|
hash = "sha256-eZiQQp2S/asE7MfGvfe6dA/kdCvek9SYa/FFGp24dVg=";
|
||||||
linux_6_8_patch = pkgs.fetchpatch {
|
};
|
||||||
url = "https://gist.github.com/joanbm/24f4d4f4ec69f0c37038a6cc9d132b43/raw/bacb9bf3617529d54cb9a57ae8dc9f29b41d4362/nvidia-470xx-fix-linux-6.8.patch";
|
linux_6_8_patch = pkgs.fetchpatch {
|
||||||
hash = "sha256-SPLC2uGdjHSy4h9i3YFjQ6se6OCdWYW6tlC0CtqmP50=";
|
url = "https://gist.github.com/joanbm/24f4d4f4ec69f0c37038a6cc9d132b43/raw/bacb9bf3617529d54cb9a57ae8dc9f29b41d4362/nvidia-470xx-fix-linux-6.8.patch";
|
||||||
extraPrefix = "kernel/";
|
hash = "sha256-SPLC2uGdjHSy4h9i3YFjQ6se6OCdWYW6tlC0CtqmP50=";
|
||||||
stripLen = 1;
|
extraPrefix = "kernel/";
|
||||||
};
|
stripLen = 1;
|
||||||
in
|
};
|
||||||
config.boot.kernelPackages.nvidiaPackages.mkDriver {
|
in
|
||||||
version = "535.129.03";
|
config.boot.kernelPackages.nvidiaPackages.mkDriver {
|
||||||
sha256_64bit = "sha256-5tylYmomCMa7KgRs/LfBrzOLnpYafdkKwJu4oSb/AC4=";
|
version = "535.129.03";
|
||||||
sha256_aarch64 = "sha256-i6jZYUV6JBvN+Rt21v4vNstHPIu9sC+2ZQpiLOLoWzM=";
|
sha256_64bit = "sha256-5tylYmomCMa7KgRs/LfBrzOLnpYafdkKwJu4oSb/AC4=";
|
||||||
openSha256 = "sha256-/Hxod/LQ4CGZN1B1GRpgE/xgoYlkPpMh+n8L7tmxwjs=";
|
sha256_aarch64 = "sha256-i6jZYUV6JBvN+Rt21v4vNstHPIu9sC+2ZQpiLOLoWzM=";
|
||||||
settingsSha256 = "sha256-QKN/gLGlT+/hAdYKlkIjZTgvubzQTt4/ki5Y+2Zj3pk=";
|
openSha256 = "sha256-/Hxod/LQ4CGZN1B1GRpgE/xgoYlkPpMh+n8L7tmxwjs=";
|
||||||
persistencedSha256 = "sha256-FRMqY5uAJzq3o+YdM2Mdjj8Df6/cuUUAnh52Ne4koME=";
|
settingsSha256 = "sha256-QKN/gLGlT+/hAdYKlkIjZTgvubzQTt4/ki5Y+2Zj3pk=";
|
||||||
|
persistencedSha256 = "sha256-FRMqY5uAJzq3o+YdM2Mdjj8Df6/cuUUAnh52Ne4koME=";
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
rcu_patch
|
rcu_patch
|
||||||
linux_6_8_patch
|
linux_6_8_patch
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.gpu-temp-reader = {
|
systemd.services.gpu-temp-reader = {
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = [ "multi-user.target" ];
|
||||||
requires = ["fancontrol.service"];
|
requires = [ "fancontrol.service" ];
|
||||||
before = ["fancontrol.service"];
|
before = [ "fancontrol.service" ];
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
${lib.getExe' pkgs.coreutils "touch"} /tmp/nvidia-gpu-temp
|
${lib.getExe' pkgs.coreutils "touch"} /tmp/nvidia-gpu-temp
|
||||||
while :; do
|
while :; do
|
||||||
temp="$(${lib.getExe' config.hardware.nvidia.package "nvidia-smi"} --query-gpu=temperature.gpu --format=csv,noheader,nounits)"
|
temp="$(${lib.getExe' config.hardware.nvidia.package "nvidia-smi"} --query-gpu=temperature.gpu --format=csv,noheader,nounits)"
|
||||||
${lib.getExe' pkgs.coreutils "echo"} "$((temp * 1000))" > /tmp/nvidia-gpu-temp
|
${lib.getExe' pkgs.coreutils "echo"} "$((temp * 1000))" > /tmp/nvidia-gpu-temp
|
||||||
${lib.getExe' pkgs.coreutils "sleep"} 2
|
${lib.getExe' pkgs.coreutils "sleep"} 2
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
hardware.fancontrol = {
|
hardware.fancontrol = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = ''
|
config = ''
|
||||||
# pwm1=rear pwm2=cpu pwm3=front+top pwm4=gpu pwm=motherboard?
|
# pwm1=rear pwm2=cpu pwm3=front+top pwm4=gpu pwm=motherboard?
|
||||||
INTERVAL=2
|
INTERVAL=2
|
||||||
DEVPATH=hwmon1=devices/pci0000:00/0000:00:18.3 hwmon2=devices/platform/nct6775.656
|
DEVPATH=hwmon1=devices/pci0000:00/0000:00:18.3 hwmon2=devices/platform/nct6775.656
|
||||||
DEVNAME=hwmon1=k10temp hwmon2=nct6798
|
DEVNAME=hwmon1=k10temp hwmon2=nct6798
|
||||||
FCTEMPS=hwmon2/pwm1=hwmon2/temp1_input hwmon2/pwm2=hwmon1/temp1_input hwmon2/pwm3=hwmon2/temp1_input hwmon2/pwm4=/tmp/nvidia-gpu-temp
|
FCTEMPS=hwmon2/pwm1=hwmon2/temp1_input hwmon2/pwm2=hwmon1/temp1_input hwmon2/pwm3=hwmon2/temp1_input hwmon2/pwm4=/tmp/nvidia-gpu-temp
|
||||||
FCFANS=hwmon2/pwm1=hwmon2/fan1_input hwmon2/pwm2=hwmon2/fan7_input+hwmon2/fan2_input hwmon2/pwm3=hwmon2/fan3_input hwmon2/pwm4=hwmon2/fan4_input
|
FCFANS=hwmon2/pwm1=hwmon2/fan1_input hwmon2/pwm2=hwmon2/fan7_input+hwmon2/fan2_input hwmon2/pwm3=hwmon2/fan3_input hwmon2/pwm4=hwmon2/fan4_input
|
||||||
MINTEMP=hwmon2/pwm1=35 hwmon2/pwm2=45 hwmon2/pwm3=35 hwmon2/pwm4=40
|
MINTEMP=hwmon2/pwm1=35 hwmon2/pwm2=45 hwmon2/pwm3=35 hwmon2/pwm4=40
|
||||||
MAXTEMP=hwmon2/pwm1=100 hwmon2/pwm2=100 hwmon2/pwm3=100 hwmon2/pwm4=100
|
MAXTEMP=hwmon2/pwm1=100 hwmon2/pwm2=100 hwmon2/pwm3=100 hwmon2/pwm4=100
|
||||||
MINSTART=hwmon2/pwm1=16 hwmon2/pwm2=16 hwmon2/pwm3=16 hwmon2/pwm4=30
|
MINSTART=hwmon2/pwm1=16 hwmon2/pwm2=16 hwmon2/pwm3=16 hwmon2/pwm4=30
|
||||||
MINSTOP=hwmon2/pwm1=16 hwmon2/pwm2=16 hwmon2/pwm3=16 hwmon2/pwm4=30
|
MINSTOP=hwmon2/pwm1=16 hwmon2/pwm2=16 hwmon2/pwm3=16 hwmon2/pwm4=30
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,22 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
wrappers,
|
wrappers,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.clipboard.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.clipboard.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.clipboard.enable {
|
config = lib.mkIf config.myConfig.clipboard.enable {
|
||||||
services.cliphist.enable = true;
|
services.cliphist.enable = true;
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
(pkgs.writeScriptBin "clipboard" ''
|
(pkgs.writeScriptBin "clipboard" ''
|
||||||
${lib.getExe pkgs.cliphist} list | ${lib.getExe (wrappers.rofi {inherit (config.myConfig.de) theme;})} -dmenu -display-columns 2 | ${lib.getExe pkgs.cliphist} decode | ${lib.getExe' pkgs.wl-clipboard "wl-copy"}
|
${lib.getExe pkgs.cliphist} list | ${
|
||||||
'')
|
lib.getExe (wrappers.rofi { inherit (config.myConfig.de) theme; })
|
||||||
];
|
} -dmenu -display-columns 2 | ${lib.getExe pkgs.cliphist} decode | ${lib.getExe' pkgs.wl-clipboard "wl-copy"}
|
||||||
};
|
'')
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hyprland
|
./hyprland
|
||||||
./theme.nix
|
./theme.nix
|
||||||
./waybar.nix
|
./waybar.nix
|
||||||
./hypridlelock.nix
|
./hypridlelock.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,34 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
wrappers,
|
wrappers,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.de.hypridlelock.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.de.hypridlelock.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.de.hypridlelock.enable {
|
config = lib.mkIf config.myConfig.de.hypridlelock.enable {
|
||||||
services.hypridle = {
|
services.hypridle = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
general = {
|
general = {
|
||||||
lock_cmd = let
|
lock_cmd =
|
||||||
hyprlockExe = "${lib.getExe wrappers.hyprlock}";
|
let
|
||||||
in "pidof ${hyprlockExe} || ${hyprlockExe}";
|
hyprlockExe = "${lib.getExe wrappers.hyprlock}";
|
||||||
before_sleep_cmd = "loginctl lock-session";
|
in
|
||||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
"pidof ${hyprlockExe} || ${hyprlockExe}";
|
||||||
};
|
before_sleep_cmd = "loginctl lock-session";
|
||||||
|
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||||
listener = [
|
|
||||||
{
|
|
||||||
timeout = 600;
|
|
||||||
on-timeout = "loginctl lock-session";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
listener = [
|
||||||
|
{
|
||||||
|
timeout = 600;
|
||||||
|
on-timeout = "loginctl lock-session";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,60 +1,61 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
wrappers,
|
wrappers,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
{
|
||||||
wayland.windowManager.hyprland = {
|
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
||||||
enable = true;
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
exec-once = ["${lib.getExe wrappers.hyprpaper}"];
|
exec-once = [ "${lib.getExe wrappers.hyprpaper}" ];
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "de";
|
kb_layout = "de";
|
||||||
kb_variant = "nodeadkeys";
|
kb_variant = "nodeadkeys";
|
||||||
|
|
||||||
accel_profile = "flat";
|
accel_profile = "flat";
|
||||||
};
|
|
||||||
|
|
||||||
device = {
|
|
||||||
name = "dell0b9f:00-27c6:0d43-touchpad";
|
|
||||||
accel_profile = "adaptive";
|
|
||||||
disable_while_typing = true;
|
|
||||||
natural_scroll = true;
|
|
||||||
middle_button_emulation = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
gaps_in = 5;
|
|
||||||
gaps_out = 10;
|
|
||||||
border_size = 1;
|
|
||||||
|
|
||||||
layout = "master";
|
|
||||||
};
|
|
||||||
|
|
||||||
master = {
|
|
||||||
new_is_master = false;
|
|
||||||
no_gaps_when_only = 1;
|
|
||||||
mfact = "0.5";
|
|
||||||
};
|
|
||||||
|
|
||||||
decoration = {
|
|
||||||
rounding = 6;
|
|
||||||
drop_shadow = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
animations.enabled = false;
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
disable_splash_rendering = true;
|
|
||||||
force_default_wallpaper = 0;
|
|
||||||
|
|
||||||
key_press_enables_dpms = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
device = {
|
||||||
|
name = "dell0b9f:00-27c6:0d43-touchpad";
|
||||||
|
accel_profile = "adaptive";
|
||||||
|
disable_while_typing = true;
|
||||||
|
natural_scroll = true;
|
||||||
|
middle_button_emulation = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
gaps_in = 5;
|
||||||
|
gaps_out = 10;
|
||||||
|
border_size = 1;
|
||||||
|
|
||||||
|
layout = "master";
|
||||||
|
};
|
||||||
|
|
||||||
|
master = {
|
||||||
|
new_is_master = false;
|
||||||
|
no_gaps_when_only = 1;
|
||||||
|
mfact = "0.5";
|
||||||
|
};
|
||||||
|
|
||||||
|
decoration = {
|
||||||
|
rounding = 6;
|
||||||
|
drop_shadow = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
animations.enabled = false;
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
disable_splash_rendering = true;
|
||||||
|
force_default_wallpaper = 0;
|
||||||
|
|
||||||
|
key_press_enables_dpms = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,16 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
imports = [
|
||||||
lib,
|
./config.nix
|
||||||
...
|
./keybinds.nix
|
||||||
}: let
|
];
|
||||||
cfg = config.myConfig.de;
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
./config.nix
|
|
||||||
./keybinds.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
options.myConfig.de.hyprland.enable = lib.mkEnableOption "";
|
options.myConfig.de.hyprland.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
||||||
myConfig.de = {
|
myConfig.de = {
|
||||||
hypridlelock.enable = true;
|
hypridlelock.enable = true;
|
||||||
waybar.enable = true;
|
waybar.enable = true;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,125 +1,133 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
{
|
||||||
wayland.windowManager.hyprland.extraConfig = ''
|
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
||||||
# Bindflags:
|
wayland.windowManager.hyprland.extraConfig = ''
|
||||||
# r = release
|
# Bindflags:
|
||||||
# e = repeat
|
# r = release
|
||||||
# l = locked
|
# e = repeat
|
||||||
|
# l = locked
|
||||||
|
|
||||||
# Essentials
|
# Essentials
|
||||||
bind = SUPER SHIFT, C, killactive,
|
bind = SUPER SHIFT, C, killactive,
|
||||||
bind = SUPER SHIFT, V, togglefloating,
|
bind = SUPER SHIFT, V, togglefloating,
|
||||||
bind = SUPER SHIFT, F, fullscreen, 0
|
bind = SUPER SHIFT, F, fullscreen, 0
|
||||||
bind = SUPER, TAB, cyclenext,
|
bind = SUPER, TAB, cyclenext,
|
||||||
|
|
||||||
# Launch programs
|
# Launch programs
|
||||||
bind = SUPER, R, exec, rofi -show drun
|
bind = SUPER, R, exec, rofi -show drun
|
||||||
bind = SUPER, RETURN, exec, kitty
|
bind = SUPER, RETURN, exec, kitty
|
||||||
bind = SUPER, V, exec, clipboard
|
bind = SUPER, V, exec, clipboard
|
||||||
bind = SUPER, B, exec, brave
|
bind = SUPER, B, exec, brave
|
||||||
bind = SUPER, F, exec, nemo
|
bind = SUPER, F, exec, nemo
|
||||||
bind = SUPER, C, exec, codium
|
bind = SUPER, C, exec, codium
|
||||||
|
|
||||||
|
|
||||||
# Move focus
|
|
||||||
bind = SUPER, left, movefocus, l
|
|
||||||
bind = SUPER, right, movefocus, r
|
|
||||||
bind = SUPER, up, movefocus, u
|
|
||||||
bind = SUPER, down, movefocus, d
|
|
||||||
|
|
||||||
# Move window
|
# Move focus
|
||||||
bind = SUPER SHIFT, left, movewindow, l
|
bind = SUPER, left, movefocus, l
|
||||||
bind = SUPER SHIFT, right, movewindow, r
|
bind = SUPER, right, movefocus, r
|
||||||
bind = SUPER SHIFT, up, movewindow, u
|
bind = SUPER, up, movefocus, u
|
||||||
bind = SUPER SHIFT, down, movewindow, d
|
bind = SUPER, down, movefocus, d
|
||||||
bindm = SUPER, mouse:272, movewindow
|
|
||||||
|
|
||||||
# Resize window
|
# Move window
|
||||||
binde = SUPER CONTROL, left, resizeactive, -100 0
|
bind = SUPER SHIFT, left, movewindow, l
|
||||||
binde = SUPER CONTROL, right, resizeactive, 100 0
|
bind = SUPER SHIFT, right, movewindow, r
|
||||||
binde = SUPER CONTROL, up, resizeactive, 0 -100
|
bind = SUPER SHIFT, up, movewindow, u
|
||||||
binde = SUPER CONTROL, down, resizeactive, 0 100
|
bind = SUPER SHIFT, down, movewindow, d
|
||||||
bindm = SUPER, mouse:273, resizewindow
|
bindm = SUPER, mouse:272, movewindow
|
||||||
|
|
||||||
# Minimize window
|
# Resize window
|
||||||
bind = SUPER SHIFT, M, togglespecialworkspace, minimize
|
binde = SUPER CONTROL, left, resizeactive, -100 0
|
||||||
bind = SUPER SHIFT, M, movetoworkspace, +0
|
binde = SUPER CONTROL, right, resizeactive, 100 0
|
||||||
bind = SUPER SHIFT, M, togglespecialworkspace, minimize
|
binde = SUPER CONTROL, up, resizeactive, 0 -100
|
||||||
bind = SUPER SHIFT, M, movetoworkspace, special:minimize
|
binde = SUPER CONTROL, down, resizeactive, 0 100
|
||||||
bind = SUPER SHIFT, M, togglespecialworkspace, minimize
|
bindm = SUPER, mouse:273, resizewindow
|
||||||
|
|
||||||
# Switch workspace
|
# Minimize window
|
||||||
${lib.concatMapStringsSep "\n" (n: "bind=SUPER, ${toString n}, workspace, ${toString n}") (lib.range 1 9)}
|
bind = SUPER SHIFT, M, togglespecialworkspace, minimize
|
||||||
${lib.concatMapStringsSep "\n" (n: "bind=SUPER:SHIFT, ${toString n}, movetoworkspacesilent, ${toString n}") (lib.range 1 9)}
|
bind = SUPER SHIFT, M, movetoworkspace, +0
|
||||||
|
bind = SUPER SHIFT, M, togglespecialworkspace, minimize
|
||||||
|
bind = SUPER SHIFT, M, movetoworkspace, special:minimize
|
||||||
|
bind = SUPER SHIFT, M, togglespecialworkspace, minimize
|
||||||
|
|
||||||
# Scroll through workspaces
|
# Switch workspace
|
||||||
bind = SUPER, mouse_down, workspace, e-1
|
${lib.concatMapStringsSep "\n" (n: "bind=SUPER, ${toString n}, workspace, ${toString n}") (
|
||||||
bind = SUPER, mouse_up, workspace, e+1
|
lib.range 1 9
|
||||||
|
)}
|
||||||
|
${lib.concatMapStringsSep "\n" (
|
||||||
|
n: "bind=SUPER:SHIFT, ${toString n}, movetoworkspacesilent, ${toString n}"
|
||||||
|
) (lib.range 1 9)}
|
||||||
|
|
||||||
# Manage session
|
# Scroll through workspaces
|
||||||
bindrl = SUPER CONTROL, Q, exit,
|
bind = SUPER, mouse_down, workspace, e-1
|
||||||
bindrl = SUPER CONTROL, P, exec, poweroff
|
bind = SUPER, mouse_up, workspace, e+1
|
||||||
bindrl = SUPER CONTROL, R, exec, reboot
|
|
||||||
bindrl = SUPER CONTROL, S, exec, systemctl suspend
|
|
||||||
bindrl = SUPER CONTROL, L, exec, loginctl lock-session
|
|
||||||
bindrl = SUPER CONTROL, B, exec, sleep 1 && hyprctl dispatch dpms off
|
|
||||||
bindl = , switch:on:Lid Switch, exec, systemctl suspend
|
|
||||||
|
|
||||||
# Control media
|
# Manage session
|
||||||
${let
|
bindrl = SUPER CONTROL, Q, exit,
|
||||||
play-pause = "${lib.getExe pkgs.playerctl} --ignore-player=brave play-pause";
|
bindrl = SUPER CONTROL, P, exec, poweroff
|
||||||
play-next = "${lib.getExe pkgs.playerctl} --ignore-player=brave next";
|
bindrl = SUPER CONTROL, R, exec, reboot
|
||||||
play-previous = "${lib.getExe pkgs.playerctl} --ignore-player=brave previous";
|
bindrl = SUPER CONTROL, S, exec, systemctl suspend
|
||||||
mute = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
bindrl = SUPER CONTROL, L, exec, loginctl lock-session
|
||||||
volume-up = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
|
bindrl = SUPER CONTROL, B, exec, sleep 1 && hyprctl dispatch dpms off
|
||||||
volume-down = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
|
bindl = , switch:on:Lid Switch, exec, systemctl suspend
|
||||||
in ''
|
|
||||||
bindl = , XF86AudioPlay, exec, ${play-pause}
|
|
||||||
bindel = SHIFT, XF86AudioRaiseVolume, exec, ${play-next}
|
|
||||||
bindel = SHIFT, XF86AudioLowerVolume, exec, ${play-previous}
|
|
||||||
bindl = , XF86AudioMute, exec, ${mute}
|
|
||||||
bindel = , XF86AudioRaiseVolume, exec, ${volume-up}
|
|
||||||
bindel = , XF86AudioLowerVolume, exec, ${volume-down}
|
|
||||||
|
|
||||||
bindl = SUPER ALT, RETURN, exec, ${play-pause}
|
# Control media
|
||||||
bindel = SUPER ALT, right, exec, ${play-next}
|
${
|
||||||
bindel = SUPER ALT, left, exec, ${play-previous}
|
let
|
||||||
bindl = SUPER ALT, BACKSPACE, exec, ${mute}
|
play-pause = "${lib.getExe pkgs.playerctl} --ignore-player=brave play-pause";
|
||||||
bindel = SUPER ALT, up, exec, ${volume-up}
|
play-next = "${lib.getExe pkgs.playerctl} --ignore-player=brave next";
|
||||||
bindel = SUPER ALT, down, exec, ${volume-down}
|
play-previous = "${lib.getExe pkgs.playerctl} --ignore-player=brave previous";
|
||||||
''}
|
mute = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||||
|
volume-up = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+";
|
||||||
|
volume-down = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-";
|
||||||
|
in
|
||||||
|
''
|
||||||
|
bindl = , XF86AudioPlay, exec, ${play-pause}
|
||||||
|
bindel = SHIFT, XF86AudioRaiseVolume, exec, ${play-next}
|
||||||
|
bindel = SHIFT, XF86AudioLowerVolume, exec, ${play-previous}
|
||||||
|
bindl = , XF86AudioMute, exec, ${mute}
|
||||||
|
bindel = , XF86AudioRaiseVolume, exec, ${volume-up}
|
||||||
|
bindel = , XF86AudioLowerVolume, exec, ${volume-down}
|
||||||
|
|
||||||
# Adjust brightness
|
bindl = SUPER ALT, RETURN, exec, ${play-pause}
|
||||||
bindel = , XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} -e set +2%
|
bindel = SUPER ALT, right, exec, ${play-next}
|
||||||
bindel = , XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} -e set 2%-
|
bindel = SUPER ALT, left, exec, ${play-previous}
|
||||||
|
bindl = SUPER ALT, BACKSPACE, exec, ${mute}
|
||||||
|
bindel = SUPER ALT, up, exec, ${volume-up}
|
||||||
|
bindel = SUPER ALT, down, exec, ${volume-down}
|
||||||
|
''
|
||||||
|
}
|
||||||
|
|
||||||
# Screenshot
|
# Adjust brightness
|
||||||
bind = , Print, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave output
|
bindel = , XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} -e set +2%
|
||||||
bind = SHIFT, Print, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave area
|
bindel = , XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} -e set 2%-
|
||||||
|
|
||||||
# Escape special workspace
|
# Screenshot
|
||||||
bind = SUPER, ESCAPE, togglespecialworkspace, blank
|
bind = , Print, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave output
|
||||||
bind = SUPER, ESCAPE, togglespecialworkspace, blank
|
bind = SHIFT, Print, exec, ${lib.getExe pkgs.grimblast} --notify --freeze copysave area
|
||||||
|
|
||||||
# Music workspace
|
# Escape special workspace
|
||||||
exec-once = [workspace special:music silent] spotify
|
bind = SUPER, ESCAPE, togglespecialworkspace, blank
|
||||||
workspace = special:music, border:false, gapsout:20, on-created-empty:spotify
|
bind = SUPER, ESCAPE, togglespecialworkspace, blank
|
||||||
bind = SUPER, S, togglespecialworkspace, music
|
|
||||||
|
|
||||||
# Chat workspace
|
# Music workspace
|
||||||
exec-once = [workspace special:chat silent] webcord
|
exec-once = [workspace special:music silent] spotify
|
||||||
workspace = special:chat, border:false, gapsout:20, on-created-empty:webcord
|
workspace = special:music, border:false, gapsout:20, on-created-empty:spotify
|
||||||
bind = SUPER, D, togglespecialworkspace, chat
|
bind = SUPER, S, togglespecialworkspace, music
|
||||||
|
|
||||||
# Flake workspace
|
# Chat workspace
|
||||||
workspace = special:flake, border:false, gapsout:40, on-created-empty:kitty --directory $FLAKE --override background_opacity=0.6
|
exec-once = [workspace special:chat silent] webcord
|
||||||
windowrulev2 = noblur, class:(kitty), onworkspace:special:flake
|
workspace = special:chat, border:false, gapsout:20, on-created-empty:webcord
|
||||||
bind = SUPER, Q, togglespecialworkspace, flake
|
bind = SUPER, D, togglespecialworkspace, chat
|
||||||
'';
|
|
||||||
};
|
# Flake workspace
|
||||||
|
workspace = special:flake, border:false, gapsout:40, on-created-empty:kitty --directory $FLAKE --override background_opacity=0.6
|
||||||
|
windowrulev2 = noblur, class:(kitty), onworkspace:special:flake
|
||||||
|
bind = SUPER, Q, togglespecialworkspace, flake
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,78 +1,80 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
cfg = config.myConfig.de;
|
let
|
||||||
in {
|
cfg = config.myConfig.de;
|
||||||
options.myConfig.de.theme = lib.mkOption {type = lib.types.str;};
|
in
|
||||||
|
{
|
||||||
|
options.myConfig.de.theme = lib.mkOption { type = lib.types.str; };
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf (cfg.theme == "dark") {
|
(lib.mkIf (cfg.theme == "dark") {
|
||||||
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||||
|
|
||||||
theme.name = "Adwaita-dark";
|
theme.name = "Adwaita-dark";
|
||||||
theme.package = pkgs.gnome.gnome-themes-extra;
|
theme.package = pkgs.gnome.gnome-themes-extra;
|
||||||
|
|
||||||
iconTheme.name = "Papirus-Dark";
|
iconTheme.name = "Papirus-Dark";
|
||||||
iconTheme.package = pkgs.papirus-icon-theme;
|
iconTheme.package = pkgs.papirus-icon-theme;
|
||||||
|
|
||||||
font.name = "Open Sans";
|
font.name = "Open Sans";
|
||||||
font.package = pkgs.open-sans;
|
font.package = pkgs.open-sans;
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "adwaita";
|
platformTheme.name = "adwaita";
|
||||||
style.name = "adwaita-dark";
|
style.name = "adwaita-dark";
|
||||||
style.package = pkgs.adwaita-qt;
|
style.package = pkgs.adwaita-qt;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
name = "Bibata-Original-Classic";
|
name = "Bibata-Original-Classic";
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
size = 24;
|
size = 24;
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf (cfg.theme == "light") {
|
(lib.mkIf (cfg.theme == "light") {
|
||||||
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-light";
|
dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-light";
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||||
|
|
||||||
theme.name = "Adwaita";
|
theme.name = "Adwaita";
|
||||||
theme.package = pkgs.gnome.gnome-themes-extra;
|
theme.package = pkgs.gnome.gnome-themes-extra;
|
||||||
|
|
||||||
iconTheme.name = "Papirus";
|
iconTheme.name = "Papirus";
|
||||||
iconTheme.package = pkgs.papirus-icon-theme;
|
iconTheme.package = pkgs.papirus-icon-theme;
|
||||||
|
|
||||||
font.name = "Open Sans";
|
font.name = "Open Sans";
|
||||||
font.package = pkgs.open-sans;
|
font.package = pkgs.open-sans;
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "adwaita";
|
platformTheme.name = "adwaita";
|
||||||
style.name = "adwaita";
|
style.name = "adwaita";
|
||||||
style.package = pkgs.adwaita-qt;
|
style.package = pkgs.adwaita-qt;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
name = "Bibata-Original-Ice";
|
name = "Bibata-Original-Ice";
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
size = 24;
|
size = 24;
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
wrappers,
|
wrappers,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.de.waybar.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.de.waybar.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.de.waybar.enable {
|
config = lib.mkIf config.myConfig.de.waybar.enable {
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = wrappers.waybar;
|
package = wrappers.waybar;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.waybar.Unit.After = ["sound.target"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.user.services.waybar.Unit.After = [ "sound.target" ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./de
|
./de
|
||||||
./vscode.nix
|
./vscode.nix
|
||||||
./shell
|
./shell
|
||||||
./ssh-client.nix
|
./ssh-client.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./equalizer
|
./equalizer
|
||||||
./sops.nix
|
./sops.nix
|
||||||
./clipboard.nix
|
./clipboard.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,13 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.equalizer.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.equalizer.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.equalizer.enable {
|
config = lib.mkIf config.myConfig.equalizer.enable {
|
||||||
services.easyeffects.enable = true;
|
services.easyeffects.enable = true;
|
||||||
|
|
||||||
xdg.configFile."easyeffects/output" = {
|
xdg.configFile."easyeffects/output" = {
|
||||||
source = ./output;
|
source = ./output;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,17 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.git.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.git.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.git.enable {
|
config = lib.mkIf config.myConfig.git.enable {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
userName = "SebastianStork";
|
userName = "SebastianStork";
|
||||||
userEmail = "sebastian.stork@pm.me";
|
userEmail = "sebastian.stork@pm.me";
|
||||||
|
|
||||||
extraConfig.init.defaultBranch = "main";
|
extraConfig.init.defaultBranch = "main";
|
||||||
};
|
|
||||||
|
|
||||||
programs.lazygit.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.lazygit.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,20 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.myConfig.shell;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
config,
|
imports = [
|
||||||
lib,
|
./starship.nix
|
||||||
...
|
./enhancement.nix
|
||||||
}: let
|
];
|
||||||
cfg = config.myConfig.shell;
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
./starship.nix
|
|
||||||
./enhancement.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
options.myConfig.shell = {
|
options.myConfig.shell = {
|
||||||
bash.enable = lib.mkEnableOption "";
|
bash.enable = lib.mkEnableOption "";
|
||||||
zsh.enable = lib.mkEnableOption "";
|
zsh.enable = lib.mkEnableOption "";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
programs.bash.enable = cfg.bash.enable;
|
programs.bash.enable = cfg.bash.enable;
|
||||||
programs.zsh.enable = cfg.zsh.enable;
|
programs.zsh.enable = cfg.zsh.enable;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,49 +1,93 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.shell.enhancement.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.shell.enhancement.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.shell.enhancement.enable {
|
config = lib.mkIf config.myConfig.shell.enhancement.enable {
|
||||||
programs.fzf.enable = true;
|
programs.fzf.enable = true;
|
||||||
|
|
||||||
programs.zoxide = {
|
programs.zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = ["--cmd cd"];
|
options = [ "--cmd cd" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
home.shellAliases = let
|
home.shellAliases =
|
||||||
lsAliases = let
|
let
|
||||||
listCmd = "${lib.getExe pkgs.eza} --header --group --time-style=long-iso --group-directories-first --sort=name --icons=auto --git --git-repos-no-status --binary";
|
lsAliases =
|
||||||
aliasList = lib.mapCartesianProduct ({
|
let
|
||||||
|
listCmd = "${lib.getExe pkgs.eza} --header --group --time-style=long-iso --group-directories-first --sort=name --icons=auto --git --git-repos-no-status --binary";
|
||||||
|
aliasList =
|
||||||
|
lib.mapCartesianProduct
|
||||||
|
(
|
||||||
|
{
|
||||||
a,
|
a,
|
||||||
b,
|
b,
|
||||||
c,
|
c,
|
||||||
}:
|
}:
|
||||||
a + b + c) {
|
a + b + c
|
||||||
a = ["ll" "lt" "l"];
|
)
|
||||||
b = ["" "a"];
|
{
|
||||||
c = ["" "d" "f"];
|
a = [
|
||||||
|
"ll"
|
||||||
|
"lt"
|
||||||
|
"l"
|
||||||
|
];
|
||||||
|
b = [
|
||||||
|
""
|
||||||
|
"a"
|
||||||
|
];
|
||||||
|
c = [
|
||||||
|
""
|
||||||
|
"d"
|
||||||
|
"f"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
convertAliasToCmd = str: "${listCmd} " + (builtins.replaceStrings ["ll" "lt" "l" "a" "d" "f"] ["--long " "--tree " "--oneline --dereference " "--all " "--only-dirs " "--only-files "] str);
|
convertAliasToCmd =
|
||||||
aliasAttrs = lib.genAttrs aliasList convertAliasToCmd;
|
str:
|
||||||
in
|
"${listCmd} "
|
||||||
aliasAttrs // {ls = "l";};
|
+ (builtins.replaceStrings
|
||||||
|
[
|
||||||
|
"ll"
|
||||||
|
"lt"
|
||||||
|
"l"
|
||||||
|
"a"
|
||||||
|
"d"
|
||||||
|
"f"
|
||||||
|
]
|
||||||
|
[
|
||||||
|
"--long "
|
||||||
|
"--tree "
|
||||||
|
"--oneline --dereference "
|
||||||
|
"--all "
|
||||||
|
"--only-dirs "
|
||||||
|
"--only-files "
|
||||||
|
]
|
||||||
|
str
|
||||||
|
);
|
||||||
|
aliasAttrs = lib.genAttrs aliasList convertAliasToCmd;
|
||||||
|
in
|
||||||
|
aliasAttrs // { ls = "l"; };
|
||||||
|
|
||||||
catAlias = let
|
catAlias =
|
||||||
theme =
|
let
|
||||||
{
|
theme =
|
||||||
dark = "";
|
{
|
||||||
light = "GitHub";
|
dark = "";
|
||||||
}
|
light = "GitHub";
|
||||||
.${config.myConfig.de.theme};
|
}
|
||||||
in {cat = "${lib.getExe pkgs.bat} --plain --theme=${theme}";};
|
.${config.myConfig.de.theme};
|
||||||
in
|
in
|
||||||
lib.mkMerge [
|
{
|
||||||
lsAliases
|
cat = "${lib.getExe pkgs.bat} --plain --theme=${theme}";
|
||||||
catAlias
|
};
|
||||||
];
|
in
|
||||||
};
|
lib.mkMerge [
|
||||||
|
lsAliases
|
||||||
|
catAlias
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,19 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.shell.starship.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.shell.starship.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config.programs.starship = lib.mkIf config.myConfig.shell.starship.enable {
|
config.programs.starship = lib.mkIf config.myConfig.shell.starship.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
directory = {
|
directory = {
|
||||||
truncation_length = 0;
|
truncation_length = 0;
|
||||||
truncation_symbol = "…/";
|
truncation_symbol = "…/";
|
||||||
truncate_to_repo = true;
|
truncate_to_repo = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
imports = [inputs.sops-nix.homeManagerModules.sops];
|
{
|
||||||
|
imports = [ inputs.sops-nix.homeManagerModules.sops ];
|
||||||
|
|
||||||
options.myConfig.sops.enable = lib.mkEnableOption "";
|
options.myConfig.sops.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.sops.enable {
|
config = lib.mkIf config.myConfig.sops.enable {
|
||||||
sops = {
|
sops = {
|
||||||
age.sshKeyPaths = ["${config.home.homeDirectory}/.ssh/id_ed25519"];
|
age.sshKeyPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519" ];
|
||||||
defaultSopsFile = "${self}/users/${config.home.username}/secrets.yaml";
|
defaultSopsFile = "${self}/users/${config.home.username}/secrets.yaml";
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,14 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.ssh-client.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.ssh-client.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.ssh-client.enable {
|
config = lib.mkIf config.myConfig.ssh-client.enable {
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
addKeysToAgent = "confirm";
|
addKeysToAgent = "confirm";
|
||||||
};
|
|
||||||
|
|
||||||
services.ssh-agent.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.ssh-agent.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,59 +1,66 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.vscode.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.vscode.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.vscode.enable {
|
config = lib.mkIf config.myConfig.vscode.enable {
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
package = pkgs.vscode-with-extensions.override {
|
package = pkgs.vscode-with-extensions.override {
|
||||||
vscode = pkgs.vscodium;
|
vscode = pkgs.vscodium;
|
||||||
vscodeExtensions = let
|
vscodeExtensions =
|
||||||
open-ext = inputs.nix-vscode-extensions.extensions.${pkgs.system}.open-vsx;
|
let
|
||||||
in [
|
open-ext = inputs.nix-vscode-extensions.extensions.${pkgs.system}.open-vsx;
|
||||||
open-ext.jnoortheen.nix-ide
|
in
|
||||||
open-ext.yzhang.markdown-all-in-one
|
[
|
||||||
|
open-ext.jnoortheen.nix-ide
|
||||||
|
open-ext.yzhang.markdown-all-in-one
|
||||||
|
|
||||||
open-ext.github.github-vscode-theme
|
open-ext.github.github-vscode-theme
|
||||||
open-ext.pkief.material-icon-theme
|
open-ext.pkief.material-icon-theme
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.tmpfiles.rules = let
|
|
||||||
settings = builtins.replaceStrings [","] [",\\n"] (builtins.toJSON {
|
|
||||||
"workbench.colorTheme" =
|
|
||||||
{
|
|
||||||
dark = "GitHub Dark";
|
|
||||||
light = "GitHub Light";
|
|
||||||
}
|
|
||||||
.${config.myConfig.de.theme};
|
|
||||||
"workbench.iconTheme" = "material-icon-theme";
|
|
||||||
"editor.fontFamily" = "JetBrainsMono Nerd Font";
|
|
||||||
"explorer.confirmDelete" = false;
|
|
||||||
"explorer.confirmDragAndDrop" = false;
|
|
||||||
"extensions.autoCheckUpdates" = false;
|
|
||||||
"files.autoSave" = "afterDelay";
|
|
||||||
"git.autofetch" = true;
|
|
||||||
"git.confirmSync" = false;
|
|
||||||
"nix.enableLanguageServer" = true;
|
|
||||||
"nix.serverPath" = "${lib.getExe pkgs.nil}";
|
|
||||||
"update.mode" = "none";
|
|
||||||
"git.suggestSmartCommit" = false;
|
|
||||||
"workbench.sideBar.location" = "right";
|
|
||||||
"editor.renderWhitespace" = "none";
|
|
||||||
"editor.minimap.enabled" = false;
|
|
||||||
"window.menuBarVisibility" = "toggle";
|
|
||||||
"workbench.editor.decorations.colors" = false;
|
|
||||||
});
|
|
||||||
in [
|
|
||||||
"f+ %h/.config/VSCodium/User/settings.json - - - - ${settings}"
|
|
||||||
"f+ %h/.config/VSCodium/User/settings-default.json - - - - ${settings}"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.user.tmpfiles.rules =
|
||||||
|
let
|
||||||
|
settings = builtins.replaceStrings [ "," ] [ ",\\n" ] (
|
||||||
|
builtins.toJSON {
|
||||||
|
"workbench.colorTheme" =
|
||||||
|
{
|
||||||
|
dark = "GitHub Dark";
|
||||||
|
light = "GitHub Light";
|
||||||
|
}
|
||||||
|
.${config.myConfig.de.theme};
|
||||||
|
"workbench.iconTheme" = "material-icon-theme";
|
||||||
|
"editor.fontFamily" = "JetBrainsMono Nerd Font";
|
||||||
|
"explorer.confirmDelete" = false;
|
||||||
|
"explorer.confirmDragAndDrop" = false;
|
||||||
|
"extensions.autoCheckUpdates" = false;
|
||||||
|
"files.autoSave" = "afterDelay";
|
||||||
|
"git.autofetch" = true;
|
||||||
|
"git.confirmSync" = false;
|
||||||
|
"nix.enableLanguageServer" = true;
|
||||||
|
"nix.serverPath" = "${lib.getExe pkgs.nil}";
|
||||||
|
"update.mode" = "none";
|
||||||
|
"git.suggestSmartCommit" = false;
|
||||||
|
"workbench.sideBar.location" = "right";
|
||||||
|
"editor.renderWhitespace" = "none";
|
||||||
|
"editor.minimap.enabled" = false;
|
||||||
|
"window.menuBarVisibility" = "toggle";
|
||||||
|
"workbench.editor.decorations.colors" = false;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"f+ %h/.config/VSCodium/User/settings.json - - - - ${settings}"
|
||||||
|
"f+ %h/.config/VSCodium/User/settings-default.json - - - - ${settings}"
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,13 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.bluetooth.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.bluetooth.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.bluetooth.enable {
|
config = lib.mkIf config.myConfig.bluetooth.enable {
|
||||||
hardware.bluetooth = {
|
hardware.bluetooth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
powerOnBoot = true;
|
powerOnBoot = true;
|
||||||
};
|
|
||||||
services.blueman.enable = true;
|
|
||||||
hardware.logitech.wireless.enable = true;
|
|
||||||
};
|
};
|
||||||
|
services.blueman.enable = true;
|
||||||
|
hardware.logitech.wireless.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,40 +1,37 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.boot-loader = {
|
||||||
lib,
|
systemd-boot.enable = lib.mkEnableOption "";
|
||||||
...
|
silent = lib.mkEnableOption "";
|
||||||
}: {
|
};
|
||||||
options.myConfig.boot-loader = {
|
|
||||||
systemd-boot.enable = lib.mkEnableOption "";
|
|
||||||
silent = lib.mkEnableOption "";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf config.myConfig.boot-loader.systemd-boot.enable {
|
(lib.mkIf config.myConfig.boot-loader.systemd-boot.enable {
|
||||||
boot.tmp.cleanOnBoot = true;
|
boot.tmp.cleanOnBoot = true;
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot = {
|
systemd-boot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
editor = false;
|
editor = false;
|
||||||
configurationLimit = 20;
|
configurationLimit = 20;
|
||||||
};
|
};
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = true;
|
||||||
timeout = 3;
|
timeout = 3;
|
||||||
};
|
};
|
||||||
systemd.watchdog.rebootTime = "10";
|
systemd.watchdog.rebootTime = "10";
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf config.myConfig.boot-loader.silent {
|
(lib.mkIf config.myConfig.boot-loader.silent {
|
||||||
boot = {
|
boot = {
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"quiet"
|
"quiet"
|
||||||
"rd.systemd.show_status=false"
|
"rd.systemd.show_status=false"
|
||||||
"rd.udev.log_level=3"
|
"rd.udev.log_level=3"
|
||||||
"udev.log_priority=3"
|
"udev.log_priority=3"
|
||||||
];
|
];
|
||||||
consoleLogLevel = 3;
|
consoleLogLevel = 3;
|
||||||
initrd.verbose = false;
|
initrd.verbose = false;
|
||||||
initrd.systemd.enable = true;
|
initrd.systemd.enable = true;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,20 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
cfg = config.myConfig.comma;
|
let
|
||||||
in {
|
cfg = config.myConfig.comma;
|
||||||
imports = [inputs.nix-index-database.nixosModules.nix-index];
|
in
|
||||||
|
{
|
||||||
|
imports = [ inputs.nix-index-database.nixosModules.nix-index ];
|
||||||
|
|
||||||
options.myConfig.comma.enable = lib.mkEnableOption "";
|
options.myConfig.comma.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
programs.command-not-found.enable = !cfg.enable;
|
programs.command-not-found.enable = !cfg.enable;
|
||||||
programs.nix-index.enable = cfg.enable;
|
programs.nix-index.enable = cfg.enable;
|
||||||
programs.nix-index-database.comma.enable = cfg.enable;
|
programs.nix-index-database.comma.enable = cfg.enable;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,25 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.de.hyprland.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.de.hyprland.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
config = lib.mkIf config.myConfig.de.hyprland.enable {
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland.enable = true;
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
WLR_NO_HARDWARE_CURSORS = "1";
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
NIXOS_OZONE_WL = "1";
|
NIXOS_OZONE_WL = "1";
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.gvfs.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
./vm.nix
|
./vm.nix
|
||||||
./wlan.nix
|
./wlan.nix
|
||||||
./vpn.nix
|
./vpn.nix
|
||||||
./comma.nix
|
./comma.nix
|
||||||
./sops.nix
|
./sops.nix
|
||||||
./bluetooth.nix
|
./bluetooth.nix
|
||||||
./de.nix
|
./de.nix
|
||||||
./dm.nix
|
./dm.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
./boot-loader.nix
|
./boot-loader.nix
|
||||||
./printing.nix
|
./printing.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
./nix-helper.nix
|
./nix-helper.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,36 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
cfg = config.myConfig.dm;
|
let
|
||||||
in {
|
cfg = config.myConfig.dm;
|
||||||
options.myConfig.dm = {
|
in
|
||||||
gdm.enable = lib.mkEnableOption "";
|
{
|
||||||
tuigreet.enable = lib.mkEnableOption "";
|
options.myConfig.dm = {
|
||||||
|
gdm.enable = lib.mkEnableOption "";
|
||||||
|
tuigreet.enable = lib.mkEnableOption "";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
services.xserver = lib.mkIf cfg.gdm.enable {
|
||||||
|
enable = true;
|
||||||
|
displayManager.gdm.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
services.greetd = lib.mkIf cfg.tuigreet.enable {
|
||||||
services.xserver = lib.mkIf cfg.gdm.enable {
|
enable = true;
|
||||||
enable = true;
|
settings = {
|
||||||
displayManager.gdm.enable = true;
|
default_session =
|
||||||
};
|
let
|
||||||
|
base = config.services.xserver.displayManager.sessionData.desktops;
|
||||||
services.greetd = lib.mkIf cfg.tuigreet.enable {
|
in
|
||||||
enable = true;
|
{
|
||||||
settings = {
|
command = "${lib.getExe pkgs.greetd.tuigreet} --time --asterisks --remember --remember-user-session --sessions ${base}/share/wayland-sessions:${base}/share/xsessions";
|
||||||
default_session = let
|
user = "greeter";
|
||||||
base = config.services.xserver.displayManager.sessionData.desktops;
|
};
|
||||||
in {
|
};
|
||||||
command = "${lib.getExe pkgs.greetd.tuigreet} --time --asterisks --remember --remember-user-session --sessions ${base}/share/wayland-sessions:${base}/share/xsessions";
|
|
||||||
user = "greeter";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,20 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.flatpak.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.flatpak.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.flatpak.enable {
|
config = lib.mkIf config.myConfig.flatpak.enable {
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
{
|
{
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemDirs.data = [
|
systemDirs.data = [
|
||||||
"/var/lib/flatpak/exports/share"
|
"/var/lib/flatpak/exports/share"
|
||||||
"/home/seb/.local/share/flatpak/exports/share"
|
"/home/seb/.local/share/flatpak/exports/share"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,36 +1,36 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.myConfig.nix-helper;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.nix-helper = {
|
||||||
lib,
|
enable = lib.mkEnableOption "";
|
||||||
...
|
auto-gc.enable = lib.mkEnableOption "";
|
||||||
}: let
|
};
|
||||||
cfg = config.myConfig.nix-helper;
|
|
||||||
in {
|
config = lib.mkIf cfg.enable {
|
||||||
options.myConfig.nix-helper = {
|
programs.nh.enable = true;
|
||||||
enable = lib.mkEnableOption "";
|
|
||||||
auto-gc.enable = lib.mkEnableOption "";
|
environment.shellAliases =
|
||||||
|
let
|
||||||
|
rebuild = "sudo -v && nh os";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nrs = "${rebuild} switch";
|
||||||
|
nrt = "${rebuild} test";
|
||||||
|
nrb = "${rebuild} boot";
|
||||||
|
nrrb = "nrb && reboot";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
silent = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
programs.nh.clean = lib.mkIf cfg.auto-gc.enable {
|
||||||
programs.nh.enable = true;
|
enable = true;
|
||||||
|
dates = "daily";
|
||||||
environment.shellAliases = let
|
extraArgs = "--keep 10 --keep-since 3d";
|
||||||
rebuild = "sudo -v && nh os";
|
|
||||||
in {
|
|
||||||
nrs = "${rebuild} switch";
|
|
||||||
nrt = "${rebuild} test";
|
|
||||||
nrb = "${rebuild} boot";
|
|
||||||
nrrb = "nrb && reboot";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.nh.clean = lib.mkIf cfg.auto-gc.enable {
|
|
||||||
enable = true;
|
|
||||||
dates = "daily";
|
|
||||||
extraArgs = "--keep 10 --keep-since 3d";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,13 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.printing.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.printing.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.printing.enable {
|
config = lib.mkIf config.myConfig.printing.enable {
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,19 @@
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
imports = [inputs.sops-nix.nixosModules.sops];
|
{
|
||||||
|
imports = [ inputs.sops-nix.nixosModules.sops ];
|
||||||
|
|
||||||
options.myConfig.sops.enable = lib.mkEnableOption "";
|
options.myConfig.sops.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.sops.enable {
|
config = lib.mkIf config.myConfig.sops.enable {
|
||||||
sops = {
|
sops = {
|
||||||
age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
||||||
defaultSopsFile = "${self}/hosts/${config.networking.hostName}/secrets.yaml";
|
defaultSopsFile = "${self}/hosts/${config.networking.hostName}/secrets.yaml";
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,16 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.sound.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.sound.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.sound.enable {
|
config = lib.mkIf config.myConfig.sound.enable {
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
hardware.pulseaudio.enable = false;
|
hardware.pulseaudio.enable = false;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wireplumber.enable = true;
|
wireplumber.enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
alsa.support32Bit = true;
|
alsa.support32Bit = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,77 +1,76 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.syncthing.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.syncthing.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.syncthing.enable {
|
config = lib.mkIf config.myConfig.syncthing.enable {
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
user = "seb";
|
user = "seb";
|
||||||
group = "users";
|
group = "users";
|
||||||
dataDir = "/home/seb";
|
dataDir = "/home/seb";
|
||||||
|
|
||||||
overrideDevices = true;
|
overrideDevices = true;
|
||||||
overrideFolders = true;
|
overrideFolders = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
devices = {
|
devices = {
|
||||||
north.id = "ROS2S76-ULQWVFC-7KNQQ6Q-MNIWNKT-2QOPPHY-FFQZNVM-GUJRTHE-NZBM3QY";
|
north.id = "ROS2S76-ULQWVFC-7KNQQ6Q-MNIWNKT-2QOPPHY-FFQZNVM-GUJRTHE-NZBM3QY";
|
||||||
inspiron.id = "GUXHL6J-J2HWYNN-7JZJ5CN-6LPYGJD-H7GYRLQ-ORZ4PJJ-5K4WT7I-MELMIQO";
|
inspiron.id = "GUXHL6J-J2HWYNN-7JZJ5CN-6LPYGJD-H7GYRLQ-ORZ4PJJ-5K4WT7I-MELMIQO";
|
||||||
};
|
|
||||||
|
|
||||||
folders = let
|
|
||||||
allDevices = [
|
|
||||||
"north"
|
|
||||||
"inspiron"
|
|
||||||
];
|
|
||||||
staggeredVersioning = {
|
|
||||||
type = "staggered";
|
|
||||||
params = {
|
|
||||||
cleanInterval = "3600"; # 1 hour in seconds
|
|
||||||
maxAge = "15552000"; # 180 days in seconds
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
Documents = {
|
|
||||||
path = "/home/seb/Documents";
|
|
||||||
devices = allDevices;
|
|
||||||
versioning = staggeredVersioning;
|
|
||||||
ignorePerms = false;
|
|
||||||
};
|
|
||||||
Downloads = {
|
|
||||||
path = "/home/seb/Downloads";
|
|
||||||
devices = allDevices;
|
|
||||||
versioning = staggeredVersioning;
|
|
||||||
ignorePerms = false;
|
|
||||||
};
|
|
||||||
Pictures = {
|
|
||||||
path = "/home/seb/Pictures";
|
|
||||||
devices = allDevices;
|
|
||||||
versioning = staggeredVersioning;
|
|
||||||
ignorePerms = false;
|
|
||||||
};
|
|
||||||
Music = {
|
|
||||||
path = "/home/seb/Music";
|
|
||||||
devices = allDevices;
|
|
||||||
versioning = staggeredVersioning;
|
|
||||||
ignorePerms = false;
|
|
||||||
};
|
|
||||||
Videos = {
|
|
||||||
path = "/home/seb/Videos";
|
|
||||||
devices = allDevices;
|
|
||||||
versioning = staggeredVersioning;
|
|
||||||
ignorePerms = false;
|
|
||||||
};
|
|
||||||
Projects = {
|
|
||||||
path = "/home/seb/Projects";
|
|
||||||
devices = allDevices;
|
|
||||||
ignorePerms = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
folders =
|
||||||
|
let
|
||||||
|
allDevices = [
|
||||||
|
"north"
|
||||||
|
"inspiron"
|
||||||
|
];
|
||||||
|
staggeredVersioning = {
|
||||||
|
type = "staggered";
|
||||||
|
params = {
|
||||||
|
cleanInterval = "3600"; # 1 hour in seconds
|
||||||
|
maxAge = "15552000"; # 180 days in seconds
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
Documents = {
|
||||||
|
path = "/home/seb/Documents";
|
||||||
|
devices = allDevices;
|
||||||
|
versioning = staggeredVersioning;
|
||||||
|
ignorePerms = false;
|
||||||
|
};
|
||||||
|
Downloads = {
|
||||||
|
path = "/home/seb/Downloads";
|
||||||
|
devices = allDevices;
|
||||||
|
versioning = staggeredVersioning;
|
||||||
|
ignorePerms = false;
|
||||||
|
};
|
||||||
|
Pictures = {
|
||||||
|
path = "/home/seb/Pictures";
|
||||||
|
devices = allDevices;
|
||||||
|
versioning = staggeredVersioning;
|
||||||
|
ignorePerms = false;
|
||||||
|
};
|
||||||
|
Music = {
|
||||||
|
path = "/home/seb/Music";
|
||||||
|
devices = allDevices;
|
||||||
|
versioning = staggeredVersioning;
|
||||||
|
ignorePerms = false;
|
||||||
|
};
|
||||||
|
Videos = {
|
||||||
|
path = "/home/seb/Videos";
|
||||||
|
devices = allDevices;
|
||||||
|
versioning = staggeredVersioning;
|
||||||
|
ignorePerms = false;
|
||||||
|
};
|
||||||
|
Projects = {
|
||||||
|
path = "/home/seb/Projects";
|
||||||
|
devices = allDevices;
|
||||||
|
ignorePerms = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,29 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.vm.qemu.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.vm.qemu.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.vm.qemu.enable {
|
config = lib.mkIf config.myConfig.vm.qemu.enable {
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
|
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
pkgs.quickemu
|
pkgs.quickemu
|
||||||
pkgs.quickgui
|
pkgs.quickgui
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
{
|
{
|
||||||
dconf.settings."org/virt-manager/virt-manager/connections" = {
|
dconf.settings."org/virt-manager/virt-manager/connections" = {
|
||||||
autoconnect = ["qemu:///system"];
|
autoconnect = [ "qemu:///system" ];
|
||||||
uris = ["qemu:///system"];
|
uris = [ "qemu:///system" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,37 +1,34 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
{
|
{
|
||||||
config,
|
options.myConfig.vpn.lgs.enable = lib.mkEnableOption "";
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
options.myConfig.vpn.lgs.enable = lib.mkEnableOption "";
|
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.vpn.lgs.enable {
|
config = lib.mkIf config.myConfig.vpn.lgs.enable {
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"vpn/lgs/crt" = {};
|
"vpn/lgs/crt" = { };
|
||||||
"vpn/lgs/key" = {};
|
"vpn/lgs/key" = { };
|
||||||
};
|
|
||||||
|
|
||||||
services.openvpn.servers.lgs = {
|
|
||||||
autoStart = false;
|
|
||||||
|
|
||||||
config = ''
|
|
||||||
dev tap
|
|
||||||
persist-tun
|
|
||||||
persist-key
|
|
||||||
data-ciphers AES-128-GCM:AES-256-CBC
|
|
||||||
data-ciphers-fallback AES-256-CBC
|
|
||||||
auth SHA1
|
|
||||||
tls-client
|
|
||||||
client
|
|
||||||
resolv-retry infinite
|
|
||||||
remote 194.9.190.11 1194 udp4
|
|
||||||
nobind
|
|
||||||
auth-user-pass
|
|
||||||
ca ${config.sops.secrets."vpn/lgs/crt".path}
|
|
||||||
tls-auth ${config.sops.secrets."vpn/lgs/key".path} 1
|
|
||||||
remote-cert-tls server
|
|
||||||
explicit-exit-notify
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.openvpn.servers.lgs = {
|
||||||
|
autoStart = false;
|
||||||
|
|
||||||
|
config = ''
|
||||||
|
dev tap
|
||||||
|
persist-tun
|
||||||
|
persist-key
|
||||||
|
data-ciphers AES-128-GCM:AES-256-CBC
|
||||||
|
data-ciphers-fallback AES-256-CBC
|
||||||
|
auth SHA1
|
||||||
|
tls-client
|
||||||
|
client
|
||||||
|
resolv-retry infinite
|
||||||
|
remote 194.9.190.11 1194 udp4
|
||||||
|
nobind
|
||||||
|
auth-user-pass
|
||||||
|
ca ${config.sops.secrets."vpn/lgs/crt".path}
|
||||||
|
tls-auth ${config.sops.secrets."vpn/lgs/key".path} 1
|
||||||
|
remote-cert-tls server
|
||||||
|
explicit-exit-notify
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,35 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
options.myConfig.wlan.enable = lib.mkEnableOption "";
|
{
|
||||||
|
options.myConfig.wlan.enable = lib.mkEnableOption "";
|
||||||
|
|
||||||
config = lib.mkIf config.myConfig.wlan.enable {
|
config = lib.mkIf config.myConfig.wlan.enable {
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
"iwd/WLAN-233151" = {};
|
"iwd/WLAN-233151" = { };
|
||||||
"iwd/Fairphone4" = {};
|
"iwd/Fairphone4" = { };
|
||||||
"iwd/LGS" = {};
|
"iwd/LGS" = { };
|
||||||
};
|
|
||||||
|
|
||||||
networking.wireless.iwd = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
General.EnableNetworkConfiguration = true;
|
|
||||||
Settings.AutoConnect = true;
|
|
||||||
Network.NameResolvingService = "resolvconf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"C /var/lib/iwd/WLAN-233151.psk 0600 root root - ${config.sops.secrets."iwd/WLAN-233151".path}"
|
|
||||||
"C /var/lib/iwd/Fairphone4.psk 0600 root root - ${config.sops.secrets."iwd/Fairphone4".path}"
|
|
||||||
"C /var/lib/iwd/LGS.8021x 0600 root root - ${config.sops.secrets."iwd/LGS".path}"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.systemPackages = [pkgs.iwgtk];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.wireless.iwd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
General.EnableNetworkConfiguration = true;
|
||||||
|
Settings.AutoConnect = true;
|
||||||
|
Network.NameResolvingService = "resolvconf";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"C /var/lib/iwd/WLAN-233151.psk 0600 root root - ${config.sops.secrets."iwd/WLAN-233151".path}"
|
||||||
|
"C /var/lib/iwd/Fairphone4.psk 0600 root root - ${config.sops.secrets."iwd/Fairphone4".path}"
|
||||||
|
"C /var/lib/iwd/LGS.8021x 0600 root root - ${config.sops.secrets."iwd/LGS".path}"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.iwgtk ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,35 +1,32 @@
|
||||||
|
{ self, inputs, ... }:
|
||||||
{
|
{
|
||||||
self,
|
imports = [ inputs.home-manager.nixosModules.home-manager ];
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [inputs.home-manager.nixosModules.home-manager];
|
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit self;
|
inherit self;
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
../modules/home
|
../modules/home
|
||||||
../wrappers
|
../wrappers
|
||||||
|
|
||||||
{
|
{
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
home.stateVersion = "23.11";
|
home.stateVersion = "23.11";
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userDirs = {
|
userDirs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
createDirectories = true;
|
createDirectories = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,22 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
imports = [ ./default.nix ];
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [./default.nix];
|
|
||||||
|
|
||||||
home-manager.users.seb = {
|
home-manager.users.seb = {
|
||||||
myConfig.de.theme = "light";
|
myConfig.de.theme = "light";
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.monitor = "eDP-1,1920x1080@60,0x0,1";
|
wayland.windowManager.hyprland.settings.monitor = "eDP-1,1920x1080@60,0x0,1";
|
||||||
|
|
||||||
services.hypridle.settings.listener = [
|
services.hypridle.settings.listener = [
|
||||||
{
|
{
|
||||||
timeout = 300;
|
timeout = 300;
|
||||||
on-timeout = "${lib.getExe pkgs.brightnessctl} -s && ${lib.getExe pkgs.brightnessctl} -e set 10%";
|
on-timeout = "${lib.getExe pkgs.brightnessctl} -s && ${lib.getExe pkgs.brightnessctl} -e set 10%";
|
||||||
on-resume = "${lib.getExe pkgs.brightnessctl} -r";
|
on-resume = "${lib.getExe pkgs.brightnessctl} -r";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = 1200;
|
timeout = 1200;
|
||||||
on-timeout = "systemctl suspend";
|
on-timeout = "systemctl suspend";
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,18 @@
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
pkgs,
|
imports = [ ./default.nix ];
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [./default.nix];
|
|
||||||
|
|
||||||
home-manager.users.seb = {
|
home-manager.users.seb = {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.obs-studio
|
pkgs.obs-studio
|
||||||
pkgs.libsForQt5.kdenlive
|
pkgs.libsForQt5.kdenlive
|
||||||
pkgs.gimp
|
pkgs.gimp
|
||||||
];
|
];
|
||||||
|
|
||||||
myConfig.de.theme = "dark";
|
myConfig.de.theme = "dark";
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings.monitor = "DP-2,2560x1440@144,0x0,1";
|
wayland.windowManager.hyprland.settings.monitor = "DP-2,2560x1440@144,0x0,1";
|
||||||
|
|
||||||
services.hypridle.settings.general.before_sleep_cmd = lib.mkForce "";
|
services.hypridle.settings.general.before_sleep_cmd = lib.mkForce "";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,20 @@
|
||||||
{config, ...}: {
|
{ config, ... }:
|
||||||
imports = [../common.nix];
|
{
|
||||||
|
imports = [ ../common.nix ];
|
||||||
|
|
||||||
sops.secrets.seb-password.neededForUsers = true;
|
sops.secrets.seb-password.neededForUsers = true;
|
||||||
|
|
||||||
users.users.seb = {
|
users.users.seb = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Sebastian Stork";
|
description = "Sebastian Stork";
|
||||||
hashedPasswordFile = config.sops.secrets.seb-password.path;
|
hashedPasswordFile = config.sops.secrets.seb-password.path;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"wheel"
|
"wheel"
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"video"
|
"video"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.seb = ./home.nix;
|
home-manager.users.seb = ./home.nix;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,48 +1,49 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
osConfig,
|
osConfig,
|
||||||
wrappers,
|
wrappers,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
{
|
||||||
|
xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
||||||
|
|
||||||
myConfig = {
|
myConfig = {
|
||||||
de.hyprland.enable = osConfig.myConfig.de.hyprland.enable;
|
de.hyprland.enable = osConfig.myConfig.de.hyprland.enable;
|
||||||
|
|
||||||
shell = {
|
shell = {
|
||||||
bash.enable = true;
|
bash.enable = true;
|
||||||
starship.enable = true;
|
starship.enable = true;
|
||||||
enhancement.enable = true;
|
enhancement.enable = true;
|
||||||
};
|
|
||||||
|
|
||||||
ssh-client.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
vscode.enable = true;
|
|
||||||
equalizer.enable = true;
|
|
||||||
sops.enable = false;
|
|
||||||
clipboard.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
ssh-client.enable = true;
|
||||||
pkgs.fastfetch
|
git.enable = true;
|
||||||
|
vscode.enable = true;
|
||||||
|
equalizer.enable = true;
|
||||||
|
sops.enable = false;
|
||||||
|
clipboard.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
pkgs.brave
|
home.packages = [
|
||||||
pkgs.cinnamon.nemo-with-extensions
|
pkgs.fastfetch
|
||||||
pkgs.jetbrains.idea-community
|
|
||||||
pkgs.vlc
|
|
||||||
pkgs.onlyoffice-bin_latest
|
|
||||||
pkgs.libreoffice
|
|
||||||
pkgs.hunspell
|
|
||||||
pkgs.hunspellDicts.de_DE
|
|
||||||
pkgs.hunspellDicts.en_US
|
|
||||||
|
|
||||||
wrappers.bottom
|
pkgs.brave
|
||||||
wrappers.spotify
|
pkgs.cinnamon.nemo-with-extensions
|
||||||
wrappers.obsidian
|
pkgs.jetbrains.idea-community
|
||||||
wrappers.marktext
|
pkgs.vlc
|
||||||
wrappers.webcord
|
pkgs.onlyoffice-bin_latest
|
||||||
(wrappers.kitty {inherit (config.myConfig.de) theme;})
|
pkgs.libreoffice
|
||||||
(wrappers.rofi {inherit (config.myConfig.de) theme;})
|
pkgs.hunspell
|
||||||
];
|
pkgs.hunspellDicts.de_DE
|
||||||
|
pkgs.hunspellDicts.en_US
|
||||||
|
|
||||||
|
wrappers.bottom
|
||||||
|
wrappers.spotify
|
||||||
|
wrappers.obsidian
|
||||||
|
wrappers.marktext
|
||||||
|
wrappers.webcord
|
||||||
|
(wrappers.kitty { inherit (config.myConfig.de) theme; })
|
||||||
|
(wrappers.rofi { inherit (config.myConfig.de) theme; })
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.bottom;
|
basePackage = pkgs.bottom;
|
||||||
flags = ["--group"];
|
flags = [ "--group" ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,24 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
assembleWrapper = wrapperConfig:
|
let
|
||||||
(inputs.wrapper-manager.lib {
|
assembleWrapper =
|
||||||
inherit pkgs;
|
wrapperConfig:
|
||||||
modules = [{wrappers.wrappedPackage = wrapperConfig;}];
|
(inputs.wrapper-manager.lib {
|
||||||
})
|
inherit pkgs;
|
||||||
.config
|
modules = [ { wrappers.wrappedPackage = wrapperConfig; } ];
|
||||||
.wrappers
|
}).config.wrappers.wrappedPackage.wrapped;
|
||||||
.wrappedPackage
|
in
|
||||||
.wrapped;
|
{
|
||||||
in {
|
_module.args.wrappers = lib.pipe (builtins.readDir ./.) [
|
||||||
_module.args.wrappers = lib.pipe (builtins.readDir ./.) [
|
(lib.filterAttrs (name: value: name != "default.nix"))
|
||||||
(lib.filterAttrs (name: value: name != "default.nix"))
|
(lib.concatMapAttrs (
|
||||||
(lib.concatMapAttrs (name: _: {${lib.removeSuffix ".nix" name} = import ./${name} {inherit assembleWrapper pkgs lib;};}))
|
name: _: {
|
||||||
];
|
${lib.removeSuffix ".nix" name} = import ./${name} { inherit assembleWrapper pkgs lib; };
|
||||||
|
}
|
||||||
|
))
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,23 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.hyprlock;
|
basePackage = pkgs.hyprlock;
|
||||||
|
|
||||||
flags = let
|
flags =
|
||||||
hyprlock-config = pkgs.writeText "hyprlock-config" ''
|
let
|
||||||
background {
|
hyprlock-config = pkgs.writeText "hyprlock-config" ''
|
||||||
monitor =
|
background {
|
||||||
path = screenshot
|
monitor =
|
||||||
blur_size = 4
|
path = screenshot
|
||||||
blur_passes = 1
|
blur_size = 4
|
||||||
}
|
blur_passes = 1
|
||||||
input-field {
|
}
|
||||||
monitor =
|
input-field {
|
||||||
}
|
monitor =
|
||||||
'';
|
}
|
||||||
in [
|
'';
|
||||||
"--config"
|
in
|
||||||
hyprlock-config
|
[
|
||||||
|
"--config"
|
||||||
|
hyprlock-config
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,17 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.hyprpaper;
|
basePackage = pkgs.hyprpaper;
|
||||||
|
|
||||||
flags = let
|
flags =
|
||||||
hyprpaper-config = pkgs.writeText "hyprpaper-config" ''
|
let
|
||||||
preload = ~/Pictures/.wallpaper
|
hyprpaper-config = pkgs.writeText "hyprpaper-config" ''
|
||||||
wallpaper = , ~/Pictures/.wallpaper
|
preload = ~/Pictures/.wallpaper
|
||||||
splash = false
|
wallpaper = , ~/Pictures/.wallpaper
|
||||||
'';
|
splash = false
|
||||||
in [
|
'';
|
||||||
"--config"
|
in
|
||||||
hyprpaper-config
|
[
|
||||||
|
"--config"
|
||||||
|
hyprpaper-config
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,39 +1,45 @@
|
||||||
{
|
{
|
||||||
assembleWrapper,
|
assembleWrapper,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {theme ? "dark"}:
|
}:
|
||||||
|
{
|
||||||
|
theme ? "dark",
|
||||||
|
}:
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.kitty;
|
basePackage = pkgs.kitty;
|
||||||
|
|
||||||
flags = let
|
flags =
|
||||||
toKittyConfig = lib.generators.toKeyValue {
|
let
|
||||||
mkKeyValue = key: value: let
|
toKittyConfig = lib.generators.toKeyValue {
|
||||||
value' = (
|
mkKeyValue =
|
||||||
if lib.isBool value
|
key: value:
|
||||||
then lib.hm.booleans.yesNo value
|
let
|
||||||
else toString value
|
value' = (if lib.isBool value then lib.hm.booleans.yesNo value else toString value);
|
||||||
);
|
in
|
||||||
in "${key} ${value'}";
|
"${key} ${value'}";
|
||||||
};
|
};
|
||||||
kitty-config = pkgs.writeText "kitty-config" (toKittyConfig {
|
kitty-config = pkgs.writeText "kitty-config" (toKittyConfig {
|
||||||
font_family = "JetBrainsMono Nerd Font";
|
font_family = "JetBrainsMono Nerd Font";
|
||||||
confirm_os_window_close = 0;
|
confirm_os_window_close = 0;
|
||||||
background_opacity = "0.85";
|
background_opacity = "0.85";
|
||||||
enable_audio_bell = false;
|
enable_audio_bell = false;
|
||||||
update_check_interval = 0;
|
update_check_interval = 0;
|
||||||
cursor_shape = "beam";
|
cursor_shape = "beam";
|
||||||
});
|
});
|
||||||
kitty-theme = pkgs.writeText "kitty-theme" "include ${pkgs.kitty-themes}/share/kitty-themes/themes/${{
|
kitty-theme = pkgs.writeText "kitty-theme" "include ${pkgs.kitty-themes}/share/kitty-themes/themes/${
|
||||||
dark = "default.conf";
|
{
|
||||||
light = "GitHub_Light.conf";
|
dark = "default.conf";
|
||||||
|
light = "GitHub_Light.conf";
|
||||||
}
|
}
|
||||||
.${theme}}";
|
.${theme}
|
||||||
in [
|
}";
|
||||||
"--config"
|
in
|
||||||
kitty-config
|
[
|
||||||
"--config"
|
"--config"
|
||||||
kitty-theme
|
kitty-config
|
||||||
|
"--config"
|
||||||
|
kitty-theme
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.marktext;
|
basePackage = pkgs.marktext;
|
||||||
flags = ["--disable-gpu"];
|
flags = [ "--disable-gpu" ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.obsidian;
|
basePackage = pkgs.obsidian;
|
||||||
flags = ["--disable-gpu"];
|
flags = [ "--disable-gpu" ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,30 @@
|
||||||
{
|
{
|
||||||
assembleWrapper,
|
assembleWrapper,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: {theme ? "dark"}:
|
}:
|
||||||
|
{
|
||||||
|
theme ? "dark",
|
||||||
|
}:
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.rofi-wayland;
|
basePackage = pkgs.rofi-wayland;
|
||||||
|
|
||||||
flags = let
|
flags =
|
||||||
color-file =
|
let
|
||||||
{
|
color-file =
|
||||||
dark = ./dark.rasi;
|
{
|
||||||
light = ./light.rasi;
|
dark = ./dark.rasi;
|
||||||
}
|
light = ./light.rasi;
|
||||||
.${theme};
|
}
|
||||||
rofi-config = pkgs.concatText "rofi-config" [./config.rasi color-file];
|
.${theme};
|
||||||
in [
|
rofi-config = pkgs.concatText "rofi-config" [
|
||||||
"-config"
|
./config.rasi
|
||||||
rofi-config
|
color-file
|
||||||
|
];
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"-config"
|
||||||
|
rofi-config
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.spotify;
|
basePackage = pkgs.spotify;
|
||||||
flags = ["--disable-gpu"];
|
flags = [ "--disable-gpu" ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,116 +1,114 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.waybar;
|
basePackage = pkgs.waybar;
|
||||||
|
|
||||||
flags = let
|
flags =
|
||||||
waybar-config = (pkgs.formats.json {}).generate "waybar-config" {
|
let
|
||||||
layer = "top";
|
waybar-config = (pkgs.formats.json { }).generate "waybar-config" {
|
||||||
position = "bottom";
|
layer = "top";
|
||||||
spacing = 10;
|
position = "bottom";
|
||||||
|
spacing = 10;
|
||||||
|
|
||||||
modules-left = ["clock"];
|
modules-left = [ "clock" ];
|
||||||
modules-center = ["hyprland/workspaces"];
|
modules-center = [ "hyprland/workspaces" ];
|
||||||
modules-right = [
|
modules-right = [
|
||||||
"tray"
|
"tray"
|
||||||
"network"
|
"network"
|
||||||
"wireplumber"
|
"wireplumber"
|
||||||
"backlight"
|
"backlight"
|
||||||
"battery"
|
"battery"
|
||||||
];
|
];
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
"hyprland/workspaces" = {
|
||||||
active-only = false;
|
active-only = false;
|
||||||
all-outputs = true;
|
all-outputs = true;
|
||||||
};
|
|
||||||
|
|
||||||
clock = {
|
|
||||||
format = " {:%H.%M}";
|
|
||||||
tooltip-format = "{:%d.%m.%Y}";
|
|
||||||
};
|
|
||||||
|
|
||||||
network = {
|
|
||||||
interval = 10;
|
|
||||||
format = "";
|
|
||||||
|
|
||||||
format-wifi = "{icon}";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
tooltip-format-wifi = "{essid} {bandwidthDownBits} {bandwidthUpBits}";
|
|
||||||
|
|
||||||
format-ethernet = "";
|
|
||||||
tooltip-format-ethernet = " {bandwidthDownBits} {bandwidthUpBits}";
|
|
||||||
|
|
||||||
format-disconnected = "";
|
|
||||||
tooltip-format-disconnected = "Disconnected";
|
|
||||||
};
|
|
||||||
|
|
||||||
wireplumber = {
|
|
||||||
format = "{icon} {volume}%";
|
|
||||||
format-muted = "";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
scroll-step = "5";
|
|
||||||
};
|
|
||||||
|
|
||||||
tray = {
|
|
||||||
icon-size = 20;
|
|
||||||
spacing = 6;
|
|
||||||
};
|
|
||||||
|
|
||||||
backlight = {
|
|
||||||
device = "amdgpu_bl1";
|
|
||||||
format = "{icon} {percent}%";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
battery = {
|
|
||||||
states = {
|
|
||||||
warning = 15;
|
|
||||||
critical = 5;
|
|
||||||
};
|
|
||||||
format = "{icon} {capacity}%";
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
waybar-style = pkgs.writeText "waybar-style" ''
|
|
||||||
* {
|
clock = {
|
||||||
border: none;
|
format = " {:%H.%M}";
|
||||||
border-radius: 0px;
|
tooltip-format = "{:%d.%m.%Y}";
|
||||||
font-family: "Open Sans, Symbols Nerd Font Mono";
|
};
|
||||||
font-size: 15px;
|
|
||||||
}
|
network = {
|
||||||
'';
|
interval = 10;
|
||||||
in [
|
format = "";
|
||||||
"--config"
|
|
||||||
waybar-config
|
format-wifi = "{icon}";
|
||||||
"--style"
|
format-icons = [
|
||||||
waybar-style
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
tooltip-format-wifi = "{essid} {bandwidthDownBits} {bandwidthUpBits}";
|
||||||
|
|
||||||
|
format-ethernet = "";
|
||||||
|
tooltip-format-ethernet = " {bandwidthDownBits} {bandwidthUpBits}";
|
||||||
|
|
||||||
|
format-disconnected = "";
|
||||||
|
tooltip-format-disconnected = "Disconnected";
|
||||||
|
};
|
||||||
|
|
||||||
|
wireplumber = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
format-muted = "";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
scroll-step = "5";
|
||||||
|
};
|
||||||
|
|
||||||
|
tray = {
|
||||||
|
icon-size = 20;
|
||||||
|
spacing = 6;
|
||||||
|
};
|
||||||
|
|
||||||
|
backlight = {
|
||||||
|
device = "amdgpu_bl1";
|
||||||
|
format = "{icon} {percent}%";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
battery = {
|
||||||
|
states = {
|
||||||
|
warning = 15;
|
||||||
|
critical = 5;
|
||||||
|
};
|
||||||
|
format = "{icon} {capacity}%";
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
waybar-style = pkgs.writeText "waybar-style" ''
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-family: "Open Sans, Symbols Nerd Font Mono";
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
[
|
||||||
|
"--config"
|
||||||
|
waybar-config
|
||||||
|
"--style"
|
||||||
|
waybar-style
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
{
|
{ assembleWrapper, pkgs, ... }:
|
||||||
assembleWrapper,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
assembleWrapper {
|
assembleWrapper {
|
||||||
basePackage = pkgs.webcord;
|
basePackage = pkgs.webcord;
|
||||||
flags = ["--disable-gpu"];
|
flags = [ "--disable-gpu" ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue