Use niri instead of GNOME

This commit is contained in:
Daniel Lundin 2025-03-08 16:29:34 +01:00
parent 1e1285d62b
commit 1c116fe0a3
Signed by: dln
SSH key fingerprint: SHA256:dQy1Xj3UiqJYpKR5ggQ2bxgz4jCH8IF+k3AB8o0kmdI
6 changed files with 91 additions and 247 deletions

View file

@ -15,32 +15,6 @@ in
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ gnome-ssh-askpass4 ];
# Excluding some GNOME applications from the default install
environment.gnome.excludePackages = (
with pkgs;
[
atomix # puzzle game
baobab # disk usage analyzer
cheese # webcam tool
epiphany # web browser
geary # email reader
gnome-clocks
gnome-connections
gnome-disk-utility
gnome-logs
gnome-music
gnome-photos
gnome-terminal
gnome-tour
snapshot
hitori # sudoku game
iagno # go game
simple-scan
tali # poker game
yelp # help viewer
]
);
fonts = {
fontDir.enable = true;
fontconfig = {
@ -76,21 +50,8 @@ in
localNetworkGameTransfers.openFirewall = true;
};
services.gnome.gnome-keyring.enable = true;
services.printing.enable = true;
services.displayManager.defaultSession = "gnome";
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
displayManager.gdm.autoSuspend = false;
desktopManager.gnome.enable = true;
xkb.layout = "se";
xkb.variant = "us";
};
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {

View file

@ -12,8 +12,6 @@ in
options.patagia.laptop.enable = mkEnableOption "Laptop tools and configuration";
config = mkIf config.patagia.laptop.enable {
environment.systemPackages = with pkgs; [ gnomeExtensions.battery-health-charging ];
services.fprintd.enable = true;
};
}

52
flake.lock generated
View file

