From ed1e654706b1648aed51fb96ab70506fba3d4ac0 Mon Sep 17 00:00:00 2001 From: Pim Kunis Date: Sun, 9 Jun 2024 20:31:39 +0200 Subject: [PATCH] Install Stylix Install Pop!_OS shell Enable Jack emulation in Pipewire Set a wallpaper Replace Terminator with Alacritty Copy GNOME config to dconf --- configuration.nix | 32 +++- flake.lock | 278 +++++++++++++++++++++++++++++++++-- flake.nix | 9 ++ home-manager/bat/default.nix | 1 - home-manager/default.nix | 85 +++++------ 5 files changed, 346 insertions(+), 59 deletions(-) diff --git a/configuration.nix b/configuration.nix index 0f5fda1..2478933 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,4 +1,4 @@ -{ pkgs, config, lib, ... }: { +{ pkgs, config, lib, inputs, ... }: { time.timeZone = "Europe/Amsterdam"; i18n.defaultLocale = "en_US.UTF-8"; @@ -22,6 +22,7 @@ alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; + jack.enable = true; }; }; @@ -43,6 +44,8 @@ dogdns tree dig + gnomeExtensions.pop-shell + gnome.gnome-shell-extensions ]; gnome.excludePackages = with pkgs; with pkgs.gnome; [ totem @@ -171,4 +174,31 @@ cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; pulseaudio.enable = false; }; + + stylix = { + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; + image = "${inputs.nixos-artwork}/wallpapers/nix-wallpaper-binary-blue.png"; + + cursor = { + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Ice"; + }; + + fonts = { + monospace = { + package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }; + name = "JetBrainsMono Nerd Font Mono"; + }; + + sansSerif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Sans"; + }; + + serif = { + package = pkgs.dejavu_fonts; + name = "DejaVu Serif"; + }; + }; + }; } diff --git a/flake.lock b/flake.lock index ede4485..ef22032 100644 --- a/flake.lock +++ b/flake.lock @@ -25,6 +25,120 @@ "type": "github" } }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1708890466, + "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "665b3c6748534eb766c777298721cece9453fdae", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "base16-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-foot", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1696727917, + "narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-kitty": { + "flake": false, + "locked": { + "lastModified": 1665001328, + "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", + "owner": "kdrag0n", + "repo": "base16-kitty", + "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", + "type": "github" + }, + "original": { + "owner": "kdrag0n", + "repo": "base16-kitty", + "type": "github" + } + }, + "base16-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "base16-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-tmux", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1663659192, + "narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=", + "owner": "chriskempson", + "repo": "base16-vim", + "rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d", + "type": "github" + }, + "original": { + "owner": "chriskempson", + "repo": "base16-vim", + "type": "github" + } + }, "crane": { "inputs": { "flake-compat": [ @@ -87,11 +201,11 @@ ] }, "locked": { - "lastModified": 1717490821, - "narHash": "sha256-CivVhYExnMJ2afm+o1ogB231pKW/azhUghMI53MHmOM=", + "lastModified": 1717915259, + "narHash": "sha256-VsGPboaleIlPELHY5cNTrXK4jHVmgUra8uC6h7KVC5c=", "owner": "nix-community", "repo": "disko", - "rev": "a838e83e21502a211b83373109a260e5ef5fbcf1", + "rev": "1bbdb06f14e2621290b250e631cf3d8948e4d19b", "type": "github" }, "original": { @@ -116,6 +230,22 @@ "type": "github" } }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -155,6 +285,22 @@ "type": "github" } }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1689549921, + "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ @@ -177,6 +323,23 @@ "type": "github" } }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1713702291, + "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "46.1", + "repo": "gnome-shell", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -198,6 +361,27 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714981474, + "narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "homeage": { "inputs": { "nixpkgs": [ @@ -245,13 +429,29 @@ "type": "github" } }, + "nixos-artwork": { + "flake": false, + "locked": { + "lastModified": 1716788451, + "narHash": "sha256-Zam3vXUBcF09GhaL0eehlTvmhx++qXBO7UhuBySPX84=", + "ref": "refs/heads/master", + "rev": "53ea652ec7d8af5d21fd2b79b6c49cb39078ddfb", + "revCount": 206, + "type": "git", + "url": "https://github.com/NixOS/nixos-artwork.git" + }, + "original": { + "type": "git", + "url": "https://github.com/NixOS/nixos-artwork.git" + } + }, "nixos-hardware": { "locked": { - "lastModified": 1717515267, - "narHash": "sha256-3d/rDckP583688YqVPc6SyXTy2gHpma0HzCv3idi1OE=", + "lastModified": 1717828156, + "narHash": "sha256-YvstO0lobf3JWQuAfZCLYRTROC2ZDEgtWeQtWbO49p4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "82b2e20fbffe6a5f0555701af136ad3e734a5faa", + "rev": "057a7996d012f342a38a26261ee529cebb1755ef", "type": "github" }, "original": { @@ -263,11 +463,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1717281328, - "narHash": "sha256-evZPzpf59oNcDUXxh2GHcxHkTEG4fjae2ytWP85jXRo=", + "lastModified": 1717696253, + "narHash": "sha256-1+ua0ggXlYYPLTmMl3YeYYsBXDSCqT+Gw3u6l4gvMhA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b3b2b28c1daa04fe2ae47c21bb76fd226eac4ca1", + "rev": "9b5328b7f761a7bbdc0e332ac4cf076a3eedb89b", "type": "github" }, "original": { @@ -295,11 +495,27 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1717399147, - "narHash": "sha256-eCWaE/q1VItpFAxxLVt171MdtDcjEnwi6QB/yuF73JU=", + "lastModified": 1717868076, + "narHash": "sha256-c83Y9t815Wa34khrux81j8K8ET94ESmCuwORSKm2bQY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4a4ecb0ab415c9fccfb005567a215e6a9564cdf5", + "rev": "cd18e2ae9ab8e2a0a8d715b60c91b54c0ac35ff9", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1714912032, + "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d", "type": "github" }, "original": { @@ -311,11 +527,11 @@ }, "nur": { "locked": { - "lastModified": 1717521378, - "narHash": "sha256-3UMMPUmY+sqGXuz+cZg5Ul7x8awrgrXmVg9L/Tv91QM=", + "lastModified": 1717948052, + "narHash": "sha256-2gCnJZoXuNOBRaYKHOemGhktvPxywIQGX4cfb5EB0Bo=", "owner": "nix-community", "repo": "NUR", - "rev": "9a42df165c2851b40e9288564e09b0aa54dda5f5", + "rev": "83e160a6adc2c8bb270b68dd23409d6539e19cb2", "type": "github" }, "original": { @@ -362,10 +578,12 @@ "home-manager": "home-manager", "homeage": "homeage", "lanzaboote": "lanzaboote", + "nixos-artwork": "nixos-artwork", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", - "nur": "nur" + "nur": "nur", + "stylix": "stylix" } }, "rust-overlay": { @@ -393,6 +611,34 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-foot": "base16-foot", + "base16-helix": "base16-helix", + "base16-kitty": "base16-kitty", + "base16-tmux": "base16-tmux", + "base16-vim": "base16-vim", + "flake-compat": "flake-compat_2", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1717866166, + "narHash": "sha256-iOeRZXIhFpQJdxzNJ3nUAANyDfLqCslRhjGhLD2RstM=", + "owner": "danth", + "repo": "stylix", + "rev": "ca3247ed8cfbf369f3fe1b7a421579812a95c101", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index 1519c12..d503413 100644 --- a/flake.nix +++ b/flake.nix @@ -6,6 +6,7 @@ nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; nur.url = "github:nix-community/NUR"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + stylix.url = "github:danth/stylix"; home-manager = { url = "github:nix-community/home-manager?ref=release-24.05"; @@ -32,6 +33,12 @@ url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; + + nixos-artwork = { + type = "git"; + url = "https://github.com/NixOS/nixos-artwork.git"; + flake = false; + }; }; outputs = @@ -42,6 +49,7 @@ , agenix , nur , nixos-hardware + , stylix , ... }@inputs: let @@ -62,6 +70,7 @@ ]; } ./configuration.nix + stylix.nixosModules.stylix ./modules/nixos/lanzaboote.nix agenix.nixosModules.default home-manager.nixosModules.home-manager diff --git a/home-manager/bat/default.nix b/home-manager/bat/default.nix index 83c4e05..42521fb 100644 --- a/home-manager/bat/default.nix +++ b/home-manager/bat/default.nix @@ -2,7 +2,6 @@ config = { programs.bat = { enable = true; - config.theme = "gruvbox-dark"; }; }; } diff --git a/home-manager/default.nix b/home-manager/default.nix index aecde83..3298323 100644 --- a/home-manager/default.nix +++ b/home-manager/default.nix @@ -28,7 +28,6 @@ unstable.strawberry unstable.gimp unstable.libreoffice - (pkgs.nerdfonts.override { fonts = [ "Hack" ]; }) virt-manager gnome.gnome-tweaks unstable.impression @@ -64,40 +63,7 @@ programs = { home-manager.enable = true; chromium.enable = true; - - terminator = { - enable = true; - config = { - profiles.default = { - # Gruvbox theme: https://github.com/egel/terminator-gruvbox - background_color = "#282828"; - cursor_color = "#7c6f64"; - foreground_color = "#ebdbb2"; - palette = - "#181818:#cc241d:#98971a:#d79921:#458588:#b16286:#689d6a:#a89984:#928374:#fb4934:#b8bb26:#fabd2f:#83a598:#d3869b:#8ec07c:#ebdbb2"; - }; - - keybindings = { - zoom_in = "plus"; - zoom_out = "minus"; - new_tab = "T"; - cycle_next = "Tab"; - cycle_prev = "Tab"; - split_horiz = "C"; - split_vert = "V"; - - go_left = "H"; - go_right = "L"; - go_up = "K"; - go_down = "J"; - - copy = "C"; - paste = "V"; - - layout_launcher = ""; # Default L - }; - }; - }; + alacritty.enable = true; # Currently, it is not possible to have Home Manager manage Liberwolf extensions. # There is a draft PR which addresses this: @@ -163,21 +129,58 @@ fonts.fontconfig.enable = true; dconf.settings = with lib.hm.gvariant; { + "org/gnome/desktop/sound".allow-volume-above-100-percent = true; + "org.gnome.desktop.wm.preferences".auto-raise = true; + + "org/gnome/shell".enabled-extensions = [ + "workspace-indicator@gnome-shell-extensions.gcampax.github.com" + "pop-shell@system76.com" + ]; + "org/gnome/desktop/input-sources" = { sources = [ (mkTuple [ "xkb" "us" ]) ]; xkb-options = [ "terminate:ctrl_alt_bksp" "caps:escape" ]; }; - "org/gnome/desktop/interface" = { - monospace-font-name = "Hack Nerd Font Mono 10"; + "org/gnome/shell/extensions/pop-shell" = { + active-hint = true; + fullscreen-launcher = false; + mouse-cursor-focus-location = mkUint32 4; + mouse-cursor-follows-active-window = true; + show-skip-taskbar = false; + show-title = true; + smart-gaps = false; + snap-to-grid = false; + stacking-with-mouse = true; + tile-by-default = true; }; - "org/gnome/desktop/sound" = { - allow-volume-above-100-percent = true; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + binding = "t"; + command = lib.getExe config.programs.alacritty.package; + name = "Terminal"; }; - "org.gnome.desktop.wm.preferences" = { - auto-raise = true; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { + binding = "e"; + command = "${lib.getExe config.programs.librewolf.package} --browser"; + name = "Browser"; + }; + + "org/gnome/desktop/wm/keybindings" = { + close = [ "q" ]; + minimize = mkEmptyArray type.string; + move-to-workspace-1 = [ " 1" ]; + move-to-workspace-2 = [ "2" ]; + move-to-workspace-3 = [ "3" ]; + move-to-workspace-4 = [ "4" ]; + switch-applications = mkEmptyArray type.string; + switch-applications-backward = mkEmptyArray type.string; + switch-to-workspace-1 = [ "1" ]; + switch-to-workspace-2 = [ "2" ]; + switch-to-workspace-3 = [ "3" ]; + switch-to-workspace-4 = [ "4" ]; + toggle-fullscreen = [ "f" ]; }; }; }