Compare commits

..

No commits in common. "7fb6171dcf1755b7b5543a72bfb96082d5616a02" and "5b3c4b4ee63f6e17c4391c2dd0d7c84c5ceed2b5" have entirely different histories.

19 changed files with 114 additions and 56 deletions

View file

@ -105,23 +105,21 @@ The [flake.nix](/flake.nix) currently contains my configuration for four hosts:
## Keybinds ## Keybinds
Non-exhaustive.
| Shortcut | Action | | Shortcut | Action |
| -------------------------------------------------------------------------------------------------------- | -------------------------------- | | -------------------------------------------------------------------------------------------------------- | -------------------------------- |
| <kbd>Super</kbd> + <kbd>W</kbd> | Toggle floating | | <kbd>Super</kbd> + <kbd>W</kbd> | Toggle floating |
| <kbd>Super</kbd> + <kbd>K</kbd> | Toggle layout | | <kbd>Super</kbd> + <kbd>J</kbd> | Toggle layout |
| <kbd>Super</kbd> + <kbd>E</kbd> | Open Dolphin | | <kbd>Super</kbd> + <kbd>E</kbd> | Open Dolphin |
| <kbd>Super</kbd> + <kbd>T</kbd> | Open kitty | | <kbd>Super</kbd> + <kbd>T</kbd> | Open kitty |
| <kbd>Super</kbd> + <kbd>F</kbd> | Open librewolf | | <kbd>Super</kbd> + <kbd>F</kbd> | Open librewolf |
| <kbd>Super</kbd> + <kbd>R</kbd> | Open pavucontrol | | <kbd>Super</kbd> + <kbd>R</kbd> | Open pavucontrol |
| <kbd>Super</kbd> + <kbd>Space</kbd> | Open rofi | | <kbd>Super</kbd> + <kbd>Space</kbd> | Open rofi |
| <kbd>Super</kbd> + <kbd>Backspace</kbd> | Open logout menu | | <kbd>Super</kbd> + <kbd>Backspace</kbd> | Open logout menu |
| <kbd>Super</kbd> + <kbd>L</kbd> | Screenshot region | | <kbd>Super</kbd> + <kbd>P</kbd> | Screenshot region |
| <kbd>Super</kbd> + <kbd>H</kbd><kbd>J</kbd><kbd>K</kbd><kbd>L</kbd> | Move around | | <kbd>Super</kbd> + <kbd>Y</kbd><kbd>U</kbd><kbd>I</kbd><kbd>O</kbd> | Move around |
| <kbd>Super</kbd> + <kbd>Ctrl</kbd> + <kbd>H</kbd><kbd>L</kbd> | Move workspaces | | <kbd>Super</kbd> + <kbd>Ctrl</kbd> + <kbd>Y</kbd><kbd>O</kbd> | Move workspaces |
| <kbd>Super</kbd> + <kbd>Alt</kbd> + <kbd>Ctrl</kbd> + <kbd>H</kbd><kbd>J</kbd><kbd>K</kbd><kbd>L</kbd> | Move windows around workspaces | | <kbd>Super</kbd> + <kbd>Alt</kbd> + <kbd>Ctrl</kbd> + <kbd>Y</kbd><kbd>U</kbd><kbd>I</kbd><kbd>O</kbd> | Move windows around workspaces |
| <kbd>Super</kbd> + <kbd>Shift</kbd> + <kbd>Ctrl</kbd> + <kbd>H</kbd><kbd>J</kbd><kbd>K</kbd><kbd>L</kbd> | Move windows around | | <kbd>Super</kbd> + <kbd>Shift</kbd> + <kbd>Ctrl</kbd> + <kbd>Y</kbd><kbd>U</kbd><kbd>I</kbd><kbd>O</kbd> | Move windows around |
| <kbd>Super</kbd> + <kbd>S</kbd> | Open Special Workspace | | <kbd>Super</kbd> + <kbd>S</kbd> | Open Special Workspace |
| <kbd>Super</kbd> + <kbd>Enter</kbd> | Fullscreen Window | | <kbd>Super</kbd> + <kbd>Enter</kbd> | Fullscreen Window |
| <kbd>Super</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd> | Move Window to Special Workspace | | <kbd>Super</kbd> + <kbd>Alt</kbd> + <kbd>S</kbd> | Move Window to Special Workspace |

View file

@ -2,14 +2,8 @@
## P1 ## P1
- Massively refactor module system
## P2 ## P2
- [ ] Move wallpapers to submodule - Add Nvidia-specific config options for Hyprland (blocked by P1)
- [ ] Move Neovim to submodule
## Done
- [x] Add Nvidia-specific config options for Hyprland (blocked by P1)
- [x] Massively refactor module system

View file