@ -148,11 +148,11 @@
]
},
"locked": {
"lastModified": 1745810134,
"narHash": "sha256-WfnYH/i7DFzn4SESQfWviXiNUZjohZhzODqLwKYHIPI=",
"lastModified": 1746040799,
"narHash": "sha256-osgPX/SzIpkR50vev/rqoTEAVkEcOWXoQXmbzsaI4KU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "be7cf1709b469a2a2c62169172a167d1fed3509f",
"rev": "5f217e5a319f6c186283b530f8c975e66c028433",
"type": "github"
},
"original": {
@ -172,11 +172,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1745798752,
"narHash": "sha256-0jiImtQNvlDqf0eWqWFGugNjhazNmaXMi2fM7/B/cd8=",
"lastModified": 1745993004,
"narHash": "sha256-Tz/mPxMwAMghdi3nYnppkl6j3H3LdcdbuvmJyQj11JU=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "31a7206bdf9e0c01db2165e20a6082690c60b9c9",
"rev": "5cde8950cf2fa3ef8edf9b0af0e0a020a5318565",
"type": "github"
},
"original": {
@ -188,11 +188,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1745795730,
"narHash": "sha256-7sPk1jScMqsTwXYYFKYILrE9xLk7CK+yCBqcK46HTv8=",
"lastModified": 1745965750,
"narHash": "sha256-GtRcW1p7hzFu7AK1JXJGY6bG/5Y7vb+1VX8uFGKdefM=",
"owner": "neovim",
"repo": "neovim",
"rev": "ce097c5091eab3550e1534fd111752577b5813ea",
"rev": "0ab0cdb2dabc551f836851aa85d06e927c42d92a",
"type": "github"
},
"original": {
@ -208,11 +208,11 @@
]
},
"locked": {
"lastModified": 1745725746,
"lastModified": 1746054057,
"narHash": "sha256-iR+idGZJ191cY6NBXyVjh9QH8GVWTkvZw/w+1Igy45A=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "187524713d0d9b2d2c6f688b81835114d4c2a7c6",
"rev": "13ba07d54c6ccc5af30a501df669bf3fe3dd4db8",
"type": "github"
},
"original": {
@ -223,11 +223,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1745377448,
"narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
"lastModified": 1745900683,
"narHash": "sha256-ZGi2gjgPtmPmplCVz7dNufqkBr00g6EeAloX3GrFQls=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
"rev": "ffa0bb043c25cfc79ff3bc20ba2e44c3724499b1",
"type": "github"
},
"original": {
@ -239,11 +239,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1745742390,
"narHash": "sha256-1rqa/XPSJqJg21BKWjzJZC7yU0l/YTVtjRi0RJmipus=",
"lastModified": 1745921652,
"narHash": "sha256-hEAvEN+y/OQ7wA7+u3bFJwXSe8yoSf2QaOMH3hyTJTQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "26245db0cb552047418cfcef9a25da91b222d6c7",
"rev": "b000159bba69b0106a42f65e52dbf27f77aca9d3",
"type": "github"
},
"original": {
@ -255,11 +255,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1745377448,
"narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
"lastModified": 1746029695,
"narHash": "sha256-ucaEphdH+3ANIprXcYiGoXfHGQol3c5G5f99R7RBU58=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
"rev": "70b191e2e0b1b5fe8586ad939dfa01f3047865f7",
"type": "github"
},
"original": {
@ -271,11 +271,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1745526057,
"narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
"lastModified": 1745930157,
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
"type": "github"
},
"original": {
@ -303,11 +303,11 @@
]
},
"locked": {
"lastModified": 1745780832,
"narHash": "sha256-jGzkZoJWx+nJnPe0Z2xQBUOqMKuR1slVFQrMjFTKgeM=",
"lastModified": 1745929750,
"narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "b2b6c027d708fbf4b01c9c11f6e80f2800b5a624",
"rev": "82bf32e541b30080d94e46af13d46da0708609ea",
"type": "github"
},
"original": {

View file

@ -6,8 +6,8 @@
./devel.nix
./fish.nix
./ghostty.nix
./gnome.nix
./k8s.nix
./niri.nix
./nix.nix
./nvim
./scripts.nix

View file

@ -1,179 +0,0 @@
{
config,
lib,
pkgs,
...
}:
with lib.hm.gvariant;
{
config = lib.mkIf config.patagia.desktop.enable {
home.packages = with pkgs; [
gnome-contacts
gnome-shell-extensions
gnome-tweaks
gnome-pomodoro
gnomeExtensions.desktop-clock
gnomeExtensions.emoji-copy
gnomeExtensions.just-perfection
gnomeExtensions.night-light-slider
];
dconf.settings = {
"org/gnome/desktop/wm/keybindings" = {
close = [ "<Super>q" ];
toggle-on-all-workspaces = [ "<Super>s" ];
toggle-maximized = [ "<Super>m" ];
maximize-vertically = [ "<Super>Up" ];
minimize = [ "<Super>comma" ];
move-to-center = [ "<Super>c" ];
switch-applications = [ "<Super>Tab" ];
switch-group = [ "<Super>Above_Tab" ];
switch-windows = [ "<Alt>Tab" ];
move-to-workspace-1 = [ "<Shift>F1" ];
move-to-workspace-2 = [ "<Shift>F2" ];
move-to-workspace-3 = [ "<Shift>F3" ];
move-to-workspace-4 = [ "<Shift>F4" ];
move-to-workspace-5 = [ "<Shift>F5" ];
move-to-workspace-6 = [ "<Shift>F6" ];
move-to-workspace-7 = [ "<Shift>F7" ];
move-to-workspace-8 = [ "<Shift>F8" ];
move-to-workspace-9 = [ "<Shift>F9" ];
switch-to-workspace-1 = [ "F1" ];
switch-to-workspace-2 = [ "F2" ];
switch-to-workspace-3 = [ "F3" ];
switch-to-workspace-4 = [ "F4" ];
switch-to-workspace-5 = [ "F5" ];
switch-to-workspace-6 = [ "F6" ];
switch-to-workspace-7 = [ "F7" ];
switch-to-workspace-8 = [ "F8" ];
switch-to-workspace-9 = [ "F9" ];
};
"org/gnome/desktop/input-sources" = {
mru-sources = [
(mkTuple [
"xkb"
"us"
])
];
sources = [
(mkTuple [
"xkb"
"se+us"
])
];
xkb-options = [ "caps:ctrl_modifier" ];
};
"org/gnome/desktop/interface" = {
enable-animations = false;
enable-hot-corners = false;
show-battery-percentage = true;
font-name = "Inter Variable 11";
document-font-name = "Inter Variable 11";
monospace-font-name = "Berkeley Mono 11";
toolkit-accessibility = false;
};
"org/gnome/desktop/search-providers" = {
disabled = [
"org.gnome.Contacts.desktop"
"org.gnome.Nautilus.desktop"
"org.gnome.Calendar.desktop"
"org.gnome.clocks.desktop"
"org.gnome.Epiphany.desktop"
];
sort-order = [
"org.gnome.Contacts.desktop"
"org.gnome.Documents.desktop"
"org.gnome.Nautilus.desktop"
"org.gnome.Settings.desktop"
"org.gnome.Calculator.desktop"
"org.gnome.Calendar.desktop"
"org.gnome.clocks.desktop"
"org.gnome.seahorse.Application.desktop"
"org.gnome.Weather.desktop"
"org.gnome.Characters.desktop"
];
};
"org/gnome/desktop/wm/preferences" = {
focus-mode = "sloppy";
num-workspaces = 10;
resize-with-right-button = true;
};
"org/gnome/GWeather4" = {
temperature-unit = "centigrade";
};
"org/gnome/Weather" = {
locations = [
(mkVariant (mkTuple [
(mkUint32 2)
(mkVariant (mkTuple [
"Stockholm-Arlanda Airport"
"ESSA"
false
[
(mkTuple [
1.0410888988146176
0.31328660073298215
])
]
[
(mkTuple [
1.0410888988146176
0.31328660073298215
])
]
]))
]))
];
};
"org/gnome/desktop/calendar" = {
show-weekdate = true;
};
"org/gnome/mutter" = {
center-new-windows = false;
edge-tiling = true;
};
"org/gnome/settings-daemon/plugins/color" = {
night-light-schedule-automatic = false;
night-light-schedule-from = 0.0;
night-light-schedule-to = 0.0;
night-light-temperature = mkUint32 3575;
};
"org/gnome/shell" = {
enabled-extensions = [
"emoji-copy@felipeftn"
"just-perfection-desktop@just-perfection"
];
};
"org/gnome/shell/extensions/emoji-copy" = {
emoji-keybind = [ "<Super>e" ];
};
"org/gnome/shell/extensions/just-perfection" = {
animation = 0;
notification-banner-position = 2;
osd-position = 6;
panel = false;
panel-in-overview = true;
startup-status = 0;
switcher-popup-delay = false;
top-panel-position = 0;
};
"org/gnome/tweaks" = {
show-extensions-notice = false;
};
};
};
}

64
home/common/niri.nix Normal file
View file

@ -0,0 +1,64 @@
{
user,
lib,
pkgs,
inputs',
...
}:
{
programs.niri = {
enable = true;
};
services.greetd = {
enable = true;
vt = 2;
settings = rec {
initial_session = {
command = "${lib.getExe pkgs.greetd.tuigreet} --remember --time --cmd ${lib.getExe' pkgs.niri "niri-session"}";
inherit user;
};
default_session = initial_session;
};
};
systemd.user = {
services = {
swaybg = {
wantedBy = [ "niri.service" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
ExecStart =
let
img = pkgs.fetchurl {
url = "https://s3.nyaw.xyz/misskey//92772482-aef9-44e8-b1e2-1d49753a72fc.jpg";
hash = "sha256-Y9TJ/xQQhqWq3t2wn1gS4NPGpuz1m7nu1ATcWWPKPW8=";
};
in
"${lib.getExe pkgs.swaybg} -i ${img} -m fill";
Restart = "on-failure";
};
};
waybar = {
wantedBy = [ "niri.service" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
# path = [ (lib.makeBinPath [ pkgs.niri ]) ];
serviceConfig = {
ExecStart = lib.getExe pkgs.waybar;
Restart = "on-failure";
};
};
xwayland-satellite = {
wantedBy = [ "niri.service" ];
after = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
serviceConfig = {
ExecStart = lib.getExe pkgs.xwayland-satellite;
Restart = "on-failure";
};
};
};
};
}