Formatting

This commit is contained in:
Thomas Avé 2024-06-13 11:53:29 +02:00
parent d14db5a303
commit 9b4bd8fcc1
17 changed files with 438 additions and 425 deletions

View File

@ -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; };
} }

View File

@ -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;

View File

@ -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;
} }
''; '';
} }

View File

@ -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";

View File

@ -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";

View File

@ -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 = {

View File

@ -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));
}; };
}; };
} }

View File

@ -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";
};
}; };
};
}; };
} }

View File

@ -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";

View File

@ -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
]; ];
} }

View File

@ -1,4 +1,4 @@
{pkgs}: { pkgs }:
{ {
when = "*-*-* *:00:00"; when = "*-*-* *:00:00";
script = toString (pkgs.writeShellScript "script" '' script = toString (pkgs.writeShellScript "script" ''

View File

@ -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

View File

@ -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;
}]; }];

View File

@ -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" ];
}; };

View File

@ -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" ];
};
} }

View File

@ -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;
}; };
};
}; };
};
} }

View File

@ -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 = {