move to snowfall

This commit is contained in:
zackartz 2024-05-23 20:26:30 +00:00
parent 9d7ad7c973
commit 769d4b0df5
No known key found for this signature in database
GPG key ID: 5B53E53A9A514DBA
188 changed files with 2203 additions and 3041 deletions

View file

@ -1,33 +0,0 @@
{
pkgs,
inputs,
...
}: {
home.packages = [
pkgs.gimp
pkgs.slack
pkgs.zoom-us
pkgs.elisa
pkgs.prismlauncher
pkgs.obs-studio
inputs.kb-gui.packages.${pkgs.system}.kb
pkgs.jetbrains.idea-community
pkgs.jetbrains.datagrip
pkgs.ungoogled-chromium
pkgs.thunderbird
pkgs.mongodb-compass
pkgs.postman
pkgs.mosh
pkgs.parsec-bin
pkgs.filezilla
pkgs.ghidra
pkgs.zed-editor
pkgs.openvpn
];
}

View file

@ -1,178 +0,0 @@
{
pkgs,
inputs,
lib,
...
}: let
spicePkgs = inputs.spicetify-nix.packages.${pkgs.system}.default;
in {
imports = [
./swayidle.nix
./vim/default.nix
./firefox.nix
../rice/ags
../rice/hyprland
# ../rice/sway
../rice/gtk.nix
../rice/kitty.nix
# ../rice/waybar
# ../rice/dunst.nix
../rice/anyrun
../rice/rio.nix
../rice/wofi.nix
../shell
inputs.spicetify-nix.homeManagerModule
inputs.catppuccin.homeManagerModules.catppuccin
];
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
overlays = [
inputs.neovim-nightly-overlay.overlay
];
};
gtk.catppuccin.cursor.enable = false;
nix.gc = {
automatic = true;
frequency = "weekly";
options = "--delete-older-than 30d";
};
catppuccin.flavor = "mocha";
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle # shuffle+ (special characters are sanitized out of ext names)
hidePodcasts
];
};
xdg.mimeApps.defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"image/png" = "feh.desktop";
};
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.11"; # Please read the comment before changing it.
home.packages = [
pkgs.wofi
pkgs.dconf
pkgs.wl-clipboard
pkgs.swaybg
pkgs.pavucontrol
pkgs.wlogout
pkgs.sway-audio-idle-inhibit
pkgs.grim
pkgs.slurp
pkgs.xfce.thunar
pkgs.feh
pkgs.nitch
pkgs.nix-output-monitor
pkgs.fastfetch
pkgs.nh
pkgs.dwl
pkgs.killall
(pkgs.writeShellScriptBin "rebuild" ''
#!${pkgs.bash}/bin/bash
set -e
pushd ~/nixos/
alejandra . &>/dev/null
git add .
echo "[REBUILD]: rebuilding nixos"
nh os switch
gen=$(nixos-rebuild list-generations | grep current)
git commit -am "$gen"
git push origin main
popd
'')
(pkgs.writeShellScriptBin "powermenu" ''
chosen=$(printf " Power Off\n Restart\n Suspend\n Lock\n󰍃 Log Out" | anyrun --plugins libstdin.so --show-results-immediately true)
case "$chosen" in
" Power Off") systemctl poweroff;;
" Restart") systemctl reboot;;
" Lock") swaylock;;
"󰍃 Log Out") hyprctl dispatch exit;;
*) exit 1 ;;
esac
'')
];
home.sessionVariables = {
EDITOR = "nvim";
};
xdg.enable = true;
programs.zoxide = {
enable = true;
enableZshIntegration = true;
options = ["--cmd cd"];
};
programs.cava = {
enable = true;
catppuccin.enable = true;
};
programs.btop = {
enable = true;
catppuccin.enable = true;
extraConfig = ''
update_ms = 100
vim_keys = true
'';
};
programs.lazygit = {
enable = true;
catppuccin.enable = true;
};
programs.fzf = {
enable = true;
catppuccin.enable = true;
};
systemd.user.services.xwaylandvideobridge = {
Unit = {
Description = "Tool to make it easy to stream wayland windows and screens to exisiting applications running under Xwayland";
};
Service = {
Type = "simple";
ExecStart = lib.getExe pkgs.xwaylandvideobridge;
Restart = "on-failure";
};
Install = {
WantedBy = ["default.target"];
};
};
# programs.nixvim = ./vim.nix;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -1,234 +0,0 @@
{pkgs, ...}: let
lock-false = {
Value = false;
Status = "locked";
};
lock-true = {
Value = true;
Status = "locked";
};
in {
programs.firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableTelemetry = true;
Preferences = {
"app.normandy.api_url" = {
Value = "";
Status = "locked";
};
"app.normandy.enabled" = lock-false;
"app.shield.optoutstudies.enabled" = lock-false;
"app.update.auto" = lock-false;
"beacon.enabled" = lock-false;
"breakpad.reportURL" = {
Value = "";
Status = "locked";
};
"browser.aboutConfig.showWarning" = lock-false;
"browser.cache.offline.enable" = lock-false;
"browser.crashReports.unsubmittedCheck.autoSubmit" = lock-false;
"browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false;
"browser.crashReports.unsubmittedCheck.enabled" = lock-false;
"browser.disableResetPrompt" = lock-true;
"browser.newtab.preload" = lock-false;
"browser.newtabpage.activity-stream.section.highlights.includePocket" = lock-false;
"browser.newtabpage.enhanced" = lock-false;
"browser.newtabpage.introShown" = lock-true;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = lock-false;
"browser.newtabpage.activity-stream.showSponsored" = lock-false;
"browser.newtabpage.activity-stream.system.showSponsored" = lock-false;
"browser.safebrowsing.appRepURL" = {
Value = "";
Status = "locked";
};
"browser.safebrowsing.blockedURIs.enabled" = lock-false;
"browser.safebrowsing.downloads.enabled" = lock-false;
"browser.safebrowsing.downloads.remote.enabled" = lock-false;
"browser.safebrowsing.downloads.remote.url" = {
Value = "";
Status = "locked";
};
"browser.safebrowsing.enabled" = lock-false;
"browser.safebrowsing.malware.enabled" = lock-false;
"browser.safebrowsing.phishing.enabled" = lock-false;
"browser.selfsupport.url" = {
Value = "";
Status = "locked";
};
"browser.send_pings" = lock-false;
"browser.sessionstore.privacy_level" = {
Value = 0;
Status = "locked";
};
"browser.shell.checkDefaultBrowser" = lock-false;
"browser.startup.homepage_override.mstone" = {
Value = "ignore";
Status = "locked";
};
"browser.tabs.crashReporting.sendReport" = lock-false;
"browser.urlbar.groupLabels.enabled" = lock-false;
"browser.urlbar.quicksuggest.enabled" = lock-false;
"browser.urlbar.speculativeConnect.enabled" = lock-false;
"browser.urlbar.trimURLs" = lock-false;
"browser.urlbar.suggest.quicksuggest.sponsored" = lock-false;
"datareporting.healthreport.service.enabled" = lock-false;
"datareporting.healthreport.uploadEnabled" = lock-false;
"datareporting.policy.dataSubmissionEnabled" = lock-false;
"device.sensors.ambientLight.enabled" = lock-false;
"device.sensors.enabled" = lock-false;
"device.sensors.motion.enabled" = lock-false;
"device.sensors.orientation.enabled" = lock-false;
"device.sensors.proximity.enabled" = lock-false;
"dom.battery.enabled" = lock-false;
"dom.event.clipboardevents.enabled" = lock-false;
"dom.webaudio.enabled" = lock-false;
"experiments.activeExperiment" = lock-false;
"experiments.enabled" = lock-false;
"experiments.manifest.uri" = {
Value = "";
Status = "locked";
};
"experiments.supported" = lock-false;
"extensions.ClearURLs@kevinr.whiteList" = {
Value = "";
Status = "locked";
};
"extensions.Decentraleyes@ThomasRientjes.whiteList" = {
Value = "";
Status = "locked";
};
"extensions.FirefoxMulti-AccountContainers@mozilla.whiteList" = {
Value = "";
Status = "locked";
};
"extensions.TemporaryContainers@stoically.whiteList" = {
Value = "";
Status = "locked";
};
"extensions.autoDisableScopes" = 14;
"extensions.getAddons.cache.enabled" = lock-false;
"extensions.getAddons.showPane" = lock-false;
"extensions.greasemonkey.stats.optedin" = lock-false;
"extensions.greasemonkey.stats.url" = {
Value = "";
Status = "locked";
};
"extensions.pocket.enabled" = lock-false;
"extensions.shield-recipe-client.api_url" = {
Value = "";
Status = "locked";
};
"extensions.shield-recipe-client.enabled" = lock-false;
"extensions.webservice.discoverURL" = {
Value = "";
Status = "locked";
};
"media.autoplay.default" = {
Value = 0;
Status = "locked";
};
"media.autoplay.enabled" = lock-true;
"media.eme.enabled" = lock-false;
"media.gmp-widevinecdm.enabled" = lock-false;
"media.navigator.enabled" = lock-false;
"media.peerconnection.enabled" = lock-false;
"media.video_stats.enabled" = lock-false;
"network.IDN_show_punycode" = lock-true;
"network.allow-experiments" = lock-false;
"network.captive-portal-service.enabled" = lock-false;
"network.cookie.cookieBehavior" = {
Value = 1;
Status = "locked";
};
"network.dns.disablePrefetch" = lock-true;
"network.dns.disablePrefetchFromHTTPS" = lock-true;
"network.http.referer.spoofSource" = lock-true;
"network.http.speculative-parallel-limit" = {
Value = 0;
Status = "locked";
};
"network.predictor.enable-prefetch" = lock-false;
"network.predictor.enabled" = lock-false;
"network.prefetch-next" = lock-false;
"network.trr.mode" = {
Value = 5;
Status = "locked";
};
"privacy.donottrackheader.enabled" = lock-true;
"privacy.donottrackheader.value" = {
Value = 1;
Status = "locked";
};
"privacy.firstparty.isolate" = lock-true;
"privacy.query_stripping" = lock-true;
"privacy.trackingprotection.cryptomining.enabled" = lock-true;
"privacy.trackingprotection.enabled" = lock-true;
"privacy.trackingprotection.fingerprinting.enabled" = lock-true;
"privacy.trackingprotection.pbmode.enabled" = lock-true;
"privacy.usercontext.about_newtab_segregation.enabled" = lock-true;
"security.ssl.disable_session_identifiers" = lock-true;
"services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSite" = lock-false;
"signon.autofillForms" = lock-false;
"toolkit.telemetry.archive.enabled" = lock-false;
"toolkit.telemetry.bhrPing.enabled" = lock-false;
"toolkit.telemetry.cachedClientID" = {
Value = "";
Status = "locked";
};
"toolkit.telemetry.enabled" = lock-false;
"toolkit.telemetry.firstShutdownPing.enabled" = lock-false;
"toolkit.telemetry.hybridContent.enabled" = lock-false;
"toolkit.telemetry.newProfilePing.enabled" = lock-false;
"toolkit.telemetry.prompted" = {
Value = 2;
Status = "locked";
};
"toolkit.telemetry.rejected" = lock-true;
"toolkit.telemetry.reportingpolicy.firstRun" = lock-false;
"toolkit.telemetry.server" = {
Value = "";
Status = "locked";
};
"toolkit.telemetry.shutdownPingSender.enabled" = lock-false;
"toolkit.telemetry.unified" = lock-false;
"toolkit.telemetry.unifiedIsOptIn" = lock-false;
"toolkit.telemetry.updatePing.enabled" = lock-false;
"webgl.renderer-string-override" = {
Value = " ";
Status = "locked";
};
"webgl.vendor-string-override" = {
Value = " ";
Status = "locked";
};
};
ExtensionSettings = with builtins; let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
in
listToAttrs [
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "privacy-badger17" "jid1-MnnxcxisBPnSXQ@jetpack")
(extension "1password-x-password-manager" "{d634138d-c276-4fc8-924b-40a0ea21d284}")
(extension "firefox-color" "FirefoxColor@mozilla.com")
(extension "multi-account-containers" "@testpilot-containers")
(extension "temporary-containers" "{c607c8df-14a7-4f28-894f-29e8722976af}")
(extension "styl-us" "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}")
(extension "betterttv" "firefox@betterttv.net")
(extension "decentraleyes" "jid1-BoFifL9Vbdl2zQ@jetpack")
(extension "canvasblocker" "CanvasBlocker@kkapsner.de")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
];
};
};
};
}

