1
1
Fork 0

Compare commits

...

19 commits

Author SHA1 Message Date
213e4bb68e
pkgs: add gnome-clocks
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:45:43 -05:00
285cc40c80
env: add electron wayland hint
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:45:32 -05:00
71d72af36c
geoclue2: add static option
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:45:02 -05:00
5b5a6d823b
tzupdate: initial service switch from static timezone
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:44:44 -05:00
d948aac059
automatic-timezoned: initial disabled service
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:43:54 -05:00
5414953f67
chore: fix search engine ordering
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:43:25 -05:00
685b8e8cdd
1password: add custom browser option and move ssh config
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:42:52 -05:00
0d629d507f
waybar: fix tooltip/menu styles
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:42:08 -05:00
209015e59f
walker: fix search.sh
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:41:40 -05:00
752e728c75
chromium: add policies and switch to google-chrome
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:41:28 -05:00
9e97d1518e
hyprland: add browser rules
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:40:49 -05:00
d3c1433509
custom: add browser option
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:40:32 -05:00
52d5d7a9f7
hyprland: disable inserting window last in group
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:37:18 -05:00
baefe19341
hyprland: move media keys to repeat binds
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:36:43 -05:00
8d431dbd24
hyprland: disable dpms toggle on lid switch, handled by logind
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:34:47 -05:00
1fb1594946
hyprland: add power.sh bind
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:32:59 -05:00
52ab394064
power-profiles-daemon: use ppd for all profiles by default
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:30:19 -05:00
dfd22068bd
power-profiles-daemon: add profile switch udev rules on battery
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:29:14 -05:00
9839699d2d
gammastep: separate default from desktop brightness
Signed-off-by: Myned <dev@bjork.tech>
2024-12-21 13:27:03 -05:00
29 changed files with 512 additions and 164 deletions

View file

