add intel drivers, more waybar, niri, other tweaks
This commit is contained in:
parent
31df81b867
commit
01dbe3cbaf
@ -39,6 +39,9 @@ in
|
||||
inputs.nur.overlays.default
|
||||
];
|
||||
|
||||
# Intel graphics acceleration
|
||||
hardware.graphics.enable = true;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
# Enable flakes feature
|
||||
nix.settings.experimental-features = [
|
||||
|
||||
@ -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; }
|
||||
|
||||
@ -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": "",
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -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; */
|
||||
}
|
||||
@ -37,6 +37,7 @@
|
||||
unstable.claude-code
|
||||
unstable.opencode
|
||||
nodejs_24
|
||||
docker-compose
|
||||
### LSP's
|
||||
nil
|
||||
nodePackages_latest.bash-language-server
|
||||
|
||||
@ -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;
|
||||
###
|
||||
## Configuration
|
||||
###
|
||||
config = lib.mkIf config.niriwm.enable {
|
||||
|
||||
###
|
||||
## XDG portal setup
|
||||
###
|
||||
xdg.portal = {
|
||||
config = {
|
||||
common = {
|
||||
default = [
|
||||
"wlr"
|
||||
];
|
||||
};
|
||||
};
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gnome
|
||||
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"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@ -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";
|
||||
# }];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -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";
|
||||
# }];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -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";
|
||||
# }];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -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";
|
||||
# }];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -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";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user