View file

@ -1,92 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}: {
imports = [
./vim/default.nix
# ../rice/sway
# ../rice/waybar
# ../rice/dunst.nix
../shell
# inputs.catppuccin.homeManagerModules.catppuccin
];
nixpkgs = {
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
overlays = [
inputs.neovim-nightly-overlay.overlay
];
};
# catppuccin.flavour = "mocha";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.11"; # Please read the comment before changing it.
home.packages = [
pkgs.dconf
pkgs.nix-output-monitor
inputs.nixpkgs.legacyPackages.${pkgs.system}.nh
pkgs.killall
(pkgs.writeShellScriptBin "rebuild" ''
#!${pkgs.bash}/bin/bash
set -e
pushd ~/nixos/
alejandra . &>/dev/null
git add .
echo "[REBUILD]: rebuilding nixos"
nh os switch
gen=$(nixos-rebuild list-generations | grep current)
git commit -am "$gen"
git push origin main
popd
'')
];
home.sessionVariables = {
EDITOR = "nvim";
};
xdg.enable = true;
programs.zoxide = {
enable = true;
enableZshIntegration = true;
options = ["--cmd cd"];
};
programs.btop = {
enable = true;
# catppuccin.enable = true;
};
programs.lazygit = {
enable = true;
# catppuccin.enable = true;
};
programs.fzf = {
enable = true;
# catppuccin.enable = true;
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -1,86 +0,0 @@
{
pkgs,
lib,
config,
theme,
inputs,
...
}: let
suspendScript = pkgs.writeShellScript "suspend-script" ''
${pkgs.pipewire}/bin/pw-cli i all | ${pkgs.ripgrep}/bin/rg running
# only suspend if audio isn't running
if [ $? == 1 ]; then
${pkgs.systemd}/bin/systemctl suspend
fi
'';
in {
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
settings = with theme.colors; {
clock = true;
color = base;
font = "Work Sans";
image = "${theme.wallpaper}";
show-failed-attempts = false;
indicator = true;
indicator-radius = 200;
indicator-thickness = 20;
line-color = "00000000";
ring-color = "00000000";
inside-color = "00000000";
key-hl-color = "f2cdcd";
separator-color = "00000000";
text-color = text;
text-caps-lock-color = "";
line-ver-color = love;
ring-ver-color = rose;
inside-ver-color = base;
text-ver-color = text;
ring-wrong-color = foam;
text-wrong-color = foam;
inside-wrong-color = base;
inside-clear-color = base;
text-clear-color = text;
ring-clear-color = iris;
line-clear-color = base;
line-wrong-color = base;
bs-hl-color = foam;
line-uses-ring = false;
grace = 2;
grace-no-mouse = true;
grace-no-touch = true;
datestr = "%d.%m";
fade-in = "0.1";
ignore-empty-password = true;
};
};
systemd.user.services.hypridle = {
Unit = {
Description = "Idle Daemon for Hyprland";
};
Service = {
Type = "simple";
ExecStart = lib.getExe inputs.hypridle.packages.${pkgs.system}.hypridle;
Restart = "on-failure";
};
Install = {
WantedBy = ["hyprland-session.target"];
};
};
xdg.configFile."hypr/hypridle.conf".text = ''
general {
lock_cmd = ${pkgs.swaylock-effects}/bin/swaylock -fF
before_sleep_cmd = ${pkgs.swaylock-effects}/bin/swaylock -fF # command ran before sleep
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
}
listener {
timeout = 300 # in seconds
on-timeout = ${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms off
on-resume = ${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms on
}
'';
}

View file

@ -1,7 +0,0 @@
return {
"IogaMaster/neocord",
event = "VeryLazy",
opts = {
-- log_level = "debug",
},
}

View file

@ -1,88 +0,0 @@
{
config,
pkgs,
lib,
inputs,
...
}: let
nvimDir = "/home/${config.home.username}/nixos/modules/home-manager/vim";
in {
programs.neovim = {
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [
# Formatters
alejandra # Nix
black # Python
prettierd # Multi-language
shfmt
isort
stylua
# LSP
lua-language-server
nixd
rust-analyzer
nodePackages.bash-language-server
vscode-langservers-extracted
nodePackages.vscode-json-languageserver
nodePackages.typescript-language-server
tailwindcss-language-server
# Tools
git
html-tidy
cmake
fzf
charm-freeze
gcc
gnumake
nodejs
fswatch # File watcher utility, replacing libuv.fs_event for neovim 10.0
sqlite
postgresql
mongosh
gerbera
vscode-extensions.vadimcn.vscode-lldb.adapter
];
plugins = [
pkgs.vimPlugins.lazy-nvim # All other plugins are managed by lazy-nvim
];
extraLuaPackages = with pkgs; [
lua51Packages.lua-curl
lua51Packages.nvim-nio
lua51Packages.xml2lua
lua51Packages.mimetypes
];
};
xdg.configFile = {
# Raw symlink to the plugin manager lock file, so that it stays writeable
"nvim/lazy-lock.json".source = config.lib.file.mkOutOfStoreSymlink "${nvimDir}/lazy-lock.json";
"nvim" = {
source = ./config;
recursive = true;
};
};
home.activation.neovim = lib.hm.dag.entryAfter ["linkGeneration"] ''
#! /bin/bash
NVIM_WRAPPER=~/.nix-profile/bin/nvim
STATE_DIR=~/.local/state/nix/
STATE_FILE=$STATE_DIR/lazy-lock-checksum
LOCK_FILE=~/.config/nvim/lazy-lock.json
HASH=$(nix-hash --flat $LOCK_FILE)
CURL_DIR=${pkgs.curl}
[ ! -d $STATE_DIR ] && mkdir -p $STATE_DIR
[ ! -f $STATE_FILE ] && touch $STATE_FILE
if [ "$(cat $STATE_FILE)" != "$HASH" ]; then
echo "Syncing neovim plugins"
PATH="$PATH:${pkgs.git}/bin" $DRY_RUN_CMD $NVIM_WRAPPER --headless "+Lazy! restore" +qa
$DRY_RUN_CMD echo $HASH >$STATE_FILE
else
$VERBOSE_ECHO "Neovim plugins already synced, skipping"
fi
'';
}

View file

@ -1,30 +0,0 @@
{
inputs,
pkgs,
lib,
...
}: {
imports = [./default.nix ./applications.nix];
services = {
udiskie.enable = true;
gpg-agent = {
enable = true;
pinentryPackage = lib.mkForce pkgs.pinentry-gnome3;
enableSshSupport = true;
enableZshIntegration = true;
};
};
systemd.user.services.kb-gui = {
Unit = {
Description = "KB Time/Date thing";
};
Install = {
WantedBy = ["default.target"];
};
Service = {
ExecStart = "${inputs.kb-gui.packages.${pkgs.system}.kb}/bin/kb";
};
};
}

View file

@ -0,0 +1,73 @@
{
options,
config,
lib,
inputs,
pkgs,
...
}:
with lib;
with lib.custom; let
cfg = config.apps.helpers.ags;
requiredDeps = with pkgs; [
config.wayland.windowManager.hyprland.package
bash
coreutils
gawk
sassc
imagemagick
procps
ripgrep
util-linux
gtksourceview
webkitgtk
brightnessctl
gvfs
accountsservice
swww
gnome.gnome-control-center
gnome.nautilus
gnome.totem
loupe
];
guiDeps = with pkgs; [
gnome.gnome-control-center
mission-center
overskride
wlogout
];
dependencies = requiredDeps ++ guiDeps;
in {
options.apps.helpers.ags = with types; {
enable = mkBoolOpt false "Enable AGS";
};
config = mkIf cfg.enable {
programs.ags = {
enable = true;
configDir = ./cfg;
extraPackages = dependencies;
};
systemd.user.services.ags = {
Unit = {
Description = "Aylur's Gtk Shell";
PartOf = [
"tray.target"
"graphical-session.target"
];
};
Service = {
Environment = "PATH=/run/wrappers/bin:${lib.makeBinPath dependencies}";
ExecStart = "${config.programs.ags.package}/bin/ags";
Restart = "on-failure";
};
Install.WantedBy = ["graphical-session.target"];
};
};
}

View file

@ -0,0 +1,113 @@
{
options,
config,
lib,
inputs,
pkgs,
...
}:
with lib;
with lib.custom; let
cfg = config.apps.helpers.anyrun;
in {
options.apps.helpers.anyrun = with types; {
enable = mkBoolOpt false "Enable Anyrun";
};
config = mkIf cfg.enable {
programs.anyrun = {
enable = true;
config = {
plugins = [
inputs.anyrun.packages.${pkgs.system}.applications
inputs.anyrun.packages.${pkgs.system}.shell
inputs.anyrun.packages.${pkgs.system}.websearch
inputs.anyrun.packages.${pkgs.system}.rink
inputs.anyrun.packages.${pkgs.system}.stdin
];
x = {fraction = 0.5;};
y = {absolute = 0;};
hideIcons = false;
ignoreExclusiveZones = false;
layer = "overlay";
hidePluginInfo = true;
closeOnClick = true;
showResultsImmediately = false;
maxEntries = null;
};
extraCss = ''
*{
all: unset;
color: #cdd6f4;
font-family: "JetBrainsMono Nerd Font";
font-weight: bold;
}
#window{
background-color: transparent;
}
#entry{
background-color: #1e1e2e;
border-radius: 15px;
border: 3px solid #11111b;
font-size: 16px;
margin-top: 10px;
padding: 1px 15px;
}
#match {
margin-bottom: 2px;
margin-top: 2px;
padding: 1px 15px;
}
#match-desc{
color: #bac2de;
font-size: 12px;
font-weight: normal;
}
#match:selected {
background: #313244;
border-radius: 15px;
}
#plugin{
background-color: #1e1e2e;
border-radius: 15px;
border: 3px solid #11111b;
margin-top:10px;
padding: 10px 1px;
}
#plugin > *{
all:unset;
}
'';
extraConfigFiles."applications.ron".text = ''
Config(
desktop_actions: false,
max_entries: 5,
terminal: Some("Kitty"),
)
'';
extraConfigFiles."shell.ron".text = ''
Config(
prefix: ">",
)
'';
extraConfigFiles."websearch.ron".text = ''
Config(
prefix: "",
// Options: Google, Ecosia, Bing, DuckDuckGo, Custom
//
// Custom engines can be defined as such:
// Custom(
// name: "Searx",
// url: "searx.be/?q={}",
// )
//
// NOTE: `{}` is replaced by the search query and `https://` is automatically added in front.
engines: [DuckDuckGo]
)
'';
};
};
}

