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
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/secrets
|
||||||
11
common.nix
Normal file
11
common.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./modules/home-manager.nix
|
||||||
|
./modules/locale.nix
|
||||||
|
./modules/shell
|
||||||
|
./modules/users/may.nix
|
||||||
|
./modules/ssh.nix
|
||||||
|
./modules/git.nix
|
||||||
|
./modules/cli.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
39
desktop.nix
Normal file
39
desktop.nix
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./common.nix
|
||||||
|
./modules/networking.nix
|
||||||
|
./modules/bluetooth.nix
|
||||||
|
./modules/amd.nix
|
||||||
|
./modules/games/steam.nix
|
||||||
|
./modules/games/minecraft.nix
|
||||||
|
./modules/fonts.nix
|
||||||
|
./modules/packages.nix
|
||||||
|
./modules/wireguard-server.nix
|
||||||
|
./modules/hyprland
|
||||||
|
./modules/tex.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
networking.hostName = "nixos-desktop";
|
||||||
|
networking.firewall.allowedTCPPorts = [ 51820 25565 42069 8000 8080 ];
|
||||||
|
|
||||||
|
home-manager.users.may.wayland.windowManager.hyprland.settings = {
|
||||||
|
workspace = [
|
||||||
|
"1, monitor:DP-2, default:true"
|
||||||
|
"9, monitor:DP-1, default:true"
|
||||||
|
"10, monitor:HDMI-A-1, default:true"
|
||||||
|
];
|
||||||
|
|
||||||
|
exec-once = lib.mkAfter [
|
||||||
|
# Give Hyprland a moment to finish bringing up the desktop before
|
||||||
|
# placing startup apps onto monitor-pinned workspaces.
|
||||||
|
"sh -c 'sleep 2; hyprctl dispatch exec \"[workspace 9 silent] firefox\"; hyprctl dispatch exec \"[workspace 1 silent] alacritty\"'"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
home-manager.users.may.home.stateVersion = "25.11";
|
||||||
|
}
|
||||||
18
laptop.nix
Normal file
18
laptop.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./common.nix
|
||||||
|
./modules/networking.nix
|
||||||
|
./modules/bluetooth.nix
|
||||||
|
./modules/steam.nix
|
||||||
|
./modules/fonts.nix
|
||||||
|
./modules/packages.nix
|
||||||
|
./modules/hyprland
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
networking.hostName = "nixos-laptop";
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
home-manager.users.may.home.stateVersion = "25.11";
|
||||||
|
}
|
||||||
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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
17
work.nix
Normal file
17
work.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./common.nix
|
||||||
|
./modules/networking.nix
|
||||||
|
./modules/bluetooth.nix
|
||||||
|
./modules/fonts.nix
|
||||||
|
./modules/packages.nix
|
||||||
|
./modules/hyprland
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
networking.hostName = "nixos-work-laptop";
|
||||||
|
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
home-manager.users.may.home.stateVersion = "25.11";
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue