move to snowfall
This commit is contained in:
parent
9d7ad7c973
commit
769d4b0df5
188 changed files with 2203 additions and 3041 deletions
|
|
@ -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
|
||||
];
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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}")
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
return {
|
||||
"IogaMaster/neocord",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
-- log_level = "debug",
|
||||
},
|
||||
}
|
||||
|
|
@ -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
|
||||
'';
|
||||
}
|
||||
|
|
@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
73
modules/home/apps/helpers/ags/default.nix
Normal file
73
modules/home/apps/helpers/ags/default.nix
Normal 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"];
|
||||
};
|
||||
};
|
||||
}
|
||||
113
modules/home/apps/helpers/anyrun/default.nix
Normal file
113
modules/home/apps/helpers/anyrun/default.nix
Normal 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]
|
||||
)
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
30
modules/home/apps/music/spotify/default.nix
Normal file
30
modules/home/apps/music/spotify/default.nix
Normal 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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
37
modules/home/apps/term/kitty/default.nix
Normal file
37
modules/home/apps/term/kitty/default.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
92
modules/home/apps/tools/git/default.nix
Normal file
92
modules/home/apps/tools/git/default.nix
Normal 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
Loading…
Add table
Add a link
Reference in a new issue