dotfiles

My PC Dotfiles & Website
commit 22bc173708948af357690fc5106c9bd01834a712
parent 7eab22cc892faffd5bd415e0bb8ac9d858950831
Author: maydayv7 <maydayv7@gmail.com>
Date:   Fri, 20 Oct 2023 13:23:45 +0530

style: Add Color Schemes

+ Fix Formatting Errors
+ QOL Fixes

Diffstat:

M.prettierignore | 4+++-
MREADME.md | 26++++++++++++++------------
Mfiles/README.md | 1+
Afiles/colors/adwaita-dark.yaml | 18++++++++++++++++++
Afiles/colors/adwaita.yaml | 18++++++++++++++++++
Afiles/colors/arc-dark.yaml | 18++++++++++++++++++
Mfiles/default.nix | 3+++
Mfiles/gnome/dconf.nix | 122++++++++-----------------------------------------------------------------------
Mflake.lock | 8++++----
Mflake.nix | 2+-
Mmodules/gui/default.nix | 9++++++---
Mmodules/gui/gnome.nix | 177++++++++++++++++++++++++++++++++++++++++---------------------------------------
Mmodules/gui/theme.nix | 36++++++++++++++++++++++++++++--------
Mmodules/gui/xfce.nix | 8++++++--
Mmodules/hardware/virtualisation/default.nix | 28+++++++++++++++-------------
Mmodules/nix/default.nix | 12+++++++-----
Mmodules/user/security.nix | 39++++++++++++++++++++++-----------------
Dpackages/fly-pie.nix | 36------------------------------------
18 files changed, 265 insertions(+), 300 deletions(-)