@ -52,6 +52,8 @@
#// services.logind.powerKey = "ignore"; # Disable power button
home-manager.users.${config.custom.username} = {
services.gammastep.settings.general.brightness-night = 0.4;
# Prevent secondary GPU reset from crashing window manager
wayland.windowManager.hyprland.settings = {
monitor = [

View file

@ -23,16 +23,8 @@ in {
# https://github.com/Cryolitia/ryzen_smu/issues/1
#// programs.ryzenadj.enable = true;
services.fw-fanctrl.enable = true;
settings.storage.mnt = ["myve"];
services = {
fw-fanctrl.enable = true;
auto-cpufreq.max = {
battery = 3; # GHz
#// charger = 3.5; # GHz
};
};
};
services.keyd.keyboards.default.settings.main.rightcontrol = "layer(altgr)"; # No Ctrl_R
@ -49,11 +41,11 @@ in {
# Fix battery drain with suspend-then-hibernate
# https://wiki.archlinux.org/title/Framework_Laptop_13#Suspend-then-hibernate_on_AMD_version
#// "rtc_cmos.use_acpi_alarm=1"
"rtc_cmos.use_acpi_alarm=1"
# Force disable display power savings
# Force display power savings
# https://wiki.archlinux.org/title/Framework_Laptop_13#(AMD)_Washed-out_colors_when_using_power-profiles-daemon_in_power-saver_or_balanced_mode
#// "amdgpu.abmlevel=0"
"amdgpu.abmlevel=0"
# Disable AMD scaling driver
# https://wiki.archlinux.org/title/CPU_frequency_scaling#amd_pstate

View file

@ -38,6 +38,11 @@ in {
### Misc
wallpaper = mkOption {default = false;};
browser = {
command = mkOption {default = "${config.custom.programs.chromium.package}/bin/google-chrome-stable";};
desktop = mkOption {default = "google-chrome.desktop";};
};
font = {
emoji = mkOption {default = "Noto Color Emoji";};
monospace = mkOption {default = "IosevkaTermSlab NFP Medium";};

View file

@ -10,7 +10,6 @@ with lib; let
cat = "${pkgs.coreutils}/bin/cat";
clipse = "${pkgs.clipse}/bin/clipse";
codium = "${config.home-manager.users.${config.custom.username}.programs.vscode.package}/bin/codium";
firefox-esr = "${config.home-manager.users.${config.custom.username}.programs.firefox.finalPackage}/bin/firefox-esr";
gnome-text-editor = "${pkgs.gnome-text-editor}/bin/gnome-text-editor";
hyprctl = "${config.programs.hyprland.package}/bin/hyprctl";
hyprlock = "${config.home-manager.users.${config.custom.username}.programs.hyprlock.package}/bin/hyprlock";
@ -30,6 +29,7 @@ with lib; let
onlyoffice-desktopeditors = "${pkgs.onlyoffice-bin}/bin/onlyoffice-desktopeditors --system-title-bar --xdg-desktop-portal";
pkill = "${pkgs.procps}/bin/pkill";
playerctl = "${pkgs.playerctl}/bin/playerctl";
power = config.home-manager.users.${config.custom.username}.home.file.".local/bin/power".source;
remote = config.home-manager.users.${config.custom.username}.home.file.".local/bin/remote".source;
rofi-rbw = "${pkgs.rofi-rbw}/bin/rofi-rbw";
rm = "${pkgs.coreutils}/bin/rm";
@ -92,8 +92,8 @@ in {
# Laptop lid switches
# https://wiki.hyprland.org/Configuring/Binds/#switches
#?? hyprctl devices
(key "switch:off:Lid Switch" null "dpms" "on") # Open
(key "switch:on:Lid Switch" null "dpms" "off") # Close
#// (key "switch:off:Lid Switch" null "dpms" "on") # Open
#// (key "switch:on:Lid Switch" null "dpms" "off") # Close
];
# Mouse binds
@ -115,6 +115,15 @@ in {
(key "XF86MonBrightnessDown" null "exec" "${swayosd-client} --brightness lower") # F7
(key "XF86MonBrightnessUp" null "exec" "${swayosd-client} --brightness raise") # F8
(key "XF86AudioMedia" null "exec" "${notify-send} test") # F12
(key "0" "Super" "exec" "${swayosd-client} --output-volume mute-toggle")
(key "Minus" "Super" "exec" "${swayosd-client} --output-volume lower")
(key "Equal" "Super" "exec" "${swayosd-client} --output-volume raise")
(key "Left" "Super" "exec" "${playerctl} previous")
(key "Space" "Super" "exec" "${playerctl} play-pause")
(key "Right" "Super" "exec" "${playerctl} next")
(key "Down" "Super" "exec" "${swayosd-client} --brightness lower")
(key "Up" "Super" "exec" "${swayosd-client} --brightness raise")
];
# Release binds
@ -146,19 +155,16 @@ in {
(key "Bracketright" "Super" "splitratio" "+0.1")
(key "Bracketright" "Super+Shift" "layoutmsg" "rollprev")
(key "Comma" "Super" "layoutmsg" "swapprev")
(key "Down" "Super" "exec" "${swayosd-client} --brightness lower")
(key "Delete" "Super+Shift" "exec" power)
(key "Down" "Super+Shift" "movewindoworgroup" "d")
(key "Equal" "Super" "exec" "${swayosd-client} --output-volume raise")
(key "Equal" "Super+Shift" "exec" "${zoom} +0.1")
(key "Escape" "Super" "togglefloating" null)
(key "Escape" "Super+Alt" "exec" "lifx state --color red")
(key "Escape" "Super+Shift" "centerwindow" null)
(key "Grave" "Super" "togglespecialworkspace" "scratchpad")
(key "Grave" "Super+Shift" "movetoworkspacesilent" "special:scratchpad")
(key "Left" "Super" "exec" "${playerctl} previous")
(key "Left" "Super+Alt" "exec" "${left} --scroll kensington-orbit-wireless-tb-mouse")
(key "Left" "Super+Shift" "movewindoworgroup" "l")
(key "Minus" "Super" "exec" "${swayosd-client} --output-volume lower")
(key "Minus" "Super+Shift" "exec" "${zoom} -0.1")
(key "Period" "Super" "layoutmsg" "swapnext")
(key "Apostrophe" "Super" "exec" "${screenshot} selection")
@ -167,7 +173,6 @@ in {
(key "Apostrophe" "Super+Alt+Shift" "exec" "${screenshot} display --edit")
(key "Return" "Super" "fullscreen" "1") # Maximize
(key "Return" "Super+Shift" "fullscreen" "0") # Fullscreen
(key "Right" "Super" "exec" "${playerctl} next")
(key "Right" "Super+Shift" "movewindoworgroup" "r")
(key "Semicolon" "Super" "exec" "${hyprpicker} --autocopy")
(key "Semicolon" "Super+Shift" "exec" "${hyprpicker} --autocopy --format rgb")
@ -188,7 +193,6 @@ in {
"--expression '^Picture.in.[Pp]icture$'"
"--workspace special:pip"
]))
(key "Space" "Super" "exec" "${playerctl} play-pause")
(key "Space" "Super+Ctrl+Shift" "exec" (with config.custom;
concatStringsSep " " [
"${window} move"
@ -200,10 +204,8 @@ in {
(key "Tab" "Super" "layoutmsg" "cyclenext")
(key "Tab" "Super+Shift" "alterzorder" "top")
(key "Tab" "Super+Shift" "cyclenext" "floating")
(key "Up" "Super" "exec" "${swayosd-client} --brightness raise")
(key "Up" "Super+Shift" "movewindoworgroup" "u")
(key "0" "Super" "exec" "${swayosd-client} --output-volume mute-toggle")
(key "0" "Super+Shift" "exec" zoom)
(key "1" "Ctrl+Alt" "exec" "lifx state --brightness 0.01")
(key "1" "Super" "workspace" "1")
@ -235,7 +237,7 @@ in {
(key "A" "Ctrl+Alt" "exec" "${waydroid} session stop")
(key "A" "Super" "togglespecialworkspace" "android")
(key "A" "Super+Shift" "movetoworkspacesilent" "special:android")
(key "B" "Super" "exec" firefox-esr)
(key "B" "Super" "exec" config.custom.browser.command)
(key "C" "Super" "exec" codium)
(key "E" "Super" "exec" gnome-text-editor)
(key "F" "Super" "exec" "${nautilus} --new-window")

View file

@ -179,16 +179,11 @@ in {
(class "[Ww]aydroid.*" rules)
];
browser = rules: [
(fields {
class = "^chromium-browser$";
title = "^(?!Picture.in.[Pp]icture).*$";
}
rules)
(fields {
class = "^firefox.*$";
title = "^(?!Picture.in.[Pp]icture).*$";
}
rules)
(class "^brave-browser$" rules)
(class "^chromium-browser$" rules)
(class "^firefox.*$" rules)
(class "^google-chrome$" rules)
(class "^vivaldi.*$" rules)
];
clipboard = rules: [
(class "clipboard" rules)

View file

@ -8,7 +8,6 @@ with lib; let
_1password = "${config.programs._1password-gui.package}/bin/1password";
audio = config.home-manager.users.${config.custom.username}.home.file.".local/bin/audio".source;
clipse = "${pkgs.clipse}/bin/clipse";
firefox-esr = "${config.home-manager.users.${config.custom.username}.programs.firefox.finalPackage}/bin/firefox-esr";
grep = "${pkgs.gnugrep}/bin/grep";
left = config.home-manager.users.${config.custom.username}.home.file.".local/bin/left".source;
loupe = "${pkgs.loupe}/bin/loupe";
@ -74,7 +73,6 @@ in {
"${audio} --init" # Enforce audio profile state
"${rm} ~/.cache/walker/clipboard.gob" # Clear clipboard history
"${_1password} --silent" # Launch password manager in background
#// "[group new; tile] ${firefox-esr}"
# HACK: Launch hidden GTK windows to reduce startup time
"[workspace special:hidden silent] ${loupe}"
@ -161,7 +159,7 @@ in {
"col.border_locked_active" = "rgb(d33682)";
"col.border_locked_inactive" = "rgba(d3368240)";
#// auto_group = false;
insert_after_current = false;
#// insert_after_current = false;
# https://wiki.hyprland.org/Configuring/Variables/#groupbar
groupbar = {

View file

@ -8,7 +8,6 @@ with lib; let
audio = "~/.local/bin/audio";
clipse = "${pkgs.clipse}/bin/clipse";
codium = "${config.home-manager.users.${config.custom.username}.programs.vscode.package}/bin/codium";
firefox-esr = "${config.home-manager.users.${config.custom.username}.programs.firefox.finalPackage}/bin/firefox-esr";
gnome-text-editor = "${pkgs.gnome-text-editor}/bin/gnome-text-editor";
hyprctl = "${config.programs.hyprland.package}/bin/hyprctl";
hyprlock = "${config.home-manager.users.${config.custom.username}.programs.hyprlock.package}/bin/hyprlock";
@ -147,7 +146,7 @@ in {
"9+${super}+${shift}" = "move to workspace 9";
"a+${super}" = "[con_mark=android] scratchpad show";
"a+${super}+${shift}" = "exec ${waydroid} session stop";
"b+${super}" = "exec ${firefox-esr}";
"b+${super}" = "exec ${config.custom.browser.command}";
"backslash+${super}" = "split toggle";
"backslash+${super}+${shift}" = "split none";
"backspace+${super}" = "focus mode_toggle";

View file

@ -99,7 +99,6 @@ in {
# (once "${rm} ~/.config/qalculate/qalc.dmenu.history") # Clear calc history
# (once "${rm} ~/.cache/cliphist/db") # Clear clipboard database
# (once firefox-esr)
];
};

View file

@ -7,7 +7,11 @@
with lib; let
cfg = config.custom.programs._1password;
in {
options.custom.programs._1password.enable = mkOption {default = false;};
options.custom.programs._1password = {
enable = mkOption {default = false;};
agent = mkOption {default = true;};
browser = mkOption {default = null;};
};
config = mkIf cfg.enable {
programs = {
@ -22,5 +26,23 @@ in {
polkitPolicyOwners = [config.custom.username]; # Desktop integration
};
};
# https://wiki.nixos.org/wiki/1Password#Unlocking_browser_extensions
environment.etc = mkIf (isString cfg.browser) {
"1password/custom_allowed_browsers" = {
mode = "0755";
text = ''
${cfg.browser}
'';
};
};
home-manager.users.${config.custom.username} = {
programs.ssh.extraConfig = mkIf cfg.agent ''
Host *
IdentityAgent ~/.1password/agent.sock
'';
};
};
}

View file

@ -1,35 +1,309 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.custom.programs.chromium;
in {
options.custom.programs.chromium.enable = mkOption {default = false;};
options.custom.programs.chromium = {
enable = mkOption {default = false;};
package = mkOption {default = pkgs.google-chrome;};
};
config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
config = mkIf cfg.enable {
# https://wiki.nixos.org/wiki/Chromium
# https://www.chromium.org/chromium-projects
programs.chromium = {
enable = true;
commandLineArgs = [
"--enable-features=OverlayScrollbar,ChromeRefresh2023,TabGroupsSave,TouchpadOverscrollHistoryNavigation"
];
# https://chromeenterprise.google/policies/
#?? chrome://policy
extraOpts = {
# HACK: Extensions are force-installed with programs.chromium.extensions option
# https://support.google.com/chrome/a/answer/9867568
# https://chromeenterprise.google/policies/#ExtensionSettings
ExtensionSettings = listToAttrs (map (id: {
name = id;
value = {
installation_mode = "normal_installed";
update_url = "https://clients2.google.com/service/update2/crx";
};
}) (optionals config.custom.default [
#// "cjpalhdlnbpafiamejdnhcphjbkeiagm" # uBlock Origin
"ddkjiahejlhfcafbddmgiahcphecmpfh" # uBlock Origin Lite
]
++ optionals config.custom.full [
"khgocmkkpikpnmmkgmdnfckapcdkgfaf" # 1Password Beta
#// "ajopnjidmegmdimjlfnijceegpefgped" # BetterTTV
#// "nngceckbapebfimnlniiiahkandclblb" # Bitwarden
#// "enamippconapkdmgfgjchkhakpfinmaj" # DeArrow
#// "fnaicdffflnofjppbagibeoednhnbjhg" # floccus
#// "bnomihfieiccainjcjblhegjgglakjdd" # Improve YouTube
"mnjggcdmjocbbbhaepdhchncahnbgone" # SponsorBlock
"clngdbkpkpeebahjckkjfobafhncgmne" # Stylus
#// "kfidecgcdjjfpeckbblhmfkhmlgecoff" # Svelte DevTools
#// "nplimhmoanghlebhdiboeellhgmgommi" # Tab Groups Extension
"enboaomnljigfhfjfoalacienlhjlfil" # UnTrap for YouTube
]));
extensions = [
#"ajopnjidmegmdimjlfnijceegpefgped" # BetterTTV
#"nngceckbapebfimnlniiiahkandclblb" # Bitwarden
#"enamippconapkdmgfgjchkhakpfinmaj" # DeArrow
#"fnaicdffflnofjppbagibeoednhnbjhg" # floccus
#"bnomihfieiccainjcjblhegjgglakjdd" # Improve YouTube
#"mnjggcdmjocbbbhaepdhchncahnbgone" # SponsorBlock
#"clngdbkpkpeebahjckkjfobafhncgmne" # Stylus
#"kfidecgcdjjfpeckbblhmfkhmlgecoff" # Svelte DevTools
#"nplimhmoanghlebhdiboeellhgmgommi" # Tab Groups Extension
"ddkjiahejlhfcafbddmgiahcphecmpfh" # uBlock Origin Lite
];
# https://chromeenterprise.google/policies/#DefaultSearchProvider
DefaultSearchProviderEnabled = true;
DefaultSearchProviderKeyword = "g";
DefaultSearchProviderName = "Google";
DefaultSearchProviderSearchURL = "{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:searchClient}{google:sourceId}ie={inputEncoding}";
DefaultSearchProviderSuggestURL = "{google:baseURL}complete/search?output=chrome&q={searchTerms}";
# https://chromeenterprise.google/policies/#SiteSearchSettings
SiteSearchSettings = [
{
name = "Amazon";
shortcut = "a";
url = "https://www.amazon.com/s?k={searchTerms}";
}
{
name = "ArchWiki";
shortcut = "aw";
url = "https://wiki.archlinux.org/index.php?search={searchTerms}";
}
{
name = "Brave";
shortcut = "b";
url = "https://search.brave.com/search?q={searchTerms}";
}
{
name = "DuckDuckGo";
shortcut = "d";
url = "https://duckduckgo.com/?q={searchTerms}";
}
{
name = "Docker Hub";
shortcut = "dh";
url = "https://hub.docker.com/search?q={searchTerms}";
}
{
name = "e621";
shortcut = "e";
url = "https://e621.net/posts?tags={searchTerms}";
}
{
name = "Element Issues";
shortcut = "ei";
url = "https://github.com/element-hq/element-web/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "Flathub";
shortcut = "fh";
url = "https://flathub.org/apps/search?q={searchTerms}";
}
{
name = "GitHub";
shortcut = "gh";
url = "https://github.com/search?q={searchTerms}";
}
{
name = "Home Manager Issues";
shortcut = "hi";
url = "https://github.com/nix-community/home-manager/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "Home Manager Options";
shortcut = "ho";
url = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";
}
{
name = "Hyprland Issues";
shortcut = "hyi";
url = "https://github.com/hyprwm/Hyprland/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "i3 Issues";
shortcut = "ii";
url = "https://github.com/i3/i3/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "Lutris";
shortcut = "l";
url = "https://lutris.net/games?q={searchTerms}";
}
{
name = "Lix Issues";
shortcut = "li";
url = "https://git.lix.systems/lix-project/lix/issues?state=open&q={searchTerms}";
}
{
name = "Mozilla Web Docs";
shortcut = "mdn";
url = "https://developer.mozilla.org/en-US/search?q={searchTerms}";
}
{
name = "MyNixOS Options";
shortcut = "mno";
url = "https://mynixos.com/search?q=option+{searchTerms}";
}
{
name = "Nix Dev";
shortcut = "nd";
url = "https://nix.dev/manual/nix/latest?search={searchTerms}";
}
{
name = "NixOS Flakes";
shortcut = "nf";
url = "https://search.nixos.org/flakes?channel=unstable&query={searchTerms}";
}
{
name = "Nix Hub";
shortcut = "nh";
url = "https://www.nixhub.io/search?q={searchTerms}";
}
{
name = "NixOS Nixpkgs Issues";
shortcut = "ni";
url = "https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "NixOS Options";
shortcut = "no";
url = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
}
{
name = "Noogle Dev";
shortcut = "nod";
url = "https://noogle.dev/q?term={searchTerms}";
}
{
name = "NixOS Packages";
shortcut = "np";
url = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";
}
{
name = "Nix PR";
shortcut = "npr";
url = "https://nixpk.gs/pr-tracker.html?pr={searchTerms}";
}
{
name = "NixOS Wiki";
shortcut = "nw";
url = "https://wiki.nixos.org/w/index.php?search={searchTerms}";
}
{
name = "Piped";
shortcut = "p";
url = "https://piped.bjork.tech/results?search_query={searchTerms}";
}
{
name = "PCGamingWiki";
shortcut = "pc";
url = "https://www.pcgamingwiki.com/w/index.php?search={searchTerms}";
}
{
name = "ProtonDB";
shortcut = "pdb";
url = "https://www.protondb.com/search?q={searchTerms}";
}
{
name = "PyPI";
shortcut = "pip";
url = "https://pypi.org/search/?q={searchTerms}";
}
{
name = "Reddit";
shortcut = "r";
url = "https://www.google.com/search?q=site%3Areddit.com+{searchTerms}";
}
{
name = "SearXNG";
shortcut = "s";
url = "https://search.bjork.tech/search?q={searchTerms}";
}
{
name = "Sway Issues";
shortcut = "si";
url = "https://github.com/swaywm/sway/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "Wikipedia";
shortcut = "w";
url = "https://en.wikipedia.org/w/index.php?search={searchTerms}";
}
{
name = "Wolfram Alpha";
shortcut = "wa";
url = "https://www.wolframalpha.com/input?i={searchTerms}";
}
{
name = "Walker Issues";
shortcut = "wi";
url = "https://github.com/abenz1267/walker/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
name = "YouTube";
shortcut = "y";
url = "https://www.youtube.com/results?search_query={searchTerms}";
}
];
};
};
home-manager.users.${config.custom.username} = {
programs.chromium = {
enable = true;
package = cfg.package;
# https://stackoverflow.com/questions/69363637/how-to-write-argument-for-chrome-chromiums-enable-features-flag
#?? https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/about_flags.cc
commandLineArgs = let
features = concatStringsSep "," [
"OverlayScrollbar"
# https://wiki.archlinux.org/title/Chromium#Touchpad_Gestures_for_Navigation
"TouchpadOverscrollHistoryNavigation"
];
in
[
"--enable-features=${features}"
]
++ optionals (cfg.package.pname == "brave") [
"--password-store=auto" # Fix secrets defaulting to kwallet
];
};
};
};
}

View file

@ -275,13 +275,6 @@ in {
URLTemplate = "https://search.brave.com/search?q={searchTerms}";
}
{
Name = "Docker Hub";
Alias = "dh";
IconURL = "https://hub.docker.com/favicon.ico";
URLTemplate = "https://hub.docker.com/search?q={searchTerms}";
}
{
Name = "Duck";
Alias = "d";
@ -290,6 +283,13 @@ in {
SuggestURLTemplate = "https://duckduckgo.com/ac/?type=list&q={searchTerms}";
}
{
Name = "Docker Hub";
Alias = "dh";
IconURL = "https://hub.docker.com/favicon.ico";
URLTemplate = "https://hub.docker.com/search?q={searchTerms}";
}
{
Name = "e621";
Alias = "e";
@ -311,13 +311,6 @@ in {
URLTemplate = "https://flathub.org/apps/search?q={searchTerms}";
}
{
Name = "GitHub";
Alias = "gh";
IconURL = "https://github.com/favicon.ico";
URLTemplate = "https://github.com/search?q={searchTerms}";
}
{
Name = "Google";
Alias = "g";
@ -326,10 +319,10 @@ in {
}
{
Name = "Home Manager Options";
Alias = "ho";
IconURL = "https://home-manager-options.extranix.com/images/favicon.png";
URLTemplate = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";
Name = "GitHub";
Alias = "gh";
IconURL = "https://github.com/favicon.ico";
URLTemplate = "https://github.com/search?q={searchTerms}";
}
{
@ -339,6 +332,13 @@ in {
URLTemplate = "https://github.com/nix-community/home-manager/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
Name = "Home Manager Options";
Alias = "ho";
IconURL = "https://home-manager-options.extranix.com/images/favicon.png";
URLTemplate = "https://home-manager-options.extranix.com/?query={searchTerms}&release=master";
}
{
Name = "Hyprland Issues";
Alias = "hyi";
@ -346,13 +346,6 @@ in {
URLTemplate = "https://github.com/hyprwm/Hyprland/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
Name = "Lix Issues";
Alias = "li";
IconURL = "https://git.lix.systems/assets/img/favicon.png";
URLTemplate = "https://git.lix.systems/lix-project/lix/issues?state=open&q={searchTerms}";
}
{
Name = "i3 Issues";
Alias = "ii";
@ -367,6 +360,13 @@ in {
URLTemplate = "https://lutris.net/games?q={searchTerms}";
}
{
Name = "Lix Issues";
Alias = "li";
IconURL = "https://git.lix.systems/assets/img/favicon.png";
URLTemplate = "https://git.lix.systems/lix-project/lix/issues?state=open&q={searchTerms}";
}
{
Name = "Mozilla Web Docs";
Alias = "mdn";
@ -388,19 +388,6 @@ in {
URLTemplate = "https://nix.dev/manual/nix/latest?search={searchTerms}";
}
{
Name = "Nix Hub";
Alias = "nh";
IconURL = "https://www.nixhub.io/favicon.ico";
URLTemplate = "https://www.nixhub.io/search?q={searchTerms}";
}
{
Name = "Nix PR";
Alias = "npr";
URLTemplate = "https://nixpk.gs/pr-tracker.html?pr={searchTerms}";
}
{
Name = "NixOS Flakes";
Alias = "nf";
@ -408,6 +395,13 @@ in {
URLTemplate = "https://search.nixos.org/flakes?channel=unstable&query={searchTerms}";
}
{
Name = "Nix Hub";
Alias = "nh";
IconURL = "https://www.nixhub.io/favicon.ico";
URLTemplate = "https://www.nixhub.io/search?q={searchTerms}";
}
{
Name = "NixOS Nixpkgs Issues";
Alias = "ni";
@ -415,6 +409,12 @@ in {
URLTemplate = "https://github.com/NixOS/nixpkgs/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
Name = "Nix PR";
Alias = "npr";
URLTemplate = "https://nixpk.gs/pr-tracker.html?pr={searchTerms}";
}
{
Name = "NixOS Options";
Alias = "no";
@ -422,6 +422,13 @@ in {
URLTemplate = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";
}
{
Name = "Noogle Dev";
Alias = "nod";
IconURL = "https://noogle.dev/favicon.png";
URLTemplate = "https://noogle.dev/q?term={searchTerms}";
}
{
Name = "NixOS Packages";
Alias = "np";
@ -437,10 +444,10 @@ in {
}
{
Name = "Noogle Dev";
Alias = "nod";
IconURL = "https://noogle.dev/favicon.png";
URLTemplate = "https://noogle.dev/q?term={searchTerms}";
Name = "Piped";
Alias = "p";
IconURL = "https://piped.bjork.tech/favicon.ico";
URLTemplate = "https://piped.bjork.tech/results?search_query={searchTerms}";
}
{
@ -450,13 +457,6 @@ in {
URLTemplate = "https://www.pcgamingwiki.com/w/index.php?search={searchTerms}";
}
{
Name = "Piped";
Alias = "p";
IconURL = "https://piped.bjork.tech/favicon.ico";
URLTemplate = "https://piped.bjork.tech/results?search_query={searchTerms}";
}
{
Name = "ProtonDB";
Alias = "pdb";
@ -475,7 +475,7 @@ in {
Name = "Reddit";
Alias = "r";
IconURL = "https://www.redditstatic.com/desktop2x/img/favicon/favicon-96x96.png";
URLTemplate = "https://search.brave.com/search?q=site%3Areddit.com+{searchTerms}";
URLTemplate = "https://www.google.com/search?q=site%3Areddit.com+{searchTerms}";
}
{
@ -492,13 +492,6 @@ in {
URLTemplate = "https://github.com/swaywm/sway/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
Name = "Walker Issues";
Alias = "wi";
IconURL = "https://github.com/favicon.ico";
URLTemplate = "https://github.com/abenz1267/walker/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
Name = "Wikipedia";
Alias = "w";
@ -513,6 +506,13 @@ in {
URLTemplate = "https://www.wolframalpha.com/input?i={searchTerms}";
}
{
Name = "Walker Issues";
Alias = "wi";
IconURL = "https://github.com/favicon.ico";
URLTemplate = "https://github.com/abenz1267/walker/issues?q=is%3Aissue+is%3Aopen+{searchTerms}";
}
{
Name = "YouTube";
Alias = "y";

View file

@ -16,14 +16,7 @@ in {
'';
home-manager.users.${config.custom.username} = {
programs.ssh = {
enable = true;
extraConfig = ''
Host *
IdentityAgent ~/.1password/agent.sock
'';
};
programs.ssh.enable = true;
# Work around FHS permissions
# https://github.com/nix-community/home-manager/issues/322#issuecomment-1856128020

View file

@ -71,8 +71,8 @@ case "$1" in
'ho '*)
label="Home Manager Options"
icon="home"
url="https://home-manager-options.extranix.com/?query="
query="${1:2}"
url="https://home-manager-options.extranix.com/?release=master&query="
query="${1:3}"
;;
'hyi '*)
label="Hyprland Issues"
@ -191,7 +191,7 @@ case "$1" in
'r '*)
label="Reddit"
icon="reddit"
url="https://search.brave.com/search?q=site%3Areddit.com+"
url="https://www.google.com/search?q=site%3Areddit.com+"
query="${1:2}"
;;
's '*)

View file

@ -61,8 +61,6 @@ in {
# ?? waybar --log-level debug
style = ''
${readFile ./style.css}
* {
border-radius: 50px;
color: #93a1a1;
@ -74,6 +72,8 @@ in {
.horizontal > box {
margin: 0 ${toString config.custom.gap}px ${toString config.custom.gap}px;
}
${readFile ./style.css}
'';
### SETTINGS ###

View file

@ -13,9 +13,27 @@ label:hover {
background: #073642;
}
menu {
border-radius: 20px;
padding: 4px;
}
menuitem {
padding: 4px;
}
menuitem label {
font-size: 16px;
}
tooltip {
opacity: 0;
/* background: #002b36; */
background: #002b36;
border-radius: 20px;
}
tooltip label {
font-size: 16px;
padding: 4px;
}
.active {

View file

@ -27,7 +27,7 @@ in {
# https://github.com/AdnanHodzic/auto-cpufreq/blob/master/auto-cpufreq.conf-example
settings = {
battery = {
energy_performance_preference = "balance_power";
energy_performance_preference = "power";
governor = "powersave";
platform_profile = "low-power";
scaling_max_freq = mkIf (isFloat cfg.max.battery || isInt cfg.max.battery) (builtins.floor (cfg.max.battery * 1000 * 1000)); # KHz

View file

@ -0,0 +1,15 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.custom.services.automatic-timezoned;
in {
options.custom.services.automatic-timezoned.enable = mkOption {default = false;};
config = mkIf cfg.enable {
# https://github.com/maxbrunet/automatic-timezoned
services.automatic-timezoned.enable = true;
};
}

View file

@ -6,16 +6,18 @@
with lib; {
config.custom.services = mkMerge [
(mkIf config.custom.default {
#// automatic-timezoned.enable = true;
#// agenix.enable = true;
geoclue2.enable = true;
#// netbird.enable = true;
tailscale.enable = true;
tzupdate.enable = true;
})
(mkIf config.custom.minimal {
dbus.enable = true;
flatpak.enable = true;
fwupd.enable = true;
geoclue2.enable = true;
#// kdeconnect.enable = true;
libinput.enable = true;
logind.enable = true;
@ -42,6 +44,7 @@ with lib; {
keyd.enable = true;
#// mako.enable = true;
#// network-manager-applet.enable = true;
power-profiles-daemon.enable = true;
samba.enable = true;
#// swayidle.enable = true;
swaync.enable = true;

View file

@ -23,7 +23,7 @@ in {
# TODO: Add keybinds
settings.general = {
brightness-day = 1;
brightness-night = 0.4;
brightness-night = 0.6;
};
};
};

View file

@ -7,7 +7,10 @@
with lib; let
cfg = config.custom.services.geoclue2;
in {
options.custom.services.geoclue2.enable = mkOption {default = false;};
options.custom.services.geoclue2 = {
enable = mkOption {default = false;};
static = mkOption {default = true;};
};
config = mkIf cfg.enable {
age.secrets = let
@ -17,28 +20,30 @@ in {
group = "geoclue";
};
in {
"common/geoclue2/geolocation" = secret "common/geoclue2/geolocation";
"common/geoclue2/geolocation" = mkIf cfg.static (secret "common/geoclue2/geolocation");
};
# https://gitlab.freedesktop.org/geoclue/geoclue
# FIXME: geoclue2 relies on MLS, which is retired
# https://github.com/NixOS/nixpkgs/issues/321121
# TODO: Use static source option when merged into unstable
# https://github.com/NixOS/nixpkgs/pull/329654
services.geoclue2 = {
enable = true;
# Overriden by static source
enable3G = false;
enableCDMA = false;
enableModemGPS = false;
enableNmea = false;
enableWifi = false;
};
services.geoclue2 =
{
enable = true;
}
// optionalAttrs cfg.static {
# TODO: Use static source option when merged into unstable
# https://github.com/NixOS/nixpkgs/pull/329654
# Overriden by static source
enable3G = false;
enableCDMA = false;
enableModemGPS = false;
enableNmea = false;
enableWifi = false;
};
# Manually use static source from coordinates
# https://github.com/NixOS/nixpkgs/issues/311595#issuecomment-2247989491
environment.etc = {
environment.etc = mkIf cfg.static {
"geolocation".source = config.age.secrets."common/geoclue2/geolocation".path;
"geoclue/conf.d/00-config.conf".text = ''

View file

@ -1,12 +1,18 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
powerprofilesctl = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl";
cfg = config.custom.services.power-profiles-daemon;
in {
options.custom.services.power-profiles-daemon.enable = mkOption {default = false;};
options.custom.services.power-profiles-daemon = {
enable = mkOption {default = false;};
auto = mkOption {default = true;};
};
config = mkIf cfg.enable {
# https://gitlab.freedesktop.org/upower/power-profiles-daemon
@ -14,7 +20,20 @@ in {
#?? powerprofilesctl set <performance|balanced|power-saver>
services = {
power-profiles-daemon.enable = true;
tlp.enable = false; # Conflicts with PPD
#!! Conflicts with power-profiles-daemon
auto-cpufreq.enable = false;
tlp.enable = false;
# Switch to power-saver mode when on battery
# https://wiki.archlinux.org/title/Power_management#Using_a_script_and_an_udev_rule
udev.extraRules = mkIf cfg.auto ''
# Battery
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="${powerprofilesctl} set power-saver"
# AC
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="${powerprofilesctl} set balanced"
'';
};
};
}

View file

@ -0,0 +1,15 @@
{
config,
lib,
...
}:
with lib; let
cfg = config.custom.services.tzupdate;
in {
options.custom.services.tzupdate.enable = mkOption {default = false;};
config = mkIf cfg.enable {
# https://github.com/cdown/tzupdate
services.tzupdate.enable = true;
};
}

View file

@ -22,9 +22,9 @@ in {
# Auto Move Windows
"org/gnome/shell/extensions/auto-move-windows" = {
application-list = mkArray type.string [
"${config.custom.browser.desktop}:1"
"codium.desktop:1"
"discord.desktop:1"
"firefox-esr.desktop:1"
"obsidian.desktop:1"
"org.telegram.desktop.desktop:1"
"signal-desktop.desktop:1"

View file

@ -152,7 +152,7 @@ in {
"org/gnome/shell" = {
favorite-apps = mkArray type.string [
"org.gnome.Nautilus.desktop"
"firefox-esr.desktop"
config.custom.browser.desktop
"signal-desktop.desktop"
"org.telegram.desktop.desktop"
"discord.desktop"

View file

@ -9,13 +9,10 @@ in {
options.custom.settings.environment = {
enable = mkOption {default = false;};
builder = mkOption {default = config.custom.full;};
timezone = mkOption {default = "America/Chicago";};
wayland = mkOption {default = config.custom.minimal;};
};
config = mkIf cfg.enable {
time.timeZone = cfg.timezone;
# https://wiki.nixos.org/wiki/Cross_Compiling
boot.binfmt.emulatedSystems = mkIf cfg.builder ["aarch64-linux"]; # Emulate architecture
#// nixpkgs.buildPlatform = "x86_64-linux"; # Binary caches often not available
@ -32,6 +29,7 @@ in {
# https://wiki.nixos.org/wiki/Wayland#Electron_and_Chromium
NIXOS_OZONE_WL = mkIf cfg.wayland "1";
ELECTRON_OZONE_PLATFORM_HINT = mkIf cfg.wayland "auto";
};
shellAliases = {

View file

@ -95,6 +95,7 @@ in {
gnome-boxes # Virtual machine manager
gnome-calculator # Calculator
gnome-calendar # Calendar
gnome-clocks # Clock
gnome-connections # Remote desktop client
gnome-disk-utility # Disk formatter
gnome-firmware # Firmware updater

View file

@ -8,7 +8,6 @@ with lib; let
clapper = "com.github.rafostar.Clapper.desktop";
decibels = "org.gnome.Decibels.desktop";
file-roller = "org.gnome.File Roller.desktop";
firefox-esr = "firefox-esr.desktop";
font-viewer = "org.gnome.font-viewer.desktop";
gnome-text-editor = "org.gnome.TextEditor.desktop";
libreoffice = "base.desktop";
@ -131,8 +130,8 @@ in {
"text/x-scss" = gnome-text-editor;
"video/mp4" = clapper;
"video/x-matroska" = clapper;
"x-scheme-handler/http" = firefox-esr;
"x-scheme-handler/https" = firefox-esr;
"x-scheme-handler/http" = config.custom.browser.desktop;
"x-scheme-handler/https" = config.custom.browser.desktop;
};
};

View file

@ -3,6 +3,5 @@
full = true;
profile = "desktop";
wallpaper = true;
services.power-profiles-daemon.enable = true;
};
}

View file

@ -2,11 +2,6 @@
custom = {
full = true;
profile = "desktop"; # Inherit desktop
services = {
#// auto-cpufreq.enable = true;
power-profiles-daemon.enable = true;
};
};
#!! Rebuild offline - drastically increases initial download and resulting closure size