Refactor NixOS and Home Manager modules
This makes them more modular and configurable by allowing features to be enabled per-host. Squashed commit of the following: commit e9896d6166125de7aa26ddc63dac3adb196e8c23 Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 23:06:23 2024 +0000 Use mkMerge To ensure features isn't overridden and values aren't lost accidentally commit c9c8ff5d059f08ade3aee9bb4e25bd51d4817a6d Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 22:56:38 2024 +0000 Move NixOS module imports commit 4a85bbac9dfa8f06825f6b1fee45ef27befa16d3 Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 22:39:54 2024 +0000 Move Home Manager module imports commit 6d7a1b0aac68ccc8649fa2d8cd6e8b17ecebb4f0 Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 21:15:54 2024 +0000 Add host-specific Home Manager configurations commit b32da2fbf7498c9684d8289be0f02800994e9110 Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 18:00:00 2024 +0000 Start to parameterise Home Manager modules commit e80e89b415849cc4c6051a07b70587ac98724e2c Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 18:00:00 2024 +0000 Rename wsl commands to home-manager commit 6d82ed73da3c104fb25117fb843c3f3b5d833180 Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 18:00:00 2024 +0000 Refactor NixOS Home Manager configuration commit cc5cbf5ac1a407a456d7258dd65a78ba3128a88f Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 08:05:00 2024 +0000 Refactor WSL Home Manager configuration commit deaf664a0997871b6f2bb0a8f97d638a91cb10bc Author: Oliver Davies <oliver@oliverdavies.dev> Date: Mon Nov 25 08:04:00 2024 +0000 Refactor lemp11 configuration
This commit is contained in:
parent
7973d6ebad
commit
af9edbfe1a
31 changed files with 673 additions and 843 deletions
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
services.autorandr = {
|
||||
enable = true;
|
||||
|
||||
profiles =
|
||||
let
|
||||
fingerprint = "00ffffffffffff000dae081400000000251d0104a51f117802ee95a3544c99260f505400000001010101010101010101010101010101363680a0703820403020350035ad1000001a000000fe004e3134304843472d4551310a20000000fe00434d4e0a202020202020202020000000fe004e3134304843472d4551310a200084";
|
||||
name = "eDP-1";
|
||||
in
|
||||
{
|
||||
default = {
|
||||
fingerprint = {
|
||||
"${name}" = fingerprint;
|
||||
};
|
||||
|
||||
config = {
|
||||
"${name}" = {
|
||||
enable = true;
|
||||
mode = "1920x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
desktop = {
|
||||
config = {
|
||||
"${name}".enable = false;
|
||||
|
||||
"HDMI-1" = {
|
||||
enable = true;
|
||||
mode = "2560x1440";
|
||||
primary = true;
|
||||
rate = "59.95";
|
||||
};
|
||||
};
|
||||
|
||||
fingerprint = {
|
||||
"${name}" = fingerprint;
|
||||
"HDMI-1" = "00ffffffffffff004c2d1710424e58432b1f0103803f24782ac8b5ad50449e250f5054bfef80714f810081c081809500a9c0b300010108e80030f2705a80b0588a0078682100001e000000fd00324b1e873c000a202020202020000000fc004c5532385235350a2020202020000000ff0048345a524130303132380a20200183020335f04961120313041f10605f2309070783010000e305c0006b030c002000b83c2000200167d85dc401788003e20f81e3060501023a801871382d40582c450078682100001e023a80d072382d40102c458078682100001e04740030f2705a80b0588a0078682100001e565e00a0a0a029503020350078682100001a000049";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
../.
|
||||
./autorandr.nix
|
||||
./fonts.nix
|
||||
./gitea.nix
|
||||
./i3.nix
|
||||
./immich.nix
|
||||
./jellyfin.nix
|
||||
./rofi.nix
|
||||
./screenkey.nix
|
||||
./xbanish.nix
|
||||
];
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
theme = import ../../../lib/theme { inherit pkgs; };
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
terminus_font
|
||||
terminus_font_ttf
|
||||
];
|
||||
|
||||
fonts = {
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
defaultFonts = {
|
||||
monospace = [ theme.fonts.monospace.name ];
|
||||
};
|
||||
};
|
||||
|
||||
packages =
|
||||
with pkgs;
|
||||
[
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"AnonymousPro"
|
||||
"FiraCode"
|
||||
"GeistMono"
|
||||
"IntelOneMono"
|
||||
"Iosevka"
|
||||
"JetBrainsMono"
|
||||
];
|
||||
})
|
||||
]
|
||||
++ [ theme.fonts.monospace.package ];
|
||||
};
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.gitea = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
HTTP_PORT = 2222;
|
||||
};
|
||||
|
||||
service = {
|
||||
DISABLE_REGISTRATION = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,154 +0,0 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
self,
|
||||
username,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
theme = import "${self}/nix/lib/theme" { inherit pkgs; };
|
||||
|
||||
modifier = "Mod4";
|
||||
in
|
||||
{
|
||||
services = {
|
||||
cron = {
|
||||
enable = true;
|
||||
|
||||
systemCronJobs = [
|
||||
"* * * * * opdavies /home/opdavies/bin/notify-battery"
|
||||
];
|
||||
};
|
||||
|
||||
displayManager.defaultSession = "none+i3";
|
||||
|
||||
xserver = {
|
||||
displayManager.lightdm.enable = true;
|
||||
|
||||
windowManager.i3 = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
i3status
|
||||
i3lock
|
||||
i3blocks
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
acpi
|
||||
libnotify
|
||||
nitrogen
|
||||
];
|
||||
|
||||
home-manager.users.${username} = {
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
|
||||
config = {
|
||||
assigns = {
|
||||
"7" = [ { class = "vlc"; } ];
|
||||
"8" = [ { class = "0ad"; } ];
|
||||
"9" = [
|
||||
{ class = "Slack"; }
|
||||
{ class = "discord"; }
|
||||
];
|
||||
};
|
||||
|
||||
defaultWorkspace = "workspace number 1";
|
||||
|
||||
focus.followMouse = false;
|
||||
|
||||
modifier = modifier;
|
||||
|
||||
keybindings = inputs.nixpkgs.lib.mkOptionDefault {
|
||||
"${modifier}+d" = "exec rofi -show drun";
|
||||
|
||||
"${modifier}+Shift+b" = "exec ${pkgs.firefox}/bin/firefox";
|
||||
"${modifier}+Shift+f" = "exec ${pkgs.xfce.thunar}/bin/thunar";
|
||||
|
||||
# Change focus.
|
||||
"${modifier}+h" = "focus left";
|
||||
"${modifier}+j" = "focus down";
|
||||
"${modifier}+k" = "focus up";
|
||||
"${modifier}+l" = "focus right";
|
||||
|
||||
# Move focused window.
|
||||
"${modifier}+Shift+h" = "move left";
|
||||
"${modifier}+Shift+j" = "move down";
|
||||
"${modifier}+Shift+k" = "move up";
|
||||
"${modifier}+Shift+l" = "move right";
|
||||
|
||||
"${modifier}+Shift+s" = "exec ${pkgs.flameshot}/bin/flameshot gui";
|
||||
"${modifier}+Shift+p" = "exec ${pkgs.autorandr}/bin/autorandr --change";
|
||||
"${modifier}+Shift+y" = "exec ${pkgs.copyq}/bin/copyq toggle";
|
||||
|
||||
"XF86AudioRaiseVolume" = "exec pamixer -ui 2 && pamixer --get-volume";
|
||||
"XF86AudioLowerVolume" = "exec pamixer -ud 2 && pamixer --get-volume";
|
||||
"XF86AudioMute" = ''exec pamixer --toggle-mute && ( [ "$(pamixer --get-mute)" = "true" ] && echo 0'';
|
||||
|
||||
"XF86MonBrightnessDown" = "exec brightnessctl set 5%- | sed -En 's/.*(([0-9]+)%).*/1/p'";
|
||||
"XF86MonBrightnessUp" = "exec brightnessctl set +5% | sed -En 's/.*(([0-9]+)%).*/1/p'";
|
||||
};
|
||||
|
||||
terminal = "alacritty";
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
set $laptop eDP-1
|
||||
bindswitch --reload --locked lid:on output $laptop disable
|
||||
bindswitch --reload --locked lid:off output $laptop enable
|
||||
|
||||
exec_always --no-startup-id ${pkgs.nitrogen}/bin/nitrogen --restore &
|
||||
exec_always --no-startup-id caffeine
|
||||
exec_always --no-startup-id ${pkgs.autorandr}/bin/autorandr --change
|
||||
|
||||
smart_borders on
|
||||
smart_gaps on
|
||||
|
||||
for_window [class="zoom"] floating enable
|
||||
# xprop | grep -i class
|
||||
'';
|
||||
|
||||
config = {
|
||||
bars = [
|
||||
{
|
||||
position = "bottom";
|
||||
statusCommand = "${pkgs.i3status}/bin/i3status";
|
||||
trayOutput = "none";
|
||||
}
|
||||
];
|
||||
|
||||
fonts.names = [ "${theme.fonts.monospace.name}" ];
|
||||
|
||||
gaps = {
|
||||
smartBorders = "on";
|
||||
smartGaps = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.i3status = {
|
||||
enable = true;
|
||||
|
||||
general.colors = false;
|
||||
|
||||
modules = {
|
||||
"battery all".settings.last_full_capacity = true;
|
||||
|
||||
"tztime local".settings.format = "%d-%m-%Y %H:%M:%S";
|
||||
cpu_temperature.enable = false;
|
||||
ipv6.enable = false;
|
||||
load.enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
|
||||
settings.global.follow = "keyboard";
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.immich.enable = true;
|
||||
|
||||
environment.systemPackages = [ pkgs.immich-cli ];
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
services.jellyfin = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
{ pkgs, username, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
rofi
|
||||
rofi-power-menu
|
||||
];
|
||||
|
||||
home-manager.users.${username}.programs.rofi = {
|
||||
enable = true;
|
||||
cycle = true;
|
||||
|
||||
extraConfig = {
|
||||
modi = "run,drun,emoji,calc";
|
||||
};
|
||||
|
||||
plugins = with pkgs; [
|
||||
rofi-bluetooth
|
||||
rofi-calc
|
||||
rofi-emoji
|
||||
rofi-pulse-select
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
{ pkgs, username, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [ screenkey ];
|
||||
|
||||
home-manager.users.${username}.xdg.configFile."screenkey.json".text = builtins.toJSON {
|
||||
key_mode = "composed";
|
||||
mods_mode = "emacs";
|
||||
persist = true;
|
||||
size = "small";
|
||||
timeout = 0.25;
|
||||
};
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
{ services.xbanish.enable = true; }
|
Loading…
Add table
Add a link
Reference in a new issue