add intel drivers, more waybar, niri, other tweaks

This commit is contained in:
Nathan Anderson 2026-02-05 14:21:33 -07:00
parent 31df81b867
commit 01dbe3cbaf
11 changed files with 330 additions and 573 deletions

View File

@ -38,8 +38,11 @@ in
nixpkgs.overlays = [
inputs.nur.overlays.default
];
# Intel graphics acceleration
hardware.graphics.enable = true;
hardware.enableRedistributableFirmware = true;
# Enable flakes feature
nix.settings.experimental-features = [
"nix-command" "flakes"

View File

@ -29,8 +29,9 @@ output "eDP-1"{
transform "normal"
}
workspace "net"
workspace "term"
workspace "net"
workspace "chat"
workspace "scratch"
//
@ -163,10 +164,19 @@ window-rule {
open-on-workspace "net"
}
// Chat windows
window-rule {
match app-id=r#"^com\.discordapp\.Discord$"#
match app-id=r#"^org\.signal\.Signal$"#
default-column-width { proportion 0.8; }
block-out-from "screencast"
open-on-workspace "chat"
}
// Scratch windows (exclude unlock dialog so it can open on net)
window-rule {
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
match app-id=r#"^org\.signal\.Signal$"#
exclude app-id=r#"^org\.keepassxc\.KeePassXC$"# title="^Unlock Database - KeePassXC$"
block-out-from "screencast"
@ -187,6 +197,16 @@ window-rule {
match app-id="org.gnome.Nautilus"
open-floating true
open-focused true
block-out-from "screencast"
}
// Steam windowd
window-rule {
match app-id="steam" title="Friends List"
open-floating true
open-focused false
}
// Bright border on screen-shared windows
@ -307,7 +327,8 @@ binds {
Mod+1 { focus-workspace "term"; }
Mod+2 { focus-workspace "net"; }
Mod+3 { focus-workspace "chat"; }
Mod+4 { focus-workspace 4; }
// Mod+3 { focus-workspace 3; }
// Mod+4 { focus-workspace 4; }
Mod+5 { focus-workspace 5; }
Mod+6 { focus-workspace 6; }
Mod+7 { focus-workspace 7; }
@ -317,7 +338,8 @@ binds {
Mod+Shift+1 { move-column-to-workspace "term"; }
Mod+Shift+2 { move-column-to-workspace "net"; }
Mod+Shift+3 { move-column-to-workspace "chat"; }
Mod+Shift+4 { move-column-to-workspace 4; }
// Mod+Shift+3 { move-column-to-workspace 3; }
// Mod+Shift+4 { move-column-to-workspace 4; }
Mod+Shift+5 { move-column-to-workspace 5; }
Mod+Shift+6 { move-column-to-workspace 6; }
Mod+Shift+7 { move-column-to-workspace 7; }

View File

@ -23,10 +23,10 @@
"custom/storage",
"memory",
"cpu",
"pulseaudio",
"custom/keyboard-layout",
// "pulseaudio",
// "custom/keyboard-layout",
"battery",
"backlight",
// "backlight",
"custom/wlsunset",
"tray",
//"custom/weather",
@ -102,7 +102,7 @@
"niri/window": {
"format": "{title}",
"icon": true,
"icon-size": 24,
"icon-size": 20,
"rewrite": {
// Firefox
"(.*) — Mozilla Firefox": " $1",
@ -182,17 +182,20 @@
"all-outputs": true,
"format": " {icon} ",
"format-icons": {
"1": "",
"2": "",
"3": "󰭻",
"4": "",
"term": "",
"net": "",
"chat": "󰭻",
"scratch": "",
// Numeric Fallback
"1": " 1",
"2": " 2",
"3": " 3",
"4": " 4",
"5": " 5",
"6": " 6",
"7": " 7",
"8": " 8",
"9": " 9",
"music": "",
"scratch": "",
}
},

View File

@ -67,7 +67,7 @@
* {
border: none;
border-radius: 0;
min-height: 40px;
min-height: 30px;
margin: 0px;
padding: 0px;
}
@ -77,7 +77,7 @@
background: transparent;
background-color: transparent;
font-family: Overpass Nerd Font;
font-size: 22px;
font-size: 16px;
color: @text;
}
@ -99,22 +99,24 @@
}
.modules-left,
.modules-right,
.modules-center {
.modules-right {
/* margin: 8px 8px 1px 8px; */
background: transparent;
/* color: @; */
background-color: @base;
border-radius: 25px;
padding: 0px 10px 0px 10px;
border-radius: 20px;
padding: 0px 6px 0px 6px;
border-style: solid;
border-width: 3px;
border-color: @surface0;
}
/* Add gaps for middle module so they space out and dont touch */
/* Hide empty center module */
.modules-center {
margin: 0px 100px;
background: transparent;
border: none;
padding: 0;
min-height: 0;
}
/* Every modules */
@ -243,7 +245,7 @@
}
#workspaces {
font-size: 24px;
font-size: 16px;
}
#workspaces button {
@ -324,17 +326,17 @@
#custom-power {
margin-left: 15px;
margin-right: 15px;
font-size: 20px;
/* font-size: 16px; */
color: @flamingo;
}
#custom-launcher {
font-size: 24px;
/* font-size: 24px; */
margin-left: 15px;
margin-right: 10px;
}
#backlight.icon {
padding-right: 1px;
font-size: 20px;
/* font-size: 16px; */
}

