diff --git a/homes/x86_64-linux/jo@puzzlevision/apps/fish.nix b/homes/x86_64-linux/jo@puzzlevision/apps/fish.nix new file mode 100644 index 0000000..398691e --- /dev/null +++ b/homes/x86_64-linux/jo@puzzlevision/apps/fish.nix @@ -0,0 +1,17 @@ +{ + lib, + pkgs, + inputs, + + namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal". + home, # The home architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this home (eg. `x86_64-home`). + format, # A normalized name for the home target (eg. `home`). + virtual, # A boolean to determine whether this home is a virtual target using nixos-generators. + host, # The host name for this home. + + config, + ... +}: { + home.file.".config/fish/themes/Catppuccin\ Frappe.theme".source = lib.snowfall.fs.get-file "resources/apps/fish/Catppuccin\ Frappe.theme"; +} \ No newline at end of file diff --git a/homes/x86_64-linux/jo@puzzlevision/apps/gnome.nix b/homes/x86_64-linux/jo@puzzlevision/apps/gnome.nix new file mode 100644 index 0000000..42d78b6 --- /dev/null +++ b/homes/x86_64-linux/jo@puzzlevision/apps/gnome.nix @@ -0,0 +1,68 @@ +{ + lib, + pkgs, + inputs, + + namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal". + home, # The home architecture for this host (eg. `x86_64-linux`). + target, # The Snowfall Lib target for this home (eg. `x86_64-home`). + format, # A normalized name for the home target (eg. `home`). + virtual, # A boolean to determine whether this home is a virtual target using nixos-generators. + host, # The host name for this home. + + config, + ... +}: { + home.packages = with pkgs.gnomeExtensions; [ + dash-to-dock + user-themes + blur-my-shell + appindicator + unite + color-picker + ]; + + # Use `dconf watch /` to track stateful changes you are doing, then set them here. + dconf.settings = { + "org/gnome/shell" = { + favorite-apps = [ + "org.gnome.Nautilus.desktop" + "firefox.desktop" + "spotify.desktop" + "phpstorm.desktop" + ]; + + enabled-extensions = [ + "user-theme@gnome-shell-extensions.gcampax.github.com" + "dash-to-dock@micxgx.gmail.com" + "blur-my-shell@aunetx" + "appindicatorsupport@rgcjonas.gmail.com" + "unite@hardpixel.eu" + "color-picker@tuberry" + ]; + }; + + "org/gnome/desktop/wm/preferences" = { + workspace-names = [ "Main" ]; + }; + + "org/gnome/shell/extensions/unite" = { + use-activities-text = false; + extend-left-box = false; + reduce-panel-spacing = false; + window-buttons-placement = "first"; + show-legacy-tray = false; + show-appmenu-button = false; + show-desktop-name = false; + enable-titlebar-actions = false; + restrict-to-primary-screen = true; + hide-activities-button = "never"; + hide-window-titlebars = "maximized"; + show-window-title = false; + autofocus-windows = true; + show-window-buttons = "maximized"; + notifications-position = "right"; + window-buttons-theme = "catppuccin"; + }; + }; +} \ No newline at end of file diff --git a/homes/x86_64-linux/jo@puzzlevision/default.nix b/homes/x86_64-linux/jo@puzzlevision/default.nix index 08e0026..3ad30a0 100644 --- a/homes/x86_64-linux/jo@puzzlevision/default.nix +++ b/homes/x86_64-linux/jo@puzzlevision/default.nix @@ -19,12 +19,6 @@ config, ... }: { - imports = [ - inputs.homeModules.themes.catppuccin - inputs.homeModules.themes.catppuccin.gnome - inputs.homeModules.development.ssh - ]; - # Flatpak configuration. services.flatpak = { enable = true; @@ -67,4 +61,6 @@ ### Backups & Synchronization celeste ]; + + home.stateVersion = "24.05"; } \ No newline at end of file diff --git a/modules/home/development/ssh/default.nix b/modules/home/development/ssh/default.nix index 303aa1f..a3e60d1 100644 --- a/modules/home/development/ssh/default.nix +++ b/modules/home/development/ssh/default.nix @@ -4,7 +4,7 @@ inputs, namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal". - home, # The home architecture for this host (eg. `x86_64-linux`). + system, # The home architecture for this host (eg. `x86_64-linux`). target, # The Snowfall Lib target for this home (eg. `x86_64-home`). format, # A normalized name for the home target (eg. `home`). virtual, # A boolean to determine whether this home is a virtual target using nixos-generators. @@ -24,25 +24,25 @@ in { extraConfig = '' AddKeysToAgent yes ''; - }; - matchBlocks = { - "github.com" = { - identityFile = "${sshDir}/id_ed25519"; - identitiesOnly = true; - user = "git"; - }; + matchBlocks = { + "github.com" = { + identityFile = "${sshDir}/id_ed25519"; + identitiesOnly = true; + user = "git"; + }; - "gitlab.com" = { - identityFile = "${sshDir}/id_ed25519"; - identitiesOnly = true; - user = "git"; - }; + "gitlab.com" = { + identityFile = "${sshDir}/id_ed25519"; + identitiesOnly = true; + user = "git"; + }; - "bitbucket.org" = { - identityFile = "${sshDir}/id_ed25519"; - identitiesOnly = true; - user = "git"; - }; + "bitbucket.org" = { + identityFile = "${sshDir}/id_ed25519"; + identitiesOnly = true; + user = "git"; + }; + }; }; } \ No newline at end of file diff --git a/modules/home/themes/catppuccin/default.nix b/modules/home/themes/catppuccin/global/default.nix similarity index 89% rename from modules/home/themes/catppuccin/default.nix rename to modules/home/themes/catppuccin/global/default.nix index 73990ad..8433cba 100644 --- a/modules/home/themes/catppuccin/default.nix +++ b/modules/home/themes/catppuccin/global/default.nix @@ -4,7 +4,7 @@ inputs, namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal". - home, # The home architecture for this host (eg. `x86_64-linux`). + system, target, # The Snowfall Lib target for this home (eg. `x86_64-home`). format, # A normalized name for the home target (eg. `home`). virtual, # A boolean to determine whether this home is a virtual target using nixos-generators. diff --git a/modules/home/themes/catppuccin/gnome/default.nix b/modules/home/themes/catppuccin/gnome/default.nix index b1c2d71..f56db71 100644 --- a/modules/home/themes/catppuccin/gnome/default.nix +++ b/modules/home/themes/catppuccin/gnome/default.nix @@ -4,7 +4,7 @@ inputs, namespace, # The flake namespace, set in flake.nix. If not set, defaults to "internal". - home, # The home architecture for this host (eg. `x86_64-linux`). + system, target, # The Snowfall Lib target for this home (eg. `x86_64-home`). format, # A normalized name for the home target (eg. `home`). virtual, # A boolean to determine whether this home is a virtual target using nixos-generators. @@ -50,5 +50,10 @@ "org/gnome/shell/extensions/user-theme" = { name = "Colloid-Dark-Catppuccin"; }; + + "/org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + cursor-theme = "catppuccin-frappe-blue-cursors"; + }; }; } \ No newline at end of file diff --git a/modules/nixos/common/gnome/default.nix b/modules/nixos/common/gnome/default.nix index b5047d5..f9a2fb4 100644 --- a/modules/nixos/common/gnome/default.nix +++ b/modules/nixos/common/gnome/default.nix @@ -13,6 +13,8 @@ config, ... }: { + services.xserver.enable = true; + # Enable GNOME and GDM. services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; @@ -22,13 +24,13 @@ gedit cheese geary + yelp # Help view + epiphany # Gnome web ]) ++ (with pkgs.gnome; [ gnome-music - epiphany # Gnome web tali # Poker game iagno # Go game hitori # Sudoku game - yelp # Help view gnome-contacts gnome-initial-setup ]); @@ -43,6 +45,6 @@ }; environment.systemPackages = with pkgs; [ - gnome.gnome-tweaks + gnome-tweaks ]; -} \ No newline at end of file +} diff --git a/resources/apps/fish/Catppuccin Frappe.theme b/resources/apps/fish/Catppuccin Frappe.theme new file mode 100644 index 0000000..b4c1994 --- /dev/null +++ b/resources/apps/fish/Catppuccin Frappe.theme @@ -0,0 +1,30 @@ +# name: 'Catppuccin Frappé' +# url: 'https://github.com/catppuccin/fish' +# preferred_background: 303446 + +fish_color_normal c6d0f5 +fish_color_command 8caaee +fish_color_param eebebe +fish_color_keyword e78284 +fish_color_quote a6d189 +fish_color_redirection f4b8e4 +fish_color_end ef9f76 +fish_color_comment 838ba7 +fish_color_error e78284 +fish_color_gray 737994 +fish_color_selection --background=414559 +fish_color_search_match --background=414559 +fish_color_option a6d189 +fish_color_operator f4b8e4 +fish_color_escape ea999c +fish_color_autosuggestion 737994 +fish_color_cancel e78284 +fish_color_cwd e5c890 +fish_color_user 81c8be +fish_color_host 8caaee +fish_color_host_remote a6d189 +fish_color_status e78284 +fish_pager_color_progress 737994 +fish_pager_color_prefix f4b8e4 +fish_pager_color_completion c6d0f5 +fish_pager_color_description 737994 \ No newline at end of file diff --git a/systems/x86_64-linux/puzzlevision/default.nix b/systems/x86_64-linux/puzzlevision/default.nix index 55e73ba..bb99727 100644 --- a/systems/x86_64-linux/puzzlevision/default.nix +++ b/systems/x86_64-linux/puzzlevision/default.nix @@ -24,22 +24,30 @@ inputs.hardware.nixosModules.common-pc-laptop inputs.hardware.nixosModules.common-cpu-intel inputs.hardware.nixosModules.common-pc-laptop-ssd - # FIXME(@jo): Remember to take a look at how module imports work in Snowfall Lib. ]; + nixpkgs = { + overlays = [ + (final: prev: { + linuxPackages_latest = prev.linuxPackages_latest.extend (lpfinal: lpprev: { + rtl8821ce = lpprev.rtl8821ce.overrideAttrs ({src, ...}: { + version = "${lpprev.kernel.version}-unstable-2024-03-26"; + src = final.fetchFromGitHub { + inherit (src) owner repo; + rev = "f119398d868b1a3395f40c1df2e08b57b2c882cd"; + hash = "sha256-EfpKa5ZRBVM5T8EVim3cVX1PP1UM9CyG6tN5Br8zYww="; + }; + }); + }); + }) + ]; + }; + nix = { - # Add flake inputs as registries. - # Keeps nix3 commands consistent with flake. - registry = lib.mapAttrs (_: value: {flake = value;}); - - # Add inputs to system's legacy channels. - # Makes legacy nix commands consistent with flake as well. - nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; - settings = { auto-optimise-store = true; builders-use-substitutes = true; - experimental-features = [ "nix-command" "flakes" "repl-flake" ]; + experimental-features = [ "nix-command" "flakes" ]; keep-derivations = true; keep-outputs = true; max-jobs = "auto"; @@ -48,7 +56,7 @@ # Garbage collection configuration. gc = { - automatic = true; + automatic = false; dates = "daily"; options = "--delete-older-than 3d"; }; @@ -150,13 +158,18 @@ hardware.sensor.iio.enable = true; # Configure system-wide default shell. - environment.shells = with pkgs; [ zsh ]; - users.defaultUserShell = pkgs.zsh; - programs.zsh.enable = true; + environment.shells = with pkgs; [ fish ]; + users.defaultUserShell = pkgs.fish; + programs.fish.enable = true; # Configure users. snowfallorg.users.jo.admin = true; + # Configure home-manager + home-manager = { + backupFileExtension = "homeManagerBackup"; + }; + # Provide users with some sane default packages. environment.systemPackages = with pkgs; [ ### General @@ -173,5 +186,5 @@ noto-fonts-color-emoji ]; - system.stateVersion = "24.05"; -} \ No newline at end of file + system.stateVersion = "23.05"; +} diff --git a/systems/x86_64-linux/puzzlevision/hardware-configuration.nix b/systems/x86_64-linux/puzzlevision/hardware-configuration.nix index 322cf24..23031e0 100644 --- a/systems/x86_64-linux/puzzlevision/hardware-configuration.nix +++ b/systems/x86_64-linux/puzzlevision/hardware-configuration.nix @@ -21,28 +21,12 @@ boot.initrd.luks.devices."luks-5fd4fc76-d5c5-46c3-b952-1a7a7ff3a1fc".device = "/dev/disk/by-uuid/5fd4fc76-d5c5-46c3-b952-1a7a7ff3a1fc"; - fileSystems."/var/lib/docker/btrfs" = - { device = "/@/@/var/lib/docker/btrfs"; - fsType = "none"; - options = [ "bind" ]; - }; - fileSystems."/boot" = { device = "/dev/disk/by-uuid/2429-4141"; fsType = "vfat"; options = [ "fmask=0022" "dmask=0022" ]; }; - fileSystems."/var/lib/docker/overlay2/eec00b6d746d533d213790aa0c8e5cca329148c50c0ab1b035020d27e218ed16/merged" = - { device = "overlay"; - fsType = "overlay"; - }; - - fileSystems."/var/lib/docker/overlay2/bc060caf80f8891cd68f21563b8ece131b24b28772c2971a703bac1f5b54e8d1/merged" = - { device = "overlay"; - fsType = "overlay"; - }; - swapDevices = [ ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking