Use niri instead of GNOME

This commit is contained in:
Daniel Lundin 2025-03-08 16:29:34 +01:00
parent 469e592a31
commit aab6c8d6ed
Signed by: dln
SSH key fingerprint: SHA256:dQy1Xj3UiqJYpKR5ggQ2bxgz4jCH8IF+k3AB8o0kmdI
6 changed files with 98 additions and 254 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;
};
}

66
flake.lock generated
View file

@ -62,11 +62,11 @@
]
},
"locked": {
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
@ -128,11 +128,11 @@
]
},
"locked": {
"lastModified": 1742014779,
"narHash": "sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8=",
"lastModified": 1744693102,
"narHash": "sha256-1Z4WPGVky4w3lrhrgs89OKsLzPdtkbi1bPLNFWsoLfY=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "524637ef84c177661690b924bf64a1ce18072a2c",
"rev": "5b6cec51c9ec095a0d3fd4c8eeb53eb5c59ae33e",
"type": "github"
},
"original": {
@ -148,11 +148,11 @@
]
},
"locked": {
"lastModified": 1744400600,
"narHash": "sha256-qYhUgA98mhq1QK13r9qVY+sG1ri6FBgyp+GApX6wS20=",
"lastModified": 1745987135,
"narHash": "sha256-8Up4QPuMZEJBU0eefAY+nUe7DYKQQzvaHnMpNdwRgKA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "b74b22bb6167e8dff083ec6988c98798bf8954d3",
"rev": "d2b3e6c83d457aa0e7f9344c61c3fed32bad0f7e",
"type": "github"
},
"original": {
@ -172,11 +172,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1744447706,
"narHash": "sha256-8bkAMTy5A6IEEBrr8fGyBrpRNvHMBttsjmTS3IHO/3w=",
"lastModified": 1745993004,
"narHash": "sha256-Tz/mPxMwAMghdi3nYnppkl6j3H3LdcdbuvmJyQj11JU=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "8479d0e1c0b9274c25001432169c0056633bf63a",
"rev": "5cde8950cf2fa3ef8edf9b0af0e0a020a5318565",
"type": "github"
},
"original": {
@ -188,11 +188,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1744372015,
"narHash": "sha256-Aith8tgE4jRYDpFa9JqPsA4beTimLmqgwl6PLNlJHyU=",
"lastModified": 1745965750,
"narHash": "sha256-GtRcW1p7hzFu7AK1JXJGY6bG/5Y7vb+1VX8uFGKdefM=",
"owner": "neovim",
"repo": "neovim",
"rev": "4a706a70928231643e1a3f3fcf785de7aa930f8b",
"rev": "0ab0cdb2dabc551f836851aa85d06e927c42d92a",
"type": "github"
},
"original": {
@ -208,11 +208,11 @@
]
},
"locked": {
"lastModified": 1743911143,
"narHash": "sha256-4j4JPwr0TXHH4ZyorXN5yIcmqIQr0WYacsuPA4ktONo=",
"lastModified": 1746029363,
"narHash": "sha256-yBIWj5l5ha0GHmgJRdqq7fBuQIp3vKb1ELPPnLEUKRc=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "a36f6a7148aec2c77d78e4466215cceb2f5f4bfb",
"rev": "4b221d92d4599a1c7a8820a394f3b15c5c354f35",
"type": "github"
},
"original": {
@ -223,11 +223,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1744316434,
"narHash": "sha256-lzFCg/1C39pyY2hMB2gcuHV79ozpOz/Vu15hdjiFOfI=",
"lastModified": 1745900683,
"narHash": "sha256-ZGi2gjgPtmPmplCVz7dNufqkBr00g6EeAloX3GrFQls=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d19cf9dfc633816a437204555afeb9e722386b76",
"rev": "ffa0bb043c25cfc79ff3bc20ba2e44c3724499b1",
"type": "github"
},
"original": {
@ -239,11 +239,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1744309437,
"narHash": "sha256-QZnNHM823am8apCqKSPdtnzPGTy2ZB4zIXOVoBp5+W0=",
"lastModified": 1745921652,
"narHash": "sha256-hEAvEN+y/OQ7wA7+u3bFJwXSe8yoSf2QaOMH3hyTJTQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f9ebe33a928b5d529c895202263a5ce46bdf12f7",
"rev": "b000159bba69b0106a42f65e52dbf27f77aca9d3",
"type": "github"
},
"original": {
@ -255,11 +255,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1744347518,
"narHash": "sha256-4Y0ByuP4NEz2Zyso9Ozob8yR6kKuaunJ5OARv+tFLPI=",
"lastModified": 1745998881,
"narHash": "sha256-vonyYAKJSlsX4n9GCsS0pHxR6yCrfqBIuGvANlkwG6U=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "642c54c23609fefb5708b0e2be261446c59138f6",
"rev": "423d2df5b04b4ee7688c3d71396e872afa236a89",
"type": "github"
},
"original": {
@ -271,11 +271,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1744232761,
"narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=",
"lastModified": 1745930157,
"narHash": "sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ+5dck=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14",
"rev": "46e634be05ce9dc6d4db8e664515ba10b78151ae",
"type": "github"
},
"original": {
@ -303,11 +303,11 @@
]
},
"locked": {
"lastModified": 1743748085,
"narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=",
"lastModified": 1745929750,
"narHash": "sha256-k5ELLpTwRP/OElcLpNaFWLNf8GRDq4/eHBmFy06gGko=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d",
"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";
};
};
};
};
}