View File

@ -37,6 +37,7 @@
unstable.claude-code
unstable.opencode
nodejs_24
docker-compose
### LSP's
nil
nodePackages_latest.bash-language-server

View File

@ -1,228 +1,267 @@
{ inputs, lib, config, pkgs, userName, ... }:
let
unstable = import inputs.nixpkgs-unstable { system = "x86_64-linux"; config.allowUnfree = true; };
in
{
options.niriwm = {
enable = lib.mkEnableOption "Enable niri window manager.";
useNonFree = lib.mkOption {
default = false;
example = true;
description = "Whether to enable non-free software in the niri config";
};
systemPackages = lib.mkOption {
default = [];
description = "Add any additional packages desired. Merged with niri defaults.";
};
user = lib.mkOption {
type = lib.types.str;
};
inputs,
lib,
config,
pkgs,
userName,
...
}:
let
unstable = import inputs.nixpkgs-unstable {
system = "x86_64-linux";
config.allowUnfree = true;
};
in
{
options.niriwm = {
enable = lib.mkEnableOption "Enable niri window manager.";
useNonFree = lib.mkOption {
default = false;
example = true;
description = "Whether to enable non-free software in the niri config";
};
systemPackages = lib.mkOption {
default = [ ];
description = "Add any additional packages desired. Merged with niri defaults.";
};
user = lib.mkOption {
type = lib.types.str;
};
###
## Configuration
###
config = lib.mkIf config.niriwm.enable {
};
nixpkgs.config.allowUnfree = config.niriwm.useNonFree;
###
## XDG portal setup
###
xdg.portal = {
config = {
common = {
default = [
"wlr"
];
};
};
extraPortals = with pkgs; [
xdg-desktop-portal-gnome
###
## Configuration
###
config = lib.mkIf config.niriwm.enable {
nixpkgs.config.allowUnfree = config.niriwm.useNonFree;
###
## XDG portal setup
###
xdg.portal = {
config = {
common = {
default = [
"wlr"
];
};
};
extraPortals = with pkgs; [
xdg-desktop-portal-gnome
];
wlr.enable = true;
enable = true;
};
xdg.sounds.enable = true;
###
## System Packages
###
environment.systemPackages =
with pkgs;
lib.lists.flatten [
[
bash
egl-wayland
foot
git
glib # gsettings
grim
kanshi
libnotify
lxqt.lxqt-policykit
man-pages
man-pages-posix
nautilus
networkmanagerapplet
pavucontrol
slurp
swaylock
swayosd
syncthingtray
unstable.ghostty
unstable.xwayland-satellite
waybar
wdisplays
wl-clipboard
wofi
xdg-utils
zsh
# Fonts
]
config.niriwm.systemPackages
];
environment.variables.QT_STYLE_OVERRIDE = "kvantum";
environment.sessionVariables = {
# use wayland
MOZ_ENABLE_WAYLAND = "1";
T_QPA_PLATFORM = "wayland";
GDK_BACKEND = "wayland";
WLR_NO_HARDWARE_CURSORS = "1";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = "1";
# VA-API driver for hardware video acceleration (Intel 13th gen)
LIBVA_DRIVER_NAME = "iHD";
};
# adds additional man pages
documentation.dev.enable = true;
programs.gamemode = {
enable = true;
settings = {
general = {
reaper_freq = 5;
desiredgov = "performance";
softrealtime = "auto";
};
};
};
programs.kdeconnect.enable = true;
programs.niri.enable = true;
programs.regreet.enable = true;
programs.xfconf.enable = true;
programs.zsh.enable = true;
programs.ssh.startAgent = false; # Using GNOME Keyring's gcr-ssh-agent instead
# For nautilus
services.gnome.sushi.enable = true;
programs.nautilus-open-any-terminal = {
enable = true;
terminal = "ghostty";
};
services.syncthing = {
enable = true;
dataDir = "/home/${config.niriwm.user}/.syncthing";
openDefaultPorts = true;
user = config.niriwm.user;
};
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; # Don't create default ~/Sync folder
# Set zsh as the default shell system-wide
users.defaultUserShell = pkgs.zsh;
environment.shells = with pkgs; [
zsh
bash
];
###
## Services
###
services.blueman.enable = true;
services.gvfs.enable = true; # file manager mount, trash, etc
services.tumbler.enable = true; # thunar thumbnails
services.openssh.enable = true;
services.dbus.enable = true;
services.gnome.gnome-keyring.enable = true;
services.flatpak.enable = true;
services.usbmuxd.enable = false;
# For yubioath desktop
services.pcscd.enable = true;
# Printing
services.printing = {
enable = true;
browsing = true;
drivers = [ pkgs.brlaser ];
};
# Audio - Modern PipeWire setup for Framework laptop
# Disable PulseAudio in favor of PipeWire
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
audio.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
wireplumber.extraConfig = {
"wireplumber.settings" = {
bluetooth.autoswitch-to-headset-profile = false;
};
bluetoothEnhancements = {
"monitor.bluez.properties" = {
"bluez5.enable-sbc-xq" = true;
"bluez5.enable-msbc" = true;
"bluez5.enable-hw-volume" = true;
# Default roles: https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/bluetooth.html#monitor-properties
"bluez5.roles" = [
"a2dp_sink"
"a2dp_source"
"bap_sink"
"bap_source"
"hfp_hf"
"hfp_ag"
];
wlr.enable = true;
enable = true;
};
xdg.sounds.enable = true;
###
## System Packages
###
environment.systemPackages = with pkgs; lib.lists.flatten [
[
bash
egl-wayland
foot
git
glib # gsettings
grim
kanshi
libnotify
lxqt.lxqt-policykit
man-pages
man-pages-posix
nautilus
networkmanagerapplet
pavucontrol
slurp
swaylock
swayosd
syncthingtray
unstable.ghostty
unstable.xwayland-satellite
waybar
wdisplays
wl-clipboard
wofi
xdg-utils
zsh
# Fonts
]
config.niriwm.systemPackages
];
environment.variables.QT_STYLE_OVERRIDE = "kvantum";
environment.sessionVariables = {
# use wayland
MOZ_ENABLE_WAYLAND = "1";
T_QPA_PLATFORM = "wayland";
GDK_BACKEND = "wayland";
WLR_NO_HARDWARE_CURSORS = "1";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
NIXOS_OZONE_WL = "1";
};
# adds additional man pages
documentation.dev.enable = true;
programs.gamemode = {
enable = true;
settings = {
general = {
reaper_freq = 5;
desiredgov = "performance";
softrealtime = "auto";
};
};
};
programs.kdeconnect.enable = true;
programs.niri.enable = true;
programs.regreet.enable = true;
programs.xfconf.enable = true;
programs.zsh.enable = true;
programs.ssh.startAgent = false; # Using GNOME Keyring's gcr-ssh-agent instead
# For nautilus
services.gnome.sushi.enable = true;
programs.nautilus-open-any-terminal = {
enable = true;
terminal = "ghostty";
};
services.syncthing = {
enable = true;
dataDir = "/home/${config.niriwm.user}/.syncthing";
openDefaultPorts = true;
user = config.niriwm.user;
};
systemd.services.syncthing.environment.STNODEFAULTFOLDER = "true"; # Don't create default ~/Sync folder
# Set zsh as the default shell system-wide
users.defaultUserShell = pkgs.zsh;
environment.shells = with pkgs; [ zsh bash ];
###
## Services
###
services.blueman.enable = true;
services.gvfs.enable = true; # file manager mount, trash, etc
services.tumbler.enable = true; # thunar thumbnails
services.openssh.enable = true;
services.dbus.enable = true;
services.gnome.gnome-keyring.enable = true;
services.flatpak.enable = true;
services.usbmuxd.enable = false;
# For yubioath desktop
services.pcscd.enable = true;
# Printing
services.printing = {
enable = true;
browsing = true;
drivers = [ pkgs.brlaser ];
};
# Audio - Modern PipeWire setup for Framework laptop
# Disable PulseAudio in favor of PipeWire
services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
audio.enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
wireplumber.extraConfig = {
"wireplumber.settings" = {
bluetooth.autoswitch-to-headset-profile = false;
};
bluetoothEnhancements = {
"monitor.bluez.properties" = {
"bluez5.enable-sbc-xq" = true;
"bluez5.enable-msbc" = true;
"bluez5.enable-hw-volume" = true;
# Default roles: https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/bluetooth.html#monitor-properties
"bluez5.roles" = [ "a2dp_sink" "a2dp_source" "bap_sink" "bap_source" "hfp_hf" "hfp_ag" ];
};
};
};
};
###
## Misc
###
# Necessary for home-manager niri setup
security.polkit.enable = true;
# Keyring setup
security.pam.services.greetd.enableGnomeKeyring = true;
security.pam.services.login.enableGnomeKeyring = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true; # powers up the default Bluetooth controller on boot
settings = {
General = {
Name = "Nate-Frame";
ControllerMode = "dual";
FastConnectable = "true";
Experimental = "true";
};
Policy = { AutoEnable = "true"; };
LE = { EnableAdvMonInterleaveScan = 1; };
};
};
#
# Hardware scanning support
#
hardware.sane = {
enable = true;
brscan5.enable = true;
};
#
# udev rules
#
services.udev.extraRules = ''
# For betaflight configurator
# DFU (Internal bootloader for STM32 and AT32 MCUs)
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
# For ddcutil monitor controls
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
'';
};
};
###
## Misc
###
# Necessary for home-manager niri setup
security.polkit.enable = true;
# Keyring setup
security.pam.services.greetd.enableGnomeKeyring = true;
security.pam.services.login.enableGnomeKeyring = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true; # powers up the default Bluetooth controller on boot
settings = {
General = {
Name = "Nate-Frame";
ControllerMode = "dual";
FastConnectable = "true";
Experimental = "true";
};
Policy = {
AutoEnable = "true";
};
LE = {
EnableAdvMonInterleaveScan = 1;
};
};
};
#
# Hardware scanning support
#
hardware.sane = {
enable = true;
brscan5.enable = true;
};
virtualisation.docker = {
enable = true;
rootless = {
enable = true;
setSocketVariable = true;
};
daemon.settings = {
# not needed, intended for windoze
userland-proxy = false;
};
};
#
# udev rules
#
services.udev.extraRules = ''
# For betaflight configurator
# DFU (Internal bootloader for STM32 and AT32 MCUs)
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
# For ddcutil monitor controls
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
'';
};
}

View File

@ -1,66 +0,0 @@
{lib, config, pkgs, inputs, ...}:
let
cfg = config.firefoxApp;
in
{
# imports = [
# inputs.nur.hmModules.nur
# ];
options.firefoxApp = {
enable = lib.mkEnableOption "enable firefox browser";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
enable = true;
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
extensions = with pkgs; [
nur.repos.rycee.firefox-addons.darkreader
nur.repos.rycee.firefox-addons.keepassxc-browser
nur.repos.crazazy.firefox-addons.ublock-origin
];
search = {
# Replace default firefox search engine config with this one
force = true;
default = "Startpage";
engines = {
"Startpage" = {
urls = [{
template = "https://www.startpage.com/sp/search?query={searchTerms}";
}];
};
};
};
settings = {
"browser.startup.blankWindow" = true;
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
"browser.search.region" = "US";
"browser.search.isUS" = true;
"distribution.searchplugins.defaultLocale" = "en-US";
"general.useragent.locale" = "en-US";
"extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
"privacy.trackingprotection.enable" = true;
"privacy.trackingprotection.emailtracking.enable" = true;
"privacy.trackingprotection.socialtracking.enable" = true;
"privacy.clearOnShutdown.cookies" = true;
"browser.safebrowsing.passwords.enabled" = false;
"browser.migrate.interactions.passwords" = false;
"pref.privacy.disable_button.view_passwords" = false;
"signon.rememberSignon" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.formautofill.addresses.enabled" = false;
# "browser.bookmarks.showMobileBookmarks" = true;
# "browser.newtabpage.pinned" = [{
# title = "NixOS";
# url = "https://nixos.org";
# }];
};
};
};
};
};
}

