322 lines
10 KiB
Nix
322 lines
10 KiB
Nix
{ config, pkgs, pkgs-unstable, ... }:
|
|
|
|
{
|
|
sops = {
|
|
age.sshKeyPaths = [ "/home/joey/.ssh/main_id_ed25519" ];
|
|
defaultSopsFile = ./secrets.yaml;
|
|
};
|
|
stylix = {
|
|
enable = true;
|
|
autoEnable = false;
|
|
polarity = "dark";
|
|
image = ./plasma6.jpg;
|
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";
|
|
fonts = {
|
|
monospace = {
|
|
name = "DejaVu Sans Mono";
|
|
package = pkgs.dejavu_fonts;
|
|
};
|
|
serif = {
|
|
name = "DejaVu Serif";
|
|
package = pkgs.dejavu_fonts;
|
|
};
|
|
sansSerif = {
|
|
name = "DejaVu Sans";
|
|
package = pkgs.dejavu_fonts;
|
|
};
|
|
emoji = {
|
|
name = "Noto Color Emoji";
|
|
package = pkgs.noto-fonts-color-emoji;
|
|
};
|
|
};
|
|
targets = {
|
|
bat.enable = true;
|
|
btop.enable = true;
|
|
firefox.enable = true;
|
|
fzf.enable = true;
|
|
gtk.enable = true;
|
|
kde.enable = false; # Currently, this breaks most of KDE.
|
|
kitty.enable = true;
|
|
tmux.enable = true;
|
|
vesktop.enable = true;
|
|
vim.enable = true;
|
|
vscode.enable = true;
|
|
};
|
|
};
|
|
services.flatpak = {
|
|
enable = true;
|
|
packages = [
|
|
"com.discordapp.Discord/x86_64/stable"
|
|
"com.github.IsmaelMartinez.teams_for_linux/x86_64/stable"
|
|
"com.obsproject.Studio/x86_64/stable"
|
|
"com.obsproject.Studio/x86_64/stable"
|
|
"com.obsproject.Studio.Plugin.OBSVkCapture/x86_64/stable"
|
|
"com.obsproject.Studio.Plugin.OBSVkCapture/x86_64/stable"
|
|
"com.spotify.Client/x86_64/stable"
|
|
"com.spotify.Client/x86_64/stable"
|
|
"com.usebottles.bottles/x86_64/stable"
|
|
"com.usebottles.bottles/x86_64/stable"
|
|
"dev.alextren.Spot/x86_64/stable"
|
|
"dev.vencord.Vesktop/x86_64/stable"
|
|
"dev.vencord.Vesktop/x86_64/stable"
|
|
"io.github.f3d_app.f3d/x86_64/stable"
|
|
"io.github.zen_browser.zen/x86_64/stable"
|
|
"io.github.zen_browser.zen/x86_64/stable"
|
|
"io.missioncenter.MissionCenter/x86_64/stable"
|
|
"io.missioncenter.MissionCenter/x86_64/stable"
|
|
"md.obsidian.Obsidian/x86_64/stable"
|
|
"md.obsidian.Obsidian/x86_64/stable"
|
|
"no.mifi.losslesscut/x86_64/stable"
|
|
"no.mifi.losslesscut/x86_64/stable"
|
|
"org.chromium.Chromium/x86_64/stable"
|
|
"org.chromium.Chromium/x86_64/stable"
|
|
"org.chromium.Chromium.Codecs/x86_64/stable"
|
|
"org.chromium.Chromium.Codecs/x86_64/stable"
|
|
"org.fedoraproject.KDE6Platform/x86_64/f40"
|
|
"org.fedoraproject.Platform/x86_64/f40"
|
|
"org.freedesktop.Platform/x86_64/22.08"
|
|
"org.freedesktop.Platform/x86_64/23.08"
|
|
"org.freedesktop.Platform/x86_64/24.08"
|
|
"org.freedesktop.Platform/x86_64/24.08"
|
|
"org.freedesktop.Platform.GL.default/x86_64/23.08"
|
|
"org.freedesktop.Platform.GL.default/x86_64/23.08"
|
|
"org.freedesktop.Platform.GL.default/x86_64/23.08-extra"
|
|
"org.freedesktop.Platform.GL.default/x86_64/23.08-extra"
|
|
"org.freedesktop.Platform.GL.default/x86_64/24.08"
|
|
"org.freedesktop.Platform.GL.default/x86_64/24.08"
|
|
"org.freedesktop.Platform.GL.default/x86_64/24.08extra"
|
|
"org.freedesktop.Platform.GL.default/x86_64/24.08extra"
|
|
"org.freedesktop.Platform.GL32.default/x86_64/23.08"
|
|
"org.freedesktop.Platform.GL32.default/x86_64/23.08"
|
|
"org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/23.08"
|
|
"org.freedesktop.Platform.VulkanLayer.OBSVkCapture/x86_64/23.08"
|
|
"org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/22.08"
|
|
"org.freedesktop.Platform.VulkanLayer.gamescope/x86_64/23.08"
|
|
"org.freedesktop.Platform.VulkanLayer.vkBasalt/x86_64/23.08"
|
|
"org.freedesktop.Platform.ffmpeg-full/x86_64/23.08"
|
|
"org.freedesktop.Platform.ffmpeg-full/x86_64/23.08"
|
|
"org.freedesktop.Platform.ffmpeg-full/x86_64/24.08"
|
|
"org.freedesktop.Platform.ffmpeg_full.i386/x86_64/23.08"
|
|
"org.freedesktop.Platform.ffmpeg_full.i386/x86_64/23.08"
|
|
"org.freedesktop.Platform.openh264/x86_64/2.2.0"
|
|
"org.freedesktop.Platform.openh264/x86_64/2.2.0"
|
|
"org.freedesktop.Platform.openh264/x86_64/2.4.1"
|
|
"org.freedesktop.Platform.openh264/x86_64/2.4.1"
|
|
"org.freedesktop.Sdk/x86_64/23.08"
|
|
"org.gimp.GIMP/x86_64/stable"
|
|
"org.gnome.Boxes/x86_64/stable"
|
|
"org.gnome.Boxes.Extension.OsinfoDb/x86_64/stable"
|
|
"org.gnome.Platform/x86_64/45"
|
|
"org.gnome.Platform/x86_64/46"
|
|
"org.gnome.Platform/x86_64/47"
|
|
"org.gnome.Platform/x86_64/47"
|
|
"org.gnome.Platform.Compat.i386/x86_64/46"
|
|
"org.gnome.Platform.Compat.i386/x86_64/46"
|
|
"org.gtk.Gtk3theme.Breeze/x86_64/3.22"
|
|
"org.gtk.Gtk3theme.adw-gtk3/x86_64/3.22"
|
|
"org.gtk.Gtk3theme.adw-gtk3/x86_64/3.22"
|
|
"org.kde.KStyle.Adwaita/x86_64/5.15-23.08"
|
|
"org.kde.KStyle.Adwaita/x86_64/6.6"
|
|
"org.kde.KStyle.Adwaita/x86_64/6.7"
|
|
"org.kde.Platform/x86_64/5.15-23.08"
|
|
"org.kde.Platform/x86_64/6.6"
|
|
"org.kde.Platform/x86_64/6.7"
|
|
"org.kde.Platform/x86_64/6.7"
|
|
"org.kde.PlatformTheme.QGnomePlatform/x86_64/5.15-23.08"
|
|
"org.kde.PlatformTheme.QGnomePlatform/x86_64/6.6"
|
|
"org.kde.WaylandDecoration.QAdwaitaDecorations/x86_64/5.15-23.08"
|
|
"org.kde.WaylandDecoration.QAdwaitaDecorations/x86_64/6.6"
|
|
"org.kde.WaylandDecoration.QGnomePlatform-decoration/x86_64/5.15-23.08"
|
|
"org.kde.kontact/x86_64/stable"
|
|
"org.kde.neochat/x86_64/stable"
|
|
"org.mozilla.Thunderbird/x86_64/stable"
|
|
"org.prismlauncher.PrismLauncher/x86_64/stable"
|
|
"org.prismlauncher.PrismLauncher/x86_64/stable"
|
|
"org.videolan.VLC/x86_64/stable"
|
|
"org.videolan.VLC/x86_64/stable"
|
|
"org.winehq.Wine.DLLs.dxvk/x86_64/stable-23.08"
|
|
"org.winehq.Wine.DLLs.dxvk/x86_64/stable-23.08"
|
|
"org.winehq.Wine.gecko/x86_64/stable-23.08"
|
|
"org.winehq.Wine.gecko/x86_64/stable-23.08"
|
|
"org.winehq.Wine.mono/x86_64/stable-23.08"
|
|
"org.winehq.Wine.mono/x86_64/stable-23.08"
|
|
"re.sonny.Tangram/x86_64/stable"
|
|
"us.zoom.Zoom/x86_64/stable"
|
|
"xyz.z3ntu.razergenie/x86_64/stable"
|
|
];
|
|
};
|
|
programs.vscode = {
|
|
enable = true;
|
|
package = pkgs.vscodium;
|
|
extensions = with pkgs.vscode-extensions; [
|
|
jnoortheen.nix-ide
|
|
continue.continue
|
|
];
|
|
userSettings = {
|
|
"nix.serverPath" = "nixd";
|
|
"nix.enableLanguageServer" = true;
|
|
"explorer.confirmDragAndDrop" = false;
|
|
"explorer.confirmDelete" = false;
|
|
"git.autofetch" = true;
|
|
"git.confirmSync" = false;
|
|
"git.enableSmartCommit" = true;
|
|
"security.workspace.trust.untrustedFiles" = "open";
|
|
"terminal.integrated.defaultProfile.linux" = "zsh";
|
|
"terminal.integrated.profiles.linux.zsh.path" = "/usr/bin/zsh";
|
|
};
|
|
};
|
|
programs.obs-studio = {
|
|
enable = true;
|
|
plugins = with pkgs.obs-studio-plugins; [
|
|
obs-vaapi
|
|
obs-vkcapture
|
|
input-overlay
|
|
];
|
|
};
|
|
programs.git = {
|
|
enable = true;
|
|
userName = "Joey Hafner";
|
|
userEmail = "joey@jafner.net";
|
|
extraConfig = {
|
|
core.sshCommand = "ssh -i /home/joey/.ssh/main_id_ed25519";
|
|
};
|
|
delta.enable = true;
|
|
delta.options = {
|
|
side-by-side = true;
|
|
};
|
|
};
|
|
programs.kitty = {
|
|
enable = true;
|
|
package =
|
|
pkgs.writeShellScriptBin "kitty" ''
|
|
#!/bin/sh
|
|
${pkgs-unstable.nixgl.auto.nixGLDefault}/bin/nixGL ${pkgs-unstable.kitty}/bin/kitty "$@"
|
|
'';
|
|
};
|
|
programs.tmux = {
|
|
enable = true;
|
|
newSession = true;
|
|
shell = "$HOME/.nix-profile/bin/zsh";
|
|
};
|
|
programs.zsh = {
|
|
enable = true;
|
|
dotDir = ".config/zsh";
|
|
enableCompletion = true;
|
|
autosuggestion.enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
shellAliases = {
|
|
bat = "bat --paging=never --color=always";
|
|
fd = "fd -Lu";
|
|
ls = "eza";
|
|
lt = "eza --tree";
|
|
fetch = "fastfetch";
|
|
neofetch = "fetch";
|
|
find = ''fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"'';
|
|
hmu = "home-manager switch ~/.config/home-manager";
|
|
kitty = "nixGL kitty";
|
|
fzf-ssh = "ssh $(cat ~/.ssh/profiles | fzf --height 20%)";
|
|
fsh = "fzf-ssh";
|
|
};
|
|
history = {
|
|
share = true;
|
|
save = 10000;
|
|
size = 10000;
|
|
expireDuplicatesFirst = false;
|
|
extended = false;
|
|
ignoreAllDups = false;
|
|
ignoreDups = true;
|
|
};
|
|
initExtra = ''
|
|
bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow
|
|
bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow
|
|
bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow
|
|
bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow
|
|
bindkey '^[[H' beginning-of-line # Home
|
|
bindkey '^[[F' end-of-line # End
|
|
bindkey '^[w' kill-region # Delete
|
|
bindkey '^I^I' autosuggest-accept # Tab, Tab
|
|
bindkey '^[' autosuggest-clear # Esc
|
|
bindkey -s '^E' 'fzf-ssh\n'
|
|
_fzf_compgen_path() {
|
|
fd --hidden --exclude .git . "$1"
|
|
}
|
|
_fzf_compgen_dir() {
|
|
fd --hidden --exclude .git . "$1"
|
|
}
|
|
eval "$(~/.nix-profile/bin/fzf --zsh)"
|
|
'';
|
|
};
|
|
programs.eza = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
git = true;
|
|
extraOptions = [
|
|
"--color=always"
|
|
"--long"
|
|
"--icons=always"
|
|
"--no-time"
|
|
"--no-user"
|
|
];
|
|
};
|
|
programs.vim = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
settings = {
|
|
copyindent = true;
|
|
relativenumber = true;
|
|
expandtab = true;
|
|
tabstop = 2;
|
|
};
|
|
extraConfig = ''
|
|
set nocompatible
|
|
filetype on
|
|
filetype plugin on
|
|
filetype indent on
|
|
syntax on
|
|
set cursorline
|
|
set wildmenu
|
|
set wildmode=list:longest
|
|
'';
|
|
};
|
|
programs.fzf = {
|
|
enable = true;
|
|
package = pkgs-unstable.fzf;
|
|
};
|
|
home.enableNixpkgsReleaseCheck = false;
|
|
home.preferXdgDirectories = true;
|
|
home.username = "joey";
|
|
home.homeDirectory = "/home/joey";
|
|
home.stateVersion = "24.05";
|
|
home.packages = with pkgs; [
|
|
deploy-rs
|
|
flatpak
|
|
fastfetch
|
|
nixd
|
|
git kdePackages.kdeconnect-kde
|
|
vesktop
|
|
vlc
|
|
tree btop
|
|
bat fd eza fzf-git-sh
|
|
wl-clipboard
|
|
base16-schemes
|
|
pkgs-unstable.fzf
|
|
];
|
|
home.file = {
|
|
"continue-config.json" = {
|
|
source = ./continue-config.json;
|
|
target = ".continue/config.json";
|
|
};
|
|
"ssh-profiles" = {
|
|
source = ./profiles;
|
|
target = ".ssh/profiles";
|
|
};
|
|
|
|
};
|
|
home.sessionVariables = {
|
|
};
|
|
programs.home-manager.enable = true;
|
|
xdg.systemDirs.data = [
|
|
"/usr/share"
|
|
];
|
|
}
|