From 6c4d20403ee8ef704a7d63d688d3cbdeb66c14e9 Mon Sep 17 00:00:00 2001 From: Grey Jones Date: Mon, 6 Jul 2026 03:01:04 +0100 Subject: [PATCH] basic functional niri+noctalia setup --- flake.lock | 237 ++++++++- flake.nix | 9 + global-configs/floorp.nix | 320 +----------- global-configs/niri.nix | 580 ++++++++++++++++++++++ global-configs/plasma.nix | 1 - global-configs/vscode.nix | 22 + global-home.nix | 4 + hosts/kitagawa/default.nix | 3 +- hosts/kitagawa/hardware-configuration.nix | 45 ++ hosts/kitagawa/home.nix | 25 +- modules/display-managers/lightdm.nix | 11 + modules/home-manager.nix | 4 +- modules/window-managers/niri.nix | 24 + 13 files changed, 962 insertions(+), 323 deletions(-) create mode 100644 global-configs/niri.nix create mode 100644 global-configs/vscode.nix create mode 100644 hosts/kitagawa/hardware-configuration.nix create mode 100644 modules/display-managers/lightdm.nix create mode 100644 modules/window-managers/niri.nix diff --git a/flake.lock b/flake.lock index e0eef36..c3c042b 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1783051357, - "narHash": "sha256-/PPRXThQ9aoc/stohHMtfrRr0y5TmZSFvWPgC18HjUk=", + "lastModified": 1783224161, + "narHash": "sha256-SaSOAG03FE9FC0GV7uPPeyb7CHS59Yw9n0Go1gioidc=", "owner": "rycee", "repo": "nur-expressions", - "rev": "b02e5efbe9b68e4de7322362ada265bffe43696a", + "rev": "3a074d910fc151b9fcfb67dff99b844d6ee530dd", "type": "gitlab" }, "original": { @@ -29,11 +29,11 @@ ] }, "locked": { - "lastModified": 1782704057, - "narHash": "sha256-G1I1gd32F7mp9LAe1DaZ4ZL7NX5gyiKwdCMwro1Vrck=", + "lastModified": 1783221248, + "narHash": "sha256-ESQnuNHEDChsB4IxoLRhscVahqkDWkTb+qdIz8euYt4=", "owner": "nix-community", "repo": "home-manager", - "rev": "868d0a692de703c2de98fab61968e4e310b7c28e", + "rev": "af2beae5f0fae0a4310cc0e6aef2572f56090353", "type": "github" }, "original": { @@ -50,11 +50,11 @@ ] }, "locked": { - "lastModified": 1782982440, - "narHash": "sha256-Zc5cC0WfiicPKtmJbUi8XlZJ1alXN9HLiCJONNtJfhQ=", + "lastModified": 1783155779, + "narHash": "sha256-QLg5u5W23sa31dFAlO95RHWbVFkwExsmpQ29NquLE0s=", "owner": "nix-community", "repo": "nh", - "rev": "813e006f41e4e463e6858e5d8dcdc8d38ecda83d", + "rev": "ab81553b6932fcc076cf4fb993a5daf47ab9ef0d", "type": "github" }, "original": { @@ -63,13 +63,101 @@ "type": "github" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": "nixpkgs", + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1783267733, + "narHash": "sha256-DTvaM+0vanneOcKg3NKXV7ilf0ShY4BOBz/nde5GHos=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "74053f79cad0f6c3a4a0be6b7928795d2e6a9f4b", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1756556321, + "narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.08", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1783248941, + "narHash": "sha256-citgYJbvR1iUKXpiWlFq3NO+fw6hXGL3Qk1ampU7lhA=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "a30ca7983b2f1fc3ddeb209b3fe18fa78e0dbd25", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1782847225, - "narHash": "sha256-JC9PjqKYG9ve5U8aDOLQipp3+KLANBHUvGdLZlxzdKI=", + "lastModified": 1783224372, + "narHash": "sha256-8i/87eeoqiGE4yOTjwSA3Eh/ziJRQEmd/unYU+K27sk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d407951447dcd00442e97087bf374aad70c04cea", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1782847189, + "narHash": "sha256-twXPFqFsrrY5r28Zh7Homgcp2gUMBgQ6WDS98Q/3xFI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b6018f87da91d19d0ab4cf979885689b469cdd41", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1783148766, + "narHash": "sha256-uslt2pqShTIXDdAHRHv2QkYLsVdY8Oqwz0EA48/RSM8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "95ca1e203c0750115fd4a6f17d5a245dfe6b1edd", + "rev": "a50de1b7d8a586adc18d2395c19de7d6058e6030", "type": "github" }, "original": { @@ -79,6 +167,51 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "noctalia-qs": "noctalia-qs" + }, + "locked": { + "lastModified": 1783017890, + "narHash": "sha256-bAzrtN0GDMH0dOZkgeI3zSxfFs2rdD3pMuzOxvTF0bs=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "a48885b9fec485c903c955749a7da6e30147cd38", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "ref": "legacy-v4", + "repo": "noctalia-shell", + "type": "github" + } + }, + "noctalia-qs": { + "inputs": { + "nixpkgs": [ + "noctalia", + "nixpkgs" + ], + "systems": "systems", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1780799499, + "narHash": "sha256-YloRtLqJabzYUWvdLyh67zH4DZrR3kQj+dlQJwLPmPM=", + "owner": "noctalia-dev", + "repo": "noctalia-qs", + "rev": "f308426239665e3bc3d624014e9295b2ae2f58ff", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-qs", + "type": "github" + } + }, "plasma-manager": { "inputs": { "home-manager": [ @@ -107,11 +240,83 @@ "firefox-addons": "firefox-addons", "home-manager": "home-manager", "nh": "nh", - "nixpkgs": "nixpkgs", + "niri": "niri", + "nixpkgs": "nixpkgs_2", + "noctalia": "noctalia", "plasma-manager": "plasma-manager", "zen-browser": "zen-browser" } }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "treefmt-nix": { + "inputs": { + "nixpkgs": [ + "noctalia", + "noctalia-qs", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780220602, + "narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "db947814a175b7ca6ded66e21383d938df01c227", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1755491097, + "narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "388d291e82ffbc73be18169d39470f340707edaa", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.7", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1781226823, + "narHash": "sha256-28696iIw8uE0ZUyFTtzhEM8xMh85clCYypMxkvUi+sc=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "8575d0ef55d70f9b4c46b6bffb3accf912217e1e", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, "zen-browser": { "inputs": { "home-manager": [ @@ -122,11 +327,11 @@ ] }, "locked": { - "lastModified": 1783063269, - "narHash": "sha256-XVOopPVgoWPlhuJajUYNTK/M9j/L/llD6vdH5JE9EKs=", + "lastModified": 1783190846, + "narHash": "sha256-UcdKHKcDxLxBon0HsOjDRRA7l1vVT28R83LkCIAlYYc=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "b86380c97016a1c79f535f286a34c0f5b4270a1b", + "rev": "0758bc86f7a55bbe002f0cede9e1a49e5a6e34d9", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 65141e5..606115c 100644 --- a/flake.nix +++ b/flake.nix @@ -32,6 +32,15 @@ inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; + + niri = { + url = "github:sodiboo/niri-flake"; + }; + + noctalia = { + url = "github:noctalia-dev/noctalia-shell/legacy-v4"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = {self,nixpkgs,home-manager,plasma-manager,...}@inputs: { diff --git a/global-configs/floorp.nix b/global-configs/floorp.nix index ed64b29..8c501b0 100644 --- a/global-configs/floorp.nix +++ b/global-configs/floorp.nix @@ -44,308 +44,12 @@ in { settings.${firefox-addons.adnauseam.addonId} = { force = true; settings = { - userSettings = { - dntDomains = [ - "00px.net" - "1lida.org" - "99designs.community" - "abzugame.com" - "addsearch.com" - "adiddas.biz" - "againandagain.biz" - "aggrocrab.com" - "ajile.life" - "alexandraklobouk.com" - "algolia.net" - "algolianet.com" - "aliceyliang.com" - "almestal.com" - "android-stor.ru" - "androidstores.ru" - "anidb.info" - "anidb.net" - "appbox.co" - "appboxes.co" - "askmebefore.biz" - "assortedscans.com" - "attrition.org" - "babysits.ar" - "babysits.co" - "babysits.com" - "babysits.com.br" - "babysits.es" - "babysits.fr" - "barajind.top" - "bebelow.top" - "bestgore.fun" - "bloat.cat" - "bmusicforyou2.com" - "bolt.io" - "brodownload7s.com" - "brodownload8s.com" - "brodownload9s.com" - "brovideos4s.site" - "broworker10s.com" - "broworker12s.com" - "broworker13s.com" - "broworker6s.com" - "broworker8s.com" - "broworker9s.com" - "broworkers5s.com" - "brpexpert.ru" - "brpush2.shop" - "btopwebsites.com" - "burnermail.io" - "butdoesitfloat.com" - "bvideoforyou.com" - "cadence.moe" - "campaignnow.co" - "cashmachines.biz" - "chilloutforus.com" - "christienmeindertsma.com" - "clicktimes.bid" - "clip.place" - "codepoints.net" - "conf.tube" - "cs14.biz" - "cs15.biz" - "cs22.biz" - "cs23.biz" - "cs25.biz" - "ct11.biz" - "ctcodein.biz" - "ctwork01.biz" - "dabuttonfactory.com" - "dao01.bid" - "dao01.biz" - "ddg.gg" - "deathfromabove1979.com" - "decagon.ai" - "deidamiapele.com" - "di10.biz" - "diode.zone" - "avatars.discourse.org" - "try.discourse.org" - "dm06.biz" - "dm09.biz" - "dm10.biz" - "dm11.biz" - "dm12.biz" - "do-not-tracker.org" - "donttrack.us" - "dubbningshemsidan.se" - "duck.com" - "duckduckgo.com" - "duckduckgo.de" - "dungbanshee.top" - "datawrapper.dwcdn.net" - "echostreamz.com" - "edpresenfer.com" - "act.eff.org" - "eff.org" - "eplica-cdn.is" - "ericchakeen.com" - "f.dog" - "favelapainting.com" - "filelive.top" - "fileload.site" - "filesbest.pro" - "filesload.site" - "firstpartysimulator.net" - "firstpartysimulator.org" - "fixittoday.biz" - "flitsmeisterapp.com" - "framatube.org" - "frankerfacez.com" - "freeradical.zone" - "gaaga.nl" - "gamingonlinux.com" - "gandi.fr" - "gandi.net" - "gecius.de" - "gegenberlin.com" - "gegenstimme.tv" - "gmunk.com" - "goredb.com" - "goresee.com" - "gps-data-team.com" - "grapheneos.org" - "happymove.biz" - "hiorbye.de" - "hollymediaa.biz" - "hotservers.net" - "howtoons.com" - "ilgmforum.com" - "impermanent.digital" - "innoreader.com" - "innovativeadserver.com" - "inoreader.com" - "ipp-meredith.com" - "ironfoxoss.org" - "iwascoding.com" - "iwascoding.de" - "jms1.net" - "joshuadavis.com" - "jupresear.ch" - "kolektiva.media" - "kursyvalut.info" - "letmenowme.biz" - "lex-forum.net" - "lida.in" - "lin01.bid" - "lin01.biz" - "lin02.bid" - "lin02.biz" - "loggia.com.br" - "lovehoneyforum.com" - "loveornotbad.biz" - "luuming.com" - "magicsubb.com" - "magictt1.com" - "makertube.net" - "mcappo.org" - "cdn-client.medium.com" - "cdn-images-1.medium.com" - "glyph.medium.com" - "miro.medium.com" - "meredithbardo.com" - "mos3.biz" - "news2day.me" - "ngo-online.de" - "nopattern.com" - "oddte.ch" - "op00.biz" - "op02.biz" - "op04.biz" - "openimp.net" - "p.lu" - "padsdn.com" - "peertube.stream" - "peertube.tv" - "peertube.uno" - "peertube.wtf" - "perfectdayforus.com" - "petrohradskakolektiv.com" - "phijkchu.com" - "pianosnyc.com" - "pieterhugo.com" - "piovenefabi.it" - "planetgong.co.uk" - "pn11.biz" - "pn12.biz" - "poast.tv" - "poidirectory.com" - "pony.tube" - "postmarketos.org" - "powerain.biz" - "pp04.biz" - "pp10.biz" - "pp11.biz" - "pp25.biz" - "presssnews.biz" - "pushadvert.bid" - "qqqqdesign.com" - "rainbowhorse.top" - "rassilkatest.ru" - "readthedocs.org" - "realityripple.com" - "recessed.space" - "redytowin.biz" - "romain-laurent.com" - "rtfd.io" - "rtfd.org" - "s10a.biz" - "s11a.biz" - "s12a.biz" - "s13a.biz" - "s14a.biz" - "s16a.biz" - "s17a.biz" - "s18a.biz" - "s19a.biz" - "sagemedia.ca" - "se07.biz" - "se19.biz" - "serch24.biz" - "sevenmeters.biz" - "share.tube" - "shopblt.com" - "similarworlds.com" - "skeptikon.fr" - "skydive-club.com" - "slate.app" - "slate.org" - "sovendus.com" - "spacecollective.org" - "spectra.video" - "stadygogo.biz" - "starka.st" - "start365.info" - "statad.ru" - "state51.com" - "stitchfiddle.com" - "subsworker.bid" - "superfamous.com" - "swebbtube.se" - "swebbtv.se" - "swimsunleisure.com" - "t-nation.com" - "tailstories.biz" - "tapcloud03.biz" - "tappara.co" - "teodormoisescu.com" - "theanimenetwork.com" - "theobituaryproject.org" - "thephilosophyforum.com" - "thephotographersunion.com" - "theplattform.net" - "thewrong.org" - "thomas-mcbrien.com" - "tilvids.com" - "tinariwen.com" - "tinkerbetter.tube" - "travis-ci.community" - "tt03.biz" - "tt07.biz" - "tt08.biz" - "tt13.biz" - "tt14.biz" - "twittercommunity.com" - "unurth.com" - "unusual.la" - "usizy.com" - "vectorlogo.zone" - "viewing.nyc" - "virtocommerce.org" - "vnchich.vip" - "vpnclick.biz" - "w-news.biz" - "warszawawpigulce.pl" - "washedout.net" - "waterpoloexchange.com" - "whiteclick.biz" - "widemus.de" - "wirtube.de" - "workerconnect.biz" - "wtfayla.net" - "youngjerks.com" - "zcode17.com" - "zcode18.com" - "zohup.net" - "zpgetworker11.com" - "zsiteforyou.com" - "zworker11.me" - "zworker17.com" - "zworker18.com" - ]; - "firstInstall" = false; - "hidingAds" = true; - "clickingAds" = true; - "blockingMalware" = true; - "disableClickingForDNT" = true; - "clickProbability" = 0.75; - "importedLists" = []; - }; + "firstInstall" = false; + "hidingAds" = true; + "clickingAds" = true; + "blockingMalware" = true; + "disableClickingForDNT" = true; + "clickProbability" = 0.75; selectedFilterLists = [ "user-filters" "adnauseam-filters" @@ -379,8 +83,18 @@ in { search = { force = true; - default = "ddg"; + default = "ddg-noai"; engines = { + ddg-noai = { + name = "DuckDuckGo No-AI"; + urls = [ + { + template = "https://noai.duckduckgo.com/?q={searchTerms}"; + } + ]; + icon = "https://duckduckgo.com/favicon.ico"; + definedAliases = ["@noai"]; + }; nixpkgs = { name = "nixpkgs packages"; urls = [ diff --git a/global-configs/niri.nix b/global-configs/niri.nix new file mode 100644 index 0000000..cbd5118 --- /dev/null +++ b/global-configs/niri.nix @@ -0,0 +1,580 @@ +{ + pkgs, + lib, + ... +}: { + programs.niri = { + enable = true; + package = pkgs.niri-stable; + settings = { + spawn-at-startup = [ + { argv = ["noctalia-shell"]; } + ]; + + hotkey-overlay.skip-at-startup = true; + + cursor = { + size = 22; + theme = "Bibata-Modern-Ice"; + }; + + input.keyboard.xkb.layout = "gb"; + input.mouse.accel-speed = 1.0; + input.touchpad = { + tap = true; + dwt = true; + natural-scroll = true; + click-method = "clickfinger"; + }; + + binds = { + "Mod+Space".action.toggle-overview = {}; + "Mod+Shift+E".action.quit = {}; + "Mod+F".action.fullscreen-window = {}; + "Mod+Return".action.spawn = "kitty"; + "Mod+Q".action.close-window = {}; + "Mod+E".action.spawn = "nautilus"; + "Mod+B".action.spawn = "floorp"; + "Mod+D".action.spawn = "fuzzel"; + "Mod+Z".action.spawn = ["kitty" "nh" "os" "switch" "./nixos"]; + "Mod+TouchpadScrollLeft".action.focus-column-left = {}; + "Mod+TouchpadScrollRight".action.focus-column-right = {}; + "Mod+TouchpadScrollUp".action.focus-workspace-up = {}; + "Mod+TouchpadScrollDown".action.focus-workspace-down = {}; + "Mod+Left".action.focus-column-left = {}; + "Mod+Shift+Left".action.move-column-left = {}; + "Mod+Right".action.focus-column-right = {}; + "Mod+Shift+Right".action.move-column-right = {}; + "Mod+Up".action.focus-workspace-up = {}; + "Mod+Shift+Up".action.move-window-to-workspace-up = {}; + "Mod+Down".action.focus-workspace-down = {}; + "Mod+Shift+Down".action.move-window-to-workspace-down = {}; + "XF86MonBrightnessUp".action.spawn = ["brightnessctl" "set" "+5%"]; + "XF86MonBrightnessDown".action.spawn = ["brightnessctl" "set" "5%-"]; + "XF86AudioRaiseVolume".action.spawn = ["noctalia-shell" "msg" "volume" "increase"]; + "XF86AudioLowerVolume".action.spawn = ["noctalia-shell" "msg" "volume" "decrease"]; + }; + + prefer-no-csd = true; + + layout = { + gaps = 16; + struts.left = 64; + struts.right = 64; + + always-center-single-column = true; + + empty-workspace-above-first = true; + + # fog of war + focus-ring = { + enable = true; + width = 2.5; + active.color = "#b2b2b2d6"; + }; + + # border.active.gradient = { + # from = "red"; + # to = "blue"; + # in' = "oklch shorter hue"; + # }; + + shadow.enable = true; + + # default-column-display = "tabbed"; + + tab-indicator = { + position = "top"; + gaps-between-tabs = 10; + + # hide-when-single-tab = true; + # place-within-column = true; + + # active.color = "red"; + }; + }; + + overview.zoom = 0.5; + + window-rules = [ + { + draw-border-with-background = false; + geometry-corner-radius = let + n = 10.0; + in { + top-right = n; + top-left = n; + bottom-left = n; + bottom-right = n; + }; + clip-to-geometry = true; + } + { + matches = [ + { + app-id = "^floorp$"; + } + { + app-id = "^code$"; + } + ]; + default-column-width.proportion = 1.0; + } + { + matches = [ + { + app-id = "^kitty$"; + } + ]; + default-column-width.proportion = 0.66; + } + ]; + + debug = { + honor-xdg-activation-with-invalid-serial = {}; + }; + + xwayland-satellite.path = "${lib.getExe pkgs.xwayland-satellite-unstable}"; + }; + }; + + programs.noctalia-shell = { + enable = true; + settings = { + settingsVersion = 0; + bar = { + barType = "simple"; + position = "top"; + monitors = [ ]; + density = "default"; + showOutline = false; + showCapsule = true; + capsuleOpacity = 1; + backgroundOpacity = 0.93; + useSeparateOpacity = false; + floating = false; + marginVertical = 4; + marginHorizontal = 4; + frameThickness = 8; + frameRadius = 12; + outerCorners = true; + hideOnOverview = false; + displayMode = "always_visible"; + autoHideDelay = 500; + autoShowDelay = 150; + widgets = { + left = [ + { + id = "Clock"; + formatHorizontal = "h:mm A"; + } + { + id = "SystemMonitor"; + } + { + id = "MediaMini"; + scrollingMode="never"; + useFixedWidth = false; + maxWidth = 900; + } + ]; + center = [ + { + id = "Workspace"; + } + ]; + right = [ + { + id = "Tray"; + } + { + id = "NotificationHistory"; + } + { + id = "Brightness"; + } + { + id = "Battery"; + displayMode="alwaysShow"; + } + { + id = "Volume"; + displayMode="alwaysShow"; + } + { + id = "Bluetooth"; + displayMode="alwaysShow"; + } + { + id = "ControlCenter"; + useDistroLogo = true; + } + ]; + }; + screenOverrides = [ ]; + }; + general = { + avatarImage = ""; + dimmerOpacity = 0.2; + showScreenCorners = true; + forceBlackScreenCorners = false; + scaleRatio = 1; + radiusRatio = 1; + iRadiusRatio = 1; + boxRadiusRatio = 1; + screenRadiusRatio = 1; + animationSpeed = 1.25; + animationDisabled = false; + compactLockScreen = false; + lockOnSuspend = true; + showSessionButtonsOnLockScreen = true; + showHibernateOnLockScreen = false; + enableShadows = true; + shadowDirection = "bottom_right"; + shadowOffsetX = 1; + shadowOffsetY = 1; + language = ""; + allowPanelsOnScreenWithoutBar = true; + showChangelogOnStartup = false; + telemetryEnabled = false; + enableLockScreenCountdown = true; + lockScreenCountdownDuration = 10000; + autoStartAuth = false; + allowPasswordWithFprintd = false; + }; + ui = { + fontDefault = ""; + fontFixed = ""; + fontDefaultScale = 1; + fontFixedScale = 1; + tooltipsEnabled = true; + panelBackgroundOpacity = 0.93; + panelsAttachedToBar = true; + settingsPanelMode = "attached"; + wifiDetailsViewMode = "grid"; + bluetoothDetailsViewMode = "grid"; + networkPanelView = "wifi"; + bluetoothHideUnnamedDevices = false; + boxBorderEnabled = false; + }; + location = { + name = "London"; + weatherEnabled = true; + weatherShowEffects = true; + useFahrenheit = false; + use12hourFormat = false; + showWeekNumberInCalendar = false; + showCalendarEvents = true; + showCalendarWeather = true; + analogClockInCalendar = false; + firstDayOfWeek = -1; + hideWeatherTimezone = false; + hideWeatherCityName = true; + }; + calendar = { + cards = [ + { + enabled = true; + id = "calendar-header-card"; + } + { + enabled = true; + id = "calendar-month-card"; + } + { + enabled = true; + id = "weather-card"; + } + ]; + }; + wallpaper = { + enabled = true; + overviewEnabled = true; + directory = "/home/grey/nixos/assets/wallpapers"; + monitorDirectories = [ ]; + enableMultiMonitorDirectories = false; + showHiddenFiles = true; + viewMode = "single"; + setWallpaperOnAllMonitors = true; + fillMode = "crop"; + fillColor = "#000000"; + useSolidColor = true; + solidColor = "#1a1a2e"; + automationEnabled = false; + wallpaperChangeMode = "random"; + randomIntervalSec = 300; + transitionDuration = 1500; + transitionType = "random"; + transitionEdgeSmoothness = 0.05; + panelPosition = "follow_bar"; + hideWallpaperFilenames = false; + useWallhaven = false; + wallhavenQuery = ""; + wallhavenSorting = "relevance"; + wallhavenOrder = "desc"; + wallhavenCategories = "111"; + wallhavenPurity = "100"; + wallhavenRatios = ""; + wallhavenApiKey = ""; + wallhavenResolutionMode = "atleast"; + wallhavenResolutionWidth = ""; + wallhavenResolutionHeight = ""; + sortOrder = "name"; + }; + appLauncher = { + enableClipboardHistory = false; + autoPasteClipboard = false; + enableClipPreview = true; + clipboardWrapText = true; + clipboardWatchTextCommand = "wl-paste --type text --watch cliphist store"; + clipboardWatchImageCommand = "wl-paste --type image --watch cliphist store"; + position = "center"; + pinnedApps = [ ]; + useApp2Unit = false; + sortByMostUsed = true; + terminalCommand = "alacritty -e"; + customLaunchPrefixEnabled = false; + customLaunchPrefix = ""; + viewMode = "list"; + showCategories = true; + iconMode = "tabler"; + showIconBackground = false; + enableSettingsSearch = true; + enableWindowsSearch = true; + ignoreMouseInput = false; + screenshotAnnotationTool = ""; + }; + controlCenter = { + position = "close_to_bar_button"; + diskPath = "/"; + shortcuts = { + left = [ + { + id = "Network"; + } + { + id = "Bluetooth"; + } + { + id = "WallpaperSelector"; + } + { + id = "NoctaliaPerformance"; + } + ]; + right = [ + { + id = "Notifications"; + } + { + id = "PowerProfile"; + } + { + id = "KeepAwake"; + } + { + id = "NightLight"; + } + ]; + }; + cards = [ + { + enabled = true; + id = "profile-card"; + } + { + enabled = true; + id = "shortcuts-card"; + } + { + enabled = true; + id = "audio-card"; + } + { + enabled = false; + id = "brightness-card"; + } + { + enabled = true; + id = "weather-card"; + } + { + enabled = true; + id = "media-sysmon-card"; + } + ]; + }; + systemMonitor = { + cpuWarningThreshold = 80; + cpuCriticalThreshold = 90; + tempWarningThreshold = 80; + tempCriticalThreshold = 90; + gpuWarningThreshold = 80; + gpuCriticalThreshold = 90; + memWarningThreshold = 80; + memCriticalThreshold = 90; + swapWarningThreshold = 80; + swapCriticalThreshold = 90; + diskWarningThreshold = 80; + diskCriticalThreshold = 90; + diskAvailWarningThreshold = 20; + diskAvailCriticalThreshold = 10; + cpuPollingInterval = 1000; + gpuPollingInterval = 3000; + enableDgpuMonitoring = false; + memPollingInterval = 1000; + diskPollingInterval = 30000; + networkPollingInterval = 1000; + loadAvgPollingInterval = 3000; + useCustomColors = false; + warningColor = ""; + criticalColor = ""; + externalMonitor = "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor"; + }; + dock = { + enabled = false; + position = "bottom"; + displayMode = "auto_hide"; + backgroundOpacity = 1; + floatingRatio = 1; + size = 1; + onlySameOutput = true; + monitors = [ ]; + pinnedApps = [ ]; + colorizeIcons = false; + pinnedStatic = false; + inactiveIndicators = false; + deadOpacity = 0.6; + animationSpeed = 1; + }; + network = { + wifiEnabled = true; + bluetoothRssiPollingEnabled = false; + bluetoothRssiPollIntervalMs = 10000; + wifiDetailsViewMode = "grid"; + bluetoothDetailsViewMode = "grid"; + bluetoothHideUnnamedDevices = false; + }; + sessionMenu = { + enableCountdown = true; + countdownDuration = 10000; + position = "center"; + showHeader = true; + largeButtonsStyle = true; + largeButtonsLayout = "single-row"; + showNumberLabels = true; + powerOptions = [ + { + action = "lock"; + enabled = false; + } + { + action = "suspend"; + enabled = true; + } + { + action = "hibernate"; + enabled = false; + } + { + action = "reboot"; + enabled = true; + } + { + action = "logout"; + enabled = false; + } + { + action = "shutdown"; + enabled = true; + } + ]; + }; + notifications = { + enabled = true; + monitors = [ ]; + location = "top_right"; + overlayLayer = true; + backgroundOpacity = 1; + respectExpireTimeout = false; + lowUrgencyDuration = 3; + normalUrgencyDuration = 8; + criticalUrgencyDuration = 15; + enableKeyboardLayoutToast = true; + saveToHistory = { + low = true; + normal = true; + critical = true; + }; + sounds = { + enabled = false; + volume = 0.5; + separateSounds = false; + criticalSoundFile = ""; + normalSoundFile = ""; + lowSoundFile = ""; + excludedApps = "discord,firefox,chrome,chromium,edge"; + }; + enableMediaToast = false; + }; + osd = { + enabled = true; + location = "top_right"; + autoHideMs = 2000; + overlayLayer = true; + backgroundOpacity = 1; + enabledTypes = [ + 0 + 1 + 2 + ]; + monitors = [ ]; + }; + audio = { + volumeStep = 5; + volumeOverdrive = false; + cavaFrameRate = 30; + visualizerType = "linear"; + mprisBlacklist = [ ]; + preferredPlayer = ""; + volumeFeedback = false; + }; + brightness = { + brightnessStep = 5; + enforceMinimum = true; + enableDdcSupport = false; + }; + colorSchemes = { + useWallpaperColors = false; + predefinedScheme = "Nord"; + darkMode = true; + monitorForColors = ""; + }; + nightLight = { + enabled = true; + forced = false; + autoSchedule = true; + nightTemp = "5000"; + dayTemp = "6250"; + manualSunrise = "06:30"; + manualSunset = "18:30"; + }; + hooks = { + enabled = false; + wallpaperChange = ""; + darkModeChange = ""; + screenLock = ""; + screenUnlock = ""; + performanceModeEnabled = ""; + performanceModeDisabled = ""; + startup = ""; + session = ""; + }; + desktopWidgets = { + enabled = false; + gridSnap = false; + monitorWidgets = [ ]; + }; + }; + }; +} \ No newline at end of file diff --git a/global-configs/plasma.nix b/global-configs/plasma.nix index 1d7842f..2cf88d6 100644 --- a/global-configs/plasma.nix +++ b/global-configs/plasma.nix @@ -4,7 +4,6 @@ ... }: { home.packages = [ - pkgs.bibata-cursors pkgs.papirus-icon-theme pkgs.kdePackages.oxygen pkgs.kdePackages.oxygen-sounds diff --git a/global-configs/vscode.nix b/global-configs/vscode.nix new file mode 100644 index 0000000..80cd65f --- /dev/null +++ b/global-configs/vscode.nix @@ -0,0 +1,22 @@ +{ + config, + pkgs, + ... +}: { + programs.vscode = { + enable = true; + profiles.default = { + extensions = with pkgs.vscode-extensions; [ + bbenoist.nix + ]; + enableUpdateCheck = false; + userSettings = { + "[nix]" = { + "editor.tabSize" = 2; + }; + "chat.disableAIFeatures" = true; + "workbench.welcomePage.walkthroughs.openOnInstall" = false; + }; + }; + }; +} diff --git a/global-home.nix b/global-home.nix index bac1c1e..eb2a863 100644 --- a/global-home.nix +++ b/global-home.nix @@ -6,6 +6,10 @@ }: { home.stateVersion = specialArgs.stateVersion; + home.packages = [ + pkgs.bibata-cursors + ]; + programs.git = { enable = true; diff --git a/hosts/kitagawa/default.nix b/hosts/kitagawa/default.nix index db15032..6c1ade6 100644 --- a/hosts/kitagawa/default.nix +++ b/hosts/kitagawa/default.nix @@ -15,8 +15,9 @@ in { "${modules-dir}/nh.nix" "${modules-dir}/home-manager.nix" "${modules-dir}/zsh.nix" - "${modules-dir}/display-managers/gdm.nix" + "${modules-dir}/display-managers/lightdm.nix" "${modules-dir}/desktop-environments/gnome.nix" + "${modules-dir}/window-managers/niri.nix" ]; # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. diff --git a/hosts/kitagawa/hardware-configuration.nix b/hosts/kitagawa/hardware-configuration.nix new file mode 100644 index 0000000..c39cd90 --- /dev/null +++ b/hosts/kitagawa/hardware-configuration.nix @@ -0,0 +1,45 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "uas" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/b17296df-a72e-4b9d-a3b6-54fc0c97c685"; + fsType = "btrfs"; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/b17296df-a72e-4b9d-a3b6-54fc0c97c685"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/b17296df-a72e-4b9d-a3b6-54fc0c97c685"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/68F7-4D8F"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/e85559e0-a039-4178-929a-8c5ec0328b64"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/kitagawa/home.nix b/hosts/kitagawa/home.nix index 878f32e..0234dbb 100644 --- a/hosts/kitagawa/home.nix +++ b/hosts/kitagawa/home.nix @@ -12,13 +12,15 @@ in { "${global-configs}/fastfetch.nix" "${global-configs}/zsh.nix" "${global-configs}/kitty.nix" + "${global-configs}/floorp.nix" + "${global-configs}/vscode.nix" + "${global-configs}/niri.nix" ]; home.packages = with pkgs; [ equibop obsidian github-desktop - vscode thunderbird spotify jetbrains.clion @@ -26,4 +28,25 @@ in { proton-vpn ente-auth ]; + + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; + + gtk = { + enable = true; + colorScheme = "dark"; + theme = { + name = "Adwaita-dark"; + package = pkgs.gnome-themes-extra; + }; + }; + + qt = { + enable = true; + platformTheme.name = "adwaita"; + style.name = "adwaita-dark"; + }; } diff --git a/modules/display-managers/lightdm.nix b/modules/display-managers/lightdm.nix new file mode 100644 index 0000000..a25481a --- /dev/null +++ b/modules/display-managers/lightdm.nix @@ -0,0 +1,11 @@ +{ + config, + pkgs, + ... +}: { + services.xserver.enable = true; + services.xserver.displayManager.lightdm = { + enable = true; + greeters.gtk.enable = true; + }; +} \ No newline at end of file diff --git a/modules/home-manager.nix b/modules/home-manager.nix index 6383b8e..6a24c0c 100644 --- a/modules/home-manager.nix +++ b/modules/home-manager.nix @@ -10,7 +10,9 @@ home-manager.backupFileExtension = ".bak"; home-manager.sharedModules = [ - inputs.plasma-manager.homeManagerModules.plasma-manager + inputs.plasma-manager.homeModules.plasma-manager inputs.zen-browser.homeModules.beta + inputs.niri.homeModules.niri + inputs.noctalia.homeModules.default ]; } diff --git a/modules/window-managers/niri.nix b/modules/window-managers/niri.nix new file mode 100644 index 0000000..6c485e3 --- /dev/null +++ b/modules/window-managers/niri.nix @@ -0,0 +1,24 @@ +{ + config, + pkgs, + inputs, + lib, + ... +}: { + nixpkgs.overlays = [ inputs.niri.overlays.niri ]; + + programs.niri.enable = true; + + environment.systemPackages = with pkgs; [ + inputs.noctalia.packages.${system}.default + wl-clipboard + wayland-utils + libsecret + cage + fuzzel + mako + gamescope + xwayland-satellite-unstable + brightnessctl + ]; +} \ No newline at end of file