Formatting
This commit is contained in:
parent
d14db5a303
commit
9b4bd8fcc1
19
flake.nix
19
flake.nix
|
@ -38,16 +38,16 @@
|
||||||
time.timeZone = "Europe/Brussels";
|
time.timeZone = "Europe/Brussels";
|
||||||
|
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
};
|
};
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://hyprland.cachix.org"
|
"https://hyprland.cachix.org"
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cuda-maintainers.cachix.org"
|
"https://cuda-maintainers.cachix.org"
|
||||||
"https://nixos-rocm.cachix.org"
|
"https://nixos-rocm.cachix.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
@ -107,5 +107,6 @@
|
||||||
Kell = { user = "user"; };
|
Kell = { user = "user"; };
|
||||||
Aloria = { user = "user"; };
|
Aloria = { user = "user"; };
|
||||||
};
|
};
|
||||||
in { nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; };
|
in
|
||||||
|
{ nixosConfigurations = nixpkgs.lib.mapAttrs mkSystem systems; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,26 +21,26 @@
|
||||||
# wayland.windowManager.hyprland.settings.env = ["WLR_DRM_DEVICES,/dev/dri/by-path/pci-0000:01:00.0-card"]; # Nvidia
|
# wayland.windowManager.hyprland.settings.env = ["WLR_DRM_DEVICES,/dev/dri/by-path/pci-0000:01:00.0-card"]; # Nvidia
|
||||||
# wayland.windowManager.hyprland.settings.env = ["WLR_DRM_DEVICES,/dev/dri/by-path/pci-0000:00:02.0-card"]; # Intel
|
# wayland.windowManager.hyprland.settings.env = ["WLR_DRM_DEVICES,/dev/dri/by-path/pci-0000:00:02.0-card"]; # Intel
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"${pkgs.swaylock-fancy}/bin/swaylock-fancy"
|
"${pkgs.swaylock-fancy}/bin/swaylock-fancy"
|
||||||
];
|
];
|
||||||
monitor = [
|
monitor = [
|
||||||
"eDP-1,1920x1080@144,0x0,1"
|
"eDP-1,1920x1080@144,0x0,1"
|
||||||
"eDP-2,1920x1080@144,0x0,1"
|
"eDP-2,1920x1080@144,0x0,1"
|
||||||
"HDMI-A-2,1920x1080@60,0x-1080,1"
|
"HDMI-A-2,1920x1080@60,0x-1080,1"
|
||||||
];
|
];
|
||||||
bind = [
|
bind = [
|
||||||
", XF86PowerOff, exec, ${pkgs.rofi}/bin/rofi -show power-menu -modi power-menu:${
|
", XF86PowerOff, exec, ${pkgs.rofi}/bin/rofi -show power-menu -modi power-menu:${
|
||||||
./hyprland/files/rofi-power-menu.sh
|
./hyprland/files/rofi-power-menu.sh
|
||||||
}"
|
}"
|
||||||
];
|
];
|
||||||
general.gaps_out = 1;
|
general.gaps_out = 1;
|
||||||
};
|
};
|
||||||
programs.waybar.settings.mainBar = {
|
programs.waybar.settings.mainBar = {
|
||||||
output = "eDP-1";
|
output = "eDP-1";
|
||||||
height = 28;
|
height = 28;
|
||||||
margin = "0 0 5 0";
|
margin = "0 0 5 0";
|
||||||
"custom/temperature".exec = "${pkgs.lm_sensors}/bin/sensors | ${pkgs.gnugrep}/bin/grep Package | cut -c17-23";
|
"custom/temperature".exec = "${pkgs.lm_sensors}/bin/sensors | ${pkgs.gnugrep}/bin/grep Package | cut -c17-23";
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.alacritty.settings.font.size = 13;
|
programs.alacritty.settings.font.size = 13;
|
||||||
|
|
|
@ -16,37 +16,37 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.waybar.settings.mainBar = {
|
programs.waybar.settings.mainBar = {
|
||||||
output = "DP-2";
|
output = "DP-2";
|
||||||
"custom/temperature".exec = "${pkgs.lm_sensors}/bin/sensors | ${pkgs.gnugrep}/bin/grep Tctl | cut -c16-22";
|
"custom/temperature".exec = "${pkgs.lm_sensors}/bin/sensors | ${pkgs.gnugrep}/bin/grep Tctl | cut -c16-22";
|
||||||
};
|
};
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
monitor = [
|
monitor = [
|
||||||
"DP-3,preferred,0x550,1"
|
"DP-3,preferred,0x550,1"
|
||||||
"DP-2,preferred,1920x0,1"
|
"DP-2,preferred,1920x0,1"
|
||||||
"HDMI-A-1,preferred,5760x550,1"
|
"HDMI-A-1,preferred,5760x550,1"
|
||||||
];
|
];
|
||||||
input.kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win";
|
input.kb_options = "compose:rctrl, caps:super, altwin:swap_alt_win";
|
||||||
};
|
};
|
||||||
programs.waybar.style = ''
|
programs.waybar.style = ''
|
||||||
* {
|
* {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight:400;
|
font-weight:400;
|
||||||
}
|
}
|
||||||
#tray {
|
#tray {
|
||||||
padding: 0 14px;
|
padding: 0 14px;
|
||||||
margin-left:4px;
|
margin-left:4px;
|
||||||
margin-right:4px;
|
margin-right:4px;
|
||||||
margin-top:2px;
|
margin-top:2px;
|
||||||
margin-bottom:2px;
|
margin-bottom:2px;
|
||||||
}
|
}
|
||||||
#workspaces {
|
#workspaces {
|
||||||
margin: 4px 9px;
|
margin: 4px 9px;
|
||||||
}
|
}
|
||||||
#wireplumber {
|
#wireplumber {
|
||||||
background-color: #023269;
|
background-color: #023269;
|
||||||
}
|
}
|
||||||
#tray {
|
#tray {
|
||||||
background-color: #1f2430;
|
background-color: #1f2430;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ inputs, config, pkgs, ... }:
|
{ inputs, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
scripts = {
|
scripts = {
|
||||||
disk_check = import ./utils/disk_check.nix {inherit pkgs;};
|
disk_check = import ./utils/disk_check.nix { inherit pkgs; };
|
||||||
vdirsyncer = {
|
vdirsyncer = {
|
||||||
when = "*:0/15";
|
when = "*:0/15";
|
||||||
script = toString (pkgs.writeShellScript "script" ''
|
script = toString (pkgs.writeShellScript "script" ''
|
||||||
|
@ -49,7 +49,8 @@ let
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
home.username = "server";
|
home.username = "server";
|
||||||
home.homeDirectory = "/home/server";
|
home.homeDirectory = "/home/server";
|
||||||
nix = {
|
nix = {
|
||||||
|
@ -60,9 +61,9 @@ in {
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
(import ./utils/common.nix { inherit inputs config pkgs; })
|
(import ./utils/common.nix { inherit inputs config pkgs; })
|
||||||
(import ./utils/services.nix { inherit pkgs; scripts=scripts; })
|
(import ./utils/services.nix { inherit pkgs; scripts = scripts; })
|
||||||
./ssh
|
./ssh
|
||||||
];
|
];
|
||||||
programs.ssh.matchBlocks."*".identityFile = "/home/server/.secrets/SSH/Mallorea/id_ed25519";
|
programs.ssh.matchBlocks."*".identityFile = "/home/server/.secrets/SSH/Mallorea/id_ed25519";
|
||||||
|
|
||||||
|
|
|
@ -21,33 +21,34 @@ let
|
||||||
restic_etienne = {
|
restic_etienne = {
|
||||||
when = "*-*-* 01:00:00";
|
when = "*-*-* 01:00:00";
|
||||||
script = toString (pkgs.writeShellScript "script" ''
|
script = toString (pkgs.writeShellScript "script" ''
|
||||||
/Backup/Restic/Etienne/run.sh
|
/Backup/Restic/Etienne/run.sh
|
||||||
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/zGPrOi0NsJ
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/zGPrOi0NsJ
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
restic_magda_and_etienne = {
|
restic_magda_and_etienne = {
|
||||||
when = "*-*-* 03:00:00";
|
when = "*-*-* 03:00:00";
|
||||||
script = toString (pkgs.writeShellScript "script" ''
|
script = toString (pkgs.writeShellScript "script" ''
|
||||||
/Backup/Restic/Magda\ and\ Etienne/run.sh
|
/Backup/Restic/Magda\ and\ Etienne/run.sh
|
||||||
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/yvBuDgduDd
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/yvBuDgduDd
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
restic_backblaze = {
|
restic_backblaze = {
|
||||||
when = "*-*-* 02:00:00";
|
when = "*-*-* 02:00:00";
|
||||||
script = toString (pkgs.writeShellScript "script" ''
|
script = toString (pkgs.writeShellScript "script" ''
|
||||||
/Backup/Restic/BackBlaze/run.sh
|
/Backup/Restic/BackBlaze/run.sh
|
||||||
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/LVruVYTwTn
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/LVruVYTwTn
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
mail_sync = {
|
mail_sync = {
|
||||||
when = "*-*-* 04:00:00";
|
when = "*-*-* 04:00:00";
|
||||||
script = toString (pkgs.writeShellScript "script" ''
|
script = toString (pkgs.writeShellScript "script" ''
|
||||||
cd /home/server/Containers/Mails && docker compose up sync-etienne sync-magda
|
cd /home/server/Containers/Mails && docker compose up sync-etienne sync-magda
|
||||||
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/eEIPVGyrAx
|
${pkgs.curl}/bin/curl https://uptime.thomasave.be/api/push/eEIPVGyrAx
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
home.username = "server";
|
home.username = "server";
|
||||||
home.homeDirectory = "/home/server";
|
home.homeDirectory = "/home/server";
|
||||||
nix = {
|
nix = {
|
||||||
|
@ -57,9 +58,9 @@ in {
|
||||||
|
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
imports = [
|
imports = [
|
||||||
(import ./common.nix { inherit inputs config pkgs; })
|
(import ./common.nix { inherit inputs config pkgs; })
|
||||||
(import ./utils/services.nix { inherit pkgs; scripts=scripts; })
|
(import ./utils/services.nix { inherit pkgs; scripts = scripts; })
|
||||||
./ssh
|
./ssh
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.ssh.matchBlocks."*".identityFile = "/home/server/.secrets/SSH/Vault/id_ed25519";
|
programs.ssh.matchBlocks."*".identityFile = "/home/server/.secrets/SSH/Vault/id_ed25519";
|
||||||
|
|
|
@ -4,62 +4,63 @@ let
|
||||||
Value = false;
|
Value = false;
|
||||||
Status = "locked";
|
Status = "locked";
|
||||||
};
|
};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
|
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
|
||||||
extraPolicies = {
|
extraPolicies = {
|
||||||
DisableTelemetry = true;
|
DisableTelemetry = true;
|
||||||
DisableFirefoxStudies = true;
|
DisableFirefoxStudies = true;
|
||||||
DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
|
DisplayBookmarksToolbar = "never"; # alternatives: "always" or "newtab"
|
||||||
EnableTrackingProtection = {
|
EnableTrackingProtection = {
|
||||||
Value = true;
|
Value = true;
|
||||||
Locked = true;
|
Locked = true;
|
||||||
Cryptomining = true;
|
Cryptomining = true;
|
||||||
Fingerprinting = true;
|
Fingerprinting = true;
|
||||||
|
};
|
||||||
|
ExtensionSettings = {
|
||||||
|
"@contain-google" = {
|
||||||
|
install_url =
|
||||||
|
"https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi";
|
||||||
|
installation_mode = "force_installed";
|
||||||
};
|
};
|
||||||
ExtensionSettings = {
|
"{ea4204c0-3209-4116-afd2-2a208e21a779}" = {
|
||||||
"@contain-google" = {
|
install_url =
|
||||||
install_url =
|
"https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi";
|
||||||
"https://addons.mozilla.org/firefox/downloads/latest/google-container/latest.xpi";
|
installation_mode = "force_installed";
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
"{ea4204c0-3209-4116-afd2-2a208e21a779}" = {
|
|
||||||
install_url =
|
|
||||||
"https://addons.mozilla.org/firefox/downloads/latest/enable-bing-chat/latest.xpi";
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
"{3e4d2037-d300-4e95-859d-3cba866f46d3}" = {
|
|
||||||
install_url =
|
|
||||||
"https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi";
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
"{c7c120ff-2878-4e59-a5a3-cd4d1655bc13}" = {
|
|
||||||
install_url = "file://${./files/signed.xpi}";
|
|
||||||
installation_mode = "force_installed";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
Preferences = {
|
"{3e4d2037-d300-4e95-859d-3cba866f46d3}" = {
|
||||||
"browser.disableResetPrompt" = true;
|
install_url =
|
||||||
"browser.download.panel.shown" = true;
|
"https://addons.mozilla.org/firefox/downloads/latest/private-internet-access-ext/latest.xpi";
|
||||||
"browser.shell.checkDefaultBrowser" = false;
|
installation_mode = "force_installed";
|
||||||
"browser.tabs.inTitlebar" = 0;
|
};
|
||||||
"browser.shell.defaultBrowserCheckCount" = 1;
|
"{c7c120ff-2878-4e59-a5a3-cd4d1655bc13}" = {
|
||||||
"browser.startup.homepage" = "https://start.duckduckgo.com";
|
install_url = "file://${./files/signed.xpi}";
|
||||||
"browser.compactmode.show" = true;
|
installation_mode = "force_installed";
|
||||||
"browser.uidensity" = 1;
|
|
||||||
"extensions.update.enabled" = false;
|
|
||||||
"extensions.pocket.enabled" = lock-false;
|
|
||||||
"extensions.autoDisableScopes" = 0;
|
|
||||||
"browser.contentblocking.category" = {
|
|
||||||
Value = "strict";
|
|
||||||
Status = "locked";
|
|
||||||
};
|
|
||||||
"browser.uiCustomization.state" = ''
|
|
||||||
{"placements":{"widget-overflow-fixed-list":["fxa-toolbar-menu-button","developer-button"],"unified-extensions-area":["sponsorblocker_ajay_app-browser-action","_testpilot-containers-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","beyond20_kakaroto_homelinux_net-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","_contain-facebook-browser-action","jid1-kkzogwgsw3ao4q_jetpack-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","chrome-gnome-shell_gnome_org-browser-action","_ea4204c0-3209-4116-afd2-2a208e21a779_-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","display-anchors_robwu_nl-browser-action","firefoxcolor_mozilla_com-browser-action","search_kagi_com-browser-action","_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","urlbar-container","downloads-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_12cf650b-1822-40aa-bff0-996df6948878_-browser-action","_3e4d2037-d300-4e95-859d-3cba866f46d3_-browser-action","save-as-pdf-ff_pdfcrowd_com-browser-action","user-agent-switcher_ninetailed_ninja-browser-action","_d66c8515-1e0d-408f-82ee-2682f2362726_-browser-action","ublock0_raymondhill_net-browser-action","reset-pbm-toolbar-button","adguardadblocker_adguard_com-browser-action","unified-extensions-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["developer-button","profiler-button","chrome-gnome-shell_gnome_org-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_contain-facebook-browser-action","_testpilot-containers-browser-action","jid1-kkzogwgsw3ao4q_jetpack-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","ublock0_raymondhill_net-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","beyond20_kakaroto_homelinux_net-browser-action","_12cf650b-1822-40aa-bff0-996df6948878_-browser-action","_3e4d2037-d300-4e95-859d-3cba866f46d3_-browser-action","save-as-pdf-ff_pdfcrowd_com-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","user-agent-switcher_ninetailed_ninja-browser-action","_d66c8515-1e0d-408f-82ee-2682f2362726_-browser-action","_ea4204c0-3209-4116-afd2-2a208e21a779_-browser-action","adguardadblocker_adguard_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","sponsorblocker_ajay_app-browser-action","display-anchors_robwu_nl-browser-action","firefoxcolor_mozilla_com-browser-action","search_kagi_com-browser-action","_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list","unified-extensions-area"],"currentVersion":20,"newElementCount":11}'';
|
|
||||||
"privacy.trackingprotection.enabled" = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Preferences = {
|
||||||
|
"browser.disableResetPrompt" = true;
|
||||||
|
"browser.download.panel.shown" = true;
|
||||||
|
"browser.shell.checkDefaultBrowser" = false;
|
||||||
|
"browser.tabs.inTitlebar" = 0;
|
||||||
|
"browser.shell.defaultBrowserCheckCount" = 1;
|
||||||
|
"browser.startup.homepage" = "https://start.duckduckgo.com";
|
||||||
|
"browser.compactmode.show" = true;
|
||||||
|
"browser.uidensity" = 1;
|
||||||
|
"extensions.update.enabled" = false;
|
||||||
|
"extensions.pocket.enabled" = lock-false;
|
||||||
|
"extensions.autoDisableScopes" = 0;
|
||||||
|
"browser.contentblocking.category" = {
|
||||||
|
Value = "strict";
|
||||||
|
Status = "locked";
|
||||||
|
};
|
||||||
|
"browser.uiCustomization.state" = ''
|
||||||
|
{"placements":{"widget-overflow-fixed-list":["fxa-toolbar-menu-button","developer-button"],"unified-extensions-area":["sponsorblocker_ajay_app-browser-action","_testpilot-containers-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","beyond20_kakaroto_homelinux_net-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","_contain-facebook-browser-action","jid1-kkzogwgsw3ao4q_jetpack-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","chrome-gnome-shell_gnome_org-browser-action","_ea4204c0-3209-4116-afd2-2a208e21a779_-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","display-anchors_robwu_nl-browser-action","firefoxcolor_mozilla_com-browser-action","search_kagi_com-browser-action","_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","urlbar-container","downloads-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_12cf650b-1822-40aa-bff0-996df6948878_-browser-action","_3e4d2037-d300-4e95-859d-3cba866f46d3_-browser-action","save-as-pdf-ff_pdfcrowd_com-browser-action","user-agent-switcher_ninetailed_ninja-browser-action","_d66c8515-1e0d-408f-82ee-2682f2362726_-browser-action","ublock0_raymondhill_net-browser-action","reset-pbm-toolbar-button","adguardadblocker_adguard_com-browser-action","unified-extensions-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["developer-button","profiler-button","chrome-gnome-shell_gnome_org-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_contain-facebook-browser-action","_testpilot-containers-browser-action","jid1-kkzogwgsw3ao4q_jetpack-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action","ublock0_raymondhill_net-browser-action","_531906d3-e22f-4a6c-a102-8057b88a1a63_-browser-action","beyond20_kakaroto_homelinux_net-browser-action","_12cf650b-1822-40aa-bff0-996df6948878_-browser-action","_3e4d2037-d300-4e95-859d-3cba866f46d3_-browser-action","save-as-pdf-ff_pdfcrowd_com-browser-action","_d7742d87-e61d-4b78-b8a1-b469842139fa_-browser-action","user-agent-switcher_ninetailed_ninja-browser-action","_d66c8515-1e0d-408f-82ee-2682f2362726_-browser-action","_ea4204c0-3209-4116-afd2-2a208e21a779_-browser-action","adguardadblocker_adguard_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","sponsorblocker_ajay_app-browser-action","display-anchors_robwu_nl-browser-action","firefoxcolor_mozilla_com-browser-action","search_kagi_com-browser-action","_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list","unified-extensions-area"],"currentVersion":20,"newElementCount":11}'';
|
||||||
|
"privacy.trackingprotection.enabled" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
profiles = {
|
profiles = {
|
||||||
default = {
|
default = {
|
||||||
|
|
|
@ -20,7 +20,7 @@ let
|
||||||
'';
|
'';
|
||||||
|
|
||||||
workspace_command_prefix = "split-";
|
workspace_command_prefix = "split-";
|
||||||
hyprland_plugins = [inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces];
|
hyprland_plugins = [ inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces ];
|
||||||
|
|
||||||
# Disable split-monitor-workspaces
|
# Disable split-monitor-workspaces
|
||||||
# workspace_command_prefix = "";
|
# workspace_command_prefix = "";
|
||||||
|
@ -61,7 +61,8 @@ let
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
services.kdeconnect = {
|
services.kdeconnect = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.kdePackages.kdeconnect-kde;
|
package = pkgs.kdePackages.kdeconnect-kde;
|
||||||
|
@ -69,27 +70,27 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.wl-clipboard
|
pkgs.wl-clipboard
|
||||||
pkgs.jq
|
pkgs.jq
|
||||||
];
|
];
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = {
|
theme = {
|
||||||
package = pkgs.gnome.gnome-themes-extra;
|
package = pkgs.gnome.gnome-themes-extra;
|
||||||
name = "Adwaita-dark";
|
name = "Adwaita-dark";
|
||||||
};
|
};
|
||||||
iconTheme = {
|
iconTheme = {
|
||||||
name = "Papirus";
|
name = "Papirus";
|
||||||
package = pkgs.papirus-icon-theme;
|
package = pkgs.papirus-icon-theme;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
gtk.enable = true;
|
gtk.enable = true;
|
||||||
name = "Adwaita";
|
name = "Adwaita";
|
||||||
size = 28;
|
size = 28;
|
||||||
package = pkgs.gnome.adwaita-icon-theme;
|
package = pkgs.gnome.adwaita-icon-theme;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.cliphist = { enable = true; };
|
services.cliphist = { enable = true; };
|
||||||
|
@ -132,7 +133,7 @@ in {
|
||||||
systemd.enableXdgAutostart = true;
|
systemd.enableXdgAutostart = true;
|
||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
plugins = [] ++ hyprland_plugins;
|
plugins = [ ] ++ hyprland_plugins;
|
||||||
settings = {
|
settings = {
|
||||||
"$mainMod" = "SUPER";
|
"$mainMod" = "SUPER";
|
||||||
exec-once = [
|
exec-once = [
|
||||||
|
@ -266,13 +267,15 @@ in {
|
||||||
] ++ (
|
] ++ (
|
||||||
# workspaces
|
# workspaces
|
||||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||||
builtins.concatLists (builtins.genList (x:
|
builtins.concatLists (builtins.genList
|
||||||
let
|
(x:
|
||||||
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
let
|
||||||
in [
|
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
||||||
"$mainMod, ${ws}, ${workspace_command_prefix}workspace, ${toString (x + 1)}"
|
in
|
||||||
"$mainMod SHIFT, ${ws}, ${workspace_command_prefix}movetoworkspace, ${toString (x + 1)}"
|
[
|
||||||
]) 10));
|
"$mainMod, ${ws}, ${workspace_command_prefix}workspace, ${toString (x + 1)}"
|
||||||
|
"$mainMod SHIFT, ${ws}, ${workspace_command_prefix}movetoworkspace, ${toString (x + 1)}"
|
||||||
|
]) 10));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,115 +12,116 @@
|
||||||
kb-cancel = "Super_L+XF86Launch5,Escape";
|
kb-cancel = "Super_L+XF86Launch5,Escape";
|
||||||
combi-hide-mode-prefix = true;
|
combi-hide-mode-prefix = true;
|
||||||
};
|
};
|
||||||
theme = let inherit (config.lib.formats.rasi) mkLiteral;
|
theme =
|
||||||
in {
|
let inherit (config.lib.formats.rasi) mkLiteral;
|
||||||
"*" = {
|
in {
|
||||||
background = mkLiteral "#0f111a";
|
"*" = {
|
||||||
foreground = mkLiteral "#f1f1f1";
|
background = mkLiteral "#0f111a";
|
||||||
selected = mkLiteral "#0033a1";
|
foreground = mkLiteral "#f1f1f1";
|
||||||
selected-text = mkLiteral "#ffffff";
|
selected = mkLiteral "#0033a1";
|
||||||
};
|
selected-text = mkLiteral "#ffffff";
|
||||||
|
};
|
||||||
|
|
||||||
"window" = {
|
"window" = {
|
||||||
transparency = "real";
|
transparency = "real";
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
text-color = mkLiteral "@foreground";
|
text-color = mkLiteral "@foreground";
|
||||||
width = mkLiteral "800px";
|
width = mkLiteral "800px";
|
||||||
border-radius = mkLiteral "5px";
|
border-radius = mkLiteral "5px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"textbox-prompt-colon" = {
|
"textbox-prompt-colon" = {
|
||||||
expand = mkLiteral "false";
|
expand = mkLiteral "false";
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
padding = mkLiteral "4px 0px 0px 6px";
|
padding = mkLiteral "4px 0px 0px 6px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"inputbar" = {
|
"inputbar" = {
|
||||||
children = mkLiteral "[ textbox-prompt-colon, entry ]";
|
children = mkLiteral "[ textbox-prompt-colon, entry ]";
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
text-color = mkLiteral "@foreground";
|
text-color = mkLiteral "@foreground";
|
||||||
expand = mkLiteral "false";
|
expand = mkLiteral "false";
|
||||||
border = mkLiteral "0px 0px 0px 0px";
|
border = mkLiteral "0px 0px 0px 0px";
|
||||||
border-radius = mkLiteral "0px";
|
border-radius = mkLiteral "0px";
|
||||||
border-color = mkLiteral "@selected";
|
border-color = mkLiteral "@selected";
|
||||||
margin = mkLiteral "0px 0px 0px 0px";
|
margin = mkLiteral "0px 0px 0px 0px";
|
||||||
padding = mkLiteral "0px 0px 4px 0px";
|
padding = mkLiteral "0px 0px 4px 0px";
|
||||||
position = mkLiteral "center";
|
position = mkLiteral "center";
|
||||||
};
|
};
|
||||||
|
|
||||||
"entry" = {
|
"entry" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
text-color = mkLiteral "@foreground";
|
text-color = mkLiteral "@foreground";
|
||||||
placeholder-color = mkLiteral "@foreground";
|
placeholder-color = mkLiteral "@foreground";
|
||||||
expand = mkLiteral "true";
|
expand = mkLiteral "true";
|
||||||
horizontal-align = mkLiteral "0";
|
horizontal-align = mkLiteral "0";
|
||||||
blink = mkLiteral "true";
|
blink = mkLiteral "true";
|
||||||
padding = mkLiteral "4px 0px 0px 4px";
|
padding = mkLiteral "4px 0px 0px 4px";
|
||||||
font = "SF Pro Rounded 25";
|
font = "SF Pro Rounded 25";
|
||||||
};
|
};
|
||||||
|
|
||||||
"case-indicator" = {
|
"case-indicator" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
text-color = mkLiteral "@foreground";
|
text-color = mkLiteral "@foreground";
|
||||||
spacing = mkLiteral "0";
|
spacing = mkLiteral "0";
|
||||||
};
|
};
|
||||||
|
|
||||||
"listview" = {
|
"listview" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
columns = mkLiteral "1";
|
columns = mkLiteral "1";
|
||||||
spacing = mkLiteral "5px";
|
spacing = mkLiteral "5px";
|
||||||
cycle = mkLiteral "true";
|
cycle = mkLiteral "true";
|
||||||
dynamic = mkLiteral "true";
|
dynamic = mkLiteral "true";
|
||||||
layout = mkLiteral "vertical";
|
layout = mkLiteral "vertical";
|
||||||
fixed-height = "true";
|
fixed-height = "true";
|
||||||
lines = mkLiteral "5";
|
lines = mkLiteral "5";
|
||||||
};
|
};
|
||||||
|
|
||||||
"mainbox" = {
|
"mainbox" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
children = mkLiteral "[ inputbar, message, listview ]";
|
children = mkLiteral "[ inputbar, message, listview ]";
|
||||||
spacing = mkLiteral "20px";
|
spacing = mkLiteral "20px";
|
||||||
padding = mkLiteral "20px 15px 15px 15px";
|
padding = mkLiteral "20px 15px 15px 15px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"message" = {
|
"message" = {
|
||||||
children = mkLiteral "[ textbox ]";
|
children = mkLiteral "[ textbox ]";
|
||||||
border-radius = mkLiteral "5px";
|
border-radius = mkLiteral "5px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"textbox" = {
|
"textbox" = {
|
||||||
background-color = mkLiteral "@selected";
|
background-color = mkLiteral "@selected";
|
||||||
text-color = mkLiteral "@foreground";
|
text-color = mkLiteral "@foreground";
|
||||||
padding = mkLiteral "20px 6px 20px 80px";
|
padding = mkLiteral "20px 6px 20px 80px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"element" = {
|
"element" = {
|
||||||
background-color = mkLiteral "@background";
|
background-color = mkLiteral "@background";
|
||||||
text-color = mkLiteral "@foreground";
|
text-color = mkLiteral "@foreground";
|
||||||
orientation = mkLiteral "horizontal";
|
orientation = mkLiteral "horizontal";
|
||||||
border-radius = mkLiteral "4px";
|
border-radius = mkLiteral "4px";
|
||||||
padding = mkLiteral "2px 2px 2px 2px";
|
padding = mkLiteral "2px 2px 2px 2px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"element-text, element-icon" = {
|
"element-text, element-icon" = {
|
||||||
background-color = mkLiteral "inherit";
|
background-color = mkLiteral "inherit";
|
||||||
text-color = mkLiteral "inherit";
|
text-color = mkLiteral "inherit";
|
||||||
};
|
};
|
||||||
|
|
||||||
"element-icon" = {
|
"element-icon" = {
|
||||||
size = mkLiteral "40px";
|
size = mkLiteral "40px";
|
||||||
border = mkLiteral "10px";
|
border = mkLiteral "10px";
|
||||||
};
|
};
|
||||||
|
|
||||||
"element-text" = { padding = mkLiteral "20px 0px 0px 10px"; };
|
"element-text" = { padding = mkLiteral "20px 0px 0px 10px"; };
|
||||||
|
|
||||||
"element selected" = {
|
"element selected" = {
|
||||||
background-color = mkLiteral "@selected";
|
background-color = mkLiteral "@selected";
|
||||||
text-color = mkLiteral "@selected-text";
|
text-color = mkLiteral "@selected-text";
|
||||||
border = mkLiteral "0px";
|
border = mkLiteral "0px";
|
||||||
border-radius = mkLiteral "3px";
|
border-radius = mkLiteral "3px";
|
||||||
border-color = mkLiteral "@selected";
|
border-color = mkLiteral "@selected";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,8 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
shell = "${pkgs.zsh}/bin/zsh";
|
shell = "${pkgs.zsh}/bin/zsh";
|
||||||
terminal = "screen-256color";
|
terminal = "screen-256color";
|
||||||
|
|
|
@ -12,12 +12,12 @@
|
||||||
../mpv
|
../mpv
|
||||||
];
|
];
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
webcord
|
webcord
|
||||||
devenv
|
devenv
|
||||||
iwgtk
|
iwgtk
|
||||||
element-desktop
|
element-desktop
|
||||||
evince
|
evince
|
||||||
loupe
|
loupe
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{pkgs}:
|
{ pkgs }:
|
||||||
{
|
{
|
||||||
when = "*-*-* *:00:00";
|
when = "*-*-* *:00:00";
|
||||||
script = toString (pkgs.writeShellScript "script" ''
|
script = toString (pkgs.writeShellScript "script" ''
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ pkgs, scripts }:
|
{ pkgs, scripts }:
|
||||||
let
|
let
|
||||||
notify_script = (pkgs.writers.writePython3Bin "telegram-notify.py" {
|
notify_script = (pkgs.writers.writePython3Bin "telegram-notify.py"
|
||||||
libraries = [ pkgs.python3Packages.python-telegram-bot ];
|
{
|
||||||
} ''
|
libraries = [ pkgs.python3Packages.python-telegram-bot ];
|
||||||
|
} ''
|
||||||
import telegram
|
import telegram
|
||||||
import asyncio
|
import asyncio
|
||||||
import sys
|
import sys
|
||||||
|
@ -66,10 +67,10 @@ in
|
||||||
{
|
{
|
||||||
systemd.user.services = pkgs.lib.mapAttrs mkService scripts
|
systemd.user.services = pkgs.lib.mapAttrs mkService scripts
|
||||||
// (pkgs.lib.mapAttrs mkService {
|
// (pkgs.lib.mapAttrs mkService {
|
||||||
"status_notify@" = {
|
"status_notify@" = {
|
||||||
script = "${notify_script}/bin/telegram-notify.py %i";
|
script = "${notify_script}/bin/telegram-notify.py %i";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
systemd.user.timers = pkgs.lib.mapAttrs mkTimer scripts;
|
systemd.user.timers = pkgs.lib.mapAttrs mkTimer scripts;
|
||||||
# Don't forget to enable these timers! Or reboot, after which it should also be activated automatically
|
# Don't forget to enable these timers! Or reboot, after which it should also be activated automatically
|
||||||
# systemctl --user enable --now <script>.timer
|
# systemctl --user enable --now <script>.timer
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ pkgs, inputs, config, ... }:
|
{ pkgs, inputs, config, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ../Common/default.nix { inherit inputs pkgs config; })
|
(import ../Common/default.nix { inherit inputs pkgs config; })
|
||||||
(import ../Common/nvidia.nix { inherit inputs pkgs config; })
|
(import ../Common/nvidia.nix { inherit inputs pkgs config; })
|
||||||
];
|
];
|
||||||
hardware.opengl.extraPackages = [
|
hardware.opengl.extraPackages = [
|
||||||
pkgs.intel-compute-runtime
|
pkgs.intel-compute-runtime
|
||||||
pkgs.intel-media-driver
|
pkgs.intel-media-driver
|
||||||
];
|
];
|
||||||
|
|
||||||
# services.ollama = {
|
# services.ollama = {
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
postUp = "resolvectl dns wg0 10.0.0.1; resolvectl domain wg0 ~thomasave.be;";
|
postUp = "resolvectl dns wg0 10.0.0.1; resolvectl domain wg0 ~thomasave.be;";
|
||||||
peers = [{
|
peers = [{
|
||||||
publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
|
publicKey = "/9ppjm3yeD0duDvxrqgcHscHmftXko+0s2RbivNEy2c=";
|
||||||
allowedIPs = [ "10.0.0.1/8" "192.168.1.2/32" ];
|
allowedIPs = [ "10.0.0.1/8" "192.168.1.2/32" ];
|
||||||
endpoint = "h.thomasave.be:13231";
|
endpoint = "h.thomasave.be:13231";
|
||||||
persistentKeepalive = 25;
|
persistentKeepalive = 25;
|
||||||
}];
|
}];
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
@ -14,12 +15,14 @@
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/e34f26e4-2f68-4f9c-ab7d-836b4f4b9f74";
|
{
|
||||||
|
device = "/dev/disk/by-uuid/e34f26e4-2f68-4f9c-ab7d-836b4f4b9f74";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" =
|
||||||
{ device = "/dev/disk/by-uuid/90D9-F457";
|
{
|
||||||
|
device = "/dev/disk/by-uuid/90D9-F457";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [ "fmask=0077" "dmask=0077" ];
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,140 +1,140 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
||||||
boot.loader.systemd-boot.memtest86.enable = true;
|
boot.loader.systemd-boot.memtest86.enable = true;
|
||||||
boot.loader.systemd-boot.netbootxyz.enable = true;
|
boot.loader.systemd-boot.netbootxyz.enable = true;
|
||||||
boot.loader.timeout = 1;
|
boot.loader.timeout = 1;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
services.thermald.enable = true;
|
services.thermald.enable = true;
|
||||||
services.pcscd.enable = true;
|
services.pcscd.enable = true;
|
||||||
services.fwupd.enable = true;
|
services.fwupd.enable = true;
|
||||||
services.gvfs.enable = true;
|
services.gvfs.enable = true;
|
||||||
services.fstrim.enable = true;
|
services.fstrim.enable = true;
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
PasswordAuthentication = false;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
fonts.packages = with pkgs; [
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
noto-fonts-emoji
|
||||||
|
iosevka
|
||||||
|
nerdfonts
|
||||||
|
roboto
|
||||||
|
font-awesome
|
||||||
|
];
|
||||||
|
|
||||||
services.openssh = {
|
networking.firewall.enable = false;
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
services.greetd = {
|
||||||
noto-fonts
|
enable = true;
|
||||||
noto-fonts-cjk
|
settings = rec {
|
||||||
noto-fonts-emoji
|
initial_session = {
|
||||||
iosevka
|
command = "Hyprland";
|
||||||
nerdfonts
|
user = "user";
|
||||||
roboto
|
};
|
||||||
font-awesome
|
default_session = initial_session;
|
||||||
];
|
};
|
||||||
|
};
|
||||||
|
|
||||||
networking.firewall.enable = false;
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
wget
|
||||||
|
curl
|
||||||
|
git
|
||||||
|
lm_sensors
|
||||||
|
wireguard-tools
|
||||||
|
|
||||||
services.greetd = {
|
# Podman
|
||||||
enable = true;
|
dive
|
||||||
settings = rec {
|
podman-tui
|
||||||
initial_session = {
|
docker-compose
|
||||||
command = "Hyprland";
|
];
|
||||||
user = "user";
|
services.udev.packages = [ pkgs.yubikey-personalization ];
|
||||||
};
|
|
||||||
default_session = initial_session;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
virtualisation.containers.enable = true;
|
||||||
services.pipewire = {
|
virtualisation = {
|
||||||
enable = true;
|
podman = {
|
||||||
alsa.enable = true;
|
enable = true;
|
||||||
alsa.support32Bit = true;
|
dockerCompat = true;
|
||||||
pulse.enable = true;
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
jack.enable = true;
|
|
||||||
};
|
};
|
||||||
environment.systemPackages = with pkgs; [
|
};
|
||||||
wget
|
|
||||||
curl
|
|
||||||
git
|
|
||||||
lm_sensors
|
|
||||||
wireguard-tools
|
|
||||||
|
|
||||||
# Podman
|
# Calendar
|
||||||
dive
|
# Add the server using gnome-online-accounts:
|
||||||
podman-tui
|
# nix-shell -p gnome.gnome-control-center --run "gnome-control-center"
|
||||||
docker-compose
|
# Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.
|
||||||
];
|
programs.dconf.enable = true;
|
||||||
services.udev.packages = [ pkgs.yubikey-personalization ];
|
services.gnome.evolution-data-server.enable = true;
|
||||||
|
services.gnome.gnome-online-accounts.enable = true;
|
||||||
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
virtualisation.containers.enable = true;
|
services.resolved = {
|
||||||
virtualisation = {
|
enable = true;
|
||||||
podman = {
|
fallbackDns = [ "1.1.1.1" "1.0.0.1" ];
|
||||||
enable = true;
|
};
|
||||||
dockerCompat = true;
|
|
||||||
defaultNetwork.settings.dns_enabled = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Calendar
|
hardware.bluetooth.enable = true;
|
||||||
# Add the server using gnome-online-accounts:
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
# nix-shell -p gnome.gnome-control-center --run "gnome-control-center"
|
services.blueman.enable = true;
|
||||||
# Just add the main webdav server and gnome-calendar will automatically pick up all available calendars.
|
systemd.user.services.mpris-proxy = {
|
||||||
programs.dconf.enable = true;
|
description = "Mpris proxy";
|
||||||
services.gnome.evolution-data-server.enable = true;
|
after = [ "network.target" "sound.target" ];
|
||||||
services.gnome.gnome-online-accounts.enable = true;
|
wantedBy = [ "default.target" ];
|
||||||
services.gnome.gnome-keyring.enable = true;
|
serviceConfig.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
|
||||||
|
};
|
||||||
|
hardware.bluetooth.settings = {
|
||||||
|
General = {
|
||||||
|
Experimental = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.resolved = {
|
fileSystems."/home/server" = {
|
||||||
enable = true;
|
device = "10.1:/home/server";
|
||||||
fallbackDns = [ "1.1.1.1" "1.0.0.1" ];
|
fsType = "nfs";
|
||||||
};
|
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
||||||
|
};
|
||||||
hardware.bluetooth.enable = true;
|
fileSystems."/home/user/Workspace" = {
|
||||||
hardware.bluetooth.powerOnBoot = true;
|
device = "10.1:/home/server/Workspace";
|
||||||
services.blueman.enable = true;
|
fsType = "nfs";
|
||||||
systemd.user.services.mpris-proxy = {
|
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
||||||
description = "Mpris proxy";
|
};
|
||||||
after = [ "network.target" "sound.target" ];
|
fileSystems."/home/user/Documents" = {
|
||||||
wantedBy = [ "default.target" ];
|
device = "10.1:/home/server/Storage/Thomas/Documents";
|
||||||
serviceConfig.ExecStart = "${pkgs.bluez}/bin/mpris-proxy";
|
fsType = "nfs";
|
||||||
};
|
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
||||||
hardware.bluetooth.settings = {
|
};
|
||||||
General = {
|
fileSystems."/home/user/Pictures" = {
|
||||||
Experimental = true;
|
device = "10.1:/home/server/Storage/Thomas/Pictures";
|
||||||
};
|
fsType = "nfs";
|
||||||
};
|
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
||||||
|
};
|
||||||
fileSystems."/home/server" = {
|
fileSystems."/home/user/Videos" = {
|
||||||
device = "10.1:/home/server";
|
device = "10.1:/home/server/Storage/Thomas/Videos";
|
||||||
fsType = "nfs";
|
fsType = "nfs";
|
||||||
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
||||||
};
|
};
|
||||||
fileSystems."/home/user/Workspace" = {
|
|
||||||
device = "10.1:/home/server/Workspace";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
|
||||||
};
|
|
||||||
fileSystems."/home/user/Documents" = {
|
|
||||||
device = "10.1:/home/server/Storage/Thomas/Documents";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
|
||||||
};
|
|
||||||
fileSystems."/home/user/Pictures" = {
|
|
||||||
device = "10.1:/home/server/Storage/Thomas/Pictures";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
|
||||||
};
|
|
||||||
fileSystems."/home/user/Videos" = {
|
|
||||||
device = "10.1:/home/server/Storage/Thomas/Videos";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "x-systemd.automount" "x-systemd.mount-timeout=1" "_netdev" "noauto" "timeo=1" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,44 +1,44 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
{
|
{
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Cuda
|
# Cuda
|
||||||
pciutils
|
pciutils
|
||||||
file
|
file
|
||||||
gnumake
|
gnumake
|
||||||
gcc
|
gcc
|
||||||
cudatoolkit
|
cudatoolkit
|
||||||
];
|
];
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = false;
|
||||||
powerManagement.finegrained = true;
|
powerManagement.finegrained = true;
|
||||||
open = false;
|
open = false;
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
prime = {
|
prime = {
|
||||||
intelBusId = "PCI:0:2:0";
|
intelBusId = "PCI:0:2:0";
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
offload = {
|
offload = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableOffloadCmd = true;
|
enableOffloadCmd = true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.services.nvidia-control-devices = {
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
serviceConfig.ExecStart = "${pkgs.linuxPackages.nvidia_x11.bin}/bin/nvidia-smi";
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
systemd.services.nvidia-control-devices = {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig.ExecStart = "${pkgs.linuxPackages.nvidia_x11.bin}/bin/nvidia-smi";
|
||||||
|
};
|
||||||
|
|
||||||
specialisation = {
|
specialisation = {
|
||||||
docked.configuration = {
|
docked.configuration = {
|
||||||
system.nixos.tags = [ "docked" ];
|
system.nixos.tags = [ "docked" ];
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
powerManagement.finegrained = pkgs.lib.mkForce false;
|
powerManagement.finegrained = pkgs.lib.mkForce false;
|
||||||
prime.offload.enable = pkgs.lib.mkForce false;
|
prime.offload.enable = pkgs.lib.mkForce false;
|
||||||
prime.offload.enableOffloadCmd = pkgs.lib.mkForce false;
|
prime.offload.enableOffloadCmd = pkgs.lib.mkForce false;
|
||||||
prime.sync.enable = pkgs.lib.mkForce true;
|
prime.sync.enable = pkgs.lib.mkForce true;
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ../Common { inherit inputs pkgs; })
|
(import ../Common { inherit inputs pkgs; })
|
||||||
];
|
];
|
||||||
|
|
||||||
# AMD CPU
|
# AMD CPU
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
services.logind.extraConfig = ''HandlePowerKey=suspend'';
|
services.logind.extraConfig = ''HandlePowerKey=suspend'';
|
||||||
|
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.wg-quick.interfaces = {
|
networking.wg-quick.interfaces = {
|
||||||
|
|
Loading…
Reference in New Issue