From c9c595bc8076bd3aa609b2e9601ac6f99ade0c50 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Thu, 7 Dec 2023 18:47:18 +0530 Subject: [PATCH 01/15] feat: enable lanzaboote for secure boot --- configuration.nix | 11 ++- flake.lock | 225 ++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 12 +-- 3 files changed, 240 insertions(+), 8 deletions(-) diff --git a/configuration.nix b/configuration.nix index 888d8a8..27677b2 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,6 +1,6 @@ # Read the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: { imports = @@ -13,8 +13,13 @@ # Bootloader. boot = { loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; + systemd-boot.enable = lib.mkForce false; + # efi.canTouchEfiVariables = true; + }; + + lanzaboote = { + enable = true; + pkiBundle = "/etc/secureboot"; }; # no keyfile initrd.secrets."/crypto_keyfile.bin" = null; diff --git a/flake.lock b/flake.lock index 5e7b5df..ddbbbbc 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,115 @@ { "nodes": { + "crane": { + "inputs": { + "flake-compat": [ + "lanzaboote", + "flake-compat" + ], + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ], + "rust-overlay": [ + "lanzaboote", + "rust-overlay" + ] + }, + "locked": { + "lastModified": 1681177078, + "narHash": "sha256-ZNIjBDou2GOabcpctiQykEQVkI8BDwk7TyvlWlI4myE=", + "owner": "ipetkov", + "repo": "crane", + "rev": "0c9f468ff00576577d83f5019a66c557ede5acf6", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "flake-compat": { + "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": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1680392223, + "narHash": "sha256-n3g7QFr85lDODKt250rkZj2IFS3i4/8HBU2yKHO3tqw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "dcc36e45d054d7bb554c9cdab69093debd91a0b5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "pre-commit-hooks-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -20,6 +130,33 @@ "type": "github" } }, + "lanzaboote": { + "inputs": { + "crane": "crane", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks-nix": "pre-commit-hooks-nix", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1682802423, + "narHash": "sha256-Fb5TeRTdvUlo/5Yi2d+FC8a6KoRLk2h1VE0/peMhWPs=", + "owner": "nix-community", + "repo": "lanzaboote", + "rev": "64b903ca87d18cef2752c19c098af275c6e51d63", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.3.0", + "repo": "lanzaboote", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1693158576, @@ -36,11 +173,99 @@ "type": "github" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1678872516, + "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": [ + "lanzaboote", + "flake-compat" + ], + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1681413034, + "narHash": "sha256-/t7OjNQcNkeWeSq/CFLYVBfm+IEnkjoSm9iKvArnUUI=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "d3de8f69ca88fb6f8b09e5b598be5ac98d28ede5", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", + "lanzaboote": "lanzaboote", "nixpkgs": "nixpkgs" } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1682129965, + "narHash": "sha256-1KRPIorEL6pLpJR04FwAqqnt4Tzcm4MqD84yhlD+XSk=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "2c417c0460b788328220120c698630947547ee83", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 5c11605..86dcf80 100644 --- a/flake.nix +++ b/flake.nix @@ -5,25 +5,27 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + lanzaboote = { + url = "github:nix-community/lanzaboote/v0.3.0"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = inputs@{ nixpkgs, home-manager, ... }: { + outputs = inputs@{ nixpkgs, home-manager, lanzaboote, ... }: { nixosConfigurations = { cafe = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./configuration.nix home-manager.nixosModules.home-manager + lanzaboote.nixosModules.lanzaboote { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.h = import ./home.nix; - - # Optionally, use home-manager.extraSpecialArgs to pass - # arguments to home.nix } ]; }; }; }; -} \ No newline at end of file +} From 7a083796fa92539d9a4078b3064fa56462cbab48 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Thu, 7 Dec 2023 20:00:48 +0530 Subject: [PATCH 02/15] fix: update hardware config because of f2fs --- hardware-configuration.nix | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hardware-configuration.nix b/hardware-configuration.nix index b4f440e..efb18ec 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -14,15 +14,14 @@ boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/df4f33a3-3d6c-4e08-af9f-df776984d5c5"; - fsType = "btrfs"; - options = [ "subvol=@" ]; + { device = "/dev/disk/by-uuid/94c8060f-2f96-417e-8384-7a1f45809876"; + fsType = "f2fs"; }; - boot.initrd.luks.devices."luks-5c48c31e-0eba-4ed5-bfad-cbb3e8ca8f5f".device = "/dev/disk/by-uuid/5c48c31e-0eba-4ed5-bfad-cbb3e8ca8f5f"; + boot.initrd.luks.devices."luks-aa1ebcba-075e-4412-aa82-fa9faf22a23d".device = "/dev/disk/by-uuid/aa1ebcba-075e-4412-aa82-fa9faf22a23d"; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/6AD0-7578"; + { device = "/dev/disk/by-uuid/F5E4-2796"; fsType = "vfat"; }; From 5d2820bc3c26c87cd131143a535feeda54253049 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Thu, 7 Dec 2023 20:29:09 +0530 Subject: [PATCH 03/15] chore: disable a few packages remove vala lsp --- configuration.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/configuration.nix b/configuration.nix index 27677b2..c4382c6 100644 --- a/configuration.nix +++ b/configuration.nix @@ -140,7 +140,6 @@ # Enable touchpad support (enabled default in most desktopManager). # services.xserver.libinput.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. programs.fish = { enable = true; shellAliases = { @@ -150,6 +149,7 @@ }; + # Define a user account. Don't forget to set a password with ‘passwd’. users.users.h = { isNormalUser = true; description = "Himadri Bhattacharjee"; @@ -209,7 +209,6 @@ pkg-config pwntools pythonPackages - qbittorrent qemu qrencode radare2 @@ -217,13 +216,12 @@ rustc rustfmt rustscan - signal-desktop + # signal-desktop slides sbctl sqlmap tor-browser-bundle-bin unrar - vala-language-server wine yt-dlp ]; @@ -262,6 +260,7 @@ gnome-text-editor gnome-tour gnome.yelp + gnome-photos ]; environment.variables = rec { From ef6ceb5c0abd2e8fdccb32639e014eb57b6a8ac8 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Thu, 7 Dec 2023 20:54:31 +0530 Subject: [PATCH 04/15] chore: change helix theme in config --- sources/helix/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/helix/config.toml b/sources/helix/config.toml index 5fd3ddc..36f63a1 100644 --- a/sources/helix/config.toml +++ b/sources/helix/config.toml @@ -1,4 +1,4 @@ -theme = "monokai_pro_ristretto" +theme = "adwaita-dark" [editor.lsp] display-inlay-hints = true From 646657bb18b533a7839386a98a31c4627627bed8 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Fri, 8 Dec 2023 09:06:36 +0530 Subject: [PATCH 05/15] feat: move secure boot configuration to separate nix file created a nix configuration file which only gets used when building the cafe-secureboot nixConfiguration --- README.md | 11 +++++++++++ configuration.nix | 12 +++--------- flake.nix | 15 +++++++++++++++ secureboot.nix | 16 ++++++++++++++++ 4 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 secureboot.nix diff --git a/README.md b/README.md index 2d6e771..1b9a0a8 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,17 @@ cd dotfiles sudo nixos-rebuild switch --flake .#cafe ``` +### Secureboot + +To enable secureboot, generate your keys, clear the manufacturer keys and enroll them as described [here](https://github.com/nix-community/lanzaboote/blob/master/docs/QUICK_START.md). +> Note: `sbctl` is already installed + +Once the keys are enrolled, we must run the following to rebuild our system from now on + +```sh +sudo nixos-rebuild switch --flake .#cafe-secureboot +``` + #### Optional: Installing Sponsorblock for mpv A fresh install is unlikely to have Rust and thus, the sponsorblock diff --git a/configuration.nix b/configuration.nix index c4382c6..abc85a6 100644 --- a/configuration.nix +++ b/configuration.nix @@ -4,8 +4,7 @@ { imports = - [ # Include the results of the hardware scan. - # ./home.nix + [ ./hardware-configuration.nix ./gnome-extensions.nix ]; @@ -13,13 +12,8 @@ # Bootloader. boot = { loader = { - systemd-boot.enable = lib.mkForce false; - # efi.canTouchEfiVariables = true; - }; - - lanzaboote = { - enable = true; - pkiBundle = "/etc/secureboot"; + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; }; # no keyfile initrd.secrets."/crypto_keyfile.bin" = null; diff --git a/flake.nix b/flake.nix index 86dcf80..1f6394c 100644 --- a/flake.nix +++ b/flake.nix @@ -26,6 +26,21 @@ } ]; }; + + cafe-secureboot = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./configuration.nix + ./secureboot.nix + home-manager.nixosModules.home-manager + lanzaboote.nixosModules.lanzaboote + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.h = import ./home.nix; + } + ]; + }; }; }; } diff --git a/secureboot.nix b/secureboot.nix new file mode 100644 index 0000000..dab1c54 --- /dev/null +++ b/secureboot.nix @@ -0,0 +1,16 @@ +{ config, pkgs, lib, ... }: + +{ + boot = { + loader = { + systemd-boot.enable = lib.mkForce false; + # efi.canTouchEfiVariables = true; + }; + + lanzaboote = { + enable = true; + pkiBundle = "/etc/secureboot"; + }; + }; + +} From a82f10bb68ab4777a21fcd14bd279aa9c02bf369 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Fri, 8 Dec 2023 13:16:46 +0530 Subject: [PATCH 06/15] refactor: use self to define outputs --- configuration.nix | 4 ++-- flake.lock | 12 ++++++------ flake.nix | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/configuration.nix b/configuration.nix index abc85a6..b268e28 100644 --- a/configuration.nix +++ b/configuration.nix @@ -137,7 +137,7 @@ programs.fish = { enable = true; shellAliases = { - ls = "exa -la"; + ls = "eza -la"; cat = "bat -p"; }; }; @@ -272,7 +272,7 @@ adw-gtk3 aircrack-ng bat - exa + eza git helix iw diff --git a/flake.lock b/flake.lock index ddbbbbc..6b51260 100644 --- a/flake.lock +++ b/flake.lock @@ -117,11 +117,11 @@ ] }, "locked": { - "lastModified": 1693187908, - "narHash": "sha256-cTcNpsqi1llmUFl9bmCdD0mTyfjhBrNFPhu2W12WXzA=", + "lastModified": 1701728041, + "narHash": "sha256-x0pyrI1vC8evVDxCxyO6olOyr4wlFg9+VS3C3p4xFYQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "8bde7a651b94ba30bd0baaa9c4a08aae88cc2e92", + "rev": "ac7216918cd65f3824ba7817dea8f22e61221eaf", "type": "github" }, "original": { @@ -159,11 +159,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1693158576, - "narHash": "sha256-aRTTXkYvhXosGx535iAFUaoFboUrZSYb1Ooih/auGp0=", + "lastModified": 1701718080, + "narHash": "sha256-6ovz0pG76dE0P170pmmZex1wWcQoeiomUZGggfH9XPs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a999c1cc0c9eb2095729d5aa03e0d8f7ed256780", + "rev": "2c7f3c0fb7c08a0814627611d9d7d45ab6d75335", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1f6394c..c45ea2f 100644 --- a/flake.nix +++ b/flake.nix @@ -11,7 +11,7 @@ }; }; - outputs = inputs@{ nixpkgs, home-manager, lanzaboote, ... }: { + outputs = { self, nixpkgs, home-manager, lanzaboote, ... }: { nixosConfigurations = { cafe = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; From e766810cae2b238b66c4658084f79109d109e115 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Fri, 8 Dec 2023 13:17:23 +0530 Subject: [PATCH 07/15] feat: add lazygit to user packages --- configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration.nix b/configuration.nix index b268e28..fe9690f 100644 --- a/configuration.nix +++ b/configuration.nix @@ -187,6 +187,7 @@ i2p jq krita + lazygit libreoffice-fresh librewolf libvirt From 5f8400d78063103a6ce524a0cbeec452531e59d8 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Fri, 8 Dec 2023 13:17:43 +0530 Subject: [PATCH 08/15] feat: add nix language server --- configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration.nix b/configuration.nix index fe9690f..46c1d1e 100644 --- a/configuration.nix +++ b/configuration.nix @@ -196,6 +196,7 @@ mariadb marksman neofetch + nil nikto nmap onionshare From 3b55ab91e750e7c9fbb7fef069d664b35f87de62 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Fri, 8 Dec 2023 13:31:02 +0530 Subject: [PATCH 09/15] refactor: remove unused lib binding --- configuration.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration.nix b/configuration.nix index 46c1d1e..5940855 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,6 +1,6 @@ # Read the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, lib, ... }: +{ config, pkgs, ... }: { imports = From 0eb9a3880d277844304d10d2d98bbbd183ff385d Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee Date: Fri, 8 Dec 2023 13:31:33 +0530 Subject: [PATCH 10/15] refactor: remove unused rec --- configuration.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration.nix b/configuration.nix index 5940855..2604d8b 100644 --- a/configuration.nix +++ b/configuration.nix @@ -259,7 +259,7 @@ gnome-photos ]; - environment.variables = rec { + environment.variables = { # Set the path for pkg-config to the openssl library # so that we may compile projects that link to openssl. # For example, a Rust project depending upon the openssl-sys crate. From ece173e85c9f2585624f6635f036ef5ad41f4412 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Fri, 8 Dec 2023 18:24:54 +0530 Subject: [PATCH 11/15] feat: gnome-photos no longer needs exclusion (deprecated) --- configuration.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/configuration.nix b/configuration.nix index 2604d8b..3407bb9 100644 --- a/configuration.nix +++ b/configuration.nix @@ -256,7 +256,6 @@ gnome-text-editor gnome-tour gnome.yelp - gnome-photos ]; environment.variables = { From a812abfb7ca5d57b4a2901f5c11a6d64ff086927 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Fri, 8 Dec 2023 18:25:19 +0530 Subject: [PATCH 12/15] feat: exclude gnome totem video player --- configuration.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/configuration.nix b/configuration.nix index 3407bb9..68dcfb6 100644 --- a/configuration.nix +++ b/configuration.nix @@ -256,6 +256,7 @@ gnome-text-editor gnome-tour gnome.yelp + gnome.totem ]; environment.variables = { From e8a009b6f794f11c5992fb0f689cccb85e74a053 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Fri, 8 Dec 2023 18:56:06 +0530 Subject: [PATCH 13/15] feat: add dconf settings for dark theme with adw-gtk3 --- home.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/home.nix b/home.nix index 3cbc1e5..a188a19 100644 --- a/home.nix +++ b/home.nix @@ -18,4 +18,11 @@ }; stateVersion = "23.11"; }; + dconf.settings = { + # Enable dark theme using adw-gtk3 to make GTK3 apps look coherent + "org/gnome/desktop/interface" = { + gtk-theme = "adw-gtk3-dark"; + color-scheme = "prefer-dark"; + }; + }; } From 55224a19e107ea7be1bf1725b175c03301b4d01d Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Fri, 8 Dec 2023 18:56:38 +0530 Subject: [PATCH 14/15] feat: add dconf settings for programmer options in calculator --- home.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/home.nix b/home.nix index a188a19..7b6e2af 100644 --- a/home.nix +++ b/home.nix @@ -19,6 +19,14 @@ stateVersion = "23.11"; }; dconf.settings = { + + # Did you know I'm a programmer? + "org/gnome/calculator" = { + button-mode = "programming"; + show-thousands = true; + base = 10; + }; + # Enable dark theme using adw-gtk3 to make GTK3 apps look coherent "org/gnome/desktop/interface" = { gtk-theme = "adw-gtk3-dark"; From 042b2341633d218d8c1558d699c7d47bcc1986ba Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Fri, 8 Dec 2023 19:44:31 +0530 Subject: [PATCH 15/15] feat: add super q window close shortcut for small hands --- home.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home.nix b/home.nix index 7b6e2af..7f22f36 100644 --- a/home.nix +++ b/home.nix @@ -32,5 +32,9 @@ gtk-theme = "adw-gtk3-dark"; color-scheme = "prefer-dark"; }; + + "org/gnome/desktop/wm/keybindings" = { + close = [ "q" ]; + }; }; }