diff --git a/hosts/potatobook-g/configuration.nix b/hosts/potatobook-g/configuration.nix index db0f132..6cbd34c 100644 --- a/hosts/potatobook-g/configuration.nix +++ b/hosts/potatobook-g/configuration.nix @@ -11,8 +11,33 @@ ./hardware-configuration.nix ../../common.nix ../../modules + #inputs.mms.module ]; + #nixpkgs = { + #overlays = [ + #(self: super: { + #linux_zen_xeniafied = pkgs.linuxPackagesFor (pkgs.linuxKernel.kernels.linux_zen.override { + #structuredExtraConfig = with lib.kernel; { + ##"FB" = yes; + ##"FRAMEBUFFER_CONSOLE" = yes; + ##"VGA_CONSOLE" = yes; + ##"VIDEO_SELECT" = yes; + #LOGO = lib.mkForce yes; + #LOGO_LINUX_CLUT224 = yes; + #}; + #ignoreConfigErrors = true; + #}); + #}) + #]; + #}; + #boot.kernelPatches = [ + #{ + #name = "fomx"; + #patch = ../other/0001-fomx.patch; + #} + #]; + boot.binfmt.emulatedSystems = ["aarch64-linux"]; jade = { @@ -34,6 +59,7 @@ "/".options = ["compress=zstd:3"]; "/home".options = ["compress=zstd:3"]; "/nix".options = ["compress=zstd:3" "noatime"]; + #"/swap".options = [ "noatime" ]; }; boot.loader.systemd-boot.enable = true; @@ -45,8 +71,27 @@ networking.hostName = "potatobook-g"; + services.autorandr = { + enable = true; + profiles = { + "default" = { + config = { + "eDP-1" = { + enable = true; + mode = "1920x1200"; + }; + }; + }; + }; + }; + + # hardware.keyboard.uhk.enable = true; hardware.enableRedistributableFirmware = true; + environment.systemPackages = with pkgs; [ + android-tools + ]; + environment.pathsToLink = [ "/share/nix-direnv" ]; @@ -61,6 +106,43 @@ systemd.services."NetworkManager-wait-online".enable = false; + # services.pixiecore = + # let + # nixpkgs = builtins.getFlake "nixpkgs/nixos-unstable"; + # sys = nixpkgs.lib.nixosSystem { + # system = "x86_64-linux"; + # modules = [ + # ({config, pkgs, lib, modulesPath, ...}: { + # imports = [ + # (modulesPath + "/installer/netboot/netboot-base.nix") + # ]; + + # services.getty.autologinUser = lib.mkForce "root"; + # console.keyMap = "de"; + + # system.stateVersion = config.system.nixos.release; + # environment.systemPackages = with pkgs; [ + # helix nil git neofetch + # ]; + + # programs = { + # zsh = { + # enable = true; + # enableCompletion = true; + # }; + # }; + # }) + # ]; + # }; + # build = sys.config.system.build; + # in { + # enable = true; + # openFirewall = true; + # kernel = "${build.kernel}/bzImage"; + # initrd = "${build.netbootRamdisk}/initrd"; + # cmdLine = "init=${build.toplevel}/init loglevel=4"; + # }; + systemd.services = { create-swapfile = { serviceConfig.Type = "oneshot"; diff --git a/modules/default.nix b/modules/default.nix index 44c9a43..afe2abc 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -3,10 +3,9 @@ ./shell ./desktop ./hardware - ./de - ./net + ./firewall.nix + ./desktop-environment ./input - ./media ./graphics.nix ]; } diff --git a/modules/de/audio.nix b/modules/desktop-environment/audio.nix similarity index 100% rename from modules/de/audio.nix rename to modules/desktop-environment/audio.nix diff --git a/modules/de/default.nix b/modules/desktop-environment/default.nix similarity index 90% rename from modules/de/default.nix rename to modules/desktop-environment/default.nix index 3370088..4dc7928 100644 --- a/modules/de/default.nix +++ b/modules/desktop-environment/default.nix @@ -3,11 +3,12 @@ ./audio.nix ./eduroam.nix ./home + ./media ./dm.nix ./tlp.nix ./locale.nix ./printing.nix - ./themeing.nix + ./stylix.nix ]; services.flatpak.enable = true; security.polkit.enable = true; diff --git a/modules/de/dm.nix b/modules/desktop-environment/dm.nix similarity index 100% rename from modules/de/dm.nix rename to modules/desktop-environment/dm.nix diff --git a/modules/de/eduroam.nix b/modules/desktop-environment/eduroam.nix similarity index 100% rename from modules/de/eduroam.nix rename to modules/desktop-environment/eduroam.nix diff --git a/modules/de/home/browser.nix b/modules/desktop-environment/home/browser.nix similarity index 100% rename from modules/de/home/browser.nix rename to modules/desktop-environment/home/browser.nix diff --git a/modules/de/home/default.nix b/modules/desktop-environment/home/default.nix similarity index 100% rename from modules/de/home/default.nix rename to modules/desktop-environment/home/default.nix diff --git a/modules/de/home/eww/configDir/bottomBar/bottomBar.yuck b/modules/desktop-environment/home/eww/configDir/bottomBar/bottomBar.yuck similarity index 100% rename from modules/de/home/eww/configDir/bottomBar/bottomBar.yuck rename to modules/desktop-environment/home/eww/configDir/bottomBar/bottomBar.yuck diff --git a/modules/de/home/eww/configDir/bottomBar/traveldings.yuck b/modules/desktop-environment/home/eww/configDir/bottomBar/traveldings.yuck similarity index 100% rename from modules/de/home/eww/configDir/bottomBar/traveldings.yuck rename to modules/desktop-environment/home/eww/configDir/bottomBar/traveldings.yuck diff --git a/modules/de/home/eww/configDir/bottomBar/workspaces.yuck b/modules/desktop-environment/home/eww/configDir/bottomBar/workspaces.yuck similarity index 100% rename from modules/de/home/eww/configDir/bottomBar/workspaces.yuck rename to modules/desktop-environment/home/eww/configDir/bottomBar/workspaces.yuck diff --git a/modules/de/home/eww/configDir/eww.css b/modules/desktop-environment/home/eww/configDir/eww.css similarity index 100% rename from modules/de/home/eww/configDir/eww.css rename to modules/desktop-environment/home/eww/configDir/eww.css diff --git a/modules/de/home/eww/configDir/eww.yuck b/modules/desktop-environment/home/eww/configDir/eww.yuck similarity index 100% rename from modules/de/home/eww/configDir/eww.yuck rename to modules/desktop-environment/home/eww/configDir/eww.yuck diff --git a/modules/de/home/eww/configDir/scripts/bat.nu b/modules/desktop-environment/home/eww/configDir/scripts/bat.nu similarity index 100% rename from modules/de/home/eww/configDir/scripts/bat.nu rename to modules/desktop-environment/home/eww/configDir/scripts/bat.nu diff --git a/modules/de/home/eww/configDir/scripts/iceTacho.nu b/modules/desktop-environment/home/eww/configDir/scripts/iceTacho.nu similarity index 100% rename from modules/de/home/eww/configDir/scripts/iceTacho.nu rename to modules/desktop-environment/home/eww/configDir/scripts/iceTacho.nu diff --git a/modules/de/home/eww/configDir/topBar/sysinfo.yuck b/modules/desktop-environment/home/eww/configDir/topBar/sysinfo.yuck similarity index 100% rename from modules/de/home/eww/configDir/topBar/sysinfo.yuck rename to modules/desktop-environment/home/eww/configDir/topBar/sysinfo.yuck diff --git a/modules/de/home/eww/configDir/topBar/time.yuck b/modules/desktop-environment/home/eww/configDir/topBar/time.yuck similarity index 100% rename from modules/de/home/eww/configDir/topBar/time.yuck rename to modules/desktop-environment/home/eww/configDir/topBar/time.yuck diff --git a/modules/de/home/eww/configDir/topBar/topBar.yuck b/modules/desktop-environment/home/eww/configDir/topBar/topBar.yuck similarity index 100% rename from modules/de/home/eww/configDir/topBar/topBar.yuck rename to modules/desktop-environment/home/eww/configDir/topBar/topBar.yuck diff --git a/modules/de/home/eww/configDir/util.yuck b/modules/desktop-environment/home/eww/configDir/util.yuck similarity index 100% rename from modules/de/home/eww/configDir/util.yuck rename to modules/desktop-environment/home/eww/configDir/util.yuck diff --git a/modules/de/home/eww/default.nix b/modules/desktop-environment/home/eww/default.nix similarity index 100% rename from modules/de/home/eww/default.nix rename to modules/desktop-environment/home/eww/default.nix diff --git a/modules/de/home/layaway.nix b/modules/desktop-environment/home/layaway.nix similarity index 100% rename from modules/de/home/layaway.nix rename to modules/desktop-environment/home/layaway.nix diff --git a/modules/de/home/niri/binds.nix b/modules/desktop-environment/home/niri/binds.nix similarity index 100% rename from modules/de/home/niri/binds.nix rename to modules/desktop-environment/home/niri/binds.nix diff --git a/modules/de/home/niri/default.nix b/modules/desktop-environment/home/niri/default.nix similarity index 100% rename from modules/de/home/niri/default.nix rename to modules/desktop-environment/home/niri/default.nix diff --git a/modules/de/home/niri/input.nix b/modules/desktop-environment/home/niri/input.nix similarity index 100% rename from modules/de/home/niri/input.nix rename to modules/desktop-environment/home/niri/input.nix diff --git a/modules/de/home/niri/privacy.nix b/modules/desktop-environment/home/niri/privacy.nix similarity index 100% rename from modules/de/home/niri/privacy.nix rename to modules/desktop-environment/home/niri/privacy.nix diff --git a/modules/de/home/niri/quirks.nix b/modules/desktop-environment/home/niri/quirks.nix similarity index 100% rename from modules/de/home/niri/quirks.nix rename to modules/desktop-environment/home/niri/quirks.nix diff --git a/modules/de/home/niri/screenshot.nix b/modules/desktop-environment/home/niri/screenshot.nix similarity index 100% rename from modules/de/home/niri/screenshot.nix rename to modules/desktop-environment/home/niri/screenshot.nix diff --git a/modules/de/home/niri/style.nix b/modules/desktop-environment/home/niri/style.nix similarity index 100% rename from modules/de/home/niri/style.nix rename to modules/desktop-environment/home/niri/style.nix diff --git a/modules/de/home/niri/xwayland-sat.nix b/modules/desktop-environment/home/niri/xwayland-sat.nix similarity index 100% rename from modules/de/home/niri/xwayland-sat.nix rename to modules/desktop-environment/home/niri/xwayland-sat.nix diff --git a/modules/de/home/notifications.nix b/modules/desktop-environment/home/notifications.nix similarity index 92% rename from modules/de/home/notifications.nix rename to modules/desktop-environment/home/notifications.nix index 37390e9..8c5f9aa 100644 --- a/modules/de/home/notifications.nix +++ b/modules/desktop-environment/home/notifications.nix @@ -14,7 +14,6 @@ foreground = "#ebdbb2"; frame_color = "#504945"; frame_width = 2; - font = "Atkinson Hyperlegible"; }; }; }; diff --git a/modules/de/home/swayidle.nix b/modules/desktop-environment/home/swayidle.nix similarity index 100% rename from modules/de/home/swayidle.nix rename to modules/desktop-environment/home/swayidle.nix diff --git a/modules/de/home/terminal.nix b/modules/desktop-environment/home/terminal.nix similarity index 100% rename from modules/de/home/terminal.nix rename to modules/desktop-environment/home/terminal.nix diff --git a/modules/de/locale.nix b/modules/desktop-environment/locale.nix similarity index 100% rename from modules/de/locale.nix rename to modules/desktop-environment/locale.nix diff --git a/modules/media/default.nix b/modules/desktop-environment/media/default.nix similarity index 100% rename from modules/media/default.nix rename to modules/desktop-environment/media/default.nix diff --git a/modules/media/fonts.nix b/modules/desktop-environment/media/fonts.nix similarity index 100% rename from modules/media/fonts.nix rename to modules/desktop-environment/media/fonts.nix diff --git a/modules/media/obs.nix b/modules/desktop-environment/media/obs.nix similarity index 100% rename from modules/media/obs.nix rename to modules/desktop-environment/media/obs.nix diff --git a/modules/media/typst.nix b/modules/desktop-environment/media/typst.nix similarity index 100% rename from modules/media/typst.nix rename to modules/desktop-environment/media/typst.nix diff --git a/modules/de/printing.nix b/modules/desktop-environment/printing.nix similarity index 100% rename from modules/de/printing.nix rename to modules/desktop-environment/printing.nix diff --git a/modules/de/themeing.nix b/modules/desktop-environment/stylix.nix similarity index 77% rename from modules/de/themeing.nix rename to modules/desktop-environment/stylix.nix index 3cc2047..4d2d991 100644 --- a/modules/de/themeing.nix +++ b/modules/desktop-environment/stylix.nix @@ -38,17 +38,5 @@ dunst.enable = false; wofi.enable = false; }; - gtk = { - enable = true; - cursorTheme = { - package = pkgs.phinger-cursors; - name = "phinger-cursors"; - size = 30; - }; - iconTheme = { - package = pkgs.gruvbox-dark-icons-gtk; - name = "gruvbox-dark-icons"; - }; - }; }; } diff --git a/modules/de/tlp.nix b/modules/desktop-environment/tlp.nix similarity index 100% rename from modules/de/tlp.nix rename to modules/desktop-environment/tlp.nix diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index ad4114d..a069ad7 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -7,8 +7,11 @@ with lib; { imports = [ ./gaming.nix + # TODO: more fine grained choices, not every setup needs fspy or rawtherapee ./syncthing.nix ./kdeconnect.nix + ./themeing.nix + ./networking.nix ./social.nix ]; diff --git a/modules/desktop/networking.nix b/modules/desktop/networking.nix new file mode 100644 index 0000000..d32d49b --- /dev/null +++ b/modules/desktop/networking.nix @@ -0,0 +1,69 @@ +{ + config, + lib, + pkgs, + ... +}: let + addNuShebang = path: + builtins.concatStringsSep "\n\n" [ + "#!${pkgs.nushell}/bin/nu" + (builtins.readFile path) + ]; +in { + config = { + networking = { + networkmanager = { + wifi.backend = "wpa_supplicant"; + dispatcherScripts = [ + { + type = "basic"; + source = pkgs.writeText "dispatcher" (addNuShebang ../../other/scripts/dispatcher.nu); + } + ]; + }; + hosts = { + "127.0.0.1" = [ + "www.tiktok.com" + "www.twitter.com" + "www.instagram.com" + "www.facebook.com" + "www.snapchat.com" + + "tiktok.com" + "twitter.com" + "instagram.com" + "facebook.com" + "snapchat.com" + + "google-analytics.com" + "stats.g.doubleclick.net" + "googleadservices.com" + "googletagmanager.com" + "googletagservices.com" + "googlesyndication.com" + ]; + }; + }; + environment.etc = with builtins; ( + listToAttrs ( + map (v: { + name = "networkhooks/${v}"; + value = { + text = addNuShebang ../../other/scripts/networkhooks/${v}; + mode = "0755"; + }; + }) + (attrNames (readDir ../../other/scripts/networkhooks)) + ) + ); + systemd.services."NetworkManager-wait-online".enable = false; + services.mullvad-vpn.enable = true; + home-manager.users.jade = {pkgs, ...}: { + home.packages = with pkgs; [ + networkmanagerapplet + mullvad-vpn + macchanger + ]; + }; + }; +} diff --git a/modules/desktop/themeing.nix b/modules/desktop/themeing.nix new file mode 100644 index 0000000..1803dc4 --- /dev/null +++ b/modules/desktop/themeing.nix @@ -0,0 +1,45 @@ +{ + config, + lib, + pkgs, + ... +}: { + config = { + # fonts.packages = with pkgs; [ + # atkinson-hyperlegible + # ]; + home-manager.users.jade = {pkgs, ...}: { + home.packages = with pkgs; [ + # gtk-engine-murrine + # gruvbox-dark-gtk + gruvbox-dark-icons-gtk + ]; + gtk = { + # enable = true; + cursorTheme = { + package = pkgs.phinger-cursors; + name = "phinger-cursors"; + size = 30; + }; + # font = { + # package = pkgs.atkinson-hyperlegible; + # name = "Atkinson Hyperlegible"; + # size = 11.5; + # }; + iconTheme = { + package = pkgs.gruvbox-dark-icons-gtk; + name = "gruvbox-dark-icons"; + }; + }; + # theme = { + # package = pkgs.gruvbox-dark-gtk; + # name = "gruvbox-dark"; + # }; + # }; + # qt = { + # enable = true; + # platformTheme.name = "gtk"; + # }; + }; + }; +} diff --git a/modules/net/firewall.nix b/modules/firewall.nix similarity index 100% rename from modules/net/firewall.nix rename to modules/firewall.nix diff --git a/modules/net/default.nix b/modules/net/default.nix deleted file mode 100644 index 3bbc4af..0000000 --- a/modules/net/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{...}: { - imports = [ - ./firewall.nix - ./hosts.nix - ./dispatchers - ]; - networking.networkmanager.wifi.backend = "wpa_supplicant"; - systemd.services."NetworkManager-wait-online".enable = false; - services.mullvad-vpn.enable = true; - home-manager.users.jade = {pkgs, ...}: { - home.packages = with pkgs; [ - networkmanagerapplet - mullvad-vpn - macchanger - ]; - }; -} diff --git a/modules/net/dispatchers/default.nix b/modules/net/dispatchers/default.nix deleted file mode 100644 index 656d9cd..0000000 --- a/modules/net/dispatchers/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{pkgs, ...}: let - addNuShebang = path: - builtins.concatStringsSep "\n\n" [ - "#!${pkgs.nushell}/bin/nu" - (builtins.readFile path) - ]; -in { - networking.networkmanager.dispatcherScripts = [ - { - type = "basic"; - source = pkgs.writeText "dispatcher" (addNuShebang ./dispatcher.nu); - } - ]; - - environment.etc = with builtins; ( - listToAttrs ( - map (v: { - name = "networkhooks/${v}"; - value = { - text = addNuShebang ./hooks/${v}; - mode = "0755"; - }; - }) - (attrNames (readDir ./hooks)) - ) - ); -} diff --git a/modules/net/hosts.nix b/modules/net/hosts.nix deleted file mode 100644 index 1bfb877..0000000 --- a/modules/net/hosts.nix +++ /dev/null @@ -1,24 +0,0 @@ -{...}: { - networking.hosts = { - "127.0.0.1" = [ - "www.tiktok.com" - "www.twitter.com" - "www.instagram.com" - "www.facebook.com" - "www.snapchat.com" - - "tiktok.com" - "twitter.com" - "instagram.com" - "facebook.com" - "snapchat.com" - - "google-analytics.com" - "stats.g.doubleclick.net" - "googleadservices.com" - "googletagmanager.com" - "googletagservices.com" - "googlesyndication.com" - ]; - }; -} diff --git a/modules/shell/tty.nix b/modules/shell/tty.nix index becd7b0..764d905 100644 --- a/modules/shell/tty.nix +++ b/modules/shell/tty.nix @@ -1,4 +1,10 @@ -{config, ...}: let +{ + pkgs, + config, + lib, + ... +}: let + # generate shell command options for kmscon fom an attrset generateOptions = with builtins; ( opts: toString ( @@ -7,6 +13,26 @@ ) ) ); + # generate a hexadecimal number lookup table to get integers from them + hexLookupTable = with lib; (listToAttrs (genList (i: { + name = let + r = toHexString i; + in ( + # pad with 0 in front if only 1 digit + if (stringLength r) == 1 + then "0${r}" + else r + ); + value = toString i; + }) + 256)); + # "parse" hex color strings and convert them to kmscon options + hexToOpt = with lib; (color: + concatStringsSep "," [ + (getAttr (substring 1 2 (toUpper color)) hexLookupTable) + (getAttr (substring 3 2 (toUpper color)) hexLookupTable) + (getAttr (substring 5 2 (toUpper color)) hexLookupTable) + ]); in { # TODO: global colorscheme vars for everything console.colors = [ @@ -30,10 +56,37 @@ in { services.kmscon = { enable = true; + # fonts = [ + # { + # name = "Departure Mono Nerd Font"; + # package = pkgs.nerd-fonts.departure-mono; + # } + # ]; extraConfig = "font-size=14"; + # extraOptions = "--term xterm-256color"; extraOptions = generateOptions { xkb-layout = config.services.xserver.xkb.layout; xkb-variant = config.services.xserver.xkb.variant; + + # palette = "custom"; + # palette-foreground = hexToOpt "#ebdbb2"; + # palette-background = hexToOpt "#282828"; + # palette-black = hexToOpt "#282828"; + # palette-red = hexToOpt "#cc241d"; + # palette-green = hexToOpt "#98971a"; + # palette-yellow = hexToOpt "#d79921"; + # palette-blue = hexToOpt "#458588"; + # palette-magenta = hexToOpt "#b16286"; + # palette-cyan = hexToOpt "#689d6a"; + # palette-light-grey = hexToOpt "#a89984"; + # palette-dark-grey = hexToOpt "#928374"; + # palette-light-red = hexToOpt "#fb4934"; + # palette-light-green = hexToOpt "#b8bb26"; + # palette-light-yellow = hexToOpt "#fabd2f"; + # palette-light-blue = hexToOpt "#83a598"; + # palette-light-magenta = hexToOpt "#d3869b"; + # palette-light-cyan = hexToOpt "#8ec07c"; + # palette-white = hexToOpt "#ebdbb2"; }; hwRender = true; }; diff --git a/modules/utils.nix b/modules/utils.nix new file mode 100644 index 0000000..1de413c --- /dev/null +++ b/modules/utils.nix @@ -0,0 +1,56 @@ +{ + pkgs, + lib, +}: rec { + # taken from https://github.com/NixOS/nixpkgs/blob/3650808d85dccbfa3be3d785dfd3ce33a757bd2c/pkgs/build-support/trivial-builders/default.nix#L335 + writeNuShellApplication = { + name, + text, + runtimeInputs ? [], + meta ? {}, + checkPhase ? null, + }: + writeTextFile { + inherit name meta; + executable = true; + destination = "/bin/${name}"; + allowSubstitutes = true; + preferLocalBuild = false; + text = + '' + #!${pkgs.nushell} + '' + + lib.optionalString (runtimeInputs != []) '' + + $env.PATH = ($env.PATH | split row (char esep) | prepend '${lib.makeBinPath runtimeInputs}'); + '' + + '' + + ${text} + ''; + + checkPhase = + # GHC (=> shellcheck) isn't supported on some platforms (such as risc-v) + # but we still want to use writeShellApplication on those platforms + if checkPhase == null + then '' + runHook preCheck + + nu -c "nu-check -d $target" + + runHook postCheck + '' + else checkPhase; + }; + packageNushellApplication = { + name, + path, + runtimeInputs ? [], + meta ? {}, + checkPhase ? null, + }: + writeNuShellApplication { + inherit name runtimeInputs meta checkPhase; + text = builtins.readFile path; + }; +} diff --git a/modules/net/dispatchers/dispatcher.nu b/other/scripts/dispatcher.nu similarity index 100% rename from modules/net/dispatchers/dispatcher.nu rename to other/scripts/dispatcher.nu diff --git a/modules/net/dispatchers/hooks/WIFI@DB.nu b/other/scripts/networkhooks/WIFI@DB.nu similarity index 100% rename from modules/net/dispatchers/hooks/WIFI@DB.nu rename to other/scripts/networkhooks/WIFI@DB.nu diff --git a/modules/net/dispatchers/hooks/WIFIonICE.nu b/other/scripts/networkhooks/WIFIonICE.nu similarity index 100% rename from modules/net/dispatchers/hooks/WIFIonICE.nu rename to other/scripts/networkhooks/WIFIonICE.nu diff --git a/modules/net/dispatchers/hooks/ccchh.nu b/other/scripts/networkhooks/ccchh.nu similarity index 100% rename from modules/net/dispatchers/hooks/ccchh.nu rename to other/scripts/networkhooks/ccchh.nu