aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-03-23 11:25:46 -0500
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2026-03-23 11:25:46 -0500
commit716a1d1f79024dc0629c61bc912a570a4a200a25 (patch)
tree1b3dc0528840600074735563a6e5d00744f071d4
parent8534fc63c30a25856d75cc5787da93acb823c533 (diff)
group mercury cleanup and firefox config updates
-rw-r--r--AGENTS.md192
-rw-r--r--flake.lock34
-rw-r--r--flake.nix9
-rw-r--r--hosts/mercury/battery.nix2
-rw-r--r--hosts/mercury/config.nix5
-rw-r--r--hosts/mercury/hjem.nix14
-rw-r--r--hosts/mercury/nixos.nix9
-rw-r--r--modules/desktop/hjem/programs/firefox.nix56
-rw-r--r--modules/desktop/hjem/programs/research.nix1
-rw-r--r--modules/desktop/hjem/wm/sway.nix150
-rw-r--r--modules/desktop/nixos/programs/firefox.nix6
-rw-r--r--modules/terminal/hjem/programs/fish.nix2
12 files changed, 347 insertions, 133 deletions
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..dfd8a42
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,192 @@
+# AGENTS.md
+
+Guidance for agentic coding assistants working in this repository.
+
+## 1) Project Snapshot
+
+- Repo type: NixOS flake-based configuration repo.
+- Core pattern: "homogenous modules" (shared `options.nix` + `nixos/default.nix` + `hjem/default.nix`).
+- Main namespace for custom options: `collinux`.
+- Hosts currently configured: `mercury`, `jupiter`, `ganymede`.
+- Deployment helper: custom `yo` command (Ruby wrapper around `nix`/`nom`).
+
+## 2) Rule Files Discovery
+
+The following rule files were checked:
+
+- `.cursor/rules/**`: not found
+- `.cursorrules`: not found
+- `.github/copilot-instructions.md`: not found
+
+No Cursor/Copilot-specific rules are currently present in this repository.
+
+## 3) Directory Landmarks
+
+- `flake.nix`: top-level inputs/outputs, host definitions.
+- `hosts/<hostname>/config.nix`: host-level declarative settings.
+- `modules/`: feature modules (desktop, terminal, services, system, etc.).
+- `lib/nix-furnace/mkSystem.nix`: module wiring and host assembly.
+- `lib/lib.nix`: custom helper library (`my-lib`).
+- `pkgs/yo/`: Ruby deploy/build helper package.
+- `pkgs/yossh/`: Lua SSH helper package + lightweight tests.
+- `docs/homogenous_modules.md`: architecture background.
+
+## 4) Build / Check / Deploy Commands
+
+Run from repo root: `/home/collin/nixos`.
+
+### Core build commands
+
+- Build current host and activate immediately:
+ - `yo switch`
+ - alias: `yo sw`
+- Build current host and activate on next boot:
+ - `yo boot`
+- Build current host and test activation (non-persistent):
+ - `yo test`
+- Build a specific host configuration without switching:
+ - `yo build <hostname>`
+- Build current hostname (auto-detected):
+ - `yo build`
+
+### Direct nix builds
+
+- Build one host toplevel derivation:
+ - `nix build .#nixosConfigurations.<hostname>.config.system.build.toplevel`
+- Build generated docs package:
+ - `nix build .#docs`
+- Build default package output:
+ - `nix build`
+
+### Deploy commands
+
+- Deploy via custom wrapper (see `pkgs/yo/default.nix` behavior):
+ - `yo deploy <ssh-host-or-user@host>`
+ - alias: `yo dep <ssh-host-or-user@host>`
+
+Note: Some docs mention `yo deploy <hostname> <ssh-host>`; current code path derives hostname
+from the SSH target argument.
+
+## 5) Lint / Format / Validation
+
+There is no single repo-wide lint target committed (no Makefile/justfile/pre-commit config found).
+
+Use these practical checks:
+
+- Nix syntax/eval sanity via host build:
+ - `yo build <hostname>`
+ - or `nix build .#nixosConfigurations.<hostname>.config.system.build.toplevel`
+- Option docs generation as additional eval coverage:
+ - `nix build .#docs`
+- Format Nix files with Alejandra (formatter used in editor config):
+ - `nix run nixpkgs#alejandra -- .`
+
+If you add new tool-specific linting, document the exact command in this file.
+
+## 6) Test Commands (Including Single-Test Guidance)
+
+### Repository-level tests
+
+- No centralized automated test suite is wired at repo root.
+- The most test-like validation is successful Nix evaluation/build per host.
+
+### `pkgs/yossh` Lua tests
+
+- Test file exists: `pkgs/yossh/tests/unit_tests.lua`.
+- Run file directly:
+ - `lua pkgs/yossh/tests/unit_tests.lua`
+
+Important: current file defines tests and `main()` but does not call `main()` at EOF.
+Running it as-is may not execute assertions unless the file is updated.
+
+### Running a single test
+
+There is no built-in single-test runner flag today.
+
+Recommended workflow for single-test execution:
+
+1. Temporarily edit `pkgs/yossh/tests/unit_tests.lua` so `main()` calls only one test function.
+2. Run `lua pkgs/yossh/tests/unit_tests.lua`.
+3. Revert the temporary test-selection edit before committing.
+
+If you frequently need single-test runs, introduce a minimal CLI test selector and document it here.
+
+## 7) Architecture Conventions You Must Preserve
+
+- Keep host configs declarative attribute sets, not functions.
+- Keep module option definitions in `options.nix` files.
+- Keep NixOS implementation under `nixos/default.nix`.
+- Keep hjem implementation under `hjem/default.nix`.
+- Prefer adding features by extending existing module trees, not ad-hoc host logic.
+- Use `my-lib` helpers when patterns already exist (`mkProgramOption`, `mkThemeOption`, etc.).
+- Keep custom options under `collinux.*` to avoid collisions.
+
+## 8) Code Style Guide
+
+### General
+
+- Match existing style in touched files; do not mass-reformat unrelated code.
+- Keep diffs focused and minimal.
+- Prefer explicit, descriptive names over abbreviations.
+- Avoid adding comments unless logic is non-obvious.
+
+### Nix style
+
+- Indentation: 2 spaces; no tabs.
+- Favor argument destructuring at top:
+ - `{ pkgs, lib, config, ... }:` style.
+- Common structure:
+ - bind `cfg = config.collinux.<path>;` in `let`.
+ - gate behavior with `lib.mkIf cfg.enable` where relevant.
+- Prefer `inherit (lib) ...` for imported lib symbols.
+- Keep `imports` lists clean and stable; one module per line.
+- Use `mkOption`/`mkEnableOption` for options; include `description`, `type`, and sensible defaults.
+- Use precise types (`types.port`, custom net types, `nullOr`, submodules) rather than loose strings.
+- Prefer pure expressions and deterministic outputs.
+
+### Import and dependency conventions
+
+- Reuse local helpers from `my-lib` before adding new helper patterns.
+- In modules, keep imports relative and predictable (`./foo.nix`, `./default.nix`).
+- Avoid circular/implicit dependencies across module families.
+
+### Naming conventions
+
+- Nix option paths: lower camelCase segments under `collinux`.
+- Files/modules: lowercase names, hyphenated when appropriate.
+- Lua locals/functions: mostly snake_case in core library; preserve local file conventions.
+- Ruby methods: snake_case; class/module names: CamelCase.
+
+### Types and validation
+
+- Add/keep explicit option types whenever possible.
+- Use custom validators from `my-lib.netTypes` for network values.
+- For structured config, prefer typed submodules over freeform attrs.
+
+### Error handling
+
+- Fail early with clear messages (`assertions`, explicit `error`/`raise`).
+- In scripts/wrappers, check command success and raise on failure.
+- Do not swallow errors from builds, copy, deploy, or switch operations.
+
+### Secrets and security
+
+- Never commit plaintext secrets.
+- Use agenix-managed `.age` files and declared secret paths.
+- Preserve service hardening settings unless there is a clear reason to change.
+
+## 9) Agent Workflow Expectations
+
+- Before changing behavior, read nearby module/options files to follow local patterns.
+- Prefer validating with a targeted host build after Nix edits.
+- If touching deployment logic, test with non-destructive build paths first.
+- Keep commit scope tight: one logical change per commit.
+- Update docs when command behavior or module patterns change.
+
+## 10) Definition of Done (for automated agents)
+
+- Code compiles/evaluates for affected host(s) via `yo build <hostname>` or equivalent.
+- New/changed options are typed and documented by structure.
+- Formatting is consistent with current repository conventions.
+- No plaintext secrets introduced.
+- Any new commands, checks, or test entrypoints are reflected in this `AGENTS.md`.
diff --git a/flake.lock b/flake.lock
index 6bd3280..4544044 100644
--- a/flake.lock
+++ b/flake.lock
@@ -164,6 +164,22 @@
"type": "github"
}
},
+ "fx-autoconfig": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1773035931,
+ "narHash": "sha256-vOsXpuU2XlbIfXGm1RJicY8ghbkU5FvnctQMBMXCXbs=",
+ "owner": "MrOtherGuy",
+ "repo": "fx-autoconfig",
+ "rev": "8da9268f7afcbf5d438b099e976fe8aa46a111d0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "MrOtherGuy",
+ "repo": "fx-autoconfig",
+ "type": "github"
+ }
+ },
"gitignore": {
"inputs": {
"nixpkgs": [
@@ -405,6 +421,7 @@
"copyparty": "copyparty",
"disko": "disko",
"firefox-csshacks": "firefox-csshacks",
+ "fx-autoconfig": "fx-autoconfig",
"glide-browser": "glide-browser",
"hjem": "hjem",
"lanzaboote": "lanzaboote",
@@ -412,6 +429,7 @@
"nixos-facter-modules": "nixos-facter-modules",
"nixpkgs": "nixpkgs",
"tmux-tsunami": "tmux-tsunami",
+ "uc-css-js": "uc-css-js",
"vermilion": "vermilion",
"yoshi-lua": "yoshi-lua"
}
@@ -533,6 +551,22 @@
"type": "github"
}
},
+ "uc-css-js": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1767720625,
+ "narHash": "sha256-VrOgKNPJ3iTRqXqHYQz8UrZ6FpC1vHWwgy11AAfe4o8=",
+ "owner": "aminomancer",
+ "repo": "uc.css.js",
+ "rev": "88514013ddc375f4770f4a35d8d07a91d6dd7d8f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "aminomancer",
+ "repo": "uc.css.js",
+ "type": "github"
+ }
+ },
"vermilion": {
"inputs": {
"nixpkgs": "nixpkgs_2"
diff --git a/flake.nix b/flake.nix
index d07a405..3a70fd3 100644
--- a/flake.nix
+++ b/flake.nix
@@ -53,6 +53,7 @@
flake = false;
};
+ # firefox modding stuff
firefox-csshacks = {
url = "github:MrOtherGuy/firefox-csshacks";
flake = false;
@@ -61,6 +62,14 @@
url = "github:yokoffing/Betterfox";
flake = false;
};
+ fx-autoconfig = {
+ url = "github:MrOtherGuy/fx-autoconfig";
+ flake = false;
+ };
+ uc-css-js = {
+ url = "github:aminomancer/uc.css.js";
+ flake = false;
+ };
};
outputs = inputs: let
diff --git a/hosts/mercury/battery.nix b/hosts/mercury/battery.nix
index d3f2e90..0aaa3cd 100644
--- a/hosts/mercury/battery.nix
+++ b/hosts/mercury/battery.nix
@@ -1,4 +1,4 @@
-{pkgs, ...}: {
+{...}: {
# auto-cpufreq
services.power-profiles-daemon.enable = false; # conflicts with auto-cpufreq
services.tlp.enable = false; # conflicts with auto-cpufreq
diff --git a/hosts/mercury/config.nix b/hosts/mercury/config.nix
index a8b191b..12518f4 100644
--- a/hosts/mercury/config.nix
+++ b/hosts/mercury/config.nix
@@ -33,7 +33,10 @@
};
programs = {
- firefox.enable = true;
+ firefox = {
+ enable = true;
+ extensions.zotero.enable = false;
+ };
foot.enable = true;
research.enable = true;
diff --git a/hosts/mercury/hjem.nix b/hosts/mercury/hjem.nix
index 1e87ddd..afdf861 100644
--- a/hosts/mercury/hjem.nix
+++ b/hosts/mercury/hjem.nix
@@ -3,17 +3,14 @@
obsidian
anki
libreoffice-qt
+ musescore
- kdePackages.kleopatra
prismlauncher
mpv
+ bluetuith
opencode
- musescore
- vital
-
- bluetuith
(pkgs.callPackage ../../pkgs/yo {})
captive-browser # https://words.filippo.io/captive-browser
@@ -25,6 +22,13 @@
terminal = false;
categories = ["Application"];
})
+
+ (pkgs.writeShellScriptBin "battery.sh" ''
+ energy_now=$(cat /sys/class/power_supply/BAT0/energy_now)
+ energy_full=$(cat /sys/class/power_supply/BAT0/energy_full)
+ percentage=$((energy_now * 100 / energy_full))
+ printf "%.0f%%" "$percentage"
+ '')
];
files.".config/captive-browser.toml".text = ''
diff --git a/hosts/mercury/nixos.nix b/hosts/mercury/nixos.nix
index 46153ae..3f5c0b0 100644
--- a/hosts/mercury/nixos.nix
+++ b/hosts/mercury/nixos.nix
@@ -1,6 +1,5 @@
{
lib,
- pkgs,
inputs,
config,
...
@@ -67,14 +66,6 @@
ProxyJump collin@ganymede
'';
- ## UUGGGG I DINT"W ATNT TO DO THIS
- programs.nix-ld = {
- enable = true;
- libraries = with pkgs; [
- libGL
- ];
- };
-
programs.firefox.policies.ExtensionSettings = {
"foxyproxy@eric.h.jung" = {
installation_mode = "force_installed";
diff --git a/modules/desktop/hjem/programs/firefox.nix b/modules/desktop/hjem/programs/firefox.nix
index 2078e3c..46d2dd5 100644
--- a/modules/desktop/hjem/programs/firefox.nix
+++ b/modules/desktop/hjem/programs/firefox.nix
@@ -8,10 +8,12 @@
cfg = config.collinux.desktop.programs.firefox;
mkCssHacks = hacks: hacks |> map (f: ''@import "${inputs.firefox-csshacks}/chrome/${f}.css";'') |> lib.concatStringsSep "\n";
+
+ profileDir = ".config/mozilla/firefox/collin";
in
lib.mkIf cfg.enable {
files = {
- ".mozilla/firefox/profiles.ini" = {
+ ".config/mozilla/firefox/profiles.ini" = {
generator = lib.generators.toINI {};
value = {
Profile0 = {
@@ -27,32 +29,38 @@ in
};
};
- ".mozilla/firefox/collin/user.js".source = "${inputs.betterfox}/user.js";
+ "${profileDir}/user.js".source = "${inputs.betterfox}/user.js";
+
+ "${profileDir}/chrome/utils".source = "${inputs.fx-autoconfig}/profile/chrome/utils";
+
+ "${profileDir}/chrome/JS/test.uc.js".source = "${inputs.fx-autoconfig}/profile/chrome/JS/test.uc.js";
+
+ "${profileDir}/chrome/JS/aboutUserChrome.sys.mjs".source = "${inputs.uc-css-js}/JS/aboutUserChrome.sys.mjs";
+ "${profileDir}/chrome/resources/aboutuserchrome".source = "${inputs.uc-css-js}/resources/aboutuserchrome";
+
+ "${profileDir}/chrome/JS/appMenuMods.uc.js".source = "${inputs.uc-css-js}/JS/appMenuMods.uc.js";
- ".mozilla/firefox/collin/chrome/userChrome.css".text = mkCssHacks (
- # (lib.optional (cfg.theme == "adwaita") "window_control_placeholder_support") ++
- [
- # Tabs
- (
- if cfg.theme == "catppuccin"
- then "hide_tabs_with_one_tab"
- else "hide_tabs_with_one_tab_w_window_controls"
- )
- "tabs_on_bottom_v2"
- "tab_close_button_always_on_hover"
- "tabs_fill_available_width"
+ "${profileDir}/chrome/userChrome.css".text = mkCssHacks [
+ # Tabs
+ (
+ if cfg.theme == "catppuccin"
+ then "hide_tabs_with_one_tab"
+ else "hide_tabs_with_one_tab_w_window_controls"
+ )
+ "tabs_on_bottom_v2"
+ "tab_close_button_always_on_hover"
+ "tabs_fill_available_width"
- # Icons!
- "iconized_main_menu"
- "iconized_menubar_items"
- "iconized_places_context_menu"
- "iconized_tabs_context_menu"
- "icon_only_context_menu_text_controls"
+ # Icons!
+ "iconized_main_menu"
+ # "iconized_menubar_items"
+ "iconized_places_context_menu"
+ "iconized_tabs_context_menu"
+ "icon_only_context_menu_text_controls"
- # Other
- "compact_extensions_panel"
- ]
- );
+ # Other
+ "compact_extensions_panel"
+ ];
};
packages = [pkgs.firefox];
diff --git a/modules/desktop/hjem/programs/research.nix b/modules/desktop/hjem/programs/research.nix
index 1646e0c..89bcfca 100644
--- a/modules/desktop/hjem/programs/research.nix
+++ b/modules/desktop/hjem/programs/research.nix
@@ -8,7 +8,6 @@
in
lib.mkIf cfg.enable {
packages = with pkgs; [
- zotero
zathura
xournalpp
ocrmypdf
diff --git a/modules/desktop/hjem/wm/sway.nix b/modules/desktop/hjem/wm/sway.nix
index 0e5edb2..03450d2 100644
--- a/modules/desktop/hjem/wm/sway.nix
+++ b/modules/desktop/hjem/wm/sway.nix
@@ -6,112 +6,78 @@
}: let
cfg = config.collinux.desktop.wm.sway;
- colors = ''
- set $rosewater #f5e0dc
- set $flamingo #f2cdcd
- set $pink #f5c2e7
- set $mauve #cba6f7
- set $red #f38ba8
- set $maroon #eba0ac
- set $peach #fab387
- set $yellow #f9e2af
- set $green #a6e3a1
- set $teal #94e2d5
- set $sky #89dceb
- set $sapphire #74c7ec
- set $blue #89b4fa
- set $lavender #b4befe
- set $text #cdd6f4
- set $subtext1 #bac2de
- set $subtext0 #a6adc8
- set $overlay2 #9399b2
- set $overlay1 #7f849c
- set $overlay0 #6c7086
- set $surface2 #585b70
- set $surface1 #45475a
- set $surface0 #313244
- set $base #1e1e2e
- set $mantle #181825
- set $crust #11111b
- '';
-
- settings = ''
- exec ${config.collinux.desktop.wallpaper_cmd}
- exec ${pkgs.dunst}/bin/dunst
- exec ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP GTK_USE_PORTAL NIXOS_OZONE_WL MOZ_ENABLE_WAYLAND
-
- include catppuccin-mocha
-
- # target title bg text indicator border
- client.focused $lavender $base $text $rosewater $blue
- client.focused_inactive $overlay0 $base $text $rosewater $overlay0
- client.unfocused $overlay0 $base $text $rosewater $overlay0
- client.urgent $peach $base $peach $overlay0 $peach
- client.placeholder $overlay0 $base $text $overlay0 $overlay0
- client.background $base
-
- input type:keyboard {
- xkb_options caps:none
+ settings = with config.collinux.palette; ''
+ exec {
+ ${config.collinux.desktop.wallpaper_cmd}
+ ${pkgs.dunst}/bin/dunst
+ ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP GTK_USE_PORTAL NIXOS_OZONE_WL MOZ_ENABLE_WAYLAND
}
- input type:touchpad {
- dwt disabled
- }
-
- bindsym Mod4+1 workspace number 1
- bindsym Mod4+2 workspace number 2
- bindsym Mod4+3 workspace number 3
- bindsym Mod4+4 workspace number 4
- bindsym Mod4+5 workspace number 5
- bindsym Mod4+6 workspace number 6
- bindsym Mod4+7 workspace number 7
- bindsym Mod4+8 workspace number 8
- bindsym Mod4+9 workspace number 9
+ # target title bg text indicator border
+ client.focused #${base07} #${base00} #${base05} #${base06} #${base13}
+ client.focused_inactive #${base03} #${base00} #${base05} #${base06} #${base03}
+ client.unfocused #${base03} #${base00} #${base05} #${base06} #${base03}
+ client.urgent #${base09} #${base00} #${base09} #${base03} #${base09}
+ client.placeholder #${base03} #${base00} #${base05} #${base03} #${base03}
+ client.background #${base00}
- bindsym Mod4+Shift+1 move container to workspace number 1
- bindsym Mod4+Shift+2 move container to workspace number 2
- bindsym Mod4+Shift+3 move container to workspace number 3
- bindsym Mod4+Shift+4 move container to workspace number 4
- bindsym Mod4+Shift+5 move container to workspace number 5
- bindsym Mod4+Shift+6 move container to workspace number 6
- bindsym Mod4+Shift+7 move container to workspace number 7
- bindsym Mod4+Shift+8 move container to workspace number 8
- bindsym Mod4+Shift+9 move container to workspace number 9
+ input {
+ type:keyboard xkb_options caps:none
+ type:touchpad dwt disabled
+ }
- bindsym Mod4+Return exec ${pkgs.foot}/bin/foot
- bindsym Mod4+Space exec tofi-drun
- bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox
- bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser
- bindsym Mod4+q kill
+ default_border pixel 2
+ default_floating_border pixel 2
+ smart_borders on
+ smart_gaps on
- bindsym Mod4+w exec '${pkgs.iwmenu}/bin/iwmenu -l fuzzel -i font -s 2'
+ floating_modifier Mod4 normal
+ default_orientation auto
- bindsym Mod4+Shift+s exec '${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" ~/Pictures/$(date +"%s_grim.png")'
- bindsym Mod4+Alt+s exec '${pkgs.hyprpicker}/bin/hyprpicker'
+ bindsym {
+ Mod4+1 workspace number 1
+ Mod4+2 workspace number 2
+ Mod4+3 workspace number 3
+ Mod4+4 workspace number 4
+ Mod4+5 workspace number 5
+ Mod4+6 workspace number 6
+ Mod4+7 workspace number 7
+ Mod4+8 workspace number 8
+ Mod4+9 workspace number 9
- bindsym XF86AudioRaiseVolume exec 'util.lua volume up'
- bindsym XF86AudioLowerVolume exec 'util.lua volume down'
+ Mod4+Shift+1 move container to workspace number 1
+ Mod4+Shift+2 move container to workspace number 2
+ Mod4+Shift+3 move container to workspace number 3
+ Mod4+Shift+4 move container to workspace number 4
+ Mod4+Shift+5 move container to workspace number 5
+ Mod4+Shift+6 move container to workspace number 6
+ Mod4+Shift+7 move container to workspace number 7
+ Mod4+Shift+8 move container to workspace number 8
+ Mod4+Shift+9 move container to workspace number 9
- bindsym XF86MonBrightnessUp exec 'util.lua brightness up'
- bindsym XF86MonBrightnessDown exec 'util.lua brightness down'
+ Mod4+q kill
- bindsym Home exec 'util.lua music prev'
- bindsym End exec 'util.lua music toggle'
- bindsym Insert exec 'util.lua music next'
+ Mod4+Return exec ${pkgs.foot}/bin/foot
+ Mod4+Space exec tofi-drun
+ Mod4+b exec ${pkgs.firefox}/bin/firefox
+ Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser
+ Mod4+w exec '${pkgs.iwmenu}/bin/iwmenu -l fuzzel -i font -s 2'
- default_border pixel 2
- default_floating_border pixel 2
- smart_borders on
- smart_gaps on
+ Mod4+Shift+s exec '${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" ~/Pictures/$(date +"%s_grim.png")'
+ Mod4+Alt+s exec '${pkgs.hyprpicker}/bin/hyprpicker'
- floating_modifier Mod4 normal
+ Home exec 'util.lua music prev'
+ End exec 'util.lua music toggle'
+ Insert exec 'util.lua music next'
+ XF86AudioRaiseVolume exec 'util.lua volume up'
+ XF86AudioLowerVolume exec 'util.lua volume down'
+ XF86MonBrightnessUp exec 'util.lua brightness up'
+ XF86MonBrightnessDown exec 'util.lua brightness down'
+ }
'';
in
lib.mkIf cfg.enable {
- files = {
- ".config/sway/config".text = settings;
- ".config/sway/catppuccin-mocha".text = colors;
- };
+ files.".config/sway/config".text = settings;
packages = with pkgs; [
sway
diff --git a/modules/desktop/nixos/programs/firefox.nix b/modules/desktop/nixos/programs/firefox.nix
index b0163aa..61e7b7d 100644
--- a/modules/desktop/nixos/programs/firefox.nix
+++ b/modules/desktop/nixos/programs/firefox.nix
@@ -1,6 +1,7 @@
{
lib,
config,
+ inputs,
...
}: let
cfg = config.collinux.desktop.programs.firefox;
@@ -8,6 +9,11 @@ in
lib.mkIf cfg.enable {
programs.firefox = {
enable = true;
+
+ autoConfigFiles = [
+ "${inputs.fx-autoconfig}/program/config.js"
+ ];
+
policies = {
PasswordManagerEnabled = false; # use bitwarden instead
DisableAccounts = true;
diff --git a/modules/terminal/hjem/programs/fish.nix b/modules/terminal/hjem/programs/fish.nix
index 34f8496..3210dcf 100644
--- a/modules/terminal/hjem/programs/fish.nix
+++ b/modules/terminal/hjem/programs/fish.nix
@@ -20,6 +20,8 @@ in
set -gx CARGO_HOME "$XDG_DATA_HOME/cargo"
set -gx ANDROID_USER_HOME "$XDG_DATA_HOME/android"
set -gx WINE_PREFIX "$XDG_DATA_HOME/wine"
+
+ set -gx PYTHON_HISTORY "/dev/null"
'';
".config/fish/config.fish".text = ''