mirror of
https://codeberg.org/ultra/nixos-dotfiles.git
synced 2024-11-22 13:53:09 +02:00
492 lines
12 KiB
Nix
492 lines
12 KiB
Nix
inputs:
|
|
{ pkgs, lib, config, ... }:
|
|
let
|
|
# nix-software-center = inputs.nix-software-center.packages.${pkgs.system}.nix-software-center;
|
|
/*
|
|
doom-emacs = inputs.nix-doom-emacs.packages.${pkgs.system}.default.override {
|
|
doomPrivateDir = ./doom.d;
|
|
};
|
|
*/
|
|
# eww-git = inputs.eww.packages.${pkgs.system}.default;
|
|
emacs-package = (pkgs.emacsWithPackagesFromUsePackage rec{
|
|
package = pkgs.emacs-gtk;
|
|
/*
|
|
config = ''
|
|
(setq standard-indent 2)
|
|
(load (expand-file-name "~/.quicklisp/slime-helper.el"))
|
|
(setq inferior-lisp-program "sbcl")
|
|
(set-face-attribute 'default nil :height 120)
|
|
(use-package parinfer-rust-mode :hook emacs-lisp-mode)
|
|
'';
|
|
*/
|
|
config = builtins.readFile ./configs/emacs/init.el;
|
|
# defaultInitFile = ./configs/emacs/init.el;
|
|
defaultInitFile = pkgs.writeText "default.el" config;
|
|
/* ''
|
|
(setq standard-indent 2)
|
|
(load (expand-file-name "~/.quicklisp/slime-helper.el"))
|
|
(setq inferior-lisp-program "sbcl")
|
|
(set-face-attribute 'default nil :height 120)
|
|
'';*/
|
|
extraEmacsPackages = epkgs: with epkgs; [
|
|
use-package
|
|
nix-mode
|
|
slime
|
|
parinfer-rust-mode
|
|
sly
|
|
# spacemacs-theme
|
|
paredit
|
|
evil
|
|
magit
|
|
org
|
|
mastodon
|
|
eshell-z
|
|
bshell
|
|
eat
|
|
gruvbox-theme
|
|
uwu-theme
|
|
irony
|
|
hotfuzz
|
|
vertico
|
|
marginalia
|
|
consult
|
|
corfu
|
|
bind-key
|
|
highlight-indent-guides
|
|
doom-modeline
|
|
which-key
|
|
treesit-grammars.with-all-grammars
|
|
el-easydraw
|
|
# jabber
|
|
geiser
|
|
rainbow-delimiters
|
|
rainbow-mode
|
|
esh-autosuggest
|
|
fish-completion
|
|
steam
|
|
zone-sl
|
|
helm
|
|
];
|
|
});
|
|
helix = inputs.helix.packages.${pkgs.system}.default;
|
|
nixpkgs-master-pkgs = inputs.nixpkgs-master.legacyPackages.${pkgs.system};
|
|
# nixpkgs-master = inputs.nixpkgs-master;
|
|
nixpkgs-master = import inputs.nixpkgs-master {
|
|
inherit (config.nixpkgs) config overlays;
|
|
inherit (pkgs) system;
|
|
};
|
|
hypr-contrib = inputs.hypr-contrib.packages.${pkgs.system};
|
|
# nh = inputs.nix-but-gigachad.packages.${pkgs.system}.default; # IT GOT UPSTREAMED WOOO
|
|
in {
|
|
imports = [
|
|
inputs.hyprland.homeManagerModules.default
|
|
inputs.nix-index-database.hmModules.nix-index
|
|
];
|
|
# Allow unfree packages
|
|
nixpkgs = {
|
|
overlays = [
|
|
(import inputs.emacs-overlay)
|
|
];
|
|
config = {
|
|
allowUnfree = true;
|
|
allowUnfreePredicate = (pkg: true);
|
|
permittedInsecurePackages = [
|
|
"electron-21.4.0"
|
|
"electron-24.8.6"
|
|
"electron-25.9.0"
|
|
];
|
|
packageOverrides = pkgs: {
|
|
nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") {
|
|
inherit pkgs;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
/*
|
|
nixpkgs-master.config = {
|
|
allowUnfree = true;
|
|
allowUnfreePredicate = (pkg: true);
|
|
permittedInsecurePackages = [
|
|
"electron-21.4.0"
|
|
];
|
|
};
|
|
*/
|
|
home = {
|
|
username = "ultra";
|
|
homeDirectory = "/home/ultra/";
|
|
stateVersion = "22.11";
|
|
packages = with pkgs; [
|
|
firefox
|
|
tor-browser-bundle-bin
|
|
kate
|
|
distrobox
|
|
fish
|
|
nushell
|
|
git
|
|
bat
|
|
gnupg1
|
|
zoom-us
|
|
google-chrome
|
|
zoxide
|
|
# starship
|
|
atuin
|
|
clang
|
|
(lib.hiPrio gcc)
|
|
eza
|
|
gnumake
|
|
plasma-browser-integration
|
|
libsForQt5.bismuth
|
|
whatsapp-for-linux
|
|
signal-desktop
|
|
nodejs
|
|
onlyoffice-bin
|
|
drawio
|
|
xclip
|
|
steam
|
|
packagekit
|
|
# armcord # it has a CVE
|
|
rnote
|
|
obsidian
|
|
gnome-obfuscate
|
|
microsoft-edge
|
|
# doom-emacs
|
|
ripgrep
|
|
w3m
|
|
github-cli
|
|
mc
|
|
# zellij
|
|
(nixpkgs-master-pkgs.zellij)
|
|
lsd
|
|
tealdeer
|
|
fd
|
|
broot
|
|
fzf
|
|
bottom
|
|
hyperfine
|
|
procs
|
|
httpie
|
|
curlie
|
|
xh
|
|
du-dust
|
|
duf
|
|
virtualbox
|
|
spotify
|
|
appimage-run
|
|
# xivlauncher # No longer fails to build!
|
|
prismlauncher
|
|
ghostwriter
|
|
skypeforlinux
|
|
man-pages
|
|
ckan
|
|
cool-retro-term
|
|
# wofi
|
|
# hyprpaper
|
|
# alacritty
|
|
# tofi
|
|
# dunst
|
|
wl-clipboard
|
|
polkit-kde-agent
|
|
# grim
|
|
# hypr-contrib.grimblast
|
|
# hypr-contrib.scratchpad
|
|
# kitty
|
|
# waybar
|
|
/*
|
|
(eww-git.override {
|
|
withWayland = true;
|
|
})
|
|
*/
|
|
# eww
|
|
# (eww.override { withWayland = true; })
|
|
notify-desktop
|
|
libnotify
|
|
xdg-desktop-portal-hyprland
|
|
jq
|
|
libsForQt5.alligator
|
|
thunderbird
|
|
nh
|
|
# irssi
|
|
syncthing
|
|
# android-studio # literally proprietary bloat, I don't want that garbage on my system.
|
|
flutter
|
|
comic-mono
|
|
screen
|
|
amfora
|
|
weechat
|
|
filezilla
|
|
fluffychat
|
|
bitwarden
|
|
akregator
|
|
# bitwarden
|
|
# schildichat-desktop # apparently it uses a really old version of electron
|
|
element-desktop
|
|
xonsh
|
|
kiwix
|
|
htmlq
|
|
lite
|
|
# heroic
|
|
steam-run
|
|
/*
|
|
(lutris.override {
|
|
extraPkgs = pkgs: [
|
|
pkgs.wine64Packages.stagingFull
|
|
];
|
|
})
|
|
*/
|
|
waypipe
|
|
# electron-mail
|
|
hydroxide
|
|
jujutsu
|
|
gparted
|
|
xournalpp
|
|
(lib.hiPrio netcat-gnu)
|
|
nmap
|
|
browsh
|
|
# beeper
|
|
halloy
|
|
mtpaint
|
|
fluent-reader
|
|
discord
|
|
f1viewer
|
|
vlc
|
|
wineWowPackages.wayland
|
|
blender
|
|
vesktop
|
|
ktailctl
|
|
caddy
|
|
floorp
|
|
mpris-scrobbler
|
|
sbcl
|
|
clang-tools
|
|
#emacs-package
|
|
dino
|
|
cinny-desktop
|
|
(inputs.nix-inst.packages.${pkgs.system}.default)
|
|
dotnet-runtime_6
|
|
tea
|
|
thefuck
|
|
playerctl
|
|
];
|
|
file = {
|
|
"emacs.d/everblush-theme.el".source = ./configs/emacs/everblush-theme.el;
|
|
};
|
|
};
|
|
xdg = {
|
|
configFile = {
|
|
"emacs/init.el".source = ./configs/emacs/init.el;
|
|
"emacs/everblush-theme.el".source = ./configs/emacs/everblush-theme.el;
|
|
"hypr/hyprland.conf".source = ./configs/hyprland/hyprland.conf;
|
|
"presets/user/everblush.json".source = ./configs/presets/everblush.json;
|
|
};
|
|
};
|
|
programs = {
|
|
emacs = {
|
|
enable = true;
|
|
package = emacs-package;
|
|
/*
|
|
extraConfig = ''
|
|
(setq standard-indent 2)
|
|
(load (expand-file-name "~/.quicklisp/slime-helper.el"))
|
|
(setq inferior-lisp-program "sbcl")
|
|
(set-face-attribute 'default nil :height 120)
|
|
(use-package parinfer-rust-mode :hook emacs-lisp-mode)
|
|
'';
|
|
*/
|
|
extraConfig = builtins.readFile ./configs/emacs/init.el;
|
|
};
|
|
home-manager.enable = true;
|
|
# fish.enable = true;
|
|
zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
autocd = true;
|
|
autosuggestion = {
|
|
enable = true;
|
|
};
|
|
syntaxHighlighting = {
|
|
enable = true;
|
|
};
|
|
shellAliases = {
|
|
cls = "clear";
|
|
# emcc = "emacsclient -c";
|
|
};
|
|
oh-my-zsh = {
|
|
enable = true;
|
|
plugins = [ "git" "thefuck" "history-substring-search" "fzf" ];
|
|
theme = "cloud";
|
|
};
|
|
history = {
|
|
size = 256 * 1024;
|
|
path = "${config.xdg.dataHome}/zsh/history";
|
|
extended = true;
|
|
};
|
|
initExtra = ''
|
|
eval $(thefuck --alias)
|
|
eval $(starship init zsh)
|
|
'';
|
|
zsh-abbr = {
|
|
enable = true;
|
|
abbreviations = {
|
|
emcc = "emacsclient -c";
|
|
sam = "git commit -sam";
|
|
hmbk = "home-manager switch --flake ~/.nixdotfiles -b backup";
|
|
hmup = "nh home switch ~/.nixdotfiles";
|
|
osup = "nh os switch ~/.nixdotfiles";
|
|
};
|
|
};
|
|
};
|
|
|
|
zoxide = {
|
|
enable = true;
|
|
enableNushellIntegration = true;
|
|
enableZshIntegration = true;
|
|
};
|
|
|
|
starship = {
|
|
enable = true;
|
|
settings = {
|
|
"$schema" = "https://starship.rs/config-schema.json";
|
|
add_newline = false;
|
|
character = {
|
|
success_symbol = "[➜](bold green)";
|
|
error_symbol = "[➜](bold red)";
|
|
};
|
|
format = ''
|
|
$directory$git_branch$git_status$git_state$nodejs$container$sudo$nix_shell$character
|
|
'';
|
|
};
|
|
};
|
|
|
|
# Helix config
|
|
helix = {
|
|
enable = true;
|
|
package = helix;
|
|
languages = {
|
|
language-server = with pkgs; {
|
|
cpp.command = "${clang-tools}/bin/clangd";
|
|
c.command = "${clang-tools}/bin/clangd";
|
|
nix.command = "${nixd}/bin/nixd";
|
|
};
|
|
language = [
|
|
{
|
|
name = "cpp";
|
|
scope = "source.cpp";
|
|
indent = {
|
|
tab-width = 4;
|
|
unit = " ";
|
|
};
|
|
# language-server.command = "clangd";
|
|
file-types = [ "cpp" ];
|
|
}
|
|
{
|
|
name = "c";
|
|
scope = "source.c";
|
|
indent = {
|
|
tab-width = 4;
|
|
unit = " ";
|
|
};
|
|
# language-server.command = "clangd";
|
|
file-types = [ "c" ];
|
|
}
|
|
{
|
|
name = "nix";
|
|
scope = "source.nix";
|
|
indent = {
|
|
tab-width = 4;
|
|
unit = " ";
|
|
};
|
|
# language-server.command = "nil";
|
|
file-types = [ "nix" ];
|
|
}
|
|
];
|
|
};
|
|
settings = {
|
|
theme = "everblush";
|
|
editor = {
|
|
line-number = "relative";
|
|
mouse = true;
|
|
cursor-shape = {
|
|
insert = "bar";
|
|
normal = "block";
|
|
select = "underline";
|
|
};
|
|
file-picker.hidden = false;
|
|
auto-save = true;
|
|
true-color = true;
|
|
};
|
|
};
|
|
};
|
|
vscode = {
|
|
enable = true;
|
|
package = pkgs.vscodium;
|
|
mutableExtensionsDir = false;
|
|
extensions = with pkgs.vscode-extensions; [
|
|
enkia.tokyo-night # Tokyo Night theme
|
|
arcticicestudio.nord-visual-studio-code # Nord theme
|
|
jnoortheen.nix-ide # Nix stuff
|
|
# eamodio.gitlens # Giga git, but with some paid stuff
|
|
kahole.magit # Giga git
|
|
bmalehorn.vscode-fish # Fish in vscode
|
|
ms-vscode-remote.remote-ssh # SSH
|
|
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
|
{
|
|
name = "hungry-delete";
|
|
publisher = "jasonlhy";
|
|
version = "1.7.0";
|
|
sha256 = "sha256-TDs6i0/o0j9XFLQvWze4iloa6yRXce/xIqd2CnA5nug=";
|
|
}
|
|
];
|
|
userSettings = {
|
|
nix = {
|
|
serverPath = "nixd";
|
|
enableLanguageServer = true;
|
|
};
|
|
editor = {
|
|
fontLigatures = true;
|
|
fontFamily = "JetBrainsMono Nerd Font";
|
|
cursorBlinking = "smooth";
|
|
cursorSmoothCaretAnimation = "on";
|
|
tabSize = 2;
|
|
accessibilitySupport = "off";
|
|
};
|
|
workbench = {
|
|
colorTheme = "Tokyo Night";
|
|
};
|
|
files = {
|
|
autoSave = "on";
|
|
};
|
|
};
|
|
};
|
|
nix-index-database = {
|
|
comma = {
|
|
enable = true;
|
|
};
|
|
};
|
|
};
|
|
services = {
|
|
dunst.enable = false;
|
|
emacs = {
|
|
enable = true;
|
|
package = emacs-package;
|
|
client = {
|
|
enable = true;
|
|
arguments = [ "-c" ];
|
|
};
|
|
};
|
|
};
|
|
systemd.user = {
|
|
services = {
|
|
dunst.Unit = {
|
|
After = lib.mkForce [];
|
|
WantedBy = [ "hyprland-session.target" ];
|
|
PartOf = lib.mkForce [ "hyprland-session.target" ];
|
|
};
|
|
};
|
|
};
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
package = pkgs.hyprland;
|
|
extraConfig = builtins.readFile ./configs/hyprland/hyprland.conf;
|
|
systemdIntegration = true;
|
|
};
|
|
}
|