mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 06:39:14 +00:00
nix: update to 24.11
Reviewed-on: https://codeberg.org/leana8959/.files/pulls/1 Co-authored-by: Léana 江 <leana.jiang+git@icloud.com> Co-committed-by: Léana 江 <leana.jiang+git@icloud.com>
This commit is contained in:
parent
57ed96f0ea
commit
f6a89cba08
60 changed files with 696 additions and 752 deletions
13
nix/homeModules/common/auto-gc.nix
Normal file
13
nix/homeModules/common/auto-gc.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
nixosConfig ? null,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
nix.gc = lib.mkIf (!nixosConfig.nix.gc.automatic or false) {
|
||||
automatic = true;
|
||||
frequency = "weekly";
|
||||
options = "--delete-older-than 15d";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,59 +1,49 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.programs.cmus.enable = lib.mkEnableOption "cmus";
|
||||
|
||||
config = lib.mkIf config.programs.cmus.enable {
|
||||
home.packages = [ pkgs.cmus ];
|
||||
xdg.configFile."cmus/rc".text = lib.mkMerge [
|
||||
(builtins.readFile ./rc)
|
||||
programs.cmus.extraConfig =
|
||||
let
|
||||
# dispatch to multiple callbacks
|
||||
callback-script = pkgs.writeShellApplication {
|
||||
name = "cmus-callback-script";
|
||||
runtimeInputs = [
|
||||
pkgs.cmusfm
|
||||
pkgs.libnotify
|
||||
];
|
||||
text = ''
|
||||
argv=("$@")
|
||||
declare -A map
|
||||
while [ $# -gt 0 ]; do
|
||||
map["$1"]="$2"
|
||||
shift
|
||||
shift
|
||||
done
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isLinux (
|
||||
let
|
||||
# dispatch to multiple callbacks
|
||||
callback = pkgs.writeShellApplication {
|
||||
name = "cmus-callback-script";
|
||||
runtimeInputs = [
|
||||
pkgs.cmusfm
|
||||
pkgs.libnotify
|
||||
];
|
||||
text = ''
|
||||
argv=("$@")
|
||||
declare -A map
|
||||
while [ $# -gt 0 ]; do
|
||||
map["$1"]="$2"
|
||||
shift
|
||||
shift
|
||||
done
|
||||
notify-send "''${map[title]}" "''${map[artist]} / ''${map[album]}"
|
||||
cmusfm "''${argv[@]}"
|
||||
'';
|
||||
};
|
||||
in
|
||||
(builtins.readFile ./rc)
|
||||
|
||||
notify-send "''${map[title]}" "''${map[artist]} / ''${map[album]}"
|
||||
cmusfm "''${argv[@]}"
|
||||
'';
|
||||
};
|
||||
in
|
||||
''
|
||||
set status_display_program=${lib.getExe callback}
|
||||
''
|
||||
))
|
||||
+ (lib.optionalString pkgs.stdenv.isLinux ''
|
||||
set status_display_program=${lib.getExe callback-script}
|
||||
'')
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isDarwin ''
|
||||
set status_display_program=${lib.getExe pkgs.cmusfm}
|
||||
'')
|
||||
+ (lib.optionalString pkgs.stdenv.isDarwin ''
|
||||
set status_display_program=${lib.getExe pkgs.cmusfm}
|
||||
'')
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isLinux ''
|
||||
set output_plugin=alsa
|
||||
'')
|
||||
+ (lib.optionalString pkgs.stdenv.isLinux ''
|
||||
set output_plugin=alsa
|
||||
'')
|
||||
|
||||
# When switching over bluetooth, toggle the output device to coreaudio
|
||||
# and back to ao would fix the no sound issue.
|
||||
+ (lib.optionalString pkgs.stdenv.isDarwin ''
|
||||
# distortion fix https://github.com/cmus/cmus/issues/1130#issuecomment-1003324193
|
||||
set output_plugin=ao
|
||||
'');
|
||||
|
||||
# When switching over bluetooth, toggle the output device to coreaudio
|
||||
# and back to ao would fix the no sound issue.
|
||||
(lib.mkIf pkgs.stdenv.isDarwin ''
|
||||
# distortion fix https://github.com/cmus/cmus/issues/1130#issuecomment-1003324193
|
||||
set output_plugin=ao
|
||||
'')
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
{ config, ... }:
|
||||
|
||||
{
|
||||
|
||||
programs.direnv = {
|
||||
nix-direnv.enable = true;
|
||||
config = builtins.fromTOML ''
|
||||
[whitelist]
|
||||
prefix = [ "${config.home.homeDirectory}/.dotfiles" ]
|
||||
[global]
|
||||
strict_env = true
|
||||
'';
|
||||
config = {
|
||||
whitelist.prefix = [ "${config.home.homeDirectory}/.dotfiles" ];
|
||||
global.strict_env = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
21
nix/homeModules/common/fcitx5/default.nix
Normal file
21
nix/homeModules/common/fcitx5/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
i18n.inputMethod = {
|
||||
fcitx5.addons = [
|
||||
pkgs.fcitx5-chinese-addons
|
||||
pkgs.fcitx5-table-extra
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile = lib.mkIf (config.i18n.inputMethod.enabled != null) {
|
||||
"fcitx5".source = ./fcitx;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
|
||||
programs.feh = {
|
||||
enable = true;
|
||||
keybindings = {
|
||||
prev_img = [
|
||||
"Left"
|
||||
90
nix/homeModules/common/firefox.nix
Normal file
90
nix/homeModules/common/firefox.nix
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) nur;
|
||||
in
|
||||
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.cascadia-code # Used in tab bar
|
||||
];
|
||||
|
||||
programs.firefox = {
|
||||
|
||||
# some options only works with firefox-esr
|
||||
package = pkgs.firefox-esr;
|
||||
|
||||
# https://mozilla.github.io/policy-templates
|
||||
policies = {
|
||||
HardwareAcceleration = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
DisablePocket = true;
|
||||
DisplayMenuBar = "never";
|
||||
DisplayBookmarksToolbar = "never";
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
OfferToSaveLoginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
TopSites = true;
|
||||
SponsoredTopSites = false;
|
||||
Highlights = false;
|
||||
Pocket = false;
|
||||
SponsoredPocket = false;
|
||||
};
|
||||
UserMessaging = {
|
||||
ExtensionRecommendations = false;
|
||||
SkipOnboarding = true;
|
||||
};
|
||||
DNSOverHTTPS = {
|
||||
Enabled = true;
|
||||
};
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
};
|
||||
|
||||
profiles.leana = {
|
||||
|
||||
userChrome =
|
||||
let
|
||||
onebar = pkgs.fetchFromGitea {
|
||||
domain = "git.gay";
|
||||
owner = "freeplay";
|
||||
repo = "Firefox-Onebar";
|
||||
rev = "197a5e5298985be3767da504bac153f3b75b63f7";
|
||||
hash = "sha256-+AG6dp92//zEROtKQgPPB0YCTGtHywM8AtobvguF1PM=";
|
||||
};
|
||||
in
|
||||
''
|
||||
#statuspanel-label {
|
||||
font-size: 18px !important;
|
||||
font-family: "Cascadia Code" !important;
|
||||
}
|
||||
.urlbar-input-box {
|
||||
font-size: 18px !important;
|
||||
font-family: "Cascadia Code" !important;
|
||||
}
|
||||
|
||||
${builtins.readFile "${onebar}/onebar.css"}
|
||||
'';
|
||||
|
||||
extensions =
|
||||
let
|
||||
addons = nur.repos.rycee.firefox-addons;
|
||||
in
|
||||
[
|
||||
addons.ublock-origin
|
||||
addons.privacy-badger
|
||||
addons.tridactyl
|
||||
addons.languagetool
|
||||
addons.news-feed-eradicator
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
}:
|
||||
{
|
||||
programs.fish = {
|
||||
shellAbbrs = lib.mkMerge [
|
||||
shellAbbrs = lib.mergeAttrsList [
|
||||
{
|
||||
# Docker
|
||||
dc = "docker compose";
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
":q" = "exit";
|
||||
}
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isLinux {
|
||||
(lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
ssys = "sudo systemctl";
|
||||
sys = "systemctl";
|
||||
se = "SUDO_EDITOR=(which \$EDITOR) sudoedit";
|
||||
|
|
@ -30,25 +30,25 @@
|
|||
hswitch = "home-manager switch --flake ~/.dotfiles#${hostname}";
|
||||
})
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isDarwin {
|
||||
(lib.optionalAttrs pkgs.stdenv.isDarwin {
|
||||
nswitch = "darwin-rebuild switch -L --flake ~/.dotfiles#${hostname} --option sandbox false";
|
||||
})
|
||||
];
|
||||
|
||||
shellAliases = lib.mkMerge [
|
||||
shellAliases = lib.mergeAttrsList [
|
||||
{
|
||||
rm = "rm -I"; # idiot protection
|
||||
tree = "tree -Cph";
|
||||
restow = "cd ~/.dotfiles/ && stow -D . && stow -S . && prevd";
|
||||
}
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isLinux {
|
||||
(lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
# idiot protection
|
||||
chmod = "chmod --preserve-root";
|
||||
chown = "chown --preserve-root";
|
||||
})
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isDarwin (
|
||||
(lib.optionalAttrs pkgs.stdenv.isDarwin (
|
||||
let
|
||||
cmds = builtins.concatStringsSep ";";
|
||||
in
|
||||
|
|
|
|||
|
|
@ -4,6 +4,11 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (pkgs) myPkgs;
|
||||
in
|
||||
|
||||
{
|
||||
imports = [
|
||||
./aliasesAbbrs.nix
|
||||
|
|
@ -18,14 +23,27 @@
|
|||
|
||||
home.packages = [
|
||||
pkgs.vivid
|
||||
pkgs.myPkgs.hutils
|
||||
myPkgs.hutils
|
||||
];
|
||||
programs = {
|
||||
fd.enable = true;
|
||||
fzf.enable = true;
|
||||
tmux.enable = true;
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
starship = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
kitty = {
|
||||
settings.shell = ''${pkgs.fish}/bin/fish --command="tmux-home" --login'';
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.gpg-agent.enableFishIntegration = true;
|
||||
|
||||
xdg.configFile = lib.mapAttrs' (path: _: {
|
||||
name = "fish/functions/${path}";
|
||||
value.source = lib.path.append ./functions path;
|
||||
|
|
@ -33,7 +51,7 @@
|
|||
|
||||
programs.fish = {
|
||||
|
||||
sourcePaths = lib.mkMerge [
|
||||
sourcePaths =
|
||||
[
|
||||
# Make sure wrapper comes first
|
||||
# https://discourse.nixos.org/t/sudo-run-current-system-sw-bin-sudo-must-be-owned-by-uid-0-and-have-the-setuid-bit-set-and-cannot-chdir-var-cron-bailing-out-var-cron-permission-denied/20463/2
|
||||
|
|
@ -53,8 +71,7 @@
|
|||
]
|
||||
|
||||
# Add brew, but as fallback
|
||||
(lib.mkIf pkgs.stdenv.isDarwin "/opt/homebrew/bin")
|
||||
];
|
||||
++ (lib.optional pkgs.stdenv.isDarwin "/opt/homebrew/bin");
|
||||
|
||||
interactiveShellInit = builtins.readFile ./shellInit.fish;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,14 @@
|
|||
{
|
||||
programs.fzf = {
|
||||
enableFishIntegration = true;
|
||||
defaultOptions = [
|
||||
"--cycle"
|
||||
"--border=none"
|
||||
"--preview-window=wrap"
|
||||
"--color=fg:#000000,bg:#eeeeee,hl:#ca1243"
|
||||
"--color=fg+:#000000,bg+:#d0d0d0,hl+:#ca1243"
|
||||
"--color=info:#0184bc,prompt:#645199,pointer:#645199"
|
||||
"--color=marker:#0184bc,spinner:#645199,header:#645199"
|
||||
"--color=gutter:#eeeeee"
|
||||
];
|
||||
};
|
||||
|
||||
programs.fzf.defaultOptions = [
|
||||
"--cycle"
|
||||
"--border=none"
|
||||
"--preview-window=wrap"
|
||||
"--color=fg:#000000,bg:#eeeeee,hl:#ca1243"
|
||||
"--color=fg+:#000000,bg+:#d0d0d0,hl+:#ca1243"
|
||||
"--color=info:#0184bc,prompt:#645199,pointer:#645199"
|
||||
"--color=marker:#0184bc,spinner:#645199,header:#645199"
|
||||
"--color=gutter:#eeeeee"
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
{
|
||||
services = {
|
||||
gpg-agent.enableFishIntegration = true;
|
||||
gpg-agent.defaultCacheTtl = 1209600;
|
||||
gpg-agent.pinentryPackage = pkgs.pinentry-tty;
|
||||
};
|
||||
|
|
@ -38,7 +37,6 @@
|
|||
|
||||
# istic
|
||||
{
|
||||
|
||||
text = ''
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
|
|
@ -47,15 +45,15 @@
|
|||
Z0BldHVkaWFudC51bml2LXJlbm5lczEuZnI+iJMEExYKADsWIQTrVEpkQrO2zojN
|
||||
hZcyA125fnd+6wUCY/CoXQIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgAAK
|
||||
CRAyA125fnd+69LtAP4+CUIJEPUMlsQIxeR7D0P36Gc99H2CetbFnvuwbjx+6AD+
|
||||
NUpPeodNBF9bkehOXXVeozYsl9KVdnrUDi/k6PpVTQK4OARj8KhdEgorBgEEAZdV
|
||||
AQUBAQdAoxVYfP8bPtJmzdEjZqeAz3c5xfb3i2WXgjgzSCddBFMDAQgHiHgEGBYK
|
||||
ACAWIQTrVEpkQrO2zojNhZcyA125fnd+6wUCY/CoXQIbDAAKCRAyA125fnd+697N
|
||||
AP0TUgyl0CS5SLNYMXQsfmv+mQMduFHD3k2dFEuto3mEOwEAie95uXDRFHaV/LMv
|
||||
TRwwyv2P9C8usDGCDj1e+h8PtAI=
|
||||
=MmSo
|
||||
NUpPeodNBF9bkehOXXVeozYsl9KVdnrUDi/k6PpVTQK0REzDqWFuYSBDSElBTkcg
|
||||
KGdpdGxhYjIuaXN0aWMpIDxsZWFuYS5jaGlhbmdAZXR1ZGlhbnQudW5pdi1yZW5u
|
||||
ZXMuZnI+iI4EExYKADYWIQTrVEpkQrO2zojNhZcyA125fnd+6wUCZz+qdAIbAwQL
|
||||
CQgHBBUKCQgFFgIDAQACHgUCF4AACgkQMgNduX53fusnZwEAoq33+pdQlBnzU5HG
|
||||
3vmaJSHNtgYzIAiLpkU7ahufgM0A/0FKGNFTPnamSEOui4lANJvSZumv4QkVRVmB
|
||||
Q+D9ElYO
|
||||
=gs3q
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
'';
|
||||
|
||||
trust = 5;
|
||||
}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
let
|
||||
cfg = config.programs.kitty;
|
||||
in
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.kitty = lib.mkIf config.programs.kitty.enable {
|
||||
programs.kitty = lib.mkIf cfg.enable {
|
||||
font = {
|
||||
name = "AltiosevkaNFM";
|
||||
size = 14;
|
||||
|
|
@ -15,7 +15,6 @@
|
|||
background = "#ffffff";
|
||||
confirm_os_window_close = 0;
|
||||
text_composition_strategy = "1.7 0";
|
||||
shell = ''${pkgs.fish}/bin/fish --command="tmux-home" --login'';
|
||||
};
|
||||
extraConfig = ''
|
||||
background #f8f8f8
|
||||
|
|
@ -40,6 +39,5 @@
|
|||
color15 #ffffff
|
||||
selection_foreground #f8f8f8
|
||||
'';
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
10
nix/homeModules/common/locale.nix
Normal file
10
nix/homeModules/common/locale.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
nixosConfig ? null,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home.language = {
|
||||
base = nixosConfig.i18n.defaultLocale or "en_US.UTF-8";
|
||||
};
|
||||
}
|
||||
|
|
@ -6,31 +6,29 @@
|
|||
}:
|
||||
|
||||
{
|
||||
config = {
|
||||
programs.neovim = {
|
||||
defaultEditor = true;
|
||||
extraPackages = [
|
||||
# might be useful for servers, serves as minimal configuration
|
||||
pkgs.nodePackages.bash-language-server
|
||||
pkgs.shellcheck
|
||||
pkgs.shfmt
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile =
|
||||
let
|
||||
fr_utf-8_spl = builtins.fetchurl {
|
||||
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl";
|
||||
sha256 = "abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61";
|
||||
};
|
||||
fr_utf-8_sug = builtins.fetchurl {
|
||||
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug";
|
||||
sha256 = "0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58";
|
||||
};
|
||||
in
|
||||
lib.mkIf config.programs.neovim.enable {
|
||||
"nvim/spell/fr.utf-8.spl".source = fr_utf-8_spl;
|
||||
"nvim/spell/fr.utf-8.sug".source = fr_utf-8_sug;
|
||||
};
|
||||
programs.neovim = {
|
||||
defaultEditor = true;
|
||||
extraPackages = [
|
||||
# might be useful for servers, serves as minimal configuration
|
||||
pkgs.nodePackages.bash-language-server
|
||||
pkgs.shellcheck
|
||||
pkgs.shfmt
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile =
|
||||
let
|
||||
fr_utf-8_spl = builtins.fetchurl {
|
||||
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl";
|
||||
sha256 = "abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61";
|
||||
};
|
||||
fr_utf-8_sug = builtins.fetchurl {
|
||||
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug";
|
||||
sha256 = "0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58";
|
||||
};
|
||||
in
|
||||
lib.mkIf config.programs.neovim.enable {
|
||||
"nvim/spell/fr.utf-8.spl".source = fr_utf-8_spl;
|
||||
"nvim/spell/fr.utf-8.sug".source = fr_utf-8_sug;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,11 +6,13 @@
|
|||
fish.enable = true;
|
||||
git.enable = true;
|
||||
vim.enable = true;
|
||||
starship.enable = true;
|
||||
tmux.enable = true;
|
||||
};
|
||||
|
||||
services.gpg-agent.enable = lib.mkIf pkgs.stdenv.isLinux true;
|
||||
services.gpg-agent.enable = lib.mkDefault pkgs.stdenv.isLinux;
|
||||
|
||||
home.packages = lib.mkMerge [
|
||||
home.packages =
|
||||
[
|
||||
pkgs.file
|
||||
pkgs.gnused
|
||||
|
|
@ -19,7 +21,6 @@
|
|||
]
|
||||
|
||||
# coreutils for darwin
|
||||
(lib.mkIf pkgs.stdenv.isDarwin [ pkgs.uutils-coreutils-noprefix ])
|
||||
];
|
||||
++ (lib.optional pkgs.stdenv.isDarwin pkgs.uutils-coreutils-noprefix);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
programs.sioyek = {
|
||||
|
||||
enable = true;
|
||||
bindings = {
|
||||
"move_up" = "k";
|
||||
"move_down" = "j";
|
||||
|
|
@ -17,6 +16,7 @@
|
|||
"<C-u>"
|
||||
];
|
||||
};
|
||||
|
||||
config.should_launch_new_window = "1";
|
||||
|
||||
};
|
||||
|
|
@ -1,6 +1,13 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
let
|
||||
cfg = config.programs.starship;
|
||||
in
|
||||
|
||||
{
|
||||
programs.starship = {
|
||||
enableFishIntegration = true;
|
||||
settings = fromTOML (builtins.readFile ./starship.toml);
|
||||
|
||||
xdg.configFile = lib.mkIf cfg.enable {
|
||||
"starship.toml".source = ./starship.toml;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
nixosConfig ? null,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
nix = {
|
||||
package = lib.mkForce pkgs.nixVersions.nix_2_23;
|
||||
package = lib.mkDefault (nixosConfig.nix.package or pkgs.nix);
|
||||
|
||||
settings = {
|
||||
allow-import-from-derivation = "true";
|
||||
|
|
|
|||
27
nix/homeModules/common/wired/default.nix
Normal file
27
nix/homeModules/common/wired/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.programs.wired;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options = {
|
||||
programs.wired = {
|
||||
enable = lib.mkEnableOption "wired";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ pkgs.wired ];
|
||||
xdg.configFile = {
|
||||
"wired/wired.ron".source = ./wired.ron;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
167
nix/homeModules/common/wired/wired.ron
Normal file
167
nix/homeModules/common/wired/wired.ron
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
(
|
||||
// Maximum number of notifications to show at any one time.
|
||||
// A value of 0 means that there is no limit.
|
||||
max_notifications: 0,
|
||||
|
||||
// The default timeout, in miliseconds, for notifications that don't have an initial timeout set.
|
||||
// 1000ms = 1s.
|
||||
timeout: 10000,
|
||||
|
||||
// `poll_interval` decides decides how often (in milliseconds) Wired checks events,
|
||||
// draws notifications (if necessary) -- the update loop while any notification is present.
|
||||
// Note that when no notifications are present, Wired polls at `idle_poll_interval` instead.
|
||||
// 16ms ~= 60hz / 7ms ~= 144hz.
|
||||
poll_interval: 16,
|
||||
|
||||
// The interval at which wired updates when no notifications/windows are present.
|
||||
//idle_poll_interval: 500,
|
||||
|
||||
// Wired will pause notifications if you are idle (no mouse or keyboard input) for longer than
|
||||
// `idle_threshold` seconds.
|
||||
// Note that notifications will not be automatically unpaused on wake, and will need to be manually
|
||||
// cleared, unless `unpause_on_input` is set to true.
|
||||
// Also note that no distinction is made between manually paused and idle paused notifications.
|
||||
// If `idle_threshold` is not specified, the behavior will be disabled entirely.
|
||||
//idle_threshold: 3600,
|
||||
|
||||
// Notifications will spawn paused, and have to be manually unpaused or cleared by the user,
|
||||
// unless `unpause_on_input` is also set.
|
||||
//notifications_spawn_paused: false,
|
||||
|
||||
// Unpause notifications when we receive any input after being idle for longer than 1 second.
|
||||
// Note that no distinction is made between manually paused notifications and idle paused/spawned notifications.
|
||||
//unpause_on_input: false,
|
||||
|
||||
// Enable/disable replacement functionality.
|
||||
// If this is disabled, replacement requests will just send a new notification.
|
||||
// E.g., with replacing_enabled: true, Pidgin will only show the latest message from each contact,
|
||||
// instead of sending a new one for each message.
|
||||
// Default: true
|
||||
//replacing_enabled: true,
|
||||
|
||||
// Whether a notification should reset its timeout when it is replaced.
|
||||
// No effect if replacing_enabled is set to false.
|
||||
// Default: false
|
||||
//replacing_resets_timeout: false,
|
||||
|
||||
// Some apps/programs close notifications on their own by sending a request to dbus.
|
||||
// Sometimes this is not desired.
|
||||
// Default: true
|
||||
//closing_enabled: true,
|
||||
|
||||
// How many notifications are kept in history.
|
||||
// Each notification is roughly 256 bytes (excluding buffers!), so there's some math to do here.
|
||||
// Default: 10
|
||||
//history_length: 10,
|
||||
|
||||
// When a `NotificationBlock` has monitorr: -1 (i.e. should follow active monitor), then what input
|
||||
// should we use to determine the active monitor?
|
||||
// Options: Mouse, Window
|
||||
// Default: Mouse
|
||||
//focus_follows: Mouse,
|
||||
|
||||
// Enable printing notification data to a file.
|
||||
// Useful for scripting purposes.
|
||||
// The data is written as JSON.
|
||||
// Default: None
|
||||
//print_to_file: "/tmp/wired.log",
|
||||
|
||||
// Minimum window width and height. This is used to create the base rect that the notification
|
||||
// grows within.
|
||||
// The notification window will never be smaller than this.
|
||||
// A value of 1 means that the window will generally always resize with notification, unless
|
||||
// you have a 1x1 pixel notification...
|
||||
// Generally, you shouldn't need to set this.
|
||||
//min_window_width: 1,
|
||||
//min_window_height: 1,
|
||||
|
||||
// Enable/disable debug rendering.
|
||||
debug: false,
|
||||
debug_color: Color(r: 0.0, g: 1.0, b: 0.0, a: 1.0), // Primary color for debug rectangles.
|
||||
debug_color_alt: Color(r: 1.0, g: 0.0, b: 0.0, a: 1.0), // Secondary color for debug rectangles.
|
||||
|
||||
layout_blocks: [
|
||||
(
|
||||
name: "root",
|
||||
parent: "",
|
||||
hook: Hook(parent_anchor: BR, self_anchor: BR),
|
||||
offset: Vec2(x: -20.0, y: -20.0),
|
||||
params: NotificationBlock((
|
||||
monitor: 0,
|
||||
border_width: 0,
|
||||
border_rounding: 0.0,
|
||||
background_color: Color(hex: "#383A42"),
|
||||
border_color: Color(hex: "#696c77"),
|
||||
border_color_low: Color(hex: "#383A42"),
|
||||
border_color_critical: Color(hex: "#ff1414"),
|
||||
border_color_paused: Color(hex: "#fabd2f"),
|
||||
gap: Vec2(x: 0.0, y: -6.0),
|
||||
notification_hook: Hook(parent_anchor: TL, self_anchor: BL),
|
||||
)),
|
||||
),
|
||||
|
||||
(
|
||||
name: "image",
|
||||
parent: "root",
|
||||
hook: Hook(parent_anchor: TL, self_anchor: TL),
|
||||
offset: Vec2(x: 0.0, y: 0.0),
|
||||
params: ImageBlock((
|
||||
image_type: Hint,
|
||||
padding: Padding(left: 7.0, right: 0.0, top: 7.0, bottom: 7.0),
|
||||
rounding: 3.0,
|
||||
scale_width: 48,
|
||||
scale_height: 48,
|
||||
filter_mode: Lanczos3,
|
||||
)),
|
||||
),
|
||||
|
||||
(
|
||||
name: "summary",
|
||||
parent: "image",
|
||||
hook: Hook(parent_anchor: MR, self_anchor: BL),
|
||||
offset: Vec2(x: 0.0, y: 0.0),
|
||||
params: ScrollingTextBlock((
|
||||
text: "%s",
|
||||
font: "JetBrains Mono 24",
|
||||
color: Color(hex: "#fafafa"),
|
||||
padding: Padding(left: 7.0, right: 7.0, top: 1.0, bottom: 0.0),
|
||||
width: (min: 400, max: 400),
|
||||
scroll_speed: 0.1,
|
||||
lhs_dist: 35.0,
|
||||
rhs_dist: 35.0,
|
||||
scroll_t: 1.0,
|
||||
)),
|
||||
),
|
||||
|
||||
(
|
||||
name: "body",
|
||||
parent: "summary",
|
||||
hook: Hook(parent_anchor: BL, self_anchor: TL),
|
||||
offset: Vec2(x: 0.0, y: -3.0),
|
||||
params: ScrollingTextBlock((
|
||||
text: "%b",
|
||||
font: "Altiosevka NFM 18",
|
||||
color: Color(hex: "#fafafa"),
|
||||
padding: Padding(left: 7.0, right: 7.0, top: 3.0, bottom: 7.0),
|
||||
width: (min: 400, max: 400),
|
||||
scroll_speed: 0.1,
|
||||
lhs_dist: 35.0,
|
||||
rhs_dist: 35.0,
|
||||
scroll_t: 1.0,
|
||||
)),
|
||||
),
|
||||
],
|
||||
|
||||
// https://github.com/Toqozz/wired-notify/wiki/Shortcuts
|
||||
shortcuts: ShortcutsConfig (
|
||||
notification_interact: 1,
|
||||
notification_close: 2,
|
||||
// notification_closeall: 99,
|
||||
// notification_pause: 99,
|
||||
|
||||
notification_action1: 3,
|
||||
// notification_action2: 99,
|
||||
// notification_action3: 99,
|
||||
// notification_action4: 99,
|
||||
),
|
||||
)
|
||||
43
nix/homeModules/common/xmobar.nix
Normal file
43
nix/homeModules/common/xmobar.nix
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
|
||||
programs.xmobar.extraConfig = ''
|
||||
Config { overrideRedirect = False
|
||||
, font = "Iosevka 11"
|
||||
, additionalFonts = [ "Noto Color Emoji 9"
|
||||
]
|
||||
, bgColor = "#000000"
|
||||
, fgColor = "#FFFFFF"
|
||||
, position = Bottom
|
||||
, commands = [ Run Kbd
|
||||
[ ("myDvorakFrench", "🇫🇷")
|
||||
, ("myDvorak", "🇺🇸")
|
||||
, ("us", "🇹🇼")
|
||||
]
|
||||
, Run ThermalZone 0 ["-t", " <temp>°C"] 30
|
||||
, Run Alsa "default" "Master"
|
||||
[ "-t", "<status> <volume>%"
|
||||
, "--"
|
||||
, "-O", ""
|
||||
, "-o", ""
|
||||
]
|
||||
, Run Memory [ "-t", " <usedratio>%" ] 30
|
||||
, Run Date "%a %d %H:%M:%S" "date" 10
|
||||
, Run Battery
|
||||
[ "-t", "<acstatus>:<left>%"
|
||||
, "--"
|
||||
, "-O", ""
|
||||
, "-i", ""
|
||||
, "-o", ""
|
||||
, "-h", "green"
|
||||
, "-m", "yell"
|
||||
, "-l", "red"
|
||||
] 10
|
||||
, Run XMonadLog
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = "%XMonadLog% }{ %kbd% | %alsa:default:Master% | %thermal0% | %memory% | %battery% | %date% "
|
||||
}
|
||||
'';
|
||||
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
frequency = "weekly";
|
||||
options = "--delete-older-than 15d";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
i18n.inputMethod = {
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = [
|
||||
pkgs.fcitx5-chinese-addons
|
||||
pkgs.fcitx5-table-extra
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile."fcitx5".source = ./fcitx;
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
pkgs.nil # nix
|
||||
pkgs.yaml-language-server # yaml
|
||||
|
||||
pkgs.nodePackages.pyright # python
|
||||
pkgs.pyright # python
|
||||
|
||||
pkgs.marksman # markdown
|
||||
pkgs.taplo # toml
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) myPkgs;
|
||||
in
|
||||
|
||||
{
|
||||
programs.direnv.enable = true;
|
||||
|
||||
|
|
@ -10,5 +14,7 @@
|
|||
pkgs.nix-tree
|
||||
pkgs.nurl
|
||||
pkgs.nvd
|
||||
|
||||
myPkgs.nd
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@
|
|||
|
||||
{
|
||||
programs = {
|
||||
starship.enable = true;
|
||||
gpg.enable = true;
|
||||
neovim.enable = true;
|
||||
tmux.enable = true;
|
||||
};
|
||||
|
||||
home.packages = [ pkgs.stow ];
|
||||
|
|
|
|||
|
|
@ -27,5 +27,5 @@ in
|
|||
pkgs.colima
|
||||
];
|
||||
|
||||
programs.neovim.extraPackages = [ myPkgs.fish-lsp ];
|
||||
programs.neovim.extraPackages = [ pkgs.fish-lsp ];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,158 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) nur;
|
||||
in
|
||||
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.cascadia-code # Used in tab bar
|
||||
];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.firefox-esr; # some options only works with firefox-esr
|
||||
# https://mozilla.github.io/policy-templates
|
||||
policies = {
|
||||
HardwareAcceleration = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
DisablePocket = true;
|
||||
DisplayMenuBar = "never";
|
||||
DisplayBookmarksToolbar = "never";
|
||||
NoDefaultBookmarks = true;
|
||||
OfferToSaveLogins = false;
|
||||
OfferToSaveLoginsDefault = false;
|
||||
PasswordManagerEnabled = false;
|
||||
FirefoxHome = {
|
||||
Search = true;
|
||||
TopSites = true;
|
||||
SponsoredTopSites = false;
|
||||
Highlights = false;
|
||||
Pocket = false;
|
||||
SponsoredPocket = false;
|
||||
};
|
||||
UserMessaging = {
|
||||
ExtensionRecommendations = false;
|
||||
SkipOnboarding = true;
|
||||
};
|
||||
DNSOverHTTPS = {
|
||||
Enabled = true;
|
||||
};
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
SearchEngines = {
|
||||
Default = "searxng";
|
||||
Add = [
|
||||
{
|
||||
Name = "searxng";
|
||||
URLTemplate = "https://searxng.earth2077.fr/search?q={searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
profiles.leana = {
|
||||
id = 0;
|
||||
name = "leana";
|
||||
search = {
|
||||
force = true;
|
||||
default = "searxng";
|
||||
engines = {
|
||||
"Nix Packages" = {
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{
|
||||
name = "type";
|
||||
value = "packages";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
Searxng = {
|
||||
urls = [ { template = "https://searxng.earth2077.fr/search?query={searchTerms}"; } ];
|
||||
iconUpdateURL = "https://searxng.earth2077.fr/favicon.png";
|
||||
};
|
||||
Invidious = {
|
||||
urls = [ { template = "https://invidious.earth2077.fr/search?q={searchTerms}"; } ];
|
||||
definedAliases = [ "@yt" ];
|
||||
iconUpdateURL = "https://invidious.earth2077.fr/favicon-32x32.png";
|
||||
};
|
||||
Hoogle = {
|
||||
urls = [ { template = "https://hoogle.haskell.org/?hoogle={searchTerms}"; } ];
|
||||
iconUpdateURL = "https://hoogle.haskell.org/favicon.png";
|
||||
definedAliases = [ "@hg" ];
|
||||
};
|
||||
Genius = {
|
||||
urls = [ { template = "https://genius.com/search?q={searchTerms}"; } ];
|
||||
iconUpdateURL = "https://genius.com/favicon.ico";
|
||||
definedAliases = [ "@ge" ];
|
||||
};
|
||||
"NixOS Wiki" = {
|
||||
urls = [ { template = "https://nixos.wiki/index.php?search={searchTerms}"; } ];
|
||||
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
"Wikipedia (en)".metaData.alias = "@wk";
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"layout.css.devPixelsPerPx" = 1.2;
|
||||
"browser.tabs.loadInBackground" = true;
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
||||
};
|
||||
userChrome =
|
||||
let
|
||||
onebar = pkgs.fetchFromGitea {
|
||||
domain = "git.gay";
|
||||
owner = "freeplay";
|
||||
repo = "Firefox-Onebar";
|
||||
rev = "197a5e5298985be3767da504bac153f3b75b63f7";
|
||||
hash = "sha256-+AG6dp92//zEROtKQgPPB0YCTGtHywM8AtobvguF1PM=";
|
||||
};
|
||||
in
|
||||
''
|
||||
#statuspanel-label {
|
||||
font-size: 18px !important;
|
||||
font-family: "Cascadia Code" !important;
|
||||
}
|
||||
.urlbar-input-box {
|
||||
font-size: 18px !important;
|
||||
font-family: "Cascadia Code" !important;
|
||||
}
|
||||
|
||||
${builtins.readFile "${onebar}/onebar.css"}
|
||||
'';
|
||||
|
||||
userContent = ''
|
||||
/* a css */
|
||||
'';
|
||||
extensions =
|
||||
let
|
||||
addons = nur.repos.rycee.firefox-addons;
|
||||
in
|
||||
[
|
||||
addons.ublock-origin
|
||||
addons.privacy-badger
|
||||
addons.sponsorblock
|
||||
addons.tridactyl
|
||||
addons.languagetool
|
||||
# flaky, find a better source to be fetched
|
||||
# addons.bypass-paywalls-clean
|
||||
addons.news-feed-eradicator
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -6,8 +6,8 @@ in
|
|||
|
||||
{
|
||||
imports = [
|
||||
./browser.nix
|
||||
./wm.nix
|
||||
./firefox.nix
|
||||
./gui.nix
|
||||
|
||||
# system-wide language servers, build tools, compilers
|
||||
./dev.nix
|
||||
|
|
@ -24,31 +24,28 @@ in
|
|||
pkgs.poppler_utils # pdfseparate, pdfunite
|
||||
myPkgs.easyscan
|
||||
|
||||
pkgs.deploy-rs
|
||||
myPkgs.nd
|
||||
|
||||
pkgs.ranger
|
||||
pkgs.discord
|
||||
|
||||
pkgs.fractal
|
||||
|
||||
pkgs.hacksaw
|
||||
pkgs.shotgun
|
||||
pkgs.vlc
|
||||
|
||||
pkgs.evolution
|
||||
pkgs.teams-for-linux
|
||||
pkgs.evolution
|
||||
|
||||
myPkgs.typst-mutilate
|
||||
pkgs.vlc
|
||||
pkgs.calibre
|
||||
|
||||
myPkgs.prop-solveur
|
||||
myPkgs.hbf
|
||||
|
||||
pkgs.agenix
|
||||
pkgs.lucky-commit
|
||||
];
|
||||
|
||||
programs = {
|
||||
kitty.enable = true;
|
||||
password-store.enable = true;
|
||||
feh.enable = true;
|
||||
sioyek.enable = true;
|
||||
cmus.enable = true;
|
||||
};
|
||||
|
||||
i18n.inputMethod.enabled = "fcitx5";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@ in
|
|||
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.jetbrains.idea-community
|
||||
pkgs.gnumake
|
||||
pkgs.cmake
|
||||
|
||||
# keyboard
|
||||
pkgs.clang-tools
|
||||
pkgs.qmk
|
||||
pkgs.wally-cli
|
||||
pkgs.iconv
|
||||
pkgs.sqlite
|
||||
|
||||
# pkgs.jetbrains.idea-community
|
||||
|
||||
# # keyboard
|
||||
# pkgs.clang-tools
|
||||
# pkgs.qmk
|
||||
# pkgs.wally-cli
|
||||
|
||||
# golang
|
||||
pkgs.go
|
||||
|
|
@ -38,22 +44,27 @@ in
|
|||
(pkgs.metals.override { jre = config.programs.java.package; })
|
||||
(pkgs.ammonite.override { jre = config.programs.java.package; })
|
||||
|
||||
pkgs.gnumake
|
||||
pkgs.cmake
|
||||
|
||||
pkgs.iconv
|
||||
pkgs.sqlite
|
||||
|
||||
# isabelle
|
||||
pkgs.isabelle
|
||||
myPkgs.isabelle-2023 # module ACF
|
||||
|
||||
# preview markdown
|
||||
pkgs.python3Packages.grip
|
||||
|
||||
# typst
|
||||
myPkgs.typst-mutilate
|
||||
|
||||
# xmonad development/configuartion
|
||||
pkgs.cabal-install
|
||||
(pkgs.haskellPackages.ghcWithPackages (self: [
|
||||
self.xmonad-contrib
|
||||
self.xmonad-extras
|
||||
]))
|
||||
pkgs.haskell-language-server
|
||||
];
|
||||
|
||||
programs.neovim.extraPackages = [
|
||||
# fish
|
||||
myPkgs.fish-lsp
|
||||
pkgs.fish-lsp
|
||||
|
||||
# golang
|
||||
pkgs.gopls
|
||||
|
|
@ -69,6 +80,8 @@ in
|
|||
pkgs.jdt-language-server
|
||||
];
|
||||
|
||||
programs.git.signing.signByDefault = true;
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
|
|
|
|||
44
nix/homeModules/named/carbon/firefox.nix
Normal file
44
nix/homeModules/named/carbon/firefox.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) nur;
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
programs.firefox = {
|
||||
|
||||
enable = true;
|
||||
|
||||
policies.SearchEngines = {
|
||||
Default = "searxng";
|
||||
Add = [
|
||||
{
|
||||
Name = "searxng";
|
||||
URLTemplate = "https://searxng.earth2077.fr/search?q={searchTerms}";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
profiles.leana = {
|
||||
settings = {
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"layout.css.devPixelsPerPx" = 1.2;
|
||||
"browser.tabs.loadInBackground" = true;
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = false;
|
||||
};
|
||||
|
||||
extensions =
|
||||
let
|
||||
addons = nur.repos.rycee.firefox-addons;
|
||||
in
|
||||
[
|
||||
addons.sponsorblock
|
||||
# flaky, find a better source to be fetched
|
||||
# addons.bypass-paywalls-clean
|
||||
];
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
60
nix/homeModules/named/carbon/gui.nix
Normal file
60
nix/homeModules/named/carbon/gui.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) myPkgs;
|
||||
in
|
||||
|
||||
{
|
||||
home.pointerCursor = {
|
||||
x11.enable = true;
|
||||
gtk.enable = true;
|
||||
name = "volantes_cursors";
|
||||
package = pkgs.volantes-cursors;
|
||||
size = 64;
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".xscreensaver".source = ./xscreensaver/.xscreensaver;
|
||||
".wallpaper".source = "${pkgs.wallpapers.nix-logo-lambda}/main.svg";
|
||||
};
|
||||
|
||||
# https://wiki.archlinux.org/title/java#Gray_window,_applications_not_resizing_with_WM,_menus_immediately_closing
|
||||
# fix all java things that don't scale with XMonad
|
||||
home.sessionVariables = {
|
||||
_JAVA_AWT_WM_NONREPARENTING = 1;
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
# Fonts
|
||||
pkgs.noto-fonts
|
||||
pkgs.noto-fonts-lgc-plus
|
||||
pkgs.noto-fonts-cjk-sans
|
||||
pkgs.noto-fonts-cjk-serif
|
||||
pkgs.noto-fonts-color-emoji
|
||||
pkgs.noto-fonts-emoji-blob-bin
|
||||
myPkgs.altiosevka-nerd-font-mono
|
||||
myPkgs.altiosevka
|
||||
pkgs.jetbrains-mono
|
||||
|
||||
# wm utilities
|
||||
pkgs.alsa-utils # used to fetch volume in xmobar
|
||||
myPkgs.xbrightness
|
||||
pkgs.xmobar
|
||||
pkgs.wired
|
||||
pkgs.dmenu
|
||||
pkgs.xclip
|
||||
pkgs.playerctl
|
||||
pkgs.hacksaw
|
||||
pkgs.shotgun
|
||||
# talk to xscreensaver
|
||||
pkgs.xscreensaver
|
||||
|
||||
# audio utilities
|
||||
pkgs.helvum
|
||||
pkgs.pavucontrol
|
||||
pkgs.easyeffects
|
||||
];
|
||||
|
||||
programs.xmobar.enable = true;
|
||||
programs.wired.enable = true;
|
||||
}
|
||||
|
|
@ -1,89 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (pkgs) myPkgs;
|
||||
|
||||
wallpapers = {
|
||||
nixos = pkgs.fetchurl {
|
||||
url = "https://c.wallhere.com/photos/49/ce/Linux_Nixos_operating_system_minimalism-2175179.jpg!d";
|
||||
hash = "sha256-RdrkvsVB6fHnyDZQ6wCGc7lUP7FoDYGvx2jfWB1WSvI=";
|
||||
};
|
||||
|
||||
sequoia = pkgs.fetchurl {
|
||||
url = "https://basicappleguy.com/s/SequoiaLight.png";
|
||||
hash = "sha256-F3vo07kdE19luHtrBO8Q+Rj0mk+UlgtOSwOVdFW8Vlk=";
|
||||
};
|
||||
|
||||
apple-pride-mac = pkgs.fetchurl {
|
||||
url = "https://basicappleguy.com/s/Pride_Mac2.png";
|
||||
hash = "sha256-PkGIlWf554Lk5e2gLDpDg+Rmb9qAniTiNvbV3/pppwA=";
|
||||
};
|
||||
|
||||
apple-nebula-ipad = pkgs.fetchurl {
|
||||
url = "https://basicappleguy.com/s/NebulaiPad.png";
|
||||
hash = "sha256-rpWxhCH7eIT7ktRAROvL56eRK0T6AsgGE+iI/CLUF3k=";
|
||||
};
|
||||
|
||||
"luz&amity_20_windz" = pkgs.fetchurl {
|
||||
url = "https://64.media.tumblr.com/a28bd2446401e30cc879a641a3038ac7/fcdeee73cdb01c35-18/s2048x3072/c6c89f6de58d26eeb9848d5f41b20ebbcec94b6d.pnj";
|
||||
hash = "sha256-isdyegUoGXZyFDCyBMCNadIv/jry82slXkjcdXpNKrY=";
|
||||
};
|
||||
|
||||
nixos-artwork-binary-black_8k = pkgs.fetchurl {
|
||||
url = "https://github.com/NixOS/nixos-artwork/blob/53ea652ec7d8af5d21fd2b79b6c49cb39078ddfb/wallpapers/nix-wallpaper-binary-black_8k.png?raw=true";
|
||||
hash = "sha256-MxEgvzWmdqMeI5GeI6Hzci6yd5iL44NDXyKQOuw+fLY=";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
home.pointerCursor = {
|
||||
x11.enable = true;
|
||||
gtk.enable = true;
|
||||
name = "volantes_cursors";
|
||||
package = pkgs.volantes-cursors;
|
||||
size = 64;
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".xscreensaver".source = ./xscreensaver/.xscreensaver;
|
||||
".wallpaper".source = "${pkgs.wallpapers.y-combinator}/main.svg";
|
||||
};
|
||||
|
||||
# https://wiki.archlinux.org/title/java#Gray_window,_applications_not_resizing_with_WM,_menus_immediately_closing
|
||||
# fix all java things that don't scale with XMonad
|
||||
home.sessionVariables = {
|
||||
_JAVA_AWT_WM_NONREPARENTING = 1;
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
# Fonts
|
||||
pkgs.noto-fonts
|
||||
pkgs.noto-fonts-lgc-plus
|
||||
pkgs.noto-fonts-cjk-sans
|
||||
pkgs.noto-fonts-cjk-serif
|
||||
pkgs.noto-fonts-color-emoji
|
||||
pkgs.noto-fonts-emoji-blob-bin
|
||||
myPkgs.altiosevka-nerd-font-mono
|
||||
myPkgs.altiosevka
|
||||
|
||||
pkgs.xmobar
|
||||
pkgs.wired
|
||||
pkgs.jetbrains-mono
|
||||
|
||||
pkgs.dmenu
|
||||
pkgs.xclip
|
||||
pkgs.playerctl
|
||||
|
||||
pkgs.cabal-install
|
||||
(pkgs.haskellPackages.ghcWithPackages (self: [
|
||||
self.xmonad-contrib
|
||||
self.xmonad-extras
|
||||
]))
|
||||
|
||||
pkgs.haskell-language-server
|
||||
myPkgs.xbrightness
|
||||
pkgs.ranger
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue