From 4972c53e861752d9b3ca29a58c71db84973c9ab5 Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Wed, 6 Sep 2023 18:48:34 +0530 Subject: repo: restructuring --- common.nix | 97 ++++++++++++++++++++++++++++++++++++++++++ hosts/cez/configuration.nix | 10 +++-- hosts/cez/modules/sshfs.nix | 22 ++++++++++ hosts/cez/modules/wayland.nix | 84 ++++++++++++++++++++++++++++++++++++ hosts/cez/overlays/wmenu.nix | 12 ++++++ hosts/common.nix | 95 ----------------------------------------- hosts/kay/configuration.nix | 2 +- modules/sshfs.nix | 22 ---------- modules/wayland.nix | 84 ------------------------------------ overlays/default.nix | 4 -- overlays/dwl-sinan.nix | 14 ++++++ overlays/dwl-sinan/default.nix | 14 ------ overlays/wmenu-cez/default.nix | 12 ------ 13 files changed, 237 insertions(+), 235 deletions(-) create mode 100644 common.nix create mode 100644 hosts/cez/modules/sshfs.nix create mode 100644 hosts/cez/modules/wayland.nix create mode 100644 hosts/cez/overlays/wmenu.nix delete mode 100644 hosts/common.nix delete mode 100644 modules/sshfs.nix delete mode 100644 modules/wayland.nix delete mode 100644 overlays/default.nix create mode 100644 overlays/dwl-sinan.nix delete mode 100644 overlays/dwl-sinan/default.nix delete mode 100644 overlays/wmenu-cez/default.nix diff --git a/common.nix b/common.nix new file mode 100644 index 0000000..31fedc9 --- /dev/null +++ b/common.nix @@ -0,0 +1,97 @@ +{ config, pkgs, lib, ... }: + +let + user = config.userdata.user; + groups = config.userdata.groups; + host = config.networking.hostName; +in +{ + imports = [ + ./modules/userdata.nix + ./modules/dev.nix + ]; + + # boot + boot = { + tmp.useTmpfs = true; + loader = { + timeout = 1; + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + }; + + # networking + time.timeZone = "Asia/Kolkata"; + networking.useDHCP = lib.mkDefault true; + + # users + users.users.${user} = { + isNormalUser = true; + extraGroups = [ + "wheel" + "adbusers" + ] ++ groups; + packages = with pkgs; [ + pass + yt-dlp + geoipWithDatabase + dig + nnn + ffmpeg + rtorrent + ps_mem + brightnessctl + neofetch + ]; + }; + + # system + environment = { + binsh = "${pkgs.dash}/bin/dash"; + shellAliases = { + ls = "ls --color=auto --group-directories-first"; + grep = "grep --color=auto"; + }; + systemPackages = with pkgs; [ + dash + unzip + bc + file + git + htop + curl + neovim + age + sops + ]; + }; + system.stateVersion = "23.05"; + + # nix + nix.settings.experimental-features = [ + "flakes" + "nix-command" + ]; + nixpkgs.overlays = [ + (import ./overlays/dwl-sinan.nix) + ]; + + # sops + sops = { + defaultSopsFile = "./${host}/secrets.yaml"; + age.keyFile = "/var/secrets/sops-nix/key.txt"; + }; + + # programs + programs = { + adb.enable = true; + bash.promptInit = '' + PROMPT_COLOR="1;31m" + [ "$UID" -ne 0 ] && + PROMPT_COLOR="1;32m" + + PS1="\[\033[$PROMPT_COLOR\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\\$\[\033[0m\] " + ''; + }; +} diff --git a/hosts/cez/configuration.nix b/hosts/cez/configuration.nix index ac2d2ea..fb991d9 100644 --- a/hosts/cez/configuration.nix +++ b/hosts/cez/configuration.nix @@ -6,9 +6,13 @@ in { imports = [ ./hardware-configuration.nix - ../../modules/wayland.nix - ../../modules/sshfs.nix - ../common.nix + ./modules/wayland.nix + ./modules/sshfs.nix + ../../common.nix + ]; + + nixpkgs.overlays = [ + (import ./overlays/wmenu.nix) ]; boot = { diff --git a/hosts/cez/modules/sshfs.nix b/hosts/cez/modules/sshfs.nix new file mode 100644 index 0000000..a1f1904 --- /dev/null +++ b/hosts/cez/modules/sshfs.nix @@ -0,0 +1,22 @@ +{ config, pkgs, ... }: + +let + user = config.userdata.user; + domain = config.userdata.domain; +in +{ + system.fsPackages = with pkgs; [ sshfs ]; + + fileSystems."/kay" = { + device = "${user}@${domain}:"; + fsType = "sshfs"; + options = [ + "allow_other" # for non-root access + "_netdev" # this is a network fs + "x-systemd.automount" # mount on demand + "reconnect" # handle connection drops + "ServerAliveInterval=15" # keep connections alive + "IdentityFile=/var/secrets/ssh/${user}.key" + ]; + }; +} diff --git a/hosts/cez/modules/wayland.nix b/hosts/cez/modules/wayland.nix new file mode 100644 index 0000000..98a8540 --- /dev/null +++ b/hosts/cez/modules/wayland.nix @@ -0,0 +1,84 @@ +{ config, pkgs, ... }: + +let + user = config.userdata.user; +in +{ + imports = [ ../../../modules/seatd.nix ]; + + # pkgs + environment.systemPackages = with pkgs; [ + dwl-sinan + wmenu + pinentry-gnome + swaylock + swayidle + swaybg + foot + wl-clipboard + mako + wayland + xdg-utils + libnotify + wob + wlr-randr + ]; + users.users.${user}.packages = with pkgs; [ + zathura + mpv + imv + wtype + tor-browser-bundle-bin + qemu + OVMFFull + element-desktop + grim + slurp + ]; + + # font + fonts = { + packages = with pkgs; [ + terminus-nerdfont + dm-sans + ]; + enableDefaultPackages = true; + fontconfig = { + hinting.style = "full"; + defaultFonts = { + monospace = [ "Terminess Nerd Font" ]; + serif = [ "DeepMind Sans" ]; + sansSerif = [ "DeepMind Sans" ]; + }; + }; + }; + + # misc + services = { + seatd.enable = true; + dbus = { + implementation = "broker"; + enable = true; + }; + }; + + programs = { + xwayland.enable = true; + gnupg.agent = { + enable = true; + pinentryFlavor = "gnome3"; + }; + firefox = { + enable = true; + preferences = { + "media.ffmpeg.vaapi.enabled" = true; + "gfx.webrender.all" = true; + "identity.fxaccounts.enabled" = false; + }; + }; + }; + + userdata.groups = [ "seat" ]; + security.pam.services.swaylock.text = "auth include login"; + hardware.opengl.enable = true; +} diff --git a/hosts/cez/overlays/wmenu.nix b/hosts/cez/overlays/wmenu.nix new file mode 100644 index 0000000..cad340b --- /dev/null +++ b/hosts/cez/overlays/wmenu.nix @@ -0,0 +1,12 @@ +final: prev: + +{ + wmenu = prev.wmenu.overrideAttrs (finalAttrs: prevAttrs: + { + pname = prevAttrs.pname + "-sinan"; + postPatch = '' + sed 's/monospace 10/monospace 13/g' -i main.c + ''; + } + ); +} diff --git a/hosts/common.nix b/hosts/common.nix deleted file mode 100644 index 8cc13d8..0000000 --- a/hosts/common.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - user = config.userdata.user; - groups = config.userdata.groups; - host = config.networking.hostName; -in -{ - imports = [ - ../modules/userdata.nix - ../modules/dev.nix - ]; - - # boot - boot = { - tmp.useTmpfs = true; - loader = { - timeout = 1; - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; - }; - - # networking - time.timeZone = "Asia/Kolkata"; - networking.useDHCP = lib.mkDefault true; - - # users - users.users.${user} = { - isNormalUser = true; - extraGroups = [ - "wheel" - "adbusers" - ] ++ groups; - packages = with pkgs; [ - pass - yt-dlp - geoipWithDatabase - dig - nnn - ffmpeg - rtorrent - ps_mem - brightnessctl - neofetch - ]; - }; - - # system - environment = { - binsh = "${pkgs.dash}/bin/dash"; - shellAliases = { - ls = "ls --color=auto --group-directories-first"; - grep = "grep --color=auto"; - }; - systemPackages = with pkgs; [ - dash - unzip - bc - file - git - htop - curl - neovim - age - sops - ]; - }; - system.stateVersion = "23.05"; - - # nix - nix.settings.experimental-features = [ - "flakes" - "nix-command" - ]; - nixpkgs.overlays = (import ../overlays); - - # sops - sops = { - defaultSopsFile = "./${host}/secrets.yaml"; - age.keyFile = "/var/secrets/sops-nix/key.txt"; - }; - - # programs - programs = { - adb.enable = true; - bash.promptInit = '' - PROMPT_COLOR="1;31m" - [ "$UID" -ne 0 ] && - PROMPT_COLOR="1;32m" - - PS1="\[\033[$PROMPT_COLOR\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\\$\[\033[0m\] " - ''; - }; -} diff --git a/hosts/kay/configuration.nix b/hosts/kay/configuration.nix index 74d49e6..da92a83 100644 --- a/hosts/kay/configuration.nix +++ b/hosts/kay/configuration.nix @@ -3,7 +3,7 @@ { imports = [ ./hardware-configuration.nix - ../common.nix + ../../common.nix ]; networking.hostName = "kay"; diff --git a/modules/sshfs.nix b/modules/sshfs.nix deleted file mode 100644 index a1f1904..0000000 --- a/modules/sshfs.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, pkgs, ... }: - -let - user = config.userdata.user; - domain = config.userdata.domain; -in -{ - system.fsPackages = with pkgs; [ sshfs ]; - - fileSystems."/kay" = { - device = "${user}@${domain}:"; - fsType = "sshfs"; - options = [ - "allow_other" # for non-root access - "_netdev" # this is a network fs - "x-systemd.automount" # mount on demand - "reconnect" # handle connection drops - "ServerAliveInterval=15" # keep connections alive - "IdentityFile=/var/secrets/ssh/${user}.key" - ]; - }; -} diff --git a/modules/wayland.nix b/modules/wayland.nix deleted file mode 100644 index 7af2f51..0000000 --- a/modules/wayland.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ config, pkgs, ... }: - -let - user = config.userdata.user; -in -{ - imports = [ ./seatd.nix ]; - - # pkgs - environment.systemPackages = with pkgs; [ - dwl-sinan - wmenu-sinan - pinentry-gnome - swaylock - swayidle - swaybg - foot - wl-clipboard - mako - wayland - xdg-utils - libnotify - wob - wlr-randr - ]; - users.users.${user}.packages = with pkgs; [ - zathura - mpv - imv - wtype - tor-browser-bundle-bin - qemu - OVMFFull - element-desktop - grim - slurp - ]; - - # font - fonts = { - packages = with pkgs; [ - terminus-nerdfont - dm-sans - ]; - enableDefaultPackages = true; - fontconfig = { - hinting.style = "full"; - defaultFonts = { - monospace = [ "Terminess Nerd Font" ]; - serif = [ "DeepMind Sans" ]; - sansSerif = [ "DeepMind Sans" ]; - }; - }; - }; - - # misc - services = { - seatd.enable = true; - dbus = { - implementation = "broker"; - enable = true; - }; - }; - - programs = { - xwayland.enable = true; - gnupg.agent = { - enable = true; - pinentryFlavor = "gnome3"; - }; - firefox = { - enable = true; - preferences = { - "media.ffmpeg.vaapi.enabled" = true; - "gfx.webrender.all" = true; - "identity.fxaccounts.enabled" = false; - }; - }; - }; - - userdata.groups = [ "seat" ]; - security.pam.services.swaylock.text = "auth include login"; - hardware.opengl.enable = true; -} diff --git a/overlays/default.nix b/overlays/default.nix deleted file mode 100644 index b880f32..0000000 --- a/overlays/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -[ - (import ./dwl-sinan) - (import ./wmenu-cez) -] diff --git a/overlays/dwl-sinan.nix b/overlays/dwl-sinan.nix new file mode 100644 index 0000000..ff5c999 --- /dev/null +++ b/overlays/dwl-sinan.nix @@ -0,0 +1,14 @@ +final: prev: + +{ + dwl-sinan = prev.dwl.overrideAttrs (finalAttrs: prevAttrs: + { + pname = prevAttrs.pname + "-sinan"; + src = prev.fetchgit { + url = "https://git.sinanmohd.com/dwl"; + rev = "cadde97ee92381bfc2222bf18cd876526ab8c948"; + hash = "sha256-H2HgOQnQ5Eltz8/OVpKlS2U89aaivg5t63Ie4fembw8="; + }; + } + ); +} diff --git a/overlays/dwl-sinan/default.nix b/overlays/dwl-sinan/default.nix deleted file mode 100644 index ff5c999..0000000 --- a/overlays/dwl-sinan/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -final: prev: - -{ - dwl-sinan = prev.dwl.overrideAttrs (finalAttrs: prevAttrs: - { - pname = prevAttrs.pname + "-sinan"; - src = prev.fetchgit { - url = "https://git.sinanmohd.com/dwl"; - rev = "cadde97ee92381bfc2222bf18cd876526ab8c948"; - hash = "sha256-H2HgOQnQ5Eltz8/OVpKlS2U89aaivg5t63Ie4fembw8="; - }; - } - ); -} diff --git a/overlays/wmenu-cez/default.nix b/overlays/wmenu-cez/default.nix deleted file mode 100644 index c304efb..0000000 --- a/overlays/wmenu-cez/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -final: prev: - -{ - wmenu-sinan = prev.wmenu.overrideAttrs (finalAttrs: prevAttrs: - { - pname = prevAttrs.pname + "-sinan"; - postPatch = '' - sed 's/monospace 10/monospace 13/g' -i main.c - ''; - } - ); -} -- cgit v1.2.3