stuff for sure
This commit is contained in:
24
flake.lock
generated
24
flake.lock
generated
@@ -89,11 +89,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723685697,
|
||||
"narHash": "sha256-Fp0MmV8FWrWFzYkLzPhkrc7Lj3NhMThCceDiETqEp9k=",
|
||||
"lastModified": 1723813484,
|
||||
"narHash": "sha256-nL9jkzzkArUr4XRqIohBlgAkQKfLsq9nzYrd/Dh+IRo=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "4e1950ec1b6ff25a0f20ff590bf22a3065b62022",
|
||||
"rev": "7d3dd56cca20e409261ff8c69867d38376f7ecae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -735,11 +735,11 @@
|
||||
},
|
||||
"nixpkgs-stable_3": {
|
||||
"locked": {
|
||||
"lastModified": 1723556749,
|
||||
"narHash": "sha256-+CHVZnTnIYRLYsARInHYoWkujzcRkLY/gXm3s5bE52o=",
|
||||
"lastModified": 1723688146,
|
||||
"narHash": "sha256-sqLwJcHYeWLOeP/XoLwAtYjr01TISlkOfz+NG82pbdg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4a92571f9207810b559c9eac203d1f4d79830073",
|
||||
"rev": "c3d4ac725177c030b1e289015989da2ad9d56af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -799,11 +799,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1723362943,
|
||||
"narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=",
|
||||
"lastModified": 1723637854,
|
||||
"narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a58bc8ad779655e790115244571758e8de055e3d",
|
||||
"rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -1057,11 +1057,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723602049,
|
||||
"narHash": "sha256-Z/noCSn9WPkv7O77dWKLcBxe4Ub4bWyNzsL5JhjaQfw=",
|
||||
"lastModified": 1723688259,
|
||||
"narHash": "sha256-WzeUR1MG9MnJnh9T7qcVe/v12qHvJvzdc3Z5HCeE2ns=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "ea0bf33a11a26a62c60123c49d96011da396602c",
|
||||
"rev": "6e75319846684326d900daff1e2e11338cc80d2b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
outputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
configLimit = 5;
|
||||
default = "@saved";
|
||||
kernel = pkgs.linuxPackages_latest;
|
||||
in
|
||||
{
|
||||
# Configure bootloader with lanzaboot and secureboot
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = false;
|
||||
configurationLimit = 2;
|
||||
enable = lib.mkForce false;
|
||||
};
|
||||
|
||||
efi = {
|
||||
@@ -24,14 +22,13 @@
|
||||
enable = true;
|
||||
pkiBundle = "/etc/secureboot";
|
||||
settings = {
|
||||
default = "@saved";
|
||||
default = default;
|
||||
console-mode = "max";
|
||||
};
|
||||
configurationLimit = 5;
|
||||
configurationLimit = configLimit;
|
||||
};
|
||||
|
||||
# Override kernel to latest
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernelPackages = kernel;
|
||||
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{
|
||||
config,
|
||||
outputs,
|
||||
# outputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
@@ -35,28 +35,15 @@ in
|
||||
./filesystems.nix
|
||||
./sops.nix
|
||||
../default.nix
|
||||
|
||||
# specialisations
|
||||
./cosmic
|
||||
./hyprland
|
||||
./gnome
|
||||
];
|
||||
|
||||
specialisation = {
|
||||
apps.discover-wrapped.enable = lib.mkDefault false;
|
||||
|
||||
cosmic.configuration = {
|
||||
services = {
|
||||
desktopManager.cosmic.enable = true;
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
|
||||
# disable plasma
|
||||
displayManager.sddm.enable = false;
|
||||
desktopManager.plasma6.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
apps.discover-wrapped.enable = false;
|
||||
|
||||
nix.settings.trusted-users = [ "root" "matt" ];
|
||||
nix.settings.trusted-users = lib.mkDefault [ "root" user ];
|
||||
|
||||
services = {
|
||||
# Enable Desktop Environment.
|
||||
@@ -76,8 +63,8 @@ in
|
||||
# xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ];
|
||||
|
||||
share.hardware.amd = {
|
||||
enable = true;
|
||||
lact.enable = true;
|
||||
enable = lib.mkDefault true;
|
||||
lact.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
share.gaming.enable = true;
|
||||
@@ -86,14 +73,14 @@ in
|
||||
services = {
|
||||
# Enable the X11 windowing system.
|
||||
xserver = {
|
||||
enable = true;
|
||||
enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
# enable auto discovery of printers
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
enable = lib.mkDefault true;
|
||||
nssmdns4 = lib.mkDefault true;
|
||||
openFirewall = lib.mkDefault true;
|
||||
};
|
||||
|
||||
borgbackup.jobs.home-matt = {
|
||||
@@ -111,8 +98,8 @@ in
|
||||
};
|
||||
|
||||
btrfs = {
|
||||
autoScrub.enable = true;
|
||||
autoScrub.fileSystems = [
|
||||
autoScrub.enable = lib.mkDefault true;
|
||||
autoScrub.fileSystems = lib.mkDefault [
|
||||
"/nix"
|
||||
"/root"
|
||||
"/etc"
|
||||
@@ -121,12 +108,13 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
ratbagd.enable = true;
|
||||
ratbagd.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
systemd = {
|
||||
services = {
|
||||
fix-wifi = {
|
||||
enable = lib.mkDefault true;
|
||||
path = [
|
||||
pkgs.bash
|
||||
pkgs.networkmanager
|
||||
@@ -143,6 +131,7 @@ in
|
||||
|
||||
user.services = {
|
||||
rclone-home-proton = {
|
||||
enable = lib.mkDefault true;
|
||||
path = [ pkgs.bash pkgs.rclone ];
|
||||
script = ''
|
||||
rclone sync /home/matt proton-drive:backup-nix --exclude '/home/matt/Games/**' --exclude '/home/matt/1TB/**' --exclude '/home/matt/Downloads/**'
|
||||
@@ -150,6 +139,7 @@ in
|
||||
};
|
||||
|
||||
rsync-home = {
|
||||
enable = lib.mkDefault true;
|
||||
path = [ pkgs.bash pkgs.rsync pkgs.openssh ];
|
||||
script = ''
|
||||
rsync -rtpogvPlHzs --ignore-existing --exclude={'/home/matt/Games', '/home/matt/1TB', '/home/matt/Downloads/*', '/home/matt/.cache'} -e ssh /home/matt admin@10.0.1.18:/media/nas/main/backup/desktop-nix/home
|
||||
@@ -163,19 +153,19 @@ in
|
||||
hostName = hostname;
|
||||
|
||||
# Enable Network Manager
|
||||
networkmanager.enable = true;
|
||||
networkmanager.wifi.powersave = false;
|
||||
networkmanager.settings.connectivity.uri = "http://nmcheck.gnome.org/check_network_status.txt";
|
||||
networkmanager.enable = lib.mkDefault true;
|
||||
networkmanager.wifi.powersave = lib.mkDefault false;
|
||||
networkmanager.settings.connectivity.uri = lib.mkDefault "http://nmcheck.gnome.org/check_network_status.txt";
|
||||
};
|
||||
|
||||
# Time config
|
||||
time = {
|
||||
hardwareClockInLocalTime = false;
|
||||
hardwareClockInLocalTime = lib.mkDefault false;
|
||||
};
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.libvirtd.enable = lib.mkDefault true;
|
||||
|
||||
programs.gamemode.enable = true;
|
||||
programs.gamemode.enable = lib.mkDefault true;
|
||||
|
||||
# Configure environment
|
||||
environment = {
|
||||
@@ -217,7 +207,7 @@ in
|
||||
wineWowPackages.waylandFull
|
||||
];
|
||||
|
||||
sessionVariables = {
|
||||
sessionVariables = lib.mkDefault {
|
||||
STEAM_FORCE_DESKTOPUI_SCALING = "1";
|
||||
};
|
||||
|
||||
@@ -230,7 +220,7 @@ in
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users."${user}" = {
|
||||
isNormalUser = true;
|
||||
isNormalUser = lib.mkDefault true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
|
||||
13
hosts/desktop/cosmic/default.nix
Normal file
13
hosts/desktop/cosmic/default.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
specialisation.cosmic.configuration = {
|
||||
services = {
|
||||
desktopManager.cosmic.enable = true;
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
|
||||
# disable plasma
|
||||
displayManager.sddm.enable = false;
|
||||
desktopManager.plasma6.enable = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,11 +2,11 @@
|
||||
let
|
||||
shellAliases = {
|
||||
ll = "ls -alh";
|
||||
update = "sudo nixos-rebuild switch --max-jobs 10";
|
||||
update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18";
|
||||
update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18";
|
||||
update-flake = "sudo nix flake update ~/nix-config";
|
||||
update-specialisation = "sudo nixos-rebuild switch --specialisation --max-jobs 10";
|
||||
nas-update = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host localhost --flake ~/nix-config#jallen-nas";
|
||||
nas-ssh = "ssh admin@10.0.1.18";
|
||||
update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas";
|
||||
nas-ssh = "kitten ssh admin@10.0.1.18";
|
||||
};
|
||||
|
||||
gitAliases = {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color_theme = "~/.config/btop/themes/catppuccin_macchiato.theme";
|
||||
color_theme = "/home/matt/.config/btop/themes/catppuccin_macchiato.theme";
|
||||
theme_background = true;
|
||||
truecolor = true;
|
||||
force_tty = false;
|
||||
|
||||
@@ -5,7 +5,13 @@
|
||||
systemd.enable = true;
|
||||
|
||||
settings = {
|
||||
"$mainMod" = "SUPER";
|
||||
"$mod" = "SUPER";
|
||||
|
||||
# Mouse
|
||||
# mouse_[up|down] - scroll wheel
|
||||
# middle_mouse - 274
|
||||
# thumb_up - 276
|
||||
# thumb_down - 275
|
||||
|
||||
# l -> locked, will also work when an input inhibitor (e.g. a lockscreen) is active.
|
||||
# r -> release, will trigger on release of a key.
|
||||
@@ -18,66 +24,71 @@
|
||||
# d -> has description, will allow you to write a description for your bind.
|
||||
# p -> bypasses the app's requests to inhibit keybinds.
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Binds/
|
||||
# https://wiki.hyprland.org/Configuring/Binds/#mouse-buttons
|
||||
|
||||
bind = [
|
||||
"$mainMod, Return, exec, kitty"
|
||||
"$mainMod, Q, killactive, "
|
||||
"$mainMod, M, exec, wlogout --protocol layer-shell"
|
||||
"$mainMod, E, exec, nautilus"
|
||||
"$mainMod, V, togglefloating, "
|
||||
"$mainMod, D, exec, wofi --show drun"
|
||||
"$mainMod, P, pseudo, "# dwindle
|
||||
"$mainMod, S, togglesplit, "# dwindle
|
||||
"$mainMod SHIFT, Q, exec, hyprlock"
|
||||
"$mod, Return, exec, kitty"
|
||||
"$mod, Q, killactive, "
|
||||
"$mod, mouse:274, killactive, "
|
||||
"$mod, M, exec, wlogout --protocol layer-shell"
|
||||
"$mod, E, exec, nautilus"
|
||||
"$mod, V, togglefloating, "
|
||||
"$mod, D, exec, wofi --show drun"
|
||||
"$mod, P, pseudo, "# dwindle
|
||||
"$mod, S, togglesplit, "# dwindle
|
||||
"$mod SHIFT, Q, exec, hyprlock"
|
||||
", PRINT, exec, hyprshot -m region --clipboard-only"
|
||||
"$mod,F,exec,hyprctl dispatch fullscreen active"
|
||||
|
||||
# alt-tab between workspaces on active monitor
|
||||
"ALT, Tab, workspace, m+1"
|
||||
"ALT SHIFT, Tab, workspace, m-1"
|
||||
|
||||
"$mainMod, h, movefocus, l"
|
||||
"$mainMod, l, movefocus, r"
|
||||
"$mainMod, k, movefocus, u"
|
||||
"$mainMod, j, movefocus, d"
|
||||
"$mod, h, movefocus, l"
|
||||
"$mod, l, movefocus, r"
|
||||
"$mod, k, movefocus, u"
|
||||
"$mod, j, movefocus, d"
|
||||
|
||||
"$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"
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 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"
|
||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mod SHIFT, 0, movetoworkspace, discord"
|
||||
|
||||
"$mainMod CTRL, l, resizeactive, 10 0"
|
||||
"$mainMod CTRL, h, resizeactive, -10 0"
|
||||
"$mainMod CTRL, k, resizeactive, 0 -10"
|
||||
"$mainMod CTRL, j, resizeactive, 0 10"
|
||||
"$mod CTRL, l, resizeactive, 10 0"
|
||||
"$mod CTRL, h, resizeactive, -10 0"
|
||||
"$mod CTRL, k, resizeactive, 0 -10"
|
||||
"$mod CTRL, j, resizeactive, 0 10"
|
||||
|
||||
"$mainMod SHIFT, l, movewindow, r"
|
||||
"$mainMod SHIFT, h, movewindow, l"
|
||||
"$mainMod SHIFT, k, movewindow, u"
|
||||
"$mainMod SHIFT, j, movewindow, d"
|
||||
"$mod SHIFT, l, movewindow, r"
|
||||
"$mod SHIFT, h, movewindow, l"
|
||||
"$mod SHIFT, k, movewindow, u"
|
||||
"$mod SHIFT, j, movewindow, d"
|
||||
|
||||
"$mainMod, b, exec, firefox"
|
||||
"$mod, b, exec, firefox"
|
||||
];
|
||||
|
||||
bindm = [
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
"$mainMod, mouse:272, movewindow"
|
||||
"$mainMod, mouse:273, resizewindow"
|
||||
# Move/resize windows with mod + LMB/RMB and dragging
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
|
||||
bindel =[
|
||||
@@ -104,7 +115,7 @@
|
||||
"col.active_border" = "rgb(8aadf4) rgb(24273A) rgb(24273A) rgb(8aadf4) 45deg";
|
||||
"col.inactive_border" = "rgb(24273A) rgb(24273A) rgb(24273A) rgb(24273A) 45deg";
|
||||
layout = "dwindle";
|
||||
allow_tearing = false;
|
||||
allow_tearing = true;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
@@ -153,6 +164,11 @@
|
||||
force_default_wallpaper = 0;
|
||||
};
|
||||
|
||||
workspace = [
|
||||
"name: discord, monitor:DP-2, default:true"
|
||||
"name: steam, monitor:DP-2, default:false"
|
||||
];
|
||||
|
||||
windowrule = [
|
||||
"float, file_progress"
|
||||
"float, confirm"
|
||||
@@ -164,28 +180,53 @@
|
||||
"float, confirmreset"
|
||||
"float, title:Open File"
|
||||
"float, title:branchdialog"
|
||||
"float,viewnior"
|
||||
"float, pavucontrol-qt"
|
||||
"float, pavucontrol"
|
||||
"move onscreen cursor 0% 0%, pavucontrol"
|
||||
"float, file-roller"
|
||||
"fullscreen, wlogout"
|
||||
"float, title:wlogout"
|
||||
"fullscreen, title:wlogout"
|
||||
"idleinhibit stayfocused, mpv"
|
||||
];
|
||||
"fullscreen, title:BBar"
|
||||
"fullscreen, title:Remote Desktop Connection"
|
||||
"norounding, class:Remote Desktop Connection"
|
||||
"noshadow, class:Remote Desktop Connection"
|
||||
"immediate, class:Remote Desktop Connection"
|
||||
"syncfullscreen, class:Remote Desktop Connection"
|
||||
"allowsinput, class:Remote Desktop Connection"
|
||||
"noanim, class:Remote Desktop Connection"
|
||||
"noblur, class:Remote Desktop Connection"
|
||||
"noborder, class:Remote Desktop Connection"
|
||||
"nodim, class:Remote Desktop Connection"
|
||||
"nomaxsize, class:Remote Desktop Connection"
|
||||
"minsize 3840 2160, class:Remote Desktop Connection"
|
||||
];
|
||||
windowrulev2 = [
|
||||
"float, class:Vmware-view,title:VMware Horizon Client"
|
||||
"size 3840 2160, class:Remote Desktop Connection"
|
||||
# "float, class:Remote Desktop Connection,title:BBar"
|
||||
# "float, class:Remote Desktop Connection,title:Remote Desktop Connection"
|
||||
"float, class:Credential Manager UI Host,title:Windows Security"
|
||||
"float, title:^(Media viewer)$"
|
||||
# Picture in picture windows
|
||||
# "float, class:pavucontrol,title:pavucontrol" # ?????
|
||||
"float, title:^(Picture-in-Picture)$"
|
||||
"pin, title:^(Picture-in-Picture)$"
|
||||
"float, class:^(vesktop)$,title:^(Discord Popout)$"
|
||||
"pin, class:^(vesktop)$,title:^(Discord Popout)$"
|
||||
"float, class:^(steam)$,title:^(Friends List)$"
|
||||
# Workspace assign
|
||||
"workspace: 1, class:^(kitty)$"
|
||||
"workspace: 2, class:^(firefox)$"
|
||||
"workspace: 5, class:^(steam)$"
|
||||
"workspace: 10, class:^(vesktop)$"
|
||||
# "workspace: 1, class:^(kitty)$"
|
||||
# "workspace: name:discord, class:^(firefox)$"
|
||||
"workspace: name:discord, class:^(vesktop)$"
|
||||
|
||||
# Steam
|
||||
"float, class:^([Ss]team)$, title:^((?![Ss]team).*)$"
|
||||
"workspace name:steam silent, class:^([Ss]team)$, title:^([Ss]team)$"
|
||||
"tile, class:^([Ss]team)$, title:^([Ss]team)$"
|
||||
|
||||
# Game Tearing??? https://wiki.hyprland.org/Configuring/Tearing/
|
||||
"immediate, class:gamescope"
|
||||
];
|
||||
|
||||
|
||||
@@ -214,9 +255,10 @@
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = nwg-look -a
|
||||
exec-once = [workspace 2 silent] firefox
|
||||
exec-once = [workspace 10 silent] vesktop
|
||||
exec-once = [workspace 5 silent] steam
|
||||
exec-once = [workspace name:discord silent] firefox
|
||||
exec-once = [workspace name:discord silent] vesktop
|
||||
exec-once = [workspace name:discord silent] spotify
|
||||
exec-once = [workspace name:steam silent] steam
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
{
|
||||
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
layer = "bottom";
|
||||
position = "top";
|
||||
mod = "dock";
|
||||
exclusive = true;
|
||||
@@ -67,6 +69,7 @@
|
||||
tooltip = false;
|
||||
format-muted = " Muted";
|
||||
on-click = "pamixer -t";
|
||||
on-click-right = "pavucontrol -t 1";
|
||||
on-scroll-up = "pamixer -i 5";
|
||||
on-scroll-down = "pamixer -d 5";
|
||||
scroll-step = 5;
|
||||
@@ -86,6 +89,7 @@
|
||||
format-source = "🎙{volume}%";
|
||||
format-source-muted = "🎙Muted";
|
||||
on-click = "pamixer --default-source -t";
|
||||
on-click-right = "pavucontrol -t 2";
|
||||
on-scroll-up = "pamixer --default-source -i 5";
|
||||
on-scroll-down = "pamixer --default-source -d 5";
|
||||
scroll-step = 5;
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
sddmTheme = "catppuccin-mocha";
|
||||
in
|
||||
{
|
||||
specialisation.hyprland.configuration = {
|
||||
imports = [
|
||||
@@ -10,12 +13,14 @@
|
||||
services = {
|
||||
displayManager.sddm.enable = true;
|
||||
displayManager.sddm.package = pkgs.kdePackages.sddm;
|
||||
displayManager.sddm.theme = "catppuccin-mocha";
|
||||
displayManager.sddm.theme = sddmTheme;
|
||||
displayManager.defaultSession = "hyprland";
|
||||
# disable plasma
|
||||
desktopManager.plasma6.enable = false;
|
||||
|
||||
dbus.enable = true;
|
||||
|
||||
ddccontrol.enable = true;
|
||||
};
|
||||
|
||||
programs.hyprland = {
|
||||
|
||||
@@ -17,6 +17,7 @@ in
|
||||
catppuccin-sddm
|
||||
colloid-gtk-theme
|
||||
colloid-icon-theme
|
||||
ddcutil
|
||||
dunst
|
||||
glib
|
||||
gnome-disk-utility
|
||||
@@ -31,6 +32,7 @@ in
|
||||
nwg-look
|
||||
pamixer
|
||||
papirus-folders
|
||||
pavucontrol
|
||||
playerctl
|
||||
polkit
|
||||
polkit_gnome
|
||||
@@ -41,6 +43,7 @@ in
|
||||
waybarWeatherScript
|
||||
wayland-protocols
|
||||
wayland-utils
|
||||
wev
|
||||
wl-clipboard
|
||||
wlogout
|
||||
wlroots
|
||||
|
||||
@@ -1,4 +1,21 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
wallpaper = "/home/matt/.config/wallpapers/wall.png";
|
||||
cursorTheme = "macOS-Monterey";
|
||||
cursorThemePkg = pkgs.apple-cursor;
|
||||
cursorSize = 24;
|
||||
gtkThemeSize = "compact";
|
||||
gtkThemeAccent = "blue";
|
||||
gtkThemeVariant = "macchiato";
|
||||
gtkTheme = "catppuccin-${gtkThemeVariant}-${gtkThemeAccent}-${gtkThemeSize}";
|
||||
gtkThemePkg = pkgs.catppuccin-gtk.override {
|
||||
size = gtkThemeSize;
|
||||
accents = [ gtkThemeAccent ];
|
||||
variant = gtkThemeVariant;
|
||||
};
|
||||
iconTheme = "Colloid-dark"; # Colloid, Colloid-light, Colloid-dark
|
||||
iconThemePkg = pkgs.colloid-icon-theme;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./config.nix
|
||||
@@ -14,10 +31,10 @@
|
||||
hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
preload = [ "~/.config/wallpapers/wall.png" ];
|
||||
preload = [ wallpaper ];
|
||||
wallpaper = [
|
||||
"DP-1, ~/.config/wallpapers/wall.png"
|
||||
"DP-2, ~/.config/wallpapers/wall.png"
|
||||
"DP-1, ${wallpaper}"
|
||||
"DP-2, ${wallpaper}"
|
||||
];
|
||||
splash = false;
|
||||
};
|
||||
@@ -27,13 +44,29 @@
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on";
|
||||
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
|
||||
after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
|
||||
ignore_dbus_inhibit = false;
|
||||
lock_cmd = "hyprlock";
|
||||
lock_cmd = "pidof hyprlock || hyprlock"; # avoid starting multiple hyprlock instances.
|
||||
};
|
||||
listener = [
|
||||
# {
|
||||
# timeout = 300; # 5min
|
||||
# on-timeout = "brightnessctl -s set 10"; # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
# on-resume = "brightnessctl -r"; # monitor backlight restore.
|
||||
# }
|
||||
{
|
||||
timeout = 3600;
|
||||
timeout = 900; # 15 min
|
||||
on-timeout = "loginctl lock-session"; # lock screen when timeout has passed
|
||||
}
|
||||
{
|
||||
timeout = 930; # 15.5 min
|
||||
on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
|
||||
on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
{
|
||||
timeout = 3600; # 1hr
|
||||
on-timeout = "systemctl suspend"; # suspend pc
|
||||
}
|
||||
];
|
||||
};
|
||||
@@ -46,7 +79,7 @@
|
||||
background = [
|
||||
{
|
||||
monitor = "";
|
||||
path = "/home/matt/.config/wallpapers/wall.png"; # supports png, jpg, webp (no animations, though)
|
||||
path = wallpaper; # supports png, jpg, webp (no animations, though)
|
||||
color = "rgba(25, 20, 20, 1.0)";
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
@@ -63,12 +96,13 @@
|
||||
{
|
||||
size = "200, 50";
|
||||
position = "0, -80";
|
||||
monitor = "";
|
||||
monitor = "DP-1";
|
||||
dots_center = true;
|
||||
fade_on_empty = false;
|
||||
fade_on_empty = true;
|
||||
font_color = "rgb(202, 211, 245)";
|
||||
inner_color = "rgb(91, 96, 120)";
|
||||
outer_color = "rgb(24, 25, 38)";
|
||||
bothlock_color = -1;
|
||||
outline_thickness = 5;
|
||||
placeholder_text = ''<span foreground="##cad3f5">Password...</span>'';
|
||||
shadow_passes = 2;
|
||||
@@ -94,9 +128,9 @@
|
||||
# WLR_NO_HARDWARE_CURSORS = "1";
|
||||
CLUTTER_BACKEND = "wayland";
|
||||
# WLR_RENDERER = "vulkan";
|
||||
XCURSOR_THEME = "macOS-Monterey";
|
||||
XCURSOR_SIZE = "24";
|
||||
GTK_THEME="catppuccin-macchiato-blue-compact";
|
||||
XCURSOR_THEME = cursorTheme;
|
||||
XCURSOR_SIZE = cursorSize;
|
||||
GTK_THEME = gtkTheme;
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
@@ -110,31 +144,27 @@
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.apple-cursor;
|
||||
name = "macOS-Monterey";
|
||||
size = 24;
|
||||
package = cursorThemePkg;
|
||||
name = cursorTheme;
|
||||
size = cursorSize;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
cursorTheme = {
|
||||
name = "macOS-Monterey"; # macOS-[BigSur, Monterey]-[ , White, White-Windows, Windows]
|
||||
package = pkgs.apple-cursor;
|
||||
name = cursorTheme; # macOS-[BigSur, Monterey]-[ , White, White-Windows, Windows]
|
||||
package = cursorThemePkg;
|
||||
};
|
||||
|
||||
theme = {
|
||||
name = "catppuccin-macchiato-blue-compact";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
size = "compact";
|
||||
accents = ["blue"];
|
||||
variant = "macchiato";
|
||||
};
|
||||
name = gtkTheme;
|
||||
package = gtkThemePkg;
|
||||
};
|
||||
|
||||
iconTheme = {
|
||||
name = "Colloid-dark"; # Colloid, Colloid-light, Colloid-dark
|
||||
package = pkgs.colloid-icon-theme;
|
||||
name = iconTheme;
|
||||
package = iconThemePkg;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
|
||||
@@ -66,5 +66,8 @@
|
||||
tdarr.enable = true;
|
||||
|
||||
vscode.enable = true;
|
||||
|
||||
wireguard.enable = true;
|
||||
wireguard.configPath = "/media/nas/ssd/nix-app-data/wireguard/sidestore";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
fsType = "tmpfs";
|
||||
options = [
|
||||
"defaults"
|
||||
"size=32G"
|
||||
"size=256G"
|
||||
"mode=755"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -21,6 +21,7 @@ in
|
||||
volumes = [
|
||||
"${cfg.configPath}:/config"
|
||||
"${cfg.dataPath}:/data"
|
||||
"${cfg.tmpPath}:/data-tmp"
|
||||
"${cfg.redisSock}:/var/redis/redis.sock"
|
||||
];
|
||||
environment = {
|
||||
|
||||
@@ -39,6 +39,11 @@ with lib;
|
||||
default = "/media/nas/main/nextcloud";
|
||||
};
|
||||
|
||||
tmpPath = mkOption {
|
||||
type = types.str;
|
||||
default = "/media/nas/ssd/nix-app-data/tmp";
|
||||
};
|
||||
|
||||
redisSock = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
|
||||
33
modules/apps/wireguard/default.nix
Normal file
33
modules/apps/wireguard/default.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.nas-apps.wireguard;
|
||||
in
|
||||
{
|
||||
imports = [ ./options.nix ];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
virtualisation.oci-containers.containers."${cfg.name}" = {
|
||||
autoStart = cfg.autoStart;
|
||||
image = cfg.image;
|
||||
ports = [ "${cfg.port}:51820/udp" ];
|
||||
extraOptions = [
|
||||
"--cap-add=NET_ADMIN"
|
||||
"--sysctl=\"net.ipv4.conf.all.src_valid_mark=1\""
|
||||
];
|
||||
volumes = [
|
||||
"${cfg.configPath}:/config"
|
||||
];
|
||||
environment = {
|
||||
PUID = cfg.puid;
|
||||
PGID = cfg.pgid;
|
||||
TZ = cfg.timeZone;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
47
modules/apps/wireguard/options.nix
Normal file
47
modules/apps/wireguard/options.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{ lib, ... }:
|
||||
with lib;
|
||||
{
|
||||
options.nas-apps.wireguard = {
|
||||
enable = mkEnableOption "wireguard docker service";
|
||||
|
||||
autoStart = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.str;
|
||||
default = "51820";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = "wireguard";
|
||||
};
|
||||
|
||||
image = mkOption {
|
||||
type = types.str;
|
||||
default = "lscr.io/linuxserver/wireguard";
|
||||
};
|
||||
|
||||
configPath = mkOption {
|
||||
type = types.str;
|
||||
default = "/media/nas/ssd/nix-app-data/wireguard";
|
||||
};
|
||||
|
||||
puid = mkOption {
|
||||
type = types.str;
|
||||
default = "911";
|
||||
};
|
||||
|
||||
pgid = mkOption {
|
||||
type = types.str;
|
||||
default = "1000";
|
||||
};
|
||||
|
||||
timeZone = mkOption {
|
||||
type = types.str;
|
||||
default = "America/Chicago";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -22,5 +22,6 @@
|
||||
./apps/swag
|
||||
./apps/tdarr
|
||||
./apps/vscode
|
||||
./apps/wireguard
|
||||
];
|
||||
}
|
||||
|
||||
@@ -22,7 +22,19 @@ in
|
||||
remotePlay.openFirewall = true;
|
||||
# Open ports in the firewall for Source Dedicated Server
|
||||
dedicatedServer.openFirewall = true;
|
||||
};
|
||||
|
||||
gamescopeSession = {
|
||||
enable = true;
|
||||
args = [
|
||||
"-f"
|
||||
"-H 2160"
|
||||
"-W 3840"
|
||||
"-r 240"
|
||||
"--hdr-enabled"
|
||||
"--adaptive-sync"
|
||||
];
|
||||
};
|
||||
};#"gamescope -f -H 2160 -W 3840 -r 240 --adaptive-sync --hdr-enabled
|
||||
|
||||
# Hardware configs
|
||||
hardware = {
|
||||
|
||||
Reference in New Issue
Block a user