From 9a5ffa2f0b97dceace49c47b4b903ff6861d0702 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Tue, 9 Jan 2024 16:46:31 -0600 Subject: [PATCH] maybe working --- flake.lock | 6 +- modules/nixos/avahi.nix | 4 +- modules/nixos/common.nix | 105 +++++++------ modules/nixos/default.nix | 1 + modules/nixos/desktop-usage.nix | 255 ++++++++++++++++---------------- modules/nixos/gnome.nix | 40 ++--- modules/nixos/kde.nix | 36 +++++ modules/nixos/pipewire.nix | 2 + nixos/thablet.nix | 23 ++- 9 files changed, 248 insertions(+), 224 deletions(-) create mode 100644 modules/nixos/kde.nix diff --git a/flake.lock b/flake.lock index 7e4a1c3..1fda934 100644 --- a/flake.lock +++ b/flake.lock @@ -285,11 +285,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1704194953, - "narHash": "sha256-RtDKd8Mynhe5CFnVT8s0/0yqtWFMM9LmCzXv/YKxnq4=", + "lastModified": 1704538339, + "narHash": "sha256-1734d3mQuux9ySvwf6axRWZRBhtcZA9Q8eftD6EZg6U=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bd645e8668ec6612439a9ee7e71f7eac4099d4f6", + "rev": "46ae0210ce163b3cba6c7da08840c1d63de9c701", "type": "github" }, "original": { diff --git a/modules/nixos/avahi.nix b/modules/nixos/avahi.nix index 03dd945..d6c2c50 100644 --- a/modules/nixos/avahi.nix +++ b/modules/nixos/avahi.nix @@ -4,6 +4,8 @@ enable = true; reflector = true; openFirewall = true; - nssmdns4 = true; + # nssmdns4 = true; + # nssmdns6 = true; + nssmdns = true; }; } diff --git a/modules/nixos/common.nix b/modules/nixos/common.nix index c8e8cda..00dd7db 100644 --- a/modules/nixos/common.nix +++ b/modules/nixos/common.nix @@ -18,7 +18,7 @@ inputs.home-manager.nixosModules.home-manager ] ++ (with outputs.nixosModules; [ - avahi + # avahi daniel ]); @@ -34,60 +34,55 @@ MANPAGER = "less"; }; - systemPackages = with pkgs; - [ - # age - # bat - # bc - # bind - # bottom - # btrfs-progs - # cue - curl - # dogdns - dua - eza - fd - file - fzf - gnumake - # gron - # hexyl - iputils - # jq - killall - less - mosh - # nmap - nettools - openssl - # pciutils - # pv - # rclone - # restic - ripgrep - rsync - # rtx - sd - # sops - smartmontools - # sqlite - # skim - # sysstat - unzip - # usbutils - # watchexec - wget - # xh - zellij - # zstd - ] - ++ (with inputs.home-manager.packages.${system}; [ - home-manager - ]) - ++ (with inputs.helix.packages.${system}; [ - helix - ]); + systemPackages = with pkgs; [ + # age + # bat + # bc + # bind + # bottom + # btrfs-progs + # cue + curl + # dogdns + dua + eza + fd + file + fzf + gnumake + # gron + # hexyl + iputils + # jq + killall + less + mosh + # nmap + nettools + openssl + # pciutils + # pv + # rclone + # restic + ripgrep + rsync + # rtx + sd + # sops + smartmontools + # sqlite + # skim + # sysstat + unzip + # usbutils + # watchexec + wget + # xh + zellij + inputs.home-manager.packages.${system}.home-manager + inputs.helix.packages.${system}.helix + # zstd + ]; }; users.groups.daniel = {}; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 4afed8b..90b1edd 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -17,6 +17,7 @@ with builtins; "user-installed-applications" "wifi" "gnome" + "kde" "kde-connect" "printing" "avahi" diff --git a/modules/nixos/desktop-usage.nix b/modules/nixos/desktop-usage.nix index dd8c837..a88f600 100644 --- a/modules/nixos/desktop-usage.nix +++ b/modules/nixos/desktop-usage.nix @@ -6,7 +6,7 @@ ... }: { imports = [ - ./sway.nix + # ./sway.nix # ./hyprland.nix # ./plasma.nix # ./gnome.nix @@ -17,134 +17,131 @@ nixpkgs.overlays = [outputs.overlays.modifications]; # fonts.packages if unstable? - fonts.packages = with pkgs; - [ - (nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) - ] - ++ (with inputs.nixpkgs.legacyPackages.${system}; [ - (iosevka.override { - set = "lyteterm"; - privateBuildPlan = '' - [buildPlans.iosevka-lyteterm] - family = "IosevkaLyteTerm" - spacing = "fontconfig-mono" - serifs = "sans" - export-glyph-names = true - - [buildPlans.iosevka-lyteterm.ligations] - inherits = "dlig" - disables = [ "exeqeqeq", "exeqeq", "exeqeq-dl", "exeq", "ineq", "connected-underscore", "connected-tilde-as-wave" ] - - [buildPlans.iosevka-lyteterm.weights.regular] - shape = 400 - menu = 400 - css = 400 - - [buildPlans.iosevka-lyteterm.weights.book] - shape = 450 - menu = 450 - css = 450 - - [buildPlans.iosevka-lyteterm.weights.bold] - shape = 700 - menu = 700 - css = 700 - - [buildPlans.iosevka-lyteterm.weights.black] - shape = 900 - menu = 900 - css = 900 - - # [[buildPlans.iosevka-lyteterm.compatibility-ligatures]] - # unicode = 57600 # 0xE100 - # featureTag = 'calt' - # kequence = '<*>' - - [buildPlans.iosevka-lyteterm.variants] - inherits = "ss01" - - [buildPlans.iosevka-lyteterm.variants.design] - capital-a = 'curly-serifless' - capital-b = 'standard-interrupted-serifless' - capital-c = 'unilateral-inward-serifed' - capital-d = 'standard-serifless' - capital-g = 'toothless-rounded-inward-serifed-hooked' - capital-i = 'serifed' - capital-j = 'serifed' - capital-k = 'curly-serifless' - capital-l = 'motion-serifed' - capital-m = 'hanging-serifless' - capital-n = 'asymmetric-serifless' - capital-p = 'open-serifless' - capital-q = 'crossing' - capital-r = 'standing-open-serifless' - capital-s = 'unilateral-inward-serifed' - capital-t = 'motion-serifed' - capital-u = 'toothless-corner-serifless' - capital-v = 'curly-serifless' - capital-w = 'curly-serifless' - capital-x = 'curly-serifless' - capital-y = 'curly-base-serifed' - capital-z = 'curly-top-serifed-with-crossbar' - a = 'double-storey-toothless-corner' - b = 'toothless-corner-serifless' - c = 'unilateral-inward-serifed' - d = 'toothless-corner-serifless' - e = 'flat-crossbar' - f = 'tailed' - g = 'double-storey-open' - # g = 'single-storey-earless-corner-flat-hook' - h = 'straight-serifless' - i = 'tailed-serifed' - j = 'serifed' - k = 'curly-serifless' - l = 'tailed-serifed' - m = 'earless-corner-double-arch-serifless' - n = 'earless-corner-straight-serifless' - p = 'earless-corner-serifless' - q = 'earless-corner-diagonal-tailed-serifless' - r = 'earless-corner-serifless' - s = 'unilateral-inward-serifed' - t = 'bent-hook-asymmetric' - u = 'toothless-corner-serifless' - v = 'curly-serifless' - w = 'curly-serifless' - x = 'curly-serifless' - y = 'curly-turn-serifless' - z = 'curly-top-serifed-with-crossbar' - # cyrl-capital-ze = 'unilateral-inward-serifed' - zero = 'reverse-slashed-split' - one = 'base' - two = 'curly-neck' - three = 'two-arcs' - four = 'semi-open-non-crossing' - # five = 'vertical-upper-left-bar' - five = 'upright-flat' - six = 'straight-bar' - seven = 'curly-serifed-crossbar' - eight = 'two-circles' - nine = 'straight-bar' - tilde = 'low' - asterisk = 'penta-low' - underscore = 'above-baseline' - pilcrow = 'low' - caret = 'low' - paren = 'flat-arc' - brace = 'curly-flat-boundary' - number-sign = 'upright-open' - ampersand = 'upper-open' - at = 'compact' - dollar = 'interrupted' - cent = 'open' - percent = 'rings-segmented-slash' - bar = 'force-upright' - ascii-single-quote = 'raised-comma' - ascii-grave = 'straight' - question = 'smooth' - punctuation-dot = 'round' - ''; - }) - ]); + fonts.packages = with pkgs; [ + (nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) + iosevka + ]; + # fonts.packages = + # with pkgs; [ + # (nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];}) + # ] + # ++ (with inputs.nixpkgs.legacyPackages.${system}; [ + # (iosevka.override { + # set = "lyteterm"; + # privateBuildPlan = '' + # [buildPlans.iosevka-lyteterm] + # family = "IosevkaLyteTerm" + # spacing = "fontconfig-mono" + # serifs = "sans" + # export-glyph-names = true + # [buildPlans.iosevka-lyteterm.ligations] + # inherits = "dlig" + # disables = [ "exeqeqeq", "exeqeq", "exeqeq-dl", "exeq", "ineq", "connected-underscore", "connected-tilde-as-wave" ] + # [buildPlans.iosevka-lyteterm.weights.regular] + # shape = 400 + # menu = 400 + # css = 400 + # [buildPlans.iosevka-lyteterm.weights.book] + # shape = 450 + # menu = 450 + # css = 450 + # [buildPlans.iosevka-lyteterm.weights.bold] + # shape = 700 + # menu = 700 + # css = 700 + # [buildPlans.iosevka-lyteterm.weights.black] + # shape = 900 + # menu = 900 + # css = 900 + # # [[buildPlans.iosevka-lyteterm.compatibility-ligatures]] + # # unicode = 57600 # 0xE100 + # # featureTag = 'calt' + # # kequence = '<*>' + # [buildPlans.iosevka-lyteterm.variants] + # inherits = "ss01" + # [buildPlans.iosevka-lyteterm.variants.design] + # capital-a = 'curly-serifless' + # capital-b = 'standard-interrupted-serifless' + # capital-c = 'unilateral-inward-serifed' + # capital-d = 'standard-serifless' + # capital-g = 'toothless-rounded-inward-serifed-hooked' + # capital-i = 'serifed' + # capital-j = 'serifed' + # capital-k = 'curly-serifless' + # capital-l = 'motion-serifed' + # capital-m = 'hanging-serifless' + # capital-n = 'asymmetric-serifless' + # capital-p = 'open-serifless' + # capital-q = 'crossing' + # capital-r = 'standing-open-serifless' + # capital-s = 'unilateral-inward-serifed' + # capital-t = 'motion-serifed' + # capital-u = 'toothless-corner-serifless' + # capital-v = 'curly-serifless' + # capital-w = 'curly-serifless' + # capital-x = 'curly-serifless' + # capital-y = 'curly-base-serifed' + # capital-z = 'curly-top-serifed-with-crossbar' + # a = 'double-storey-toothless-corner' + # b = 'toothless-corner-serifless' + # c = 'unilateral-inward-serifed' + # d = 'toothless-corner-serifless' + # e = 'flat-crossbar' + # f = 'tailed' + # g = 'double-storey-open' + # # g = 'single-storey-earless-corner-flat-hook' + # h = 'straight-serifless' + # i = 'tailed-serifed' + # j = 'serifed' + # k = 'curly-serifless' + # l = 'tailed-serifed' + # m = 'earless-corner-double-arch-serifless' + # n = 'earless-corner-straight-serifless' + # p = 'earless-corner-serifless' + # q = 'earless-corner-diagonal-tailed-serifless' + # r = 'earless-corner-serifless' + # s = 'unilateral-inward-serifed' + # t = 'bent-hook-asymmetric' + # u = 'toothless-corner-serifless' + # v = 'curly-serifless' + # w = 'curly-serifless' + # x = 'curly-serifless' + # y = 'curly-turn-serifless' + # z = 'curly-top-serifed-with-crossbar' + # # cyrl-capital-ze = 'unilateral-inward-serifed' + # zero = 'reverse-slashed-split' + # one = 'base' + # two = 'curly-neck' + # three = 'two-arcs' + # four = 'semi-open-non-crossing' + # # five = 'vertical-upper-left-bar' + # five = 'upright-flat' + # six = 'straight-bar' + # seven = 'curly-serifed-crossbar' + # eight = 'two-circles' + # nine = 'straight-bar' + # tilde = 'low' + # asterisk = 'penta-low' + # underscore = 'above-baseline' + # pilcrow = 'low' + # caret = 'low' + # paren = 'flat-arc' + # brace = 'curly-flat-boundary' + # number-sign = 'upright-open' + # ampersand = 'upper-open' + # at = 'compact' + # dollar = 'interrupted' + # cent = 'open' + # percent = 'rings-segmented-slash' + # bar = 'force-upright' + # ascii-single-quote = 'raised-comma' + # ascii-grave = 'straight' + # question = 'smooth' + # punctuation-dot = 'round' + # ''; + # }) + # ]); + # ; hardware = { opengl = { diff --git a/modules/nixos/gnome.nix b/modules/nixos/gnome.nix index 3d451f9..fccd381 100644 --- a/modules/nixos/gnome.nix +++ b/modules/nixos/gnome.nix @@ -1,13 +1,15 @@ -{pkgs, ...}: { +{ + pkgs, + lib, + ... +}: { imports = [./pipewire.nix]; services.xserver.enable = true; services.xserver.displayManager.gdm = { - enable = true; + enable = lib.mkDefault false; }; - hardware.pulseaudio.enable = false; - services.xserver.desktopManager.gnome = { enable = true; }; @@ -28,6 +30,8 @@ enable = true; }; + services.udev.packages = with pkgs; [gnome.gnome-settings-daemon]; + environment = { variables = { GTK_THEME = "Catppuccin-Mocha-Compact-Sapphire-Dark"; @@ -37,36 +41,12 @@ }; systemPackages = with pkgs; [ - brightnessctl - feh - # gimp - grim - # inkscape - # krita + gnomeExtensions.appindicator libinput libinput-gestures libnotify - # lutris - # nil - # nixpkgs-fmt noto-fonts - pamixer - # pavucontrol - playerctl - # pulseaudio - pulsemixer - # rclone - # restic - slurp - # steam - swaybg - swayidle - swaylock - # vlc - # vulkan-tools - waybar - # weechat - # wine + pavucontrol wl-clipboard zathura ]; diff --git a/modules/nixos/kde.nix b/modules/nixos/kde.nix new file mode 100644 index 0000000..322438a --- /dev/null +++ b/modules/nixos/kde.nix @@ -0,0 +1,36 @@ +{ + pkgs, + lib, + ... +}: { + imports = [./pipewire.nix]; + + services.xserver.enable = true; + services.xserver.displayManager.sddm.enable = lib.mkDefault false; + services.xserver.desktopManager.plasma5.enable = true; + + qt = { + enable = true; + platformTheme = "gnome"; + style = "adwaita-dark"; + }; + + services.gnome.gnome-keyring.enable = true; + security.pam.services.sddm.enableGnomeKeyring = true; + programs.ssh.askPassword = "${pkgs.plasma5Packages.ksshaskpass}/bin/ksshaskpass"; + + services.xserver.displayManager.defaultSession = "plasmawayland"; + + programs.dconf.enable = true; + + # xdg.portal = { + # enable = true; + # wlr.enable = false; + + # extraPortals = with pkgs; [ + # xdg-desktop-portal-kde + # ]; + # }; + + # hardware.pulseaudio.enable = false; +} diff --git a/modules/nixos/pipewire.nix b/modules/nixos/pipewire.nix index 3e4ed4f..d0e9a3f 100644 --- a/modules/nixos/pipewire.nix +++ b/modules/nixos/pipewire.nix @@ -18,6 +18,8 @@ }; }; + hardware.pulseaudio.enable = false; # maybe? + security = { # I forget why I need these... polkit.enable = true; diff --git a/nixos/thablet.nix b/nixos/thablet.nix index b357b12..1a01614 100644 --- a/nixos/thablet.nix +++ b/nixos/thablet.nix @@ -4,6 +4,7 @@ outputs, lib, config, + pkgs, modulesPath, ... }: { @@ -17,12 +18,22 @@ ] ++ (with outputs.nixosModules; [ desktop-usage - gnome + sway + # gnome + kde wifi flanfam flanfamkiosk ]); + services.xserver.displayManager.gdm = { + enable = false; + }; + services.xserver.displayManager.sddm.enable = false; + services.xserver.displayManager.lightdm.enable = true; + + services.touchegg.enable = true; + home-manager.users.daniel = { imports = with outputs.homeManagerModules; [ sway @@ -55,13 +66,13 @@ services.fprintd = { # TODO: am I missing a driver? see arch wiki for this h/w enable = true; - # tod.enable = true; - # tod.driver = pkgs.libfprint-2-tod1-goodix; + tod.enable = true; + tod.driver = pkgs.libfprint-2-tod1-goodix; }; - environment.systemPackages = - #with pkgs; - []; + # environment.systemPackages = + #with pkgs; + # []; programs.steam.enable = true; programs.steam.remotePlay.openFirewall = true;