diff --git a/.prettierignore b/.prettierignore @@ -1,8 +1,10 @@ result # Formatting Errors +flake.lock site/templates/macros/edit.html +site/templates/macros/head.html site/templates/macros/javascript.html -site/templates/macros/posts.html site/templates/macros/menu.html +site/templates/macros/posts.html site/templates/tags/list.html diff --git a/README.md b/README.md @@ -41,19 +41,20 @@ This [repository](https://github.com/maydayv7/dotfiles) contains the configurati - Automatic [Deployment](./modules/nix/deploy.nix) using the [`deploy-rs`](https://github.com/serokell/deploy-rs) Tool - Advanced Configuration [Checks](./modules/nix/checks.nix) using [`pre-commit-hooks.nix`](https://github.com/cachix/pre-commit-hooks.nix) - Support for `source` Filters with [`nix-filter`](https://github.com/numtide/nix-filter) and [`gitignore.nix`](https://github.com/hercules-ci/gitignore.nix) +- Support for Base16 Color Theming using [`stylix`](https://github.com/danth/stylix) - Wrapped `wine` [Applications](./packages/wine) using Emmanuel's [Wrapper](https://github.com/emmanuelrosa/erosanix/tree/0dabea58d483e13d2de141517cb4ff1cb230b2aa/pkgs/mkwindowsapp) - Support for Android Virtualisation using [Waydroid](https://waydro.id/) - Declaratively Configured [Windows VM](./devices/vm/Windows.nix) using the [WFVM](https://git.m-labs.hk/M-Labs/wfvm) Module ## Programs -| Type | Programs | -| :------------------- | :----------------------------------------------------------------------------------------------------------------------------: | -| Editors | [`nano`](https://www.nano-editor.org/), [VS Code](https://code.visualstudio.com/) | -| Shells | [`bash`](https://www.gnu.org/software/bash/), [`zsh`](https://www.zsh.org) | -| Terminal | [GNOME Terminal](https://gitlab.gnome.org/GNOME/gnome-terminal), [`xfce4` Terminal](https://docs.xfce.org/apps/terminal/start) | -| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | -| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/) | +| Type | Programs | +| :------------------- | :--------------------------------------------------------------------------------------------------------------: | +| Editors | [`nano`](https://www.nano-editor.org/), [VS Code](https://code.visualstudio.com/) | +| Shells | [`bash`](https://www.gnu.org/software/bash/), [`zsh`](https://www.zsh.org) | +| Terminal | [Console](https://gitlab.gnome.org/GNOME/console), [`xfce4` Terminal](https://docs.xfce.org/apps/terminal/start) | +| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/) | +| Desktop Environments | [GNOME](https://www.gnome.org), [XFCE](https://xfce.org/) | ## Structure @@ -138,6 +139,7 @@ github:maydayv7/dotfiles ┌── configuration.nix ├── flake.nix ├── flake.lock +├── .version ├── .templates ├── files ├── secrets @@ -169,6 +171,7 @@ github:maydayv7/dotfiles - `configuration.nix`: main system configuration file - `flake.nix`: repository version control using `inputs` +- `.version`: system state version - `.templates`: custom Flakes configuration templates - [`files`](./files/README.md): `dotfiles` and program configuration - [`secrets`](./secrets/README.md): authentication credentials management using [`sops-nix`](https://github.com/Mic92/sops-nix) @@ -611,18 +614,17 @@ You can navigate to the `README`'s present in the various directories to know mo <summary><b>Known Limitations</b></summary> - It is a hard requirement to clone the repository to `/etc/nixos` in order to use it as intended -- Need to completely transition to Wayland +- Secure Boot isn't supported yet +- Home Configuration can't be decoupled from System -#### Manually Packaged Apps +#### Manually Managed Packages -- **GNOME Extensions**: - - Fly Pie - VS Code Themes and Plugins - [Wine](./packages/wine) Applications </details> -> Last Updated: **September** 2023 +> Last Updated: **October** 2023 If you like this project, consider leaving a [star](https://github.com/maydayv7/dotfiles) diff --git a/files/README.md b/files/README.md @@ -4,6 +4,7 @@ The `files` directory is used to store all my plain-text program configuration f - [`archive`](./archive) - Old, Archived Files - [`ascii`](./ascii) - Personal Collection of beautiful Ascii Art +- [`colors`](./colors) - Base16 Color Schemes - [`firefox`](./firefox) - `firefox` Web Browser Theming - [`fonts`](./fonts) - Font Configuration - [`git`](./git) - Configuration for `git` Version Control diff --git a/files/colors/adwaita-dark.yaml b/files/colors/adwaita-dark.yaml @@ -0,0 +1,18 @@ +scheme: "Adwaita Dark" +author: "maydayv7" +base00: "1E1E1E" +base01: "57E389" +base02: "ED333B" +base03: "5E5C64" +base04: "51A1FF" +base05: "ffffff" +base06: "C061CB" +base07: "C0BFBC" +base08: "C01C28" +base09: "ED333B" +base0A: "F5C211" +base0B: "2EC27E" +base0C: "0AB9DC" +base0D: "1E78E4" +base0E: "9841BB" +base0F: "4FD2FD" diff --git a/files/colors/adwaita.yaml b/files/colors/adwaita.yaml @@ -0,0 +1,18 @@ +scheme: "Adwaita" +author: "maydayv7" +base00: "ffffff" +base01: "57E389" +base02: "ED333B" +base03: "5E5C64" +base04: "51A1FF" +base05: "000000" +base06: "C061CB" +base07: "C0BFBC" +base08: "C01C28" +base09: "ED333B" +base0A: "F5C211" +base0B: "2EC27E" +base0C: "0AB9DC" +base0D: "1E78E4" +base0E: "9841BB" +base0F: "4FD2FD" diff --git a/files/colors/arc-dark.yaml b/files/colors/arc-dark.yaml @@ -0,0 +1,18 @@ +scheme: "Arc Dark" +author: "maydayv7" +base00: "2F343F" +base01: "86DF5D" +base02: "D64937" +base03: "2f343F" +base04: "0F75BD" +base05: "F3F4F5" +base06: "9E5E83" +base07: "A2A2A2" +base08: "9C3528" +base09: "D64937" +base0A: "F3B43A" +base0B: "61BC3B" +base0C: "288E9C" +base0D: "0D68A8" +base0E: "744560" +base0F: "37C3D6" diff --git a/files/default.nix b/files/default.nix @@ -15,6 +15,9 @@ in rec { # ASCII Art ascii = map.files' ./ascii lib.id ""; + # Base16 Color Schemes + colors = map.files ./colors lib.id ".yaml"; + # Neofetch fetch = readFile ./neofetch/config.conf; diff --git a/files/gnome/dconf.nix b/files/gnome/dconf.nix @@ -6,8 +6,11 @@ ... }: with lib.hm.gvariant; let + inherit (builtins) head elem; homeDir = config.home.homeDirectory; android = sys.hardware.vm.android.enable; + fonts = sys.fonts.fontconfig.defaultFonts; + wine = elem "wine" sys.apps.list; in { # Home Directory home.file = { @@ -109,7 +112,7 @@ in { "org/gnome/desktop/wm/preferences" = { button-layout = "appmenu:minimize,maximize,close"; - titlebar-font = "Product Sans Bold 11"; + titlebar-font = "${head fonts.sansSerif} Bold 11"; visual-bell = false; num-workspaces = 4; workspace-names = ["Home" "School" "Work" "Play"]; @@ -129,17 +132,17 @@ in { }; "org/gnome/desktop/interface" = { - #color-scheme = "prefer-dark"; + color-scheme = "prefer-dark"; clock-show-weekday = true; - #document-font-name = "Product Sans 11"; + document-font-name = "${head fonts.sansSerif} 11"; enable-animations = true; enable-hot-corners = true; font-antialiasing = "grayscale"; font-hinting = "slight"; - #font-name = "Product Sans Medium, Medium 11"; + font-name = "${head fonts.sansSerif} Medium, Medium 11"; gtk-im-module = "gtk-im-context-simple"; locate-pointer = true; - #monospace-font-name = "MesloLGS NF 10"; + monospace-font-name = "${head fonts.monospace} 10"; show-battery-percentage = true; toolkit-accessibility = false; }; @@ -207,7 +210,6 @@ in { "org/gnome/desktop/calendar".show-weekdate = true; "ca/desrt/dconf-editor".show-warning = false; "io/github/seadve/Kooha".video-format = "mp4"; - "org/gnome/boxes".shared-folders = "[<{'uuid': <'5b825243-4232-4426-9d82-3df05e684e42'>, 'path': <'${homeDir}'>, 'name': <'Home'>}>]"; "org/gnome/shell/world-clocks".locations = "[<(uint32 2, <('Coordinated Universal Time (UTC)', '@UTC', false, @a(dd) [], @a(dd) [])>)>]"; "org/gnome/Geary" = { @@ -260,7 +262,7 @@ in { "com/github/hugolabe/Wike" = { custom-font = true; dark-mode = true; - font-family = "Product Sans"; + font-family = head fonts.sansSerif; }; "org/gnome/builder/editor" = { @@ -275,12 +277,6 @@ in { style-scheme-name = "builder-dark"; }; - "org/gnome/gnome-screenshot" = { - delay = 0; - include-pointer = true; - last-save-directory = "file://${homeDir}/Pictures/Screenshots"; - }; - # App Grid "org/gnome/shell" = { command-history = ["rt" "r"]; @@ -293,7 +289,6 @@ in { "caffeine@patapon.info" "CoverflowAltTab@palatis.blogspot.com" "drive-menu@gnome-shell-extensions.gcampax.github.com" - "flypie@schneegans.github.com" "gestureImprovements@gestures" "gnome-ui-tune@itstime.tech" "gTile@vibou" @@ -327,12 +322,12 @@ in { "org/gnome/desktop/app-folders" = { folder-children = [ - "1c3e59e4-a571-4ada-af1d-ed1ced384cfb" "4f9e09f6-cbd8-4a4a-beb3-9ec7b3e672ff" "a136187d-1d93-4d35-8423-082f15957be9" "b79e9b82-2127-459b-9e82-11bd3be09d04" ] - ++ lib.optionals android ["cb1c8797-b52e-4df5-80d6-2c46e8f7ef22"]; + ++ lib.optionals android ["cb1c8797-b52e-4df5-80d6-2c46e8f7ef22"] + ++ lib.optionals wine ["1c3e59e4-a571-4ada-af1d-ed1ced384cfb"]; }; "org/gnome/desktop/app-folders/folders/4f9e09f6-cbd8-4a4a-beb3-9ec7b3e672ff" = { @@ -408,7 +403,7 @@ in { }; # Shell Extensions - #"org/gnome/shell/extensions/user-theme".name = "Adwaita"; + "org/gnome/shell/extensions/user-theme".name = "Adwaita"; "org/gnome/shell/extensions/alphabetical-app-grid".folder-order-position = "start"; "org/gnome/shell/extensions/gestureImprovements".allow-minimize-window = true; "org/gnome/shell/extensions/gnome-ui-tune".hide-search = false; @@ -540,98 +535,5 @@ in { show-battery = true; show-storage = false; }; - - "org/gnome/shell/extensions/flypie" = { - active-stack-child = "settings-page"; - background-color = "rgba(0, 0, 0, 0.26)"; - center-auto-color-luminance = 0.8; - center-auto-color-luminance-hover = 0.8; - center-auto-color-opacity = 0.0; - center-auto-color-opacity-hover = 0.0; - center-auto-color-saturation = 0.75; - center-auto-color-saturation-hover = 0.75; - center-background-image = "/run/current-system/sw/share/gnome-shell/extensions/flypie@schneegans.github.com/presets/assets/adwaita-dark.svg"; - center-background-image-hover = "/run/current-system/sw/share/gnome-shell/extensions/flypie@schneegans.github.com/presets/assets/adwaita-dark.svg"; - center-color-mode = "fixed"; - center-color-mode-hover = "fixed"; - center-fixed-color = "rgba(255,255,255,0)"; - center-fixed-color-hover = "rgba(255,255,255,0)"; - center-icon-crop = 0.8; - center-icon-crop-hover = 0.8; - center-icon-opacity = 0.17; - center-icon-opacity-hover = 1.0; - center-icon-scale = 0.7; - center-icon-scale-hover = 0.7; - center-size = 110.0; - center-size-hover = 90.0; - child-auto-color-luminance = 0.7; - child-auto-color-luminance-hover = 0.8802816901408451; - child-auto-color-opacity = 1.0; - child-auto-color-opacity-hover = 1.0; - child-auto-color-saturation = 0.9; - child-auto-color-saturation-hover = 1.0; - child-background-image = "/run/current-system/sw/share/gnome-shell/extensions/flypie@schneegans.github.com/presets/assets/adwaita-dark.svg"; - child-background-image-hover = "/run/current-system/sw/share/gnome-shell/extensions/flypie@schneegans.github.com/presets/assets/adwaita-dark.svg"; - child-color-mode = "fixed"; - child-color-mode-hover = "fixed"; - child-draw-above = false; - child-fixed-color = "rgba(255,255,255,0)"; - child-fixed-color-hover = "rgba(255,255,255,0)"; - child-icon-crop = 0.8; - child-icon-crop-hover = 0.8; - child-icon-opacity = 1.0; - child-icon-opacity-hover = 1.0; - child-icon-scale = 0.7; - child-icon-scale-hover = 0.7; - child-offset = 106.0; - child-offset-hover = 113.0; - child-size = 59.0; - child-size-hover = 77.0; - easing-duration = 0.25; - easing-mode = "ease-out"; - font = "Product Sans Medium, Medium 11"; - grandchild-background-image = "/run/current-system/sw/share/gnome-shell/extensions/flypie@schneegans.github.com/presets/assets/adwaita-dark.svg"; - grandchild-background-image-hover = "/run/current-system/sw/share/gnome-shell/extensions/flypie@schneegans.github.com/presets/assets/adwaita-dark.svg"; - grandchild-color-mode = "fixed"; - grandchild-color-mode-hover = "fixed"; - grandchild-draw-above = false; - grandchild-fixed-color = "rgba(189,184,178,0)"; - grandchild-fixed-color-hover = "rgba(189,184,178,0)"; - grandchild-offset = 25.0; - grandchild-offset-hover = 31.0; - grandchild-size = 17.0; - grandchild-size-hover = 27.0; - preview-on-right-side = true; - stashed-items = "[ ]"; - stats-abortions = mkUint32 38; - stats-added-items = mkUint32 6; - stats-click-selections-depth1 = mkUint32 15; - stats-click-selections-depth2 = mkUint32 8; - stats-click-selections-depth3 = mkUint32 7; - stats-dbus-menus = mkUint32 24; - stats-gesture-selections-depth1 = mkUint32 5; - stats-gesture-selections-depth2 = mkUint32 3; - stats-gesture-selections-depth3 = mkUint32 1; - stats-preview-menus = mkUint32 19; - stats-selections = mkUint32 39; - stats-selections-1000ms-depth1 = mkUint32 6; - stats-selections-2000ms-depth2 = mkUint32 1; - stats-selections-3000ms-depth3 = mkUint32 1; - stats-selections-750ms-depth1 = mkUint32 5; - stats-settings-opened = mkUint32 13; - stats-sponsors-viewed = mkUint32 1; - stats-tutorial-menus = mkUint32 6; - stats-unread-achievements = mkUint32 0; - text-color = "rgb(222,222,222)"; - trace-color = "rgba(0,0,0,0.462838)"; - trace-min-length = 200.0; - trace-thickness = 8.0; - wedge-color = "rgba(0,0,0,0.129992)"; - wedge-color-hover = "rgba(0,0,0,0.0747331)"; - wedge-inner-radius = 43.0; - wedge-separator-color = "rgba(255, 255, 255, 0.13)"; - wedge-separator-width = 1.0; - wedge-width = 300.0; - }; }; } diff --git a/flake.lock b/flake.lock @@ -357,7 +357,7 @@ "flake-compat": "flake-compat_2", "flake-utils": ["utils", "flake-utils"], "gitignore": ["ignore"], - "nixpkgs": ["stable"], + "nixpkgs": ["unstable"], "nixpkgs-stable": ["stable"] }, "locked": { @@ -678,11 +678,11 @@ "nixpkgs": ["unstable"] }, "locked": { - "lastModified": 1697094532, - "narHash": "sha256-SvTC0wNCGpoUBvo9//IoTv5NQjozY0Y5ViTziRO+vt8=", + "lastModified": 1697720625, + "narHash": "sha256-4/k6fyBWWJktsyPVnaa+olOR0PRpn3GDa9YiNyFzTso=", "owner": "danth", "repo": "stylix", - "rev": "feceaa9d81725c0ca28ab46326b6dd1310a10dea", + "rev": "b2f73724d11868d020207fb87fb2d9c3ae96976d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix @@ -131,7 +131,7 @@ # Pre-Commit Hooks hooks = { url = "github:cachix/pre-commit-hooks.nix"; - inputs.nixpkgs.follows = "stable"; + inputs.nixpkgs.follows = "unstable"; inputs.nixpkgs-stable.follows = "stable"; inputs.flake-utils.follows = "utils/flake-utils"; inputs.gitignore.follows = "ignore"; diff --git a/modules/gui/default.nix b/modules/gui/default.nix @@ -17,7 +17,10 @@ in { default = null; }; - config.assertions = - optional (config.gui.desktop == null) - (options.gui.desktop.description + " must be set"); + config.assertions = [ + { + assertion = config.gui.desktop != null; + message = options.gui.desktop.description + " must be set"; + } + ]; } diff --git a/modules/gui/gnome.nix b/modules/gui/gnome.nix @@ -62,12 +62,10 @@ in { # GTK+ Theming gtk = { enable = true; - /* - *theme = { + theme = { name = "adw-gtk3-dark"; package = pkgs.adw-gtk3; }; - */ iconTheme = { name = "Papirus-Dark"; @@ -76,7 +74,7 @@ in { }; # Default Applications - xdg.mimeApps.defaultApplications = util.build.mime files.xdg.mime { + xdg.mimeApps.defaultApplications = util.build.mime xdg.mime { audio = ["org.gnome.Lollypop.desktop"]; calendar = ["org.gnome.Calendar.desktop"]; directory = ["org.gnome.Nautilus.desktop"]; @@ -133,95 +131,98 @@ in { # Color Scheme stylix = { - image = files.proprietary.wallpapers.Sunset; - targets.gnome.enable = true; + base16Scheme = colors.adwaita-dark; + targets.gnome.enable = false; }; - # QT Theme - environment.variables."QT_STYLE_OVERRIDE" = mkForce "kvantum"; - environment.etc."xdg/Kvantum/kvantum.kvconfig".text = '' - [General] - theme=KvLibadwaitaDark - ''; + environment = { + # QT Theme + variables."QT_STYLE_OVERRIDE" = mkForce "kvantum"; + etc."xdg/Kvantum/kvantum.kvconfig".text = '' + [General] + theme=KvLibadwaitaDark + ''; - environment.systemPackages = with pkgs; - [libsForQt5.qtstyleplugin-kvantum custom.kvlibadwaita] - ++ (with pkgs.gnome; [ - # GNOME Apps - gnome-boxes - gnome-dictionary - gnome-notes - gnome-sound-recorder - gnome-text-editor - gnome-tweaks - polari + # Package List + systemPackages = with pkgs; + [libsForQt5.qtstyleplugin-kvantum custom.kvlibadwaita] + ++ (with pkgs.gnome; [ + # GNOME Apps + gnome-boxes + gnome-dictionary + gnome-notes + gnome-sound-recorder + gnome-text-editor + gnome-tweaks + polari - # GNOME Games - gnome-chess - gnome-mines - quadrapassel - ]) - ++ (with pkgs; [ - # GNOME Circle - apostrophe - curtail - deja-dup - dialect - drawing - fractal - fragments - giara - gimp - gradience - gnome-podcasts - gnome-secrets - gthumb - lollypop - pitivi - video-trimmer - wike + # GNOME Games + gnome-chess + gnome-mines + quadrapassel + ]) + ++ (with pkgs; [ + # GNOME Circle + apostrophe + curtail + deja-dup + dialect + drawing + fractal + fragments + giara + gimp + gradience + gnome-podcasts + gnome-secrets + gthumb + lollypop + pitivi + video-trimmer + wike - # Utilities - celluloid - dconf2nix - gnuchess - (firefox.override (args: - args - // { - cfg = - args.cfg - or {} - // { - enableGnomeExtensions = true; - }; - })) - ]) - ++ (with pkgs.gnomeExtensions; [ - # GNOME Shell Extensions - alphabetical-app-grid - appindicator - caffeine - coverflow-alt-tab - custom.fly-pie - gesture-improvements - gnome-40-ui-improvements - guillotine - gtile - just-perfection - lock-keys - lock-screen-message - pano - quick-settings-tweaker - rounded-window-corners - space-bar - status-area-horizontal-spacing - timepp - transparent-top-bar-adjustable-transparency - top-bar-organizer - user-avatar-in-quick-settings - vitals - weather-oclock - ]); + # Utilities + celluloid + dconf2nix + gnuchess + + (firefox.override (args: + args + // { + cfg = + args.cfg + or {} + // { + enableGnomeExtensions = true; + }; + })) + ]) + ++ (with pkgs.gnomeExtensions; [ + # GNOME Shell Extensions + alphabetical-app-grid + appindicator + caffeine + coverflow-alt-tab + gesture-improvements + gnome-40-ui-improvements + guillotine + gtile + just-perfection + lock-keys + lock-screen-message + pano + quick-settings-tweaker + rounded-window-corners + space-bar + status-area-horizontal-spacing + timepp + transparent-top-bar-adjustable-transparency + top-bar-organizer + user-avatar-in-quick-settings + vitals + weather-oclock + ]); + }; # Persisted Files user.persist = { diff --git a/modules/gui/theme.nix b/modules/gui/theme.nix @@ -2,17 +2,37 @@ config, lib, inputs, - pkgs, files, ... -}: { +}: +with files.proprietary.wallpapers; { imports = [inputs.stylix.nixosModules.stylix]; - stylix = { - homeManagerIntegration.autoImport = true; - polarity = "dark"; - targets = { - console.enable = true; - kmscon.enable = true; + + ## Base16 Color Theming ## + config = { + stylix = + {autoEnable = false;} + // ( + if (lib.hasSuffix "-minimal" config.gui.desktop) + then { + homeManagerIntegration.autoImport = false; + image = Beauty; + } + else { + homeManagerIntegration.autoImport = true; + polarity = "dark"; + image = lib.mkDefault Sunrise; + targets = { + console.enable = true; + kmscon.enable = true; + plymouth.enable = false; + }; + } + ); + + user.home.stylix.targets = { + bat.enable = true; + vscode.enable = false; }; }; } diff --git a/modules/gui/xfce.nix b/modules/gui/xfce.nix @@ -102,11 +102,15 @@ in { }; # Color Scheme - stylix.image = files.proprietary.wallpapers.Sunset; + stylix = { + image = proprietary.wallpapers.Sunset; + base16Scheme = colors.arc-dark; + }; # User Configuration user.home = { # GTK+ Theming + stylix.targets.xfce.enable = true; gtk = { enable = true; @@ -145,7 +149,7 @@ in { // mapAttrs' (name: value: nameValuePair ".config/xfce4/xfconf/xfce-perchannel-xml/${name}.xml" {text = value;}) - files.xfce.settings; + xfce.settings; # Code Editor Settings programs.vscode = mkIf (elem pkgs.vscode apps) { diff --git a/modules/hardware/virtualisation/default.nix b/modules/hardware/virtualisation/default.nix @@ -37,19 +37,21 @@ in { environment.systemPackages = with pkgs; [libguestfs virt-manager]; # VM Utilities - virtualisation.kvmgt.enable = true; - virtualisation.spiceUSBRedirection.enable = true; - virtualisation.libvirtd = { - enable = true; - onBoot = "ignore"; - onShutdown = "shutdown"; - qemu = { - package = pkgs.qemu_kvm; - runAsRoot = false; - swtpm.enable = true; - ovmf = { - enable = true; - packages = [pkgs.OVMFFull]; + virtualisation = { + kvmgt.enable = true; + spiceUSBRedirection.enable = true; + libvirtd = { + enable = true; + onBoot = "ignore"; + onShutdown = "shutdown"; + qemu = { + package = pkgs.qemu_kvm; + runAsRoot = false; + swtpm.enable = true; + ovmf = { + enable = true; + packages = [pkgs.OVMFFull]; + }; }; }; }; diff --git a/modules/nix/default.nix b/modules/nix/default.nix @@ -32,12 +32,14 @@ with {inherit (lib.util.map) array;}; { generateRegistryFromInputs = true; # User Permissions - settings.allowed-users = ["root" "@wheel"]; - settings.trusted-users = ["root" "@wheel"]; + settings = { + allowed-users = ["root" "@wheel"]; + trusted-users = ["root" "@wheel"]; - # Additional Features - settings.sandbox = true; - settings.system-features = ["kvm" "recursive-nix"]; + # Additional Features + sandbox = true; + system-features = ["kvm" "recursive-nix"]; + }; extraOptions = '' accept-flake-config = true warn-dirty = false diff --git a/modules/user/security.nix b/modules/user/security.nix @@ -20,24 +20,29 @@ in { then (mkForce {}) else util.map.secrets ./passwords true; - users.extraUsers.root.hashedPasswordFile = - mkIf (hasAttr "root.secret" secrets) secrets."root.secret".path; - users.users = - mapAttrs (name: value: { - hashedPasswordFile = mkIf (!value.minimal) secrets."${name}.secret".path; - }) - settings; + users = { + users = + mapAttrs (name: value: { + hashedPasswordFile = mkIf (!value.minimal) secrets."${name}.secret".path; + }) + settings; - # Recovery Account - users.extraUsers.recovery = mkIf recovery { - name = "recovery"; - description = "Recovery Account"; - isNormalUser = true; - uid = 1100; - group = "users"; - extraGroups = ["wheel"]; - useDefaultShell = true; - initialHashedPassword = readFile ./passwords/default; + extraUsers = { + root.hashedPasswordFile = + mkIf (hasAttr "root.secret" secrets) secrets."root.secret".path; + + # Recovery Account + recovery = mkIf recovery { + name = "recovery"; + description = "Recovery Account"; + isNormalUser = true; + uid = 1100; + group = "users"; + extraGroups = ["wheel"]; + useDefaultShell = true; + initialHashedPassword = readFile ./passwords/default; + }; + }; }; # Authentication diff --git a/packages/fly-pie.nix b/packages/fly-pie.nix @@ -1,36 +0,0 @@ -{ - lib, - pkgs, - ... -}: -with pkgs; - stdenv.mkDerivation rec { - pname = "gnome-shell-extension-fly-pie"; - version = "v22"; - - src = fetchzip { - stripRoot = false; - url = "https://extensions.gnome.org/extension-data/flypieschneegans.github.com.${version}.shell-extension.zip"; - sha256 = "sha256-r1tsr0vmZrIVTnH2HE487M1l3OAllmflEkPDLIzpD/g="; - }; - - dontBuild = true; - installPhase = '' - mkdir -p $out/share/gnome-shell/extensions/flypie@schneegans.github.com/ - cp -r . $out/share/gnome-shell/extensions/flypie@schneegans.github.com/ - ''; - - passthru = { - extensionUuid = "flypie@schneegans.github.com"; - extensionPortalSlug = "fly-pie"; - }; - - meta = with lib; { - description = "Gnome Shell marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more!"; - longDescription = "Manually Packaged because of https://github.com/NixOS/nixpkgs/issues/118612"; - homepage = "https://extensions.gnome.org/extension/3433/fly-pie/"; - license = licenses.gpl3; - platforms = platforms.linux; - maintainers = ["maydayv7"]; - }; - }