b5f77f5ab1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 10s
343 lines
10 KiB
Nix
343 lines
10 KiB
Nix
{ config, pkgs, pkgs-unstable, inputs, ... }:
|
|
{
|
|
imports = [
|
|
./unstable.nix
|
|
./python.nix
|
|
./scripts.nix
|
|
];
|
|
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;
|
|
uninstallUnmanaged = true;
|
|
remotes = [
|
|
{ name = "flathub"; location = "https://flathub.org/repo/flathub.flatpakrepo"; }
|
|
{ name = "fedora"; location = "oci+https://registry.fedoraproject.org"; }
|
|
];
|
|
packages = [
|
|
"dev.vencord.Vesktop/x86_64/stable"
|
|
"io.github.zen_browser.zen/x86_64/stable"
|
|
"io.missioncenter.MissionCenter/x86_64/stable"
|
|
"md.obsidian.Obsidian/x86_64/stable"
|
|
"no.mifi.losslesscut/x86_64/stable"
|
|
"org.freedesktop.Platform/x86_64/22.08"
|
|
"org.freedesktop.Platform/x86_64/23.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-extra"
|
|
"org.freedesktop.Platform.GL.default/x86_64/24.08"
|
|
"org.freedesktop.Platform.GL.default/x86_64/24.08extra"
|
|
"org.freedesktop.Platform.GL32.default/x86_64/23.08"
|
|
"org.freedesktop.Platform.VulkanLayer.MangoHud/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/24.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.4.1"
|
|
"org.freedesktop.Sdk/x86_64/23.08"
|
|
"org.gnome.Platform/x86_64/47"
|
|
"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.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.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.prismlauncher.PrismLauncher/x86_64/stable"
|
|
"org.videolan.VLC/x86_64/stable"
|
|
"org.winehq.Wine.DLLs.dxvk/x86_64/stable-23.08"
|
|
"org.winehq.Wine.gecko/x86_64/stable-23.08"
|
|
"org.winehq.Wine.mono/x86_64/stable-23.08"
|
|
"xyz.z3ntu.razergenie/x86_64/stable"
|
|
{ appId = "org.fedoraproject.Platform/x86_64/f40"; origin = "fedora"; }
|
|
{ appId = "org.gimp.GIMP/x86_64/stable"; origin = "fedora"; }
|
|
{ appId = "org.fedoraproject.KDE6Platform/x86_64/f40"; origin = "fedora"; }
|
|
{ appId = "org.fedoraproject.Platform/x86_64/f40"; origin = "fedora"; }
|
|
];
|
|
};
|
|
programs.vscode = {
|
|
enable = true;
|
|
package = pkgs.vscodium;
|
|
extensions = with pkgs.vscode-extensions; [
|
|
jnoortheen.nix-ide
|
|
#continue.continue
|
|
];
|
|
userSettings = {
|
|
"editor.fontFamily" = "'DejaVu Sans Mono'";
|
|
"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
|
|
wlrobs
|
|
];
|
|
package = pkgs.writeShellScriptBin "obs" ''
|
|
#!/bin/sh
|
|
${pkgs-unstable.nixgl.nixVulkanIntel}/bin/nixVulkanIntel ${pkgs-unstable.obs-studio}/bin/obs "$@"
|
|
'';
|
|
};
|
|
xdg.desktopEntries."obs" = {
|
|
name = "OBS Studio";
|
|
genericName = "Streaming/Recording Software";
|
|
type = "Application";
|
|
comment = "Free and Open Source Streaming/Recording Software";
|
|
categories = [ "AudioVideo" "Recorder" ];
|
|
exec = "nixGL obs";
|
|
icon = pkgs.fetchurl {
|
|
url = "https://upload.wikimedia.org/wikipedia/commons/d/d3/OBS_Studio_Logo.svg";
|
|
sha256 = "sha256-7kTlDSmknwahRiiSPZPU7Fs49q2ViSIPsI/1s8z8mIs=";
|
|
};
|
|
terminal = false;
|
|
settings = {
|
|
StartupNotify = true;
|
|
StartupWMClass = "obs";
|
|
};
|
|
};
|
|
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 -b backup --flake ~/Git/Jafner.net/nix/dungeon-master/home-manager/ --impure";
|
|
nixgc = "nix-env --delete-generations 7d && nix-store --gc --print-dead";
|
|
kitty = "nixGL kitty";
|
|
fzf-ssh = "ssh $(cat ~/.ssh/profiles | fzf --height 20%)";
|
|
fsh = "fzf-ssh";
|
|
k = "kubectl";
|
|
};
|
|
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;
|
|
};
|
|
programs.rofi = {
|
|
enable = true;
|
|
};
|
|
programs.spotify-player = {
|
|
enable = true;
|
|
package = pkgs-unstable.spotify-player;
|
|
};
|
|
systemd.user.services = {
|
|
librespot = {
|
|
Unit = {
|
|
Description = "Librespot (an open source Spotify client)";
|
|
Documentation = [ "https://github.com/librespot-org/librespot" "https://github.com/librespot-org/librespot/wiki/Options" ];
|
|
};
|
|
Service = {
|
|
Restart = "always";
|
|
RestartSec = 10;
|
|
ExecStart = "${pkgs-unstable.librespot}/bin/librespot --backend pulseaudio --system-cache /home/joey/.spotify -j";
|
|
};
|
|
};
|
|
};
|
|
home.enableNixpkgsReleaseCheck = false;
|
|
home.preferXdgDirectories = true;
|
|
home.username = "joey";
|
|
home.homeDirectory = "/home/joey";
|
|
home.stateVersion = "24.05";
|
|
home.packages = with pkgs; [
|
|
rofi rofi-rbw-wayland rbw pinentry-rofi pinentry-all
|
|
flatpak
|
|
fastfetch
|
|
nixd
|
|
git kdePackages.kdeconnect-kde
|
|
vesktop
|
|
vlc
|
|
tree btop
|
|
bat fd eza fzf-git-sh
|
|
wl-clipboard
|
|
base16-schemes
|
|
ollama
|
|
protonup-ng
|
|
];
|
|
home.file = {
|
|
"continue-config.json" = {
|
|
source = ./continue-config.json;
|
|
target = ".continue/config.json";
|
|
};
|
|
"ssh-profiles" = {
|
|
source = ./profiles;
|
|
target = ".ssh/profiles";
|
|
};
|
|
"rbw-config" = {
|
|
target = ".config/rbw/config.json";
|
|
text = ''
|
|
{
|
|
"email": "jafner425@gmail.com",
|
|
"sso_id": null,
|
|
"base_url": "https://bitwarden.jafner.tools",
|
|
"identity_url": null,
|
|
"ui_url": null,
|
|
"notifications_url": null,
|
|
"lock_timeout": 3600,
|
|
"sync_interval": 3600,
|
|
"pinentry": "pinentry-curses",
|
|
"client_cert_path": null
|
|
}
|
|
'';
|
|
};
|
|
|
|
};
|
|
home.sessionVariables = {
|
|
};
|
|
programs.home-manager.enable = true;
|
|
xdg.systemDirs.data = [
|
|
"/usr/share"
|
|
];
|
|
}
|