View File

@ -1,93 +0,0 @@
{lib, config, pkgs, inputs, ...}:
let
cfg = config.firefoxApp;
in
{
# imports = [
# inputs.nur.hmModules.nur
# ];
options.firefoxApp = {
enable = lib.mkEnableOption "enable firefox browser";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
# Add pipewire support
# package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
enable = true;
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
extensions.packages = with pkgs; [
nur.repos.rycee.firefox-addons.darkreader
nur.repos.rycee.firefox-addons.keepassxc-browser
nur.repos.crazazy.firefox-addons.ublock-origin
nur.repos.bandithedoge.firefoxAddons.stylus
];
search = {
# Replace default firefox search engine config with this one
force = true;
default = "Startpage";
engines = {
"Startpage" = {
urls = [{
template = "https://www.startpage.com/sp/search?query={searchTerms}";
}];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"MySQL Docs" = {
urls = [{
template = "https://dev.mysql.com/doc/search";
params = [
{ name = "d"; value = "371"; }
{ name = "p"; value = "1"; }
{ name = "q"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "@mysql" ];
};
};
};
settings = {
"browser.startup.blankWindow" = true;
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
"browser.search.region" = "US";
"browser.search.isUS" = true;
"distribution.searchplugins.defaultLocale" = "en-US";
"general.useragent.locale" = "en-US";
"extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
"privacy.trackingprotection.enable" = true;
"privacy.trackingprotection.emailtracking.enable" = true;
"privacy.trackingprotection.socialtracking.enable" = true;
"privacy.clearOnShutdown.cookies" = true;
"browser.safebrowsing.passwords.enabled" = false;
"browser.migrate.interactions.passwords" = false;
"pref.privacy.disable_button.view_passwords" = false;
"signon.rememberSignon" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.formautofill.addresses.enabled" = false;
"browser.toolbars.bookmarks.visibility" = "always";
# For applying userContent.css - not being used
# "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
# "browser.newtabpage.pinned" = [{
# title = "NixOS";
# url = "https://nixos.org";
# }];
};
};
};
};
};
}

View File

@ -1,82 +0,0 @@
{lib, config, pkgs, inputs, ...}:
let
cfg = config.firefoxApp;
in
{
# imports = [
# inputs.nur.hmModules.nur
# ];
options.firefoxApp = {
enable = lib.mkEnableOption "enable firefox browser";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
# Add pipewire support
# package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
enable = true;
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
extensions.packages = with pkgs; [
nur.repos.rycee.firefox-addons.darkreader
nur.repos.rycee.firefox-addons.keepassxc-browser
nur.repos.crazazy.firefox-addons.ublock-origin
nur.repos.bandithedoge.firefoxAddons.stylus
];
search = {
# Replace default firefox search engine config with this one
force = true;
default = "Startpage";
engines = {
"Startpage" = {
urls = [{
template = "https://www.startpage.com/sp/search?query={searchTerms}";
}];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
};
};
settings = {
"browser.startup.blankWindow" = true;
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
"browser.search.region" = "US";
"browser.search.isUS" = true;
"distribution.searchplugins.defaultLocale" = "en-US";
"general.useragent.locale" = "en-US";
"extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
"privacy.trackingprotection.enable" = true;
"privacy.trackingprotection.emailtracking.enable" = true;
"privacy.trackingprotection.socialtracking.enable" = true;
"privacy.clearOnShutdown.cookies" = true;
"browser.safebrowsing.passwords.enabled" = false;
"browser.migrate.interactions.passwords" = false;
"pref.privacy.disable_button.view_passwords" = false;
"signon.rememberSignon" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.formautofill.addresses.enabled" = false;
"browser.toolbars.bookmarks.visibility" = "always";
# For applying userContent.css - not being used
# "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
# "browser.newtabpage.pinned" = [{
# title = "NixOS";
# url = "https://nixos.org";
# }];
};
};
};
};
};
}

