Compare commits

...

2 commits

16 changed files with 225 additions and 243 deletions

View file

@ -2,6 +2,7 @@
lib,
pkgs,
inputs,
getFlakePkg',
...
}:
let
@ -36,18 +37,25 @@ in
"p" = "ps $argv | culr";
"mnt" = "mount | culr";
};
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}
'';
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}
'';
};
programs.command-not-found.enable = false;
programs.zoxide = {

16
flake.lock generated
View file

@ -922,22 +922,6 @@
"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,

13
graphical/apps-meta.nix Normal file
View file

@ -0,0 +1,13 @@
{
lib,
config,
getPkgs,
...
}:
{
options.apps = lib.mkOption {
type = lib.types.attrsOf lib.types.package;
default = { };
};
config.user.packages = getPkgs config.apps;
}

View file

@ -1,16 +1,12 @@
{
pkgs,
lib,
getPkgs,
...
}:
{
user.packages = getPkgs {
inherit (pkgs)
avizo
playerctl
;
apps = {
volumeOSD = pkgs.avizo;
inherit (pkgs) playerctl;
};
quick.services."avizo-service" = "${lib.getExe' pkgs.avizo "avizo-service"}";
}

View file

@ -1,123 +1,95 @@
{
lib,
pkgs,
scope,
...
}:
{
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"
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 "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;
# };
# };
}
# 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;
# };
# };
# }
// (scope "apps.browser" <| pkgs.firefox)
# )

View file

@ -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 "nautilus"; }
Mod+E { spawn "pcmanfm"; }
Mod+Equal { spawn "bitwarden"; }
Mod+F { spawn "chromium"; }
Mod+F { spawn "firefox"; }
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"; }

View file

@ -1,41 +1,44 @@
{
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;
};
};
}

View file

@ -1,16 +1,14 @@
{
pkgs,
scope,
getPkgs,
...
}:
scope "user.packages"
<| getPkgs {
inherit (pkgs)
libreoffice
thunderbird
obsidian
foliate
zathura
;
with pkgs;
scope "apps" {
officeSuite = libreoffice;
mailClient = thunderbird;
noteTaking = obsidian;
ebookReader = foliate;
pdfReader = zathura;
calculator = mate.mate-calc;
}

View file

@ -1,7 +1,7 @@
{
pkgs,
inputs,
scope,
getFlakePkg,
...
}:
scope "user.packages" [ inputs.zedless.packages.${pkgs.system}.default ]
scope "apps.ide" <| getFlakePkg inputs.zedless

View file

@ -1,13 +1,10 @@
{
pkgs,
scope,
getPkgs,
...
}:
scope "user.packages"
<| getPkgs {
inherit (pkgs)
file-roller
nautilus
;
with pkgs;
scope "apps" {
fm = pcmanfm;
archive = mate.engrampa;
}

View file

@ -1,16 +1,13 @@
{
pkgs,
scope,
getPkgs,
...
}:
scope "user.packages"
<| getPkgs {
inherit (pkgs)
mpv
imv
resonance
feishin
nicotine-plus
;
with pkgs;
scope "apps" {
videoPlayer = mpv;
imageViewer = imv;
musicPlayer = resonance;
streamPlayer = feishin;
soulSeek = nicotine-plus;
}

View file

@ -9,8 +9,8 @@
};
};
user.packages = [
pkgs.rbw
pkgs.bitwarden
];
apps = with pkgs; {
passwordManager = bitwarden;
passwordCli = rbw;
};
}

View file

@ -4,6 +4,7 @@
inputs,
mainUser,
getPkgs,
getFlakePkg',
...
}:
let
@ -11,10 +12,17 @@ let
in
{
# quickshell stuff
environment.systemPackages = getPkgs {
inherit (pkgs.kdePackages) qtbase qtdeclarative;
inherit (pkgs) wl-clipboard quickshell;
};
user.packages =
getPkgs {
inherit (pkgs.kdePackages) qtbase qtdeclarative;
inherit (pkgs) wl-clipboard;
}
++ [
(inputs.quickshell.packages.${pkgs.system}.default.override {
withHyprland = false;
withI3 = false;
})
];
systemd.user.services.quickshell = {
path = [ inputs.niri.packages.${pkgs.system}.niri-unstable ];
@ -36,8 +44,7 @@ in
swaync = "${getExe pkgs.swaynotificationcenter}";
swayidle =
let
# niri = pkgs.niri;
niri = inputs.niri.packages.${pkgs.system}.niri-unstable;
niri = getFlakePkg' inputs.niri "niri-unstable";
systemctl = getExe' pkgs.systemd "systemctl";
in
''

View file

@ -1,9 +1,11 @@
{
pkgs,
config,
scope,
...
}:
scope "programs.foot" {
(scope "apps.terminal" <| pkgs.foot)
// scope "programs.foot" {
enable = true;
enableFishIntegration = true;
settings = {

View file

@ -1,14 +1,14 @@
{
pkgs,
# lib,
mainUser,
inputs,
getFlakePkg',
# config,
...
}:
# let
# inherit (config) rice;
# in
let
# inherit (config) rice;
niri = (getFlakePkg' inputs.niri "niri-unstable");
in
{
imports = [
inputs.niri.nixosModules.niri
@ -24,7 +24,7 @@
source = "/home/${mainUser}/.nix/graphical/desktop/niri-config.kdl";
};
# user.xdg.config.files."niri/config.kdl".source = ./desktop/niri-config.kdl;
user.packages = [ inputs.niri.packages.${pkgs.system}.niri-unstable ];
user.packages = [ niri ];
services.greetd = {
enable = true;
restart = false;
@ -42,7 +42,7 @@
};
programs.niri = {
enable = true;
package = inputs.niri.packages.${pkgs.system}.niri-unstable;
package = niri;
};
services.niri-tag.enable = true;

View file

@ -21,22 +21,27 @@ 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" ])
]