@ -134,9 +134,11 @@
users.users.youwen = { users.users.youwen = {
isNormalUser = true; isNormalUser = true;
description = "Youwen Wu"; description = "Youwen Wu";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager" "wheel" "nixos" "realtime"];
}; };
users.groups.realtime = {};
nix.settings = { nix.settings = {
trusted-users = ["root" "youwen"]; trusted-users = ["root" "youwen"];
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes"];
@ -146,6 +148,27 @@
KERNEL=="cpu_dma_latency", GROUP="realtime" KERNEL=="cpu_dma_latency", GROUP="realtime"
''; '';
security.pam.loginLimits = [
{
domain = "@realtime";
type = "-";
item = "rtprio";
value = 98;
}
{
domain = "@realtime";
type = "-";
item = "memlock";
value = "unlimited";
}
{
domain = "@realtime";
type = "-";
item = "nice";
value = -11;
}
];
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;

View file

@ -5,12 +5,12 @@
}: { }: {
imports = with inputs; [ imports = with inputs; [
./configuration.nix ./configuration.nix
../../modules/linux/gaming ../../modules/nixos/gaming
../../modules/linux/audio ../../modules/nixos/audio
../../modules/linux/networking ../../modules/nixos/networking
../../modules/linux/fonts ../../modules/nixos/fonts
../../modules/linux/greeter ../../modules/nixos/greeter
../../modules/linux/core ../../modules/nixos/core
../../overlays ../../overlays
catppuccin.nixosModules.catppuccin catppuccin.nixosModules.catppuccin

View file

@ -103,9 +103,11 @@
users.users.youwen = { users.users.youwen = {
isNormalUser = true; isNormalUser = true;
description = "Youwen Wu"; description = "Youwen Wu";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager" "wheel" "nixos" "realtime"];
}; };
users.groups.realtime = {};
nix.settings = { nix.settings = {
trusted-users = ["root" "youwen"]; trusted-users = ["root" "youwen"];
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes"];
@ -116,6 +118,27 @@
KERNEL=="macsmc-battery", SUBSYSTEM=="power_supply", ATTR{charge_control_end_threshold}="80", ATTR{charge_control_start_threshold}="70" KERNEL=="macsmc-battery", SUBSYSTEM=="power_supply", ATTR{charge_control_end_threshold}="80", ATTR{charge_control_start_threshold}="70"
''; '';
security.pam.loginLimits = [
{
domain = "@realtime";
type = "-";
item = "rtprio";
value = 98;
}
{
domain = "@realtime";
type = "-";
item = "memlock";
value = "unlimited";
}
{
domain = "@realtime";
type = "-";
item = "nice";
value = -11;
}
];
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;

View file

@ -5,11 +5,11 @@
}: { }: {
imports = with inputs; [ imports = with inputs; [
./configuration.nix ./configuration.nix
../../modules/linux/audio ../../modules/nixos/audio
../../modules/linux/networking ../../modules/nixos/networking
../../modules/linux/fonts ../../modules/nixos/fonts
../../modules/linux/greeter ../../modules/nixos/greeter
../../modules/linux/core ../../modules/nixos/core
../../overlays ../../overlays
apple-silicon.nixosModules.apple-silicon-support apple-silicon.nixosModules.apple-silicon-support

View file

@ -117,9 +117,11 @@
users.users.youwen = { users.users.youwen = {
isNormalUser = true; isNormalUser = true;
description = "Youwen Wu"; description = "Youwen Wu";
extraGroups = ["networkmanager"]; extraGroups = ["networkmanager" "wheel" "nixos" "realtime"];
}; };
users.groups.realtime = {};
nix.settings = { nix.settings = {
trusted-users = ["root" "youwen"]; trusted-users = ["root" "youwen"];
experimental-features = ["nix-command" "flakes"]; experimental-features = ["nix-command" "flakes"];
@ -129,6 +131,27 @@
KERNEL=="cpu_dma_latency", GROUP="realtime" KERNEL=="cpu_dma_latency", GROUP="realtime"
''; '';
security.pam.loginLimits = [
{
domain = "@realtime";
type = "-";
item = "rtprio";
value = 98;
}
{
domain = "@realtime";
type = "-";
item = "memlock";
value = "unlimited";
}
{
domain = "@realtime";
type = "-";
item = "nice";
value = -11;
}
];
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;

View file

@ -5,13 +5,13 @@
}: { }: {
imports = with inputs; [ imports = with inputs; [
./configuration.nix ./configuration.nix
../../modules/linux/gaming ../../modules/nixos/gaming
../../modules/linux/audio ../../modules/nixos/audio
../../modules/linux/networking ../../modules/nixos/networking
../../modules/linux/fonts ../../modules/nixos/fonts
../../modules/linux/greeter ../../modules/nixos/greeter
../../modules/linux/core ../../modules/nixos/core
../../modules/linux/hamachi ../../modules/nixos/hamachi
../../overlays ../../overlays
catppuccin.nixosModules.catppuccin catppuccin.nixosModules.catppuccin

View file

@ -1,14 +0,0 @@
{
security.sudo.enable = false;
security.doas = {
enable = true;
extraRules = [
{
users = ["youwen"];
keepEnv = true;
persist = true;
}
];
};
}

View file

@ -0,0 +1,2 @@
{
}

View file

@ -76,14 +76,23 @@
programs.fish = { programs.fish = {
enable = true; enable = true;
shellAliases = { shellAliases = {
rebuild = "sudo nixos-rebuild switch";
ls = "eza -l --icons=auto"; ls = "eza -l --icons=auto";
}; };
shellInit = '' functions = {
oh-my-posh disable notice update-nixos = {
description = "Update the system flake and attempt to build and switch to the new configuration.";
body = ''
cd /etc/nixos
nix flake update
sudo nixos-rebuild switch
''; '';
};
};
interactiveShellInit = '' interactiveShellInit = ''
fish_vi_key_bindings fish_vi_key_bindings
set -g fish_greeting set -g fish_greeting
oh-my-posh disable notice
''; '';
plugins = [ plugins = [
{ {

View file

@ -455,7 +455,6 @@
indent-blankline.enable = true; indent-blankline.enable = true;
which-key.enable = true; which-key.enable = true;
zen-mode.enable = true; zen-mode.enable = true;
nvim-autopairs.enable = true;
yanky = { yanky = {
enable = true; enable = true;
enableTelescope = true; enableTelescope = true;
@ -549,6 +548,7 @@
enable = true; enable = true;
modules = { modules = {
surround = {}; surround = {};
pairs = {};
ai = {}; ai = {};
hipatterns = {}; hipatterns = {};
notify = {}; notify = {};