nixos-dotfiles/users/ultra/home.nix
Alex Stan 091fbf15d2 stuff
Signed-off-by: Alex Stan <alex.stan.2010@proton.me>
2024-06-25 10:46:00 +03:00

421 lines
11 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
# jabber
];
});
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!
# nixpkgs-master.xivlauncher # It's fixed on unstable, as well as master, but the unstable input doesn't get updated every 5 picoseconds
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 # huge thanks to the true chad that packaged this
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
];
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;
# 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;
};
}