Compare commits

...

6 commits

Author SHA1 Message Date
270ebded3d Refactor config paths & update host imports
• Relocates common configurations from a user-specific directory to a global hierarchy
• Adds host-specific files and updates import paths for better modularity
• Introduces an experimental GNOME mutter feature
2025-05-27 14:44:19 -04:00
eecdf2ff1c Enable fractional scaling in gnome, Allegedly 2025-05-27 14:43:14 -04:00
a8c3b7e851 Update gaming configuration: remove video driver setting and add AMD Vulkan ICD variable 2025-05-27 14:42:22 -04:00
54ad243c75 Refactor pool.nix service script: streamline git symlink creation and remove redundant directory setup 2025-05-27 14:41:54 -04:00
41ceef3e77 Extend GNOME dconf settings: update keybindings, workspace preferences, and audio device configurations 2025-05-21 13:44:15 -04:00
6f53e978bb Update GNOME dconf settings and modify default package list 2025-05-19 21:10:04 -04:00
78 changed files with 352 additions and 177 deletions

25
flake.lock generated
View file

@ -274,11 +274,11 @@
}, },
"hardware": { "hardware": {
"locked": { "locked": {
"lastModified": 1747129300, "lastModified": 1747684167,
"narHash": "sha256-L3clA5YGeYCF47ghsI7Tcex+DnaaN/BbQ4dR2wzoiKg=", "narHash": "sha256-l6jbonaboCBlB8lCjBkrqgh2zEnvt6F3f4dOU/8CLd4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e81fd167b33121269149c57806599045fd33eeed", "rev": "e8f38b2c19c0647e39021c3d47172ff5469af8a9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -358,11 +358,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1747594704, "lastModified": 1747620037,
"narHash": "sha256-IAUIY96BaMM4o+BeMLcviBji/Xais7WfU5TIPjgPEEQ=", "narHash": "sha256-M5yyl1Cp5rolwGBuCEKXG6qJj9lao16lshqPF83z0qs=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "1c04e472eafbd37d82af17769d45932e39b37b76", "rev": "5d7985a2d5c877f6a276a2b024fff6bb2995ff24",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -626,11 +626,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1747605783, "lastModified": 1747675820,
"narHash": "sha256-4t7Kmy+CTemV9QMgLXrTkz+33y31Z1V2Cl/mrbyf6Mc=", "narHash": "sha256-Z8o3Tu/FN4GOtZl4WNY0Gcp/Uzuz06ILkRy0oPVteM0=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "c8f09c164b6490613ccee5a083f22095385bef5c", "rev": "f8833c5e0c64287cd51a27e6061a88f4225b6b70",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -749,17 +749,16 @@
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716423189, "lastModified": 1735730497,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8", "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github" "type": "github"
} }
}, },

View file

