mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 22:59:15 +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
|
|
@ -142,25 +142,16 @@ in
|
|||
inputs.disko.nixosModules.default
|
||||
self.diskoConfigurations.carbon
|
||||
self.nixosModules.tmp-tmpfs
|
||||
self.nixosModules.zram
|
||||
{
|
||||
home-manager.users.leana = {
|
||||
imports = [
|
||||
self.homeModules.fcitx5
|
||||
self.homeModules.sioyek
|
||||
self.homeModules.feh
|
||||
home-manager.users.leana.imports = [
|
||||
self.homeModules.preset-utilities
|
||||
self.homeModules.preset-scripting
|
||||
self.homeModules.preset-fancy
|
||||
self.homeModules.preset-nix
|
||||
self.homeModules.preset-workflow
|
||||
|
||||
self.homeModules.preset-utilities
|
||||
self.homeModules.preset-scripting
|
||||
self.homeModules.preset-fancy
|
||||
self.homeModules.preset-nix
|
||||
self.homeModules.preset-workflow
|
||||
|
||||
self.homeModules.neovim-moreLangServers
|
||||
];
|
||||
programs.git.signing.signByDefault = true;
|
||||
programs.cmus.enable = true;
|
||||
};
|
||||
self.homeModules.neovim-moreLangServers
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
|
|
|||
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
|
||||
];
|
||||
}
|
||||
5
nix/nixosModules/common/zram.nix
Normal file
5
nix/nixosModules/common/zram.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ lib, ... }:
|
||||
|
||||
{
|
||||
zramSwap.enable = lib.mkDefault true;
|
||||
}
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
# Turning off this module is not intuitive, so it's opt-in
|
||||
|
||||
{
|
||||
|
||||
fileSystems."/tmp" = {
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
{ zramSwap.enable = true; }
|
||||
|
|
@ -1,10 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
sound = {
|
||||
enable = true;
|
||||
mediaKeys.enable = true;
|
||||
};
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
|
||||
|
|
@ -25,11 +19,6 @@
|
|||
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.helvum
|
||||
pkgs.pavucontrol
|
||||
pkgs.easyeffects
|
||||
];
|
||||
|
||||
users.users."leana".extraGroups = [ "audio" ];
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
systemd.sleep.extraConfig = ''
|
||||
HibernateDelaySec=2hour
|
||||
|
|
@ -24,32 +22,4 @@
|
|||
SOUND_POWER_SAVE_CONTROLLER = "N";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."battery-notify" = {
|
||||
enable = true;
|
||||
description = "Scream when battery is dying";
|
||||
startAt = [ "*:0/5" ];
|
||||
unitConfig.After = "multi-user.target";
|
||||
serviceConfig.ExecStart =
|
||||
let
|
||||
script = pkgs.writeShellApplication {
|
||||
name = "battery-notify";
|
||||
runtimeInputs = [
|
||||
pkgs.bc
|
||||
pkgs.libnotify
|
||||
];
|
||||
text = ''
|
||||
battery="/sys/class/power_supply/BAT1"
|
||||
thres="0.2"
|
||||
isLow=$(echo "($(cat $battery/energy_now) / $(cat $battery/energy_full)) < $thres" | bc -l)
|
||||
|
||||
if [ "$isLow" -eq 1 ]; then
|
||||
echo "You're battery level is below $thres"
|
||||
notify-send -u critical "Battery Low" "Please charge your battery"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
in
|
||||
lib.getExe script;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
# FIXME: this breaks the handsfree microphone mode for XM4
|
||||
# environment.etc = {
|
||||
# "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = ''
|
||||
# bluez_monitor.properties = {
|
||||
# ["bluez5.enable-sbc-xq"] = true,
|
||||
# ["bluez5.enable-msbc"] = true,
|
||||
# ["bluez5.enable-hw-volume"] = true,
|
||||
# ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
|
||||
# }
|
||||
# '';
|
||||
# };
|
||||
}
|
||||
69
nix/nixosModules/named/carbon/connectivity.nix
Normal file
69
nix/nixosModules/named/carbon/connectivity.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = lib.mkForce false;
|
||||
|
||||
firewall.allowedTCPPorts = [ 8080 ];
|
||||
|
||||
wireless = {
|
||||
enable = true;
|
||||
userControlled.enable = true;
|
||||
secretsFile = config.age.secrets.wpa_password.path;
|
||||
networks =
|
||||
let
|
||||
ordered =
|
||||
nss:
|
||||
lib.pipe nss [
|
||||
lib.lists.reverseList
|
||||
(lib.lists.imap0 (i: lib.mapAttrs (_: n: n // { priority = i; })))
|
||||
lib.mergeAttrsList
|
||||
];
|
||||
in
|
||||
ordered [
|
||||
# first in list is tried first
|
||||
{
|
||||
"HiddenParadize@Earth2077".pskRaw = "ext:HOME";
|
||||
"Pei’s Wifi".pskRaw = "ext:PEI";
|
||||
}
|
||||
{
|
||||
"_SNCF_WIFI_INOUI" = { };
|
||||
"EurostarTrainsWiFi" = { };
|
||||
}
|
||||
{
|
||||
eduroam = {
|
||||
authProtocols = [ "WPA-EAP" ];
|
||||
auth = ''
|
||||
pairwise=CCMP
|
||||
group=CCMP TKIP
|
||||
eap=PEAP
|
||||
ca_cert="${./certs/universite_de_rennes.pem}"
|
||||
identity="ychiang@etudiant.univ-rennes.fr"
|
||||
altsubject_match="DNS:radius.univ-rennes1.fr;DNS:radius1.univ-rennes1.fr;DNS:radius2.univ-rennes1.fr;DNS:vmradius-psf1.univ-rennes1.fr;DNS:vmradius-psf2.univ-rennes1.fr"
|
||||
phase2="auth=MSCHAPV2"
|
||||
password=ext:EDUROAM
|
||||
anonymous_identity="anonymous@univ-rennes.fr"
|
||||
'';
|
||||
};
|
||||
}
|
||||
{ "iPhone de Léana 江".pskRaw = "ext:PHONE"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
# FIXME: this breaks the handsfree microphone mode for XM4
|
||||
# environment.etc = {
|
||||
# "wireplumber/bluetooth.lua.d/51-bluez-config.lua".text = ''
|
||||
# bluez_monitor.properties = {
|
||||
# ["bluez5.enable-sbc-xq"] = true,
|
||||
# ["bluez5.enable-msbc"] = true,
|
||||
# ["bluez5.enable-hw-volume"] = true,
|
||||
# ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]"
|
||||
# }
|
||||
# '';
|
||||
# };
|
||||
|
||||
}
|
||||
|
|
@ -3,19 +3,18 @@
|
|||
./hardware-configuration.nix # generated
|
||||
|
||||
./battery.nix
|
||||
|
||||
./audio.nix
|
||||
./networking.nix
|
||||
./bluetooth.nix
|
||||
./connectivity.nix
|
||||
./input.nix
|
||||
|
||||
./display.nix
|
||||
./scanner.nix
|
||||
./gui.nix
|
||||
|
||||
./restic.nix
|
||||
./fs.nix
|
||||
|
||||
./packages.nix
|
||||
|
||||
./gui.nix
|
||||
|
||||
./db.nix # M1 BDD course
|
||||
];
|
||||
|
||||
|
|
@ -66,7 +65,5 @@
|
|||
restic_backblaze_env.file = ../../../secrets/restic_backblaze_env.age;
|
||||
};
|
||||
|
||||
hardware.keyboard.zsa.enable = true;
|
||||
|
||||
services.fwupd.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,25 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
services.xserver.windowManager.xmonad = {
|
||||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
autoRepeatDelay = 300;
|
||||
autoRepeatInterval = 40;
|
||||
};
|
||||
|
||||
windowManager.xmonad = {
|
||||
enable = true;
|
||||
enableContribAndExtras = true;
|
||||
};
|
||||
|
||||
displayManager.lightdm = {
|
||||
enable = true;
|
||||
background = "#000000";
|
||||
greeters.gtk.cursorTheme = {
|
||||
name = "volantes_cursors";
|
||||
package = pkgs.volantes-cursors;
|
||||
size = 64;
|
||||
};
|
||||
services.xserver.displayManager.lightdm = {
|
||||
enable = true;
|
||||
background = "#000000";
|
||||
greeters.gtk.cursorTheme = {
|
||||
name = "volantes_cursors";
|
||||
package = pkgs.volantes-cursors;
|
||||
size = 64;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -36,14 +37,4 @@
|
|||
];
|
||||
};
|
||||
|
||||
services.libinput = {
|
||||
mouse = {
|
||||
naturalScrolling = true;
|
||||
accelSpeed = "-0.5";
|
||||
};
|
||||
touchpad = {
|
||||
naturalScrolling = true;
|
||||
tapping = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
22
nix/nixosModules/named/carbon/input.nix
Normal file
22
nix/nixosModules/named/carbon/input.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
|
||||
hardware.keyboard.zsa.enable = true;
|
||||
|
||||
services.libinput = {
|
||||
mouse = {
|
||||
naturalScrolling = true;
|
||||
accelSpeed = "-0.5";
|
||||
};
|
||||
touchpad = {
|
||||
naturalScrolling = true;
|
||||
tapping = false;
|
||||
};
|
||||
};
|
||||
|
||||
users.users.leana.extraGroups = [ "scanner" ];
|
||||
hardware.sane = {
|
||||
enable = true;
|
||||
brscan5.enable = true;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
{
|
||||
networking.networkmanager.enable = lib.mkForce false;
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 8080 ];
|
||||
|
||||
services.hoogle.port = 1992;
|
||||
|
||||
networking.wireless = {
|
||||
enable = true;
|
||||
userControlled.enable = true;
|
||||
environmentFile = config.age.secrets.wpa_password.path;
|
||||
networks =
|
||||
let
|
||||
ordered =
|
||||
nss:
|
||||
lib.pipe nss [
|
||||
lib.lists.reverseList
|
||||
(lib.lists.imap0 (i: lib.mapAttrs (_: n: n // { priority = i; })))
|
||||
lib.mergeAttrsList
|
||||
];
|
||||
in
|
||||
ordered [
|
||||
# first in list is tried first
|
||||
{
|
||||
"HiddenParadize@Earth2077".psk = "@HOME@";
|
||||
"Pei’s Wifi".psk = "@PEI_PASSWORD@";
|
||||
}
|
||||
{
|
||||
"_SNCF_WIFI_INOUI" = { };
|
||||
"EurostarTrainsWiFi" = { };
|
||||
}
|
||||
{
|
||||
eduroam = {
|
||||
authProtocols = [ "WPA-EAP" ];
|
||||
auth = ''
|
||||
pairwise=CCMP
|
||||
group=CCMP TKIP
|
||||
eap=PEAP
|
||||
ca_cert="${./certs/universite_de_rennes.pem}"
|
||||
identity="@EDUROAM_ID@"
|
||||
altsubject_match="DNS:radius.univ-rennes1.fr;DNS:radius1.univ-rennes1.fr;DNS:radius2.univ-rennes1.fr;DNS:vmradius-psf1.univ-rennes1.fr;DNS:vmradius-psf2.univ-rennes1.fr"
|
||||
phase2="auth=MSCHAPV2"
|
||||
password="@EDUROAM_PSK@"
|
||||
anonymous_identity="anonymous@univ-rennes.fr"
|
||||
'';
|
||||
};
|
||||
}
|
||||
{ "iPhone de Léana 江".psk = "@PHONE@"; }
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,12 +1,14 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.curl
|
||||
pkgs.stow
|
||||
pkgs.gcc
|
||||
pkgs.agenix
|
||||
pkgs.deploy-rs
|
||||
];
|
||||
|
||||
programs.vim.defaultEditor = true;
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
};
|
||||
programs.git.enable = true;
|
||||
|
||||
programs.dconf.enable = true;
|
||||
|
|
@ -15,18 +17,6 @@
|
|||
|
||||
# programs.steam.enable = true;
|
||||
|
||||
services.hoogle = {
|
||||
enable = true;
|
||||
packages =
|
||||
self:
|
||||
map pkgs.haskell.lib.doHaddock [
|
||||
self.xmonad
|
||||
self.xmonad-contrib
|
||||
self.xmonad-extras
|
||||
self.hip # image processing
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
docker.enable = true;
|
||||
virtualbox.host.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
users.users.leana.extraGroups = [ "scanner" ];
|
||||
|
||||
hardware.sane = {
|
||||
enable = true;
|
||||
brscan5.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
|
||||
nix = {
|
||||
package = lib.mkDefault pkgs.nixVersions.nix_2_22;
|
||||
package = lib.mkDefault pkgs.nix;
|
||||
|
||||
settings = {
|
||||
extra-substituters = [
|
||||
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
sandbox = true;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,10 @@ let
|
|||
inherit (inputs.agenix.packages.${final.system}) agenix;
|
||||
inherit (inputs.disko.packages.${final.system}) disko;
|
||||
wallpapers = inputs.wallpapers.packages.${final.system};
|
||||
|
||||
inherit (import inputs.nixpkgs-stable { inherit (final) system; })
|
||||
isabelle
|
||||
;
|
||||
})
|
||||
|
||||
inputs.nur.overlay
|
||||
|
|
|
|||
|
|
@ -89,6 +89,17 @@
|
|||
in
|
||||
why3-pinned.callPackage ./why3.nix { inherit (alt-ergo-pinned) alt-ergo; };
|
||||
|
||||
isabelle-2023 =
|
||||
let
|
||||
isabelle-pin = import (final.fetchFromGitHub {
|
||||
owner = "nixos";
|
||||
repo = "nixpkgs";
|
||||
rev = "805a384895c696f802a9bf5bf4720f37385df547";
|
||||
hash = "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=";
|
||||
}) { inherit (final) system; };
|
||||
in
|
||||
isabelle-pin.isabelle;
|
||||
|
||||
maeel = final.callPackage ./maeel.nix { };
|
||||
tokei = final.callPackage ./tokei { }; # alpha tokei with typst, skel, hledger
|
||||
typst-mutilate = final.callPackage ./typst-mutilate.nix { };
|
||||
|
|
@ -181,7 +192,6 @@
|
|||
# Unmerged packages from nixfinal
|
||||
# TODO: use upstream when merged
|
||||
dl-librescore = final.callPackage ./dl-librescore.nix { };
|
||||
fish-lsp = final.callPackage ./fish-lsp { };
|
||||
});
|
||||
|
||||
perSystem =
|
||||
|
|
|
|||
|
|
@ -1,51 +0,0 @@
|
|||
{
|
||||
mkYarnPackage,
|
||||
fetchFromGitHub,
|
||||
fetchYarnDeps,
|
||||
fish,
|
||||
fixup-yarn-lock,
|
||||
nodejs,
|
||||
yarn,
|
||||
makeWrapper,
|
||||
}:
|
||||
|
||||
mkYarnPackage rec {
|
||||
pname = "fish-lsp";
|
||||
version = "1.0.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ndonfris";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Np7ELQxHqSnkzVkASYSyO9cTiO1yrakDuK88kkACNAI=";
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
hash = "sha256-hmaLWO1Sj+2VujrGD2A+COfVE2D+tCnxyojjq1512K4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
fish
|
||||
fixup-yarn-lock
|
||||
nodejs
|
||||
yarn
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
wasm_file=$(find node_modules -type f -a -name tree-sitter-fish.wasm)
|
||||
cp -f $wasm_file ./deps/fish-lsp
|
||||
yarn run sh:build-time
|
||||
yarn --offline compile
|
||||
yarn run sh:relink
|
||||
# yarn run sh:build-completions
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/fish-lsp" \
|
||||
--set-default fish_lsp_logfile "/tmp/fish_lsp_logs.txt"
|
||||
'';
|
||||
}
|
||||
|
|
@ -9,8 +9,7 @@
|
|||
check.enable = true;
|
||||
settings.hooks = {
|
||||
# nix
|
||||
nixfmt.enable = true;
|
||||
nixfmt.package = pkgs.nixfmt-rfc-style;
|
||||
nixfmt-rfc-style.enable = true;
|
||||
statix.enable = true;
|
||||
deadnix.enable = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,15 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 MpsldQ YxgtkqRX3R1XZwNxGP0OvEFY92ywVx7f9Wf5bMlDNAY
|
||||
2gssMaJ+1szhbm5qNvIYoYZxTrrp7esgLeXIrxpaCcY
|
||||
-> ssh-ed25519 psbyeg NFsec/KYd/bLXGYR/9/ysJLetl4irUE6L00hDXVVegE
|
||||
2L18dvihR7ces+3dTxPtlDjbsvztn0Et4S/3Ztz4uCY
|
||||
-> ssh-ed25519 mb5p2g NJ/vH5F9nLkCUh5bKRgjfOis7F68J8WffM74YGrcmD8
|
||||
pDiliBr1CW47+Ig4ahaev6cr/m4VIHzzIVanewfQVR0
|
||||
-> ssh-ed25519 xgADbA tkEYJseYWwukdPVRxr9IIY6P23b0mTfABxzIQXo5xGo
|
||||
FX6HybXfARvzjbIFyXuCjtgVYnJXd9LEliNCuqYJQhQ
|
||||
-> uYQ=m;$P-grease _75 i
|
||||
/XdxuliOTRmVfGc
|
||||
--- uLl8bpfQFXBeKqr89n1QPFb8zNd0E4gMC9bwVIRwCYE
|
||||
‘µñˆBÿô“žDeâ (lõ4ÒaRGJ Nù¯{<15>[(8ø*Tj<54>Ó>juFQ—<51> #×î^~~ߪیZ0Ò#T¬¢mnì%ÇàÓÈsÀz†~gJ6p³<æ;‚ª‚#<1E>wó·Ã…§˜XX!õ*¶Eà
ö'm4³ß¶¢ìÜRÂÁ#Þ%iCi«Ž”#ÞJk½è¨ð}°DýÝÏ 5Aho“¹ÄUZBè±}$4¯>Ù+ h{0%ŽÏ M)¶e
|
||||
-> ssh-ed25519 MpsldQ 7B6B7t/E/QytBgSpvXm72Y8g8jWvB81gMDhIsmtellM
|
||||
CJGOD8lziDepa1e8JbCCH+5nwQWysFvrhYI/wjBkWt8
|
||||
-> ssh-ed25519 psbyeg W6L7CqP1Tvx5hOe9cuVZUDS20BjhmzmSvzR+YjnDMjs
|
||||
YDQ4f0zpGEDJFo+rkwYEMIoxNeUjvxpoJOl9RZIoxog
|
||||
-> ssh-ed25519 mb5p2g BRcPl2X5vT5lKZzA3Audy2mybUHelFAvvCLCROPGDUE
|
||||
HW7CsWuHzFG8bVLmKfY0aWn4mjYXJ17vBO1+QgmryEk
|
||||
-> ssh-ed25519 xgADbA cEKkEQ1jHiTSqDzMYUUO2yTF9E5WAemGOlZuLnZUYks
|
||||
iJFJvHqge48Fd23EitzW35q/xvgefw0d1PV0gAI2PPI
|
||||
-> R-grease Tiw)f GY+)-?
|
||||
9fIykQS1IAYqFmvqbrrmxja/6DO8iPg
|
||||
--- ugg3pwZHv6SMoqdSSqga5Qdj6B93Q2gO045jWnxMSig
|
||||
¹=\7Òɘ3¨A“¦îTwÄá
Eª1`«ºGI
Ó&ÕÈ
|
||||
¹¦†r·<EFBFBD>€â—µ5[ŽÖì2Ÿõ#Í”˜võð”EþGC÷Iˆ`Øì²$-ƒä?u´8µãÜÇ~e<>Ž|Öí3½Ð¾$u©rà½ø”Ÿo®°
%ž¾
|
||||
—> 7 o-¢˜Xˆ
|
||||
Loading…
Add table
Add a link
Reference in a new issue