diff --git a/common/terminal.nix b/common/terminal.nix index 6bff4af..72ecf45 100644 --- a/common/terminal.nix +++ b/common/terminal.nix @@ -2,7 +2,6 @@ lib, pkgs, inputs, - getFlakePkg', ... }: let @@ -37,25 +36,18 @@ in "p" = "ps $argv | culr"; "mnt" = "mount | culr"; }; - interactiveShellInit = - let - comma = lib.getExe' (getFlakePkg' inputs.nix-index-database "comma-with-db") "comma"; - in - '' - function fish_title - set -q argv[1]; or set argv fish - echo (fish_prompt_pwd_dir_length=100 prompt_pwd): $argv; - end - function fish_command_not_found - set args (count $argv) - if [ $args -gt 1 ] - ${comma} "$argv[1]" "$argv[2..]" - else - ${comma} "$argv[1]" - end - end - ${./rice/header.sh} - ''; + interactiveShellInit = '' + function fish_title + set -q argv[1]; or set argv fish + echo (fish_prompt_pwd_dir_length=100 prompt_pwd): $argv; + end + function fish_command_not_found + ${ + lib.getExe inputs.nix-index-database.packages.${pkgs.system}.comma-with-db + } "$argv[1]" "$argv[2..]" + end + ${./rice/header.sh} + ''; }; programs.command-not-found.enable = false; programs.zoxide = { diff --git a/flake.lock b/flake.lock index 3a72527..fb62bba 100644 --- a/flake.lock +++ b/flake.lock @@ -922,6 +922,22 @@ "type": "github" } }, + "nixpkgs_14": { + "locked": { + "lastModified": 1755186698, + "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_15": { "locked": { "lastModified": 1755186698, diff --git a/graphical/apps-meta.nix b/graphical/apps-meta.nix deleted file mode 100644 index 9ee0599..0000000 --- a/graphical/apps-meta.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - lib, - config, - getPkgs, - ... -}: -{ - options.apps = lib.mkOption { - type = lib.types.attrsOf lib.types.package; - default = { }; - }; - config.user.packages = getPkgs config.apps; -} diff --git a/graphical/audio-control.nix b/graphical/audio-control.nix index 870503c..b196b0a 100644 --- a/graphical/audio-control.nix +++ b/graphical/audio-control.nix @@ -1,12 +1,16 @@ { pkgs, lib, + getPkgs, ... }: { - apps = { - volumeOSD = pkgs.avizo; - inherit (pkgs) playerctl; + user.packages = getPkgs { + inherit (pkgs) + avizo + playerctl + ; }; + quick.services."avizo-service" = "${lib.getExe' pkgs.avizo "avizo-service"}"; } diff --git a/graphical/browser.nix b/graphical/browser.nix index f91d12b..8bb6da4 100644 --- a/graphical/browser.nix +++ b/graphical/browser.nix @@ -1,95 +1,123 @@ { - lib, pkgs, - scope, ... }: -let - officialAddon = name: { - install_url = lib.strings.concatStrings [ - "https://addons.mozilla.org/firefox/downloads/latest/" - name - "/latest.xpi" +{ + user.packages = [ pkgs.chromium ]; + programs.chromium = { + enable = true; + homepageLocation = "about:blank"; + extraOpts = { + "BrowserSignin" = 0; + "SyncDisabled" = true; + "DriveDisabled" = true; + "AIModeSettings" = 1; + "GenAiDefaultSettings" = 1; + "SafeBrowsingProtectionLevel" = 0; + "DeviceAutoUpdateDisabled" = true; + "PasswordManagerEnabled" = false; + "SpellcheckEnabled" = true; + "SpellcheckLanguage" = [ + "en-AU" + ]; + "CloudReportingEnabled" = false; + "GoogleWorkspaceCloudUpload" = "disallowed"; + "MicrosoftOfficeCloudUpload" = "disallowed"; + }; + extensions = [ + "ddkjiahejlhfcafbddmgiahcphecmpfh" # ublock origin lite + "eimadpbcbfnmbkopoojfekhnkhdbieeh" # dark reader + "hfjbmagddngcpeloejdejnfgbamkjaeg" # vimium c + "bkmmlbllpjdpgcgdohbaghfaecnddhni" # webrtc protect + "nngceckbapebfimnlniiiahkandclblb" # bitwarden + "dhdgffkkebhmkfjojejmpbldmpobfkfo" ]; - installation_mode = "force_installed"; }; - lock-false = { - Value = false; - Status = "locked"; - }; - lock-true = { - Value = true; - Status = "locked"; - }; -in -scope "programs.firefox" { - enable = true; - - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - DisablePocket = true; - DisableFirefoxAccounts = true; - DisableAccounts = true; - DisableFirefoxScreenshots = true; - DisableAppUpdate = true; - DisablePrivateBrowsing = true; - DontCheckDefaultBrowser = true; - - OverrideFirstRunPage = ""; - OverridePostUpdatePage = ""; - DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab" - DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" - SearchBar = "unified"; # alternative: "separate" - - ExtensionSettings = { - "*".installation_mode = "blocked"; # blocks all addons except the ones specified below - "uBlock0@raymondhill.net" = officialAddon "ublock-origin"; - "addon@darkreader.org" = officialAddon "darkreader"; - "vimium-c@gdh1995.cn" = officialAddon "vimium-c"; - "{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes"; - "jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc"; - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger"; - }; - - Preferences = { - "extensions.pocket.enabled" = lock-false; - "extensions.screenshots.disabled" = lock-true; - "browser.topsites.contile.enabled" = lock-false; - "browser.formfill.enable" = lock-false; - "browser.search.suggest.enabled" = lock-false; - "browser.search.suggest.enabled.private" = lock-false; - "browser.urlbar.suggest.searches" = lock-false; - "browser.urlbar.showSearchSuggestionsFirst" = lock-false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; - "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; - "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; - "browser.newtabpage.activity-stream.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; - }; - }; - - # profiles.default = { - # id = 0; - # name = "Default"; - # settings = { - # "browser.startup.homepage" = "about:blank"; - # "browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true; - # "browser.policies.applied" = true; - # "widget.use-xdg-desktop-portal.file-picker" = 1; - # "widget.use-xdg-desktop-portal.mime-handler" = 1; - # }; - # }; } -// (scope "apps.browser" <| pkgs.firefox) -# ) +# let +# officialAddon = name: { +# install_url = lib.strings.concatStrings [ +# "https://addons.mozilla.org/firefox/downloads/latest/" +# name +# "/latest.xpi" +# ]; +# installation_mode = "force_installed"; +# }; +# lock-false = { +# Value = false; +# Status = "locked"; +# }; +# lock-true = { +# Value = true; +# Status = "locked"; +# }; +# in +# scope "hm.programs.firefox" { +# enable = true; + +# policies = { +# DisableTelemetry = true; +# DisableFirefoxStudies = true; +# EnableTrackingProtection = { +# Value = true; +# Locked = true; +# Cryptomining = true; +# Fingerprinting = true; +# }; +# DisablePocket = true; +# DisableFirefoxAccounts = true; +# DisableAccounts = true; +# DisableFirefoxScreenshots = true; +# DisableAppUpdate = true; +# DisablePrivateBrowsing = true; +# DontCheckDefaultBrowser = true; + +# OverrideFirstRunPage = ""; +# OverridePostUpdatePage = ""; +# DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab" +# DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" +# SearchBar = "unified"; # alternative: "separate" + +# ExtensionSettings = { +# "*".installation_mode = "blocked"; # blocks all addons except the ones specified below +# "uBlock0@raymondhill.net" = officialAddon "ublock-origin"; +# "addon@darkreader.org" = officialAddon "darkreader"; +# "vimium-c@gdh1995.cn" = officialAddon "vimium-c"; +# "{b86e4813-687a-43e6-ab65-0bde4ab75758}" = officialAddon "localcdn-fork-of-decentraleyes"; +# "jid1-5Fs7iTLscUaZBgwr@jetpack" = officialAddon "happy-bonobo-disable-webrtc"; +# "{446900e4-71c2-419f-a6a7-df9c091e268b}" = officialAddon "bitwarden-password-mananger"; +# }; + +# Preferences = { +# "extensions.pocket.enabled" = lock-false; +# "extensions.screenshots.disabled" = lock-true; +# "browser.topsites.contile.enabled" = lock-false; +# "browser.formfill.enable" = lock-false; +# "browser.search.suggest.enabled" = lock-false; +# "browser.search.suggest.enabled.private" = lock-false; +# "browser.urlbar.suggest.searches" = lock-false; +# "browser.urlbar.showSearchSuggestionsFirst" = lock-false; +# "browser.newtabpage.activity-stream.feeds.section.topstories" = lock-false; +# "browser.newtabpage.activity-stream.feeds.snippets" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = lock-false; +# "browser.newtabpage.activity-stream.section.highlights.includeVisited" = lock-false; +# "browser.newtabpage.activity-stream.showSponsored" = lock-false; +# "browser.newtabpage.activity-stream.system.showSponsored" = lock-false; +# "browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false; +# }; +# }; + +# profiles.default = { +# id = 0; +# name = "Default"; +# settings = { +# "browser.startup.homepage" = "about:blank"; +# "browser.shell.didSkipDefaultBrowserCheckOnFirstRun" = true; +# "browser.policies.applied" = true; +# "widget.use-xdg-desktop-portal.file-picker" = 1; +# "widget.use-xdg-desktop-portal.mime-handler" = 1; +# }; +# }; +# } diff --git a/graphical/desktop/niri-config.kdl b/graphical/desktop/niri-config.kdl index 96b46b0..b11e560 100755 --- a/graphical/desktop/niri-config.kdl +++ b/graphical/desktop/niri-config.kdl @@ -71,9 +71,9 @@ binds { Mod+Ctrl+K { move-window-up; } Mod+Ctrl+L { move-column-right-or-to-monitor-right; } Mod+D { spawn "qs" "ipc" "call" "launch" "toggle"; } - Mod+E { spawn "pcmanfm"; } + Mod+E { spawn "nautilus"; } Mod+Equal { spawn "bitwarden"; } - Mod+F { spawn "firefox"; } + Mod+F { spawn "chromium"; } Mod+H { focus-column-left; } Mod+J { focus-window-down; } Mod+K { focus-window-up; } @@ -105,4 +105,4 @@ window-rule { geometry-corner-radius 0.000000 10.000000 0.000000 10.000000 clip-to-geometry true } -xwayland-satellite { path "/nix/store/dqljjf1m5h6jscfgvc7q9kkn00mx0myj-xwayland-satellite-unstable-2025-08-07-e0d1dad/bin/xwayland-satellite"; } +// xwayland-satellite { path "/nix/store/dqljjf1m5h6jscfgvc7q9kkn00mx0myj-xwayland-satellite-unstable-2025-08-07-e0d1dad/bin/xwayland-satellite"; } diff --git a/graphical/dev.nix b/graphical/dev.nix index 9cbf4fb..2a9a995 100644 --- a/graphical/dev.nix +++ b/graphical/dev.nix @@ -1,44 +1,41 @@ { - pkgs, localPkgs, scope, ... }: scope "user" { - programs = { - direnv = { - enable = true; - integrations.fish.enable = true; - }; - - git = { - enable = true; - settings = { - user = { - name = "atagen"; - email = "boss@atagen.co"; - }; - # merge = { - # conflictstyle = "diff3"; - # }; - init = { - defaultBranch = "main"; - }; - url = { - "https://github.com/".insteadOf = "github:"; - "https://git.atagen.co/".insteadOf = "atagen:"; - "https://codeberg.org/".insteadOf = "codeberg:"; - }; - credential.helper = "rbw"; - }; - integrations = { - difftastic.enable = true; - }; - }; - }; packages = [ localPkgs.rbw-helper - pkgs.direnv ]; + + programs.direnv = { + enable = true; + integrations.fish.enable = true; + }; + + programs.git = { + enable = true; + settings = { + user = { + name = "atagen"; + email = "boss@atagen.co"; + }; + merge = { + conflictstyle = "diff3"; + }; + init = { + defaultBranch = "main"; + }; + url = { + "https://github.com/".insteadOf = "github:"; + "https://git.atagen.co/".insteadOf = "atagen:"; + }; + credential.helper = "rbw"; + }; + integrations = { + difftastic.enable = true; + }; + }; + } diff --git a/graphical/documents.nix b/graphical/documents.nix index 31f2f88..8e6b270 100644 --- a/graphical/documents.nix +++ b/graphical/documents.nix @@ -1,14 +1,16 @@ { pkgs, scope, + getPkgs, ... }: -with pkgs; -scope "apps" { - officeSuite = libreoffice; - mailClient = thunderbird; - noteTaking = obsidian; - ebookReader = foliate; - pdfReader = zathura; - calculator = mate.mate-calc; +scope "user.packages" +<| getPkgs { + inherit (pkgs) + libreoffice + thunderbird + obsidian + foliate + zathura + ; } diff --git a/graphical/editor.nix b/graphical/editor.nix index 64ccbe1..884867f 100644 --- a/graphical/editor.nix +++ b/graphical/editor.nix @@ -1,7 +1,7 @@ { + pkgs, inputs, scope, - getFlakePkg, ... }: -scope "apps.ide" <| getFlakePkg inputs.zedless +scope "user.packages" [ inputs.zedless.packages.${pkgs.system}.default ] diff --git a/graphical/fm.nix b/graphical/fm.nix index 29bf09d..dd8da05 100644 --- a/graphical/fm.nix +++ b/graphical/fm.nix @@ -1,10 +1,13 @@ { pkgs, scope, + getPkgs, ... }: -with pkgs; -scope "apps" { - fm = pcmanfm; - archive = mate.engrampa; +scope "user.packages" +<| getPkgs { + inherit (pkgs) + file-roller + nautilus + ; } diff --git a/graphical/media.nix b/graphical/media.nix index 8fc2d40..c2d0c4f 100644 --- a/graphical/media.nix +++ b/graphical/media.nix @@ -1,13 +1,16 @@ { pkgs, scope, + getPkgs, ... }: -with pkgs; -scope "apps" { - videoPlayer = mpv; - imageViewer = imv; - musicPlayer = resonance; - streamPlayer = feishin; - soulSeek = nicotine-plus; +scope "user.packages" +<| getPkgs { + inherit (pkgs) + mpv + imv + resonance + feishin + nicotine-plus + ; } diff --git a/graphical/password-manager.nix b/graphical/password-manager.nix index a3061ea..e71095c 100644 --- a/graphical/password-manager.nix +++ b/graphical/password-manager.nix @@ -9,8 +9,8 @@ }; }; - apps = with pkgs; { - passwordManager = bitwarden; - passwordCli = rbw; - }; + user.packages = [ + pkgs.rbw + pkgs.bitwarden + ]; } diff --git a/graphical/shell.nix b/graphical/shell.nix index 8a2b77b..30daf50 100644 --- a/graphical/shell.nix +++ b/graphical/shell.nix @@ -4,7 +4,6 @@ inputs, mainUser, getPkgs, - getFlakePkg', ... }: let @@ -12,17 +11,10 @@ let in { # quickshell stuff - user.packages = - getPkgs { - inherit (pkgs.kdePackages) qtbase qtdeclarative; - inherit (pkgs) wl-clipboard; - } - ++ [ - (inputs.quickshell.packages.${pkgs.system}.default.override { - withHyprland = false; - withI3 = false; - }) - ]; + environment.systemPackages = getPkgs { + inherit (pkgs.kdePackages) qtbase qtdeclarative; + inherit (pkgs) wl-clipboard quickshell; + }; systemd.user.services.quickshell = { path = [ inputs.niri.packages.${pkgs.system}.niri-unstable ]; @@ -44,7 +36,8 @@ in swaync = "${getExe pkgs.swaynotificationcenter}"; swayidle = let - niri = getFlakePkg' inputs.niri "niri-unstable"; + # niri = pkgs.niri; + niri = inputs.niri.packages.${pkgs.system}.niri-unstable; systemctl = getExe' pkgs.systemd "systemctl"; in '' diff --git a/graphical/terminal.nix b/graphical/terminal.nix index 50bb5d5..a4f7094 100644 --- a/graphical/terminal.nix +++ b/graphical/terminal.nix @@ -1,11 +1,9 @@ { - pkgs, config, scope, ... }: -(scope "apps.terminal" <| pkgs.foot) -// scope "programs.foot" { +scope "programs.foot" { enable = true; enableFishIntegration = true; settings = { diff --git a/graphical/wm.nix b/graphical/wm.nix index 358f2d9..c13f221 100644 --- a/graphical/wm.nix +++ b/graphical/wm.nix @@ -1,14 +1,14 @@ { + pkgs, + # lib, mainUser, inputs, - getFlakePkg', # config, ... }: -let - # inherit (config) rice; - niri = (getFlakePkg' inputs.niri "niri-unstable"); -in +# let +# inherit (config) rice; +# in { imports = [ inputs.niri.nixosModules.niri @@ -24,7 +24,7 @@ in source = "/home/${mainUser}/.nix/graphical/desktop/niri-config.kdl"; }; # user.xdg.config.files."niri/config.kdl".source = ./desktop/niri-config.kdl; - user.packages = [ niri ]; + user.packages = [ inputs.niri.packages.${pkgs.system}.niri-unstable ]; services.greetd = { enable = true; restart = false; @@ -42,7 +42,7 @@ in }; programs.niri = { enable = true; - package = niri; + package = inputs.niri.packages.${pkgs.system}.niri-unstable; }; services.niri-tag.enable = true; diff --git a/lib/create.nix b/lib/create.nix index 65d1e70..dc85f97 100644 --- a/lib/create.nix +++ b/lib/create.nix @@ -21,27 +21,22 @@ in scope = import ./scope.nix { inherit lib; }; mainUser = info.username; getPkgs = builtins.attrValues; - getFlakePkg = p: p.packages.${info.system}.default; - getFlakePkg' = p: n: p.packages.${info.system}.${n}; }; modules = [ inputs.arbys.nixosModules.arbys inputs.hjem.nixosModules.hjem - ( - { scope, ... }: - scope "hjem" { - users.${info.username}.enable = true; - extraModules = [ - inputs.hjem-rum.hjemModules.hjem-rum - ] - # alias base hjem options to `rum` so we can alias them all together after - ++ (map (f: lib.mkAliasOptionModule [ "rum" f ] [ f ]) [ - "packages" - "files" - "xdg" - ]); - } - ) + ({ scope, ... }: scope "hjem" { + users.${info.username}.enable = true; + extraModules = [ + inputs.hjem-rum.hjemModules.hjem-rum + ] + # alias base hjem options to `rum` so we can alias them all together after + ++ (map (f: lib.mkAliasOptionModule [ "rum" f ] [ f ]) [ + "packages" + "files" + "xdg" + ]); + }) # alias hjem-rum options to `user` (lib.mkAliasOptionModule [ "user" ] [ "hjem" "users" info.username "rum" ]) ]