@ -3,9 +3,6 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# Pin stable vs unstable: use nixpkgs-stable for critical packages while nixpkgs follows the beta branch.
# See overlays "stable-packages" and "unstable-packages" in ./overlays/default.nix.
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
@ -79,21 +76,16 @@
inherit (self) outputs; inherit (self) outputs;
inherit (nixpkgs) lib; inherit (nixpkgs) lib;
ARM = "aarch64-linux"; # ARM systems ARM = "aarch64-linux";
X86 = "x86_64-linux"; # x86_64 systems X86 = "x86_64-linux";
#
# ========= Architectures =========
#
forAllSystems = nixpkgs.lib.genAttrs [ forAllSystems = nixpkgs.lib.genAttrs [
ARM ARM
X86 X86
]; ];
# ## Host Config ##
# ========= Host Config Functions =========
#
# Handle a given host config based on whether its underlying system is nixos or darwin
mkHost = host: isARM: { mkHost = host: isARM: {
${host} = ${host} =
let let
@ -108,14 +100,12 @@
isARM isARM
; ;
system = systemFunc; system = systemFunc;
# ========== Extend lib with lib.custom ========== # INFO: Extend lib with lib.custom; This approach allows lib.custom to propagate into hm
# NOTE: This approach allows lib.custom to propagate into hm
# see: https://github.com/nix-community/home-manager/pull/3454
lib = nixpkgs.lib.extend (self: super: { custom = import ./lib { inherit (nixpkgs) lib; }; }); lib = nixpkgs.lib.extend (self: super: { custom = import ./lib { inherit (nixpkgs) lib; }; });
}; };
modules = [ modules = [
# Apply the overlays to make custom packages available
{ {
#INFO: Overlay application for custom packages
nixpkgs.overlays = [ nixpkgs.overlays = [
self.overlays.default self.overlays.default
]; ];
@ -133,25 +123,13 @@
# Invoke mkHost for each host config that is declared for either X86 or ARM # Invoke mkHost for each host config that is declared for either X86 or ARM
mkHostConfigs = mkHostConfigs =
hosts: isARM: lib.foldl (acc: set: acc // set) { } (lib.map (host: mkHost host isARM) hosts); hosts: isARM: lib.foldl (acc: set: acc // set) { } (lib.map (host: mkHost host isARM) hosts);
# Return the hosts declared in the given directory
readHosts = folder: lib.attrNames (builtins.readDir ./hosts/${folder}); readHosts = folder: lib.attrNames (builtins.readDir ./hosts/${folder});
in in
{ {
#
# ========= Overlays =========
#
# Custom modifications/overrides to upstream packages.
overlays = import ./overlays { inherit inputs; }; overlays = import ./overlays { inherit inputs; };
#
# ========= Host Configurations =========
#
# Building configurations is available through `just rebuild` or `nixos-rebuild --flake .#hostname`
nixosConfigurations = mkHostConfigs (readHosts "nixos") false; nixosConfigurations = mkHostConfigs (readHosts "nixos") false;
# ========= Packages =========
#
# Add custom packages to be shared or upstreamed.
packages = forAllSystems ( packages = forAllSystems (
system: system:
let let

View file

@ -89,6 +89,8 @@ with lib.hm.gvariant;
"<Shift><Super>Above_Tab" "<Shift><Super>Above_Tab"
"<Shift><Alt>Above_Tab" "<Shift><Alt>Above_Tab"
]; ];
switch-input-source = [ ];
switch-input-source-backward = [ ];
switch-panels = [ "<Control><Alt>Tab" ]; switch-panels = [ "<Control><Alt>Tab" ];
switch-panels-backward = [ "<Shift><Control><Alt>Tab" ]; switch-panels-backward = [ "<Shift><Control><Alt>Tab" ];
switch-to-workspace-1 = [ ]; switch-to-workspace-1 = [ ];
@ -102,6 +104,14 @@ with lib.hm.gvariant;
unmaximize = [ ]; unmaximize = [ ];
}; };
"org/gnome/desktop/wm/preferences" = {
num-workspaces = 3;
};
"org/gnome/mutter" = {
experimental-features = [ "scale-monitor-framebuffer" ];
};
"org/gnome/nautilus/preferences" = { "org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view"; default-folder-viewer = "icon-view";
migrated-gtk-settings = true; migrated-gtk-settings = true;
@ -116,12 +126,21 @@ with lib.hm.gvariant;
}; };
"org/gnome/settings-daemon/plugins/media-keys" = { "org/gnome/settings-daemon/plugins/media-keys" = {
www = [ "<Super>w" ];
custom-keybindings = [ custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/"
]; ];
next = [ "AudioNext" ];
play = [ "AudioPlay" ];
previous = [ "AudioPrev" ];
reboot = [ "<Super>r" ];
rotate-video-lock-static = [ ];
shutdown = [ "<Super>x" ];
volume-down = [ "AudioLowerVolume" ];
volume-mute = [ "AudioMute" ];
volume-up = [ "AudioRaiseVolume" ];
www = [ "<Super>w" ];
}; };
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
@ -166,7 +185,7 @@ with lib.hm.gvariant;
"zen.desktop" "zen.desktop"
"code.desktop" "code.desktop"
"spotify.desktop" "spotify.desktop"
"vesktop.desktop" "discord.desktop"
"org.telegram.desktop.desktop" "org.telegram.desktop.desktop"
"appeditor-local-application-1.desktop" "appeditor-local-application-1.desktop"
"Ryujinx.desktop" "Ryujinx.desktop"
@ -201,6 +220,13 @@ with lib.hm.gvariant;
}; };
"org/gnome/shell/extensions/blur-my-shell/applications" = { "org/gnome/shell/extensions/blur-my-shell/applications" = {
blacklist = [
"Plank"
"com.desktop.ding"
"Conky"
".gamescope-wrapped"
"steam_app_2993780"
];
blur = true; blur = true;
dynamic-opacity = false; dynamic-opacity = false;
enable-all = true; enable-all = true;
@ -288,7 +314,9 @@ with lib.hm.gvariant;
}; };
"org/gnome/shell/extensions/pano" = { "org/gnome/shell/extensions/pano" = {
history-length = 100; global-shortcut = [ "<Super>v" ];
history-length = 500;
incognito-shortcut = [ "<Shift><Super>v" ];
is-in-incognito = false; is-in-incognito = false;
window-position = mkUint32 2; window-position = mkUint32 2;
}; };
@ -327,7 +355,23 @@ with lib.hm.gvariant;
vertical-margin = 8; vertical-margin = 8;
vertical-margin-bottom = 8; vertical-margin-bottom = 8;
window-gap = 8; window-gap = 8;
winprops = [ ]; winprops = [
''
{"wm_class":"com.mitchellh.ghostty","scratch_layer":true}
''
''
{"wm_class":"code","preferredWidth":"70%"}
''
''
{"wm_class":"discord","preferredWidth":"100%","spaceIndex":1}
''
''
{"wm_class":"org.gnome.Nautilus","scratch_layer":true}
''
''
{"wm_class":"gnome-control-center","scratch_layer":true}
''
];
}; };
"org/gnome/shell/extensions/paperwm/keybindings" = { "org/gnome/shell/extensions/paperwm/keybindings" = {
@ -344,12 +388,12 @@ with lib.hm.gvariant;
live-alt-tab-scratch = [ "" ]; live-alt-tab-scratch = [ "" ];
live-alt-tab-scratch-backward = [ "" ]; live-alt-tab-scratch-backward = [ "" ];
move-down = [ "<Shift><Super>Down" ]; move-down = [ "<Shift><Super>Down" ];
move-down-workspace = [ "" ]; move-down-workspace = [ "<Control><Super>Down" ];
move-left = [ "<Shift><Super>Left" ]; move-left = [ "<Shift><Super>Left" ];
move-monitor-above = [ "" ]; move-monitor-above = [ "" ];
move-monitor-below = [ "" ]; move-monitor-below = [ "" ];
move-monitor-left = [ "<Shift><Alt><Super>Left" ]; move-monitor-left = [ "<Control><Super>Left" ];
move-monitor-right = [ "<Shift><Alt><Super>Right" ]; move-monitor-right = [ "<Control><Super>Right" ];
move-previous-workspace = [ "" ]; move-previous-workspace = [ "" ];
move-previous-workspace-backward = [ "" ]; move-previous-workspace-backward = [ "" ];
move-right = [ "<Shift><Super>Right" ]; move-right = [ "<Shift><Super>Right" ];
@ -358,7 +402,7 @@ with lib.hm.gvariant;
move-space-monitor-left = [ "" ]; move-space-monitor-left = [ "" ];
move-space-monitor-right = [ "" ]; move-space-monitor-right = [ "" ];
move-up = [ "<Shift><Super>Up" ]; move-up = [ "<Shift><Super>Up" ];
move-up-workspace = [ "" ]; move-up-workspace = [ "<Control><Super>Up" ];
new-window = [ "<Super>n" ]; new-window = [ "<Super>n" ];
previous-workspace = [ "" ]; previous-workspace = [ "" ];
previous-workspace-backward = [ "" ]; previous-workspace-backward = [ "" ];
@ -366,7 +410,7 @@ with lib.hm.gvariant;
swap-monitor-below = [ "" ]; swap-monitor-below = [ "" ];
swap-monitor-left = [ "" ]; swap-monitor-left = [ "" ];
swap-monitor-right = [ "" ]; swap-monitor-right = [ "" ];
switch-down-workspace = [ "" ]; switch-down-workspace = [ "<Super>Page_Down" ];
switch-focus-mode = [ "<Alt><Super>a" ]; switch-focus-mode = [ "<Alt><Super>a" ];
switch-monitor-above = [ "" ]; switch-monitor-above = [ "" ];
switch-monitor-below = [ "" ]; switch-monitor-below = [ "" ];
@ -375,7 +419,7 @@ with lib.hm.gvariant;
switch-next = [ "" ]; switch-next = [ "" ];
switch-open-window-position = [ "" ]; switch-open-window-position = [ "" ];
switch-previous = [ "" ]; switch-previous = [ "" ];
switch-up-workspace = [ "" ]; switch-up-workspace = [ "<Super>Page_Up" ];
take-window = [ "" ]; take-window = [ "" ];
toggle-maximize-width = [ "" ]; toggle-maximize-width = [ "" ];
toggle-scratch = [ "<Super>BackSpace" ]; toggle-scratch = [ "<Super>BackSpace" ];
@ -418,29 +462,73 @@ with lib.hm.gvariant;
"org/gnome/shell/extensions/quicksettings-audio-devices-hider" = { "org/gnome/shell/extensions/quicksettings-audio-devices-hider" = {
available-input-names = [ available-input-names = [
"Microphone \8211 USB Live camera"
"Digital Input (S/PDIF) \8211 USB Live camera" "Digital Input (S/PDIF) \8211 USB Live camera"
"Microphone \8211 HyperX Cloud Alpha S" "Microphone \8211 HyperX Cloud Alpha S"
];
available-output-names = [
"HDMI / DisplayPort 3 \8211 HD-Audio Generic"
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
"Analog Output \8211 HyperX Cloud Alpha S"
"Digital Output (S/PDIF) \8211 HyperX Cloud Alpha S"
];
excluded-input-names = [
"Digital Input (S/PDIF) \8211 USB Live camera"
"Microphone \8211 USB Live camera" "Microphone \8211 USB Live camera"
]; ];
excluded-output-names = [ available-output-names = [
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
"Analog Output \8211 HyperX Cloud Alpha S" "Analog Output \8211 HyperX Cloud Alpha S"
"Digital Output (S/PDIF) \8211 HyperX Cloud Alpha S"
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
"HDMI / DisplayPort 3 \8211 HD-Audio Generic"
];
excluded-input-names = [
"Digital Input (S/PDIF) USB Live camera"
"Digital Input (S/PDIF) \8211 USB Live camera"
"Digital Input (S/PDIF) 8211 USB Live camera"
"Digital Input (S/PDIF) 8211 USB Live camera"
"Microphone USB Live camera"
"Microphone \8211 USB Live camera"
"Microphone 8211 USB Live camera"
"Microphone 8211 USB Live camera"
];
excluded-output-names = [
"Analog Output HyperX Cloud Alpha S"
"Analog Output \8211 HyperX Cloud Alpha S"
"Analog Output 8211 HyperX Cloud Alpha S"
"Analog Output 8211 HyperX Cloud Alpha S"
"HDMI / DisplayPort Rembrandt Radeon High Definition Audio Controller"
"HDMI / DisplayPort \8211 Rembrandt Radeon High Definition Audio Controller"
"HDMI / DisplayPort 8211 Rembrandt Radeon High Definition Audio Controller"
"HDMI / DisplayPort 8211 Rembrandt Radeon High Definition Audio Controller"
]; ];
}; };
"org/gnome/shell/extensions/quicksettings-audio-devices-renamer" = { "org/gnome/shell/extensions/quicksettings-audio-devices-renamer" = {
input-names-map = ''{'Microphone USB Live camera': 'NO', 'Digital Input (S/PDIF) USB Live camera': 'NO', 'Microphone HyperX Cloud Alpha S': 'Cloud S'}''; input-names-map = [
output-names-map = ''{'HDMI / DisplayPort 3 HD-Audio Generic': 'Navi', 'HDMI / DisplayPort Rembrandt Radeon High Definition Audio Controller': 'NO', 'Analog Output HyperX Cloud Alpha S': 'NO', 'Digital Output (S/PDIF) HyperX Cloud Alpha S': 'Cloud S', 'Dummy Output': 'Dummy Output'}''; (lib.hm.gvariant.mkDictionaryEntry [
"Microphone USB Live camera"
"NO"
])
(lib.hm.gvariant.mkDictionaryEntry [
"Digital Input (S/PDIF) USB Live camera"
"NO"
])
(lib.hm.gvariant.mkDictionaryEntry [
"Microphone HyperX Cloud Alpha S"
"Cloud S"
])
];
output-names-map = [
(lib.hm.gvariant.mkDictionaryEntry [
"HDMI / DisplayPort 3 HD-Audio Generic"
"ROG"
])
(lib.hm.gvariant.mkDictionaryEntry [
"HDMI / DisplayPort Rembrandt Radeon High Definition Audio Controller"
"NO"
])
(lib.hm.gvariant.mkDictionaryEntry [
"Analog Output HyperX Cloud Alpha S"
"NO"
])
(lib.hm.gvariant.mkDictionaryEntry [
"Digital Output (S/PDIF) HyperX Cloud Alpha S"
"Cloud S"
])
];
# input-names-map = ''{'Microphone USB Live camera': 'NO', 'Digital Input (S/PDIF) USB Live camera': 'NO', 'Microphone HyperX Cloud Alpha S': 'Cloud S'}'';
# output-names-map = ''{'HDMI / DisplayPort 3 HD-Audio Generic': 'ROG', 'HDMI / DisplayPort Rembrandt Radeon High Definition Audio Controller': 'NO', 'Analog Output HyperX Cloud Alpha S': 'NO', 'Digital Output (S/PDIF) HyperX Cloud Alpha S': 'Cloud S'}'';
}; };
"org/gnome/shell/extensions/user-theme" = { "org/gnome/shell/extensions/user-theme" = {
@ -471,13 +559,15 @@ with lib.hm.gvariant;
"org/gnome/shell/keybindings" = { "org/gnome/shell/keybindings" = {
focus-active-notification = [ ]; focus-active-notification = [ ];
screenshot = [ "Print" ];
screenshot-window = [ ];
shift-overview-down = [ ]; shift-overview-down = [ ];
shift-overview-up = [ ]; shift-overview-up = [ ];
show-screen-recording-ui = [ ];
show-screenshot-ui = [ "<Shift>Print" ];
toggle-application-view = [ "Home" ]; toggle-application-view = [ "Home" ];
toggle-message-tray = [ toggle-message-tray = [ "<Super>s" ];
"<Super>v" toggle-quick-settings = [ "<Super>a" ];
"<Super>m"
];
}; };
"org/gnome/shell/world-clocks" = { "org/gnome/shell/world-clocks" = {

View file

Before

Width:  |  Height:  |  Size: 6.2 MiB

After

Width:  |  Height:  |  Size: 6.2 MiB

View file

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

View file

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 189 KiB

View file

@ -0,0 +1,22 @@
{
lib,
pkgs,
...
}:
{
# imports = lib.flatten [
# ## Common Imports ##
# (map lib.custom.relativeToRoot [
# "home/global/common/development"
# ])
# ## Cloud Specific ##
# ./config
# ];
## Packages with no needed configs ##
# home.packages = builtins.attrValues {
# inherit (pkgs)
# ;
# };
}

View file

@ -1,13 +1,20 @@
{ {
lib,
pkgs, pkgs,
config, config,
... ...
}: }:
{ {
imports = [
## Required Configs ## # imports = lib.flatten [
../common/core # required # ## Common Imports ##
]; # (map lib.custom.relativeToRoot [
# "home/global/common/development"
# ])
# ## Komodo Specific ##
# ./config
# ];
home.file = { home.file = {
Pool.source = config.lib.file.mkOutOfStoreSymlink "/pool"; Pool.source = config.lib.file.mkOutOfStoreSymlink "/pool";

View file

@ -0,0 +1,22 @@
{
lib,
pkgs,
...
}:
{
# imports = lib.flatten [
# ## Common Imports ##
# (map lib.custom.relativeToRoot [
# "home/global/common/development"
# ])
# ## Proxy Specific ##
# ./config
# ];
## Packages with no needed configs ##
# home.packages = builtins.attrValues {
# inherit (pkgs)
# ;
# };
}

View file

@ -1,14 +1,17 @@
{ {
lib,
pkgs, pkgs,
... ...
}: }:
{ {
imports = [ imports = lib.flatten [
## Required Configs ## ## Common Imports ##
../common/core # required (map lib.custom.relativeToRoot [
"home/global/common/vscode-server.nix"
])
## Host-specific Optional Configs ## ## Nix Specific ##
../common/optional/vscode-server.nix # ./config
]; ];
## Packages with no needed configs ## ## Packages with no needed configs ##

View file

@ -0,0 +1,22 @@
{
lib,
pkgs,
...
}:
{
# imports = lib.flatten [
# ## Common Imports ##
# (map lib.custom.relativeToRoot [
# "home/global/common/development"
# ])
# ## Proxy Specific ##
# ./config
# ];
## Packages with no needed configs ##
# home.packages = builtins.attrValues {
# inherit (pkgs)
# ;
# };
}

View file

@ -1,20 +1,20 @@
{ {
pkgs, pkgs,
lib,
inputs, inputs,
config, config,
... ...
}: }:
{ {
imports = [ imports = lib.flatten [
## Required Configs ## ## Common Imports ##
../common/core # required (map lib.custom.relativeToRoot [
"home/global/common/browsers"
## Optional Configs ## "home/global/common/gnome"
../common/optional/browsers "home/global/common/development"
../common/optional/gnome "home/global/common/gaming"
../common/optional/development "home/global/common/xdg.nix"
../common/optional/gaming ])
../common/optional/xdg.nix
## Rune Specific ## ## Rune Specific ##
./config ./config
@ -30,7 +30,8 @@
## Social ## ## Social ##
telegram-desktop telegram-desktop
vesktop discord
betterdiscordctl
## Tools ## ## Tools ##
bitwarden-desktop bitwarden-desktop

39
home/hosts/vm/default.nix Normal file
View file

@ -0,0 +1,39 @@
{
lib,
pkgs,
...
}:
{
imports = lib.flatten [
## Common Imports ##
(map lib.custom.relativeToRoot [
"home/global/common/browsers"
"home/global/common/gnome"
"home/global/common/development"
"home/global/common/vscode-server.nix"
"home/global/common/xdg.nix"
])
## VM Specific ##
# ./config
];
## Packages with no needed configs ##
home.packages = builtins.attrValues {
inherit (pkgs)
## Tools ##
inspector
foot
;
};
monitors = [
{
name = "Virtual-1";
width = 2560;
height = 1440;
refreshRate = 60;
primary = true;
}
];
}

View file

@ -1,10 +0,0 @@
{
pkgs,
...
}:
{
imports = [
## Required Configs ##
../common/core # required
];
}

View file

@ -1,10 +0,0 @@
{
pkgs,
...
}:
{
imports = [
## Required Configs ##
../common/core # required
];
}

View file

@ -1,16 +0,0 @@
{
pkgs,
...
}:
{
imports = [
## Required Configs ##
../common/core # required
];
## Packages with no needed configs ##
# home.packages = builtins.attrValues {
# inherit (pkgs)
# ;
# };
}

View file

@ -1,38 +0,0 @@
{
pkgs,
...
}:
{
imports = [
## Required Configs ##
../common/core # required
## Host-specific Optional Configs ##
../common/optional/browsers
# ../common/optional/gnome
../common/optional/hyprland
../common/optional/development
# ../common/optional/gaming
../common/optional/vscode-server.nix
../common/optional/xdg.nix # file associations
];
## Packages with no needed configs ##
home.packages = builtins.attrValues {
inherit (pkgs)
## Tools ##
inspector
foot
;
};
monitors = [
{
name = "Virtual-1";
width = 2560;
height = 1440;
refreshRate = 60;
primary = true;
}
];
}

View file

@ -0,0 +1,7 @@
{
lib,
...
}:
{
imports = lib.custom.scanPaths ./.;
}

View file

@ -0,0 +1,12 @@
{
lib,
hostSpec,
...
}:
{
imports = [
(lib.custom.relativeToRoot "home/global/core")
./config
(lib.custom.relativeToRoot "home/hosts/${hostSpec.hostName}")
];
}

View file

@ -0,0 +1,7 @@
{
lib,
...
}:
{
imports = lib.custom.scanPaths ./.;
}

View file

@ -0,0 +1,12 @@
{
lib,
hostSpec,
...
}:
{
imports = [
(lib.custom.relativeToRoot "home/global/core")
./config
(lib.custom.relativeToRoot "home/hosts/${hostSpec.hostName}")
];
}

View file

@ -0,0 +1,7 @@
{
lib,
...
}:
{
imports = lib.custom.scanPaths ./.;
}

View file

@ -0,0 +1,12 @@
{
lib,
hostSpec,
...
}:
{
imports = [
(lib.custom.relativeToRoot "home/global/core")
./config
(lib.custom.relativeToRoot "home/hosts/${hostSpec.hostName}")
];
}

View file

@ -12,8 +12,6 @@
driSupport32Bit = true; driSupport32Bit = true;
}; };
services.xserver.videoDrivers = [ "amdgpu" ];
programs = { programs = {
steam = { steam = {
enable = true; enable = true;

View file

@ -1,20 +1,29 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
# Enable the X11 windowing system. ## DE ##
services.xserver = { services.xserver = {
enable = true; enable = true;
# Enable the GNOME Desktop Environment. desktopManager.gnome = {
desktopManager.gnome.enable = true; enable = true;
extraGSettingsOverridePackages = [ pkgs.mutter ];
extraGSettingsOverrides = ''
[org.gnome.mutter]
experimental-features=['scale-monitor-framebuffer']
'';
};
displayManager = { displayManager = {
gdm.enable = true; gdm = {
enable = true;
wayland = true;
};
autoLogin = { autoLogin = {
enable = true; enable = true;
user = config.hostSpec.username; user = config.hostSpec.username;
}; };
}; };
# Configure keymap in X11
xkb = { xkb = {
layout = "us"; layout = "us";
variant = ""; variant = "";

View file

@ -19,12 +19,7 @@ in
requires = [ "pool.mount" ]; requires = [ "pool.mount" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
script = '' script = ''
umount /pool/git
mkdir -p /pool/git
chown ${username}:ryot /pool/git
chmod 2775 /pool/git
ln -sf /pool/git ${homeDir}/git ln -sf /pool/git ${homeDir}/git
chown -h ${username}:ryot ${homeDir}/git
''; '';
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";

View file

@ -88,7 +88,7 @@ in
imports = [ imports = [
( (
{ config, ... }: { config, ... }:
import (lib.custom.relativeToRoot "home/${username}/${hostSpec.hostName}") { import (lib.custom.relativeToRoot "home/users/${username}") {
inherit inherit
config config
hostSpec hostSpec

View file

@ -66,6 +66,10 @@ in
asdf-vm asdf-vm
]; ];
environment.sessionVariables = {
AMD_VULKAN_ICD = "RADV";
};
# https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion # https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = "24.11"; system.stateVersion = "24.11";
} }

View file

@ -46,7 +46,10 @@
]; ];
kernelModules = [ ]; kernelModules = [ ];
}; };
kernelModules = [ "kvm-amd" ]; kernelModules = [
"kvm-amd"
"amdgpu"
];
extraModulePackages = [ ]; extraModulePackages = [ ];
}; };