mirror of
https://github.com/ParkerTenBroeck/dotfiles.git
synced 2026-06-06 21:00:35 -04:00
initial
This commit is contained in:
commit
0a62ab530d
30 changed files with 2420 additions and 0 deletions
16
modules/amd.nix
Normal file
16
modules/amd.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
systemd.packages = with pkgs; [ lact ];
|
||||
systemd.services.lactd.wantedBy = [ "multi-user.target" ];
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = [ "amdgpu" ];
|
||||
};
|
||||
}
|
||||
11
modules/audio.nix
Normal file
11
modules/audio.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
}
|
||||
4
modules/bluetooth.nix
Normal file
4
modules/bluetooth.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
}
|
||||
16
modules/cli.nix
Normal file
16
modules/cli.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{ pkgs, ...}: {
|
||||
imports = [
|
||||
./editors
|
||||
];
|
||||
|
||||
home-manager.users.may.home.packages = with pkgs; [
|
||||
neofetch
|
||||
wget
|
||||
tmux
|
||||
file
|
||||
btop
|
||||
screen
|
||||
ranger # file manager
|
||||
ripgrep
|
||||
];
|
||||
}
|
||||
7
modules/editors/default.nix
Normal file
7
modules/editors/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
imports = [
|
||||
./vi.nix
|
||||
./vim.nix
|
||||
./neovim.nix
|
||||
];
|
||||
}
|
||||
10
modules/editors/neovim.nix
Normal file
10
modules/editors/neovim.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
home-manager.users.may = {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
defaultEditor = true;
|
||||
extraConfig = builtins.readFile ./shared.vim;
|
||||
};
|
||||
};
|
||||
}
|
||||
27
modules/editors/shared.vim
Normal file
27
modules/editors/shared.vim
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
" Shared base config for vim and neovim.
|
||||
set nocompatible
|
||||
syntax on
|
||||
filetype plugin indent on
|
||||
|
||||
set number
|
||||
" set relativenumber
|
||||
set ruler
|
||||
set showcmd
|
||||
set hidden
|
||||
set mouse=a
|
||||
|
||||
set tabstop=2
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set expandtab
|
||||
set smartindent
|
||||
|
||||
set ignorecase
|
||||
set smartcase
|
||||
set incsearch
|
||||
set hlsearch
|
||||
|
||||
set splitright
|
||||
set splitbelow
|
||||
set clipboard=unnamedplus
|
||||
set updatetime=300
|
||||
8
modules/editors/vi.nix
Normal file
8
modules/editors/vi.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
home-manager.users.may = {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
};
|
||||
}
|
||||
8
modules/editors/vim.nix
Normal file
8
modules/editors/vim.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
home-manager.users.may = {
|
||||
programs.vim = {
|
||||
enable = true;
|
||||
extraConfig = builtins.readFile ./shared.vim;
|
||||
};
|
||||
};
|
||||
}
|
||||
42
modules/fonts.nix
Normal file
42
modules/fonts.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-color-emoji
|
||||
liberation_ttf
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
mplus-outline-fonts.githubRelease
|
||||
dina-font
|
||||
font-awesome
|
||||
powerline-fonts
|
||||
powerline-symbols
|
||||
nerd-fonts.symbols-only
|
||||
proggyfonts
|
||||
cozette
|
||||
luculent
|
||||
];
|
||||
# home-manager.users.may = { pkgs, ... }: {
|
||||
# fonts.fontconfig.enable = true;
|
||||
|
||||
# home.packages = with pkgs; [
|
||||
# noto-fonts
|
||||
# noto-fonts-cjk-sans
|
||||
# noto-fonts-color-emoji
|
||||
# liberation_ttf
|
||||
# fira-code
|
||||
# fira-code-symbols
|
||||
# mplus-outline-fonts.githubRelease
|
||||
# dina-font
|
||||
# font-awesome
|
||||
# powerline-fonts
|
||||
# powerline-symbols
|
||||
# nerd-fonts.symbols-only
|
||||
# proggyfonts
|
||||
# cozette
|
||||
# luculent
|
||||
# ];
|
||||
# };
|
||||
}
|
||||
3
modules/games/minecraft.nix
Normal file
3
modules/games/minecraft.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ pkgs, ...}: {
|
||||
home-manager.users.may.home.packages = with pkgs; [ prismlauncher ];
|
||||
}
|
||||
3
modules/games/steam.nix
Normal file
3
modules/games/steam.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
programs.steam.enable = true;
|
||||
}
|
||||
8
modules/git.nix
Normal file
8
modules/git.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ...}: {
|
||||
home-manager.users.may.home.packages = with pkgs; [
|
||||
git
|
||||
gitui
|
||||
# yes I'm a baby I know
|
||||
gh
|
||||
];
|
||||
}
|
||||
8
modules/home-manager.nix
Normal file
8
modules/home-manager.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
imports = [
|
||||
(import ((builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz") + "/nixos"))
|
||||
];
|
||||
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.useGlobalPkgs = true;
|
||||
}
|
||||
131
modules/hyprland/default.nix
Normal file
131
modules/hyprland/default.nix
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
hyprRun = pkgs.writeShellScript "hypr-run" ''
|
||||
exec ${pkgs.hyprland}/bin/Hyprland
|
||||
'';
|
||||
in {
|
||||
imports = [
|
||||
./hypr-conf.nix
|
||||
./nwg-panel-conf.nix
|
||||
# assume any desktop env will have audio
|
||||
../audio.nix
|
||||
];
|
||||
|
||||
|
||||
programs.dconf.enable = true;
|
||||
|
||||
security.polkit.enable = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
|
||||
programs.hyprland.enable = true;
|
||||
|
||||
services.displayManager.gdm.enable = lib.mkForce false;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
initial_session = {
|
||||
command = "${hyprRun}";
|
||||
user = "may";
|
||||
};
|
||||
default_session = {
|
||||
command = "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd ${hyprRun}";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.may = { pkgs, ... }: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
theme = {
|
||||
name = "Adwaita-dark";
|
||||
package = pkgs.gnome-themes-extra;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
name = "Adwaita";
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
gtk-theme = "Adwaita-dark";
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
name = "Adwaita";
|
||||
size = 24;
|
||||
gtk.enable = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
firefox # browser
|
||||
nautilus # gui file manager
|
||||
alacritty # terminal
|
||||
imv # image viewer
|
||||
file-roller # archive manager
|
||||
|
||||
# notifications
|
||||
libnotify
|
||||
dunst
|
||||
|
||||
# applets
|
||||
networkmanagerapplet
|
||||
blueman
|
||||
brightnessctl
|
||||
|
||||
# screenshot + editor
|
||||
grim
|
||||
grimblast
|
||||
swappy
|
||||
slurp
|
||||
|
||||
# GUI sound control
|
||||
pavucontrol
|
||||
|
||||
# clipboard
|
||||
wl-clipboard
|
||||
nwg-clipman
|
||||
cliphist
|
||||
|
||||
# nwg utilities
|
||||
nwg-displays # GUI display setup
|
||||
nwg-look # GUI theme settings
|
||||
nwg-drawer # application drawer (super key)
|
||||
nwg-panel # top bar
|
||||
|
||||
# wallpaper
|
||||
swww
|
||||
|
||||
# media controls
|
||||
playerctl
|
||||
|
||||
hyprpaper
|
||||
hyprpicker
|
||||
hyprsysteminfo
|
||||
hyprpwcenter
|
||||
hyprgraphics
|
||||
];
|
||||
};
|
||||
}
|
||||
168
modules/hyprland/hypr-conf.nix
Normal file
168
modules/hyprland/hypr-conf.nix
Normal file
|
|
@ -0,0 +1,168 @@
|
|||
{
|
||||
home-manager.users.may.wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
|
||||
xwayland.enable = true;
|
||||
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
|
||||
source = "~/.config/hypr/monitors.conf";
|
||||
|
||||
env = [];
|
||||
|
||||
exec-once = [
|
||||
"nwg-panel"
|
||||
"wl-paste --type text --watch cliphist store"
|
||||
"wl-paste --type image --watch cliphist store"
|
||||
"nm-applet --indicator"
|
||||
"blueman-applet"
|
||||
"nwg-drawer -r -nofs"
|
||||
"swww-daemon"
|
||||
];
|
||||
|
||||
exec = [
|
||||
"swww img /home/may/Pictures/background2.jpg"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
kb_variant = "";
|
||||
kb_model = "";
|
||||
kb_options = "";
|
||||
kb_rules = "";
|
||||
follow_mouse = 1;
|
||||
# sensitivity = 0.7;
|
||||
# accel_profile = "flat";
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true;
|
||||
};
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 2;
|
||||
gaps_out = 4;
|
||||
border_size = 3;
|
||||
"col.active_border" = "rgba(ff0000ee) rgba(ff7f00ee) rgba(ffff00ee) rgba(00ff00ee) rgba(0000ffee) rgba(9400d3ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
layout = "dwindle";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
|
||||
animation = [
|
||||
"windows, 1, 7, myBezier"
|
||||
"windowsOut, 1, 7, default, popin 80%"
|
||||
"border, 1, 10, default"
|
||||
"borderangle, 1, 8, default"
|
||||
"fade, 1, 7, default"
|
||||
"workspaces, 1, 6, default"
|
||||
];
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
pseudotile = true;
|
||||
preserve_split = true;
|
||||
};
|
||||
|
||||
gestures = {
|
||||
gesture = "3, horizontal, workspace";
|
||||
};
|
||||
|
||||
"device:epic-mouse-v1" = {
|
||||
};
|
||||
|
||||
misc = {
|
||||
enable_anr_dialog = false;
|
||||
disable_hyprland_logo = true;
|
||||
disable_splash_rendering = true;
|
||||
force_default_wallpaper = 0;
|
||||
};
|
||||
|
||||
bind = [
|
||||
"$mainMod, T, exec, alacritty"
|
||||
"$mainMod, B, exec, firefox"
|
||||
"SUPER_SHIFT, D, killactive,"
|
||||
"CONTROL_ALT, delete, exit,"
|
||||
"$mainMod, E, exec, nautilus"
|
||||
"$mainMod, F, fullscreen,"
|
||||
"$mainMod, M, fullscreen, 1"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, P, pseudo,"
|
||||
"$mainMod, J, togglesplit,"
|
||||
"$mainMod, C, exec, hyprpicker --autocopy"
|
||||
", Print, exec, grimblast --freeze copysave area - | swappy -f -"
|
||||
"$mainMod, 1, workspace, 1"
|
||||
"$mainMod, 2, workspace, 2"
|
||||
"$mainMod, 3, workspace, 3"
|
||||
"$mainMod, 4, workspace, 4"
|
||||
"$mainMod, 5, workspace, 5"
|
||||
"$mainMod, 6, workspace, 6"
|
||||
"$mainMod, 7, workspace, 7"
|
||||
"$mainMod, 8, workspace, 8"
|
||||
"$mainMod, 9, workspace, 9"
|
||||
"$mainMod, 0, workspace, 10"
|
||||
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
||||
"$mainMod, mouse_down, workspace, e+1"
|
||||
"$mainMod, mouse_up, workspace, e-1"
|
||||
"$mainMod, left, movefocus, l"
|
||||
"$mainMod, right, movefocus, r"
|
||||
"$mainMod, up, movefocus, u"
|
||||
"$mainMod, down, movefocus, d"
|
||||
"$mainMod SHIFT, left, movewindow, l"
|
||||
"$mainMod SHIFT, right, movewindow, r"
|
||||
"$mainMod SHIFT, up, movewindow, u"
|
||||
"$mainMod SHIFT, down, movewindow, d"
|
||||
];
|
||||
|
||||
bindr = [
|
||||
"SUPER, SUPER_L, exec, nwg-drawer -nofs"
|
||||
];
|
||||
|
||||
binde = [
|
||||
"$mainMod ALT, left, resizeactive, -10 0"
|
||||
"$mainMod ALT, right, resizeactive, 10 0"
|
||||
"$mainMod ALT, up, resizeactive, 0 -10"
|
||||
"$mainMod ALT, down, resizeactive, 0 10"
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 1%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-"
|
||||
", XF86MonBrightnessUp, exec, brightnessctl s +5%"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl s 5%-"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
", XF86AudioPrev, exec, playerctl previous"
|
||||
];
|
||||
|
||||
bindle = [
|
||||
", XF86Search, exec, launchpad"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
3
modules/hyprland/nwg-panel-conf.nix
Normal file
3
modules/hyprland/nwg-panel-conf.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
|
||||
}
|
||||
9
modules/locale.nix
Normal file
9
modules/locale.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
time.timeZone = "America/Toronto";
|
||||
i18n.defaultLocale = "en_CA.UTF-8";
|
||||
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
}
|
||||
3
modules/networking.nix
Normal file
3
modules/networking.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
networking.networkmanager.enable = true;
|
||||
}
|
||||
19
modules/packages.nix
Normal file
19
modules/packages.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
# assorted stuff until I decide where it goes
|
||||
home-manager.users.may = { pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
openjdk21
|
||||
vlc
|
||||
spotify
|
||||
vscode
|
||||
jetbrains.idea
|
||||
obs-studio
|
||||
discord
|
||||
jetbrains.rust-rover
|
||||
halloy
|
||||
dino
|
||||
];
|
||||
};
|
||||
}
|
||||
1739
modules/shell/.p10k.zsh
Normal file
1739
modules/shell/.p10k.zsh
Normal file
File diff suppressed because it is too large
Load diff
53
modules/shell/default.nix
Normal file
53
modules/shell/default.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.nix-ld.enable = true;
|
||||
programs.zsh.enable = true;
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
|
||||
environment.variables.NIX_BUILD_SHELL = "${pkgs.zsh}/bin/zsh";
|
||||
|
||||
home-manager.users.may = { pkgs, ... }: {
|
||||
home.file.".p10k.zsh".source = ./.p10k.zsh;
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ "git" "sudo" "history-substring-search" ];
|
||||
};
|
||||
|
||||
initContent = ''
|
||||
source "${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
|
||||
source ~/.p10k.zsh
|
||||
|
||||
# HSTR configuration - add this to ~/.zshrc
|
||||
alias hh=hstr # hh to be alias for hstr
|
||||
setopt histignorespace # skip cmds w/ leading space from history
|
||||
export HSTR_CONFIG=hicolor # get more colors
|
||||
hstr_no_tiocsti() {
|
||||
zle -I
|
||||
{ HSTR_OUT="$( { </dev/tty hstr ''${BUFFER}; } 2>&1 1>&3 3>&- )"; } 3>&1;
|
||||
BUFFER="''${HSTR_OUT}"
|
||||
CURSOR=''${#BUFFER}
|
||||
zle redisplay
|
||||
}
|
||||
zle -N hstr_no_tiocsti
|
||||
bindkey '\C-r' hstr_no_tiocsti
|
||||
export HSTR_TIOCSTI=n
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
ll = "ls -lah";
|
||||
update = "sudo nixos-rebuild switch";
|
||||
callgrind = "valgrind --tool=callgrind";
|
||||
massif = "valgrind --tool=massif";
|
||||
};
|
||||
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
3
modules/ssh.nix
Normal file
3
modules/ssh.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ pkgs, ...}: {
|
||||
services.openssh.enable = true;
|
||||
}
|
||||
6
modules/tex.nix
Normal file
6
modules/tex.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ...}: {
|
||||
home-manager.users.may.home.packages = with pkgs; [
|
||||
texstudio
|
||||
texlive.combined.scheme-full
|
||||
];
|
||||
}
|
||||
29
modules/users/may.nix
Normal file
29
modules/users/may.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
users.users.may = {
|
||||
isNormalUser = true;
|
||||
description = "may";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
};
|
||||
|
||||
home-manager.users.may = { pkgs, ... }: {
|
||||
home = {
|
||||
username = "may";
|
||||
homeDirectory = "/home/may";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
firefox
|
||||
chromium
|
||||
vlc
|
||||
spotify
|
||||
vscode
|
||||
jetbrains.idea
|
||||
obs-studio
|
||||
gh
|
||||
jetbrains.rust-rover
|
||||
wayvnc
|
||||
];
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue