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:
Primrose 2024-11-30 18:42:54 +00:00 committed by Léana
parent 57ed96f0ea
commit f6a89cba08
60 changed files with 696 additions and 752 deletions

View file

@ -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
];
}
];
};

View 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";
};
}

View file

@ -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
'')
];
};
}

View file

@ -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;
};
};
}

View 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;
};
}

View file

@ -1,7 +1,6 @@
{
programs.feh = {
enable = true;
keybindings = {
prev_img = [
"Left"

View 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
];
};
};
}

View file

@ -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

View file

@ -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;

View file

@ -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"
];
}

View file

@ -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;
}
];

View file

@ -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;
};
}

View file

@ -0,0 +1,10 @@
{
nixosConfig ? null,
...
}:
{
home.language = {
base = nixosConfig.i18n.defaultLocale or "en_US.UTF-8";
};
}

View file

@ -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;
};
}

View file

@ -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);
}

View file

@ -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";
};

View file

@ -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;
};
}

View file

@ -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";

View 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;
};
};
}

View 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,
),
)

View 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% "
}
'';
}

View file

@ -1,7 +0,0 @@
{
nix.gc = {
automatic = true;
frequency = "weekly";
options = "--delete-older-than 15d";
};
}

View file

@ -1,13 +0,0 @@
{ pkgs, ... }:
{
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = [
pkgs.fcitx5-chinese-addons
pkgs.fcitx5-table-extra
];
};
xdg.configFile."fcitx5".source = ./fcitx;
}

View file

@ -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

View file

@ -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
];
}

View file

@ -2,10 +2,8 @@
{
programs = {
starship.enable = true;
gpg.enable = true;
neovim.enable = true;
tmux.enable = true;
};
home.packages = [ pkgs.stow ];

View file

@ -27,5 +27,5 @@ in
pkgs.colima
];
programs.neovim.extraPackages = [ myPkgs.fish-lsp ];
programs.neovim.extraPackages = [ pkgs.fish-lsp ];
}

View file

@ -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
];
};
};
}

View file

@ -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";
}

View file

@ -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 = [

View 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
];
};
};
}

View 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;
}

View file

@ -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
];
}

View file

@ -0,0 +1,5 @@
{ lib, ... }:
{
zramSwap.enable = lib.mkDefault true;
}

View file

@ -1,3 +1,5 @@
# Turning off this module is not intuitive, so it's opt-in
{
fileSystems."/tmp" = {

View file

@ -1 +0,0 @@
{ zramSwap.enable = true; }

View file

@ -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" ];
}

View file

@ -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;
};
}

View file

@ -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 ]"
# }
# '';
# };
}

View 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";
"Peis 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 ]"
# }
# '';
# };
}

View file

@ -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;
}

View file

@ -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;
};
};
}

View 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;
};
}

View file

@ -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@";
"Peis 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@"; }
];
};
}

View file

@ -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;

View file

@ -1,8 +0,0 @@
{
users.users.leana.extraGroups = [ "scanner" ];
hardware.sane = {
enable = true;
brscan5.enable = true;
};
}

View file

@ -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;
};
};
}

View file

@ -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

View file

@ -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 =

View file

@ -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"
'';
}

View file

@ -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;

View file

@ -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“¦îT wÄá Eª1`«ºGI Ó&ÕÈ
¹¦†r·<EFBFBD>€â—µ5[ŽÖì2Ÿõ#­Í”˜võð”EþGC÷Iˆ`Øì²$-ƒä?u´8µãÜÇ~e<>Ž|Öí3½о$u©rà½ø”Ÿo®° %ž¾
—> 7 o-¢˜Xˆ