View File

@ -1,82 +0,0 @@
{lib, config, pkgs, inputs, ...}:
let
cfg = config.firefoxApp;
in
{
# imports = [
# inputs.nur.hmModules.nur
# ];
options.firefoxApp = {
enable = lib.mkEnableOption "enable firefox browser";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
# Add pipewire support
# package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
enable = true;
profiles = {
default = {
id = 0;
name = "default";
isDefault = true;
extensions.packages = with pkgs; [
nur.repos.rycee.firefox-addons.darkreader
nur.repos.rycee.firefox-addons.keepassxc-browser
nur.repos.crazazy.firefox-addons.ublock-origin
nur.repos.bandithedoge.firefoxAddons.stylus
];
search = {
# Replace default firefox search engine config with this one
force = true;
default = "Startpage";
engines = {
"Startpage" = {
urls = [{
template = "https://www.startpage.com/sp/search?query={searchTerms}";
}];
};
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
};
};
settings = {
"browser.startup.blankWindow" = true;
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
"browser.search.region" = "US";
"browser.search.isUS" = true;
"distribution.searchplugins.defaultLocale" = "en-US";
"general.useragent.locale" = "en-US";
"extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
"privacy.trackingprotection.enable" = true;
"privacy.trackingprotection.emailtracking.enable" = true;
"privacy.trackingprotection.socialtracking.enable" = true;
"privacy.clearOnShutdown.cookies" = true;
"browser.safebrowsing.passwords.enabled" = false;
"browser.migrate.interactions.passwords" = false;
"pref.privacy.disable_button.view_passwords" = false;
"signon.rememberSignon" = false;
"extensions.formautofill.creditCards.enabled" = false;
"extensions.formautofill.addresses.enabled" = false;
"browser.toolbars.bookmarks.visibility" = "always";
# For applying userContent.css - not being used
# "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
# "browser.newtabpage.pinned" = [{
# title = "NixOS";
# url = "https://nixos.org";
# }];
};
};
};
};
};
}

View File

@ -29,11 +29,11 @@ in
search = {
# Replace default firefox search engine config with this one
force = true;
default = "Startpage";
default = "Kagi";
engines = {
"Startpage" = {
"Kagi" = {
urls = [{
template = "https://www.startpage.com/sp/search?query={searchTerms}";
template = "https://kagi.com/search?q={searchTerms}";
}];
};
"Nix Packages" = {
@ -47,6 +47,16 @@ in
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"NixOS Wiki" = {
urls = [{
template = "https://wiki.nixos.org/w/index.php";
params = [
{ name = "search"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@nix" ];
};
"MySQL Docs" = {
urls = [{
template = "https://dev.mysql.com/doc/search";