istg i have to make smaller commits
This commit is contained in:
parent
1ed9ce6864
commit
29473532c7
28 changed files with 483 additions and 361 deletions
147
flake.lock
generated
147
flake.lock
generated
|
@ -9,11 +9,11 @@
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1718244058,
|
"lastModified": 1719461007,
|
||||||
"narHash": "sha256-u32PPPpJl6SlJDbSR6AI8HvW5+68OrX/Q5OMwf1TfFk=",
|
"narHash": "sha256-1Tayi+LGCNB2mPaBdQ4k6TXTBjTDq82aFj0qQtoM8P0=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "3596f5b5f25caa9d0da1ce09bfd94ee65b4bb1eb",
|
"rev": "40d828403e999d99480fe53940a2f376599bde95",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -73,7 +73,9 @@
|
||||||
},
|
},
|
||||||
"flake-parts": {
|
"flake-parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717285511,
|
"lastModified": 1717285511,
|
||||||
|
@ -220,11 +222,11 @@
|
||||||
},
|
},
|
||||||
"hardware": {
|
"hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718349360,
|
"lastModified": 1719413427,
|
||||||
"narHash": "sha256-SuPne4BMqh9/IkKIAG47Cu5qfmntAaqlHdX1yuFoDO0=",
|
"narHash": "sha256-WS087+fEO804gWvwqEfclbLFw6xdrrtZZULSyQafMdg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "ae5c8dcc4d0182d07d75df2dc97112de822cb9d6",
|
"rev": "901bc809b5d3e73a609a167385df23311d81b39c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -263,11 +265,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718243258,
|
"lastModified": 1719438532,
|
||||||
"narHash": "sha256-abBpj2VU8p6qlRzTU8o22q68MmOaZ4v8zZ4UlYl5YRU=",
|
"narHash": "sha256-/Vmso2ZMoFE3M7d1MRsQ2K5sR8CVKnrM6t1ys9Xjpz4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "8d5e27b4807d25308dfe369d5a923d87e7dbfda3",
|
"rev": "1a4f12ae0bda877ec4099b429cf439aad897d7e9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -283,7 +285,10 @@
|
||||||
"git-hooks": "git-hooks",
|
"git-hooks": "git-hooks",
|
||||||
"hercules-ci-effects": "hercules-ci-effects",
|
"hercules-ci-effects": "hercules-ci-effects",
|
||||||
"neovim-src": "neovim-src",
|
"neovim-src": "neovim-src",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": [
|
||||||
|
"small-nvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718512978,
|
"lastModified": 1718512978,
|
||||||
|
@ -322,11 +327,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718011381,
|
"lastModified": 1719111455,
|
||||||
"narHash": "sha256-sFXI+ZANp/OC+MwfJoZgPSf4xMdtzQMe1pS3FGti4C8=",
|
"narHash": "sha256-rnIxHx+fLpydjMQsbpZ21kblUr/lMqSaAtMA4+qMMEE=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "88ad3d7501e22b2401dd72734b032b7baa794434",
|
"rev": "4293f532d0107dfb7e6f8b34a0421dc8111320e6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -339,14 +344,16 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718242391,
|
"lastModified": 1719451583,
|
||||||
"narHash": "sha256-WhxFBlbO63SoapmTuFjby8z+XADbac8IKoLjAO5I2zk=",
|
"narHash": "sha256-2FHGp9cH5q42yVdYAfLjMCYJgr+VYfMW4LYmCOptlpg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-vscode-extensions",
|
"repo": "nix-vscode-extensions",
|
||||||
"rev": "fd5d22a81cd2aa22c59484247e1fefd144e4dc20",
|
"rev": "4157bcc67488e09407f5edc130ebf62c1a1a1433",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -357,55 +364,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713805509,
|
"lastModified": 1719254875,
|
||||||
"narHash": "sha256-YgSEan4CcrjivCNO5ZNzhg7/8ViLkZ4CB/GrGBVSudo=",
|
"narHash": "sha256-ECni+IkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko=",
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "1e1dc66fe68972a76679644a5577828b6a7e8be4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717284937,
|
|
||||||
"narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-stable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717880976,
|
|
||||||
"narHash": "sha256-BRvSCsKtDUr83NEtbGfHLUOdDK0Cgbezj2PtcHnz+sQ=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "4913a7c3d8b8d00cb9476a6bd730ff57777f740c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "release-23.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718160348,
|
|
||||||
"narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=",
|
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "57d6973abba7ea108bac64ae7629e7431e0199b6",
|
"rev": "2893f56de08021cffd9b6b6dfc70fd9ccd51eb60",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -415,38 +378,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718276985,
|
|
||||||
"narHash": "sha256-u1fA0DYQYdeG+5kDm1bOoGcHtX0rtC7qs2YA2N1X++I=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "3f84a279f1a6290ce154c5531378acc827836fbb",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1717774105,
|
|
||||||
"narHash": "sha256-HV97wqUQv9wvptiHCb3Y0/YH0lJ60uZ8FYfEOIzYEqI=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "d226935fd75012939397c83f6c385e4d6d832288",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"firefox-addons": "firefox-addons",
|
"firefox-addons": "firefox-addons",
|
||||||
|
@ -455,7 +386,7 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nix-vscode-extensions": "nix-vscode-extensions",
|
"nix-vscode-extensions": "nix-vscode-extensions",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs",
|
||||||
"small-nvim": "small-nvim",
|
"small-nvim": "small-nvim",
|
||||||
"sops-nix": "sops-nix"
|
"sops-nix": "sops-nix"
|
||||||
}
|
}
|
||||||
|
@ -469,11 +400,11 @@
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719105734,
|
"lastModified": 1719854753,
|
||||||
"narHash": "sha256-Sa2qKc985UTUA7gJ15eb6CjOYwAqfMmL3f0uVnKNzeQ=",
|
"narHash": "sha256-ms8pMyIK4FGV8UaPrZP7CWNrEGJlcKnQcUPONglz3Zg=",
|
||||||
"owner": "xunuwu",
|
"owner": "xunuwu",
|
||||||
"repo": "small-nvim",
|
"repo": "small-nvim",
|
||||||
"rev": "d71d15304a37db9b9ef712f03a4ec7928dfb9783",
|
"rev": "02f87ed2eff21db2ef7b672e4e89638643d0b0cd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -484,15 +415,19 @@
|
||||||
},
|
},
|
||||||
"sops-nix": {
|
"sops-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": [
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718137936,
|
"lastModified": 1719268571,
|
||||||
"narHash": "sha256-psA+1Q5fPaK6yI3vzlLINNtb6EeXj111zQWnZYyJS9c=",
|
"narHash": "sha256-pcUk2Fg5vPXLUEnFI97qaB8hto/IToRfqskFqsjvjb8=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "c279dec105dd53df13a5e57525da97905cc0f0d6",
|
"rev": "c2ea1186c0cbfa4d06d406ae50f3e4b085ddc9b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
42
flake.nix
42
flake.nix
|
@ -38,31 +38,29 @@
|
||||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware.url = "github:nixos/nixos-hardware";
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
home-manager = {
|
small-nvim.url = "github:xunuwu/small-nvim";
|
||||||
url = "github:nix-community/home-manager";
|
firefox-addons.url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
small-nvim = {
|
|
||||||
url = "github:xunuwu/small-nvim";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
firefox-addons = {
|
|
||||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
nix-index-database.url = "github:Mic92/nix-index-database";
|
||||||
|
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
|
||||||
|
|
||||||
nix-index-database = {
|
## deduplication
|
||||||
url = "github:Mic92/nix-index-database";
|
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
small-nvim.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
firefox-addons.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
sops-nix.inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
nixpkgs-stable.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-vscode-extensions = {
|
nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:nix-community/nix-vscode-extensions";
|
|
||||||
};
|
nix-vscode-extensions.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,6 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
programs.emacs = {
|
programs.emacs = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraPackages = _:
|
package = pkgs.emacs-gtk; # uses xwayland, use pgtk for native wayland or pkgs.emacs if using daemon
|
||||||
with pkgs; [
|
|
||||||
graphviz # org-roam graph
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
cmake
|
|
||||||
gnumake
|
|
||||||
gcc
|
|
||||||
gdb
|
|
||||||
libtool
|
|
||||||
];
|
|
||||||
|
|
||||||
services.emacs = {
|
|
||||||
enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
../../terminal/shell/zsh.nix
|
../../terminal/shell/zsh.nix
|
||||||
../../terminal/emulator/wezterm.nix
|
../../terminal/emulator/wezterm.nix
|
||||||
|
|
||||||
../../programs/browsers/firefox.nix
|
../../programs/browsers/firefox
|
||||||
|
|
||||||
../../programs/desktop
|
../../programs/desktop
|
||||||
../../programs/desktop/awesome
|
../../programs/desktop/awesome
|
||||||
|
|
|
@ -11,9 +11,10 @@
|
||||||
../../terminal/programs/lazygit.nix
|
../../terminal/programs/lazygit.nix
|
||||||
../../terminal/programs/beets.nix
|
../../terminal/programs/beets.nix
|
||||||
../../editors/nvim.nix
|
../../editors/nvim.nix
|
||||||
#../../editors/emacs.nix
|
../../editors/emacs.nix
|
||||||
../../editors/vscode.nix
|
../../editors/vscode.nix
|
||||||
../../programs/browsers/firefox.nix
|
../../programs/browsers/firefox
|
||||||
|
../../programs/browsers/tor.nix
|
||||||
../../programs/browsers/chromium.nix
|
../../programs/browsers/chromium.nix
|
||||||
../../terminal/emulator/wezterm.nix
|
../../terminal/emulator/wezterm.nix
|
||||||
../../terminal/emulator/foot.nix
|
../../terminal/emulator/foot.nix
|
||||||
|
@ -31,10 +32,10 @@
|
||||||
# programs
|
# programs
|
||||||
../../programs/misc/keepassxc.nix
|
../../programs/misc/keepassxc.nix
|
||||||
../../programs/misc/discord.nix
|
../../programs/misc/discord.nix
|
||||||
../../programs/misc/ardour.nix
|
#../../programs/misc/ardour.nix
|
||||||
../../programs/misc/foliate.nix
|
../../programs/misc/foliate.nix
|
||||||
../../programs/misc/obsidian.nix
|
../../programs/misc/obsidian.nix
|
||||||
../../programs/misc/pavucontrol.nix
|
../../programs/misc/pwvucontrol.nix
|
||||||
../../programs/misc/thunderbird.nix
|
../../programs/misc/thunderbird.nix
|
||||||
#../../programs/music
|
#../../programs/music
|
||||||
#../../programs/music/yams.nix
|
#../../programs/music/yams.nix
|
||||||
|
|
|
@ -1,93 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
profiles.xun = {
|
|
||||||
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
|
|
||||||
ublock-origin
|
|
||||||
darkreader
|
|
||||||
sponsorblock
|
|
||||||
tridactyl
|
|
||||||
translate-web-pages
|
|
||||||
cookie-quick-manager
|
|
||||||
istilldontcareaboutcookies
|
|
||||||
tree-style-tab
|
|
||||||
(lib.mkIf (builtins.elem pkgs.keepassxc config.home.packages) keepassxc-browser)
|
|
||||||
];
|
|
||||||
bookmarks = {};
|
|
||||||
settings = {
|
|
||||||
"browser.tabs.inTitleBar" = "0"; # use system title bar
|
|
||||||
"browser.newtabpage.enabled" = false;
|
|
||||||
"browser.newtab.url" = "about:blank";
|
|
||||||
"general.autoScroll" = "true"; # mmb scroll mode
|
|
||||||
|
|
||||||
"browser.newtabpage.enhanced" = false;
|
|
||||||
"browser.newtabpage.introShown" = true;
|
|
||||||
"browser.newtab.preload" = false;
|
|
||||||
"browser.newtabpage.directory.ping" = "";
|
|
||||||
"browser.newtabpage.directory.source" = "data:text/plain,{}";
|
|
||||||
# Reduce search engine noise in the urlbar's completion window. The
|
|
||||||
# shortcuts and suggestions will still work, but Firefox won't clutter
|
|
||||||
# its UI with reminders that they exist.
|
|
||||||
"browser.urlbar.suggest.searches" = false;
|
|
||||||
"browser.urlbar.shortcuts.bookmarks" = false;
|
|
||||||
"browser.urlbar.shortcuts.history" = false;
|
|
||||||
"browser.urlbar.shortcuts.tabs" = false;
|
|
||||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
|
||||||
"browser.urlbar.speculativeConnect.enabled" = false;
|
|
||||||
|
|
||||||
"browser.download.useDownloadDir" = false;
|
|
||||||
"signon.rememberSignons" = false;
|
|
||||||
"browser.shell.checkDefaultBrowser" = false;
|
|
||||||
# Show whole URL in address bar
|
|
||||||
"browser.urlbar.trimURLs" = false;
|
|
||||||
# Disable some not so useful functionality.
|
|
||||||
"browser.disableResetPrompt" = true; # "Looks like you haven't started Firefox in a while."
|
|
||||||
"browser.onboarding.enabled" = false; # "New to Firefox? Let's get started!" tour
|
|
||||||
"browser.aboutConfig.showWarning" = false; # Warning when opening about:config
|
|
||||||
"media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
|
|
||||||
"extensions.pocket.enabled" = false;
|
|
||||||
"extensions.shield-recipe-client.enabled" = false;
|
|
||||||
#"reader.parse-on-load.enabled" = false; # "reader view"
|
|
||||||
|
|
||||||
# disable telemetry
|
|
||||||
# https://github.com/hlissner/dotfiles/blob/089f1a9da9018df9e5fc200c2d7bef70f4546026/modules/desktop/browsers/firefox.nix
|
|
||||||
"toolkit.telemetry.unified" = false;
|
|
||||||
"toolkit.telemetry.enabled" = false;
|
|
||||||
"toolkit.telemetry.server" = "data:,";
|
|
||||||
"toolkit.telemetry.archive.enabled" = false;
|
|
||||||
"toolkit.telemetry.coverage.opt-out" = true;
|
|
||||||
"toolkit.coverage.opt-out" = true;
|
|
||||||
"toolkit.coverage.endpoint.base" = "";
|
|
||||||
"experiments.supported" = false;
|
|
||||||
"experiments.enabled" = false;
|
|
||||||
"experiments.manifest.uri" = "";
|
|
||||||
"browser.ping-centre.telemetry" = false;
|
|
||||||
"app.normandy.enabled" = false;
|
|
||||||
"app.normandy.api_url" = "";
|
|
||||||
"app.shield.optoutstudies.enabled" = false;
|
|
||||||
"datareporting.healthreport.uploadEnabled" = false;
|
|
||||||
"datareporting.healthreport.service.enabled" = false;
|
|
||||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
|
||||||
# Disable crash reports
|
|
||||||
"breakpad.reportURL" = "";
|
|
||||||
"browser.tabs.crashReporting.sendReport" = false;
|
|
||||||
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
|
||||||
|
|
||||||
# Disable Form autofill
|
|
||||||
# https://wiki.mozilla.org/Firefox/Features/Form_Autofill
|
|
||||||
"browser.formfill.enable" = false;
|
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
|
||||||
"extensions.formautofill.available" = "off";
|
|
||||||
"extensions.formautofill.creditCards.available" = false;
|
|
||||||
"extensions.formautofill.creditCards.enabled" = false;
|
|
||||||
"extensions.formautofill.heuristics.enabled" = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
211
home/programs/browsers/firefox/default.nix
Normal file
211
home/programs/browsers/firefox/default.nix
Normal file
|
@ -0,0 +1,211 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
xdg.configFile."tridactyl/tridactylrc" = {
|
||||||
|
text = ''
|
||||||
|
unbind <C-e>
|
||||||
|
unbind <C-b>
|
||||||
|
unbind <C-a> # why would you ever want to increment the current url??
|
||||||
|
bind J tabnext
|
||||||
|
bind K tabprev
|
||||||
|
|
||||||
|
set smoothscroll true
|
||||||
|
set newtab about:blank
|
||||||
|
set modeindicator false
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.firefox.override {
|
||||||
|
nativeMessagingHosts = with pkgs; [
|
||||||
|
tridactyl-native
|
||||||
|
keepassxc
|
||||||
|
];
|
||||||
|
};
|
||||||
|
profiles.xun = {
|
||||||
|
extensions = with inputs.firefox-addons.packages.${pkgs.system}; [
|
||||||
|
ublock-origin
|
||||||
|
darkreader
|
||||||
|
sponsorblock
|
||||||
|
tridactyl
|
||||||
|
translate-web-pages
|
||||||
|
cookie-quick-manager
|
||||||
|
istilldontcareaboutcookies
|
||||||
|
sidebery
|
||||||
|
(lib.mkIf (builtins.elem pkgs.keepassxc config.home.packages) keepassxc-browser)
|
||||||
|
];
|
||||||
|
bookmarks = {};
|
||||||
|
search = {
|
||||||
|
force = true;
|
||||||
|
default = "Brave";
|
||||||
|
order = [
|
||||||
|
"Brave"
|
||||||
|
"Google"
|
||||||
|
"DuckDuckGo"
|
||||||
|
];
|
||||||
|
engines = let
|
||||||
|
inherit (lib.attrsets) attrsToList;
|
||||||
|
inherit (lib.lists) singleton;
|
||||||
|
in {
|
||||||
|
"Home Manager" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://home-manager-options.extranix.com";
|
||||||
|
params = attrsToList {
|
||||||
|
query = "{searchTerms}";
|
||||||
|
release = "master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
iconUpdateURL = "https://home-manager-options.extranix.com/images/favicon.png";
|
||||||
|
definedAliases = ["@hm"];
|
||||||
|
};
|
||||||
|
"Nix Packages" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://search.nixos.org/packages";
|
||||||
|
params = attrsToList {
|
||||||
|
query = "{searchTerms}";
|
||||||
|
channel = "unstable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = ["@np"];
|
||||||
|
};
|
||||||
|
"NixOS Options" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://search.nixos.org/options";
|
||||||
|
params = attrsToList {
|
||||||
|
query = "{searchTerms}";
|
||||||
|
channel = "unstable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
|
definedAliases = ["@no"];
|
||||||
|
};
|
||||||
|
"GitHub" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://github.com/search";
|
||||||
|
params = attrsToList {
|
||||||
|
q = "{searchTerms}";
|
||||||
|
type = "code";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
iconUpdateURL = "https://github.githubassets.com/favicons/favicon-dark.svg";
|
||||||
|
definedAliases = ["@gh"];
|
||||||
|
};
|
||||||
|
"GitHub Repos" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://github.com/search";
|
||||||
|
params = attrsToList {
|
||||||
|
q = "{searchTerms}";
|
||||||
|
type = "repositories";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
iconUpdateURL = "https://github.githubassets.com/favicons/favicon-dark.svg";
|
||||||
|
definedAliases = ["@ghr"];
|
||||||
|
};
|
||||||
|
"GitHub Nix" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://github.com/search";
|
||||||
|
params = attrsToList {
|
||||||
|
"q" = "lang:nix {searchTerms}";
|
||||||
|
"type" = "code";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
iconUpdateURL = "https://github.githubassets.com/favicons/favicon-dark.svg";
|
||||||
|
definedAliases = ["@ghn"];
|
||||||
|
};
|
||||||
|
"Brave" = {
|
||||||
|
urls = singleton {
|
||||||
|
template = "https://search.brave.com/search";
|
||||||
|
params = attrsToList {
|
||||||
|
"q" = "{searchTerms}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
iconUpdateURL = "https://brave.com/static-assets/images/brave-favicon.png";
|
||||||
|
definedAliases = ["@b"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Google".metaData.alias = "@go";
|
||||||
|
"DuckDuckGo".metaData.alias = "@ddg";
|
||||||
|
"Wikipedia".metaData.alias = "@wiki";
|
||||||
|
"Bind".metaData.hidden = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
userChrome = builtins.readFile ./userChrome.css;
|
||||||
|
settings = {
|
||||||
|
"browser.display.use_system_colors" = true; # about:blank colour match colourscheme
|
||||||
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # enable userChrome
|
||||||
|
"browser.tabs.inTitleBar" = "0"; # use system title bar
|
||||||
|
"browser.newtabpage.enabled" = false;
|
||||||
|
"browser.newtab.url" = "about:blank";
|
||||||
|
"general.autoScroll" = true; # mmb scroll mode
|
||||||
|
|
||||||
|
"browser.newtabpage.enhanced" = false;
|
||||||
|
"browser.newtabpage.introShown" = true;
|
||||||
|
"browser.newtab.preload" = false;
|
||||||
|
"browser.newtabpage.directory.ping" = "";
|
||||||
|
"browser.newtabpage.directory.source" = "data:text/plain,{}";
|
||||||
|
# Reduce search engine noise in the urlbar's completion window. The
|
||||||
|
# shortcuts and suggestions will still work, but Firefox won't clutter
|
||||||
|
# its UI with reminders that they exist.
|
||||||
|
"browser.urlbar.suggest.searches" = false;
|
||||||
|
"browser.urlbar.shortcuts.bookmarks" = false;
|
||||||
|
"browser.urlbar.shortcuts.history" = false;
|
||||||
|
"browser.urlbar.shortcuts.tabs" = false;
|
||||||
|
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
||||||
|
"browser.urlbar.speculativeConnect.enabled" = false;
|
||||||
|
|
||||||
|
"browser.download.useDownloadDir" = false;
|
||||||
|
"signon.rememberSignons" = false;
|
||||||
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
|
# Show whole URL in address bar
|
||||||
|
"browser.urlbar.trimURLs" = false;
|
||||||
|
# Disable some not so useful functionality.
|
||||||
|
"browser.disableResetPrompt" = true; # "Looks like you haven't started Firefox in a while."
|
||||||
|
"browser.onboarding.enabled" = false; # "New to Firefox? Let's get started!" tour
|
||||||
|
"browser.aboutConfig.showWarning" = false; # Warning when opening about:config
|
||||||
|
"media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
|
||||||
|
"extensions.autoDisableScopes" = "0"; # Automatically enable extensions
|
||||||
|
"extensions.pocket.enabled" = false;
|
||||||
|
"extensions.shield-recipe-client.enabled" = false;
|
||||||
|
#"reader.parse-on-load.enabled" = false; # "reader view"
|
||||||
|
|
||||||
|
# disable telemetry
|
||||||
|
# https://github.com/hlissner/dotfiles/blob/089f1a9da9018df9e5fc200c2d7bef70f4546026/modules/desktop/browsers/firefox.nix
|
||||||
|
"toolkit.telemetry.unified" = false;
|
||||||
|
"toolkit.telemetry.enabled" = false;
|
||||||
|
"toolkit.telemetry.server" = "data:,";
|
||||||
|
"toolkit.telemetry.archive.enabled" = false;
|
||||||
|
"toolkit.telemetry.coverage.opt-out" = true;
|
||||||
|
"toolkit.coverage.opt-out" = true;
|
||||||
|
"toolkit.coverage.endpoint.base" = "";
|
||||||
|
"experiments.supported" = false;
|
||||||
|
"experiments.enabled" = false;
|
||||||
|
"experiments.manifest.uri" = "";
|
||||||
|
"browser.ping-centre.telemetry" = false;
|
||||||
|
"app.normandy.enabled" = false;
|
||||||
|
"app.normandy.api_url" = "";
|
||||||
|
"app.shield.optoutstudies.enabled" = false;
|
||||||
|
"datareporting.healthreport.uploadEnabled" = false;
|
||||||
|
"datareporting.healthreport.service.enabled" = false;
|
||||||
|
"datareporting.policy.dataSubmissionEnabled" = false;
|
||||||
|
# Disable crash reports
|
||||||
|
"breakpad.reportURL" = "";
|
||||||
|
"browser.tabs.crashReporting.sendReport" = false;
|
||||||
|
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false;
|
||||||
|
|
||||||
|
# Disable Form autofill
|
||||||
|
# https://wiki.mozilla.org/Firefox/Features/Form_Autofill
|
||||||
|
"browser.formfill.enable" = false;
|
||||||
|
"extensions.formautofill.addresses.enabled" = false;
|
||||||
|
"extensions.formautofill.available" = "off";
|
||||||
|
"extensions.formautofill.creditCards.available" = false;
|
||||||
|
"extensions.formautofill.creditCards.enabled" = false;
|
||||||
|
"extensions.formautofill.heuristics.enabled" = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
home/programs/browsers/firefox/userChrome.css
Normal file
19
home/programs/browsers/firefox/userChrome.css
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
/* Hide sidebar header */
|
||||||
|
#sidebar-header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide tab bar */
|
||||||
|
#TabsToolbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* urlbar same color as background */
|
||||||
|
#urlbar-background, #searchbar {
|
||||||
|
background-color: var(--toolbar-bgcolor) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide tiny strip below the main top bar */
|
||||||
|
#navigator-toolbox {
|
||||||
|
border-bottom: none !important;
|
||||||
|
}
|
7
home/programs/browsers/tor.nix
Normal file
7
home/programs/browsers/tor.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(tor-browser.override {
|
||||||
|
mediaSupport = false;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -42,7 +42,23 @@
|
||||||
mod = config.wayland.windowManager.sway.config.modifier;
|
mod = config.wayland.windowManager.sway.config.modifier;
|
||||||
wobVolume = "${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_SINK@ | awk '{print $2*100}' > $XDG_RUNTIME_DIR/wob.sock";
|
wobVolume = "${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_SINK@ | awk '{print $2*100}' > $XDG_RUNTIME_DIR/wob.sock";
|
||||||
setVolume = limit: amount: "${pkgs.wireplumber}/bin/wpctl set-volume -l ${limit} @DEFAULT_AUDIO_SINK@ ${amount}";
|
setVolume = limit: amount: "${pkgs.wireplumber}/bin/wpctl set-volume -l ${limit} @DEFAULT_AUDIO_SINK@ ${amount}";
|
||||||
perMonitor = workspace: "\"$(swaymsg -t get_outputs | ${lib.getExe pkgs.jq} -r '.[] | select(.focused == true).name' | ${lib.getExe pkgs.perl} -ne '$s=0;for(split//){$s+=ord}print\"$s\"')${toString workspace}\"";
|
#perMonitor = workspace: "\"$(swaymsg -t get_outputs | ${lib.getExe pkgs.jq} -r '.[] | select(.focused == true).name' | ${lib.getExe pkgs.perl} -ne '$s=0;for(split//){$s+=ord}print\"$s\"')${toString workspace}\"";
|
||||||
|
monitorId = pkgs.writers.writeBash "monitor-id" ''
|
||||||
|
swaymsg -t get_outputs \
|
||||||
|
| ${lib.getExe pkgs.jq} -r '.[] | select (.focused == true).name' \
|
||||||
|
| ${lib.getExe pkgs.perl} -ne '$s=0;for(split//){$s+=ord}print"$s"'
|
||||||
|
'';
|
||||||
|
pauseApp = pkgs.writers.writeBash "pause-app" ''
|
||||||
|
set -e
|
||||||
|
pid=$(swaymsg -t get_tree \
|
||||||
|
| ${lib.getExe pkgs.jq} -re '.. | select (.type? == "con" and .focused? == true).pid')
|
||||||
|
|
||||||
|
if [ $(cat "/proc/$pid/wchan") == "do_signal_stop" ]; then
|
||||||
|
kill -s SIGCONT $pid
|
||||||
|
else
|
||||||
|
kill -s SIGSTOP $pid
|
||||||
|
fi
|
||||||
|
'';
|
||||||
dir = with config.wayland.windowManager.sway.config; {
|
dir = with config.wayland.windowManager.sway.config; {
|
||||||
inherit up down left right;
|
inherit up down left right;
|
||||||
};
|
};
|
||||||
|
@ -61,7 +77,10 @@
|
||||||
"${mod}+Ctrl+Shift+${dir.down}" = "move output down";
|
"${mod}+Ctrl+Shift+${dir.down}" = "move output down";
|
||||||
|
|
||||||
"${mod}+Shift+Backspace" = "exec systemctl suspend";
|
"${mod}+Shift+Backspace" = "exec systemctl suspend";
|
||||||
"${mod}+Shift+s" = "exec ${lib.getExe pkgs.grimblast} copy area";
|
"${mod}+Shift+s" = "exec ${lib.getExe pkgs.sway-contrib.grimshot} copy anything";
|
||||||
|
"${mod}+Ctrl+Shift+s" = "exec XDG_PICTURES_DIR=$XDG_PICTURES_DIR/screenshots ${lib.getExe pkgs.sway-contrib.grimshot} savecopy anything";
|
||||||
|
|
||||||
|
"${mod}+Shift+p" = "exec ${pauseApp}";
|
||||||
|
|
||||||
"XF86AudioRaiseVolume" = "exec ${setVolume "1.5" "3%+"} && ${wobVolume}";
|
"XF86AudioRaiseVolume" = "exec ${setVolume "1.5" "3%+"} && ${wobVolume}";
|
||||||
"XF86AudioLowerVolume" = "exec ${setVolume "1.5" "3%-"} && ${wobVolume}";
|
"XF86AudioLowerVolume" = "exec ${setVolume "1.5" "3%-"} && ${wobVolume}";
|
||||||
|
@ -70,19 +89,20 @@
|
||||||
"XF86AudioNext" = "exec ${lib.getExe pkgs.playerctl} next";
|
"XF86AudioNext" = "exec ${lib.getExe pkgs.playerctl} next";
|
||||||
"XF86AudioPrev" = "exec ${lib.getExe pkgs.playerctl} previous";
|
"XF86AudioPrev" = "exec ${lib.getExe pkgs.playerctl} previous";
|
||||||
}
|
}
|
||||||
// builtins.listToAttrs (lib.flatten
|
// (let
|
||||||
(builtins.map (x: let
|
inherit (builtins) foldl';
|
||||||
x' = toString x;
|
inherit (lib) range;
|
||||||
in [
|
in
|
||||||
{
|
foldl' (acc: x:
|
||||||
name = "${mod}+${x'}";
|
acc
|
||||||
value = "exec swaymsg workspace number ${perMonitor x'}:${x'}";
|
// (let
|
||||||
}
|
y = toString x;
|
||||||
{
|
in {
|
||||||
name = "${mod}+Shift+${toString x'}";
|
"${mod}+${y}" = "exec swaymsg workspace number \"$(${monitorId})${y}:${y}\"";
|
||||||
value = "exec swaymsg move container to workspace number ${perMonitor x'}:${x'}";
|
"${mod}+Shift+${y}" = "exec swaymsg move container to workspace number \"$(${monitorId})${y}:${y}\"";
|
||||||
}
|
}))
|
||||||
]) (lib.range 0 9)))
|
{}
|
||||||
|
(range 0 9))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
pavucontrol
|
pwvucontrol
|
||||||
];
|
];
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
programs.direnv = {
|
programs.direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nix-direnv.enable = true;
|
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,9 @@ in {
|
||||||
pictures = home + "/pics";
|
pictures = home + "/pics";
|
||||||
publicShare = home + "/share";
|
publicShare = home + "/share";
|
||||||
videos = home + "/vids";
|
videos = home + "/vids";
|
||||||
|
extraConfig = {
|
||||||
|
XDG_SCREENSHOTS_DIR = config.xdg.userDirs.pictures + "/screenshots";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2,16 +2,20 @@
|
||||||
self,
|
self,
|
||||||
inputs,
|
inputs,
|
||||||
homeImports,
|
homeImports,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit inputs self;
|
inherit inputs self;
|
||||||
};
|
};
|
||||||
in {
|
prependAll = a: b: map (x: a + x) b;
|
||||||
flake.colmena = let
|
rootPaths = prependAll "${self}/";
|
||||||
mod = "${self}/system";
|
modulePaths = prependAll "${self}/system/";
|
||||||
|
|
||||||
inherit (import "${self}/system") desktop;
|
inherit (import "${self}/system") desktop;
|
||||||
in {
|
in {
|
||||||
|
flake.colmena = {
|
||||||
meta = {
|
meta = {
|
||||||
nixpkgs = import inputs.nixpkgs {
|
nixpkgs = import inputs.nixpkgs {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
@ -38,24 +42,26 @@ in {
|
||||||
};
|
};
|
||||||
imports =
|
imports =
|
||||||
desktop
|
desktop
|
||||||
++ [
|
++ lib.flatten [
|
||||||
./nixdesk
|
./nixdesk
|
||||||
|
|
||||||
"${self}/secrets"
|
(rootPaths [
|
||||||
"${self}/secrets/nixdesk"
|
"secrets"
|
||||||
|
"secrets/nixdesk"
|
||||||
|
])
|
||||||
|
|
||||||
#"${mod}/network/wifi.nix"
|
(modulePaths [
|
||||||
|
"services/syncthing.nix"
|
||||||
|
"services/virt/waydroid.nix"
|
||||||
|
"services/virt/virt-manager.nix"
|
||||||
|
#"network/wifi.nix"
|
||||||
|
#"services/ollama.nix"
|
||||||
|
"desktop/x11/nosleep.nix"
|
||||||
|
|
||||||
"${mod}/services/syncthing.nix"
|
"programs/gamemode.nix"
|
||||||
#"${mod}/services/virt/podman.nix"
|
"programs/gamescope.nix"
|
||||||
"${mod}/services/virt/waydroid.nix"
|
"programs/steam.nix"
|
||||||
"${mod}/services/virt/virt-manager.nix"
|
])
|
||||||
#"${mod}/services/ollama.nix"
|
|
||||||
"${mod}/desktop/x11/nosleep.nix"
|
|
||||||
|
|
||||||
"${mod}/programs/gamemode.nix"
|
|
||||||
"${mod}/programs/gamescope.nix"
|
|
||||||
"${mod}/programs/steam.nix"
|
|
||||||
|
|
||||||
{
|
{
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
@ -70,34 +76,38 @@ in {
|
||||||
targetUser = "xun";
|
targetUser = "xun";
|
||||||
targetHost = "hopper.local";
|
targetHost = "hopper.local";
|
||||||
};
|
};
|
||||||
imports = [
|
imports = lib.flatten [
|
||||||
./hopper
|
./hopper
|
||||||
|
|
||||||
"${self}/secrets"
|
(rootPaths [
|
||||||
"${self}/secrets/hopper"
|
"secrets"
|
||||||
|
"secrets/hopper"
|
||||||
|
])
|
||||||
|
|
||||||
"${mod}/core"
|
(modulePaths [
|
||||||
|
"core"
|
||||||
|
|
||||||
#"${mod}/programs"
|
#"programs"
|
||||||
#"${mod}/programs/steam.nix"
|
#"programs/steam.nix"
|
||||||
|
|
||||||
#"${mod}/desktop"
|
#"desktop"
|
||||||
#"${mod}/desktop/awesome.nix"
|
#"desktop/awesome.nix"
|
||||||
|
|
||||||
#"${mod}/hardware/opengl.nix"
|
#"hardware/graphics.nix"
|
||||||
#"${mod}/hardware/steam-hardware.nix"
|
#"hardware/steam-hardware.nix"
|
||||||
#"${mod}/hardware/bluetooth.nix"
|
#"hardware/bluetooth.nix"
|
||||||
#"${mod}/hardware/qmk.nix"
|
#"hardware/qmk.nix"
|
||||||
|
|
||||||
"${mod}/network/avahi.nix"
|
"network/avahi.nix"
|
||||||
"${mod}/network/networkd.nix"
|
"network/networkd.nix"
|
||||||
"${mod}/network/tailscale.nix"
|
"network/tailscale.nix"
|
||||||
|
|
||||||
#"${mod}/services"
|
#"services"
|
||||||
#"${mod}/services/pipewire.nix"
|
#"services/pipewire.nix"
|
||||||
"${mod}/services/syncthing.nix"
|
"services/syncthing.nix"
|
||||||
#"${mod}/services/containers/server"
|
#"services/containers/server"
|
||||||
"${mod}/services/containers/experimental"
|
"services/containers/experimental"
|
||||||
|
])
|
||||||
|
|
||||||
#{
|
#{
|
||||||
# home-manager = {
|
# home-manager = {
|
||||||
|
@ -109,15 +119,15 @@ in {
|
||||||
};
|
};
|
||||||
liveiso = {
|
liveiso = {
|
||||||
deployment.targetHost = null;
|
deployment.targetHost = null;
|
||||||
imports = [
|
imports = lib.flatten [
|
||||||
./liveiso
|
./liveiso
|
||||||
|
|
||||||
"${mod}/nix"
|
(modulePaths [
|
||||||
"${mod}/core/security.nix"
|
"/nix"
|
||||||
|
"/core/security.nix"
|
||||||
"${mod}/services"
|
"/services"
|
||||||
|
"/desktop"
|
||||||
"${mod}/desktop"
|
])
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -37,12 +37,12 @@
|
||||||
${lib.getExe pkgs.gnuplot} -c ${pkgs.writeText "gnuplotcmds" ''
|
${lib.getExe pkgs.gnuplot} -c ${pkgs.writeText "gnuplotcmds" ''
|
||||||
set xdata time
|
set xdata time
|
||||||
set timefmt '%Y%m%dT%H%M%S.000Z'
|
set timefmt '%Y%m%dT%H%M%S.000Z'
|
||||||
set format x '%H:%M'
|
set format x '%m/%d-%H:%M'
|
||||||
set xlabel 'Time'
|
set xlabel 'Time'
|
||||||
set ylabel 'Trophies'
|
set ylabel 'Trophies'
|
||||||
set term svg
|
set term svg
|
||||||
plot "/dev/stdin" using 1:2 with linespoints notitle
|
plot "/dev/stdin" u 1:2 w lines notitle
|
||||||
''} # 2>/dev/null
|
''}
|
||||||
}
|
}
|
||||||
|
|
||||||
case ''${parameters:1} in
|
case ''${parameters:1} in
|
||||||
|
@ -59,41 +59,23 @@
|
||||||
;;
|
;;
|
||||||
brawler*)
|
brawler*)
|
||||||
id=$(echo $parameters | ${lib.getExe pkgs.gawk} '{print $2}')
|
id=$(echo $parameters | ${lib.getExe pkgs.gawk} '{print $2}')
|
||||||
brawler=$(echo $parameters | ${lib.getExe pkgs.gawk} '{print $3}')
|
brawler=$(echo $parameters | ${lib.getExe pkgs.gawk} '{print $3}' | ${lib.getExe pkgs.gnused} 's/%20/ /g')
|
||||||
response=$(${lib.getExe pkgs.jq} -r \
|
response=$(${lib.getExe pkgs.jq} -r \
|
||||||
"sort_by(.battleTime)
|
"sort_by(.battleTime)
|
||||||
| reverse
|
| reverse
|
||||||
| map (select (.. | .tag? == \"#$id\" and .brawler.name == \"$brawler\")).[]
|
| map (select (.. | .tag? == \"#$id\" and .brawler.name == \"$brawler\")).[]
|
||||||
|
| select (.battle.type == \"ranked\")
|
||||||
| .battleTime,
|
| .battleTime,
|
||||||
(.battle | (.teams[]?,.players) | select(.)[] | select(.tag == \"#$id\") | .brawler.trophies) + .battle.trophyChange" "/var/lib/brawlstats/$id-log.json" \
|
(.battle | (.teams[]?,.players) | select(.)[] | select(.tag == \"#$id\") | .brawler.trophies) + .battle.trophyChange" "/var/lib/brawlstats/$id-log.json" \
|
||||||
| paste - - \
|
| paste - - \
|
||||||
| tosvg)
|
| tosvg)
|
||||||
#reponse=$(${lib.getExe pkgs.jq} -r \
|
|
||||||
# "sort_by(.battleTime)
|
|
||||||
# | reverse
|
|
||||||
# | map (select (.. | .tag? == \"#$id\" and .brawler.name == \"$brawler\")).[]
|
|
||||||
# | .battleTime,
|
|
||||||
# (.battle | (.teams[]?,.players) | select(.)[] | select(.tag == \"#$id\") | .brawler.trophies) + .battle.trophyChange" \
|
|
||||||
# "/var/lib/brawlstats/$id-log.json" \
|
|
||||||
# | paste - - \
|
|
||||||
# | tosvg)
|
|
||||||
#echo $response
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
response="parameters: $parameters | firstparam: $(echo "$parameters" | ${lib.getExe pkgs.gawk} '{print $1}')"
|
response="parameters: $parameters | firstparam: $(echo "$parameters" | ${lib.getExe pkgs.gawk} '{print $1}')"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
#file="/var/lib/brawlstats/output.svg"
|
|
||||||
echo -e "HTTP/1.1 200 OK\r\nContent-Length: $(echo "$response" | wc -c)\r\nContent-Type: text/html\r\n\r\n$response"
|
echo -e "HTTP/1.1 200 OK\r\nContent-Length: $(echo "$response" | wc -c)\r\nContent-Type: text/html\r\n\r\n$response"
|
||||||
#echo $endpoint
|
|
||||||
#cat "$file"
|
|
||||||
#while read -r LINE
|
|
||||||
#do
|
|
||||||
# echo "$LINE"
|
|
||||||
# [ -z "$LINE" ] && break
|
|
||||||
#done
|
|
||||||
|
|
||||||
''}";
|
''}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -119,7 +101,7 @@
|
||||||
LoadCredential = "apitoken:${config.sops.secrets.brawlstars-api-key.path}";
|
LoadCredential = "apitoken:${config.sops.secrets.brawlstars-api-key.path}";
|
||||||
Environment = "TOKEN=%d/apitoken";
|
Environment = "TOKEN=%d/apitoken";
|
||||||
|
|
||||||
ExecStart = "${pkgs.writeShellScript "brawlstats.sh" ''
|
ExecStart = pkgs.writers.writeBash "brawlstats.sh" ''
|
||||||
TOKEN=$(cat $TOKEN)
|
TOKEN=$(cat $TOKEN)
|
||||||
|
|
||||||
cd "$STATE_DIRECTORY"
|
cd "$STATE_DIRECTORY"
|
||||||
|
@ -160,7 +142,7 @@
|
||||||
# remove old backups
|
# remove old backups
|
||||||
find . -type f -name "$id-log-*.json" | sort | head -n -5 | xargs -r rm
|
find . -type f -name "$id-log-*.json" | sort | head -n -5 | xargs -r rm
|
||||||
done
|
done
|
||||||
''}";
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = with inputs.hardware.nixosModules; [
|
imports = with inputs.hardware.nixosModules; [
|
||||||
common-cpu-intel
|
common-cpu-intel
|
||||||
common-pc-hdd
|
|
||||||
|
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./brawlstats.nix
|
./brawlstats.nix
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
nixpkgs.hostPlatform.system = "x86_64-linux";
|
nixpkgs.hostPlatform.system = "x86_64-linux";
|
||||||
|
|
||||||
## nvidia gpu
|
## nvidia gpu
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
#services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
hardware.nvidia = {
|
#hardware.nvidia = {
|
||||||
modesetting.enable = true;
|
# modesetting.enable = true;
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
#};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: let
|
||||||
#environment.systemPackages = [pkgs.steam-run];
|
list-of-libraries = with pkgs; [
|
||||||
environment.systemPackages = [pkgs.appimage-run];
|
|
||||||
|
|
||||||
programs.nix-ld.enable = true;
|
|
||||||
programs.nix-ld.libraries = with pkgs; [
|
|
||||||
alsa-lib
|
alsa-lib
|
||||||
at-spi2-atk
|
at-spi2-atk
|
||||||
at-spi2-core
|
at-spi2-core
|
||||||
|
@ -56,4 +52,14 @@
|
||||||
xorg.libxshmfence
|
xorg.libxshmfence
|
||||||
zlib
|
zlib
|
||||||
];
|
];
|
||||||
|
in {
|
||||||
|
programs.appimage = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.appimage-run.override {
|
||||||
|
extraPkgs = p: list-of-libraries;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.nix-ld.enable = true;
|
||||||
|
programs.nix-ld.libraries = list-of-libraries;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
{pkgs, ...}: {
|
{pkgs, ...}: {
|
||||||
documentation = {
|
documentation = {
|
||||||
dev.enable = true;
|
dev.enable = true;
|
||||||
man.generateCaches = true;
|
#man.generateCaches = true;
|
||||||
man = {
|
|
||||||
man-db.enable = false;
|
|
||||||
mandoc.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
linux-manual
|
linux-manual
|
||||||
|
|
7
system/core/tools.nix
Normal file
7
system/core/tools.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
htop
|
||||||
|
btop
|
||||||
|
vim
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,12 +1,15 @@
|
||||||
let
|
let
|
||||||
desktop = [
|
desktop = [
|
||||||
./core
|
./core
|
||||||
|
./core/tools.nix
|
||||||
./core/compat.nix
|
./core/compat.nix
|
||||||
./core/boot.nix
|
./core/boot.nix
|
||||||
./core/docs.nix
|
./core/docs.nix
|
||||||
./core/gvfs.nix
|
./core/gvfs.nix
|
||||||
|
|
||||||
./hardware/opengl.nix
|
./nix/gc.nix
|
||||||
|
|
||||||
|
./hardware/graphics.nix
|
||||||
./hardware/steam-hardware.nix
|
./hardware/steam-hardware.nix
|
||||||
./hardware/bluetooth.nix
|
./hardware/bluetooth.nix
|
||||||
./hardware/qmk.nix
|
./hardware/qmk.nix
|
||||||
|
|
6
system/hardware/graphics.nix
Normal file
6
system/hardware/graphics.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
hardware.opengl = {
|
|
||||||
enable = true;
|
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
};
|
|
||||||
}
|
|
7
system/nix/gc.nix
Normal file
7
system/nix/gc.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
options = "--delete-older-than 14d";
|
||||||
|
};
|
||||||
|
nix.optimise.automatic = true;
|
||||||
|
}
|
|
@ -9,17 +9,34 @@
|
||||||
source-code-pro
|
source-code-pro
|
||||||
iosevka
|
iosevka
|
||||||
|
|
||||||
# nerdfonts
|
|
||||||
nerdfonts
|
nerdfonts
|
||||||
#(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
#(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
|
||||||
|
(stdenv.mkDerivation {
|
||||||
|
# font piracy? i would never
|
||||||
|
pname = "Cartograph-CF";
|
||||||
|
version = "0.1";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "xiyaowong";
|
||||||
|
repo = "Cartograph-CF";
|
||||||
|
rev = "619de85c103dbd5c150e1d5df039357f8ac2ed52";
|
||||||
|
hash = "sha256-NVqHxLQZnHb0lMjODkaDwSoglGPkUVJHL1xTmASoER4=";
|
||||||
|
};
|
||||||
|
dontBuild = true;
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out/share/fonts
|
||||||
|
cp -r $src $out/share/fonts
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
# causes more issues than it solves
|
# causes more issues than it solves
|
||||||
enableDefaultPackages = false;
|
enableDefaultPackages = false;
|
||||||
|
|
||||||
# user defined fonts
|
# user defined fonts
|
||||||
# the reason there's Noto Color Emoji everywhere is to override DejaVu's
|
|
||||||
# B&W emojis that would sometimes show instead of some Color emojis
|
|
||||||
fontconfig.defaultFonts = {
|
fontconfig.defaultFonts = {
|
||||||
monospace = ["DejaVu Sans Mono for Powerline"];
|
monospace = ["DejaVu Sans Mono for Powerline"];
|
||||||
sansSerif = ["DejaVu Sans"];
|
sansSerif = ["DejaVu Sans"];
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
vim
|
vim
|
||||||
htop
|
htop
|
||||||
|
@ -8,7 +12,12 @@
|
||||||
nethogs
|
nethogs
|
||||||
ffmpeg-full
|
ffmpeg-full
|
||||||
parted
|
parted
|
||||||
pciutils
|
busybox
|
||||||
usbutils
|
(
|
||||||
|
if config.nixpkgs.config.allowUnfree
|
||||||
|
then p7zip-rar
|
||||||
|
else p7zip
|
||||||
|
)
|
||||||
|
unar
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,6 +132,7 @@
|
||||||
"5030:5030" # slskd
|
"5030:5030" # slskd
|
||||||
"5031:5031" # slskd https
|
"5031:5031" # slskd https
|
||||||
"8096:8096" # jellyfin
|
"8096:8096" # jellyfin
|
||||||
|
"8920:8920" # jellyfin https
|
||||||
"8080:8080" # qbittorrent webui
|
"8080:8080" # qbittorrent webui
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
#rocmOverrideGfx = "10.3.0";
|
rocmOverrideGfx = "10.3.0";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue