Compare commits
4 Commits
49220edd9a
...
295155cbd7
| Author | SHA1 | Date | |
|---|---|---|---|
| 295155cbd7 | |||
| 0262e2cc07 | |||
| df9428efac | |||
| 385c0ff0c1 |
@ -181,6 +181,11 @@
|
||||
enableSSHSupport = false;
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||
};
|
||||
|
||||
#System packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
mullvad-vpn
|
||||
|
||||
8
etcnixos/flake.lock
generated
8
etcnixos/flake.lock
generated
@ -303,16 +303,16 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1728888510,
|
||||
"narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
|
||||
"lastModified": 1729251725,
|
||||
"narHash": "sha256-KmIA2i7s3jcVQWgUt6wqY9/5DkIp9uxsVhcwUxSnKHY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
|
||||
"rev": "babe2c97edf3750d3924c1c5eaa1fe94ac94e8d8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "master",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
description = "A simple NixOS flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
# nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/master";
|
||||
|
||||
lanzaboote = {
|
||||
url = "github:nix-community/lanzaboote";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -38,16 +40,12 @@
|
||||
hostname = nixpkgs.lib.strings.removeSuffix "\n" (builtins.readFile /etc/hostname);
|
||||
system = "x86_64-linux";
|
||||
|
||||
# pkgs = import nixpkgs {
|
||||
# config.replaceStdenv = { pkgs }: pkgs.clangStdenv;
|
||||
# };
|
||||
pkgs = import nixpkgs {
|
||||
config.allowUnfreePredicate =
|
||||
pkg:
|
||||
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
"steam-unwrapped"
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-run"
|
||||
];
|
||||
};
|
||||
in
|
||||
|
||||
@ -107,10 +107,7 @@
|
||||
};
|
||||
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
# dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||
};
|
||||
|
||||
# services.ollama = {
|
||||
|
||||
24
home-manager/flake.lock
generated
24
home-manager/flake.lock
generated
@ -72,11 +72,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729174520,
|
||||
"narHash": "sha256-QxCAdgQdeIOaCiE0Sr23s9lD0+T1b/wuz5pSiGwNrCQ=",
|
||||
"lastModified": 1729260213,
|
||||
"narHash": "sha256-jAvHoU/1y/yCuXzr2fNF+q6uKmr8Jj2xgAisK4QB9to=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "e78cbb20276f09c1802e62d2f77fc93ec32da268",
|
||||
"rev": "09a0c0c02953318bf94425738c7061ffdc4cba75",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -98,11 +98,11 @@
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729189676,
|
||||
"narHash": "sha256-oTvN+vxzOW+zzkmSnRUtItzismkOL+Z5kAU26Tf2HSE=",
|
||||
"lastModified": 1729237583,
|
||||
"narHash": "sha256-DmbzRBqTP+LIzyPkle92bN83GOjO02pPxW0OAL6yTsI=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "c547a861a5f968b0b783de5dbfad159303c6c19a",
|
||||
"rev": "1ca158ad24664a2608d9fe5f6627274bb7c6e939",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -131,11 +131,11 @@
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1729144746,
|
||||
"narHash": "sha256-Ocq+8Kc4gp8PLPziHkMZN0F+HuCS9mbxusJHtFdKoP8=",
|
||||
"lastModified": 1729235169,
|
||||
"narHash": "sha256-SPlS9YtGRWUjZZZRXlimHbSho+0hfrqGycErlI9XVXk=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "8d08782eba427a46607a478d088744d023a292c3",
|
||||
"rev": "dd8b2be044c6c67a1c9bf07f287b3967e958b8aa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -205,11 +205,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729184663,
|
||||
"narHash": "sha256-uNyi5vQrzaLkt4jj6ZEOs4+4UqOAwP6jFG2s7LIDwIk=",
|
||||
"lastModified": 1729218602,
|
||||
"narHash": "sha256-KDmYxpkFWa0Go0WnOpkgQOypVaQxbwgpEutET5ey1VQ=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "16fb78d443c1970dda9a0bbb93070c9d8598a925",
|
||||
"rev": "9051466c82b9b3a6ba9e06be99621ad25423ec94",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@ -73,6 +73,7 @@
|
||||
optimizeWithFlags
|
||||
;
|
||||
};
|
||||
|
||||
modules = [
|
||||
./system-${hostname}.nix
|
||||
niri.homeModules.config
|
||||
@ -83,6 +84,7 @@
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
inputs.niri.overlays.niri
|
||||
];
|
||||
|
||||
# home-manager stuff
|
||||
|
||||
@ -7,7 +7,6 @@
|
||||
map (f: "${homeDirectory}/${f}") [
|
||||
".zen"
|
||||
".local/share/fish"
|
||||
".config/Signal"
|
||||
".wallpaper.png"
|
||||
".ssh"
|
||||
|
||||
@ -17,6 +16,19 @@
|
||||
"school"
|
||||
"justfile"
|
||||
]
|
||||
++ (map (f: ".config/Signal/${f}") [
|
||||
"stickers.noindex"
|
||||
"attachments.noindex"
|
||||
"downloads.noindex"
|
||||
"drafts.noindex"
|
||||
"sql"
|
||||
"IndexedDB"
|
||||
"Local Storage"
|
||||
"SharedStorage"
|
||||
"config.json"
|
||||
"ephemeral.json"
|
||||
"Preferences"
|
||||
])
|
||||
);
|
||||
|
||||
excludeHomeManagerSymlinks = true;
|
||||
|
||||
@ -2,166 +2,183 @@
|
||||
config,
|
||||
pkgs,
|
||||
homeDirectory,
|
||||
...
|
||||
}:
|
||||
{
|
||||
prefer-no-csd = true;
|
||||
programs.niri = {
|
||||
package = pkgs.niri-unstable;
|
||||
settings = {
|
||||
prefer-no-csd = true;
|
||||
|
||||
spawn-at-startup = [
|
||||
# waybar
|
||||
{ command = [ "${pkgs.waybar}/bin/waybar" ]; }
|
||||
|
||||
# swaybg works on more than just sway (sets a wallpaper)
|
||||
{
|
||||
command = [
|
||||
"${pkgs.swaybg}/bin/swaybg"
|
||||
"-m"
|
||||
"center"
|
||||
"-i"
|
||||
"${homeDirectory}/.wallpaper.png"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
window-rules = [
|
||||
{ draw-border-with-background = false; }
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
top-left = 10.0;
|
||||
top-right = 10.0;
|
||||
bottom-right = 10.0;
|
||||
bottom-left = 10.0;
|
||||
environment = {
|
||||
DISPLAY = ":0";
|
||||
};
|
||||
}
|
||||
{ clip-to-geometry = true; }
|
||||
];
|
||||
|
||||
binds = with config.lib.niri.actions; {
|
||||
# application launcher
|
||||
"Mod+Space".action = spawn [
|
||||
"${pkgs.rofi-wayland}/bin/rofi"
|
||||
"-show"
|
||||
"combi"
|
||||
];
|
||||
spawn-at-startup = [
|
||||
# waybar
|
||||
{ command = [ "${pkgs.waybar}/bin/waybar" ]; }
|
||||
|
||||
# open a terminal
|
||||
"Mod+T".action = spawn "${pkgs.alacritty}/bin/alacritty";
|
||||
# swaybg works on more than just sway (sets a wallpaper)
|
||||
{
|
||||
command = [
|
||||
"${pkgs.swaybg}/bin/swaybg"
|
||||
"-m"
|
||||
"center"
|
||||
"-i"
|
||||
"${homeDirectory}/.wallpaper.png"
|
||||
];
|
||||
}
|
||||
|
||||
# lock the screen
|
||||
"Mod+X".action = spawn "${pkgs.swaylock}/bin/swaylock";
|
||||
{
|
||||
command = [
|
||||
"${pkgs.xwayland-satellite-unstable}/bin/xwayland-satellite"
|
||||
(builtins.toString config.programs.niri.settings.environment.DISPLAY)
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
# screenshotting
|
||||
"Print".action = screenshot;
|
||||
"Ctrl+Print".action = screenshot-screen;
|
||||
"Alt+Print".action = screenshot-window;
|
||||
window-rules = [
|
||||
{ draw-border-with-background = false; }
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
top-left = 10.0;
|
||||
top-right = 10.0;
|
||||
bottom-right = 10.0;
|
||||
bottom-left = 10.0;
|
||||
};
|
||||
}
|
||||
{ clip-to-geometry = true; }
|
||||
];
|
||||
|
||||
# Volume control
|
||||
"XF86AudioRaiseVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"up"
|
||||
];
|
||||
"XF86AudioLowerVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"down"
|
||||
];
|
||||
"XF86AudioMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"toggle-mute"
|
||||
];
|
||||
"XF86AudioMicMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-m"
|
||||
"toggle-mute"
|
||||
];
|
||||
binds = with config.lib.niri.actions; {
|
||||
# application launcher
|
||||
"Mod+Space".action = spawn [
|
||||
"${pkgs.rofi-wayland}/bin/rofi"
|
||||
"-show"
|
||||
"combi"
|
||||
];
|
||||
|
||||
#Display Brightness control
|
||||
"XF86MonBrightnessUp".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"up"
|
||||
];
|
||||
"XF86MonBrightnessDown".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"down"
|
||||
];
|
||||
# open a terminal
|
||||
"Mod+T".action = spawn "${pkgs.alacritty}/bin/alacritty";
|
||||
|
||||
# Force close a window
|
||||
"Mod+Q".action = close-window;
|
||||
# lock the screen
|
||||
"Mod+X".action = spawn "${pkgs.swaylock}/bin/swaylock";
|
||||
|
||||
"Mod+Shift+Q".action = quit;
|
||||
# screenshotting
|
||||
"Print".action = screenshot;
|
||||
"Ctrl+Print".action = screenshot-screen;
|
||||
"Alt+Print".action = screenshot-window;
|
||||
|
||||
# bindings for like window management ig
|
||||
# Volume control
|
||||
"XF86AudioRaiseVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"up"
|
||||
];
|
||||
"XF86AudioLowerVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"down"
|
||||
];
|
||||
"XF86AudioMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"toggle-mute"
|
||||
];
|
||||
"XF86AudioMicMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-m"
|
||||
"toggle-mute"
|
||||
];
|
||||
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Down".action = focus-window-down;
|
||||
"Mod+Up".action = focus-window-up;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
#Display Brightness control
|
||||
"XF86MonBrightnessUp".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"up"
|
||||
];
|
||||
"XF86MonBrightnessDown".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"down"
|
||||
];
|
||||
|
||||
"Mod+H".action = focus-column-left;
|
||||
"Mod+J".action = focus-window-down;
|
||||
"Mod+K".action = focus-window-up;
|
||||
"Mod+L".action = focus-column-right;
|
||||
# Force close a window
|
||||
"Mod+Q".action = close-window;
|
||||
|
||||
"Mod+Ctrl+Left".action = move-column-left;
|
||||
"Mod+Ctrl+Down".action = move-window-down;
|
||||
"Mod+Ctrl+Up".action = move-window-up;
|
||||
"Mod+Ctrl+Right".action = move-column-right;
|
||||
"Mod+Shift+Q".action = quit;
|
||||
|
||||
"Mod+Ctrl+H".action = move-column-left;
|
||||
"Mod+Ctrl+J".action = move-window-down;
|
||||
"Mod+Ctrl+K".action = move-window-up;
|
||||
"Mod+Ctrl+L".action = move-column-right;
|
||||
# bindings for like window management ig
|
||||
|
||||
#fine adjustments to height and width of window
|
||||
"Mod+Minus".action = set-column-width "-10%";
|
||||
"Mod+Equal".action = set-column-width "+10%";
|
||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Down".action = focus-window-down;
|
||||
"Mod+Up".action = focus-window-up;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
|
||||
"Mod+Home".action = focus-column-first;
|
||||
"Mod+End".action = focus-column-last;
|
||||
"Mod+Ctrl+Home".action = move-column-to-first;
|
||||
"Mod+Ctrl+End".action = move-column-to-last;
|
||||
"Mod+H".action = focus-column-left;
|
||||
"Mod+J".action = focus-window-down;
|
||||
"Mod+K".action = focus-window-up;
|
||||
"Mod+L".action = focus-column-right;
|
||||
|
||||
"Mod+Shift+Left".action = focus-monitor-left;
|
||||
"Mod+Shift+Down".action = focus-monitor-down;
|
||||
"Mod+Shift+Up".action = focus-monitor-up;
|
||||
"Mod+Shift+Right".action = focus-monitor-right;
|
||||
"Mod+Ctrl+Left".action = move-column-left;
|
||||
"Mod+Ctrl+Down".action = move-window-down;
|
||||
"Mod+Ctrl+Up".action = move-window-up;
|
||||
"Mod+Ctrl+Right".action = move-column-right;
|
||||
|
||||
"Mod+Shift+H".action = focus-monitor-left;
|
||||
"Mod+Shift+J".action = focus-monitor-down;
|
||||
"Mod+Shift+K".action = focus-monitor-up;
|
||||
"Mod+Shift+L".action = focus-monitor-right;
|
||||
"Mod+Ctrl+H".action = move-column-left;
|
||||
"Mod+Ctrl+J".action = move-window-down;
|
||||
"Mod+Ctrl+K".action = move-window-up;
|
||||
"Mod+Ctrl+L".action = move-column-right;
|
||||
|
||||
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
||||
#fine adjustments to height and width of window
|
||||
"Mod+Minus".action = set-column-width "-10%";
|
||||
"Mod+Equal".action = set-column-width "+10%";
|
||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
||||
|
||||
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
||||
"Mod+Home".action = focus-column-first;
|
||||
"Mod+End".action = focus-column-last;
|
||||
"Mod+Ctrl+Home".action = move-column-to-first;
|
||||
"Mod+Ctrl+End".action = move-column-to-last;
|
||||
|
||||
"Mod+Page_Down".action = focus-workspace-down;
|
||||
"Mod+Page_Up".action = focus-workspace-up;
|
||||
"Mod+U".action = focus-workspace-down;
|
||||
"Mod+I".action = focus-workspace-up;
|
||||
"Mod+Shift+Left".action = focus-monitor-left;
|
||||
"Mod+Shift+Down".action = focus-monitor-down;
|
||||
"Mod+Shift+Up".action = focus-monitor-up;
|
||||
"Mod+Shift+Right".action = focus-monitor-right;
|
||||
|
||||
#move a window up and down workspaces
|
||||
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
||||
"Mod+Shift+H".action = focus-monitor-left;
|
||||
"Mod+Shift+J".action = focus-monitor-down;
|
||||
"Mod+Shift+K".action = focus-monitor-up;
|
||||
"Mod+Shift+L".action = focus-monitor-right;
|
||||
|
||||
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
||||
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
||||
|
||||
#does little squeeze thing into the left or right position with another window
|
||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
||||
|
||||
"Mod+R".action = switch-preset-column-width;
|
||||
"Mod+F".action = maximize-column;
|
||||
"Mod+Shift+F".action = fullscreen-window;
|
||||
"Mod+C".action = center-column;
|
||||
"Mod+Page_Down".action = focus-workspace-down;
|
||||
"Mod+Page_Up".action = focus-workspace-up;
|
||||
"Mod+U".action = focus-workspace-down;
|
||||
"Mod+I".action = focus-workspace-up;
|
||||
|
||||
#move a window up and down workspaces
|
||||
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
||||
|
||||
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
||||
|
||||
#does little squeeze thing into the left or right position with another window
|
||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||
|
||||
"Mod+R".action = switch-preset-column-width;
|
||||
"Mod+F".action = maximize-column;
|
||||
"Mod+Shift+F".action = fullscreen-window;
|
||||
"Mod+C".action = center-column;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -6,7 +6,10 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./gui.nix ];
|
||||
imports = [
|
||||
./gui.nix
|
||||
./progs/niri.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
wdisplays
|
||||
@ -16,7 +19,8 @@
|
||||
# manage bluetooth devices
|
||||
blueman
|
||||
|
||||
niri
|
||||
# used by /etc/nixos logic to launch niri
|
||||
config.programs.niri.package
|
||||
];
|
||||
|
||||
# bluetooth manager
|
||||
@ -28,11 +32,6 @@
|
||||
package = pkgs.dunst;
|
||||
};
|
||||
|
||||
# window manager
|
||||
programs.niri = {
|
||||
settings = import ./progs/niri.nix { inherit config pkgs homeDirectory; };
|
||||
};
|
||||
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
settings = import ./progs/swaylock.nix;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user