View file

@ -0,0 +1,30 @@
{
options,
config,
lib,
...
}:
with lib;
with lib.custom; let
cfg = config.shells.zsh;
in {
options.apps.music.spotify = with types; {
enable = mkBoolOpt false "Enable Spotify";
};
config = mkIf cfg.enable {
home.packages = [pkgs.spotify];
programs.spicetify = {
enable = true;
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle # shuffle+ (special characters are sanitized out of ext names)
hidePodcasts
];
};
};
}

View file

@ -0,0 +1,37 @@
{
options,
config,
lib,
...
}:
with lib;
with lib.custom; let
cfg = config.apps.term.kitty;
in {
options.apps.term.kitty = with types; {
enable = mkBoolOpt false "Enable Kitty Term";
};
config = mkIf cfg.enable {
programs.kitty = {
enable = true;
font = {
name = "Iosevka Term SemiBold";
size = 14;
};
extraConfig = ''
bold_font Iosevk Term Heavy
italic_font Iosevka Term SemiBold Italic
bold_italic_font Iosevka Term Heavy Italic
'';
catppuccin.enable = true;
settings = {
window_padding_width = 12;
background_opacity = "0.8";
};
};
};
}

View file

@ -0,0 +1,92 @@
{
options,
config,
lib,
pkgs,
...
}:
with lib;
with lib.custom; let
cfg = config.apps.tools.git;
in {
options.apps.tools.git = with types; {
enable = mkBoolOpt false "Enable Git Integration";
signByDefault = mkBoolOpt true "Sign by default";
signingKey = mkStringOpt "5B53E53A9A514DBA" "The KeyID of your GPG signingKey";
};
config = mkIf cfg.enable {
home.packages = with pkgs; [zsh-forgit gitflow];
programs.git = {
enable = true;
userName = "zack";
userEmail = "zackmyers@lavabit.com";
ignores = [
".cache/"
".DS_Store"
".idea/"
"*.swp"
"*.elc"
"auto-save-list"
".direnv/"
"node_modules"
"result"
"result-*"
];
signing = {
key = cfg.signingKey;
signByDefault = cfg.signByDefault;
};
extraConfig = {
init = {defaultBranch = "main";};
delta = {
options.map-styles = "bold purple => syntax #ca9ee6, bold cyan => syntax #8caaee";
line-numbers = true;
};
branch.autosetupmerge = "true";
push.default = "current";
merge.stat = "true";
core.whitespace = "fix,-indent-with-non-tab,trailing-space,cr-at-eol";
repack.usedeltabaseoffset = "true";
pull.ff = "only";
rebase = {
autoSquash = true;
autoStash = true;
};
rerere = {
autoupdate = true;
enabled = true;
};
};
lfs.enable = true;
delta.enable = true;
aliases = {
essa = "push --force";
co = "checkout";
fuck = "commit --amend -m";
c = "commit -m";
ca = "commit -am";
forgor = "commit --amend --no-edit";
graph = "log --all --decorate --graph --oneline";
oops = "checkout --";
l = "log";
r = "rebase";
s = "status --short";
ss = "status";
d = "diff";
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)";
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)";
af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)";
st = "status";
br = "branch";
df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}";
hist = ''
log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
llog = ''
log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`";
};
};
};
}

Some files were not shown because too many files have changed in this diff Show more